Init commit. b1.7.3 vanilla server
This commit is contained in:
commit
ee3d133a31
451 changed files with 50531 additions and 0 deletions
224
conf/exceptions.exc
Normal file
224
conf/exceptions.exc
Normal file
|
|
@ -0,0 +1,224 @@
|
|||
net/minecraft/client/Minecraft/loadScreen ()V org/lwjgl/LWJGLException
|
||||
net/minecraft/client/Minecraft/startGame ()V org/lwjgl/LWJGLException
|
||||
net/minecraft/server/MinecraftServer/startServer ()Z java/net/UnknownHostException
|
||||
net/minecraft/world/io/ChunkLoader/loadChunk (Lnet/minecraft/world/World;II)Lnet/minecraft/world/chunk/Chunk; java/io/IOException
|
||||
net/minecraft/world/io/ChunkLoader/saveChunk (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V java/io/IOException
|
||||
net/minecraft/world/io/ChunkLoader/saveExtraChunkData (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V java/io/IOException
|
||||
net/minecraft/src/CodecMus/openInputStream ()Ljava/io/InputStream; java/io/IOException
|
||||
net/minecraft/nbt/CompressedStreamTools/func_1138_a (Ljava/io/InputStream;)Lnet/minecraft/nbt/NBTTagCompound; java/io/IOException
|
||||
net/minecraft/nbt/CompressedStreamTools/func_1139_a (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/CompressedStreamTools/func_1141_a (Ljava/io/DataInput;)Lnet/minecraft/nbt/NBTTagCompound; java/io/IOException
|
||||
net/minecraft/nbt/CompressedStreamTools/func_770_a (Ljava/io/InputStream;)Lnet/minecraft/nbt/NBTTagCompound; java/io/IOException
|
||||
net/minecraft/nbt/CompressedStreamTools/func_771_a (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/CompressedStreamTools/func_774_a (Ljava/io/DataInput;)Lnet/minecraft/nbt/NBTTagCompound; java/io/IOException
|
||||
net/minecraft/nbt/CompressedStreamTools/writeGzippedCompoundToOutputStream (Lnet/minecraft/nbt/NBTTagCompound;Ljava/io/OutputStream;)V java/io/IOException
|
||||
net/minecraft/entity/datawatcher/DataWatcher/readWatchableObjects (Ljava/io/DataInputStream;)Ljava/util/List; java/io/IOException
|
||||
net/minecraft/entity/datawatcher/DataWatcher/writeObjectsInListToStream (Ljava/util/List;Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/entity/datawatcher/DataWatcher/writeWatchableObject (Ljava/io/DataOutputStream;Lnet/minecraft/entity/datawatcher/WatchableObject;)V java/io/IOException
|
||||
net/minecraft/entity/datawatcher/DataWatcher/writeWatchableObjects (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/world/io/IChunkLoader/loadChunk (Lnet/minecraft/world/World;II)Lnet/minecraft/world/chunk/Chunk; java/io/IOException
|
||||
net/minecraft/world/io/IChunkLoader/saveChunk (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V java/io/IOException
|
||||
net/minecraft/world/io/IChunkLoader/saveExtraChunkData (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V java/io/IOException
|
||||
argo/J_CompactJsonFormatter/func_27328_a (Largo/J_JsonNode;Ljava/io/Writer;)V java/io/IOException
|
||||
argo/J_CompactJsonFormatter/func_27329_a (Largo/J_JsonRootNode;Ljava/io/Writer;)V java/io/IOException
|
||||
argo/J_JdomParser/func_27366_a (Ljava/io/Reader;)Largo/J_JsonRootNode; argo/J_InvalidSyntaxException java/io/IOException
|
||||
argo/J_JdomParser/func_27367_a (Ljava/lang/String;)Largo/J_JsonRootNode; argo/J_InvalidSyntaxException
|
||||
argo/J_PositionTrackingPushbackReader/func_27333_c ()I java/io/IOException
|
||||
argo/J_PositionTrackingPushbackReader/func_27334_a (C)V java/io/IOException
|
||||
argo/J_PositionTrackingPushbackReader/func_27336_b ([C)I java/io/IOException
|
||||
argo/J_SajParser/func_27448_l (Largo/J_PositionTrackingPushbackReader;)I java/io/IOException
|
||||
argo/J_SajParser/func_27449_c (Largo/J_PositionTrackingPushbackReader;Largo/J_JsonListener;)V argo/J_InvalidSyntaxException java/io/IOException
|
||||
argo/J_SajParser/func_27450_k (Largo/J_PositionTrackingPushbackReader;)I java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27451_b (Largo/J_PositionTrackingPushbackReader;)Ljava/lang/String; java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27452_i (Largo/J_PositionTrackingPushbackReader;)Ljava/lang/String; argo/J_InvalidSyntaxException java/io/IOException
|
||||
argo/J_SajParser/func_27453_b (Largo/J_PositionTrackingPushbackReader;Largo/J_JsonListener;)V argo/J_InvalidSyntaxException java/io/IOException
|
||||
argo/J_SajParser/func_27454_g (Largo/J_PositionTrackingPushbackReader;)Ljava/lang/String; java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27455_a (Largo/J_PositionTrackingPushbackReader;Largo/J_JsonListener;)V argo/J_InvalidSyntaxException java/io/IOException
|
||||
argo/J_SajParser/func_27456_e (Largo/J_PositionTrackingPushbackReader;)Ljava/lang/String; java/io/IOException
|
||||
argo/J_SajParser/func_27457_j (Largo/J_PositionTrackingPushbackReader;)C java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27458_d (Largo/J_PositionTrackingPushbackReader;)C java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27459_a (Largo/J_PositionTrackingPushbackReader;)Ljava/lang/String; java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27460_c (Largo/J_PositionTrackingPushbackReader;)C java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27461_h (Largo/J_PositionTrackingPushbackReader;)Ljava/lang/String; java/io/IOException
|
||||
argo/J_SajParser/func_27462_f (Largo/J_PositionTrackingPushbackReader;)Ljava/lang/String; java/io/IOException argo/J_InvalidSyntaxException
|
||||
argo/J_SajParser/func_27463_a (Ljava/io/Reader;Largo/J_JsonListener;)V argo/J_InvalidSyntaxException java/io/IOException
|
||||
argo/J_SajParser/func_27464_d (Largo/J_PositionTrackingPushbackReader;Largo/J_JsonListener;)V argo/J_InvalidSyntaxException java/io/IOException
|
||||
net/minecraft/world/io/McRegionChunkLoader/loadChunk (Lnet/minecraft/world/World;II)Lnet/minecraft/world/chunk/Chunk; java/io/IOException
|
||||
net/minecraft/world/io/McRegionChunkLoader/saveChunk (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V java/io/IOException
|
||||
net/minecraft/world/io/McRegionChunkLoader/saveExtraChunkData (Lnet/minecraft/world/World;Lnet/minecraft/world/chunk/Chunk;)V java/io/IOException
|
||||
net/minecraft/src/MusInputStream/read ()I java/io/IOException
|
||||
net/minecraft/src/MusInputStream/read ([BII)I java/io/IOException
|
||||
net/minecraft/nbt/NBTBase/readTag (Ljava/io/DataInput;)Lnet/minecraft/nbt/NBTBase; java/io/IOException
|
||||
net/minecraft/nbt/NBTBase/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTBase/writeTag (Lnet/minecraft/nbt/NBTBase;Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTBase/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagByte/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagByte/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagByteArray/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagByteArray/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagCompound/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagCompound/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagDouble/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagDouble/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagEnd/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagEnd/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagFloat/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagFloat/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagInt/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagInt/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagList/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagList/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagLong/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagLong/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagShort/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagShort/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagString/readTagContents (Ljava/io/DataInput;)V java/io/IOException
|
||||
net/minecraft/nbt/NBTTagString/writeTagContents (Ljava/io/DataOutput;)V java/io/IOException
|
||||
net/minecraft/network/NetClientHandler/<init> (Lnet/minecraft/client/Minecraft;Ljava/lang/String;I)V java/net/UnknownHostException java/io/IOException
|
||||
net/minecraft/network/NetLoginHandler/<init> (Lnet/minecraft/server/MinecraftServer;Ljava/net/Socket;Ljava/lang/String;)V java/io/IOException
|
||||
net/minecraft/network/NetworkListenThread/<init> (Lnet/minecraft/server/MinecraftServer;Ljava/net/InetAddress;I)V java/io/IOException
|
||||
net/minecraft/network/NetworkManager/<init> (Ljava/net/Socket;Ljava/lang/String;Lnet/minecraft/network/NetHandler;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet/readPacket (Ljava/io/DataInputStream;Z)Lnet/minecraft/network/packets/Packet; java/io/IOException
|
||||
net/minecraft/network/packets/Packet/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet/readString (Ljava/io/DataInputStream;I)Ljava/lang/String; java/io/IOException
|
||||
net/minecraft/network/packets/Packet/writePacket (Lnet/minecraft/network/packets/Packet;Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet/writeString (Ljava/lang/String;Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet0KeepAlive/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet0KeepAlive/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet100OpenWindow/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet100OpenWindow/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet101CloseWindow/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet101CloseWindow/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet102WindowClick/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet102WindowClick/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet103SetSlot/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet103SetSlot/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet104WindowItems/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet104WindowItems/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet105UpdateProgressbar/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet105UpdateProgressbar/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet106Transaction/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet106Transaction/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet10Flying/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet10Flying/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet11PlayerPosition/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet11PlayerPosition/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet12PlayerLook/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet12PlayerLook/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet130UpdateSign/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet130UpdateSign/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet131MapData/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet131MapData/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet13PlayerLookMove/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet13PlayerLookMove/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet14BlockDig/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet14BlockDig/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet15Place/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet15Place/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet16BlockItemSwitch/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet16BlockItemSwitch/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet17Sleep/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet17Sleep/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet18Animation/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet18Animation/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet19EntityAction/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet19EntityAction/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet1Login/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet1Login/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet200Statistic/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet200Statistic/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet20NamedEntitySpawn/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet20NamedEntitySpawn/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet21PickupSpawn/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet21PickupSpawn/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet22Collect/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet22Collect/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet23VehicleSpawn/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet23VehicleSpawn/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet24MobSpawn/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet24MobSpawn/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet255KickDisconnect/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet255KickDisconnect/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet25EntityPainting/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet25EntityPainting/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet27Position/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet27Position/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet28EntityVelocity/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet28EntityVelocity/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet29DestroyEntity/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet29DestroyEntity/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet2Handshake/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet2Handshake/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet30Entity/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet30Entity/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet31RelEntityMove/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet31RelEntityMove/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet32EntityLook/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet32EntityLook/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet33RelEntityMoveLook/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet33RelEntityMoveLook/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet34EntityTeleport/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet34EntityTeleport/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet38EntityStatus/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet38EntityStatus/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet39AttachEntity/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet39AttachEntity/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet3Chat/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet3Chat/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet40EntityMetadata/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet40EntityMetadata/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet4UpdateTime/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet4UpdateTime/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet50PreChunk/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet50PreChunk/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet51MapChunk/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet51MapChunk/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet52MultiBlockChange/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet52MultiBlockChange/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet53BlockChange/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet53BlockChange/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet54PlayNoteBlock/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet54PlayNoteBlock/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet5PlayerInventory/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet5PlayerInventory/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet60Explosion/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet60Explosion/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet61DoorChange/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet61DoorChange/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet6SpawnPosition/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet6SpawnPosition/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet70Bed/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet70Bed/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet71Weather/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet71Weather/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet7UseEntity/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet7UseEntity/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet8UpdateHealth/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet8UpdateHealth/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet9Respawn/readPacketData (Ljava/io/DataInputStream;)V java/io/IOException
|
||||
net/minecraft/network/packets/Packet9Respawn/writePacketData (Ljava/io/DataOutputStream;)V java/io/IOException
|
||||
net/minecraft/world/io/RegionFile/close ()V java/io/IOException
|
||||
net/minecraft/world/io/RegionFile/func_22196_b ()V java/io/IOException
|
||||
net/minecraft/world/io/RegionFile/func_22208_b (III)V java/io/IOException
|
||||
net/minecraft/world/io/RegionFile/setChunkTimestamp (III)V java/io/IOException
|
||||
net/minecraft/world/io/RegionFile/setOffset (III)V java/io/IOException
|
||||
net/minecraft/world/io/RegionFile/write (I[BI)V java/io/IOException
|
||||
net/minecraft/src/RenderEngine/readTextureImage (Ljava/io/InputStream;)Ljava/awt/image/BufferedImage; java/io/IOException
|
||||
net/minecraft/src/StatsSyncher/func_27410_a (Ljava/util/Map;Ljava/io/File;Ljava/io/File;Ljava/io/File;)V java/io/IOException
|
||||
net/minecraft/src/StatsSyncher/func_27412_a (Lnet/minecraft/src/StatsSyncher;Ljava/util/Map;Ljava/io/File;Ljava/io/File;Ljava/io/File;)V java/io/IOException
|
||||
net/minecraft/src/TexturePackBase/func_6485_a (Lnet/minecraft/client/Minecraft;)V java/io/IOException
|
||||
net/minecraft/src/TexturePackCustom/func_6485_a (Lnet/minecraft/client/Minecraft;)V java/io/IOException
|
||||
net/minecraft/src/ThreadDownloadResources/downloadResource (Ljava/net/URL;Ljava/io/File;J)V java/io/IOException
|
||||
paulscode/sound/Library/<init> ()V paulscode/sound/SoundSystemException
|
||||
paulscode/sound/Library/init ()V paulscode/sound/SoundSystemException
|
||||
paulscode/sound/SoundSystem/<init> (Ljava/lang/Class;)V paulscode/sound/SoundSystemException
|
||||
paulscode/sound/SoundSystem/init (Ljava/lang/Class;)V paulscode/sound/SoundSystemException
|
||||
paulscode/sound/SoundSystem/newLibrary (Ljava/lang/Class;)Z paulscode/sound/SoundSystemException
|
||||
paulscode/sound/SoundSystem/switchLibrary (Ljava/lang/Class;)Z paulscode/sound/SoundSystemException
|
||||
paulscode/sound/SoundSystemConfig/addLibrary (Ljava/lang/Class;)V paulscode/sound/SoundSystemException
|
||||
paulscode/sound/SoundSystemConfig/setCodec (Ljava/lang/String;Ljava/lang/Class;)V paulscode/sound/SoundSystemException
|
||||
paulscode/sound/codecs/CodecJOrbis/openInputStream ()Ljava/io/InputStream; java/io/IOException
|
||||
paulscode/sound/codecs/CodecJOrbis/readHeader ()Z java/io/IOException
|
||||
paulscode/sound/libraries/LibraryLWJGLOpenAL/<init> ()V paulscode/sound/SoundSystemException
|
||||
paulscode/sound/libraries/LibraryLWJGLOpenAL/init ()V paulscode/sound/SoundSystemException
|
||||
6896
conf/mappings.tiny
Normal file
6896
conf/mappings.tiny
Normal file
File diff suppressed because it is too large
Load diff
4
res/META-INF/MANIFEST.MF
Normal file
4
res/META-INF/MANIFEST.MF
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
Manifest-Version: 1.0
|
||||
Created-By: 1.7.0
|
||||
Main-Class: net.minecraft.server.MinecraftServer
|
||||
|
||||
446
res/achievement/map.txt
Normal file
446
res/achievement/map.txt
Normal file
|
|
@ -0,0 +1,446 @@
|
|||
1000,43ddd8b48469d9a8c011718aa846facb
|
||||
1001,aaed8c669f583cf35300f7c5d5396fce
|
||||
1002,d517ae73160fd8576d7687ead1c1a973
|
||||
1003,ac37df168bae3c69a24d7fd5bae913c7
|
||||
1004,6d2591e94464b8327afadbdba44978d
|
||||
1100,8b1df73e012e2ae34cd2d84a72a7898b
|
||||
2000,c9ee0d494e0524c86a577cf684f5816d
|
||||
2001,cd7a2836ea0b77b23a6131222f5be354
|
||||
2002,381aeedb2c5c5a7a9a01333e0eebc839
|
||||
2003,229048d1bb9e928831734cb2e5000286
|
||||
2004,b2c088c3c6928bfe29684a75ae1b127c
|
||||
2005,1ce3491a1021a5aed07c687e3f6133e6
|
||||
2006,6c3d114caffd8160f7d56fc8757419a
|
||||
2007,bcb501cfac8f7e73b455563bddbcb417
|
||||
2008,e1aa93d7bba48898a32810c43c6ff5c3
|
||||
2010,d0818779df1b967cc2f8ffc3ada631ec
|
||||
2011,ecf0dbe93240e84edf6bd263645e634f
|
||||
2020,b4a67353e11c3039ad755a3e96b4a046
|
||||
2021,1bb21f7731a5b3ffc6a1e2b586dae3f5
|
||||
2022,e58162e284df8fe339f05626eb46d835
|
||||
2023,739948643f5f6f685aea81c42883a480
|
||||
2024,799b0d35362a9574d3226c2d762b53c6
|
||||
2025,5ec18fbb462516a1e1a3427e0595a7d6
|
||||
16908544,12512904b67d2091dd516dc8eeb0cfa0
|
||||
16908545,a5c35cc01a263f91419d3e8e981708f1
|
||||
16908546,f6bdebf227e42c204066cede8cb5928c
|
||||
16908547,9c44e6d3ab80afa2bb52fe3499559d5e
|
||||
16908548,2e1799ddfdab14417c2a8e24d8c0c731
|
||||
16908549,3f4169a181feb5d2532efc6aa91f2ee5
|
||||
16908550,895725d3432cbf374b1cce4f7db28e9
|
||||
16908551,12892864f18d30521b6f4a6c45b65ece
|
||||
16908552,146f6c3458adde8e0bca04d976275f85
|
||||
16908553,7c40dbd9451129b4762f3ab04ce7ffb9
|
||||
16908554,56d763eeb6a0107c2146d7dccd686d2a
|
||||
16908555,9a4fff004ae419711c2a876b57cba69f
|
||||
16908556,170ff67dd90d8d3d8dae393037da5e9b
|
||||
16908557,3e65d657af8611cb3578cd8713419d4c
|
||||
16908558,f3cb95383f698c4e9721b5aaa5fac3a7
|
||||
16908559,65bd006dc163a186f2dbb127f8ec0b27
|
||||
16908560,8c6479d786f9117e04910153a4f47d86
|
||||
16908561,75a25bd69f36250789d914ac01da34c1
|
||||
16908562,87a28b2bf2fad838af72ce00e2fb1937
|
||||
16908563,249ff32d605c5ba0a07694ff4fbbf15a
|
||||
16908564,ba3b355eb9134bcd7522a1fc203c4c58
|
||||
16908565,321e1cb3657d2aca73fb9a8083d9c3bf
|
||||
16908566,adb182051fab2c2269df89b4f75e505e
|
||||
16908567,3d9ae8982f01fb6a6c56cffbe2fa074e
|
||||
16908568,1efffb054b2c864f5ebe180ae46891c3
|
||||
16908569,25c73629d0b6b46690d222cecf331ba2
|
||||
16908570,6a46694c996e5721b14c9da1f00fe62c
|
||||
16908571,5efc1c291eef23fe33f5209388b8cc33
|
||||
16908572,f71fc7deef6835c8efc305a00f1e8b8f
|
||||
16908573,15484a373254c6024d90edf3b7a82947
|
||||
16908574,8253f1aaa2205dcaf828903cfce46e4
|
||||
16908575,ab778410d1fb2c0e55fec0c7d764b17c
|
||||
16908576,19ad61c04ff3ae082955f72fc8771866
|
||||
16908577,b5d3eeff40086643a03f034b5345504d
|
||||
16908578,3d647bf5562e743263cbd90be36b6a1c
|
||||
16908579,5a9d2fb7050009785421257d5ef24416
|
||||
16908580,909b03e2d2eeee2e868b5aaf446e81ea
|
||||
16908581,e603a4cbfdfcbf4d0bfe25efb753b424
|
||||
16908582,e355f481f99220e50e4b2b2eb45dcc56
|
||||
16908583,73a25e59c2d18ae77db02928b0a70e3
|
||||
16908584,8f81a2fb647f817422a299829994de7b
|
||||
16908585,128e9978380ee9ef981d2e12d008255e
|
||||
16908586,fd1453f3e2a3125e7d16cfe6fd2d4722
|
||||
16908587,8e27b6f750bec22333a5d4108ce1e094
|
||||
16908588,b2169f6190bdf95236037bed2301712b
|
||||
16908589,536e6340e5328075ede672428d94d921
|
||||
16908590,cb9eede8b783b4a5d7ff7529e3fb1f44
|
||||
16908591,267d51d891c3c32b3a02577d38f4e242
|
||||
16908592,3f31e8ab260f02acca218c720fafc7b8
|
||||
16908593,552869a63aa3151e79e875596f31e505
|
||||
16908594,c5b0399e7fc64f0561a82063773e1282
|
||||
16908595,cfd61cdbf22133caeca528da9b53474e
|
||||
16908596,8d3802169313f270d5adcda790170ca2
|
||||
16908597,a82c4f31d6d3f5bef9aa3062945c02d6
|
||||
16908598,85eca649072752e9ffafdefa1287470f
|
||||
16908599,98ffd259abbe2e4794c00716a9d2da7
|
||||
16908600,263f8fab89ae0f9d695a74512443070b
|
||||
16908601,b4ae28e8babe7bd09b2a392780565dbe
|
||||
16908602,dfd84b5b35231267a47891cc8c8f48ba
|
||||
16908603,f6990bbd57862a238aaf68b0c2f4c998
|
||||
16908604,9dca837e109ae977a89ed64dd17fab10
|
||||
16908605,ebdb407fd6e4d5c450f73173487c3162
|
||||
16908606,fdf869946d814f4f2aeebe269db06e31
|
||||
16908607,f9ea1fa393862a86e79ffade6a2662e7
|
||||
16908608,60491b4f5956534afd5959e7c2411cda
|
||||
16908609,b78fc6d8b8b8ecb1266eb9c04c5129b
|
||||
16908610,add241f6dcfe6af3f096a45b96fb04e1
|
||||
16908611,38760b28c0d26204b1e0383ca318947a
|
||||
16908612,d3d8076b8b7a911b7cbbf5099f8ffd48
|
||||
16908613,fc78be6fb5735b715325ac499990550e
|
||||
16908614,a7504fcd85d6696a8880f32b97b34a60
|
||||
16908615,f0821b6fdc8ebbf8a6fcb37c75086b1d
|
||||
16908616,88b0e1b842fc88f0cbc5f38e95d68417
|
||||
16908617,d977f8453c349a44baa7e05c3dd81cb8
|
||||
16908618,26184c3c1edfa7623d5620433c0ff36
|
||||
16908619,8edbf7f3996852add4fcb18008cb722f
|
||||
16908620,39e5881696ed1141fb934593dd6bab70
|
||||
16908621,1e0d787240ea16af6edbbdb1ab372fe7
|
||||
16908622,af6ec83a0b072b4abd4194d8d43f7f02
|
||||
16908623,658b5f77ff892a455a7fce5dc93268ac
|
||||
16908624,6474336f089d541c9cec4a1df0c3b6cf
|
||||
16908625,72cfc6fe503df207d53119aa7d5b84b4
|
||||
16908626,3070c2283ca5fd0fe00f7880a4bcdf18
|
||||
16908627,340cef5b043dceb7073ede0be69d700d
|
||||
16908628,24dda1839a72d6707ed1932f6f32bd8e
|
||||
16908629,1c50c7d94cec18710417d513708094d1
|
||||
16908630,2b1f11fed636bf7892650b9adc9b8e94
|
||||
16908631,afd9ba61c39fa742a840fe6ab2cfb490
|
||||
16908632,b709157ffabe225e820218b020508173
|
||||
16908633,3e9f7b867952f7b2df48e156402d558
|
||||
16908634,ab9f22a1fbc265d19a4dd7f84f3a4585
|
||||
16908635,c89cf9510108d63d7d181b3f7c546094
|
||||
16908636,c7af3251ce44f2dafb2c192d817e9c52
|
||||
16908637,796f607d214012447b7c552673f95b4a
|
||||
16908638,ea796bd83dd7689d322085c74d0957a7
|
||||
16908639,ce2f6f842d68418baad5fc2ecefcb879
|
||||
16908640,6b3016429a5f814f3cccaff484a46831
|
||||
16908641,7dea9bdb69c9c5965609eab99af9f9d9
|
||||
16908642,3add5c50b3427182fcb7dd04fe953945
|
||||
16908643,4175965cd5cee134d43038ac54858b0f
|
||||
16908644,feae27a32b6cc95860ec46da6d37c4b0
|
||||
16908645,5898813ee0b2785afc9dad2524f56162
|
||||
16910544,adb04e128238341b88a18532f3448d13
|
||||
16910545,8e274d3a14b5cb87cbce019d0a3b9a23
|
||||
16974080,cfed396d9f54d3c04bc390a004916c52
|
||||
16974081,64f1b3409c0937114f77f9933a4e2b82
|
||||
16974082,5a6e9dc254405a6cb066472172fa09b1
|
||||
16974083,b23adf8b24d9a42637977c3322f02b75
|
||||
16974091,df1b76bca1e6a035d3e22e7c01f67bc6
|
||||
16974092,4bb3d702d36739ba62041c0c936cbfb6
|
||||
16974093,d02062bdb07f81100381ef87e6fc2922
|
||||
16974094,1a0d208f9f489b37b800c6eeaaa752c9
|
||||
16974095,34ee6807c2040168606740d0e3f46e30
|
||||
16974096,9b8bb8517841df03f1a894b238251068
|
||||
16974097,bb0b43349ffa6aa13b5d84ca70d25eb3
|
||||
16974098,b3b647da85fe51c6da997e28b66cb4c3
|
||||
16974099,d33c3d7d3fbc6880e0e03ce573644b1e
|
||||
16974100,17d45fba9866349c133608e9d42e4ac9
|
||||
16974101,74205e9529729bd0ef51c3d544c1e372
|
||||
16974102,edf620106dc10c10a3357436a306400d
|
||||
16974103,74b3a17953dca5a0cb9bb8c47b241eca
|
||||
16974107,1938aff98985ef5e79c7003868c1e91
|
||||
16974108,14b782f5d9afda571ce6c8bad868e2bd
|
||||
16974109,cb124718b4ecfb29a900e1e617c79544
|
||||
16974110,ae3c73a1546a058da74d4b8a588b59f2
|
||||
16974114,cbdefe9bd14088ad45141843474d2bb0
|
||||
16974115,641938697f84f6e7b59ebc08edc4648b
|
||||
16974116,74ccb1de521aa54c65ffcb906ffd1d3b
|
||||
16974117,fffed44e7bb844ad6c69f7eb4540cff3
|
||||
16974118,536b2d3a4009eed61300bf5f0af7419e
|
||||
16974122,8a8ea889723fc0f8de50c53339819871
|
||||
16974123,768b65f8e24b1e042b75cf6f576cfcd1
|
||||
16974124,a4b5522486920acfc2ed97e105c7831
|
||||
16974125,6e9b513f3c219f4276556070b36a0339
|
||||
16974126,942450301cd8068c9a14352c1cecc2d0
|
||||
16974127,c98e2b8eb252d75a2a1f90144596ada4
|
||||
16974128,7b13a95332dac62ad73cddf33d3bba0f
|
||||
16974129,1951adc5a346867490626a854788b9ad
|
||||
16974130,b75636944eeba77a4ce3f254460e0d49
|
||||
16974131,bb5bc2285c0a2e24548533f59af76788
|
||||
16974132,929561410b14786db52aa89b675a9759
|
||||
16974133,6b07bd2605f311d8134a8170ba49fd73
|
||||
16974134,2f97923d891e3e8c1967d53f7734ff55
|
||||
16974135,dea0b11c8760d28eafbe76e25df7d301
|
||||
16974136,586e309c00ba6f3c2ada595b742bef23
|
||||
16974137,29e48d74dc5062eb900d376196fd4f23
|
||||
16974138,fa79e8b641b225166b17ea86a9ecb174
|
||||
16974139,7a66328b6b976337ff5bde5c7edccaa5
|
||||
16974140,95559b402657cf222a87248d1e6ce0f5
|
||||
16974141,52843420526ced65d57513afad342515
|
||||
16974170,56690bacbebf8107b83e80528f40740
|
||||
16908289,83cfae9a11032a88e08c95b7fcef84cc
|
||||
16908291,39a4ea3b5ddf7f89b41faf675f7bfc0f
|
||||
16908292,64ec21dc8495fb180cc94f59f873efb8
|
||||
16908293,fda16e9858404b9545649ba21a828a6a
|
||||
16908294,a57157213ffc25d269ea46e45984eae0
|
||||
16908295,90f2ac6ac3005ad4cabcd248831f2205
|
||||
16908296,4adafcbbef5ace168ca03e173af10452
|
||||
16908298,bb2e0425d8b489fc856cab2c0828f2ff
|
||||
16908300,76b80613789c553593097956002a392b
|
||||
16908301,23bd5cc4fb97d25e432604be0958320d
|
||||
16908302,7b129f5775b2d4997681338012130cad
|
||||
16908303,4935425ac3ef59e71bca7c4c8bf7e2ea
|
||||
16908304,564d5c2df622b99692929bedbcd7f4b1
|
||||
16908305,e06bb538b6b224ce1376b47804ee2bbb
|
||||
16908306,f13b4a0fa66e65ed33dcbd7ead08ac46
|
||||
16908307,29710a54739e35ae0d34919fca091640
|
||||
16908308,8693b46ac89dd595f8e3efd4437e6e90
|
||||
16908309,3ebf10825c7d8f2e17deae70b37d1fbd
|
||||
16908310,354d414b2a1f29494a80b3acedb72ae2
|
||||
16908311,de662954670ec00899809b916abe6c60
|
||||
16908312,831dd7a79cd7e5f3cad86690c6724902
|
||||
16908313,265f19645487a858e4f53b9706cdff03
|
||||
16908314,2ad06f9f7e24f920fb067e2f2cc7869c
|
||||
16908315,99f3286cc36b9a4393b3e967878b01d4
|
||||
16908316,4fbc91a39f7f4814f8f79ba425e4f30a
|
||||
16908318,ccb82be2278587dd637ac763a1087c7
|
||||
16908323,8e8a2f6a87c3701e76650680e7b2f6e6
|
||||
16908325,fcd992a9a44518d5de6bd09c409ea7de
|
||||
16908326,e41e706456c10963824e032484992946
|
||||
16908327,662301d3344073cc69887a27a8c42f24
|
||||
16908329,313738e052612f868d55f47940080288
|
||||
16908330,79474b10f860f09be4e9183ad5f1c7b4
|
||||
16908332,60a3062d151151a2ff229a02d3221337
|
||||
16908333,833c8c420ce04aa18b9912ff05e5ced2
|
||||
16908334,6e0f4183ad7abbb63c5b6a1ead24214a
|
||||
16908335,477292deea02d72acc1087b2425c570a
|
||||
16908336,82cf44076f1a94ed31f3172433a80ef6
|
||||
16908337,84f64a9f8523d35a1cf8319f580dd578
|
||||
16908338,b6365376050089a025a1ed1d85a85dba
|
||||
16908339,4e989db8b445f22b61bd4d30daee1a05
|
||||
16908340,50ec890e85029d44ea96bfa31d8ed16a
|
||||
16908341,b4f23438454d39a742546dafd5d3cfc6
|
||||
16908342,5414035b686e0fb0a1ce0d535d0a0f82
|
||||
16908343,72d6218e86d3787422fa6b03f30ccaf3
|
||||
16908344,ddfe42c53aae03dd94c2d3163869ddc0
|
||||
16908345,b8b09ac7af1bb81e28715a3e0f0eeb17
|
||||
16908346,c53d28ac584d8053ec438f692a58cd1a
|
||||
16908347,243cf7fb2bf36e60e3a25cde83b33a5e
|
||||
16908349,2837ae3dabc00c4c5515bafa34a302dc
|
||||
16908351,4973e12438ce4c870f6ba1c158873c43
|
||||
16908352,37678301896aa95cc358bcd73308232c
|
||||
16908353,31c5e38768bda9a8a7cd1bbca7c9226d
|
||||
16908354,5ff1e27f9ef25fcf0a3c51b0551f7fd2
|
||||
16908355,60a060ee3e51167f4d87cf6d923f9ca7
|
||||
16908356,b24aa4a609b3483b795c4f3bf89116b7
|
||||
16908357,7a17a96ff758cd4ff8c0ffd070230cc7
|
||||
16908358,c14586711c04239a174c192d24b8ce20
|
||||
16908359,1f0abe2925128be5191932a1cc4a3019
|
||||
16908360,a9c8343cf444aa7686d9dd2b40e90a47
|
||||
16908361,94a02b3ef18bb35970105bf276001fe0
|
||||
16908363,bfa45b4169d1944debabc84b04880837
|
||||
16908365,a3d0bb31ba7c30209129e4366e072b05
|
||||
16908366,de6d35451526c85c7c5907a0adcbeff7
|
||||
16908367,4a0d45a9aedaa06eb574f88f580c265b
|
||||
16908368,56ab2510d3cb4787bdcfa9680aa7e757
|
||||
16908369,feef935305ae32e1972d3b017a4eb
|
||||
16908370,41b270e7ecb39d0b81d1b60f32c3943
|
||||
16908371,b159339fc55e60000efee4c55d0e1d1c
|
||||
16908372,74ca5387c7d373fc88e65e0623d5991f
|
||||
16908373,8b8ae20ea681d47cd899f74f75bde08d
|
||||
16908374,5cb926f4743f6ccdb4988c8b35dc97dd
|
||||
16908375,947a02e037fe9d31c8eb4c4a22dba58c
|
||||
16908376,2c2a7e8a269a770cc4afbe695e662601
|
||||
16908377,9a992e19651652de8b4f5ce07d1d2af0
|
||||
16908378,3e37efadc720d972ddc30ccae606ab00
|
||||
16908380,77b1802a2504a685bf8ff34a1f9de6c3
|
||||
16908381,45c0dbda39dca97dc634a6e89f037716
|
||||
16908383,ca404ded18b83fd872a5810c8a44517d
|
||||
16843027,ecc0eb0ba51e2c14aaa006e168eacc8c
|
||||
16842753,f6282e18f6f87e4cf68970579aac7219
|
||||
16843026,6f3d105b3e6d1624af4ce68b2a55362d
|
||||
16843025,aa1c8e137823bf5245f0d27c980796e7
|
||||
16843024,ed65803a11251872c6cf659381d0aaaa
|
||||
16843031,fa2f9de197813d8e32d78bd184603161
|
||||
16842757,1a13db89ae6fdbb152856edbe3688d95
|
||||
16843030,46bd8fadf2f12988d808e69dcfc138cb
|
||||
16843029,bf398d8ec9fef1d04c67fbf474fda790
|
||||
16843028,69ee29bc3bd715b3203d888ca2a88cc0
|
||||
16843035,2f79ed9030fe0339dec2eb43f56fa369
|
||||
16843034,e2f097a36cdf87a1b211d27eb31dea32
|
||||
16843033,c02e9379a6624b40fef669494a7e7183
|
||||
16843032,af44f7fe9a4366c67479a44b24ae80b
|
||||
16843038,501ead1cb03222808aa09b376c9d5cac
|
||||
16843037,a2d01853631a9b52006ad32497ddc865
|
||||
16843036,6e381ac09bfc75ef7f71e02f3b99f279
|
||||
16843010,bcfe734d49949142a5073766188213dc
|
||||
16843011,88ea7e11c57b09139afe92169c443e20
|
||||
16843008,91f14375672f1b2003202ec7682771cb
|
||||
16843009,f5007e4886946d1eb603979a35726d69
|
||||
16843014,b0bde3daab8a1cc6354cd86c65db90e2
|
||||
16842772,b59c880de07e668eaba0888fc4de229a
|
||||
16843015,7184233667abf34d2ee3eea20fb9f82b
|
||||
16842775,bcc06ff4c56de9b4a1557d3c47ec1783
|
||||
16842774,6f2eab110a33c15cb17238708244db4d
|
||||
16843013,3fe45d065187550d481cc745780c29c2
|
||||
16843018,7bddb0161d99059f0a6c1c09d0b35b34
|
||||
16842777,fdc779803765398f0c782a1fd55a9d86
|
||||
16842776,6b6c09ee89a933288c37f55d2187eddd
|
||||
16843019,87545673867c5cf2f97ea6cc3e0d3595
|
||||
16843016,e2288c9f60d09d5f2882175abf161bd
|
||||
16842779,9667a31366f5dcf740d64b775402c64
|
||||
16843017,e3108d8ee8530e50d7b425de217a4585
|
||||
16843022,847f1b6f38ebf442a1d34cac0fd6080e
|
||||
16843023,5d01d19f8441e4d5dd5c41266f480ffc
|
||||
16842780,b02509b360e6f14eac4fb03f55c11fed
|
||||
16843020,90e2ab194dab9f482eca64c651ea41e9
|
||||
16843021,58d3e73bd29c14b6ec97d4187cee5500
|
||||
16843057,bf533b7d78ccc350cfd2f41a8e1f0822
|
||||
16842787,e49146643faf3308ca7246d82fc5b2bb
|
||||
16843056,d8e023c15aa80df2445c782c6b2179da
|
||||
16843059,c649596d99d96be696332cb08b4a33f2
|
||||
16843058,d129fce211dfb56e80195a11f39ab1e9
|
||||
16843061,441d86175b74884ef3f672066ae52c90
|
||||
16843060,cf6d7dfef99b200a4551cd65467fb9fc
|
||||
16843063,f50f8b7fafde6d640ced3ec4d797f807
|
||||
16843062,d22de0ebc290280b2699b5cb77568fcb
|
||||
16842794,d347d92a886b9d445d7d60b090a5bcda
|
||||
16843065,a393477443f20a1a8a511c390024f963
|
||||
16843064,e6f28eea0ebbad0d18d23ea3c15f2102
|
||||
16843067,d6efe6a63f529d675417c2092546e144
|
||||
16842793,d5ac3bcc56cbc370ae3b172dd6ed5df4
|
||||
16843066,935aa84de286e8bced6a127b69347997
|
||||
16842798,377a21bcb39dcfcb4a0902a7555a984f
|
||||
16843069,63cc6da6165cc068740827890b4460ed
|
||||
16843068,6dda3129884399b67b935bb4e51ad34f
|
||||
16842799,d4831a785c1c65ad2054bb1232babf0c
|
||||
16842796,48be99a37d3a885d38657a50d6f77365
|
||||
16842797,8da03c2f611c7f0654aa71096832b5c
|
||||
16842802,9b2a96570a99f6677e299d8215b1eecd
|
||||
16843042,322d7c02f205806126f1529564ab3cd0
|
||||
16843043,660acf0ca76261ec49deb7a7bd072f8c
|
||||
16843044,d8dd28acc9e4431ff8eb481c1d8d9832
|
||||
16842806,919bc6715eddf74c0517372ead95cdcb
|
||||
16843045,72ae59db2ef5c472f671b31f1c6f07ce
|
||||
16842805,9e359ce06b5603c820bd749592beb4a7
|
||||
16843046,cee09c2303e44dfbbaadbf167cdc503c
|
||||
16842810,8ecd9ec7607c958cdf2e252f516fe3d8
|
||||
16843049,47171b2af8bb14c3816f52f79579b46d
|
||||
16842809,fef5bbbc588422579bf3de8a49c73e18
|
||||
16843050,6b29998dbe690122afdf6da71e905009
|
||||
16843051,5f9f017aa89719c7a282aa222c65baf
|
||||
16843052,216a61701714cb3f04e23a74a1336864
|
||||
16843053,e146704e3fe30e6821352ceb3b090184
|
||||
16842813,899942760d5a83d94cf58a536be6171e
|
||||
16843054,5aa0a467c7451f88f9c6056e8c7427cc
|
||||
16843055,6881fc74a0574433e9e0f05f7cae53f7
|
||||
16843095,50f6c2ffdc69bea12cd7b58c69824be1
|
||||
16842821,42b4814e4e61191b61a8d3f7c6041938
|
||||
16843094,356c3f0d5b88d0e2077d85168eac6306
|
||||
16842822,d69011621d777519c5ab6a68da8959
|
||||
16843092,d84a39f3d30a72b13640e3afb7ea2018
|
||||
16843091,37603e187bd7ad9dceccb8ef2b6b5335
|
||||
16842817,bad6f1072232c28353aabf42142cbd26
|
||||
16842818,bd0c4079c99e529e55abef5ac44dcdf8
|
||||
16843088,5e5d08b1780bfd69747216c24b7aee92
|
||||
16842819,ae608e1ca5ca083163d92974d7c66b06
|
||||
16843103,d4d1b946336039e515c3e4a392694223
|
||||
16842828,6a15bcf38bcf78021f9416ac395cac85
|
||||
16843102,603020acbbdc6e8765c2e2cd589f7933
|
||||
16842829,41cce73f9ce59993afa3517becd4bd3c
|
||||
16842824,2368ffe803beb1d06772e96eeffd9cc9
|
||||
16843099,c373e78822d440c926edf7f1b700d4c5
|
||||
16843098,503a4fb49cbfebe1fb71ef185c8ced56
|
||||
16843097,4e72dc4d35b34147ce69d691aa2937e3
|
||||
16842837,4c903ddf3b9cd49a952a3889fc2c5573
|
||||
16842836,a304f875b846d65498366479fbf34568
|
||||
16843076,1b11a34d5c6cee280c727938ee96054b
|
||||
16843077,ff170af78a0a674445f16e24394546c0
|
||||
16843074,ba8bd10757ab9a4446f024952bf3f1e3
|
||||
16843075,b34ec8f0f5f92acf230925c89eacec65
|
||||
16842832,3b10180dc99ab99568b51010d89c655c
|
||||
16843072,d752bd5dd907feec915d036d76707ee5
|
||||
16843073,168e43895b105169862fa2e3c205529b
|
||||
16842834,58efc828918aa006d5af09e32fe7799b
|
||||
16843085,b30c099494e63d26f755d58ba109136a
|
||||
16842841,2c471142bddf9a982a48e0ecb52cbb8
|
||||
16843082,5574b9699d71e02f3efb48f3712da8bf
|
||||
16843080,4945e39d1260ff273c49d39dfc58c2a8
|
||||
16842843,bfc9dce4c1ccef959c57360fb9f70205
|
||||
16843108,4e225dd49c0231b617a15ded1ba6cb0a
|
||||
16843109,35715377a038019c56925b2e661cfdab
|
||||
16843105,3b91182484dc677a0bf27263e612d818
|
||||
16843106,affab7221afa03df4b7306b9ce50be7f
|
||||
16843107,e3710bc197d17e0dc78ae3f607c46048
|
||||
16777217,9012132a1d0f770eca67e62a68247137
|
||||
16777219,58fc65723143afeb33f742c17e028c94
|
||||
16777220,1d5e2088f7137e304366873dd829ca98
|
||||
16777221,66a18fa3f554756edc12bf1a08586bc8
|
||||
16777222,4007295f7bdae0b78a6e47a9d64521
|
||||
16777228,c154160ce7b52d4bdc220fc954edf796
|
||||
16777229,2400808c6f442f2663b6869e4930c879
|
||||
16777230,7ae3b31e8e0f2f22f50fbf224e1fe4f7
|
||||
16777231,fe5698e183b10037e38f979a411489b8
|
||||
16777232,aeae00c7b4a95ff05423c1629bf3ad7e
|
||||
16777233,72153ea3d60930cebf4c0d37fac89102
|
||||
16777235,f517ab768fbb35e275440b74b6631bfc
|
||||
16777236,623df9298630687873579ea16bb97e7b
|
||||
16777237,6984cb9e6a322728be736860b97b971a
|
||||
16777238,6947378f4e2abb24b47e2b943945b16f
|
||||
16777239,55a585682bf0569a60a71a66f031ca2
|
||||
16777240,f653295b0c48244dc2aa68fc5b94fa29
|
||||
16777241,c213fb7ee968403b24ff6ede98686add
|
||||
16777243,afd641da6f3834b319b761ba6d72ff74
|
||||
16777244,8d822c710a221b8a407b2def97885470
|
||||
16777246,9c99187cc6fd9c958417b4736772e4d3
|
||||
16777251,6418210d69669c4a602148ed42ab2ecd
|
||||
16777253,afe51ea56dc8c831f9b0b5ae02bac702
|
||||
16777254,95812c1d4021558b6a7f62521228c52a
|
||||
16777255,3a1252acb6fe968751d2b61d57557e09
|
||||
16777257,fd7caeeb5d16756028f19ba016ed1970
|
||||
16777258,6339b8043c05d19c6b15135eade95f94
|
||||
16777260,aa1ed939a8b275df9dc5474bc0477a33
|
||||
16777261,b631dcf219d3add3560f243ff6cceb75
|
||||
16777262,91eca0c33ac53fb155feb15db48c43de
|
||||
16777263,b681c19d7812c281b4b2feabb88697f4
|
||||
16777264,a2b07ae4f37a65fe1f5992826b578b02
|
||||
16777265,af5255a4dcb486e2ab11669fd3de8441
|
||||
16777266,8a4b2b706f219e52a261e342b47a3964
|
||||
16777269,921cb54cfb47ca9eca0edcf8e660e3cd
|
||||
16777270,b79b3a522d1e2f865eb1e9aeb63dc66a
|
||||
16777272,36e1c1dd8cbb267488e1669811319e7e
|
||||
16777273,c84a7d710228024c2e100a79a2c30e55
|
||||
16777274,a1674e3020689bae5680f29f937e5424
|
||||
16777277,46b34dd723f7efeb38f670925ee3824f
|
||||
16777281,da71e3e4f9a25c6621d2f0b40ffd1c72
|
||||
16777282,388109bb9b9b49c1f5bb604abee91671
|
||||
16777283,eb6912fd84b2d57ed3433acb3f85d3e6
|
||||
16777285,619967351702f1d570d4d0195bbbcc1e
|
||||
16777286,ebff74d54387fb154d5b467e01d92b64
|
||||
16777288,f8154dd7c9c1d397dd64eeb6569d7d34
|
||||
16777289,971cc6f827398c6c4755b310c6795672
|
||||
16777291,bb952ff9523f248ddaae56317e91a509
|
||||
16777293,e5c24577cf35a31bd217d206b88a7499
|
||||
16777294,f4c170867c75982e604358da611b26e3
|
||||
16777295,922200512d058ecc0ef19a0efcdb51bf
|
||||
16777296,39283c3dbafb10b2a732f9d6ef3e08b6
|
||||
16777297,3603ae881c41c957a89aaa30990c0040
|
||||
16777298,fbf9e47600457d091060b0f877458a83
|
||||
16777300,2b0d53bafa91c68bf59b5863354bd7ae
|
||||
16777301,50b99fabae858e971eb02ed5146fd63a
|
||||
16777302,7a32eac396b4cf3930ba9ca7b5d8dbae
|
||||
16777303,115f1e956219026bb9cca0bcafb2b11b
|
||||
16777304,afb2f032a96d859ca5f24d8ff129bd64
|
||||
16777305,372b3a0fd7c09f64f3cfcab89f03a9a0
|
||||
16777306,e4b6233ac91337dcc3940e309d21c3c
|
||||
16777311,d290638555ce76ce3053c70fdacf7d55
|
||||
5242880,8099ff561e194072c9086dea38757a89
|
||||
5242881,90b3d9a90a8cf3e21527fc8fe3b43c49
|
||||
5242882,c9806dd45be8ebed3e4ab94f66e65212
|
||||
5242883,f382ded5f9a4299e3879dea4f7fe1c50
|
||||
5242884,27af08a994f76a2a08ec8671d14fdcc2
|
||||
5242885,9969ce4355ae7338470461f48f4e5ef5
|
||||
5242886,39208e0b0f070629cad494da5fb95f0d
|
||||
5242887,678e63329d3d813f22e0f15006a93768
|
||||
5242888,694ffe9efa49193780d4b757115c9064
|
||||
5242889,9080a51ccefd23f9924bae9a854e7b49
|
||||
5242890,5f1d51ccd1b4adf141707907233f8379
|
||||
5242891,73df45f45e0b7484ef51441ad0e50604
|
||||
5242892,c9e52234c475354483dc3e9e6386af61
|
||||
5242893,3c3ee1df989ecf5de70a5673acfa33b8
|
||||
5242894,468cc8b546e1586406b78ad733976f5f
|
||||
5242895,e546a7afaaa6c6729e3b062fc4ace4ae
|
||||
10
res/font.txt
Normal file
10
res/font.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# This file NEEDS to be in UTF-8 format!
|
||||
!"#$%&'()*+,-./
|
||||
0123456789:;<=>?
|
||||
@ABCDEFGHIJKLMNO
|
||||
PQRSTUVWXYZ[\]^_
|
||||
'abcdefghijklmno
|
||||
pqrstuvwxyz{|}~⌂
|
||||
ÇüéâäàåçêëèïîìÄÅ
|
||||
ÉæÆôöòûùÿÖÜø£Ø×ƒ
|
||||
áíóúñѪº¿®¬½¼¡«»
|
||||
579
res/lang/en_US.lang
Normal file
579
res/lang/en_US.lang
Normal file
|
|
@ -0,0 +1,579 @@
|
|||
|
||||
gui.done=Done
|
||||
gui.cancel=Cancel
|
||||
gui.toMenu=Back to title screen
|
||||
gui.up=Up
|
||||
gui.down=Down
|
||||
gui.yes=Yes
|
||||
gui.no=No
|
||||
|
||||
menu.singleplayer=Singleplayer
|
||||
menu.multiplayer=Multiplayer
|
||||
menu.mods=Mods and Texture Packs
|
||||
menu.options=Options...
|
||||
menu.quit=Quit Game
|
||||
|
||||
selectWorld.title=Select World
|
||||
selectWorld.empty=empty
|
||||
selectWorld.world=World
|
||||
selectWorld.select=Play Selected World
|
||||
selectWorld.create=Create New World
|
||||
selectWorld.createDemo=Play New Demo World
|
||||
selectWorld.delete=Delete
|
||||
selectWorld.rename=Rename
|
||||
selectWorld.deleteQuestion=Are you sure you want to delete this world?
|
||||
selectWorld.deleteWarning=will be lost forever! (A long time!)
|
||||
selectWorld.deleteButton=Delete
|
||||
selectWorld.renameButton=Rename
|
||||
selectWorld.renameTitle=Rename World
|
||||
selectWorld.conversion=Must be converted!
|
||||
selectWorld.newWorld=New World
|
||||
selectWorld.enterName=World Name
|
||||
selectWorld.resultFolder=Will be saved in:
|
||||
selectWorld.enterSeed=Seed for the World Generator
|
||||
selectWorld.seedInfo=Leave blank for a random seed
|
||||
|
||||
multiplayer.title=Play Multiplayer
|
||||
multiplayer.connect=Connect
|
||||
multiplayer.info1=Minecraft Multiplayer is currently not finished, but there
|
||||
multiplayer.info2=is some buggy early testing going on.
|
||||
multiplayer.ipinfo=Enter the IP of a server to connect to it:
|
||||
|
||||
multiplayer.downloadingTerrain=Downloading terrain
|
||||
|
||||
multiplayer.stopSleeping=Leave Bed
|
||||
|
||||
demo.day.1=This demo will last five game days, do your best!
|
||||
demo.day.2=Day Two
|
||||
demo.day.3=Day Three
|
||||
demo.day.4=Day Four
|
||||
demo.day.5=This is your last day!
|
||||
demo.day.warning=Your time is almost up!
|
||||
demo.day.6=You have passed your fifth day, use F2 to save a screenshot of your creation
|
||||
demo.reminder=The demo time has expired, buy the game to continue or start a new world!
|
||||
demo.help.movement=Use %1$s, %2$s, %3$s, %4$s and the mouse to move around
|
||||
demo.help.jump=Jump by pressing %1$s
|
||||
demo.help.inventory=Use %1$s to open your inventory
|
||||
|
||||
connect.connecting=Connecting to the server...
|
||||
connect.authorizing=Logging in...
|
||||
connect.failed=Failed to connect to the server
|
||||
|
||||
disconnect.genericReason=%s
|
||||
disconnect.disconnected=Disconnected by Server
|
||||
disconnect.lost=Connection Lost
|
||||
disconnect.kicked=Was kicked from the game
|
||||
disconnect.timeout=Timed out
|
||||
disconnect.closed=Connection closed
|
||||
disconnect.loginFailed=Failed to login
|
||||
disconnect.loginFailedInfo=Failed to login: %s
|
||||
disconnect.quitting=Quitting
|
||||
disconnect.endOfStream=End of stream
|
||||
disconnect.overflow=Buffer overflow
|
||||
|
||||
options.off=OFF
|
||||
options.on=ON
|
||||
options.title=Options
|
||||
options.controls=Controls...
|
||||
options.video=Video Settings...
|
||||
options.videoTitle=Video Settings
|
||||
options.music=Music
|
||||
options.sound=Sound
|
||||
options.invertMouse=Invert Mouse
|
||||
options.sensitivity=Sensitivity
|
||||
options.sensitivity.min=*yawn*
|
||||
options.sensitivity.max=HYPERSPEED!!!
|
||||
options.renderDistance=Render Distance
|
||||
options.renderDistance.tiny=Tiny
|
||||
options.renderDistance.short=Short
|
||||
options.renderDistance.normal=Normal
|
||||
options.renderDistance.far=Far
|
||||
options.viewBobbing=View Bobbing
|
||||
options.ao=Smooth Lighting
|
||||
options.anaglyph=3D Anaglyph
|
||||
options.framerateLimit=Performance
|
||||
options.difficulty=Difficulty
|
||||
options.difficulty.peaceful=Peaceful
|
||||
options.difficulty.easy=Easy
|
||||
options.difficulty.normal=Normal
|
||||
options.difficulty.hard=Hard
|
||||
options.graphics=Graphics
|
||||
options.graphics.fancy=Fancy
|
||||
options.graphics.fast=Fast
|
||||
options.guiScale=GUI Scale
|
||||
options.guiScale.auto=Auto
|
||||
options.guiScale.small=Small
|
||||
options.guiScale.normal=Normal
|
||||
options.guiScale.large=Large
|
||||
options.advancedOpengl=Advanced OpenGL
|
||||
|
||||
performance.max=Max FPS
|
||||
performance.balanced=Balanced
|
||||
performance.powersaver=Power saver
|
||||
|
||||
controls.title=Controls
|
||||
|
||||
key.forward=Forward
|
||||
key.left=Left
|
||||
key.back=Back
|
||||
key.right=Right
|
||||
key.jump=Jump
|
||||
key.inventory=Inventory
|
||||
key.drop=Drop
|
||||
key.chat=Chat
|
||||
key.fog=Toggle Fog
|
||||
key.sneak=Sneak
|
||||
key.playerlist=List players
|
||||
|
||||
texturePack.openFolder=Open texture pack folder
|
||||
texturePack.title=Select Texture Pack
|
||||
texturePack.folderInfo=(Place texture pack files here)
|
||||
|
||||
tile.stone.name=Stone
|
||||
tile.stone.desc=
|
||||
tile.grass.name=Grass
|
||||
tile.grass.desc=
|
||||
tile.dirt.name=Dirt
|
||||
tile.dirt.desc=
|
||||
tile.stonebrick.name=Cobblestone
|
||||
tile.stonebrick.desc=
|
||||
tile.wood.name=Wooden Planks
|
||||
tile.wood.desc=
|
||||
tile.sapling.name=Sapling
|
||||
tile.sapling.desc=
|
||||
tile.bedrock.name=Bedrock
|
||||
tile.bedrock.desc=
|
||||
tile.water.name=Water
|
||||
tile.water.desc=
|
||||
tile.lava.name=Lava
|
||||
tile.lava.desc=
|
||||
tile.sand.name=Sand
|
||||
tile.sand.desc=
|
||||
tile.sandStone.name=Sandstone
|
||||
tile.sand.desc=
|
||||
tile.gravel.name=Gravel
|
||||
tile.gravel.desc=
|
||||
tile.oreGold.name=Gold Ore
|
||||
tile.oreGold.desc=
|
||||
tile.oreIron.name=Iron Ore
|
||||
tile.oreIron.desc=
|
||||
tile.oreCoal.name=Coal Ore
|
||||
tile.oreCoal.desc=
|
||||
tile.log.name=Wood
|
||||
tile.log.desc=
|
||||
tile.leaves.name=Leaves
|
||||
tile.leaves.desc=
|
||||
tile.sponge.name=Sponge
|
||||
tile.sponge.desc=
|
||||
tile.glass.name=Glass
|
||||
tile.glass.desc=
|
||||
tile.cloth.name=Wool
|
||||
tile.cloth.desc=
|
||||
tile.flower.name=Flower
|
||||
tile.flower.desc=
|
||||
tile.rose.name=Rose
|
||||
tile.rose.desc=
|
||||
tile.mushroom.name=Mushroom
|
||||
tile.mushroom.desc=
|
||||
tile.blockGold.name=Block of Gold
|
||||
tile.blockGold.desc=
|
||||
tile.blockIron.name=Block of Iron
|
||||
tile.blockIron.desc=
|
||||
tile.stoneSlab.stone.name=Stone Slab
|
||||
tile.stoneSlab.stone.desc=
|
||||
tile.stoneSlab.sand.name=Sandstone Slab
|
||||
tile.stoneSlab.sand.desc=
|
||||
tile.stoneSlab.wood.name=Wooden Slab
|
||||
tile.stoneSlab.wood.desc=
|
||||
tile.stoneSlab.cobble.name=Stone Slab
|
||||
tile.stoneSlab.cobble.desc=
|
||||
tile.brick.name=Bricks
|
||||
tile.brick.desc=
|
||||
tile.tnt.name=TNT
|
||||
tile.tnt.desc=
|
||||
tile.bookshelf.name=Bookshelf
|
||||
tile.bookshelf.desc=
|
||||
tile.stoneMoss.name=Moss Stone
|
||||
tile.stoneMoss.desc=
|
||||
tile.obsidian.name=Obsidian
|
||||
tile.obsidian.desc=
|
||||
tile.torch.name=Torch
|
||||
tile.torch.desc=
|
||||
tile.fire.name=Fire
|
||||
tile.fire.desc=
|
||||
tile.mobSpawner.name=Monster Spawner
|
||||
tile.mobSpawner.desc=
|
||||
tile.stairsWood.name=Wooden Stairs
|
||||
tile.stairsWood.desc=
|
||||
tile.chest.name=Chest
|
||||
tile.chest.desc=
|
||||
tile.redstoneDust.name=Redstone Dust
|
||||
tile.redstoneDust.desc=
|
||||
tile.oreDiamond.name=Diamond Ore
|
||||
tile.oreDiamond.desc=
|
||||
tile.blockDiamond.name=Block of Diamond
|
||||
tile.blockDiamond.desc=
|
||||
tile.workbench.name=Crafting Table
|
||||
tile.workbench.desc=
|
||||
tile.crops.name=Crops
|
||||
tile.crops.desc=
|
||||
tile.farmland.name=Farmland
|
||||
tile.farmland.desc=
|
||||
tile.furnace.name=Furnace
|
||||
tile.furnace.desc=
|
||||
tile.sign.name=Sign
|
||||
tile.sign.desc=
|
||||
tile.doorWood.name=Wooden Door
|
||||
tile.doorWood.desc=
|
||||
tile.ladder.name=Ladder
|
||||
tile.ladder.desc=
|
||||
tile.rail.name=Rail
|
||||
tile.rail.desc=
|
||||
tile.goldenRail.name=Powered Rail
|
||||
tile.goldenRail.desc=
|
||||
tile.detectorRail.name=Detector Rail
|
||||
tile.detectorRail.desc=
|
||||
tile.stairsStone.name=Stone Stairs
|
||||
tile.stairsStone.desc=
|
||||
tile.lever.name=Lever
|
||||
tile.lever.desc=
|
||||
tile.pressurePlate.name=Pressure Plate
|
||||
tile.pressurePlate.desc=
|
||||
tile.doorIron.name=Iron Door
|
||||
tile.doorIron.desc=
|
||||
tile.oreRedstone.name=Redstone Ore
|
||||
tile.oreRedstone.desc=
|
||||
tile.notGate.name=Redstone Torch
|
||||
tile.notGate.desc=
|
||||
tile.button.name=Button
|
||||
tile.button.desc=
|
||||
tile.snow.name=Snow
|
||||
tile.snow.desc=
|
||||
tile.ice.name=Ice
|
||||
tile.ice.desc=
|
||||
tile.cactus.name=Cactus
|
||||
tile.cactus.desc=
|
||||
tile.clay.name=Clay
|
||||
tile.clay.desc=
|
||||
tile.reeds.name=Sugar cane
|
||||
tile.reeds.desc=
|
||||
tile.jukebox.name=Jukebox
|
||||
tile.jukebox.desc=
|
||||
tile.fence.name=Fence
|
||||
tile.fence.desc=
|
||||
tile.pumpkin.name=Pumpkin
|
||||
tile.pumpkin.desc=
|
||||
tile.litpumpkin.name=Jack 'o' Lantern
|
||||
tile.litpumpkin.desc=
|
||||
tile.hellrock.name=Netherrack
|
||||
tile.hellrock.desc=
|
||||
tile.hellsand.name=Soul Sand
|
||||
tile.hellsand.desc=
|
||||
tile.lightgem.name=Glowstone
|
||||
tile.lightgem.desc=
|
||||
tile.portal.name=Portal
|
||||
tile.portal.desc=
|
||||
tile.cloth.black.name=Black Wool
|
||||
tile.cloth.black.desc=
|
||||
tile.cloth.red.name=Red Wool
|
||||
tile.cloth.red.desc=
|
||||
tile.cloth.green.name=Green Wool
|
||||
tile.cloth.green.desc=
|
||||
tile.cloth.brown.name=Brown Wool
|
||||
tile.cloth.brown.desc=
|
||||
tile.cloth.blue.name=Blue Wool
|
||||
tile.cloth.blue.desc=
|
||||
tile.cloth.purple.name=Purple Wool
|
||||
tile.cloth.purple.desc=
|
||||
tile.cloth.cyan.name=Cyan Wool
|
||||
tile.cloth.cyan.desc=
|
||||
tile.cloth.silver.name=Light Gray Wool
|
||||
tile.cloth.silver.desc=
|
||||
tile.cloth.gray.name=Gray Wool
|
||||
tile.cloth.gray.desc=
|
||||
tile.cloth.pink.name=Pink Wool
|
||||
tile.cloth.pink.desc=
|
||||
tile.cloth.lime.name=Lime Wool
|
||||
tile.cloth.lime.desc=
|
||||
tile.cloth.yellow.name=Yellow Wool
|
||||
tile.cloth.yellow.desc=
|
||||
tile.cloth.lightBlue.name=Light Blue Wool
|
||||
tile.cloth.lightBlue.desc=
|
||||
tile.cloth.magenta.name=Magenta Wool
|
||||
tile.cloth.magenta.desc=
|
||||
tile.cloth.orange.name=Orange Wool
|
||||
tile.cloth.orange.desc=
|
||||
tile.cloth.white.name=Wool
|
||||
tile.cloth.white.desc=
|
||||
tile.oreLapis.name=Lapis Lazuli Ore
|
||||
tile.oreLapis.desc=
|
||||
tile.blockLapis.name=Lapis Lazuli Block
|
||||
tile.blockLapis.desc=
|
||||
tile.dispenser.name=Dispenser
|
||||
tile.dispenser.desc=
|
||||
tile.musicBlock.name=Note Block
|
||||
tile.musicBlock.desc=
|
||||
tile.cake.name=Cake
|
||||
tile.cake.desc=
|
||||
tile.bed.name=Bed
|
||||
tile.bed.desc=
|
||||
tile.bed.occupied=This bed is occupied
|
||||
tile.bed.noSleep=You can only sleep at night
|
||||
tile.bed.notValid=Your home bed was missing or obstructed
|
||||
tile.lockedchest.name=Locked chest
|
||||
tile.lockedchest.desc=
|
||||
tile.trapdoor.name=Trapdoor
|
||||
tile.trapdoor.desc=
|
||||
tile.web.name=Cobweb
|
||||
tile.web.desc=
|
||||
tile.stonebricksmooth.name=Stone Bricks
|
||||
tile.stonebricksmooth.desc=
|
||||
tile.pistonBase.name=Piston
|
||||
tile.pistonBase.desc=
|
||||
tile.pistonStickyBase.name=Sticky Piston
|
||||
tile.pistonStickyBase.desc=
|
||||
|
||||
item.shovelIron.name=Iron Shovel
|
||||
item.shovelIron.desc=
|
||||
item.pickaxeIron.name=Iron Pickaxe
|
||||
item.pickaxeIron.desc=
|
||||
item.hatchetIron.name=Iron Axe
|
||||
item.hatchetIron.desc=
|
||||
item.flintAndSteel.name=Flint and Steel
|
||||
item.flintAndSteel.desc=
|
||||
item.apple.name=Apple
|
||||
item.apple.desc=
|
||||
item.cookie.name=Cookie
|
||||
item.cookie.desc=
|
||||
item.bow.name=Bow
|
||||
item.bow.desc=
|
||||
item.arrow.name=Arrow
|
||||
item.arrow.desc=
|
||||
item.coal.name=Coal
|
||||
item.coal.desc=
|
||||
item.charcoal.name=Charcoal
|
||||
item.charcoal.desc=
|
||||
item.emerald.name=Diamond
|
||||
item.emerald.desc=
|
||||
item.ingotIron.name=Iron Ingot
|
||||
item.ingotIron.desc=
|
||||
item.ingotGold.name=Gold Ingot
|
||||
item.ingotGold.desc=
|
||||
item.swordIron.name=Iron Sword
|
||||
item.swordIron.desc=
|
||||
item.swordWood.name=Wooden Sword
|
||||
item.swordWood.desc=
|
||||
item.shovelWood.name=Wooden Shovel
|
||||
item.shovelWood.desc=
|
||||
item.pickaxeWood.name=Wooden Pickaxe
|
||||
item.pickaxeWood.desc=
|
||||
item.hatchetWood.name=Wooden Axe
|
||||
item.hatchetWood.desc=
|
||||
item.swordStone.name=Stone Sword
|
||||
item.swordStone.desc=
|
||||
item.shovelStone.name=Stone Shovel
|
||||
item.shovelStone.desc=
|
||||
item.pickaxeStone.name=Stone Pickaxe
|
||||
item.pickaxeStone.desc=
|
||||
item.hatchetStone.name=Stone Axe
|
||||
item.hatchetStone.desc=
|
||||
item.swordDiamond.name=Diamond Sword
|
||||
item.swordDiamond.desc=
|
||||
item.shovelDiamond.name=Diamond Shovel
|
||||
item.shovelDiamond.desc=
|
||||
item.pickaxeDiamond.name=Diamond Pickaxe
|
||||
item.pickaxeDiamond.desc=
|
||||
item.hatchetDiamond.name=Diamond Axe
|
||||
item.hatchetDiamond.desc=
|
||||
item.stick.name=Stick
|
||||
item.stick.desc=
|
||||
item.bowl.name=Bowl
|
||||
item.bowl.desc=
|
||||
item.mushroomStew.name=Mushroom Stew
|
||||
item.mushroomStew.desc=
|
||||
item.swordGold.name=Golden Sword
|
||||
item.swordGold.desc=
|
||||
item.shovelGold.name=Golden Shovel
|
||||
item.shovelGold.desc=
|
||||
item.pickaxeGold.name=Golden Pickaxe
|
||||
item.pickaxeGold.desc=
|
||||
item.hatchetGold.name=Golden Axe
|
||||
item.hatchetGold.desc=
|
||||
item.string.name=String
|
||||
item.string.desc=
|
||||
item.feather.name=Feather
|
||||
item.feather.desc=
|
||||
item.sulphur.name=Gunpowder
|
||||
item.sulphur.desc=
|
||||
item.hoeWood.name=Wooden Hoe
|
||||
item.hoeWood.desc=
|
||||
item.hoeStone.name=Stone Hoe
|
||||
item.hoeStone.desc=
|
||||
item.hoeIron.name=Iron Hoe
|
||||
item.hoeIron.desc=
|
||||
item.hoeDiamond.name=Diamond Hoe
|
||||
item.hoeDiamond.desc=
|
||||
item.hoeGold.name=Golden Hoe
|
||||
item.hoeGold.desc=
|
||||
item.seeds.name=Seeds
|
||||
item.seeds.desc=
|
||||
item.wheat.name=Wheat
|
||||
item.wheat.desc=
|
||||
item.bread.name=Bread
|
||||
item.bread.desc=
|
||||
item.helmetCloth.name=Leather Cap
|
||||
item.helmetCloth.desc=
|
||||
item.chestplateCloth.name=Leather Tunic
|
||||
item.chestplateCloth.desc=
|
||||
item.leggingsCloth.name=Leather Pants
|
||||
item.leggingsCloth.desc=
|
||||
item.bootsCloth.name=Leather Boots
|
||||
item.bootsCloth.desc=
|
||||
item.helmetChain.name=Chain Helmet
|
||||
item.helmetChain.desc=
|
||||
item.chestplateChain.name=Chain Chestplate
|
||||
item.chestplateChain.desc=
|
||||
item.leggingsChain.name=Chain Leggings
|
||||
item.leggingsChain.desc=
|
||||
item.bootsChain.name=Chain Boots
|
||||
item.bootsChain.desc=
|
||||
item.helmetIron.name=Iron Helmet
|
||||
item.helmetIron.desc=
|
||||
item.chestplateIron.name=Iron Chestplate
|
||||
item.chestplateIron.desc=
|
||||
item.leggingsIron.name=Iron Leggings
|
||||
item.leggingsIron.desc=
|
||||
item.bootsIron.name=Iron Boots
|
||||
item.bootsIron.desc=
|
||||
item.helmetDiamond.name=Diamond Helmet
|
||||
item.helmetDiamond.desc=
|
||||
item.chestplateDiamond.name=Diamond Chestplate
|
||||
item.chestplateDiamond.desc=
|
||||
item.leggingsDiamond.name=Diamond Leggings
|
||||
item.leggingsDiamond.desc=
|
||||
item.bootsDiamond.name=Diamond Boots
|
||||
item.bootsDiamond.desc=
|
||||
item.helmetGold.name=Golden Helmet
|
||||
item.helmetGold.desc=
|
||||
item.chestplateGold.name=Golden Chestplate
|
||||
item.chestplateGold.desc=
|
||||
item.leggingsGold.name=Golden Leggings
|
||||
item.leggingsGold.desc=
|
||||
item.bootsGold.name=Golden boots
|
||||
item.bootsGold.desc=
|
||||
item.flint.name=Flint
|
||||
item.flint.desc=
|
||||
item.porkchopRaw.name=Raw Porkchop
|
||||
item.porkchopRaw.desc=
|
||||
item.porkchopCooked.name=Cooked Porkchop
|
||||
item.porkchopCooked.desc=
|
||||
item.painting.name=Painting
|
||||
item.painting.desc=
|
||||
item.appleGold.name=Golden Apple
|
||||
item.appleGold.desc=
|
||||
item.sign.name=Sign
|
||||
item.sign.desc=
|
||||
item.doorWood.name=Wooden Door
|
||||
item.doorWood.desc=
|
||||
item.bucket.name=Bucket
|
||||
item.bucket.desc=
|
||||
item.bucketWater.name=Water Bucket
|
||||
item.bucketWater.desc=
|
||||
item.bucketLava.name=Lava bucket
|
||||
item.bucketLava.desc=
|
||||
item.minecart.name=Minecart
|
||||
item.minecart.desc=
|
||||
item.saddle.name=Saddle
|
||||
item.saddle.desc=
|
||||
item.doorIron.name=Iron Door
|
||||
item.doorIron.desc=
|
||||
item.redstone.name=Redstone
|
||||
item.redstone.desc=
|
||||
item.snowball.name=Snowball
|
||||
item.snowball.desc=
|
||||
item.boat.name=Boat
|
||||
item.boat.desc=
|
||||
item.leather.name=Leather
|
||||
item.leather.desc=
|
||||
item.milk.name=Milk
|
||||
item.milk.desc=
|
||||
item.brick.name=Brick
|
||||
item.brick.desc=
|
||||
item.clay.name=Clay
|
||||
item.clay.desc=
|
||||
item.reeds.name=Sugar Canes
|
||||
item.reeds.desc=
|
||||
item.paper.name=Paper
|
||||
item.paper.desc=
|
||||
item.book.name=Book
|
||||
item.book.desc=
|
||||
item.slimeball.name=Slimeball
|
||||
item.slimeball.desc=
|
||||
item.minecartChest.name=Minecart with Chest
|
||||
item.minecartChest.desc=
|
||||
item.minecartFurnace.name=Minecart with Furnace
|
||||
item.minecartFurnace.desc=
|
||||
item.egg.name=Egg
|
||||
item.egg.desc=
|
||||
item.compass.name=Compass
|
||||
item.compass.desc=
|
||||
item.fishingRod.name=Fishing Rod
|
||||
item.fishingRod.desc=
|
||||
item.clock.name=Clock
|
||||
item.clock.desc=
|
||||
item.yellowDust.name=Glowstone Dust
|
||||
item.yellowDust.desc=
|
||||
item.fishRaw.name=Raw Fish
|
||||
item.fishRaw.desc=
|
||||
item.fishCooked.name=Cooked Fish
|
||||
item.fishCooked.desc=
|
||||
item.record.name=Music Disc
|
||||
item.record.desc=
|
||||
item.bone.name=Bone
|
||||
item.bone.desc=
|
||||
item.dyePowder.black.name=Ink Sac
|
||||
item.dyePowder.black.desc=
|
||||
item.dyePowder.red.name=Rose Red
|
||||
item.dyePowder.red.desc=
|
||||
item.dyePowder.green.name=Cactus Green
|
||||
item.dyePowder.green.desc=
|
||||
item.dyePowder.brown.name=Cocoa Beans
|
||||
item.dyePowder.brown.desc=
|
||||
item.dyePowder.blue.name=Lapis Lazuli
|
||||
item.dyePowder.blue.desc=
|
||||
item.dyePowder.purple.name=Purple Dye
|
||||
item.dyePowder.purple.desc=
|
||||
item.dyePowder.cyan.name=Cyan Dye
|
||||
item.dyePowder.cyan.desc=
|
||||
item.dyePowder.silver.name=Light Gray Dye
|
||||
item.dyePowder.silver.desc=
|
||||
item.dyePowder.gray.name=Gray Dye
|
||||
item.dyePowder.gray.desc=
|
||||
item.dyePowder.pink.name=Pink Dye
|
||||
item.dyePowder.pink.desc=
|
||||
item.dyePowder.lime.name=Lime Dye
|
||||
item.dyePowder.lime.desc=
|
||||
item.dyePowder.yellow.name=Dandelion Yellow
|
||||
item.dyePowder.yellow.desc=
|
||||
item.dyePowder.lightBlue.name=Light Blue Dye
|
||||
item.dyePowder.lightBlue.desc=
|
||||
item.dyePowder.magenta.name=Magenta Dye
|
||||
item.dyePowder.magenta.desc=
|
||||
item.dyePowder.orange.name=Orange Dye
|
||||
item.dyePowder.orange.desc=
|
||||
item.dyePowder.white.name=Bone Meal
|
||||
item.dyePowder.white.desc=
|
||||
item.sugar.name=Sugar
|
||||
item.sugar.desc=
|
||||
item.cake.name=Cake
|
||||
item.cake.desc=
|
||||
item.bed.name=Bed
|
||||
item.bed.desc=
|
||||
item.diode.name=Redstone Repeater
|
||||
item.diode.desc=
|
||||
item.map.name=Map
|
||||
item.map.desc=
|
||||
item.leaves.name=Leaves
|
||||
item.leaves.desc=
|
||||
item.shears.name=Shears
|
||||
item.shears.desc=
|
||||
81
res/lang/stats_US.lang
Normal file
81
res/lang/stats_US.lang
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
gui.achievements=Achievements
|
||||
gui.stats=Statistics
|
||||
|
||||
stat.generalButton=General
|
||||
stat.blocksButton=Blocks
|
||||
stat.itemsButton=Items
|
||||
|
||||
stat.used=Times Used
|
||||
stat.mined=Times Mined
|
||||
stat.depleted=Times Depleted
|
||||
stat.crafted=Times Crafted
|
||||
|
||||
stat.startGame=Times played
|
||||
stat.createWorld=Worlds played
|
||||
stat.loadWorld=Saves loaded
|
||||
stat.joinMultiplayer=Multiplayer joins
|
||||
stat.leaveGame=Games quit
|
||||
|
||||
stat.playOneMinute=Minutes Played
|
||||
|
||||
stat.walkOneCm=Distance Walked
|
||||
stat.fallOneCm=Distance Fallen
|
||||
stat.swimOneCm=Distance Swum
|
||||
stat.flyOneCm=Distance Flown
|
||||
stat.climbOneCm=Distance Climbed
|
||||
stat.diveOneCm=Distance Dove
|
||||
stat.minecartOneCm=Distance by Minecart
|
||||
stat.boatOneCm=Distance by Boat
|
||||
stat.pigOneCm=Distance by Pig
|
||||
stat.jump=Jumps
|
||||
stat.drop=Items Dropped
|
||||
|
||||
stat.damageDealt=Damage Dealt
|
||||
stat.damageTaken=Damage Taken
|
||||
stat.deaths=Number of Deaths
|
||||
stat.mobKills=Mob Kills
|
||||
stat.playerKills=Player Kills
|
||||
stat.fishCaught=Fish Caught
|
||||
|
||||
stat.mineBlock=%1$s Mined
|
||||
stat.craftItem=%1$s Crafted
|
||||
stat.useItem=%1$s Used
|
||||
stat.breakItem=%1$s Depleted
|
||||
|
||||
achievement.get=Achievement get!
|
||||
|
||||
achievement.taken=Taken!
|
||||
|
||||
achievement.requires=Requires '%1$s'
|
||||
achievement.openInventory=Taking Inventory
|
||||
achievement.openInventory.desc=Press '%1$s' to open your inventory.
|
||||
achievement.mineWood=Getting Wood
|
||||
achievement.mineWood.desc=Attack a tree until a block of wood pops out
|
||||
achievement.buildWorkBench=Benchmarking
|
||||
achievement.buildWorkBench.desc=Craft a workbench with four blocks of planks
|
||||
achievement.buildPickaxe=Time to Mine!
|
||||
achievement.buildPickaxe.desc=Use planks and sticks to make a pickaxe
|
||||
achievement.buildFurnace=Hot Topic
|
||||
achievement.buildFurnace.desc=Construct a furnace out of eight stone blocks
|
||||
achievement.acquireIron=Acquire Hardware
|
||||
achievement.acquireIron.desc=Smelt an iron ingot
|
||||
achievement.buildHoe=Time to Farm!
|
||||
achievement.buildHoe.desc=Use planks and sticks to make a hoe
|
||||
achievement.makeBread=Bake Bread
|
||||
achievement.makeBread.desc=Turn wheat into bread
|
||||
achievement.bakeCake=The Lie
|
||||
achievement.bakeCake.desc=Wheat, sugar, milk and eggs!
|
||||
achievement.buildBetterPickaxe=Getting an Upgrade
|
||||
achievement.buildBetterPickaxe.desc=Construct a better pickaxe
|
||||
achievement.cookFish=Delicious Fish
|
||||
achievement.cookFish.desc=Catch and cook fish!
|
||||
achievement.onARail=On A Rail
|
||||
achievement.onARail.desc=Travel by minecart at least 1 km from where you started
|
||||
achievement.buildSword=Time to Strike!
|
||||
achievement.buildSword.desc=Use planks and sticks to make a sword
|
||||
achievement.killEnemy=Monster Hunter
|
||||
achievement.killEnemy.desc=Attack and destroy a monster
|
||||
achievement.killCow=Cow Tipper
|
||||
achievement.killCow.desc=Harvest some leather
|
||||
achievement.flyPig=When Pigs Fly
|
||||
achievement.flyPig.desc=Fly a pig off a cliff
|
||||
65
src/net/minecraft/achievement/Achievement.java
Normal file
65
src/net/minecraft/achievement/Achievement.java
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
package net.minecraft.achievement;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.statistics.StatBase;
|
||||
import net.minecraft.statistics.StatCollector;
|
||||
|
||||
public class Achievement extends StatBase<Achievement> {
|
||||
public final int field_25067_a;
|
||||
public final int field_27991_b;
|
||||
public final Achievement field_27992_c;
|
||||
private final String field_27063_l;
|
||||
public final ItemStack theItemStack;
|
||||
private boolean field_27062_m;
|
||||
|
||||
public Achievement(int var1, String var2, int var3, int var4, Item var5, Achievement var6) {
|
||||
this(var1, var2, var3, var4, new ItemStack(var5), var6);
|
||||
}
|
||||
|
||||
public Achievement(int var1, String var2, int var3, int var4, Block var5, Achievement var6) {
|
||||
this(var1, var2, var3, var4, new ItemStack(var5), var6);
|
||||
}
|
||||
|
||||
public Achievement(int var1, String var2, int var3, int var4, ItemStack var5, Achievement var6) {
|
||||
super(5242880 + var1, StatCollector.translateToLocal("achievement." + var2));
|
||||
this.theItemStack = var5;
|
||||
this.field_27063_l = StatCollector.translateToLocal("achievement." + var2 + ".desc");
|
||||
this.field_25067_a = var3;
|
||||
this.field_27991_b = var4;
|
||||
if(var3 < AchievementList.field_27114_a) {
|
||||
AchievementList.field_27114_a = var3;
|
||||
}
|
||||
|
||||
if(var4 < AchievementList.field_27113_b) {
|
||||
AchievementList.field_27113_b = var4;
|
||||
}
|
||||
|
||||
if(var3 > AchievementList.field_27112_c) {
|
||||
AchievementList.field_27112_c = var3;
|
||||
}
|
||||
|
||||
if(var4 > AchievementList.field_27111_d) {
|
||||
AchievementList.field_27111_d = var4;
|
||||
}
|
||||
|
||||
this.field_27992_c = var6;
|
||||
}
|
||||
|
||||
public Achievement func_27052_e() {
|
||||
this.field_27058_g = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Achievement func_27060_b() {
|
||||
this.field_27062_m = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Achievement func_27053_d() {
|
||||
super.func_27053_d();
|
||||
AchievementList.field_25129_a.add(this);
|
||||
return this;
|
||||
}
|
||||
}
|
||||
37
src/net/minecraft/achievement/AchievementList.java
Normal file
37
src/net/minecraft/achievement/AchievementList.java
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
package net.minecraft.achievement;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class AchievementList {
|
||||
public static int field_27114_a;
|
||||
public static int field_27113_b;
|
||||
public static int field_27112_c;
|
||||
public static int field_27111_d;
|
||||
public static List field_25129_a = new ArrayList();
|
||||
public static Achievement field_25128_b = (new Achievement(0, "openInventory", 0, 0, Item.book, (Achievement)null)).func_27052_e().func_27053_d();
|
||||
public static Achievement field_25131_c = (new Achievement(1, "mineWood", 2, 1, Block.wood, field_25128_b)).func_27053_d();
|
||||
public static Achievement field_25130_d = (new Achievement(2, "buildWorkBench", 4, -1, Block.workbench, field_25131_c)).func_27053_d();
|
||||
public static Achievement field_27110_i = (new Achievement(3, "buildPickaxe", 4, 2, Item.pickaxeWood, field_25130_d)).func_27053_d();
|
||||
public static Achievement field_27109_j = (new Achievement(4, "buildFurnace", 3, 4, Block.stoneOvenActive, field_27110_i)).func_27053_d();
|
||||
public static Achievement field_27108_k = (new Achievement(5, "acquireIron", 1, 4, Item.ingotIron, field_27109_j)).func_27053_d();
|
||||
public static Achievement field_27107_l = (new Achievement(6, "buildHoe", 2, -3, Item.hoeWood, field_25130_d)).func_27053_d();
|
||||
public static Achievement field_27106_m = (new Achievement(7, "makeBread", -1, -3, Item.bread, field_27107_l)).func_27053_d();
|
||||
public static Achievement field_27105_n = (new Achievement(8, "bakeCake", 0, -5, Item.cake, field_27107_l)).func_27053_d();
|
||||
public static Achievement field_27104_o = (new Achievement(9, "buildBetterPickaxe", 6, 2, Item.pickaxeStone, field_27110_i)).func_27053_d();
|
||||
public static Achievement field_27103_p = (new Achievement(10, "cookFish", 2, 6, Item.fishCooked, field_27109_j)).func_27053_d();
|
||||
public static Achievement field_27102_q = (new Achievement(11, "onARail", 2, 3, Block.minecartTrack, field_27108_k)).func_27060_b().func_27053_d();
|
||||
public static Achievement field_27101_r = (new Achievement(12, "buildSword", 6, -1, Item.swordWood, field_25130_d)).func_27053_d();
|
||||
public static Achievement field_27100_s = (new Achievement(13, "killEnemy", 8, -1, Item.bone, field_27101_r)).func_27053_d();
|
||||
public static Achievement field_27099_t = (new Achievement(14, "killCow", 7, -3, Item.leather, field_27101_r)).func_27053_d();
|
||||
public static Achievement field_27098_u = (new Achievement(15, "flyPig", 8, -4, Item.saddle, field_27099_t)).func_27060_b().func_27053_d();
|
||||
|
||||
public static void func_27097_a() {
|
||||
}
|
||||
|
||||
static {
|
||||
System.out.println(field_25129_a.size() + " achievements");
|
||||
}
|
||||
}
|
||||
36
src/net/minecraft/achievement/AchievementMap.java
Normal file
36
src/net/minecraft/achievement/AchievementMap.java
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
package net.minecraft.achievement;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class AchievementMap {
|
||||
public static AchievementMap field_25134_a = new AchievementMap();
|
||||
private Map field_25133_b = new HashMap();
|
||||
|
||||
private AchievementMap() {
|
||||
try {
|
||||
BufferedReader var1 = new BufferedReader(new InputStreamReader(AchievementMap.class.getResourceAsStream("/achievement/map.txt")));
|
||||
|
||||
while(true) {
|
||||
String var2 = var1.readLine();
|
||||
if(var2 == null) {
|
||||
var1.close();
|
||||
break;
|
||||
}
|
||||
|
||||
String[] var3 = var2.split(",");
|
||||
int var4 = Integer.parseInt(var3[0]);
|
||||
this.field_25133_b.put(Integer.valueOf(var4), var3[1]);
|
||||
}
|
||||
} catch (Exception var5) {
|
||||
var5.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static String func_25132_a(int var0) {
|
||||
return (String)field_25134_a.field_25133_b.get(Integer.valueOf(var0));
|
||||
}
|
||||
}
|
||||
569
src/net/minecraft/block/Block.java
Normal file
569
src/net/minecraft/block/Block.java
Normal file
|
|
@ -0,0 +1,569 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.stepsound.StepSound;
|
||||
import net.minecraft.block.stepsound.StepSoundSand;
|
||||
import net.minecraft.block.stepsound.StepSoundStone;
|
||||
import net.minecraft.block.tile.TileEntitySign;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityItem;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.entity.EnumMobType;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemCloth;
|
||||
import net.minecraft.item.ItemLeaves;
|
||||
import net.minecraft.item.ItemLog;
|
||||
import net.minecraft.item.ItemPiston;
|
||||
import net.minecraft.item.ItemSapling;
|
||||
import net.minecraft.item.ItemSlab;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.Vec3D;
|
||||
import net.minecraft.statistics.StatCollector;
|
||||
import net.minecraft.statistics.StatList;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class Block {
|
||||
public static final StepSound soundPowderFootstep = new StepSound("stone", 1.0F, 1.0F);
|
||||
public static final StepSound soundWoodFootstep = new StepSound("wood", 1.0F, 1.0F);
|
||||
public static final StepSound soundGravelFootstep = new StepSound("gravel", 1.0F, 1.0F);
|
||||
public static final StepSound soundGrassFootstep = new StepSound("grass", 1.0F, 1.0F);
|
||||
public static final StepSound soundStoneFootstep = new StepSound("stone", 1.0F, 1.0F);
|
||||
public static final StepSound soundMetalFootstep = new StepSound("stone", 1.0F, 1.5F);
|
||||
public static final StepSound soundGlassFootstep = new StepSoundStone("stone", 1.0F, 1.0F);
|
||||
public static final StepSound soundClothFootstep = new StepSound("cloth", 1.0F, 1.0F);
|
||||
public static final StepSound soundSandFootstep = new StepSoundSand("sand", 1.0F, 1.0F);
|
||||
public static final Block[] blocksList = new Block[256];
|
||||
public static final boolean[] tickOnLoad = new boolean[256];
|
||||
public static final boolean[] opaqueCubeLookup = new boolean[256];
|
||||
public static final boolean[] isBlockContainer = new boolean[256];
|
||||
public static final int[] lightOpacity = new int[256];
|
||||
public static final boolean[] canBlockGrass = new boolean[256];
|
||||
public static final int[] lightValue = new int[256];
|
||||
public static final boolean[] requiresSelfNotify = new boolean[256];
|
||||
public static final Block stone = (new BlockStone(1, 1)).setHardness(1.5F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("stone");
|
||||
public static final BlockGrass grass = (BlockGrass)(new BlockGrass(2)).setHardness(0.6F).setStepSound(soundGrassFootstep).setBlockName("grass");
|
||||
public static final Block dirt = (new BlockDirt(3, 2)).setHardness(0.5F).setStepSound(soundGravelFootstep).setBlockName("dirt");
|
||||
public static final Block cobblestone = (new Block(4, 16, Material.rock)).setHardness(2.0F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("stonebrick");
|
||||
public static final Block planks = (new Block(5, 4, Material.wood)).setHardness(2.0F).setResistance(5.0F).setStepSound(soundWoodFootstep).setBlockName("wood").setRequiresSelfNotify();
|
||||
public static final Block sapling = (new BlockSapling(6, 15)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("sapling").setRequiresSelfNotify();
|
||||
public static final Block bedrock = (new Block(7, 17, Material.rock)).setBlockUnbreakable().setResistance(6000000.0F).setStepSound(soundStoneFootstep).setBlockName("bedrock").disableStats();
|
||||
public static final Block waterMoving = (new BlockFlowing(8, Material.water)).setHardness(100.0F).setLightOpacity(3).setBlockName("water").disableStats().setRequiresSelfNotify();
|
||||
public static final Block waterStill = (new BlockStationary(9, Material.water)).setHardness(100.0F).setLightOpacity(3).setBlockName("water").disableStats().setRequiresSelfNotify();
|
||||
public static final Block lavaMoving = (new BlockFlowing(10, Material.lava)).setHardness(0.0F).setLightValue(1.0F).setLightOpacity(255).setBlockName("lava").disableStats().setRequiresSelfNotify();
|
||||
public static final Block lavaStill = (new BlockStationary(11, Material.lava)).setHardness(100.0F).setLightValue(1.0F).setLightOpacity(255).setBlockName("lava").disableStats().setRequiresSelfNotify();
|
||||
public static final Block sand = (new BlockSand(12, 18)).setHardness(0.5F).setStepSound(soundSandFootstep).setBlockName("sand");
|
||||
public static final Block gravel = (new BlockGravel(13, 19)).setHardness(0.6F).setStepSound(soundGravelFootstep).setBlockName("gravel");
|
||||
public static final Block oreGold = (new BlockOre(14, 32)).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("oreGold");
|
||||
public static final Block oreIron = (new BlockOre(15, 33)).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("oreIron");
|
||||
public static final Block oreCoal = (new BlockOre(16, 34)).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("oreCoal");
|
||||
public static final Block wood = (new BlockLog(17)).setHardness(2.0F).setStepSound(soundWoodFootstep).setBlockName("log").setRequiresSelfNotify();
|
||||
public static final BlockLeaves leaves = (BlockLeaves)(new BlockLeaves(18, 52)).setHardness(0.2F).setLightOpacity(1).setStepSound(soundGrassFootstep).setBlockName("leaves").disableStats().setRequiresSelfNotify();
|
||||
public static final Block sponge = (new BlockSponge(19)).setHardness(0.6F).setStepSound(soundGrassFootstep).setBlockName("sponge");
|
||||
public static final Block glass = (new BlockGlass(20, 49, Material.glass, false)).setHardness(0.3F).setStepSound(soundGlassFootstep).setBlockName("glass");
|
||||
public static final Block oreLapis = (new BlockOre(21, 160)).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("oreLapis");
|
||||
public static final Block blockLapis = (new Block(22, 144, Material.rock)).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("blockLapis");
|
||||
public static final Block dispenser = (new BlockDispenser(23)).setHardness(3.5F).setStepSound(soundStoneFootstep).setBlockName("dispenser").setRequiresSelfNotify();
|
||||
public static final Block sandStone = (new BlockSandStone(24)).setStepSound(soundStoneFootstep).setHardness(0.8F).setBlockName("sandStone");
|
||||
public static final Block musicBlock = (new BlockNote(25)).setHardness(0.8F).setBlockName("musicBlock").setRequiresSelfNotify();
|
||||
public static final Block bed = (new BlockBed(26)).setHardness(0.2F).setBlockName("bed").disableStats().setRequiresSelfNotify();
|
||||
public static final Block railPowered = (new BlockRail(27, 179, true)).setHardness(0.7F).setStepSound(soundMetalFootstep).setBlockName("goldenRail").setRequiresSelfNotify();
|
||||
public static final Block railDetector = (new BlockDetectorRail(28, 195)).setHardness(0.7F).setStepSound(soundMetalFootstep).setBlockName("detectorRail").setRequiresSelfNotify();
|
||||
public static final Block pistonStickyBase = (new BlockPistonBase(29, 106, true)).setBlockName("pistonStickyBase").setRequiresSelfNotify();
|
||||
public static final Block web = (new BlockWeb(30, 11)).setLightOpacity(1).setHardness(4.0F).setBlockName("web");
|
||||
public static final BlockTallGrass tallGrass = (BlockTallGrass)(new BlockTallGrass(31, 39)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("tallgrass");
|
||||
public static final BlockDeadBush deadBush = (BlockDeadBush)(new BlockDeadBush(32, 55)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("deadbush");
|
||||
public static final Block pistonBase = (new BlockPistonBase(33, 107, false)).setBlockName("pistonBase").setRequiresSelfNotify();
|
||||
public static final BlockPistonExtension pistonExtension = (BlockPistonExtension)(new BlockPistonExtension(34, 107)).setRequiresSelfNotify();
|
||||
public static final Block cloth = (new BlockCloth()).setHardness(0.8F).setStepSound(soundClothFootstep).setBlockName("cloth").setRequiresSelfNotify();
|
||||
public static final BlockPistonMoving pistonMoving = new BlockPistonMoving(36);
|
||||
public static final BlockFlower plantYellow = (BlockFlower)(new BlockFlower(37, 13)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("flower");
|
||||
public static final BlockFlower plantRed = (BlockFlower)(new BlockFlower(38, 12)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("rose");
|
||||
public static final BlockFlower mushroomBrown = (BlockFlower)(new BlockMushroom(39, 29)).setHardness(0.0F).setStepSound(soundGrassFootstep).setLightValue(2.0F / 16.0F).setBlockName("mushroom");
|
||||
public static final BlockFlower mushroomRed = (BlockFlower)(new BlockMushroom(40, 28)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("mushroom");
|
||||
public static final Block blockGold = (new BlockOreStorage(41, 23)).setHardness(3.0F).setResistance(10.0F).setStepSound(soundMetalFootstep).setBlockName("blockGold");
|
||||
public static final Block blockSteel = (new BlockOreStorage(42, 22)).setHardness(5.0F).setResistance(10.0F).setStepSound(soundMetalFootstep).setBlockName("blockIron");
|
||||
public static final Block stairDouble = (new BlockStep(43, true)).setHardness(2.0F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("stoneSlab");
|
||||
public static final Block stairSingle = (new BlockStep(44, false)).setHardness(2.0F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("stoneSlab");
|
||||
public static final Block brick = (new Block(45, 7, Material.rock)).setHardness(2.0F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("brick");
|
||||
public static final Block tnt = (new BlockTNT(46, 8)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("tnt");
|
||||
public static final Block bookShelf = (new BlockBookshelf(47, 35)).setHardness(1.5F).setStepSound(soundWoodFootstep).setBlockName("bookshelf");
|
||||
public static final Block cobblestoneMossy = (new Block(48, 36, Material.rock)).setHardness(2.0F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("stoneMoss");
|
||||
public static final Block obsidian = (new BlockObsidian(49, 37)).setHardness(10.0F).setResistance(2000.0F).setStepSound(soundStoneFootstep).setBlockName("obsidian");
|
||||
public static final Block torchWood = (new BlockTorch(50, 80)).setHardness(0.0F).setLightValue(15.0F / 16.0F).setStepSound(soundWoodFootstep).setBlockName("torch").setRequiresSelfNotify();
|
||||
public static final BlockFire fire = (BlockFire)(new BlockFire(51, 31)).setHardness(0.0F).setLightValue(1.0F).setStepSound(soundWoodFootstep).setBlockName("fire").disableStats().setRequiresSelfNotify();
|
||||
public static final Block mobSpawner = (new BlockMobSpawner(52, 65)).setHardness(5.0F).setStepSound(soundMetalFootstep).setBlockName("mobSpawner").disableStats();
|
||||
public static final Block stairCompactPlanks = (new BlockStairs(53, planks)).setBlockName("stairsWood").setRequiresSelfNotify();
|
||||
public static final Block chest = (new BlockChest(54)).setHardness(2.5F).setStepSound(soundWoodFootstep).setBlockName("chest").setRequiresSelfNotify();
|
||||
public static final Block redstoneWire = (new BlockRedstoneWire(55, 164)).setHardness(0.0F).setStepSound(soundPowderFootstep).setBlockName("redstoneDust").disableStats().setRequiresSelfNotify();
|
||||
public static final Block oreDiamond = (new BlockOre(56, 50)).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("oreDiamond");
|
||||
public static final Block blockDiamond = (new BlockOreStorage(57, 24)).setHardness(5.0F).setResistance(10.0F).setStepSound(soundMetalFootstep).setBlockName("blockDiamond");
|
||||
public static final Block workbench = (new BlockWorkbench(58)).setHardness(2.5F).setStepSound(soundWoodFootstep).setBlockName("workbench");
|
||||
public static final Block crops = (new BlockCrops(59, 88)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("crops").disableStats().setRequiresSelfNotify();
|
||||
public static final Block tilledField = (new BlockFarmland(60)).setHardness(0.6F).setStepSound(soundGravelFootstep).setBlockName("farmland");
|
||||
public static final Block stoneOvenIdle = (new BlockFurnace(61, false)).setHardness(3.5F).setStepSound(soundStoneFootstep).setBlockName("furnace").setRequiresSelfNotify();
|
||||
public static final Block stoneOvenActive = (new BlockFurnace(62, true)).setHardness(3.5F).setStepSound(soundStoneFootstep).setLightValue(14.0F / 16.0F).setBlockName("furnace").setRequiresSelfNotify();
|
||||
public static final Block signPost = (new BlockSign(63, TileEntitySign.class, true)).setHardness(1.0F).setStepSound(soundWoodFootstep).setBlockName("sign").disableStats().setRequiresSelfNotify();
|
||||
public static final Block doorWood = (new BlockDoor(64, Material.wood)).setHardness(3.0F).setStepSound(soundWoodFootstep).setBlockName("doorWood").disableStats().setRequiresSelfNotify();
|
||||
public static final Block ladder = (new BlockLadder(65, 83)).setHardness(0.4F).setStepSound(soundWoodFootstep).setBlockName("ladder").setRequiresSelfNotify();
|
||||
public static final Block minecartTrack = (new BlockRail(66, 128, false)).setHardness(0.7F).setStepSound(soundMetalFootstep).setBlockName("rail").setRequiresSelfNotify();
|
||||
public static final Block stairCompactCobblestone = (new BlockStairs(67, cobblestone)).setBlockName("stairsStone").setRequiresSelfNotify();
|
||||
public static final Block signWall = (new BlockSign(68, TileEntitySign.class, false)).setHardness(1.0F).setStepSound(soundWoodFootstep).setBlockName("sign").disableStats().setRequiresSelfNotify();
|
||||
public static final Block lever = (new BlockLever(69, 96)).setHardness(0.5F).setStepSound(soundWoodFootstep).setBlockName("lever").setRequiresSelfNotify();
|
||||
public static final Block pressurePlateStone = (new BlockPressurePlate(70, stone.blockIndexInTexture, EnumMobType.mobs, Material.rock)).setHardness(0.5F).setStepSound(soundStoneFootstep).setBlockName("pressurePlate").setRequiresSelfNotify();
|
||||
public static final Block doorSteel = (new BlockDoor(71, Material.iron)).setHardness(5.0F).setStepSound(soundMetalFootstep).setBlockName("doorIron").disableStats().setRequiresSelfNotify();
|
||||
public static final Block pressurePlatePlanks = (new BlockPressurePlate(72, planks.blockIndexInTexture, EnumMobType.everything, Material.wood)).setHardness(0.5F).setStepSound(soundWoodFootstep).setBlockName("pressurePlate").setRequiresSelfNotify();
|
||||
public static final Block oreRedstone = (new BlockRedstoneOre(73, 51, false)).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("oreRedstone").setRequiresSelfNotify();
|
||||
public static final Block oreRedstoneGlowing = (new BlockRedstoneOre(74, 51, true)).setLightValue(10.0F / 16.0F).setHardness(3.0F).setResistance(5.0F).setStepSound(soundStoneFootstep).setBlockName("oreRedstone").setRequiresSelfNotify();
|
||||
public static final Block torchRedstoneIdle = (new BlockRedstoneTorch(75, 115, false)).setHardness(0.0F).setStepSound(soundWoodFootstep).setBlockName("notGate").setRequiresSelfNotify();
|
||||
public static final Block torchRedstoneActive = (new BlockRedstoneTorch(76, 99, true)).setHardness(0.0F).setLightValue(0.5F).setStepSound(soundWoodFootstep).setBlockName("notGate").setRequiresSelfNotify();
|
||||
public static final Block button = (new BlockButton(77, stone.blockIndexInTexture)).setHardness(0.5F).setStepSound(soundStoneFootstep).setBlockName("button").setRequiresSelfNotify();
|
||||
public static final Block snow = (new BlockSnow(78, 66)).setHardness(0.1F).setStepSound(soundClothFootstep).setBlockName("snow");
|
||||
public static final Block ice = (new BlockIce(79, 67)).setHardness(0.5F).setLightOpacity(3).setStepSound(soundGlassFootstep).setBlockName("ice");
|
||||
public static final Block blockSnow = (new BlockSnowBlock(80, 66)).setHardness(0.2F).setStepSound(soundClothFootstep).setBlockName("snow");
|
||||
public static final Block cactus = (new BlockCactus(81, 70)).setHardness(0.4F).setStepSound(soundClothFootstep).setBlockName("cactus");
|
||||
public static final Block blockClay = (new BlockClay(82, 72)).setHardness(0.6F).setStepSound(soundGravelFootstep).setBlockName("clay");
|
||||
public static final Block reed = (new BlockReed(83, 73)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("reeds").disableStats();
|
||||
public static final Block jukebox = (new BlockJukeBox(84, 74)).setHardness(2.0F).setResistance(10.0F).setStepSound(soundStoneFootstep).setBlockName("jukebox").setRequiresSelfNotify();
|
||||
public static final Block fence = (new BlockFence(85, 4)).setHardness(2.0F).setResistance(5.0F).setStepSound(soundWoodFootstep).setBlockName("fence").setRequiresSelfNotify();
|
||||
public static final Block pumpkin = (new BlockPumpkin(86, 102, false)).setHardness(1.0F).setStepSound(soundWoodFootstep).setBlockName("pumpkin").setRequiresSelfNotify();
|
||||
public static final Block bloodStone = (new BlockNetherrack(87, 103)).setHardness(0.4F).setStepSound(soundStoneFootstep).setBlockName("hellrock");
|
||||
public static final Block slowSand = (new BlockSoulSand(88, 104)).setHardness(0.5F).setStepSound(soundSandFootstep).setBlockName("hellsand");
|
||||
public static final Block glowStone = (new BlockGlowStone(89, 105, Material.rock)).setHardness(0.3F).setStepSound(soundGlassFootstep).setLightValue(1.0F).setBlockName("lightgem");
|
||||
public static final BlockPortal portal = (BlockPortal)(new BlockPortal(90, 14)).setHardness(-1.0F).setStepSound(soundGlassFootstep).setLightValue(12.0F / 16.0F).setBlockName("portal");
|
||||
public static final Block pumpkinLantern = (new BlockPumpkin(91, 102, true)).setHardness(1.0F).setStepSound(soundWoodFootstep).setLightValue(1.0F).setBlockName("litpumpkin").setRequiresSelfNotify();
|
||||
public static final Block cake = (new BlockCake(92, 121)).setHardness(0.5F).setStepSound(soundClothFootstep).setBlockName("cake").disableStats().setRequiresSelfNotify();
|
||||
public static final Block redstoneRepeaterIdle = (new BlockRedstoneRepeater(93, false)).setHardness(0.0F).setStepSound(soundWoodFootstep).setBlockName("diode").disableStats().setRequiresSelfNotify();
|
||||
public static final Block redstoneRepeaterActive = (new BlockRedstoneRepeater(94, true)).setHardness(0.0F).setLightValue(10.0F / 16.0F).setStepSound(soundWoodFootstep).setBlockName("diode").disableStats().setRequiresSelfNotify();
|
||||
public static final Block lockedChest = (new BlockLockedChest(95)).setHardness(0.0F).setLightValue(1.0F).setStepSound(soundWoodFootstep).setBlockName("lockedchest").setTickOnLoad(true).setRequiresSelfNotify();
|
||||
public static final Block trapdoor = (new BlockTrapDoor(96, Material.wood)).setHardness(3.0F).setStepSound(soundWoodFootstep).setBlockName("trapdoor").disableStats().setRequiresSelfNotify();
|
||||
public int blockIndexInTexture;
|
||||
public final int blockID;
|
||||
protected float blockHardness;
|
||||
protected float blockResistance;
|
||||
protected boolean blockConstructorCalled;
|
||||
protected boolean enableStats;
|
||||
public double minX;
|
||||
public double minY;
|
||||
public double minZ;
|
||||
public double maxX;
|
||||
public double maxY;
|
||||
public double maxZ;
|
||||
public StepSound stepSound;
|
||||
public float blockParticleGravity;
|
||||
public final Material blockMaterial;
|
||||
public float slipperiness;
|
||||
private String blockName;
|
||||
|
||||
protected Block(int var1, Material var2) {
|
||||
this.blockConstructorCalled = true;
|
||||
this.enableStats = true;
|
||||
this.stepSound = soundPowderFootstep;
|
||||
this.blockParticleGravity = 1.0F;
|
||||
this.slipperiness = 0.6F;
|
||||
if(blocksList[var1] != null) {
|
||||
throw new IllegalArgumentException("Slot " + var1 + " is already occupied by " + blocksList[var1] + " when adding " + this);
|
||||
} else {
|
||||
this.blockMaterial = var2;
|
||||
blocksList[var1] = this;
|
||||
this.blockID = var1;
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
opaqueCubeLookup[var1] = this.isOpaqueCube();
|
||||
lightOpacity[var1] = this.isOpaqueCube() ? 255 : 0;
|
||||
canBlockGrass[var1] = !var2.getCanBlockGrass();
|
||||
isBlockContainer[var1] = false;
|
||||
}
|
||||
}
|
||||
|
||||
protected Block setRequiresSelfNotify() {
|
||||
requiresSelfNotify[this.blockID] = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
protected void setFireBurnRates() {
|
||||
}
|
||||
|
||||
protected Block(int var1, int var2, Material var3) {
|
||||
this(var1, var3);
|
||||
this.blockIndexInTexture = var2;
|
||||
}
|
||||
|
||||
protected Block setStepSound(StepSound var1) {
|
||||
this.stepSound = var1;
|
||||
return this;
|
||||
}
|
||||
|
||||
protected Block setLightOpacity(int var1) {
|
||||
lightOpacity[this.blockID] = var1;
|
||||
return this;
|
||||
}
|
||||
|
||||
protected Block setLightValue(float var1) {
|
||||
lightValue[this.blockID] = (int)(15.0F * var1);
|
||||
return this;
|
||||
}
|
||||
|
||||
protected Block setResistance(float var1) {
|
||||
this.blockResistance = var1 * 3.0F;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected Block setHardness(float var1) {
|
||||
this.blockHardness = var1;
|
||||
if(this.blockResistance < var1 * 5.0F) {
|
||||
this.blockResistance = var1 * 5.0F;
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
protected Block setBlockUnbreakable() {
|
||||
this.setHardness(-1.0F);
|
||||
return this;
|
||||
}
|
||||
|
||||
public float getHardness() {
|
||||
return this.blockHardness;
|
||||
}
|
||||
|
||||
protected Block setTickOnLoad(boolean var1) {
|
||||
tickOnLoad[this.blockID] = var1;
|
||||
return this;
|
||||
}
|
||||
|
||||
public void setBlockBounds(float var1, float var2, float var3, float var4, float var5, float var6) {
|
||||
this.minX = (double)var1;
|
||||
this.minY = (double)var2;
|
||||
this.minZ = (double)var3;
|
||||
this.maxX = (double)var4;
|
||||
this.maxY = (double)var5;
|
||||
this.maxZ = (double)var6;
|
||||
}
|
||||
|
||||
public boolean shouldSideBeRendered(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
return var1.getBlockMaterial(var2, var3, var4).isSolid();
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return this.getBlockTextureFromSide(var1);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
|
||||
AxisAlignedBB var7 = this.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
|
||||
if(var7 != null && var5.intersectsWith(var7)) {
|
||||
var6.add(var7);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return AxisAlignedBB.getBoundingBoxFromPool((double)var2 + this.minX, (double)var3 + this.minY, (double)var4 + this.minZ, (double)var2 + this.maxX, (double)var3 + this.maxY, (double)var4 + this.maxZ);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean canCollideCheck(int var1, boolean var2) {
|
||||
return this.isCollidable();
|
||||
}
|
||||
|
||||
public boolean isCollidable() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
}
|
||||
|
||||
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 10;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return this.blockID;
|
||||
}
|
||||
|
||||
public float blockStrength(EntityPlayer var1) {
|
||||
return this.blockHardness < 0.0F ? 0.0F : (!var1.canHarvestBlock(this) ? 1.0F / this.blockHardness / 100.0F : var1.getCurrentPlayerStrVsBlock(this) / this.blockHardness / 30.0F);
|
||||
}
|
||||
|
||||
public final void dropBlockAsItem(World var1, int var2, int var3, int var4, int var5) {
|
||||
this.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, 1.0F);
|
||||
}
|
||||
|
||||
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var7 = this.quantityDropped(var1.rand);
|
||||
|
||||
for(int var8 = 0; var8 < var7; ++var8) {
|
||||
if(var1.rand.nextFloat() <= var6) {
|
||||
int var9 = this.idDropped(var5, var1.rand);
|
||||
if(var9 > 0) {
|
||||
this.dropBlockAsItem_do(var1, var2, var3, var4, new ItemStack(var9, 1, this.damageDropped(var5)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void dropBlockAsItem_do(World var1, int var2, int var3, int var4, ItemStack var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
float var6 = 0.7F;
|
||||
double var7 = (double)(var1.rand.nextFloat() * var6) + (double)(1.0F - var6) * 0.5D;
|
||||
double var9 = (double)(var1.rand.nextFloat() * var6) + (double)(1.0F - var6) * 0.5D;
|
||||
double var11 = (double)(var1.rand.nextFloat() * var6) + (double)(1.0F - var6) * 0.5D;
|
||||
EntityItem var13 = new EntityItem(var1, (double)var2 + var7, (double)var3 + var9, (double)var4 + var11, var5);
|
||||
var13.delayBeforeCanPickup = 10;
|
||||
var1.entityJoinedWorld(var13);
|
||||
}
|
||||
}
|
||||
|
||||
protected int damageDropped(int var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public float getExplosionResistance(Entity var1) {
|
||||
return this.blockResistance / 5.0F;
|
||||
}
|
||||
|
||||
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
|
||||
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
|
||||
var5 = var5.addVector((double)(-var2), (double)(-var3), (double)(-var4));
|
||||
var6 = var6.addVector((double)(-var2), (double)(-var3), (double)(-var4));
|
||||
Vec3D var7 = var5.getIntermediateWithXValue(var6, this.minX);
|
||||
Vec3D var8 = var5.getIntermediateWithXValue(var6, this.maxX);
|
||||
Vec3D var9 = var5.getIntermediateWithYValue(var6, this.minY);
|
||||
Vec3D var10 = var5.getIntermediateWithYValue(var6, this.maxY);
|
||||
Vec3D var11 = var5.getIntermediateWithZValue(var6, this.minZ);
|
||||
Vec3D var12 = var5.getIntermediateWithZValue(var6, this.maxZ);
|
||||
if(!this.isVecInsideYZBounds(var7)) {
|
||||
var7 = null;
|
||||
}
|
||||
|
||||
if(!this.isVecInsideYZBounds(var8)) {
|
||||
var8 = null;
|
||||
}
|
||||
|
||||
if(!this.isVecInsideXZBounds(var9)) {
|
||||
var9 = null;
|
||||
}
|
||||
|
||||
if(!this.isVecInsideXZBounds(var10)) {
|
||||
var10 = null;
|
||||
}
|
||||
|
||||
if(!this.isVecInsideXYBounds(var11)) {
|
||||
var11 = null;
|
||||
}
|
||||
|
||||
if(!this.isVecInsideXYBounds(var12)) {
|
||||
var12 = null;
|
||||
}
|
||||
|
||||
Vec3D var13 = null;
|
||||
if(var7 != null && (var13 == null || var5.distanceTo(var7) < var5.distanceTo(var13))) {
|
||||
var13 = var7;
|
||||
}
|
||||
|
||||
if(var8 != null && (var13 == null || var5.distanceTo(var8) < var5.distanceTo(var13))) {
|
||||
var13 = var8;
|
||||
}
|
||||
|
||||
if(var9 != null && (var13 == null || var5.distanceTo(var9) < var5.distanceTo(var13))) {
|
||||
var13 = var9;
|
||||
}
|
||||
|
||||
if(var10 != null && (var13 == null || var5.distanceTo(var10) < var5.distanceTo(var13))) {
|
||||
var13 = var10;
|
||||
}
|
||||
|
||||
if(var11 != null && (var13 == null || var5.distanceTo(var11) < var5.distanceTo(var13))) {
|
||||
var13 = var11;
|
||||
}
|
||||
|
||||
if(var12 != null && (var13 == null || var5.distanceTo(var12) < var5.distanceTo(var13))) {
|
||||
var13 = var12;
|
||||
}
|
||||
|
||||
if(var13 == null) {
|
||||
return null;
|
||||
} else {
|
||||
byte var14 = -1;
|
||||
if(var13 == var7) {
|
||||
var14 = 4;
|
||||
}
|
||||
|
||||
if(var13 == var8) {
|
||||
var14 = 5;
|
||||
}
|
||||
|
||||
if(var13 == var9) {
|
||||
var14 = 0;
|
||||
}
|
||||
|
||||
if(var13 == var10) {
|
||||
var14 = 1;
|
||||
}
|
||||
|
||||
if(var13 == var11) {
|
||||
var14 = 2;
|
||||
}
|
||||
|
||||
if(var13 == var12) {
|
||||
var14 = 3;
|
||||
}
|
||||
|
||||
return new MovingObjectPosition(var2, var3, var4, var14, var13.addVector((double)var2, (double)var3, (double)var4));
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isVecInsideYZBounds(Vec3D var1) {
|
||||
return var1 == null ? false : var1.yCoord >= this.minY && var1.yCoord <= this.maxY && var1.zCoord >= this.minZ && var1.zCoord <= this.maxZ;
|
||||
}
|
||||
|
||||
private boolean isVecInsideXZBounds(Vec3D var1) {
|
||||
return var1 == null ? false : var1.xCoord >= this.minX && var1.xCoord <= this.maxX && var1.zCoord >= this.minZ && var1.zCoord <= this.maxZ;
|
||||
}
|
||||
|
||||
private boolean isVecInsideXYBounds(Vec3D var1) {
|
||||
return var1 == null ? false : var1.xCoord >= this.minX && var1.xCoord <= this.maxX && var1.yCoord >= this.minY && var1.yCoord <= this.maxY;
|
||||
}
|
||||
|
||||
public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) {
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
|
||||
return this.canPlaceBlockAt(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockId(var2, var3, var4);
|
||||
return var5 == 0 || blocksList[var5].blockMaterial.func_27090_g();
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
}
|
||||
|
||||
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
}
|
||||
|
||||
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) {
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
|
||||
var2.addStat(StatList.mineBlockStatArray[this.blockID], 1);
|
||||
this.dropBlockAsItem(var1, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
|
||||
}
|
||||
|
||||
public Block setBlockName(String var1) {
|
||||
this.blockName = "tile." + var1;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNameLocalizedForStats() {
|
||||
return StatCollector.translateToLocal(this.getBlockName() + ".name");
|
||||
}
|
||||
|
||||
public String getBlockName() {
|
||||
return this.blockName;
|
||||
}
|
||||
|
||||
public void playBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
|
||||
}
|
||||
|
||||
public boolean getEnableStats() {
|
||||
return this.enableStats;
|
||||
}
|
||||
|
||||
protected Block disableStats() {
|
||||
this.enableStats = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getMobilityFlag() {
|
||||
return this.blockMaterial.getMaterialMobility();
|
||||
}
|
||||
|
||||
static {
|
||||
Item.itemsList[cloth.blockID] = (new ItemCloth(cloth.blockID - 256)).setItemName("cloth");
|
||||
Item.itemsList[wood.blockID] = (new ItemLog(wood.blockID - 256)).setItemName("log");
|
||||
Item.itemsList[stairSingle.blockID] = (new ItemSlab(stairSingle.blockID - 256)).setItemName("stoneSlab");
|
||||
Item.itemsList[sapling.blockID] = (new ItemSapling(sapling.blockID - 256)).setItemName("sapling");
|
||||
Item.itemsList[leaves.blockID] = (new ItemLeaves(leaves.blockID - 256)).setItemName("leaves");
|
||||
Item.itemsList[pistonBase.blockID] = new ItemPiston(pistonBase.blockID - 256);
|
||||
Item.itemsList[pistonStickyBase.blockID] = new ItemPiston(pistonStickyBase.blockID - 256);
|
||||
|
||||
for(int var0 = 0; var0 < 256; ++var0) {
|
||||
if(blocksList[var0] != null && Item.itemsList[var0] == null) {
|
||||
Item.itemsList[var0] = new ItemBlock(var0 - 256);
|
||||
blocksList[var0].setFireBurnRates();
|
||||
}
|
||||
}
|
||||
|
||||
canBlockGrass[0] = true;
|
||||
StatList.func_25088_a();
|
||||
}
|
||||
}
|
||||
199
src/net/minecraft/block/BlockBed.java
Normal file
199
src/net/minecraft/block/BlockBed.java
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.math.ChunkCoordinates;
|
||||
import net.minecraft.util.ModelBed;
|
||||
import net.minecraft.world.EnumBedResult;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockBed extends Block {
|
||||
public static final int[][] field_22023_a = new int[][]{{0, 1}, {-1, 0}, {0, -1}, {1, 0}};
|
||||
|
||||
public BlockBed(int var1) {
|
||||
super(var1, 134, Material.cloth);
|
||||
this.setBounds();
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var1.singleplayerWorld) {
|
||||
return true;
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(!func_22020_d(var6)) {
|
||||
int var7 = func_22019_c(var6);
|
||||
var2 += field_22023_a[var7][0];
|
||||
var4 += field_22023_a[var7][1];
|
||||
if(var1.getBlockId(var2, var3, var4) != this.blockID) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
}
|
||||
|
||||
if(!var1.worldProvider.func_28108_d()) {
|
||||
double var16 = (double)var2 + 0.5D;
|
||||
double var17 = (double)var3 + 0.5D;
|
||||
double var11 = (double)var4 + 0.5D;
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
int var13 = func_22019_c(var6);
|
||||
var2 += field_22023_a[var13][0];
|
||||
var4 += field_22023_a[var13][1];
|
||||
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
var16 = (var16 + (double)var2 + 0.5D) / 2.0D;
|
||||
var17 = (var17 + (double)var3 + 0.5D) / 2.0D;
|
||||
var11 = (var11 + (double)var4 + 0.5D) / 2.0D;
|
||||
}
|
||||
|
||||
var1.newExplosion((Entity)null, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), 5.0F, true);
|
||||
return true;
|
||||
} else {
|
||||
if(func_22018_f(var6)) {
|
||||
EntityPlayer var14 = null;
|
||||
Iterator var8 = var1.playerEntities.iterator();
|
||||
|
||||
while(var8.hasNext()) {
|
||||
EntityPlayer var9 = (EntityPlayer)var8.next();
|
||||
if(var9.func_22057_E()) {
|
||||
ChunkCoordinates var10 = var9.playerLocation;
|
||||
if(var10.posX == var2 && var10.posY == var3 && var10.posZ == var4) {
|
||||
var14 = var9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(var14 != null) {
|
||||
var5.func_22061_a("tile.bed.occupied");
|
||||
return true;
|
||||
}
|
||||
|
||||
func_22022_a(var1, var2, var3, var4, false);
|
||||
}
|
||||
|
||||
EnumBedResult var15 = var5.goToSleep(var2, var3, var4);
|
||||
if(var15 == EnumBedResult.OK) {
|
||||
func_22022_a(var1, var2, var3, var4, true);
|
||||
return true;
|
||||
} else {
|
||||
if(var15 == EnumBedResult.NOT_POSSIBLE_NOW) {
|
||||
var5.func_22061_a("tile.bed.noSleep");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
if(var1 == 0) {
|
||||
return Block.planks.blockIndexInTexture;
|
||||
} else {
|
||||
int var3 = func_22019_c(var2);
|
||||
int var4 = ModelBed.field_22155_c[var3][var1];
|
||||
return func_22020_d(var2) ? (var4 == 2 ? this.blockIndexInTexture + 2 + 16 : (var4 != 5 && var4 != 4 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture + 1 + 16)) : (var4 == 3 ? this.blockIndexInTexture - 1 + 16 : (var4 != 5 && var4 != 4 ? this.blockIndexInTexture : this.blockIndexInTexture + 16));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
this.setBounds();
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = func_22019_c(var6);
|
||||
if(func_22020_d(var6)) {
|
||||
if(var1.getBlockId(var2 - field_22023_a[var7][0], var3, var4 - field_22023_a[var7][1]) != this.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
} else if(var1.getBlockId(var2 + field_22023_a[var7][0], var3, var4 + field_22023_a[var7][1]) != this.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
if(!var1.singleplayerWorld) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var6);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return func_22020_d(var1) ? 0 : Item.bed.shiftedIndex;
|
||||
}
|
||||
|
||||
private void setBounds() {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 9.0F / 16.0F, 1.0F);
|
||||
}
|
||||
|
||||
public static int func_22019_c(int var0) {
|
||||
return var0 & 3;
|
||||
}
|
||||
|
||||
public static boolean func_22020_d(int var0) {
|
||||
return (var0 & 8) != 0;
|
||||
}
|
||||
|
||||
public static boolean func_22018_f(int var0) {
|
||||
return (var0 & 4) != 0;
|
||||
}
|
||||
|
||||
public static void func_22022_a(World var0, int var1, int var2, int var3, boolean var4) {
|
||||
int var5 = var0.getBlockMetadata(var1, var2, var3);
|
||||
if(var4) {
|
||||
var5 |= 4;
|
||||
} else {
|
||||
var5 &= -5;
|
||||
}
|
||||
|
||||
var0.setBlockMetadataWithNotify(var1, var2, var3, var5);
|
||||
}
|
||||
|
||||
public static ChunkCoordinates func_22021_g(World var0, int var1, int var2, int var3, int var4) {
|
||||
int var5 = var0.getBlockMetadata(var1, var2, var3);
|
||||
int var6 = func_22019_c(var5);
|
||||
|
||||
for(int var7 = 0; var7 <= 1; ++var7) {
|
||||
int var8 = var1 - field_22023_a[var6][0] * var7 - 1;
|
||||
int var9 = var3 - field_22023_a[var6][1] * var7 - 1;
|
||||
int var10 = var8 + 2;
|
||||
int var11 = var9 + 2;
|
||||
|
||||
for(int var12 = var8; var12 <= var10; ++var12) {
|
||||
for(int var13 = var9; var13 <= var11; ++var13) {
|
||||
if(var0.isBlockNormalCube(var12, var2 - 1, var13) && var0.isAirBlock(var12, var2, var13) && var0.isAirBlock(var12, var2 + 1, var13)) {
|
||||
if(var4 <= 0) {
|
||||
return new ChunkCoordinates(var12, var2, var13);
|
||||
}
|
||||
|
||||
--var4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
|
||||
if(!func_22020_d(var5)) {
|
||||
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getMobilityFlag() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
18
src/net/minecraft/block/BlockBookshelf.java
Normal file
18
src/net/minecraft/block/BlockBookshelf.java
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockBookshelf extends Block {
|
||||
public BlockBookshelf(int var1, int var2) {
|
||||
super(var1, var2, Material.wood);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 <= 1 ? 4 : this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
16
src/net/minecraft/block/BlockBreakable.java
Normal file
16
src/net/minecraft/block/BlockBreakable.java
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockBreakable extends Block {
|
||||
private boolean field_6084_a;
|
||||
|
||||
protected BlockBreakable(int var1, int var2, Material var3, boolean var4) {
|
||||
super(var1, var2, var3);
|
||||
this.field_6084_a = var4;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
220
src/net/minecraft/block/BlockButton.java
Normal file
220
src/net/minecraft/block/BlockButton.java
Normal file
|
|
@ -0,0 +1,220 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockButton extends Block {
|
||||
protected BlockButton(int var1, int var2) {
|
||||
super(var1, var2, Material.circuits);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 20;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
|
||||
return var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)));
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : var1.isBlockNormalCube(var2, var3, var4 + 1)));
|
||||
}
|
||||
|
||||
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = var6 & 8;
|
||||
var6 &= 7;
|
||||
if(var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
var6 = 4;
|
||||
} else if(var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
var6 = 3;
|
||||
} else if(var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
var6 = 2;
|
||||
} else if(var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
var6 = 1;
|
||||
} else {
|
||||
var6 = this.getOrientation(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 + var7);
|
||||
}
|
||||
|
||||
private int getOrientation(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? 1 : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? 2 : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? 3 : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? 4 : 1)));
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(this.func_322_g(var1, var2, var3, var4)) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4) & 7;
|
||||
boolean var7 = false;
|
||||
if(!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var7) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean func_322_g(World var1, int var2, int var3, int var4) {
|
||||
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var6 = var5 & 7;
|
||||
boolean var7 = (var5 & 8) > 0;
|
||||
float var8 = 6.0F / 16.0F;
|
||||
float var9 = 10.0F / 16.0F;
|
||||
float var10 = 3.0F / 16.0F;
|
||||
float var11 = 2.0F / 16.0F;
|
||||
if(var7) {
|
||||
var11 = 1.0F / 16.0F;
|
||||
}
|
||||
|
||||
if(var6 == 1) {
|
||||
this.setBlockBounds(0.0F, var8, 0.5F - var10, var11, var9, 0.5F + var10);
|
||||
} else if(var6 == 2) {
|
||||
this.setBlockBounds(1.0F - var11, var8, 0.5F - var10, 1.0F, var9, 0.5F + var10);
|
||||
} else if(var6 == 3) {
|
||||
this.setBlockBounds(0.5F - var10, var8, 0.0F, 0.5F + var10, var9, var11);
|
||||
} else if(var6 == 4) {
|
||||
this.setBlockBounds(0.5F - var10, var8, 1.0F - var11, 0.5F + var10, var9, 1.0F);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.blockActivated(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = var6 & 7;
|
||||
int var8 = 8 - (var6 & 8);
|
||||
if(var8 == 0) {
|
||||
return true;
|
||||
} else {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + var8);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "random.click", 0.3F, 0.6F);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
if(var7 == 1) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
} else if(var7 == 2) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
} else if(var7 == 3) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
} else if(var7 == 4) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
} else {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
}
|
||||
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var5 & 8) > 0) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
int var6 = var5 & 7;
|
||||
if(var6 == 1) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
} else if(var6 == 2) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
} else if(var6 == 3) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
} else if(var6 == 4) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
} else {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
}
|
||||
}
|
||||
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
return (var1.getBlockMetadata(var2, var3, var4) & 8) > 0;
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) == 0) {
|
||||
return false;
|
||||
} else {
|
||||
int var7 = var6 & 7;
|
||||
return var7 == 5 && var5 == 1 ? true : (var7 == 4 && var5 == 2 ? true : (var7 == 3 && var5 == 3 ? true : (var7 == 2 && var5 == 4 ? true : var7 == 1 && var5 == 5)));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) != 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 & 7);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
int var7 = var6 & 7;
|
||||
if(var7 == 1) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
} else if(var7 == 2) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
} else if(var7 == 3) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
} else if(var7 == 4) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
} else {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
}
|
||||
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "random.click", 0.3F, 0.5F);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
81
src/net/minecraft/block/BlockCactus.java
Normal file
81
src/net/minecraft/block/BlockCactus.java
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockCactus extends Block {
|
||||
protected BlockCactus(int var1, int var2) {
|
||||
super(var1, var2, Material.cactus);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var1.isAirBlock(var2, var3 + 1, var4)) {
|
||||
int var6;
|
||||
for(var6 = 1; var1.getBlockId(var2, var3 - var6, var4) == this.blockID; ++var6) {
|
||||
}
|
||||
|
||||
if(var6 < 3) {
|
||||
int var7 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var7 == 15) {
|
||||
var1.setBlockWithNotify(var2, var3 + 1, var4, this.blockID);
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
float var5 = 1.0F / 16.0F;
|
||||
return AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var5), (double)var3, (double)((float)var4 + var5), (double)((float)(var2 + 1) - var5), (double)((float)(var3 + 1) - var5), (double)((float)(var4 + 1) - var5));
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture);
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return !super.canPlaceBlockAt(var1, var2, var3, var4) ? false : this.canBlockStay(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!this.canBlockStay(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
|
||||
if(var1.getBlockMaterial(var2 - 1, var3, var4).isSolid()) {
|
||||
return false;
|
||||
} else if(var1.getBlockMaterial(var2 + 1, var3, var4).isSolid()) {
|
||||
return false;
|
||||
} else if(var1.getBlockMaterial(var2, var3, var4 - 1).isSolid()) {
|
||||
return false;
|
||||
} else if(var1.getBlockMaterial(var2, var3, var4 + 1).isSolid()) {
|
||||
return false;
|
||||
} else {
|
||||
int var5 = var1.getBlockId(var2, var3 - 1, var4);
|
||||
return var5 == Block.cactus.blockID || var5 == Block.sand.blockID;
|
||||
}
|
||||
}
|
||||
|
||||
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
var5.attackEntityFrom((Entity)null, 1);
|
||||
}
|
||||
}
|
||||
94
src/net/minecraft/block/BlockCake.java
Normal file
94
src/net/minecraft/block/BlockCake.java
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockCake extends Block {
|
||||
protected BlockCake(int var1, int var2) {
|
||||
super(var1, var2, Material.cakeMaterial);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
float var6 = 1.0F / 16.0F;
|
||||
float var7 = (float)(1 + var5 * 2) / 16.0F;
|
||||
float var8 = 0.5F;
|
||||
this.setBlockBounds(var7, 0.0F, var6, 1.0F - var6, var8, 1.0F - var6);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
float var6 = 1.0F / 16.0F;
|
||||
float var7 = (float)(1 + var5 * 2) / 16.0F;
|
||||
float var8 = 0.5F;
|
||||
return AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var6), (double)((float)(var2 + 1) - var6), (double)((float)var3 + var8 - var6), (double)((float)(var4 + 1) - var6));
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture + 3 : (var2 > 0 && var1 == 4 ? this.blockIndexInTexture + 2 : this.blockIndexInTexture + 1));
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture + 3 : this.blockIndexInTexture + 1);
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.eatCakeSlice(var1, var2, var3, var4, var5);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.eatCakeSlice(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
private void eatCakeSlice(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var5.health < 20) {
|
||||
var5.heal(3);
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4) + 1;
|
||||
if(var6 >= 6) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
var1.markBlockAsNeedsUpdate(var2, var3, var4);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return !super.canPlaceBlockAt(var1, var2, var3, var4) ? false : this.canBlockStay(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!this.canBlockStay(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
|
||||
return var1.getBlockMaterial(var2, var3 - 1, var4).isSolid();
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
122
src/net/minecraft/block/BlockChest.java
Normal file
122
src/net/minecraft/block/BlockChest.java
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityChest;
|
||||
import net.minecraft.container.inventory.IInventory;
|
||||
import net.minecraft.container.inventory.InventoryLargeChest;
|
||||
import net.minecraft.entity.EntityItem;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockChest extends BlockContainer {
|
||||
private Random random = new Random();
|
||||
|
||||
protected BlockChest(int var1) {
|
||||
super(var1, Material.wood);
|
||||
this.blockIndexInTexture = 26;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture - 1 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
int var5 = 0;
|
||||
if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID) {
|
||||
++var5;
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
|
||||
++var5;
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2, var3, var4 - 1) == this.blockID) {
|
||||
++var5;
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2, var3, var4 + 1) == this.blockID) {
|
||||
++var5;
|
||||
}
|
||||
|
||||
return var5 > 1 ? false : (this.isThereANeighborChest(var1, var2 - 1, var3, var4) ? false : (this.isThereANeighborChest(var1, var2 + 1, var3, var4) ? false : (this.isThereANeighborChest(var1, var2, var3, var4 - 1) ? false : !this.isThereANeighborChest(var1, var2, var3, var4 + 1))));
|
||||
}
|
||||
|
||||
private boolean isThereANeighborChest(World var1, int var2, int var3, int var4) {
|
||||
return var1.getBlockId(var2, var3, var4) != this.blockID ? false : (var1.getBlockId(var2 - 1, var3, var4) == this.blockID ? true : (var1.getBlockId(var2 + 1, var3, var4) == this.blockID ? true : (var1.getBlockId(var2, var3, var4 - 1) == this.blockID ? true : var1.getBlockId(var2, var3, var4 + 1) == this.blockID)));
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
TileEntityChest var5 = (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4);
|
||||
|
||||
for(int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
|
||||
ItemStack var7 = var5.getStackInSlot(var6);
|
||||
if(var7 != null) {
|
||||
float var8 = this.random.nextFloat() * 0.8F + 0.1F;
|
||||
float var9 = this.random.nextFloat() * 0.8F + 0.1F;
|
||||
float var10 = this.random.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while(var7.stackSize > 0) {
|
||||
int var11 = this.random.nextInt(21) + 10;
|
||||
if(var11 > var7.stackSize) {
|
||||
var11 = var7.stackSize;
|
||||
}
|
||||
|
||||
var7.stackSize -= var11;
|
||||
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var8), (double)((float)var3 + var9), (double)((float)var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
|
||||
float var13 = 0.05F;
|
||||
var12.motionX = (double)((float)this.random.nextGaussian() * var13);
|
||||
var12.motionY = (double)((float)this.random.nextGaussian() * var13 + 0.2F);
|
||||
var12.motionZ = (double)((float)this.random.nextGaussian() * var13);
|
||||
var1.entityJoinedWorld(var12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
Object var6 = (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4);
|
||||
if(var1.isBlockNormalCube(var2, var3 + 1, var4)) {
|
||||
return true;
|
||||
} else if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID && var1.isBlockNormalCube(var2 - 1, var3 + 1, var4)) {
|
||||
return true;
|
||||
} else if(var1.getBlockId(var2 + 1, var3, var4) == this.blockID && var1.isBlockNormalCube(var2 + 1, var3 + 1, var4)) {
|
||||
return true;
|
||||
} else if(var1.getBlockId(var2, var3, var4 - 1) == this.blockID && var1.isBlockNormalCube(var2, var3 + 1, var4 - 1)) {
|
||||
return true;
|
||||
} else if(var1.getBlockId(var2, var3, var4 + 1) == this.blockID && var1.isBlockNormalCube(var2, var3 + 1, var4 + 1)) {
|
||||
return true;
|
||||
} else {
|
||||
if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID) {
|
||||
var6 = new InventoryLargeChest("Large chest", (TileEntityChest)var1.getBlockTileEntity(var2 - 1, var3, var4), (IInventory)var6);
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
|
||||
var6 = new InventoryLargeChest("Large chest", (IInventory)var6, (TileEntityChest)var1.getBlockTileEntity(var2 + 1, var3, var4));
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2, var3, var4 - 1) == this.blockID) {
|
||||
var6 = new InventoryLargeChest("Large chest", (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4 - 1), (IInventory)var6);
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2, var3, var4 + 1) == this.blockID) {
|
||||
var6 = new InventoryLargeChest("Large chest", (IInventory)var6, (TileEntityChest)var1.getBlockTileEntity(var2, var3, var4 + 1));
|
||||
}
|
||||
|
||||
if(var1.singleplayerWorld) {
|
||||
return true;
|
||||
} else {
|
||||
var5.displayGUIChest((IInventory)var6);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
return new TileEntityChest();
|
||||
}
|
||||
}
|
||||
19
src/net/minecraft/block/BlockClay.java
Normal file
19
src/net/minecraft/block/BlockClay.java
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class BlockClay extends Block {
|
||||
public BlockClay(int var1, int var2) {
|
||||
super(var1, var2, Material.clay);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.clay.shiftedIndex;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
30
src/net/minecraft/block/BlockCloth.java
Normal file
30
src/net/minecraft/block/BlockCloth.java
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockCloth extends Block {
|
||||
public BlockCloth() {
|
||||
super(35, 64, Material.cloth);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
if(var2 == 0) {
|
||||
return this.blockIndexInTexture;
|
||||
} else {
|
||||
var2 = ~(var2 & 15);
|
||||
return 113 + ((var2 & 8) >> 3) + (var2 & 7) * 16;
|
||||
}
|
||||
}
|
||||
|
||||
protected int damageDropped(int var1) {
|
||||
return var1;
|
||||
}
|
||||
|
||||
public static int func_21033_c(int var0) {
|
||||
return ~var0 & 15;
|
||||
}
|
||||
|
||||
public static int func_21034_d(int var0) {
|
||||
return ~var0 & 15;
|
||||
}
|
||||
}
|
||||
29
src/net/minecraft/block/BlockContainer.java
Normal file
29
src/net/minecraft/block/BlockContainer.java
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class BlockContainer extends Block {
|
||||
protected BlockContainer(int var1, Material var2) {
|
||||
super(var1, var2);
|
||||
isBlockContainer[var1] = true;
|
||||
}
|
||||
|
||||
protected BlockContainer(int var1, int var2, Material var3) {
|
||||
super(var1, var2, var3);
|
||||
isBlockContainer[var1] = true;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
var1.setBlockTileEntity(var2, var3, var4, this.getBlockEntity());
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
var1.removeBlockTileEntity(var2, var3, var4);
|
||||
}
|
||||
|
||||
protected abstract TileEntity getBlockEntity();
|
||||
}
|
||||
114
src/net/minecraft/block/BlockCrops.java
Normal file
114
src/net/minecraft/block/BlockCrops.java
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.entity.EntityItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockCrops extends BlockFlower {
|
||||
protected BlockCrops(int var1, int var2) {
|
||||
super(var1, var2);
|
||||
this.blockIndexInTexture = var2;
|
||||
this.setTickOnLoad(true);
|
||||
float var3 = 0.5F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.25F, 0.5F + var3);
|
||||
}
|
||||
|
||||
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
|
||||
return var1 == Block.tilledField.blockID;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
super.updateTick(var1, var2, var3, var4, var5);
|
||||
if(var1.getBlockLightValue(var2, var3 + 1, var4) >= 9) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var6 < 7) {
|
||||
float var7 = this.getGrowthRate(var1, var2, var3, var4);
|
||||
if(var5.nextInt((int)(100.0F / var7)) == 0) {
|
||||
++var6;
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void fertilize(World var1, int var2, int var3, int var4) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 7);
|
||||
}
|
||||
|
||||
private float getGrowthRate(World var1, int var2, int var3, int var4) {
|
||||
float var5 = 1.0F;
|
||||
int var6 = var1.getBlockId(var2, var3, var4 - 1);
|
||||
int var7 = var1.getBlockId(var2, var3, var4 + 1);
|
||||
int var8 = var1.getBlockId(var2 - 1, var3, var4);
|
||||
int var9 = var1.getBlockId(var2 + 1, var3, var4);
|
||||
int var10 = var1.getBlockId(var2 - 1, var3, var4 - 1);
|
||||
int var11 = var1.getBlockId(var2 + 1, var3, var4 - 1);
|
||||
int var12 = var1.getBlockId(var2 + 1, var3, var4 + 1);
|
||||
int var13 = var1.getBlockId(var2 - 1, var3, var4 + 1);
|
||||
boolean var14 = var8 == this.blockID || var9 == this.blockID;
|
||||
boolean var15 = var6 == this.blockID || var7 == this.blockID;
|
||||
boolean var16 = var10 == this.blockID || var11 == this.blockID || var12 == this.blockID || var13 == this.blockID;
|
||||
|
||||
for(int var17 = var2 - 1; var17 <= var2 + 1; ++var17) {
|
||||
for(int var18 = var4 - 1; var18 <= var4 + 1; ++var18) {
|
||||
int var19 = var1.getBlockId(var17, var3 - 1, var18);
|
||||
float var20 = 0.0F;
|
||||
if(var19 == Block.tilledField.blockID) {
|
||||
var20 = 1.0F;
|
||||
if(var1.getBlockMetadata(var17, var3 - 1, var18) > 0) {
|
||||
var20 = 3.0F;
|
||||
}
|
||||
}
|
||||
|
||||
if(var17 != var2 || var18 != var4) {
|
||||
var20 /= 4.0F;
|
||||
}
|
||||
|
||||
var5 += var20;
|
||||
}
|
||||
}
|
||||
|
||||
if(var16 || var14 && var15) {
|
||||
var5 /= 2.0F;
|
||||
}
|
||||
|
||||
return var5;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
if(var2 < 0) {
|
||||
var2 = 7;
|
||||
}
|
||||
|
||||
return this.blockIndexInTexture + var2;
|
||||
}
|
||||
|
||||
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
|
||||
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
|
||||
if(!var1.singleplayerWorld) {
|
||||
for(int var7 = 0; var7 < 3; ++var7) {
|
||||
if(var1.rand.nextInt(15) <= var5) {
|
||||
float var8 = 0.7F;
|
||||
float var9 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
|
||||
float var10 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
|
||||
float var11 = var1.rand.nextFloat() * var8 + (1.0F - var8) * 0.5F;
|
||||
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var9), (double)((float)var3 + var10), (double)((float)var4 + var11), new ItemStack(Item.seeds));
|
||||
var12.delayBeforeCanPickup = 10;
|
||||
var1.entityJoinedWorld(var12);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return var1 == 7 ? Item.wheat.shiftedIndex : -1;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
23
src/net/minecraft/block/BlockDeadBush.java
Normal file
23
src/net/minecraft/block/BlockDeadBush.java
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class BlockDeadBush extends BlockFlower {
|
||||
protected BlockDeadBush(int var1, int var2) {
|
||||
super(var1, var2);
|
||||
float var3 = 0.4F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3);
|
||||
}
|
||||
|
||||
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
|
||||
return var1 == Block.sand.blockID;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
79
src/net/minecraft/block/BlockDetectorRail.java
Normal file
79
src/net/minecraft/block/BlockDetectorRail.java
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityMinecart;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDetectorRail extends BlockRail {
|
||||
public BlockDetectorRail(int var1, int var2) {
|
||||
super(var1, var2, true);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 20;
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) == 0) {
|
||||
this.func_27035_f(var1, var2, var3, var4, var6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) != 0) {
|
||||
this.func_27035_f(var1, var2, var3, var4, var6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
return (var1.getBlockMetadata(var2, var3, var4) & 8) != 0;
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
return (var1.getBlockMetadata(var2, var3, var4) & 8) == 0 ? false : var5 == 1;
|
||||
}
|
||||
|
||||
private void func_27035_f(World var1, int var2, int var3, int var4, int var5) {
|
||||
boolean var6 = (var5 & 8) != 0;
|
||||
boolean var7 = false;
|
||||
float var8 = 2.0F / 16.0F;
|
||||
List var9 = var1.getEntitiesWithinAABB(EntityMinecart.class, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var8), (double)var3, (double)((float)var4 + var8), (double)((float)(var2 + 1) - var8), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var8)));
|
||||
if(var9.size() > 0) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var7 && !var6) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var5 | 8);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
}
|
||||
|
||||
if(!var7 && var6) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var5 & 7);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
}
|
||||
|
||||
if(var7) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
9
src/net/minecraft/block/BlockDirt.java
Normal file
9
src/net/minecraft/block/BlockDirt.java
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockDirt extends Block {
|
||||
protected BlockDirt(int var1, int var2) {
|
||||
super(var1, var2, Material.ground);
|
||||
}
|
||||
}
|
||||
206
src/net/minecraft/block/BlockDispenser.java
Normal file
206
src/net/minecraft/block/BlockDispenser.java
Normal file
|
|
@ -0,0 +1,206 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityDispenser;
|
||||
import net.minecraft.entity.EntityArrow;
|
||||
import net.minecraft.entity.EntityEgg;
|
||||
import net.minecraft.entity.EntityItem;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.entity.EntitySnowball;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.math.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDispenser extends BlockContainer {
|
||||
private Random field_28032_a = new Random();
|
||||
|
||||
protected BlockDispenser(int var1) {
|
||||
super(var1, Material.rock);
|
||||
this.blockIndexInTexture = 45;
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 4;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.dispenser.blockID;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
this.setDispenserDefaultDirection(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
private void setDispenserDefaultDirection(World var1, int var2, int var3, int var4) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var5 = var1.getBlockId(var2, var3, var4 - 1);
|
||||
int var6 = var1.getBlockId(var2, var3, var4 + 1);
|
||||
int var7 = var1.getBlockId(var2 - 1, var3, var4);
|
||||
int var8 = var1.getBlockId(var2 + 1, var3, var4);
|
||||
byte var9 = 3;
|
||||
if(Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) {
|
||||
var9 = 3;
|
||||
}
|
||||
|
||||
if(Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) {
|
||||
var9 = 2;
|
||||
}
|
||||
|
||||
if(Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) {
|
||||
var9 = 5;
|
||||
}
|
||||
|
||||
if(Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) {
|
||||
var9 = 4;
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
|
||||
}
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture + 17 : (var1 == 0 ? this.blockIndexInTexture + 17 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var1.singleplayerWorld) {
|
||||
return true;
|
||||
} else {
|
||||
TileEntityDispenser var6 = (TileEntityDispenser)var1.getBlockTileEntity(var2, var3, var4);
|
||||
var5.displayGUIDispenser(var6);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void dispenseItem(World var1, int var2, int var3, int var4, Random var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
byte var9 = 0;
|
||||
byte var10 = 0;
|
||||
if(var6 == 3) {
|
||||
var10 = 1;
|
||||
} else if(var6 == 2) {
|
||||
var10 = -1;
|
||||
} else if(var6 == 5) {
|
||||
var9 = 1;
|
||||
} else {
|
||||
var9 = -1;
|
||||
}
|
||||
|
||||
TileEntityDispenser var11 = (TileEntityDispenser)var1.getBlockTileEntity(var2, var3, var4);
|
||||
ItemStack var12 = var11.getRandomStackFromInventory();
|
||||
double var13 = (double)var2 + (double)var9 * 0.6D + 0.5D;
|
||||
double var15 = (double)var3 + 0.5D;
|
||||
double var17 = (double)var4 + (double)var10 * 0.6D + 0.5D;
|
||||
if(var12 == null) {
|
||||
var1.func_28097_e(1001, var2, var3, var4, 0);
|
||||
} else {
|
||||
if(var12.itemID == Item.arrow.shiftedIndex) {
|
||||
EntityArrow var19 = new EntityArrow(var1, var13, var15, var17);
|
||||
var19.setArrowHeading((double)var9, (double)0.1F, (double)var10, 1.1F, 6.0F);
|
||||
var19.field_28012_a = true;
|
||||
var1.entityJoinedWorld(var19);
|
||||
var1.func_28097_e(1002, var2, var3, var4, 0);
|
||||
} else if(var12.itemID == Item.egg.shiftedIndex) {
|
||||
EntityEgg var22 = new EntityEgg(var1, var13, var15, var17);
|
||||
var22.func_20078_a((double)var9, (double)0.1F, (double)var10, 1.1F, 6.0F);
|
||||
var1.entityJoinedWorld(var22);
|
||||
var1.func_28097_e(1002, var2, var3, var4, 0);
|
||||
} else if(var12.itemID == Item.snowball.shiftedIndex) {
|
||||
EntitySnowball var23 = new EntitySnowball(var1, var13, var15, var17);
|
||||
var23.func_6141_a((double)var9, (double)0.1F, (double)var10, 1.1F, 6.0F);
|
||||
var1.entityJoinedWorld(var23);
|
||||
var1.func_28097_e(1002, var2, var3, var4, 0);
|
||||
} else {
|
||||
EntityItem var24 = new EntityItem(var1, var13, var15 - 0.3D, var17, var12);
|
||||
double var20 = var5.nextDouble() * 0.1D + 0.2D;
|
||||
var24.motionX = (double)var9 * var20;
|
||||
var24.motionY = (double)0.2F;
|
||||
var24.motionZ = (double)var10 * var20;
|
||||
var24.motionX += var5.nextGaussian() * (double)0.0075F * 6.0D;
|
||||
var24.motionY += var5.nextGaussian() * (double)0.0075F * 6.0D;
|
||||
var24.motionZ += var5.nextGaussian() * (double)0.0075F * 6.0D;
|
||||
var1.entityJoinedWorld(var24);
|
||||
var1.func_28097_e(1000, var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
var1.func_28097_e(2000, var2, var3, var4, var9 + 1 + (var10 + 1) * 3);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
|
||||
boolean var6 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
|
||||
if(var6) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4)) {
|
||||
this.dispenseItem(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
return new TileEntityDispenser();
|
||||
}
|
||||
|
||||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
|
||||
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
||||
if(var6 == 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
|
||||
}
|
||||
|
||||
if(var6 == 1) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
|
||||
}
|
||||
|
||||
if(var6 == 2) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
|
||||
}
|
||||
|
||||
if(var6 == 3) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
TileEntityDispenser var5 = (TileEntityDispenser)var1.getBlockTileEntity(var2, var3, var4);
|
||||
|
||||
for(int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
|
||||
ItemStack var7 = var5.getStackInSlot(var6);
|
||||
if(var7 != null) {
|
||||
float var8 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
|
||||
float var9 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
|
||||
float var10 = this.field_28032_a.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while(var7.stackSize > 0) {
|
||||
int var11 = this.field_28032_a.nextInt(21) + 10;
|
||||
if(var11 > var7.stackSize) {
|
||||
var11 = var7.stackSize;
|
||||
}
|
||||
|
||||
var7.stackSize -= var11;
|
||||
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var8), (double)((float)var3 + var9), (double)((float)var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
|
||||
float var13 = 0.05F;
|
||||
var12.motionX = (double)((float)this.field_28032_a.nextGaussian() * var13);
|
||||
var12.motionY = (double)((float)this.field_28032_a.nextGaussian() * var13 + 0.2F);
|
||||
var12.motionZ = (double)((float)this.field_28032_a.nextGaussian() * var13);
|
||||
var1.entityJoinedWorld(var12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
194
src/net/minecraft/block/BlockDoor.java
Normal file
194
src/net/minecraft/block/BlockDoor.java
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.Vec3D;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockDoor extends Block {
|
||||
protected BlockDoor(int var1, Material var2) {
|
||||
super(var1, var2);
|
||||
this.blockIndexInTexture = 97;
|
||||
if(var2 == Material.iron) {
|
||||
++this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
float var3 = 0.5F;
|
||||
float var4 = 1.0F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
if(var1 != 0 && var1 != 1) {
|
||||
int var3 = this.func_271_d(var2);
|
||||
if((var3 == 0 || var3 == 2) ^ var1 <= 3) {
|
||||
return this.blockIndexInTexture;
|
||||
} else {
|
||||
int var4 = var3 / 2 + (var1 & 1 ^ var3);
|
||||
var4 += (var2 & 4) / 4;
|
||||
int var5 = this.blockIndexInTexture - (var2 & 8) * 2;
|
||||
if((var4 & 1) != 0) {
|
||||
var5 = -var5;
|
||||
}
|
||||
|
||||
return var5;
|
||||
}
|
||||
} else {
|
||||
return this.blockIndexInTexture;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
|
||||
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
this.func_273_b(this.func_271_d(var1.getBlockMetadata(var2, var3, var4)));
|
||||
}
|
||||
|
||||
public void func_273_b(int var1) {
|
||||
float var2 = 3.0F / 16.0F;
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F);
|
||||
if(var1 == 0) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var2);
|
||||
}
|
||||
|
||||
if(var1 == 1) {
|
||||
this.setBlockBounds(1.0F - var2, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if(var1 == 2) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 1.0F - var2, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if(var1 == 3) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, var2, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.blockActivated(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(this.blockMaterial == Material.iron) {
|
||||
return true;
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) != 0) {
|
||||
if(var1.getBlockId(var2, var3 - 1, var4) == this.blockID) {
|
||||
this.blockActivated(var1, var2, var3 - 1, var4, var5);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
if(var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3 + 1, var4, (var6 ^ 4) + 8);
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
|
||||
var1.markBlocksDirty(var2, var3 - 1, var4, var2, var3, var4);
|
||||
var1.func_28101_a(var5, 1003, var2, var3, var4, 0);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void func_272_a(World var1, int var2, int var3, int var4, boolean var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) != 0) {
|
||||
if(var1.getBlockId(var2, var3 - 1, var4) == this.blockID) {
|
||||
this.func_272_a(var1, var2, var3 - 1, var4, var5);
|
||||
}
|
||||
|
||||
} else {
|
||||
boolean var7 = (var1.getBlockMetadata(var2, var3, var4) & 4) > 0;
|
||||
if(var7 != var5) {
|
||||
if(var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3 + 1, var4, (var6 ^ 4) + 8);
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
|
||||
var1.markBlocksDirty(var2, var3 - 1, var4, var2, var3, var4);
|
||||
var1.func_28101_a((EntityPlayer)null, 1003, var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) != 0) {
|
||||
if(var1.getBlockId(var2, var3 - 1, var4) != this.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
|
||||
this.onNeighborBlockChange(var1, var2, var3 - 1, var4, var5);
|
||||
}
|
||||
} else {
|
||||
boolean var7 = false;
|
||||
if(var1.getBlockId(var2, var3 + 1, var4) != this.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
var7 = true;
|
||||
if(var1.getBlockId(var2, var3 + 1, var4) == this.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3 + 1, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if(var7) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var6);
|
||||
}
|
||||
} else if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
|
||||
boolean var8 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
|
||||
this.func_272_a(var1, var2, var3, var4, var8);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return (var1 & 8) != 0 ? 0 : (this.blockMaterial == Material.iron ? Item.doorSteel.shiftedIndex : Item.doorWood.shiftedIndex);
|
||||
}
|
||||
|
||||
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
|
||||
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
|
||||
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public int func_271_d(int var1) {
|
||||
return (var1 & 4) == 0 ? var1 - 1 & 3 : var1 & 3;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var3 >= 127 ? false : var1.isBlockNormalCube(var2, var3 - 1, var4) && super.canPlaceBlockAt(var1, var2, var3, var4) && super.canPlaceBlockAt(var1, var2, var3 + 1, var4);
|
||||
}
|
||||
|
||||
public static boolean func_27036_e(int var0) {
|
||||
return (var0 & 4) != 0;
|
||||
}
|
||||
|
||||
public int getMobilityFlag() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
97
src/net/minecraft/block/BlockFarmland.java
Normal file
97
src/net/minecraft/block/BlockFarmland.java
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFarmland extends Block {
|
||||
protected BlockFarmland(int var1) {
|
||||
super(var1, Material.ground);
|
||||
this.blockIndexInTexture = 87;
|
||||
this.setTickOnLoad(true);
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 15.0F / 16.0F, 1.0F);
|
||||
this.setLightOpacity(255);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return AxisAlignedBB.getBoundingBoxFromPool((double)(var2 + 0), (double)(var3 + 0), (double)(var4 + 0), (double)(var2 + 1), (double)(var3 + 1), (double)(var4 + 1));
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return var1 == 1 && var2 > 0 ? this.blockIndexInTexture - 1 : (var1 == 1 ? this.blockIndexInTexture : 2);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var5.nextInt(5) == 0) {
|
||||
if(!this.isWaterNearby(var1, var2, var3, var4) && !var1.canLightningStrikeAt(var2, var3 + 1, var4)) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var6 > 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 - 1);
|
||||
} else if(!this.isCropsNearby(var1, var2, var3, var4)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
|
||||
}
|
||||
} else {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 7);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
if(var1.rand.nextInt(4) == 0) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean isCropsNearby(World var1, int var2, int var3, int var4) {
|
||||
byte var5 = 0;
|
||||
|
||||
for(int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
|
||||
for(int var7 = var4 - var5; var7 <= var4 + var5; ++var7) {
|
||||
if(var1.getBlockId(var6, var3 + 1, var7) == Block.crops.blockID) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isWaterNearby(World var1, int var2, int var3, int var4) {
|
||||
for(int var5 = var2 - 4; var5 <= var2 + 4; ++var5) {
|
||||
for(int var6 = var3; var6 <= var3 + 1; ++var6) {
|
||||
for(int var7 = var4 - 4; var7 <= var4 + 4; ++var7) {
|
||||
if(var1.getBlockMaterial(var5, var6, var7) == Material.water) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
|
||||
Material var6 = var1.getBlockMaterial(var2, var3 + 1, var4);
|
||||
if(var6.isSolid()) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.dirt.idDropped(0, var2);
|
||||
}
|
||||
}
|
||||
27
src/net/minecraft/block/BlockFence.java
Normal file
27
src/net/minecraft/block/BlockFence.java
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFence extends Block {
|
||||
public BlockFence(int var1, int var2) {
|
||||
super(var1, var2, Material.wood);
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.getBlockId(var2, var3 - 1, var4) == this.blockID ? true : (!var1.getBlockMaterial(var2, var3 - 1, var4).isSolid() ? false : super.canPlaceBlockAt(var1, var2, var3, var4));
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return AxisAlignedBB.getBoundingBoxFromPool((double)var2, (double)var3, (double)var4, (double)(var2 + 1), (double)((float)var3 + 1.5F), (double)(var4 + 1));
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
188
src/net/minecraft/block/BlockFire.java
Normal file
188
src/net/minecraft/block/BlockFire.java
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFire extends Block {
|
||||
private int[] chanceToEncourageFire = new int[256];
|
||||
private int[] abilityToCatchFire = new int[256];
|
||||
|
||||
protected BlockFire(int var1, int var2) {
|
||||
super(var1, var2, Material.fire);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void setFireBurnRates() {
|
||||
this.setBurnRate(Block.planks.blockID, 5, 20);
|
||||
this.setBurnRate(Block.fence.blockID, 5, 20);
|
||||
this.setBurnRate(Block.stairCompactPlanks.blockID, 5, 20);
|
||||
this.setBurnRate(Block.wood.blockID, 5, 5);
|
||||
this.setBurnRate(Block.leaves.blockID, 30, 60);
|
||||
this.setBurnRate(Block.bookShelf.blockID, 30, 20);
|
||||
this.setBurnRate(Block.tnt.blockID, 15, 100);
|
||||
this.setBurnRate(Block.tallGrass.blockID, 60, 100);
|
||||
this.setBurnRate(Block.cloth.blockID, 30, 60);
|
||||
}
|
||||
|
||||
private void setBurnRate(int var1, int var2, int var3) {
|
||||
this.chanceToEncourageFire[var1] = var2;
|
||||
this.abilityToCatchFire[var1] = var3;
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 40;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
boolean var6 = var1.getBlockId(var2, var3 - 1, var4) == Block.bloodStone.blockID;
|
||||
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
if(var6 || !var1.func_27068_v() || !var1.canLightningStrikeAt(var2, var3, var4) && !var1.canLightningStrikeAt(var2 - 1, var3, var4) && !var1.canLightningStrikeAt(var2 + 1, var3, var4) && !var1.canLightningStrikeAt(var2, var3, var4 - 1) && !var1.canLightningStrikeAt(var2, var3, var4 + 1)) {
|
||||
int var7 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var7 < 15) {
|
||||
var1.setBlockMetadata(var2, var3, var4, var7 + var5.nextInt(3) / 2);
|
||||
}
|
||||
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
if(!var6 && !this.func_268_g(var1, var2, var3, var4)) {
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) || var7 > 3) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
} else if(!var6 && !this.canBlockCatchFire(var1, var2, var3 - 1, var4) && var7 == 15 && var5.nextInt(4) == 0) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
this.tryToCatchBlockOnFire(var1, var2 + 1, var3, var4, 300, var5, var7);
|
||||
this.tryToCatchBlockOnFire(var1, var2 - 1, var3, var4, 300, var5, var7);
|
||||
this.tryToCatchBlockOnFire(var1, var2, var3 - 1, var4, 250, var5, var7);
|
||||
this.tryToCatchBlockOnFire(var1, var2, var3 + 1, var4, 250, var5, var7);
|
||||
this.tryToCatchBlockOnFire(var1, var2, var3, var4 - 1, 300, var5, var7);
|
||||
this.tryToCatchBlockOnFire(var1, var2, var3, var4 + 1, 300, var5, var7);
|
||||
|
||||
for(int var8 = var2 - 1; var8 <= var2 + 1; ++var8) {
|
||||
for(int var9 = var4 - 1; var9 <= var4 + 1; ++var9) {
|
||||
for(int var10 = var3 - 1; var10 <= var3 + 4; ++var10) {
|
||||
if(var8 != var2 || var10 != var3 || var9 != var4) {
|
||||
int var11 = 100;
|
||||
if(var10 > var3 + 1) {
|
||||
var11 += (var10 - (var3 + 1)) * 100;
|
||||
}
|
||||
|
||||
int var12 = this.getChanceOfNeighborsEncouragingFire(var1, var8, var10, var9);
|
||||
if(var12 > 0) {
|
||||
int var13 = (var12 + 40) / (var7 + 30);
|
||||
if(var13 > 0 && var5.nextInt(var11) <= var13 && (!var1.func_27068_v() || !var1.canLightningStrikeAt(var8, var10, var9)) && !var1.canLightningStrikeAt(var8 - 1, var10, var4) && !var1.canLightningStrikeAt(var8 + 1, var10, var9) && !var1.canLightningStrikeAt(var8, var10, var9 - 1) && !var1.canLightningStrikeAt(var8, var10, var9 + 1)) {
|
||||
int var14 = var7 + var5.nextInt(5) / 4;
|
||||
if(var14 > 15) {
|
||||
var14 = 15;
|
||||
}
|
||||
|
||||
var1.setBlockAndMetadataWithNotify(var8, var10, var9, this.blockID, var14);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
private void tryToCatchBlockOnFire(World var1, int var2, int var3, int var4, int var5, Random var6, int var7) {
|
||||
int var8 = this.abilityToCatchFire[var1.getBlockId(var2, var3, var4)];
|
||||
if(var6.nextInt(var5) < var8) {
|
||||
boolean var9 = var1.getBlockId(var2, var3, var4) == Block.tnt.blockID;
|
||||
if(var6.nextInt(var7 + 10) < 5 && !var1.canLightningStrikeAt(var2, var3, var4)) {
|
||||
int var10 = var7 + var6.nextInt(5) / 4;
|
||||
if(var10 > 15) {
|
||||
var10 = 15;
|
||||
}
|
||||
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3, var4, this.blockID, var10);
|
||||
} else {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
if(var9) {
|
||||
Block.tnt.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean func_268_g(World var1, int var2, int var3, int var4) {
|
||||
return this.canBlockCatchFire(var1, var2 + 1, var3, var4) ? true : (this.canBlockCatchFire(var1, var2 - 1, var3, var4) ? true : (this.canBlockCatchFire(var1, var2, var3 - 1, var4) ? true : (this.canBlockCatchFire(var1, var2, var3 + 1, var4) ? true : (this.canBlockCatchFire(var1, var2, var3, var4 - 1) ? true : this.canBlockCatchFire(var1, var2, var3, var4 + 1)))));
|
||||
}
|
||||
|
||||
private int getChanceOfNeighborsEncouragingFire(World var1, int var2, int var3, int var4) {
|
||||
byte var5 = 0;
|
||||
if(!var1.isAirBlock(var2, var3, var4)) {
|
||||
return 0;
|
||||
} else {
|
||||
int var6 = this.getChanceToEncourageFire(var1, var2 + 1, var3, var4, var5);
|
||||
var6 = this.getChanceToEncourageFire(var1, var2 - 1, var3, var4, var6);
|
||||
var6 = this.getChanceToEncourageFire(var1, var2, var3 - 1, var4, var6);
|
||||
var6 = this.getChanceToEncourageFire(var1, var2, var3 + 1, var4, var6);
|
||||
var6 = this.getChanceToEncourageFire(var1, var2, var3, var4 - 1, var6);
|
||||
var6 = this.getChanceToEncourageFire(var1, var2, var3, var4 + 1, var6);
|
||||
return var6;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isCollidable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canBlockCatchFire(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
return this.chanceToEncourageFire[var1.getBlockId(var2, var3, var4)] > 0;
|
||||
}
|
||||
|
||||
public int getChanceToEncourageFire(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = this.chanceToEncourageFire[var1.getBlockId(var2, var3, var4)];
|
||||
return var6 > var5 ? var6 : var5;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2, var3 - 1, var4) || this.func_268_g(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && !this.func_268_g(var1, var2, var3, var4)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
if(var1.getBlockId(var2, var3 - 1, var4) != Block.obsidian.blockID || !Block.portal.tryToCreatePortal(var1, var2, var3, var4)) {
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && !this.func_268_g(var1, var2, var3, var4)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
57
src/net/minecraft/block/BlockFlower.java
Normal file
57
src/net/minecraft/block/BlockFlower.java
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFlower extends Block {
|
||||
protected BlockFlower(int var1, int var2) {
|
||||
super(var1, Material.plants);
|
||||
this.blockIndexInTexture = var2;
|
||||
this.setTickOnLoad(true);
|
||||
float var3 = 0.2F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 3.0F, 0.5F + var3);
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return super.canPlaceBlockAt(var1, var2, var3, var4) && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4));
|
||||
}
|
||||
|
||||
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
|
||||
return var1 == Block.grass.blockID || var1 == Block.dirt.blockID || var1 == Block.tilledField.blockID;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
|
||||
this.func_276_g(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
this.func_276_g(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
protected final void func_276_g(World var1, int var2, int var3, int var4) {
|
||||
if(!this.canBlockStay(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
|
||||
return (var1.getBlockLightValueNoChecks(var2, var3, var4) >= 8 || var1.canBlockSeeTheSky(var2, var3, var4)) && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4));
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
265
src/net/minecraft/block/BlockFlowing.java
Normal file
265
src/net/minecraft/block/BlockFlowing.java
Normal file
|
|
@ -0,0 +1,265 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFlowing extends BlockFluid {
|
||||
int field_659_a = 0;
|
||||
boolean[] field_658_b = new boolean[4];
|
||||
int[] field_660_c = new int[4];
|
||||
|
||||
protected BlockFlowing(int var1, Material var2) {
|
||||
super(var1, var2);
|
||||
}
|
||||
|
||||
private void func_30004_i(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
var1.setBlockAndMetadata(var2, var3, var4, this.blockID + 1, var5);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
var1.markBlockNeedsUpdate(var2, var3, var4);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
int var6 = this.func_301_g(var1, var2, var3, var4);
|
||||
byte var7 = 1;
|
||||
if(this.blockMaterial == Material.lava && !var1.worldProvider.isHellWorld) {
|
||||
var7 = 2;
|
||||
}
|
||||
|
||||
boolean var8 = true;
|
||||
int var10;
|
||||
if(var6 > 0) {
|
||||
byte var9 = -100;
|
||||
this.field_659_a = 0;
|
||||
int var12 = this.func_307_e(var1, var2 - 1, var3, var4, var9);
|
||||
var12 = this.func_307_e(var1, var2 + 1, var3, var4, var12);
|
||||
var12 = this.func_307_e(var1, var2, var3, var4 - 1, var12);
|
||||
var12 = this.func_307_e(var1, var2, var3, var4 + 1, var12);
|
||||
var10 = var12 + var7;
|
||||
if(var10 >= 8 || var12 < 0) {
|
||||
var10 = -1;
|
||||
}
|
||||
|
||||
if(this.func_301_g(var1, var2, var3 + 1, var4) >= 0) {
|
||||
int var11 = this.func_301_g(var1, var2, var3 + 1, var4);
|
||||
if(var11 >= 8) {
|
||||
var10 = var11;
|
||||
} else {
|
||||
var10 = var11 + 8;
|
||||
}
|
||||
}
|
||||
|
||||
if(this.field_659_a >= 2 && this.blockMaterial == Material.water) {
|
||||
if(var1.getBlockMaterial(var2, var3 - 1, var4).isSolid()) {
|
||||
var10 = 0;
|
||||
} else if(var1.getBlockMaterial(var2, var3 - 1, var4) == this.blockMaterial && var1.getBlockMetadata(var2, var3, var4) == 0) {
|
||||
var10 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(this.blockMaterial == Material.lava && var6 < 8 && var10 < 8 && var10 > var6 && var5.nextInt(4) != 0) {
|
||||
var10 = var6;
|
||||
var8 = false;
|
||||
}
|
||||
|
||||
if(var10 != var6) {
|
||||
var6 = var10;
|
||||
if(var10 < 0) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var10);
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
}
|
||||
} else if(var8) {
|
||||
this.func_30004_i(var1, var2, var3, var4);
|
||||
}
|
||||
} else {
|
||||
this.func_30004_i(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
if(this.func_312_l(var1, var2, var3 - 1, var4)) {
|
||||
if(var6 >= 8) {
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, this.blockID, var6);
|
||||
} else {
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, this.blockID, var6 + 8);
|
||||
}
|
||||
} else if(var6 >= 0 && (var6 == 0 || this.func_309_k(var1, var2, var3 - 1, var4))) {
|
||||
boolean[] var13 = this.func_4035_j(var1, var2, var3, var4);
|
||||
var10 = var6 + var7;
|
||||
if(var6 >= 8) {
|
||||
var10 = 1;
|
||||
}
|
||||
|
||||
if(var10 >= 8) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(var13[0]) {
|
||||
this.func_311_f(var1, var2 - 1, var3, var4, var10);
|
||||
}
|
||||
|
||||
if(var13[1]) {
|
||||
this.func_311_f(var1, var2 + 1, var3, var4, var10);
|
||||
}
|
||||
|
||||
if(var13[2]) {
|
||||
this.func_311_f(var1, var2, var3, var4 - 1, var10);
|
||||
}
|
||||
|
||||
if(var13[3]) {
|
||||
this.func_311_f(var1, var2, var3, var4 + 1, var10);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void func_311_f(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(this.func_312_l(var1, var2, var3, var4)) {
|
||||
int var6 = var1.getBlockId(var2, var3, var4);
|
||||
if(var6 > 0) {
|
||||
if(this.blockMaterial == Material.lava) {
|
||||
this.func_300_h(var1, var2, var3, var4);
|
||||
} else {
|
||||
Block.blocksList[var6].dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
}
|
||||
}
|
||||
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3, var4, this.blockID, var5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private int func_4034_a(World var1, int var2, int var3, int var4, int var5, int var6) {
|
||||
int var7 = 1000;
|
||||
|
||||
for(int var8 = 0; var8 < 4; ++var8) {
|
||||
if((var8 != 0 || var6 != 1) && (var8 != 1 || var6 != 0) && (var8 != 2 || var6 != 3) && (var8 != 3 || var6 != 2)) {
|
||||
int var9 = var2;
|
||||
int var11 = var4;
|
||||
if(var8 == 0) {
|
||||
var9 = var2 - 1;
|
||||
}
|
||||
|
||||
if(var8 == 1) {
|
||||
++var9;
|
||||
}
|
||||
|
||||
if(var8 == 2) {
|
||||
var11 = var4 - 1;
|
||||
}
|
||||
|
||||
if(var8 == 3) {
|
||||
++var11;
|
||||
}
|
||||
|
||||
if(!this.func_309_k(var1, var9, var3, var11) && (var1.getBlockMaterial(var9, var3, var11) != this.blockMaterial || var1.getBlockMetadata(var9, var3, var11) != 0)) {
|
||||
if(!this.func_309_k(var1, var9, var3 - 1, var11)) {
|
||||
return var5;
|
||||
}
|
||||
|
||||
if(var5 < 4) {
|
||||
int var12 = this.func_4034_a(var1, var9, var3, var11, var5 + 1, var8);
|
||||
if(var12 < var7) {
|
||||
var7 = var12;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return var7;
|
||||
}
|
||||
|
||||
private boolean[] func_4035_j(World var1, int var2, int var3, int var4) {
|
||||
int var5;
|
||||
int var6;
|
||||
for(var5 = 0; var5 < 4; ++var5) {
|
||||
this.field_660_c[var5] = 1000;
|
||||
var6 = var2;
|
||||
int var8 = var4;
|
||||
if(var5 == 0) {
|
||||
var6 = var2 - 1;
|
||||
}
|
||||
|
||||
if(var5 == 1) {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if(var5 == 2) {
|
||||
var8 = var4 - 1;
|
||||
}
|
||||
|
||||
if(var5 == 3) {
|
||||
++var8;
|
||||
}
|
||||
|
||||
if(!this.func_309_k(var1, var6, var3, var8) && (var1.getBlockMaterial(var6, var3, var8) != this.blockMaterial || var1.getBlockMetadata(var6, var3, var8) != 0)) {
|
||||
if(!this.func_309_k(var1, var6, var3 - 1, var8)) {
|
||||
this.field_660_c[var5] = 0;
|
||||
} else {
|
||||
this.field_660_c[var5] = this.func_4034_a(var1, var6, var3, var8, 1, var5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var5 = this.field_660_c[0];
|
||||
|
||||
for(var6 = 1; var6 < 4; ++var6) {
|
||||
if(this.field_660_c[var6] < var5) {
|
||||
var5 = this.field_660_c[var6];
|
||||
}
|
||||
}
|
||||
|
||||
for(var6 = 0; var6 < 4; ++var6) {
|
||||
this.field_658_b[var6] = this.field_660_c[var6] == var5;
|
||||
}
|
||||
|
||||
return this.field_658_b;
|
||||
}
|
||||
|
||||
private boolean func_309_k(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockId(var2, var3, var4);
|
||||
if(var5 != Block.doorWood.blockID && var5 != Block.doorSteel.blockID && var5 != Block.signPost.blockID && var5 != Block.ladder.blockID && var5 != Block.reed.blockID) {
|
||||
if(var5 == 0) {
|
||||
return false;
|
||||
} else {
|
||||
Material var6 = Block.blocksList[var5].blockMaterial;
|
||||
return var6.getIsSolid();
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
protected int func_307_e(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = this.func_301_g(var1, var2, var3, var4);
|
||||
if(var6 < 0) {
|
||||
return var5;
|
||||
} else {
|
||||
if(var6 == 0) {
|
||||
++this.field_659_a;
|
||||
}
|
||||
|
||||
if(var6 >= 8) {
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
return var5 >= 0 && var6 >= var5 ? var5 : var6;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean func_312_l(World var1, int var2, int var3, int var4) {
|
||||
Material var5 = var1.getBlockMaterial(var2, var3, var4);
|
||||
return var5 == this.blockMaterial ? false : (var5 == Material.lava ? false : !this.func_309_k(var1, var2, var3, var4));
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
231
src/net/minecraft/block/BlockFluid.java
Normal file
231
src/net/minecraft/block/BlockFluid.java
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.Vec3D;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public abstract class BlockFluid extends Block {
|
||||
protected BlockFluid(int var1, Material var2) {
|
||||
super(var1, (var2 == Material.lava ? 14 : 12) * 16 + 13, var2);
|
||||
float var3 = 0.0F;
|
||||
float var4 = 0.0F;
|
||||
this.setBlockBounds(0.0F + var4, 0.0F + var3, 0.0F + var4, 1.0F + var4, 1.0F + var3, 1.0F + var4);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public static float setFluidHeight(int var0) {
|
||||
if(var0 >= 8) {
|
||||
var0 = 0;
|
||||
}
|
||||
|
||||
float var1 = (float)(var0 + 1) / 9.0F;
|
||||
return var1;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 != 0 && var1 != 1 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
protected int func_301_g(World var1, int var2, int var3, int var4) {
|
||||
return var1.getBlockMaterial(var2, var3, var4) != this.blockMaterial ? -1 : var1.getBlockMetadata(var2, var3, var4);
|
||||
}
|
||||
|
||||
protected int func_303_b(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
if(var1.getBlockMaterial(var2, var3, var4) != this.blockMaterial) {
|
||||
return -1;
|
||||
} else {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var5 >= 8) {
|
||||
var5 = 0;
|
||||
}
|
||||
|
||||
return var5;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canCollideCheck(int var1, boolean var2) {
|
||||
return var2 && var1 == 0;
|
||||
}
|
||||
|
||||
public boolean shouldSideBeRendered(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
Material var6 = var1.getBlockMaterial(var2, var3, var4);
|
||||
return var6 == this.blockMaterial ? false : (var6 == Material.ice ? false : (var5 == 1 ? true : super.shouldSideBeRendered(var1, var2, var3, var4, var5)));
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
private Vec3D func_298_c(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
Vec3D var5 = Vec3D.createVector(0.0D, 0.0D, 0.0D);
|
||||
int var6 = this.func_303_b(var1, var2, var3, var4);
|
||||
|
||||
for(int var7 = 0; var7 < 4; ++var7) {
|
||||
int var8 = var2;
|
||||
int var10 = var4;
|
||||
if(var7 == 0) {
|
||||
var8 = var2 - 1;
|
||||
}
|
||||
|
||||
if(var7 == 1) {
|
||||
var10 = var4 - 1;
|
||||
}
|
||||
|
||||
if(var7 == 2) {
|
||||
++var8;
|
||||
}
|
||||
|
||||
if(var7 == 3) {
|
||||
++var10;
|
||||
}
|
||||
|
||||
int var11 = this.func_303_b(var1, var8, var3, var10);
|
||||
int var12;
|
||||
if(var11 < 0) {
|
||||
if(!var1.getBlockMaterial(var8, var3, var10).getIsSolid()) {
|
||||
var11 = this.func_303_b(var1, var8, var3 - 1, var10);
|
||||
if(var11 >= 0) {
|
||||
var12 = var11 - (var6 - 8);
|
||||
var5 = var5.addVector((double)((var8 - var2) * var12), (double)((var3 - var3) * var12), (double)((var10 - var4) * var12));
|
||||
}
|
||||
}
|
||||
} else if(var11 >= 0) {
|
||||
var12 = var11 - var6;
|
||||
var5 = var5.addVector((double)((var8 - var2) * var12), (double)((var3 - var3) * var12), (double)((var10 - var4) * var12));
|
||||
}
|
||||
}
|
||||
|
||||
if(var1.getBlockMetadata(var2, var3, var4) >= 8) {
|
||||
boolean var13 = false;
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2, var3, var4 - 1, 2)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2, var3, var4 + 1, 3)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2 - 1, var3, var4, 4)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2 + 1, var3, var4, 5)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2, var3 + 1, var4 - 1, 2)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2, var3 + 1, var4 + 1, 3)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2 - 1, var3 + 1, var4, 4)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13 || this.shouldSideBeRendered(var1, var2 + 1, var3 + 1, var4, 5)) {
|
||||
var13 = true;
|
||||
}
|
||||
|
||||
if(var13) {
|
||||
var5 = var5.normalize().addVector(0.0D, -6.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
|
||||
var5 = var5.normalize();
|
||||
return var5;
|
||||
}
|
||||
|
||||
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) {
|
||||
Vec3D var7 = this.func_298_c(var1, var2, var3, var4);
|
||||
var6.xCoord += var7.xCoord;
|
||||
var6.yCoord += var7.yCoord;
|
||||
var6.zCoord += var7.zCoord;
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return this.blockMaterial == Material.water ? 5 : (this.blockMaterial == Material.lava ? 30 : 0);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
super.updateTick(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
this.checkForHarden(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
this.checkForHarden(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
private void checkForHarden(World var1, int var2, int var3, int var4) {
|
||||
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
|
||||
if(this.blockMaterial == Material.lava) {
|
||||
boolean var5 = false;
|
||||
if(var5 || var1.getBlockMaterial(var2, var3, var4 - 1) == Material.water) {
|
||||
var5 = true;
|
||||
}
|
||||
|
||||
if(var5 || var1.getBlockMaterial(var2, var3, var4 + 1) == Material.water) {
|
||||
var5 = true;
|
||||
}
|
||||
|
||||
if(var5 || var1.getBlockMaterial(var2 - 1, var3, var4) == Material.water) {
|
||||
var5 = true;
|
||||
}
|
||||
|
||||
if(var5 || var1.getBlockMaterial(var2 + 1, var3, var4) == Material.water) {
|
||||
var5 = true;
|
||||
}
|
||||
|
||||
if(var5 || var1.getBlockMaterial(var2, var3 + 1, var4) == Material.water) {
|
||||
var5 = true;
|
||||
}
|
||||
|
||||
if(var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var6 == 0) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.obsidian.blockID);
|
||||
} else if(var6 <= 4) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.cobblestone.blockID);
|
||||
}
|
||||
|
||||
this.func_300_h(var1, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void func_300_h(World var1, int var2, int var3, int var4) {
|
||||
var1.playSoundEffect((double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), "random.fizz", 0.5F, 2.6F + (var1.rand.nextFloat() - var1.rand.nextFloat()) * 0.8F);
|
||||
|
||||
for(int var5 = 0; var5 < 8; ++var5) {
|
||||
var1.spawnParticle("largesmoke", (double)var2 + Math.random(), (double)var3 + 1.2D, (double)var4 + Math.random(), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
146
src/net/minecraft/block/BlockFurnace.java
Normal file
146
src/net/minecraft/block/BlockFurnace.java
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityFurnace;
|
||||
import net.minecraft.entity.EntityItem;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.math.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockFurnace extends BlockContainer {
|
||||
private Random field_28033_a = new Random();
|
||||
private final boolean isActive;
|
||||
private static boolean field_28034_c = false;
|
||||
|
||||
protected BlockFurnace(int var1, boolean var2) {
|
||||
super(var1, Material.rock);
|
||||
this.isActive = var2;
|
||||
this.blockIndexInTexture = 45;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.stoneOvenIdle.blockID;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
this.setDefaultDirection(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
private void setDefaultDirection(World var1, int var2, int var3, int var4) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var5 = var1.getBlockId(var2, var3, var4 - 1);
|
||||
int var6 = var1.getBlockId(var2, var3, var4 + 1);
|
||||
int var7 = var1.getBlockId(var2 - 1, var3, var4);
|
||||
int var8 = var1.getBlockId(var2 + 1, var3, var4);
|
||||
byte var9 = 3;
|
||||
if(Block.opaqueCubeLookup[var5] && !Block.opaqueCubeLookup[var6]) {
|
||||
var9 = 3;
|
||||
}
|
||||
|
||||
if(Block.opaqueCubeLookup[var6] && !Block.opaqueCubeLookup[var5]) {
|
||||
var9 = 2;
|
||||
}
|
||||
|
||||
if(Block.opaqueCubeLookup[var7] && !Block.opaqueCubeLookup[var8]) {
|
||||
var9 = 5;
|
||||
}
|
||||
|
||||
if(Block.opaqueCubeLookup[var8] && !Block.opaqueCubeLookup[var7]) {
|
||||
var9 = 4;
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
|
||||
}
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture + 17 : (var1 == 0 ? this.blockIndexInTexture + 17 : (var1 == 3 ? this.blockIndexInTexture - 1 : this.blockIndexInTexture));
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var1.singleplayerWorld) {
|
||||
return true;
|
||||
} else {
|
||||
TileEntityFurnace var6 = (TileEntityFurnace)var1.getBlockTileEntity(var2, var3, var4);
|
||||
var5.displayGUIFurnace(var6);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static void updateFurnaceBlockState(boolean var0, World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
TileEntity var6 = var1.getBlockTileEntity(var2, var3, var4);
|
||||
field_28034_c = true;
|
||||
if(var0) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.stoneOvenActive.blockID);
|
||||
} else {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.stoneOvenIdle.blockID);
|
||||
}
|
||||
|
||||
field_28034_c = false;
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var5);
|
||||
var6.validate();
|
||||
var1.setBlockTileEntity(var2, var3, var4, var6);
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
return new TileEntityFurnace();
|
||||
}
|
||||
|
||||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
|
||||
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
||||
if(var6 == 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
|
||||
}
|
||||
|
||||
if(var6 == 1) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
|
||||
}
|
||||
|
||||
if(var6 == 2) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
|
||||
}
|
||||
|
||||
if(var6 == 3) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
if(!field_28034_c) {
|
||||
TileEntityFurnace var5 = (TileEntityFurnace)var1.getBlockTileEntity(var2, var3, var4);
|
||||
|
||||
for(int var6 = 0; var6 < var5.getSizeInventory(); ++var6) {
|
||||
ItemStack var7 = var5.getStackInSlot(var6);
|
||||
if(var7 != null) {
|
||||
float var8 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
|
||||
float var9 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
|
||||
float var10 = this.field_28033_a.nextFloat() * 0.8F + 0.1F;
|
||||
|
||||
while(var7.stackSize > 0) {
|
||||
int var11 = this.field_28033_a.nextInt(21) + 10;
|
||||
if(var11 > var7.stackSize) {
|
||||
var11 = var7.stackSize;
|
||||
}
|
||||
|
||||
var7.stackSize -= var11;
|
||||
EntityItem var12 = new EntityItem(var1, (double)((float)var2 + var8), (double)((float)var3 + var9), (double)((float)var4 + var10), new ItemStack(var7.itemID, var11, var7.getItemDamage()));
|
||||
float var13 = 0.05F;
|
||||
var12.motionX = (double)((float)this.field_28033_a.nextGaussian() * var13);
|
||||
var12.motionY = (double)((float)this.field_28033_a.nextGaussian() * var13 + 0.2F);
|
||||
var12.motionZ = (double)((float)this.field_28033_a.nextGaussian() * var13);
|
||||
var1.entityJoinedWorld(var12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
14
src/net/minecraft/block/BlockGlass.java
Normal file
14
src/net/minecraft/block/BlockGlass.java
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockGlass extends BlockBreakable {
|
||||
public BlockGlass(int var1, int var2, Material var3, boolean var4) {
|
||||
super(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
19
src/net/minecraft/block/BlockGlowStone.java
Normal file
19
src/net/minecraft/block/BlockGlowStone.java
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class BlockGlowStone extends Block {
|
||||
public BlockGlowStone(int var1, int var2, Material var3) {
|
||||
super(var1, var2, var3);
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 2 + var1.nextInt(3);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.lightStoneDust.shiftedIndex;
|
||||
}
|
||||
}
|
||||
38
src/net/minecraft/block/BlockGrass.java
Normal file
38
src/net/minecraft/block/BlockGrass.java
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockGrass extends Block {
|
||||
protected BlockGrass(int var1) {
|
||||
super(var1, Material.grass);
|
||||
this.blockIndexInTexture = 3;
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
if(var1.getBlockLightValue(var2, var3 + 1, var4) < 4 && Block.lightOpacity[var1.getBlockId(var2, var3 + 1, var4)] > 2) {
|
||||
if(var5.nextInt(4) != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.dirt.blockID);
|
||||
} else if(var1.getBlockLightValue(var2, var3 + 1, var4) >= 9) {
|
||||
int var6 = var2 + var5.nextInt(3) - 1;
|
||||
int var7 = var3 + var5.nextInt(5) - 3;
|
||||
int var8 = var4 + var5.nextInt(3) - 1;
|
||||
int var9 = var1.getBlockId(var6, var7 + 1, var8);
|
||||
if(var1.getBlockId(var6, var7, var8) == Block.dirt.blockID && var1.getBlockLightValue(var6, var7 + 1, var8) >= 4 && Block.lightOpacity[var9] <= 2) {
|
||||
var1.setBlockWithNotify(var6, var7, var8, Block.grass.blockID);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.dirt.idDropped(0, var2);
|
||||
}
|
||||
}
|
||||
14
src/net/minecraft/block/BlockGravel.java
Normal file
14
src/net/minecraft/block/BlockGravel.java
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class BlockGravel extends BlockSand {
|
||||
public BlockGravel(int var1, int var2) {
|
||||
super(var1, var2);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return var2.nextInt(10) == 0 ? Item.flint.shiftedIndex : this.blockID;
|
||||
}
|
||||
}
|
||||
40
src/net/minecraft/block/BlockIce.java
Normal file
40
src/net/minecraft/block/BlockIce.java
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.world.EnumLightSource;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockIce extends BlockBreakable {
|
||||
public BlockIce(int var1, int var2) {
|
||||
super(var1, var2, Material.ice, false);
|
||||
this.slipperiness = 0.98F;
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
|
||||
super.harvestBlock(var1, var2, var3, var4, var5, var6);
|
||||
Material var7 = var1.getBlockMaterial(var3, var4 - 1, var5);
|
||||
if(var7.getIsSolid() || var7.getIsLiquid()) {
|
||||
var1.setBlockWithNotify(var3, var4, var5, Block.waterMoving.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11 - Block.lightOpacity[this.blockID]) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.waterStill.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getMobilityFlag() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
73
src/net/minecraft/block/BlockJukeBox.java
Normal file
73
src/net/minecraft/block/BlockJukeBox.java
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityRecordPlayer;
|
||||
import net.minecraft.entity.EntityItem;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockJukeBox extends BlockContainer {
|
||||
protected BlockJukeBox(int var1, int var2) {
|
||||
super(var1, var2, Material.wood);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return this.blockIndexInTexture + (var1 == 1 ? 1 : 0);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var1.getBlockMetadata(var2, var3, var4) == 0) {
|
||||
return false;
|
||||
} else {
|
||||
this.func_28035_b_(var1, var2, var3, var4);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void ejectRecord(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
TileEntityRecordPlayer var6 = (TileEntityRecordPlayer)var1.getBlockTileEntity(var2, var3, var4);
|
||||
var6.field_28009_a = var5;
|
||||
var6.onInventoryChanged();
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
|
||||
}
|
||||
}
|
||||
|
||||
public void func_28035_b_(World var1, int var2, int var3, int var4) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
TileEntityRecordPlayer var5 = (TileEntityRecordPlayer)var1.getBlockTileEntity(var2, var3, var4);
|
||||
int var6 = var5.field_28009_a;
|
||||
if(var6 != 0) {
|
||||
var1.func_28097_e(1005, var2, var3, var4, 0);
|
||||
var1.playRecord((String)null, var2, var3, var4);
|
||||
var5.field_28009_a = 0;
|
||||
var5.onInventoryChanged();
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
|
||||
float var8 = 0.7F;
|
||||
double var9 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
|
||||
double var11 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.2D + 0.6D;
|
||||
double var13 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
|
||||
EntityItem var15 = new EntityItem(var1, (double)var2 + var9, (double)var3 + var11, (double)var4 + var13, new ItemStack(var6, 1, 0));
|
||||
var15.delayBeforeCanPickup = 10;
|
||||
var1.entityJoinedWorld(var15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
this.func_28035_b_(var1, var2, var3, var4);
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
super.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
return new TileEntityRecordPlayer();
|
||||
}
|
||||
}
|
||||
98
src/net/minecraft/block/BlockLadder.java
Normal file
98
src/net/minecraft/block/BlockLadder.java
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockLadder extends Block {
|
||||
protected BlockLadder(int var1, int var2) {
|
||||
super(var1, var2, Material.circuits);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
float var6 = 2.0F / 16.0F;
|
||||
if(var5 == 2) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 1.0F - var6, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if(var5 == 3) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var6);
|
||||
}
|
||||
|
||||
if(var5 == 4) {
|
||||
this.setBlockBounds(1.0F - var6, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if(var5 == 5) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, var6, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : var1.isBlockNormalCube(var2, var3, var4 + 1)));
|
||||
}
|
||||
|
||||
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 == 0 || var5 == 2) && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
var6 = 2;
|
||||
}
|
||||
|
||||
if((var6 == 0 || var5 == 3) && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
var6 = 3;
|
||||
}
|
||||
|
||||
if((var6 == 0 || var5 == 4) && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
var6 = 4;
|
||||
}
|
||||
|
||||
if((var6 == 0 || var5 == 5) && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
var6 = 5;
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
boolean var7 = false;
|
||||
if(var6 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var6 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var6 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var6 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var7) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var6);
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
173
src/net/minecraft/block/BlockLeaves.java
Normal file
173
src/net/minecraft/block/BlockLeaves.java
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.statistics.StatList;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockLeaves extends BlockLeavesBase {
|
||||
private int baseIndexInPNG;
|
||||
int[] adjacentTreeBlocks;
|
||||
|
||||
protected BlockLeaves(int var1, int var2) {
|
||||
super(var1, var2, Material.leaves, false);
|
||||
this.baseIndexInPNG = var2;
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
byte var5 = 1;
|
||||
int var6 = var5 + 1;
|
||||
if(var1.checkChunksExist(var2 - var6, var3 - var6, var4 - var6, var2 + var6, var3 + var6, var4 + var6)) {
|
||||
for(int var7 = -var5; var7 <= var5; ++var7) {
|
||||
for(int var8 = -var5; var8 <= var5; ++var8) {
|
||||
for(int var9 = -var5; var9 <= var5; ++var9) {
|
||||
int var10 = var1.getBlockId(var2 + var7, var3 + var8, var4 + var9);
|
||||
if(var10 == Block.leaves.blockID) {
|
||||
int var11 = var1.getBlockMetadata(var2 + var7, var3 + var8, var4 + var9);
|
||||
var1.setBlockMetadata(var2 + var7, var3 + var8, var4 + var9, var11 | 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) != 0) {
|
||||
byte var7 = 4;
|
||||
int var8 = var7 + 1;
|
||||
byte var9 = 32;
|
||||
int var10 = var9 * var9;
|
||||
int var11 = var9 / 2;
|
||||
if(this.adjacentTreeBlocks == null) {
|
||||
this.adjacentTreeBlocks = new int[var9 * var9 * var9];
|
||||
}
|
||||
|
||||
int var12;
|
||||
if(var1.checkChunksExist(var2 - var8, var3 - var8, var4 - var8, var2 + var8, var3 + var8, var4 + var8)) {
|
||||
var12 = -var7;
|
||||
|
||||
label111:
|
||||
while(true) {
|
||||
int var13;
|
||||
int var14;
|
||||
int var15;
|
||||
if(var12 > var7) {
|
||||
var12 = 1;
|
||||
|
||||
while(true) {
|
||||
if(var12 > 4) {
|
||||
break label111;
|
||||
}
|
||||
|
||||
for(var13 = -var7; var13 <= var7; ++var13) {
|
||||
for(var14 = -var7; var14 <= var7; ++var14) {
|
||||
for(var15 = -var7; var15 <= var7; ++var15) {
|
||||
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11] == var12 - 1) {
|
||||
if(this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) {
|
||||
this.adjacentTreeBlocks[(var13 + var11 - 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12;
|
||||
}
|
||||
|
||||
if(this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] == -2) {
|
||||
this.adjacentTreeBlocks[(var13 + var11 + 1) * var10 + (var14 + var11) * var9 + var15 + var11] = var12;
|
||||
}
|
||||
|
||||
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] == -2) {
|
||||
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 - 1) * var9 + var15 + var11] = var12;
|
||||
}
|
||||
|
||||
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] == -2) {
|
||||
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11 + 1) * var9 + var15 + var11] = var12;
|
||||
}
|
||||
|
||||
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] == -2) {
|
||||
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + (var15 + var11 - 1)] = var12;
|
||||
}
|
||||
|
||||
if(this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] == -2) {
|
||||
this.adjacentTreeBlocks[(var13 + var11) * var10 + (var14 + var11) * var9 + var15 + var11 + 1] = var12;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
++var12;
|
||||
}
|
||||
}
|
||||
|
||||
for(var13 = -var7; var13 <= var7; ++var13) {
|
||||
for(var14 = -var7; var14 <= var7; ++var14) {
|
||||
var15 = var1.getBlockId(var2 + var12, var3 + var13, var4 + var14);
|
||||
if(var15 == Block.wood.blockID) {
|
||||
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = 0;
|
||||
} else if(var15 == Block.leaves.blockID) {
|
||||
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -2;
|
||||
} else {
|
||||
this.adjacentTreeBlocks[(var12 + var11) * var10 + (var13 + var11) * var9 + var14 + var11] = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
++var12;
|
||||
}
|
||||
}
|
||||
|
||||
var12 = this.adjacentTreeBlocks[var11 * var10 + var11 * var9 + var11];
|
||||
if(var12 >= 0) {
|
||||
var1.setBlockMetadata(var2, var3, var4, var6 & -9);
|
||||
} else {
|
||||
this.removeLeaves(var1, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void removeLeaves(World var1, int var2, int var3, int var4) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return var1.nextInt(20) == 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.sapling.blockID;
|
||||
}
|
||||
|
||||
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
|
||||
if(!var1.singleplayerWorld && var2.getCurrentEquippedItem() != null && var2.getCurrentEquippedItem().itemID == Item.field_31022_bc.shiftedIndex) {
|
||||
var2.addStat(StatList.mineBlockStatArray[this.blockID], 1);
|
||||
this.dropBlockAsItem_do(var1, var3, var4, var5, new ItemStack(Block.leaves.blockID, 1, var6 & 3));
|
||||
} else {
|
||||
super.harvestBlock(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected int damageDropped(int var1) {
|
||||
return var1 & 3;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return !this.graphicsLevel;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return (var2 & 3) == 1 ? this.blockIndexInTexture + 80 : this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
super.onEntityWalking(var1, var2, var3, var4, var5);
|
||||
}
|
||||
}
|
||||
16
src/net/minecraft/block/BlockLeavesBase.java
Normal file
16
src/net/minecraft/block/BlockLeavesBase.java
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockLeavesBase extends Block {
|
||||
protected boolean graphicsLevel;
|
||||
|
||||
protected BlockLeavesBase(int var1, int var2, Material var3, boolean var4) {
|
||||
super(var1, var2, var3);
|
||||
this.graphicsLevel = var4;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
200
src/net/minecraft/block/BlockLever.java
Normal file
200
src/net/minecraft/block/BlockLever.java
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockLever extends Block {
|
||||
protected BlockLever(int var1, int var2) {
|
||||
super(var1, var2, Material.circuits);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
|
||||
return var5 == 1 && var1.isBlockNormalCube(var2, var3 - 1, var4) ? true : (var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : (var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4))));
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : var1.isBlockNormalCube(var2, var3 - 1, var4))));
|
||||
}
|
||||
|
||||
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = var6 & 8;
|
||||
var6 &= 7;
|
||||
var6 = -1;
|
||||
if(var5 == 1 && var1.isBlockNormalCube(var2, var3 - 1, var4)) {
|
||||
var6 = 5 + var1.rand.nextInt(2);
|
||||
}
|
||||
|
||||
if(var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
var6 = 4;
|
||||
}
|
||||
|
||||
if(var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
var6 = 3;
|
||||
}
|
||||
|
||||
if(var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
var6 = 2;
|
||||
}
|
||||
|
||||
if(var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
var6 = 1;
|
||||
}
|
||||
|
||||
if(var6 == -1) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 + var7);
|
||||
}
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(this.checkIfAttachedToBlock(var1, var2, var3, var4)) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4) & 7;
|
||||
boolean var7 = false;
|
||||
if(!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && var6 == 5) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4) && var6 == 6) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var7) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean checkIfAttachedToBlock(World var1, int var2, int var3, int var4) {
|
||||
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
|
||||
float var6 = 3.0F / 16.0F;
|
||||
if(var5 == 1) {
|
||||
this.setBlockBounds(0.0F, 0.2F, 0.5F - var6, var6 * 2.0F, 0.8F, 0.5F + var6);
|
||||
} else if(var5 == 2) {
|
||||
this.setBlockBounds(1.0F - var6 * 2.0F, 0.2F, 0.5F - var6, 1.0F, 0.8F, 0.5F + var6);
|
||||
} else if(var5 == 3) {
|
||||
this.setBlockBounds(0.5F - var6, 0.2F, 0.0F, 0.5F + var6, 0.8F, var6 * 2.0F);
|
||||
} else if(var5 == 4) {
|
||||
this.setBlockBounds(0.5F - var6, 0.2F, 1.0F - var6 * 2.0F, 0.5F + var6, 0.8F, 1.0F);
|
||||
} else {
|
||||
var6 = 0.25F;
|
||||
this.setBlockBounds(0.5F - var6, 0.0F, 0.5F - var6, 0.5F + var6, 0.6F, 0.5F + var6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.blockActivated(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var1.singleplayerWorld) {
|
||||
return true;
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = var6 & 7;
|
||||
int var8 = 8 - (var6 & 8);
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + var8);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "random.click", 0.3F, var8 > 0 ? 0.6F : 0.5F);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
if(var7 == 1) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
} else if(var7 == 2) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
} else if(var7 == 3) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
} else if(var7 == 4) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
} else {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var5 & 8) > 0) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
int var6 = var5 & 7;
|
||||
if(var6 == 1) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
} else if(var6 == 2) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
} else if(var6 == 3) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
} else if(var6 == 4) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
} else {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
}
|
||||
}
|
||||
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
return (var1.getBlockMetadata(var2, var3, var4) & 8) > 0;
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) == 0) {
|
||||
return false;
|
||||
} else {
|
||||
int var7 = var6 & 7;
|
||||
return var7 == 6 && var5 == 1 ? true : (var7 == 5 && var5 == 1 ? true : (var7 == 4 && var5 == 2 ? true : (var7 == 3 && var5 == 3 ? true : (var7 == 2 && var5 == 4 ? true : var7 == 1 && var5 == 5))));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
24
src/net/minecraft/block/BlockLockedChest.java
Normal file
24
src/net/minecraft/block/BlockLockedChest.java
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockLockedChest extends Block {
|
||||
protected BlockLockedChest(int var1) {
|
||||
super(var1, Material.wood);
|
||||
this.blockIndexInTexture = 26;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture - 1 : (var1 == 0 ? this.blockIndexInTexture - 1 : (var1 == 3 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture));
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
54
src/net/minecraft/block/BlockLog.java
Normal file
54
src/net/minecraft/block/BlockLog.java
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockLog extends Block {
|
||||
protected BlockLog(int var1) {
|
||||
super(var1, Material.wood);
|
||||
this.blockIndexInTexture = 20;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.wood.blockID;
|
||||
}
|
||||
|
||||
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
|
||||
super.harvestBlock(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
byte var5 = 4;
|
||||
int var6 = var5 + 1;
|
||||
if(var1.checkChunksExist(var2 - var6, var3 - var6, var4 - var6, var2 + var6, var3 + var6, var4 + var6)) {
|
||||
for(int var7 = -var5; var7 <= var5; ++var7) {
|
||||
for(int var8 = -var5; var8 <= var5; ++var8) {
|
||||
for(int var9 = -var5; var9 <= var5; ++var9) {
|
||||
int var10 = var1.getBlockId(var2 + var7, var3 + var8, var4 + var9);
|
||||
if(var10 == Block.leaves.blockID) {
|
||||
int var11 = var1.getBlockMetadata(var2 + var7, var3 + var8, var4 + var9);
|
||||
if((var11 & 8) == 0) {
|
||||
var1.setBlockMetadata(var2 + var7, var3 + var8, var4 + var9, var11 | 8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return var1 == 1 ? 21 : (var1 == 0 ? 21 : (var2 == 1 ? 116 : (var2 == 2 ? 117 : 20)));
|
||||
}
|
||||
|
||||
protected int damageDropped(int var1) {
|
||||
return var1;
|
||||
}
|
||||
}
|
||||
28
src/net/minecraft/block/BlockMobSpawner.java
Normal file
28
src/net/minecraft/block/BlockMobSpawner.java
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityMobSpawner;
|
||||
|
||||
public class BlockMobSpawner extends BlockContainer {
|
||||
protected BlockMobSpawner(int var1, int var2) {
|
||||
super(var1, var2, Material.rock);
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
return new TileEntityMobSpawner();
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
37
src/net/minecraft/block/BlockMushroom.java
Normal file
37
src/net/minecraft/block/BlockMushroom.java
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockMushroom extends BlockFlower {
|
||||
protected BlockMushroom(int var1, int var2) {
|
||||
super(var1, var2);
|
||||
float var3 = 0.2F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var5.nextInt(100) == 0) {
|
||||
int var6 = var2 + var5.nextInt(3) - 1;
|
||||
int var7 = var3 + var5.nextInt(2) - var5.nextInt(2);
|
||||
int var8 = var4 + var5.nextInt(3) - 1;
|
||||
if(var1.isAirBlock(var6, var7, var8) && this.canBlockStay(var1, var6, var7, var8)) {
|
||||
int var10000 = var2 + (var5.nextInt(3) - 1);
|
||||
var10000 = var4 + (var5.nextInt(3) - 1);
|
||||
if(var1.isAirBlock(var6, var7, var8) && this.canBlockStay(var1, var6, var7, var8)) {
|
||||
var1.setBlockWithNotify(var6, var7, var8, this.blockID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected boolean canThisPlantGrowOnThisBlockID(int var1) {
|
||||
return Block.opaqueCubeLookup[var1];
|
||||
}
|
||||
|
||||
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
|
||||
return var3 >= 0 && var3 < 128 ? var1.getBlockLightValueNoChecks(var2, var3, var4) < 13 && this.canThisPlantGrowOnThisBlockID(var1.getBlockId(var2, var3 - 1, var4)) : false;
|
||||
}
|
||||
}
|
||||
9
src/net/minecraft/block/BlockNetherrack.java
Normal file
9
src/net/minecraft/block/BlockNetherrack.java
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockNetherrack extends Block {
|
||||
public BlockNetherrack(int var1, int var2) {
|
||||
super(var1, var2, Material.rock);
|
||||
}
|
||||
}
|
||||
77
src/net/minecraft/block/BlockNote.java
Normal file
77
src/net/minecraft/block/BlockNote.java
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityNote;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockNote extends BlockContainer {
|
||||
public BlockNote(int var1) {
|
||||
super(var1, 74, Material.wood);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
|
||||
boolean var6 = var1.isBlockGettingPowered(var2, var3, var4);
|
||||
TileEntityNote var7 = (TileEntityNote)var1.getBlockTileEntity(var2, var3, var4);
|
||||
if(var7.previousRedstoneState != var6) {
|
||||
if(var6) {
|
||||
var7.triggerNote(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
var7.previousRedstoneState = var6;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var1.singleplayerWorld) {
|
||||
return true;
|
||||
} else {
|
||||
TileEntityNote var6 = (TileEntityNote)var1.getBlockTileEntity(var2, var3, var4);
|
||||
var6.changePitch();
|
||||
var6.triggerNote(var1, var2, var3, var4);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
TileEntityNote var6 = (TileEntityNote)var1.getBlockTileEntity(var2, var3, var4);
|
||||
var6.triggerNote(var1, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
return new TileEntityNote();
|
||||
}
|
||||
|
||||
public void playBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
|
||||
float var7 = (float)Math.pow(2.0D, (double)(var6 - 12) / 12.0D);
|
||||
String var8 = "harp";
|
||||
if(var5 == 1) {
|
||||
var8 = "bd";
|
||||
}
|
||||
|
||||
if(var5 == 2) {
|
||||
var8 = "snare";
|
||||
}
|
||||
|
||||
if(var5 == 3) {
|
||||
var8 = "hat";
|
||||
}
|
||||
|
||||
if(var5 == 4) {
|
||||
var8 = "bassattack";
|
||||
}
|
||||
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "note." + var8, 3.0F, var7);
|
||||
var1.spawnParticle("note", (double)var2 + 0.5D, (double)var3 + 1.2D, (double)var4 + 0.5D, (double)var6 / 24.0D, 0.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
17
src/net/minecraft/block/BlockObsidian.java
Normal file
17
src/net/minecraft/block/BlockObsidian.java
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class BlockObsidian extends BlockStone {
|
||||
public BlockObsidian(int var1, int var2) {
|
||||
super(var1, var2);
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.obsidian.blockID;
|
||||
}
|
||||
}
|
||||
23
src/net/minecraft/block/BlockOre.java
Normal file
23
src/net/minecraft/block/BlockOre.java
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class BlockOre extends Block {
|
||||
public BlockOre(int var1, int var2) {
|
||||
super(var1, var2, Material.rock);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return this.blockID == Block.oreCoal.blockID ? Item.coal.shiftedIndex : (this.blockID == Block.oreDiamond.blockID ? Item.diamond.shiftedIndex : (this.blockID == Block.oreLapis.blockID ? Item.dyePowder.shiftedIndex : this.blockID));
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return this.blockID == Block.oreLapis.blockID ? 4 + var1.nextInt(5) : 1;
|
||||
}
|
||||
|
||||
protected int damageDropped(int var1) {
|
||||
return this.blockID == Block.oreLapis.blockID ? 4 : 0;
|
||||
}
|
||||
}
|
||||
14
src/net/minecraft/block/BlockOreStorage.java
Normal file
14
src/net/minecraft/block/BlockOreStorage.java
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockOreStorage extends Block {
|
||||
public BlockOreStorage(int var1, int var2) {
|
||||
super(var1, Material.iron);
|
||||
this.blockIndexInTexture = var2;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return this.blockIndexInTexture;
|
||||
}
|
||||
}
|
||||
327
src/net/minecraft/block/BlockPistonBase.java
Normal file
327
src/net/minecraft/block/BlockPistonBase.java
Normal file
|
|
@ -0,0 +1,327 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityPiston;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.MathHelper;
|
||||
import net.minecraft.util.PistonBlockTextures;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPistonBase extends Block {
|
||||
private boolean isSticky;
|
||||
private boolean ignoreUpdates;
|
||||
|
||||
public BlockPistonBase(int var1, int var2, boolean var3) {
|
||||
super(var1, var2, Material.piston);
|
||||
this.isSticky = var3;
|
||||
this.setStepSound(soundStoneFootstep);
|
||||
this.setHardness(0.5F);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
int var3 = getOrientation(var2);
|
||||
return var3 > 5 ? this.blockIndexInTexture : (var1 == var3 ? (!isExtended(var2) && this.minX <= 0.0D && this.minY <= 0.0D && this.minZ <= 0.0D && this.maxX >= 1.0D && this.maxY >= 1.0D && this.maxZ >= 1.0D ? this.blockIndexInTexture : 110) : (var1 == PistonBlockTextures.field_31052_a[var3] ? 109 : 108));
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
|
||||
int var6 = determineOrientation(var1, var2, var3, var4, (EntityPlayer)var5);
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
if(!var1.singleplayerWorld) {
|
||||
this.updatePistonState(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.singleplayerWorld && !this.ignoreUpdates) {
|
||||
this.updatePistonState(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
if(!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
|
||||
this.updatePistonState(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updatePistonState(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var6 = getOrientation(var5);
|
||||
boolean var7 = this.isPowered(var1, var2, var3, var4, var6);
|
||||
if(var5 != 7) {
|
||||
if(var7 && !isExtended(var5)) {
|
||||
if(canExtend(var1, var2, var3, var4, var6)) {
|
||||
var1.setBlockMetadata(var2, var3, var4, var6 | 8);
|
||||
var1.playNoteAt(var2, var3, var4, 0, var6);
|
||||
}
|
||||
} else if(!var7 && isExtended(var5)) {
|
||||
var1.setBlockMetadata(var2, var3, var4, var6);
|
||||
var1.playNoteAt(var2, var3, var4, 1, var6);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isPowered(World var1, int var2, int var3, int var4, int var5) {
|
||||
return var5 != 0 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 - 1, var4, 0) ? true : (var5 != 1 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4, 1) ? true : (var5 != 2 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) ? true : (var5 != 3 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) ? true : (var5 != 5 && var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5) ? true : (var5 != 4 && var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4, 0) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 2, var4, 1) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4 - 1, 2) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2, var3 + 1, var4 + 1, 3) ? true : (var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3 + 1, var4, 4) ? true : var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3 + 1, var4, 5)))))))))));
|
||||
}
|
||||
|
||||
public void playBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
|
||||
this.ignoreUpdates = true;
|
||||
if(var5 == 0) {
|
||||
if(this.tryExtend(var1, var2, var3, var4, var6)) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 | 8);
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "tile.piston.out", 0.5F, var1.rand.nextFloat() * 0.25F + 0.6F);
|
||||
}
|
||||
} else if(var5 == 1) {
|
||||
TileEntity var8 = var1.getBlockTileEntity(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6]);
|
||||
if(var8 != null && var8 instanceof TileEntityPiston) {
|
||||
((TileEntityPiston)var8).clearPistonTileEntity();
|
||||
}
|
||||
|
||||
var1.setBlockAndMetadata(var2, var3, var4, Block.pistonMoving.blockID, var6);
|
||||
var1.setBlockTileEntity(var2, var3, var4, BlockPistonMoving.getTileEntity(this.blockID, var6, var6, false, true));
|
||||
if(this.isSticky) {
|
||||
int var9 = var2 + PistonBlockTextures.field_31051_b[var6] * 2;
|
||||
int var10 = var3 + PistonBlockTextures.field_31054_c[var6] * 2;
|
||||
int var11 = var4 + PistonBlockTextures.field_31053_d[var6] * 2;
|
||||
int var12 = var1.getBlockId(var9, var10, var11);
|
||||
int var13 = var1.getBlockMetadata(var9, var10, var11);
|
||||
boolean var14 = false;
|
||||
if(var12 == Block.pistonMoving.blockID) {
|
||||
TileEntity var15 = var1.getBlockTileEntity(var9, var10, var11);
|
||||
if(var15 != null && var15 instanceof TileEntityPiston) {
|
||||
TileEntityPiston var16 = (TileEntityPiston)var15;
|
||||
if(var16.func_31008_d() == var6 && var16.func_31010_c()) {
|
||||
var16.clearPistonTileEntity();
|
||||
var12 = var16.getStoredBlockID();
|
||||
var13 = var16.func_31005_e();
|
||||
var14 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(var14 || var12 <= 0 || !canPushBlock(var12, var1, var9, var10, var11, false) || Block.blocksList[var12].getMobilityFlag() != 0 && var12 != Block.pistonBase.blockID && var12 != Block.pistonStickyBase.blockID) {
|
||||
if(!var14) {
|
||||
this.ignoreUpdates = false;
|
||||
var1.setBlockWithNotify(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6], 0);
|
||||
this.ignoreUpdates = true;
|
||||
}
|
||||
} else {
|
||||
this.ignoreUpdates = false;
|
||||
var1.setBlockWithNotify(var9, var10, var11, 0);
|
||||
this.ignoreUpdates = true;
|
||||
var2 += PistonBlockTextures.field_31051_b[var6];
|
||||
var3 += PistonBlockTextures.field_31054_c[var6];
|
||||
var4 += PistonBlockTextures.field_31053_d[var6];
|
||||
var1.setBlockAndMetadata(var2, var3, var4, Block.pistonMoving.blockID, var13);
|
||||
var1.setBlockTileEntity(var2, var3, var4, BlockPistonMoving.getTileEntity(var12, var13, var6, false, false));
|
||||
}
|
||||
} else {
|
||||
this.ignoreUpdates = false;
|
||||
var1.setBlockWithNotify(var2 + PistonBlockTextures.field_31051_b[var6], var3 + PistonBlockTextures.field_31054_c[var6], var4 + PistonBlockTextures.field_31053_d[var6], 0);
|
||||
this.ignoreUpdates = true;
|
||||
}
|
||||
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.5D, (double)var4 + 0.5D, "tile.piston.in", 0.5F, var1.rand.nextFloat() * 0.15F + 0.6F);
|
||||
}
|
||||
|
||||
this.ignoreUpdates = false;
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(isExtended(var5)) {
|
||||
switch(getOrientation(var5)) {
|
||||
case 0:
|
||||
this.setBlockBounds(0.0F, 0.25F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
break;
|
||||
case 1:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 12.0F / 16.0F, 1.0F);
|
||||
break;
|
||||
case 2:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.25F, 1.0F, 1.0F, 1.0F);
|
||||
break;
|
||||
case 3:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 12.0F / 16.0F);
|
||||
break;
|
||||
case 4:
|
||||
this.setBlockBounds(0.25F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
break;
|
||||
case 5:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F);
|
||||
}
|
||||
} else {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static int getOrientation(int var0) {
|
||||
return var0 & 7;
|
||||
}
|
||||
|
||||
public static boolean isExtended(int var0) {
|
||||
return (var0 & 8) != 0;
|
||||
}
|
||||
|
||||
private static int determineOrientation(World var0, int var1, int var2, int var3, EntityPlayer var4) {
|
||||
if(MathHelper.abs((float)var4.posX - (float)var1) < 2.0F && MathHelper.abs((float)var4.posZ - (float)var3) < 2.0F) {
|
||||
double var5 = var4.posY + 1.82D - (double)var4.yOffset;
|
||||
if(var5 - (double)var2 > 2.0D) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if((double)var2 - var5 > 0.0D) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int var7 = MathHelper.floor_double((double)(var4.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
||||
return var7 == 0 ? 2 : (var7 == 1 ? 5 : (var7 == 2 ? 3 : (var7 == 3 ? 4 : 0)));
|
||||
}
|
||||
|
||||
private static boolean canPushBlock(int var0, World var1, int var2, int var3, int var4, boolean var5) {
|
||||
if(var0 == Block.obsidian.blockID) {
|
||||
return false;
|
||||
} else {
|
||||
if(var0 != Block.pistonBase.blockID && var0 != Block.pistonStickyBase.blockID) {
|
||||
if(Block.blocksList[var0].getHardness() == -1.0F) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(Block.blocksList[var0].getMobilityFlag() == 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!var5 && Block.blocksList[var0].getMobilityFlag() == 1) {
|
||||
return false;
|
||||
}
|
||||
} else if(isExtended(var1.getBlockMetadata(var2, var3, var4))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
TileEntity var6 = var1.getBlockTileEntity(var2, var3, var4);
|
||||
return var6 == null;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean canExtend(World var0, int var1, int var2, int var3, int var4) {
|
||||
int var5 = var1 + PistonBlockTextures.field_31051_b[var4];
|
||||
int var6 = var2 + PistonBlockTextures.field_31054_c[var4];
|
||||
int var7 = var3 + PistonBlockTextures.field_31053_d[var4];
|
||||
int var8 = 0;
|
||||
|
||||
while(true) {
|
||||
if(var8 < 13) {
|
||||
if(var6 <= 0 || var6 >= 127) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int var9 = var0.getBlockId(var5, var6, var7);
|
||||
if(var9 != 0) {
|
||||
if(!canPushBlock(var9, var0, var5, var6, var7, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(Block.blocksList[var9].getMobilityFlag() != 1) {
|
||||
if(var8 == 12) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var5 += PistonBlockTextures.field_31051_b[var4];
|
||||
var6 += PistonBlockTextures.field_31054_c[var4];
|
||||
var7 += PistonBlockTextures.field_31053_d[var4];
|
||||
++var8;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean tryExtend(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var2 + PistonBlockTextures.field_31051_b[var5];
|
||||
int var7 = var3 + PistonBlockTextures.field_31054_c[var5];
|
||||
int var8 = var4 + PistonBlockTextures.field_31053_d[var5];
|
||||
int var9 = 0;
|
||||
|
||||
while(true) {
|
||||
int var10;
|
||||
if(var9 < 13) {
|
||||
if(var7 <= 0 || var7 >= 127) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var10 = var1.getBlockId(var6, var7, var8);
|
||||
if(var10 != 0) {
|
||||
if(!canPushBlock(var10, var1, var6, var7, var8, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(Block.blocksList[var10].getMobilityFlag() != 1) {
|
||||
if(var9 == 12) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var6 += PistonBlockTextures.field_31051_b[var5];
|
||||
var7 += PistonBlockTextures.field_31054_c[var5];
|
||||
var8 += PistonBlockTextures.field_31053_d[var5];
|
||||
++var9;
|
||||
continue;
|
||||
}
|
||||
|
||||
Block.blocksList[var10].dropBlockAsItem(var1, var6, var7, var8, var1.getBlockMetadata(var6, var7, var8));
|
||||
var1.setBlockWithNotify(var6, var7, var8, 0);
|
||||
}
|
||||
}
|
||||
|
||||
while(var6 != var2 || var7 != var3 || var8 != var4) {
|
||||
var9 = var6 - PistonBlockTextures.field_31051_b[var5];
|
||||
var10 = var7 - PistonBlockTextures.field_31054_c[var5];
|
||||
int var11 = var8 - PistonBlockTextures.field_31053_d[var5];
|
||||
int var12 = var1.getBlockId(var9, var10, var11);
|
||||
int var13 = var1.getBlockMetadata(var9, var10, var11);
|
||||
if(var12 == this.blockID && var9 == var2 && var10 == var3 && var11 == var4) {
|
||||
var1.setBlockAndMetadata(var6, var7, var8, Block.pistonMoving.blockID, var5 | (this.isSticky ? 8 : 0));
|
||||
var1.setBlockTileEntity(var6, var7, var8, BlockPistonMoving.getTileEntity(Block.pistonExtension.blockID, var5 | (this.isSticky ? 8 : 0), var5, true, false));
|
||||
} else {
|
||||
var1.setBlockAndMetadata(var6, var7, var8, Block.pistonMoving.blockID, var13);
|
||||
var1.setBlockTileEntity(var6, var7, var8, BlockPistonMoving.getTileEntity(var12, var13, var5, true, false));
|
||||
}
|
||||
|
||||
var6 = var9;
|
||||
var7 = var10;
|
||||
var8 = var11;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
144
src/net/minecraft/block/BlockPistonExtension.java
Normal file
144
src/net/minecraft/block/BlockPistonExtension.java
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.util.PistonBlockTextures;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPistonExtension extends Block {
|
||||
private int field_31046_a = -1;
|
||||
|
||||
public BlockPistonExtension(int var1, int var2) {
|
||||
super(var1, var2, Material.piston);
|
||||
this.setStepSound(soundStoneFootstep);
|
||||
this.setHardness(0.5F);
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var6 = PistonBlockTextures.field_31052_a[func_31045_b(var5)];
|
||||
var2 += PistonBlockTextures.field_31051_b[var6];
|
||||
var3 += PistonBlockTextures.field_31054_c[var6];
|
||||
var4 += PistonBlockTextures.field_31053_d[var6];
|
||||
int var7 = var1.getBlockId(var2, var3, var4);
|
||||
if(var7 == Block.pistonBase.blockID || var7 == Block.pistonStickyBase.blockID) {
|
||||
var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(BlockPistonBase.isExtended(var5)) {
|
||||
Block.blocksList[var7].dropBlockAsItem(var1, var2, var3, var4, var5);
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
int var3 = func_31045_b(var2);
|
||||
return var1 == var3 ? (this.field_31046_a >= 0 ? this.field_31046_a : ((var2 & 8) != 0 ? this.blockIndexInTexture - 1 : this.blockIndexInTexture)) : (var1 == PistonBlockTextures.field_31052_a[var3] ? 107 : 108);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
|
||||
int var7 = var1.getBlockMetadata(var2, var3, var4);
|
||||
switch(func_31045_b(var7)) {
|
||||
case 0:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(6.0F / 16.0F, 0.25F, 6.0F / 16.0F, 10.0F / 16.0F, 1.0F, 10.0F / 16.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
break;
|
||||
case 1:
|
||||
this.setBlockBounds(0.0F, 12.0F / 16.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(6.0F / 16.0F, 0.0F, 6.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F, 10.0F / 16.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
break;
|
||||
case 2:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(0.25F, 6.0F / 16.0F, 0.25F, 12.0F / 16.0F, 10.0F / 16.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
break;
|
||||
case 3:
|
||||
this.setBlockBounds(0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(0.25F, 6.0F / 16.0F, 0.0F, 12.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
break;
|
||||
case 4:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(6.0F / 16.0F, 0.25F, 0.25F, 10.0F / 16.0F, 12.0F / 16.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
break;
|
||||
case 5:
|
||||
this.setBlockBounds(12.0F / 16.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(0.0F, 6.0F / 16.0F, 0.25F, 12.0F / 16.0F, 10.0F / 16.0F, 12.0F / 16.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
switch(func_31045_b(var5)) {
|
||||
case 0:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.25F, 1.0F);
|
||||
break;
|
||||
case 1:
|
||||
this.setBlockBounds(0.0F, 12.0F / 16.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
break;
|
||||
case 2:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.25F);
|
||||
break;
|
||||
case 3:
|
||||
this.setBlockBounds(0.0F, 0.0F, 12.0F / 16.0F, 1.0F, 1.0F, 1.0F);
|
||||
break;
|
||||
case 4:
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.25F, 1.0F, 1.0F);
|
||||
break;
|
||||
case 5:
|
||||
this.setBlockBounds(12.0F / 16.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = func_31045_b(var1.getBlockMetadata(var2, var3, var4));
|
||||
int var7 = var1.getBlockId(var2 - PistonBlockTextures.field_31051_b[var6], var3 - PistonBlockTextures.field_31054_c[var6], var4 - PistonBlockTextures.field_31053_d[var6]);
|
||||
if(var7 != Block.pistonBase.blockID && var7 != Block.pistonStickyBase.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
Block.blocksList[var7].onNeighborBlockChange(var1, var2 - PistonBlockTextures.field_31051_b[var6], var3 - PistonBlockTextures.field_31054_c[var6], var4 - PistonBlockTextures.field_31053_d[var6], var5);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static int func_31045_b(int var0) {
|
||||
return var0 & 7;
|
||||
}
|
||||
}
|
||||
146
src/net/minecraft/block/BlockPistonMoving.java
Normal file
146
src/net/minecraft/block/BlockPistonMoving.java
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.block.tile.TileEntityPiston;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.util.PistonBlockTextures;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPistonMoving extends BlockContainer {
|
||||
public BlockPistonMoving(int var1) {
|
||||
super(var1, Material.piston);
|
||||
this.setHardness(-1.0F);
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
TileEntity var5 = var1.getBlockTileEntity(var2, var3, var4);
|
||||
if(var5 != null && var5 instanceof TileEntityPiston) {
|
||||
((TileEntityPiston)var5).clearPistonTileEntity();
|
||||
} else {
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
TileEntityPiston var7 = this.getTileEntityAtLocation(var1, var2, var3, var4);
|
||||
if(var7 != null) {
|
||||
Block.blocksList[var7.getStoredBlockID()].dropBlockAsItem(var1, var2, var3, var4, var7.func_31005_e());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.singleplayerWorld && var1.getBlockTileEntity(var2, var3, var4) == null) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static TileEntity getTileEntity(int var0, int var1, int var2, boolean var3, boolean var4) {
|
||||
return new TileEntityPiston(var0, var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
TileEntityPiston var5 = this.getTileEntityAtLocation(var1, var2, var3, var4);
|
||||
if(var5 == null) {
|
||||
return null;
|
||||
} else {
|
||||
float var6 = var5.func_31007_a(0.0F);
|
||||
if(var5.func_31010_c()) {
|
||||
var6 = 1.0F - var6;
|
||||
}
|
||||
|
||||
return this.func_31032_a(var1, var2, var3, var4, var5.getStoredBlockID(), var6, var5.func_31008_d());
|
||||
}
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
TileEntityPiston var5 = this.getTileEntityAtLocation(var1, var2, var3, var4);
|
||||
if(var5 != null) {
|
||||
Block var6 = Block.blocksList[var5.getStoredBlockID()];
|
||||
if(var6 == null || var6 == this) {
|
||||
return;
|
||||
}
|
||||
|
||||
var6.setBlockBoundsBasedOnState(var1, var2, var3, var4);
|
||||
float var7 = var5.func_31007_a(0.0F);
|
||||
if(var5.func_31010_c()) {
|
||||
var7 = 1.0F - var7;
|
||||
}
|
||||
|
||||
int var8 = var5.func_31008_d();
|
||||
this.minX = var6.minX - (double)((float)PistonBlockTextures.field_31051_b[var8] * var7);
|
||||
this.minY = var6.minY - (double)((float)PistonBlockTextures.field_31054_c[var8] * var7);
|
||||
this.minZ = var6.minZ - (double)((float)PistonBlockTextures.field_31053_d[var8] * var7);
|
||||
this.maxX = var6.maxX - (double)((float)PistonBlockTextures.field_31051_b[var8] * var7);
|
||||
this.maxY = var6.maxY - (double)((float)PistonBlockTextures.field_31054_c[var8] * var7);
|
||||
this.maxZ = var6.maxZ - (double)((float)PistonBlockTextures.field_31053_d[var8] * var7);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public AxisAlignedBB func_31032_a(World var1, int var2, int var3, int var4, int var5, float var6, int var7) {
|
||||
if(var5 != 0 && var5 != this.blockID) {
|
||||
AxisAlignedBB var8 = Block.blocksList[var5].getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
|
||||
if(var8 == null) {
|
||||
return null;
|
||||
} else {
|
||||
var8.minX -= (double)((float)PistonBlockTextures.field_31051_b[var7] * var6);
|
||||
var8.maxX -= (double)((float)PistonBlockTextures.field_31051_b[var7] * var6);
|
||||
var8.minY -= (double)((float)PistonBlockTextures.field_31054_c[var7] * var6);
|
||||
var8.maxY -= (double)((float)PistonBlockTextures.field_31054_c[var7] * var6);
|
||||
var8.minZ -= (double)((float)PistonBlockTextures.field_31053_d[var7] * var6);
|
||||
var8.maxZ -= (double)((float)PistonBlockTextures.field_31053_d[var7] * var6);
|
||||
return var8;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private TileEntityPiston getTileEntityAtLocation(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
TileEntity var5 = var1.getBlockTileEntity(var2, var3, var4);
|
||||
return var5 != null && var5 instanceof TileEntityPiston ? (TileEntityPiston)var5 : null;
|
||||
}
|
||||
}
|
||||
135
src/net/minecraft/block/BlockPortal.java
Normal file
135
src/net/minecraft/block/BlockPortal.java
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPortal extends BlockBreakable {
|
||||
public BlockPortal(int var1, int var2) {
|
||||
super(var1, var2, Material.portal, false);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
float var5;
|
||||
float var6;
|
||||
if(var1.getBlockId(var2 - 1, var3, var4) != this.blockID && var1.getBlockId(var2 + 1, var3, var4) != this.blockID) {
|
||||
var5 = 2.0F / 16.0F;
|
||||
var6 = 0.5F;
|
||||
this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6);
|
||||
} else {
|
||||
var5 = 0.5F;
|
||||
var6 = 2.0F / 16.0F;
|
||||
this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean tryToCreatePortal(World var1, int var2, int var3, int var4) {
|
||||
byte var5 = 0;
|
||||
byte var6 = 0;
|
||||
if(var1.getBlockId(var2 - 1, var3, var4) == Block.obsidian.blockID || var1.getBlockId(var2 + 1, var3, var4) == Block.obsidian.blockID) {
|
||||
var5 = 1;
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2, var3, var4 - 1) == Block.obsidian.blockID || var1.getBlockId(var2, var3, var4 + 1) == Block.obsidian.blockID) {
|
||||
var6 = 1;
|
||||
}
|
||||
|
||||
if(var5 == var6) {
|
||||
return false;
|
||||
} else {
|
||||
if(var1.getBlockId(var2 - var5, var3, var4 - var6) == 0) {
|
||||
var2 -= var5;
|
||||
var4 -= var6;
|
||||
}
|
||||
|
||||
int var7;
|
||||
int var8;
|
||||
for(var7 = -1; var7 <= 2; ++var7) {
|
||||
for(var8 = -1; var8 <= 3; ++var8) {
|
||||
boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3;
|
||||
if(var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3) {
|
||||
int var10 = var1.getBlockId(var2 + var5 * var7, var3 + var8, var4 + var6 * var7);
|
||||
if(var9) {
|
||||
if(var10 != Block.obsidian.blockID) {
|
||||
return false;
|
||||
}
|
||||
} else if(var10 != 0 && var10 != Block.fire.blockID) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var1.editingBlocks = true;
|
||||
|
||||
for(var7 = 0; var7 < 2; ++var7) {
|
||||
for(var8 = 0; var8 < 3; ++var8) {
|
||||
var1.setBlockWithNotify(var2 + var5 * var7, var3 + var8, var4 + var6 * var7, Block.portal.blockID);
|
||||
}
|
||||
}
|
||||
|
||||
var1.editingBlocks = false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
byte var6 = 0;
|
||||
byte var7 = 1;
|
||||
if(var1.getBlockId(var2 - 1, var3, var4) == this.blockID || var1.getBlockId(var2 + 1, var3, var4) == this.blockID) {
|
||||
var6 = 1;
|
||||
var7 = 0;
|
||||
}
|
||||
|
||||
int var8;
|
||||
for(var8 = var3; var1.getBlockId(var2, var8 - 1, var4) == this.blockID; --var8) {
|
||||
}
|
||||
|
||||
if(var1.getBlockId(var2, var8 - 1, var4) != Block.obsidian.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
int var9;
|
||||
for(var9 = 1; var9 < 4 && var1.getBlockId(var2, var8 + var9, var4) == this.blockID; ++var9) {
|
||||
}
|
||||
|
||||
if(var9 == 3 && var1.getBlockId(var2, var8 + var9, var4) == Block.obsidian.blockID) {
|
||||
boolean var10 = var1.getBlockId(var2 - 1, var3, var4) == this.blockID || var1.getBlockId(var2 + 1, var3, var4) == this.blockID;
|
||||
boolean var11 = var1.getBlockId(var2, var3, var4 - 1) == this.blockID || var1.getBlockId(var2, var3, var4 + 1) == this.blockID;
|
||||
if(var10 && var11) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else if((var1.getBlockId(var2 + var6, var3, var4 + var7) != Block.obsidian.blockID || var1.getBlockId(var2 - var6, var3, var4 - var7) != this.blockID) && (var1.getBlockId(var2 - var6, var3, var4 - var7) != Block.obsidian.blockID || var1.getBlockId(var2 + var6, var3, var4 + var7) != this.blockID)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
} else {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
if(var5.ridingEntity == null && var5.riddenByEntity == null) {
|
||||
var5.setInPortal();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
156
src/net/minecraft/block/BlockPressurePlate.java
Normal file
156
src/net/minecraft/block/BlockPressurePlate.java
Normal file
|
|
@ -0,0 +1,156 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.entity.EnumMobType;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPressurePlate extends Block {
|
||||
private EnumMobType triggerMobType;
|
||||
|
||||
protected BlockPressurePlate(int var1, int var2, EnumMobType var3, Material var4) {
|
||||
super(var1, var2, var4);
|
||||
this.triggerMobType = var3;
|
||||
this.setTickOnLoad(true);
|
||||
float var5 = 1.0F / 16.0F;
|
||||
this.setBlockBounds(var5, 0.0F, var5, 1.0F - var5, 0.03125F, 1.0F - var5);
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 20;
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2, var3 - 1, var4);
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
boolean var6 = false;
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
|
||||
var6 = true;
|
||||
}
|
||||
|
||||
if(var6) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
if(var1.getBlockMetadata(var2, var3, var4) != 0) {
|
||||
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
if(var1.getBlockMetadata(var2, var3, var4) != 1) {
|
||||
this.setStateIfMobInteractsWithPlate(var1, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setStateIfMobInteractsWithPlate(World var1, int var2, int var3, int var4) {
|
||||
boolean var5 = var1.getBlockMetadata(var2, var3, var4) == 1;
|
||||
boolean var6 = false;
|
||||
float var7 = 2.0F / 16.0F;
|
||||
List var8 = null;
|
||||
if(this.triggerMobType == EnumMobType.everything) {
|
||||
var8 = var1.getEntitiesWithinAABBExcludingEntity((Entity)null, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var7), (double)((float)(var2 + 1) - var7), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var7)));
|
||||
}
|
||||
|
||||
if(this.triggerMobType == EnumMobType.mobs) {
|
||||
var8 = var1.getEntitiesWithinAABB(EntityLiving.class, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var7), (double)((float)(var2 + 1) - var7), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var7)));
|
||||
}
|
||||
|
||||
if(this.triggerMobType == EnumMobType.players) {
|
||||
var8 = var1.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBoxFromPool((double)((float)var2 + var7), (double)var3, (double)((float)var4 + var7), (double)((float)(var2 + 1) - var7), (double)var3 + 0.25D, (double)((float)(var4 + 1) - var7)));
|
||||
}
|
||||
|
||||
if(var8.size() > 0) {
|
||||
var6 = true;
|
||||
}
|
||||
|
||||
if(var6 && !var5) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.1D, (double)var4 + 0.5D, "random.click", 0.3F, 0.6F);
|
||||
}
|
||||
|
||||
if(!var6 && var5) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
var1.playSoundEffect((double)var2 + 0.5D, (double)var3 + 0.1D, (double)var4 + 0.5D, "random.click", 0.3F, 0.5F);
|
||||
}
|
||||
|
||||
if(var6) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var5 > 0) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
}
|
||||
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
boolean var5 = var1.getBlockMetadata(var2, var3, var4) == 1;
|
||||
float var6 = 1.0F / 16.0F;
|
||||
if(var5) {
|
||||
this.setBlockBounds(var6, 0.0F, var6, 1.0F - var6, 0.03125F, 1.0F - var6);
|
||||
} else {
|
||||
this.setBlockBounds(var6, 0.0F, var6, 1.0F - var6, 1.0F / 16.0F, 1.0F - var6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
return var1.getBlockMetadata(var2, var3, var4) > 0;
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
return var1.getBlockMetadata(var2, var3, var4) == 0 ? false : var5 == 1;
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public int getMobilityFlag() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
50
src/net/minecraft/block/BlockPumpkin.java
Normal file
50
src/net/minecraft/block/BlockPumpkin.java
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.math.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockPumpkin extends Block {
|
||||
private boolean blockType;
|
||||
|
||||
protected BlockPumpkin(int var1, int var2, boolean var3) {
|
||||
super(var1, Material.pumpkin);
|
||||
this.blockIndexInTexture = var2;
|
||||
this.setTickOnLoad(true);
|
||||
this.blockType = var3;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
if(var1 == 1) {
|
||||
return this.blockIndexInTexture;
|
||||
} else if(var1 == 0) {
|
||||
return this.blockIndexInTexture;
|
||||
} else {
|
||||
int var3 = this.blockIndexInTexture + 1 + 16;
|
||||
if(this.blockType) {
|
||||
++var3;
|
||||
}
|
||||
|
||||
return var2 == 2 && var1 == 2 ? var3 : (var2 == 3 && var1 == 5 ? var3 : (var2 == 0 && var1 == 3 ? var3 : (var2 == 1 && var1 == 4 ? var3 : this.blockIndexInTexture + 16)));
|
||||
}
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture : (var1 == 0 ? this.blockIndexInTexture : (var1 == 3 ? this.blockIndexInTexture + 1 + 16 : this.blockIndexInTexture + 16));
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockId(var2, var3, var4);
|
||||
return (var5 == 0 || Block.blocksList[var5].blockMaterial.func_27090_g()) && var1.isBlockNormalCube(var2, var3 - 1, var4);
|
||||
}
|
||||
|
||||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
|
||||
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
}
|
||||
}
|
||||
252
src/net/minecraft/block/BlockRail.java
Normal file
252
src/net/minecraft/block/BlockRail.java
Normal file
|
|
@ -0,0 +1,252 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.Vec3D;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockRail extends Block {
|
||||
private final boolean field_27034_a;
|
||||
|
||||
public static final boolean func_27029_g(World var0, int var1, int var2, int var3) {
|
||||
int var4 = var0.getBlockId(var1, var2, var3);
|
||||
return var4 == Block.minecartTrack.blockID || var4 == Block.railPowered.blockID || var4 == Block.railDetector.blockID;
|
||||
}
|
||||
|
||||
public static final boolean func_27030_c(int var0) {
|
||||
return var0 == Block.minecartTrack.blockID || var0 == Block.railPowered.blockID || var0 == Block.railDetector.blockID;
|
||||
}
|
||||
|
||||
protected BlockRail(int var1, int var2, boolean var3) {
|
||||
super(var1, var2, Material.circuits);
|
||||
this.field_27034_a = var3;
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
|
||||
}
|
||||
|
||||
public boolean func_27028_d() {
|
||||
return this.field_27034_a;
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
|
||||
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
|
||||
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var5 >= 2 && var5 <= 5) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 10.0F / 16.0F, 1.0F);
|
||||
} else {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
if(this.field_27034_a) {
|
||||
if(this.blockID == Block.railPowered.blockID && (var2 & 8) == 0) {
|
||||
return this.blockIndexInTexture - 16;
|
||||
}
|
||||
} else if(var2 >= 6) {
|
||||
return this.blockIndexInTexture - 16;
|
||||
}
|
||||
|
||||
return this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2, var3 - 1, var4);
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
this.func_4038_g(var1, var2, var3, var4, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = var6;
|
||||
if(this.field_27034_a) {
|
||||
var7 = var6 & 7;
|
||||
}
|
||||
|
||||
boolean var8 = false;
|
||||
if(!var1.isBlockNormalCube(var2, var3 - 1, var4)) {
|
||||
var8 = true;
|
||||
}
|
||||
|
||||
if(var7 == 2 && !var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
var8 = true;
|
||||
}
|
||||
|
||||
if(var7 == 3 && !var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
var8 = true;
|
||||
}
|
||||
|
||||
if(var7 == 4 && !var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
var8 = true;
|
||||
}
|
||||
|
||||
if(var7 == 5 && !var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
var8 = true;
|
||||
}
|
||||
|
||||
if(var8) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else if(this.blockID == Block.railPowered.blockID) {
|
||||
boolean var9 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4) || var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4);
|
||||
var9 = var9 || this.func_27032_a(var1, var2, var3, var4, var6, true, 0) || this.func_27032_a(var1, var2, var3, var4, var6, false, 0);
|
||||
boolean var10 = false;
|
||||
if(var9 && (var6 & 8) == 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 | 8);
|
||||
var10 = true;
|
||||
} else if(!var9 && (var6 & 8) != 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var7);
|
||||
var10 = true;
|
||||
}
|
||||
|
||||
if(var10) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
if(var7 == 2 || var7 == 3 || var7 == 4 || var7 == 5) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
|
||||
}
|
||||
}
|
||||
} else if(var5 > 0 && Block.blocksList[var5].canProvidePower() && !this.field_27034_a && RailLogic.getNAdjacentTracks(new RailLogic(this, var1, var2, var3, var4)) == 3) {
|
||||
this.func_4038_g(var1, var2, var3, var4, false);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void func_4038_g(World var1, int var2, int var3, int var4, boolean var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
(new RailLogic(this, var1, var2, var3, var4)).func_596_a(var1.isBlockIndirectlyGettingPowered(var2, var3, var4), var5);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean func_27032_a(World var1, int var2, int var3, int var4, int var5, boolean var6, int var7) {
|
||||
if(var7 >= 8) {
|
||||
return false;
|
||||
} else {
|
||||
int var8 = var5 & 7;
|
||||
boolean var9 = true;
|
||||
switch(var8) {
|
||||
case 0:
|
||||
if(var6) {
|
||||
++var4;
|
||||
} else {
|
||||
--var4;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if(var6) {
|
||||
--var2;
|
||||
} else {
|
||||
++var2;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if(var6) {
|
||||
--var2;
|
||||
} else {
|
||||
++var2;
|
||||
++var3;
|
||||
var9 = false;
|
||||
}
|
||||
|
||||
var8 = 1;
|
||||
break;
|
||||
case 3:
|
||||
if(var6) {
|
||||
--var2;
|
||||
++var3;
|
||||
var9 = false;
|
||||
} else {
|
||||
++var2;
|
||||
}
|
||||
|
||||
var8 = 1;
|
||||
break;
|
||||
case 4:
|
||||
if(var6) {
|
||||
++var4;
|
||||
} else {
|
||||
--var4;
|
||||
++var3;
|
||||
var9 = false;
|
||||
}
|
||||
|
||||
var8 = 0;
|
||||
break;
|
||||
case 5:
|
||||
if(var6) {
|
||||
++var4;
|
||||
++var3;
|
||||
var9 = false;
|
||||
} else {
|
||||
--var4;
|
||||
}
|
||||
|
||||
var8 = 0;
|
||||
}
|
||||
|
||||
return this.func_27031_a(var1, var2, var3, var4, var6, var7, var8) ? true : var9 && this.func_27031_a(var1, var2, var3 - 1, var4, var6, var7, var8);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean func_27031_a(World var1, int var2, int var3, int var4, boolean var5, int var6, int var7) {
|
||||
int var8 = var1.getBlockId(var2, var3, var4);
|
||||
if(var8 == Block.railPowered.blockID) {
|
||||
int var9 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var10 = var9 & 7;
|
||||
if(var7 == 1 && (var10 == 0 || var10 == 4 || var10 == 5)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(var7 == 0 && (var10 == 1 || var10 == 2 || var10 == 3)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if((var9 & 8) != 0) {
|
||||
if(!var1.isBlockIndirectlyGettingPowered(var2, var3, var4) && !var1.isBlockIndirectlyGettingPowered(var2, var3 + 1, var4)) {
|
||||
return this.func_27032_a(var1, var2, var3, var4, var9, var5, var6 + 1);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getMobilityFlag() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static boolean func_27033_a(BlockRail var0) {
|
||||
return var0.field_27034_a;
|
||||
}
|
||||
}
|
||||
102
src/net/minecraft/block/BlockRedstoneOre.java
Normal file
102
src/net/minecraft/block/BlockRedstoneOre.java
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockRedstoneOre extends Block {
|
||||
private boolean field_665_a;
|
||||
|
||||
public BlockRedstoneOre(int var1, int var2, boolean var3) {
|
||||
super(var1, var2, Material.rock);
|
||||
if(var3) {
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
this.field_665_a = var3;
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 30;
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.func_321_g(var1, var2, var3, var4);
|
||||
super.onBlockClicked(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
this.func_321_g(var1, var2, var3, var4);
|
||||
super.onEntityWalking(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.func_321_g(var1, var2, var3, var4);
|
||||
return super.blockActivated(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
private void func_321_g(World var1, int var2, int var3, int var4) {
|
||||
this.func_320_h(var1, var2, var3, var4);
|
||||
if(this.blockID == Block.oreRedstone.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.oreRedstoneGlowing.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(this.blockID == Block.oreRedstoneGlowing.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.oreRedstone.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.redstone.shiftedIndex;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 4 + var1.nextInt(2);
|
||||
}
|
||||
|
||||
private void func_320_h(World var1, int var2, int var3, int var4) {
|
||||
Random var5 = var1.rand;
|
||||
double var6 = 1.0D / 16.0D;
|
||||
|
||||
for(int var8 = 0; var8 < 6; ++var8) {
|
||||
double var9 = (double)((float)var2 + var5.nextFloat());
|
||||
double var11 = (double)((float)var3 + var5.nextFloat());
|
||||
double var13 = (double)((float)var4 + var5.nextFloat());
|
||||
if(var8 == 0 && !var1.isBlockOpaqueCube(var2, var3 + 1, var4)) {
|
||||
var11 = (double)(var3 + 1) + var6;
|
||||
}
|
||||
|
||||
if(var8 == 1 && !var1.isBlockOpaqueCube(var2, var3 - 1, var4)) {
|
||||
var11 = (double)(var3 + 0) - var6;
|
||||
}
|
||||
|
||||
if(var8 == 2 && !var1.isBlockOpaqueCube(var2, var3, var4 + 1)) {
|
||||
var13 = (double)(var4 + 1) + var6;
|
||||
}
|
||||
|
||||
if(var8 == 3 && !var1.isBlockOpaqueCube(var2, var3, var4 - 1)) {
|
||||
var13 = (double)(var4 + 0) - var6;
|
||||
}
|
||||
|
||||
if(var8 == 4 && !var1.isBlockOpaqueCube(var2 + 1, var3, var4)) {
|
||||
var9 = (double)(var2 + 1) + var6;
|
||||
}
|
||||
|
||||
if(var8 == 5 && !var1.isBlockOpaqueCube(var2 - 1, var3, var4)) {
|
||||
var9 = (double)(var2 + 0) - var6;
|
||||
}
|
||||
|
||||
if(var9 < (double)var2 || var9 > (double)(var2 + 1) || var11 < 0.0D || var11 > (double)(var3 + 1) || var13 < (double)var4 || var13 > (double)(var4 + 1)) {
|
||||
var1.spawnParticle("reddust", var9, var11, var13, 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
142
src/net/minecraft/block/BlockRedstoneRepeater.java
Normal file
142
src/net/minecraft/block/BlockRedstoneRepeater.java
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.math.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockRedstoneRepeater extends Block {
|
||||
public static final double[] field_22014_a = new double[]{-0.0625D, 1.0D / 16.0D, 0.1875D, 0.3125D};
|
||||
private static final int[] field_22013_b = new int[]{1, 2, 3, 4};
|
||||
private final boolean field_22015_c;
|
||||
|
||||
protected BlockRedstoneRepeater(int var1, boolean var2) {
|
||||
super(var1, 6, Material.circuits);
|
||||
this.field_22015_c = var2;
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return !var1.isBlockNormalCube(var2, var3 - 1, var4) ? false : super.canPlaceBlockAt(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
|
||||
return !var1.isBlockNormalCube(var2, var3 - 1, var4) ? false : super.canBlockStay(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
|
||||
if(this.field_22015_c && !var7) {
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.redstoneRepeaterIdle.blockID, var6);
|
||||
} else if(!this.field_22015_c) {
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.redstoneRepeaterActive.blockID, var6);
|
||||
if(!var7) {
|
||||
int var8 = (var6 & 12) >> 2;
|
||||
var1.scheduleUpdateTick(var2, var3, var4, Block.redstoneRepeaterActive.blockID, field_22013_b[var8] * 2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return var1 == 0 ? (this.field_22015_c ? 99 : 115) : (var1 == 1 ? (this.field_22015_c ? 147 : 131) : 5);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return this.getBlockTextureFromSideAndMetadata(var1, 0);
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
return this.isPoweringTo(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
if(!this.field_22015_c) {
|
||||
return false;
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4) & 3;
|
||||
return var6 == 0 && var5 == 3 ? true : (var6 == 1 && var5 == 4 ? true : (var6 == 2 && var5 == 2 ? true : var6 == 3 && var5 == 5));
|
||||
}
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!this.canBlockStay(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
|
||||
int var8 = (var6 & 12) >> 2;
|
||||
if(this.field_22015_c && !var7) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, field_22013_b[var8] * 2);
|
||||
} else if(!this.field_22015_c && var7) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, field_22013_b[var8] * 2);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private boolean func_22012_g(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var5 & 3;
|
||||
switch(var6) {
|
||||
case 0:
|
||||
return var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) || var1.getBlockId(var2, var3, var4 + 1) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2, var3, var4 + 1) > 0;
|
||||
case 1:
|
||||
return var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) || var1.getBlockId(var2 - 1, var3, var4) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2 - 1, var3, var4) > 0;
|
||||
case 2:
|
||||
return var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) || var1.getBlockId(var2, var3, var4 - 1) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2, var3, var4 - 1) > 0;
|
||||
case 3:
|
||||
return var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5) || var1.getBlockId(var2 + 1, var3, var4) == Block.redstoneWire.blockID && var1.getBlockMetadata(var2 + 1, var3, var4) > 0;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = (var6 & 12) >> 2;
|
||||
var7 = var7 + 1 << 2 & 12;
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 | var6 & 3);
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
|
||||
int var6 = ((MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3) + 2) % 4;
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
boolean var7 = this.func_22012_g(var1, var2, var3, var4, var6);
|
||||
if(var7) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.redstoneRepeater.shiftedIndex;
|
||||
}
|
||||
}
|
||||
132
src/net/minecraft/block/BlockRedstoneTorch.java
Normal file
132
src/net/minecraft/block/BlockRedstoneTorch.java
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockRedstoneTorch extends BlockTorch {
|
||||
private boolean torchActive = false;
|
||||
private static List torchUpdates = new ArrayList();
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return var1 == 1 ? Block.redstoneWire.getBlockTextureFromSideAndMetadata(var1, var2) : super.getBlockTextureFromSideAndMetadata(var1, var2);
|
||||
}
|
||||
|
||||
private boolean checkForBurnout(World var1, int var2, int var3, int var4, boolean var5) {
|
||||
if(var5) {
|
||||
torchUpdates.add(new RedstoneUpdateInfo(var2, var3, var4, var1.getWorldTime()));
|
||||
}
|
||||
|
||||
int var6 = 0;
|
||||
|
||||
for(int var7 = 0; var7 < torchUpdates.size(); ++var7) {
|
||||
RedstoneUpdateInfo var8 = (RedstoneUpdateInfo)torchUpdates.get(var7);
|
||||
if(var8.x == var2 && var8.y == var3 && var8.z == var4) {
|
||||
++var6;
|
||||
if(var6 >= 8) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected BlockRedstoneTorch(int var1, int var2, boolean var3) {
|
||||
super(var1, var2);
|
||||
this.torchActive = var3;
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
if(var1.getBlockMetadata(var2, var3, var4) == 0) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
if(this.torchActive) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
if(this.torchActive) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
if(!this.torchActive) {
|
||||
return false;
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
return var6 == 5 && var5 == 1 ? false : (var6 == 3 && var5 == 3 ? false : (var6 == 4 && var5 == 2 ? false : (var6 == 1 && var5 == 5 ? false : var6 != 2 || var5 != 4)));
|
||||
}
|
||||
}
|
||||
|
||||
private boolean func_30003_g(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
return var5 == 5 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3 - 1, var4, 0) ? true : (var5 == 3 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 - 1, 2) ? true : (var5 == 4 && var1.isBlockIndirectlyProvidingPowerTo(var2, var3, var4 + 1, 3) ? true : (var5 == 1 && var1.isBlockIndirectlyProvidingPowerTo(var2 - 1, var3, var4, 4) ? true : var5 == 2 && var1.isBlockIndirectlyProvidingPowerTo(var2 + 1, var3, var4, 5))));
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
boolean var6 = this.func_30003_g(var1, var2, var3, var4);
|
||||
|
||||
while(torchUpdates.size() > 0 && var1.getWorldTime() - ((RedstoneUpdateInfo)torchUpdates.get(0)).updateTime > 100L) {
|
||||
torchUpdates.remove(0);
|
||||
}
|
||||
|
||||
if(this.torchActive) {
|
||||
if(var6) {
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.torchRedstoneIdle.blockID, var1.getBlockMetadata(var2, var3, var4));
|
||||
if(this.checkForBurnout(var1, var2, var3, var4, true)) {
|
||||
var1.playSoundEffect((double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), "random.fizz", 0.5F, 2.6F + (var1.rand.nextFloat() - var1.rand.nextFloat()) * 0.8F);
|
||||
|
||||
for(int var7 = 0; var7 < 5; ++var7) {
|
||||
double var8 = (double)var2 + var5.nextDouble() * 0.6D + 0.2D;
|
||||
double var10 = (double)var3 + var5.nextDouble() * 0.6D + 0.2D;
|
||||
double var12 = (double)var4 + var5.nextDouble() * 0.6D + 0.2D;
|
||||
var1.spawnParticle("smoke", var8, var10, var12, 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if(!var6 && !this.checkForBurnout(var1, var2, var3, var4, false)) {
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3, var4, Block.torchRedstoneActive.blockID, var1.getBlockMetadata(var2, var3, var4));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
return var5 == 0 ? this.isPoweringTo(var1, var2, var3, var4, var5) : false;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.torchRedstoneActive.blockID;
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
343
src/net/minecraft/block/BlockRedstoneWire.java
Normal file
343
src/net/minecraft/block/BlockRedstoneWire.java
Normal file
|
|
@ -0,0 +1,343 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.ChunkPosition;
|
||||
import net.minecraft.util.ModelBed;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockRedstoneWire extends Block {
|
||||
private boolean wiresProvidePower = true;
|
||||
private Set field_21032_b = new HashSet();
|
||||
|
||||
public BlockRedstoneWire(int var1, int var2) {
|
||||
super(var1, var2, Material.circuits);
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F / 16.0F, 1.0F);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2, var3 - 1, var4);
|
||||
}
|
||||
|
||||
private void updateAndPropagateCurrentStrength(World var1, int var2, int var3, int var4) {
|
||||
this.func_21031_a(var1, var2, var3, var4, var2, var3, var4);
|
||||
ArrayList var5 = new ArrayList(this.field_21032_b);
|
||||
this.field_21032_b.clear();
|
||||
|
||||
for(int var6 = 0; var6 < var5.size(); ++var6) {
|
||||
ChunkPosition var7 = (ChunkPosition)var5.get(var6);
|
||||
var1.notifyBlocksOfNeighborChange(var7.x, var7.y, var7.z, this.blockID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void func_21031_a(World var1, int var2, int var3, int var4, int var5, int var6, int var7) {
|
||||
int var8 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var9 = 0;
|
||||
this.wiresProvidePower = false;
|
||||
boolean var10 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4);
|
||||
this.wiresProvidePower = true;
|
||||
int var11;
|
||||
int var12;
|
||||
int var13;
|
||||
if(var10) {
|
||||
var9 = 15;
|
||||
} else {
|
||||
for(var11 = 0; var11 < 4; ++var11) {
|
||||
var12 = var2;
|
||||
var13 = var4;
|
||||
if(var11 == 0) {
|
||||
var12 = var2 - 1;
|
||||
}
|
||||
|
||||
if(var11 == 1) {
|
||||
++var12;
|
||||
}
|
||||
|
||||
if(var11 == 2) {
|
||||
var13 = var4 - 1;
|
||||
}
|
||||
|
||||
if(var11 == 3) {
|
||||
++var13;
|
||||
}
|
||||
|
||||
if(var12 != var5 || var3 != var6 || var13 != var7) {
|
||||
var9 = this.getMaxCurrentStrength(var1, var12, var3, var13, var9);
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var12, var3, var13) && !var1.isBlockNormalCube(var2, var3 + 1, var4)) {
|
||||
if(var12 != var5 || var3 + 1 != var6 || var13 != var7) {
|
||||
var9 = this.getMaxCurrentStrength(var1, var12, var3 + 1, var13, var9);
|
||||
}
|
||||
} else if(!var1.isBlockNormalCube(var12, var3, var13) && (var12 != var5 || var3 - 1 != var6 || var13 != var7)) {
|
||||
var9 = this.getMaxCurrentStrength(var1, var12, var3 - 1, var13, var9);
|
||||
}
|
||||
}
|
||||
|
||||
if(var9 > 0) {
|
||||
--var9;
|
||||
} else {
|
||||
var9 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(var8 != var9) {
|
||||
var1.editingBlocks = true;
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var9);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
var1.editingBlocks = false;
|
||||
|
||||
for(var11 = 0; var11 < 4; ++var11) {
|
||||
var12 = var2;
|
||||
var13 = var4;
|
||||
int var14 = var3 - 1;
|
||||
if(var11 == 0) {
|
||||
var12 = var2 - 1;
|
||||
}
|
||||
|
||||
if(var11 == 1) {
|
||||
++var12;
|
||||
}
|
||||
|
||||
if(var11 == 2) {
|
||||
var13 = var4 - 1;
|
||||
}
|
||||
|
||||
if(var11 == 3) {
|
||||
++var13;
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var12, var3, var13)) {
|
||||
var14 += 2;
|
||||
}
|
||||
|
||||
boolean var15 = false;
|
||||
int var16 = this.getMaxCurrentStrength(var1, var12, var3, var13, -1);
|
||||
var9 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var9 > 0) {
|
||||
--var9;
|
||||
}
|
||||
|
||||
if(var16 >= 0 && var16 != var9) {
|
||||
this.func_21031_a(var1, var12, var3, var13, var2, var3, var4);
|
||||
}
|
||||
|
||||
var16 = this.getMaxCurrentStrength(var1, var12, var14, var13, -1);
|
||||
var9 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var9 > 0) {
|
||||
--var9;
|
||||
}
|
||||
|
||||
if(var16 >= 0 && var16 != var9) {
|
||||
this.func_21031_a(var1, var12, var14, var13, var2, var3, var4);
|
||||
}
|
||||
}
|
||||
|
||||
if(var8 == 0 || var9 == 0) {
|
||||
this.field_21032_b.add(new ChunkPosition(var2, var3, var4));
|
||||
this.field_21032_b.add(new ChunkPosition(var2 - 1, var3, var4));
|
||||
this.field_21032_b.add(new ChunkPosition(var2 + 1, var3, var4));
|
||||
this.field_21032_b.add(new ChunkPosition(var2, var3 - 1, var4));
|
||||
this.field_21032_b.add(new ChunkPosition(var2, var3 + 1, var4));
|
||||
this.field_21032_b.add(new ChunkPosition(var2, var3, var4 - 1));
|
||||
this.field_21032_b.add(new ChunkPosition(var2, var3, var4 + 1));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void notifyWireNeighborsOfNeighborChange(World var1, int var2, int var3, int var4) {
|
||||
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2 - 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2 + 1, var3, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 - 1, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3, var4 + 1, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
if(!var1.singleplayerWorld) {
|
||||
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3, var4);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3, var4);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 - 1);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 + 1);
|
||||
if(var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 + 1, var4);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 - 1, var4);
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 + 1, var4);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 - 1, var4);
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 - 1);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 - 1);
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 + 1);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockRemoval(var1, var2, var3, var4);
|
||||
if(!var1.singleplayerWorld) {
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 + 1, var4, this.blockID);
|
||||
var1.notifyBlocksOfNeighborChange(var2, var3 - 1, var4, this.blockID);
|
||||
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3, var4);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3, var4);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 - 1);
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3, var4 + 1);
|
||||
if(var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 + 1, var4);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 - 1, var3 - 1, var4);
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 + 1, var4);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2 + 1, var3 - 1, var4);
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 - 1);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 - 1);
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 + 1, var4 + 1);
|
||||
} else {
|
||||
this.notifyWireNeighborsOfNeighborChange(var1, var2, var3 - 1, var4 + 1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private int getMaxCurrentStrength(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(var1.getBlockId(var2, var3, var4) != this.blockID) {
|
||||
return var5;
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
return var6 > var5 ? var6 : var5;
|
||||
}
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
boolean var7 = this.canPlaceBlockAt(var1, var2, var3, var4);
|
||||
if(!var7) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var6);
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
this.updateAndPropagateCurrentStrength(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
|
||||
}
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.redstone.shiftedIndex;
|
||||
}
|
||||
|
||||
public boolean isIndirectlyPoweringTo(World var1, int var2, int var3, int var4, int var5) {
|
||||
return !this.wiresProvidePower ? false : this.isPoweringTo(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean isPoweringTo(IBlockAccess var1, int var2, int var3, int var4, int var5) {
|
||||
if(!this.wiresProvidePower) {
|
||||
return false;
|
||||
} else if(var1.getBlockMetadata(var2, var3, var4) == 0) {
|
||||
return false;
|
||||
} else if(var5 == 1) {
|
||||
return true;
|
||||
} else {
|
||||
boolean var6 = isPowerProviderOrWire(var1, var2 - 1, var3, var4, 1) || !var1.isBlockNormalCube(var2 - 1, var3, var4) && isPowerProviderOrWire(var1, var2 - 1, var3 - 1, var4, -1);
|
||||
boolean var7 = isPowerProviderOrWire(var1, var2 + 1, var3, var4, 3) || !var1.isBlockNormalCube(var2 + 1, var3, var4) && isPowerProviderOrWire(var1, var2 + 1, var3 - 1, var4, -1);
|
||||
boolean var8 = isPowerProviderOrWire(var1, var2, var3, var4 - 1, 2) || !var1.isBlockNormalCube(var2, var3, var4 - 1) && isPowerProviderOrWire(var1, var2, var3 - 1, var4 - 1, -1);
|
||||
boolean var9 = isPowerProviderOrWire(var1, var2, var3, var4 + 1, 0) || !var1.isBlockNormalCube(var2, var3, var4 + 1) && isPowerProviderOrWire(var1, var2, var3 - 1, var4 + 1, -1);
|
||||
if(!var1.isBlockNormalCube(var2, var3 + 1, var4)) {
|
||||
if(var1.isBlockNormalCube(var2 - 1, var3, var4) && isPowerProviderOrWire(var1, var2 - 1, var3 + 1, var4, -1)) {
|
||||
var6 = true;
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2 + 1, var3, var4) && isPowerProviderOrWire(var1, var2 + 1, var3 + 1, var4, -1)) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2, var3, var4 - 1) && isPowerProviderOrWire(var1, var2, var3 + 1, var4 - 1, -1)) {
|
||||
var8 = true;
|
||||
}
|
||||
|
||||
if(var1.isBlockNormalCube(var2, var3, var4 + 1) && isPowerProviderOrWire(var1, var2, var3 + 1, var4 + 1, -1)) {
|
||||
var9 = true;
|
||||
}
|
||||
}
|
||||
|
||||
return !var8 && !var7 && !var6 && !var9 && var5 >= 2 && var5 <= 5 ? true : (var5 == 2 && var8 && !var6 && !var7 ? true : (var5 == 3 && var9 && !var6 && !var7 ? true : (var5 == 4 && var6 && !var8 && !var9 ? true : var5 == 5 && var7 && !var8 && !var9)));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canProvidePower() {
|
||||
return this.wiresProvidePower;
|
||||
}
|
||||
|
||||
public static boolean isPowerProviderOrWire(IBlockAccess var0, int var1, int var2, int var3, int var4) {
|
||||
int var5 = var0.getBlockId(var1, var2, var3);
|
||||
if(var5 == Block.redstoneWire.blockID) {
|
||||
return true;
|
||||
} else if(var5 == 0) {
|
||||
return false;
|
||||
} else if(Block.blocksList[var5].canProvidePower()) {
|
||||
return true;
|
||||
} else if(var5 != Block.redstoneRepeaterIdle.blockID && var5 != Block.redstoneRepeaterActive.blockID) {
|
||||
return false;
|
||||
} else {
|
||||
int var6 = var0.getBlockMetadata(var1, var2, var3);
|
||||
return var4 == ModelBed.field_22153_b[var6 & 3];
|
||||
}
|
||||
}
|
||||
}
|
||||
73
src/net/minecraft/block/BlockReed.java
Normal file
73
src/net/minecraft/block/BlockReed.java
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockReed extends Block {
|
||||
protected BlockReed(int var1, int var2) {
|
||||
super(var1, Material.plants);
|
||||
this.blockIndexInTexture = var2;
|
||||
float var3 = 6.0F / 16.0F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 1.0F, 0.5F + var3);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var1.isAirBlock(var2, var3 + 1, var4)) {
|
||||
int var6;
|
||||
for(var6 = 1; var1.getBlockId(var2, var3 - var6, var4) == this.blockID; ++var6) {
|
||||
}
|
||||
|
||||
if(var6 < 3) {
|
||||
int var7 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var7 == 15) {
|
||||
var1.setBlockWithNotify(var2, var3 + 1, var4, this.blockID);
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
|
||||
} else {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var7 + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockId(var2, var3 - 1, var4);
|
||||
return var5 == this.blockID ? true : (var5 != Block.grass.blockID && var5 != Block.dirt.blockID ? false : (var1.getBlockMaterial(var2 - 1, var3 - 1, var4) == Material.water ? true : (var1.getBlockMaterial(var2 + 1, var3 - 1, var4) == Material.water ? true : (var1.getBlockMaterial(var2, var3 - 1, var4 - 1) == Material.water ? true : var1.getBlockMaterial(var2, var3 - 1, var4 + 1) == Material.water))));
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
this.checkBlockCoordValid(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
protected final void checkBlockCoordValid(World var1, int var2, int var3, int var4) {
|
||||
if(!this.canBlockStay(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean canBlockStay(World var1, int var2, int var3, int var4) {
|
||||
return this.canPlaceBlockAt(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.reed.shiftedIndex;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
63
src/net/minecraft/block/BlockSand.java
Normal file
63
src/net/minecraft/block/BlockSand.java
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityFallingSand;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockSand extends Block {
|
||||
public static boolean fallInstantly = false;
|
||||
|
||||
public BlockSand(int var1, int var2) {
|
||||
super(var1, var2, Material.sand);
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID, this.tickRate());
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
this.tryToFall(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
private void tryToFall(World var1, int var2, int var3, int var4) {
|
||||
if(canFallBelow(var1, var2, var3 - 1, var4) && var3 >= 0) {
|
||||
byte var8 = 32;
|
||||
if(!fallInstantly && var1.checkChunksExist(var2 - var8, var3 - var8, var4 - var8, var2 + var8, var3 + var8, var4 + var8)) {
|
||||
EntityFallingSand var9 = new EntityFallingSand(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F), this.blockID);
|
||||
var1.entityJoinedWorld(var9);
|
||||
} else {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
|
||||
while(canFallBelow(var1, var2, var3 - 1, var4) && var3 > 0) {
|
||||
--var3;
|
||||
}
|
||||
|
||||
if(var3 > 0) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, this.blockID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
public static boolean canFallBelow(World var0, int var1, int var2, int var3) {
|
||||
int var4 = var0.getBlockId(var1, var2, var3);
|
||||
if(var4 == 0) {
|
||||
return true;
|
||||
} else if(var4 == Block.fire.blockID) {
|
||||
return true;
|
||||
} else {
|
||||
Material var5 = Block.blocksList[var4].blockMaterial;
|
||||
return var5 == Material.water ? true : var5 == Material.lava;
|
||||
}
|
||||
}
|
||||
}
|
||||
13
src/net/minecraft/block/BlockSandStone.java
Normal file
13
src/net/minecraft/block/BlockSandStone.java
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockSandStone extends Block {
|
||||
public BlockSandStone(int var1) {
|
||||
super(var1, 192, Material.rock);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture - 16 : (var1 == 0 ? this.blockIndexInTexture + 16 : this.blockIndexInTexture);
|
||||
}
|
||||
}
|
||||
62
src/net/minecraft/block/BlockSapling.java
Normal file
62
src/net/minecraft/block/BlockSapling.java
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.generators.WorldGenBigTree;
|
||||
import net.minecraft.world.generators.WorldGenForest;
|
||||
import net.minecraft.world.generators.WorldGenTaiga2;
|
||||
import net.minecraft.world.generators.WorldGenTrees;
|
||||
import net.minecraft.world.generators.WorldGenerator;
|
||||
|
||||
public class BlockSapling extends BlockFlower {
|
||||
protected BlockSapling(int var1, int var2) {
|
||||
super(var1, var2);
|
||||
float var3 = 0.4F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var3 * 2.0F, 0.5F + var3);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
super.updateTick(var1, var2, var3, var4, var5);
|
||||
if(var1.getBlockLightValue(var2, var3 + 1, var4) >= 9 && var5.nextInt(30) == 0) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if((var6 & 8) == 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 | 8);
|
||||
} else {
|
||||
this.growTree(var1, var2, var3, var4, var5);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
var2 &= 3;
|
||||
return var2 == 1 ? 63 : (var2 == 2 ? 79 : super.getBlockTextureFromSideAndMetadata(var1, var2));
|
||||
}
|
||||
|
||||
public void growTree(World var1, int var2, int var3, int var4, Random var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4) & 3;
|
||||
var1.setBlock(var2, var3, var4, 0);
|
||||
Object var7 = null;
|
||||
if(var6 == 1) {
|
||||
var7 = new WorldGenTaiga2();
|
||||
} else if(var6 == 2) {
|
||||
var7 = new WorldGenForest();
|
||||
} else {
|
||||
var7 = new WorldGenTrees();
|
||||
if(var5.nextInt(10) == 0) {
|
||||
var7 = new WorldGenBigTree();
|
||||
}
|
||||
}
|
||||
|
||||
if(!((WorldGenerator)var7).generate(var1, var5, var2, var3, var4)) {
|
||||
var1.setBlockAndMetadata(var2, var3, var4, this.blockID, var6);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected int damageDropped(int var1) {
|
||||
return var1 & 3;
|
||||
}
|
||||
}
|
||||
110
src/net/minecraft/block/BlockSign.java
Normal file
110
src/net/minecraft/block/BlockSign.java
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.tile.TileEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockSign extends BlockContainer {
|
||||
private Class signEntityClass;
|
||||
private boolean isFreestanding;
|
||||
|
||||
protected BlockSign(int var1, Class var2, boolean var3) {
|
||||
super(var1, Material.wood);
|
||||
this.isFreestanding = var3;
|
||||
this.blockIndexInTexture = 4;
|
||||
this.signEntityClass = var2;
|
||||
float var4 = 0.25F;
|
||||
float var5 = 1.0F;
|
||||
this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var5, 0.5F + var4);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
if(!this.isFreestanding) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
float var6 = 9.0F / 32.0F;
|
||||
float var7 = 25.0F / 32.0F;
|
||||
float var8 = 0.0F;
|
||||
float var9 = 1.0F;
|
||||
float var10 = 2.0F / 16.0F;
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
if(var5 == 2) {
|
||||
this.setBlockBounds(var8, var6, 1.0F - var10, var9, var7, 1.0F);
|
||||
}
|
||||
|
||||
if(var5 == 3) {
|
||||
this.setBlockBounds(var8, var6, 0.0F, var9, var7, var10);
|
||||
}
|
||||
|
||||
if(var5 == 4) {
|
||||
this.setBlockBounds(1.0F - var10, var6, var8, 1.0F, var7, var9);
|
||||
}
|
||||
|
||||
if(var5 == 5) {
|
||||
this.setBlockBounds(0.0F, var6, var8, var10, var7, var9);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected TileEntity getBlockEntity() {
|
||||
try {
|
||||
return (TileEntity)this.signEntityClass.newInstance();
|
||||
} catch (Exception var2) {
|
||||
throw new RuntimeException(var2);
|
||||
}
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.sign.shiftedIndex;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
boolean var6 = false;
|
||||
if(this.isFreestanding) {
|
||||
if(!var1.getBlockMaterial(var2, var3 - 1, var4).isSolid()) {
|
||||
var6 = true;
|
||||
}
|
||||
} else {
|
||||
int var7 = var1.getBlockMetadata(var2, var3, var4);
|
||||
var6 = true;
|
||||
if(var7 == 2 && var1.getBlockMaterial(var2, var3, var4 + 1).isSolid()) {
|
||||
var6 = false;
|
||||
}
|
||||
|
||||
if(var7 == 3 && var1.getBlockMaterial(var2, var3, var4 - 1).isSolid()) {
|
||||
var6 = false;
|
||||
}
|
||||
|
||||
if(var7 == 4 && var1.getBlockMaterial(var2 + 1, var3, var4).isSolid()) {
|
||||
var6 = false;
|
||||
}
|
||||
|
||||
if(var7 == 5 && var1.getBlockMaterial(var2 - 1, var3, var4).isSolid()) {
|
||||
var6 = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(var6) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
|
||||
}
|
||||
}
|
||||
88
src/net/minecraft/block/BlockSnow.java
Normal file
88
src/net/minecraft/block/BlockSnow.java
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityItem;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.statistics.StatList;
|
||||
import net.minecraft.world.EnumLightSource;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockSnow extends Block {
|
||||
protected BlockSnow(int var1, int var2) {
|
||||
super(var1, var2, Material.snow);
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2.0F / 16.0F, 1.0F);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
|
||||
return var5 >= 3 ? AxisAlignedBB.getBoundingBoxFromPool((double)var2 + this.minX, (double)var3 + this.minY, (double)var4 + this.minZ, (double)var2 + this.maxX, (double)((float)var3 + 0.5F), (double)var4 + this.maxZ) : null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4) & 7;
|
||||
float var6 = (float)(2 * (1 + var5)) / 16.0F;
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, var6, 1.0F);
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockId(var2, var3 - 1, var4);
|
||||
return var5 != 0 && Block.blocksList[var5].isOpaqueCube() ? var1.getBlockMaterial(var2, var3 - 1, var4).getIsSolid() : false;
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
this.func_275_g(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
private boolean func_275_g(World var1, int var2, int var3, int var4) {
|
||||
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void harvestBlock(World var1, EntityPlayer var2, int var3, int var4, int var5, int var6) {
|
||||
int var7 = Item.snowball.shiftedIndex;
|
||||
float var8 = 0.7F;
|
||||
double var9 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
|
||||
double var11 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
|
||||
double var13 = (double)(var1.rand.nextFloat() * var8) + (double)(1.0F - var8) * 0.5D;
|
||||
EntityItem var15 = new EntityItem(var1, (double)var3 + var9, (double)var4 + var11, (double)var5 + var13, new ItemStack(var7, 1, 0));
|
||||
var15.delayBeforeCanPickup = 10;
|
||||
var1.entityJoinedWorld(var15);
|
||||
var1.setBlockWithNotify(var3, var4, var5, 0);
|
||||
var2.addStat(StatList.mineBlockStatArray[this.blockID], 1);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.snowball.shiftedIndex;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
30
src/net/minecraft/block/BlockSnowBlock.java
Normal file
30
src/net/minecraft/block/BlockSnowBlock.java
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.world.EnumLightSource;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockSnowBlock extends Block {
|
||||
protected BlockSnowBlock(int var1, int var2) {
|
||||
super(var1, var2, Material.builtSnow);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.snowball.shiftedIndex;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(var1.getSavedLightValue(EnumLightSource.Block, var2, var3, var4) > 11) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
22
src/net/minecraft/block/BlockSoulSand.java
Normal file
22
src/net/minecraft/block/BlockSoulSand.java
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockSoulSand extends Block {
|
||||
public BlockSoulSand(int var1, int var2) {
|
||||
super(var1, var2, Material.sand);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
float var5 = 2.0F / 16.0F;
|
||||
return AxisAlignedBB.getBoundingBoxFromPool((double)var2, (double)var3, (double)var4, (double)(var2 + 1), (double)((float)(var3 + 1) - var5), (double)(var4 + 1));
|
||||
}
|
||||
|
||||
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
var5.motionX *= 0.4D;
|
||||
var5.motionZ *= 0.4D;
|
||||
}
|
||||
}
|
||||
38
src/net/minecraft/block/BlockSponge.java
Normal file
38
src/net/minecraft/block/BlockSponge.java
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockSponge extends Block {
|
||||
protected BlockSponge(int var1) {
|
||||
super(var1, Material.sponge);
|
||||
this.blockIndexInTexture = 48;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
byte var5 = 2;
|
||||
|
||||
for(int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
|
||||
for(int var7 = var3 - var5; var7 <= var3 + var5; ++var7) {
|
||||
for(int var8 = var4 - var5; var8 <= var4 + var5; ++var8) {
|
||||
if(var1.getBlockMaterial(var6, var7, var8) == Material.water) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
byte var5 = 2;
|
||||
|
||||
for(int var6 = var2 - var5; var6 <= var2 + var5; ++var6) {
|
||||
for(int var7 = var3 - var5; var7 <= var3 + var5; ++var7) {
|
||||
for(int var8 = var4 - var5; var8 <= var4 + var5; ++var8) {
|
||||
var1.notifyBlocksOfNeighborChange(var6, var7, var8, var1.getBlockId(var6, var7, var8));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
165
src/net/minecraft/block/BlockStairs.java
Normal file
165
src/net/minecraft/block/BlockStairs.java
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.MathHelper;
|
||||
import net.minecraft.math.Vec3D;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockStairs extends Block {
|
||||
private Block modelBlock;
|
||||
|
||||
protected BlockStairs(int var1, Block var2) {
|
||||
super(var1, var2.blockIndexInTexture, var2.blockMaterial);
|
||||
this.modelBlock = var2;
|
||||
this.setHardness(var2.blockHardness);
|
||||
this.setResistance(var2.blockResistance / 3.0F);
|
||||
this.setStepSound(var2.stepSound);
|
||||
this.setLightOpacity(255);
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void getCollidingBoundingBoxes(World var1, int var2, int var3, int var4, AxisAlignedBB var5, ArrayList var6) {
|
||||
int var7 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var7 == 0) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 0.5F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
} else if(var7 == 1) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 0.5F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(0.5F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
} else if(var7 == 2) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 0.5F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 1.0F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
} else if(var7 == 3) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F);
|
||||
super.getCollidingBoundingBoxes(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.modelBlock.onBlockClicked(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
|
||||
this.modelBlock.onBlockDestroyedByPlayer(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public float getExplosionResistance(Entity var1) {
|
||||
return this.modelBlock.getExplosionResistance(var1);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return this.modelBlock.idDropped(var1, var2);
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return this.modelBlock.quantityDropped(var1);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return this.modelBlock.getBlockTextureFromSideAndMetadata(var1, var2);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return this.modelBlock.getBlockTextureFromSide(var1);
|
||||
}
|
||||
|
||||
public int tickRate() {
|
||||
return this.modelBlock.tickRate();
|
||||
}
|
||||
|
||||
public void velocityToAddToEntity(World var1, int var2, int var3, int var4, Entity var5, Vec3D var6) {
|
||||
this.modelBlock.velocityToAddToEntity(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public boolean isCollidable() {
|
||||
return this.modelBlock.isCollidable();
|
||||
}
|
||||
|
||||
public boolean canCollideCheck(int var1, boolean var2) {
|
||||
return this.modelBlock.canCollideCheck(var1, var2);
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return this.modelBlock.canPlaceBlockAt(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
this.onNeighborBlockChange(var1, var2, var3, var4, 0);
|
||||
this.modelBlock.onBlockAdded(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World var1, int var2, int var3, int var4) {
|
||||
this.modelBlock.onBlockRemoval(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void dropBlockAsItemWithChance(World var1, int var2, int var3, int var4, int var5, float var6) {
|
||||
this.modelBlock.dropBlockAsItemWithChance(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public void onEntityWalking(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
this.modelBlock.onEntityWalking(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
this.modelBlock.updateTick(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
return this.modelBlock.blockActivated(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) {
|
||||
this.modelBlock.onBlockDestroyedByExplosion(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
|
||||
int var6 = MathHelper.floor_double((double)(var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
||||
if(var6 == 0) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
|
||||
}
|
||||
|
||||
if(var6 == 1) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
|
||||
}
|
||||
|
||||
if(var6 == 2) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
|
||||
}
|
||||
|
||||
if(var6 == 3) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
59
src/net/minecraft/block/BlockStationary.java
Normal file
59
src/net/minecraft/block/BlockStationary.java
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockStationary extends BlockFluid {
|
||||
protected BlockStationary(int var1, Material var2) {
|
||||
super(var1, var2);
|
||||
this.setTickOnLoad(false);
|
||||
if(var2 == Material.lava) {
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
super.onNeighborBlockChange(var1, var2, var3, var4, var5);
|
||||
if(var1.getBlockId(var2, var3, var4) == this.blockID) {
|
||||
this.func_30005_i(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void func_30005_i(World var1, int var2, int var3, int var4) {
|
||||
int var5 = var1.getBlockMetadata(var2, var3, var4);
|
||||
var1.editingBlocks = true;
|
||||
var1.setBlockAndMetadata(var2, var3, var4, this.blockID - 1, var5);
|
||||
var1.markBlocksDirty(var2, var3, var4, var2, var3, var4);
|
||||
var1.scheduleUpdateTick(var2, var3, var4, this.blockID - 1, this.tickRate());
|
||||
var1.editingBlocks = false;
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
if(this.blockMaterial == Material.lava) {
|
||||
int var6 = var5.nextInt(3);
|
||||
|
||||
for(int var7 = 0; var7 < var6; ++var7) {
|
||||
var2 += var5.nextInt(3) - 1;
|
||||
++var3;
|
||||
var4 += var5.nextInt(3) - 1;
|
||||
int var8 = var1.getBlockId(var2, var3, var4);
|
||||
if(var8 == 0) {
|
||||
if(this.func_4033_j(var1, var2 - 1, var3, var4) || this.func_4033_j(var1, var2 + 1, var3, var4) || this.func_4033_j(var1, var2, var3, var4 - 1) || this.func_4033_j(var1, var2, var3, var4 + 1) || this.func_4033_j(var1, var2, var3 - 1, var4) || this.func_4033_j(var1, var2, var3 + 1, var4)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, Block.fire.blockID);
|
||||
return;
|
||||
}
|
||||
} else if(Block.blocksList[var8].blockMaterial.getIsSolid()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean func_4033_j(World var1, int var2, int var3, int var4) {
|
||||
return var1.getBlockMaterial(var2, var3, var4).getBurning();
|
||||
}
|
||||
}
|
||||
65
src/net/minecraft/block/BlockStep.java
Normal file
65
src/net/minecraft/block/BlockStep.java
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockStep extends Block {
|
||||
public static final String[] field_22027_a = new String[]{"stone", "sand", "wood", "cobble"};
|
||||
private boolean blockType;
|
||||
|
||||
public BlockStep(int var1, boolean var2) {
|
||||
super(var1, 6, Material.rock);
|
||||
this.blockType = var2;
|
||||
if(!var2) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
|
||||
}
|
||||
|
||||
this.setLightOpacity(255);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return var2 == 0 ? (var1 <= 1 ? 6 : 5) : (var2 == 1 ? (var1 == 0 ? 208 : (var1 == 1 ? 176 : 192)) : (var2 == 2 ? 4 : (var2 == 3 ? 16 : 6)));
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return this.getBlockTextureFromSideAndMetadata(var1, 0);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return this.blockType;
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
if(this != Block.stairSingle) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
int var5 = var1.getBlockId(var2, var3 - 1, var4);
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = var1.getBlockMetadata(var2, var3 - 1, var4);
|
||||
if(var6 == var7) {
|
||||
if(var5 == stairSingle.blockID) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
var1.setBlockAndMetadataWithNotify(var2, var3 - 1, var4, Block.stairDouble.blockID, var6);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.stairSingle.blockID;
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return this.blockType ? 2 : 1;
|
||||
}
|
||||
|
||||
protected int damageDropped(int var1) {
|
||||
return var1;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return this.blockType;
|
||||
}
|
||||
}
|
||||
14
src/net/minecraft/block/BlockStone.java
Normal file
14
src/net/minecraft/block/BlockStone.java
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
public class BlockStone extends Block {
|
||||
public BlockStone(int var1, int var2) {
|
||||
super(var1, var2, Material.rock);
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Block.cobblestone.blockID;
|
||||
}
|
||||
}
|
||||
71
src/net/minecraft/block/BlockTNT.java
Normal file
71
src/net/minecraft/block/BlockTNT.java
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.entity.EntityTNTPrimed;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockTNT extends Block {
|
||||
public BlockTNT(int var1, int var2) {
|
||||
super(var1, var2, Material.tnt);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 0 ? this.blockIndexInTexture + 2 : (var1 == 1 ? this.blockIndexInTexture + 1 : this.blockIndexInTexture);
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
super.onBlockAdded(var1, var2, var3, var4);
|
||||
if(var1.isBlockIndirectlyGettingPowered(var2, var3, var4)) {
|
||||
this.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(var5 > 0 && Block.blocksList[var5].canProvidePower() && var1.isBlockIndirectlyGettingPowered(var2, var3, var4)) {
|
||||
this.onBlockDestroyedByPlayer(var1, var2, var3, var4, 1);
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int quantityDropped(Random var1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void onBlockDestroyedByExplosion(World var1, int var2, int var3, int var4) {
|
||||
EntityTNTPrimed var5 = new EntityTNTPrimed(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F));
|
||||
var5.fuse = var1.rand.nextInt(var5.fuse / 4) + var5.fuse / 8;
|
||||
var1.entityJoinedWorld(var5);
|
||||
}
|
||||
|
||||
public void onBlockDestroyedByPlayer(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
if((var5 & 1) == 0) {
|
||||
this.dropBlockAsItem_do(var1, var2, var3, var4, new ItemStack(Block.tnt.blockID, 1, 0));
|
||||
} else {
|
||||
EntityTNTPrimed var6 = new EntityTNTPrimed(var1, (double)((float)var2 + 0.5F), (double)((float)var3 + 0.5F), (double)((float)var4 + 0.5F));
|
||||
var1.entityJoinedWorld(var6);
|
||||
var1.playSoundAtEntity(var6, "random.fuse", 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var5.getCurrentEquippedItem() != null && var5.getCurrentEquippedItem().itemID == Item.flintAndSteel.shiftedIndex) {
|
||||
var1.setBlockMetadata(var2, var3, var4, 1);
|
||||
}
|
||||
|
||||
super.onBlockClicked(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
return super.blockActivated(var1, var2, var3, var4, var5);
|
||||
}
|
||||
}
|
||||
20
src/net/minecraft/block/BlockTallGrass.java
Normal file
20
src/net/minecraft/block/BlockTallGrass.java
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class BlockTallGrass extends BlockFlower {
|
||||
protected BlockTallGrass(int var1, int var2) {
|
||||
super(var1, var2);
|
||||
float var3 = 0.4F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, 0.8F, 0.5F + var3);
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSideAndMetadata(int var1, int var2) {
|
||||
return var2 == 1 ? this.blockIndexInTexture : (var2 == 2 ? this.blockIndexInTexture + 16 + 1 : (var2 == 0 ? this.blockIndexInTexture + 16 : this.blockIndexInTexture));
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return var2.nextInt(8) == 0 ? Item.seeds.shiftedIndex : -1;
|
||||
}
|
||||
}
|
||||
145
src/net/minecraft/block/BlockTorch.java
Normal file
145
src/net/minecraft/block/BlockTorch.java
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.Vec3D;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockTorch extends Block {
|
||||
protected BlockTorch(int var1, int var2) {
|
||||
super(var1, var2, Material.circuits);
|
||||
this.setTickOnLoad(true);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean func_31028_g(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2, var3, var4) || var1.getBlockId(var2, var3, var4) == Block.fence.blockID;
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockAt(World var1, int var2, int var3, int var4) {
|
||||
return var1.isBlockNormalCube(var2 - 1, var3, var4) ? true : (var1.isBlockNormalCube(var2 + 1, var3, var4) ? true : (var1.isBlockNormalCube(var2, var3, var4 - 1) ? true : (var1.isBlockNormalCube(var2, var3, var4 + 1) ? true : this.func_31028_g(var1, var2, var3 - 1, var4))));
|
||||
}
|
||||
|
||||
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
if(var5 == 1 && this.func_31028_g(var1, var2, var3 - 1, var4)) {
|
||||
var6 = 5;
|
||||
}
|
||||
|
||||
if(var5 == 2 && var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
var6 = 4;
|
||||
}
|
||||
|
||||
if(var5 == 3 && var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
var6 = 3;
|
||||
}
|
||||
|
||||
if(var5 == 4 && var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
var6 = 2;
|
||||
}
|
||||
|
||||
if(var5 == 5 && var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
var6 = 1;
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
}
|
||||
|
||||
public void updateTick(World var1, int var2, int var3, int var4, Random var5) {
|
||||
super.updateTick(var1, var2, var3, var4, var5);
|
||||
if(var1.getBlockMetadata(var2, var3, var4) == 0) {
|
||||
this.onBlockAdded(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockAdded(World var1, int var2, int var3, int var4) {
|
||||
if(var1.isBlockNormalCube(var2 - 1, var3, var4)) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 1);
|
||||
} else if(var1.isBlockNormalCube(var2 + 1, var3, var4)) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 2);
|
||||
} else if(var1.isBlockNormalCube(var2, var3, var4 - 1)) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 3);
|
||||
} else if(var1.isBlockNormalCube(var2, var3, var4 + 1)) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 4);
|
||||
} else if(this.func_31028_g(var1, var2, var3 - 1, var4)) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, 5);
|
||||
}
|
||||
|
||||
this.dropTorchIfCantStay(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(this.dropTorchIfCantStay(var1, var2, var3, var4)) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
boolean var7 = false;
|
||||
if(!var1.isBlockNormalCube(var2 - 1, var3, var4) && var6 == 1) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2 + 1, var3, var4) && var6 == 2) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3, var4 - 1) && var6 == 3) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var2, var3, var4 + 1) && var6 == 4) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(!this.func_31028_g(var1, var2, var3 - 1, var4) && var6 == 5) {
|
||||
var7 = true;
|
||||
}
|
||||
|
||||
if(var7) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean dropTorchIfCantStay(World var1, int var2, int var3, int var4) {
|
||||
if(!this.canPlaceBlockAt(var1, var2, var3, var4)) {
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var1.getBlockMetadata(var2, var3, var4));
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
|
||||
int var7 = var1.getBlockMetadata(var2, var3, var4) & 7;
|
||||
float var8 = 0.15F;
|
||||
if(var7 == 1) {
|
||||
this.setBlockBounds(0.0F, 0.2F, 0.5F - var8, var8 * 2.0F, 0.8F, 0.5F + var8);
|
||||
} else if(var7 == 2) {
|
||||
this.setBlockBounds(1.0F - var8 * 2.0F, 0.2F, 0.5F - var8, 1.0F, 0.8F, 0.5F + var8);
|
||||
} else if(var7 == 3) {
|
||||
this.setBlockBounds(0.5F - var8, 0.2F, 0.0F, 0.5F + var8, 0.8F, var8 * 2.0F);
|
||||
} else if(var7 == 4) {
|
||||
this.setBlockBounds(0.5F - var8, 0.2F, 1.0F - var8 * 2.0F, 0.5F + var8, 0.8F, 1.0F);
|
||||
} else {
|
||||
var8 = 0.1F;
|
||||
this.setBlockBounds(0.5F - var8, 0.0F, 0.5F - var8, 0.5F + var8, 0.6F, 0.5F + var8);
|
||||
}
|
||||
|
||||
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
}
|
||||
177
src/net/minecraft/block/BlockTrapDoor.java
Normal file
177
src/net/minecraft/block/BlockTrapDoor.java
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.math.Vec3D;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockTrapDoor extends Block {
|
||||
protected BlockTrapDoor(int var1, Material var2) {
|
||||
super(var1, var2);
|
||||
this.blockIndexInTexture = 84;
|
||||
if(var2 == Material.iron) {
|
||||
++this.blockIndexInTexture;
|
||||
}
|
||||
|
||||
float var3 = 0.5F;
|
||||
float var4 = 1.0F;
|
||||
this.setBlockBounds(0.5F - var3, 0.0F, 0.5F - var3, 0.5F + var3, var4, 0.5F + var3);
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
|
||||
return super.getCollisionBoundingBoxFromPool(var1, var2, var3, var4);
|
||||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess var1, int var2, int var3, int var4) {
|
||||
this.func_28039_c(var1.getBlockMetadata(var2, var3, var4));
|
||||
}
|
||||
|
||||
public void func_28039_c(int var1) {
|
||||
float var2 = 3.0F / 16.0F;
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, var2, 1.0F);
|
||||
if(func_28038_d(var1)) {
|
||||
if((var1 & 3) == 0) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 1.0F - var2, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if((var1 & 3) == 1) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, var2);
|
||||
}
|
||||
|
||||
if((var1 & 3) == 2) {
|
||||
this.setBlockBounds(1.0F - var2, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if((var1 & 3) == 3) {
|
||||
this.setBlockBounds(0.0F, 0.0F, 0.0F, var2, 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onBlockClicked(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
this.blockActivated(var1, var2, var3, var4, var5);
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(this.blockMaterial == Material.iron) {
|
||||
return true;
|
||||
} else {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
|
||||
var1.func_28101_a(var5, 1003, var2, var3, var4, 0);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public void func_28040_a(World var1, int var2, int var3, int var4, boolean var5) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
boolean var7 = (var6 & 4) > 0;
|
||||
if(var7 != var5) {
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6 ^ 4);
|
||||
var1.func_28101_a((EntityPlayer)null, 1003, var2, var3, var4, 0);
|
||||
}
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(!var1.singleplayerWorld) {
|
||||
int var6 = var1.getBlockMetadata(var2, var3, var4);
|
||||
int var7 = var2;
|
||||
int var8 = var4;
|
||||
if((var6 & 3) == 0) {
|
||||
var8 = var4 + 1;
|
||||
}
|
||||
|
||||
if((var6 & 3) == 1) {
|
||||
--var8;
|
||||
}
|
||||
|
||||
if((var6 & 3) == 2) {
|
||||
var7 = var2 + 1;
|
||||
}
|
||||
|
||||
if((var6 & 3) == 3) {
|
||||
--var7;
|
||||
}
|
||||
|
||||
if(!var1.isBlockNormalCube(var7, var3, var8)) {
|
||||
var1.setBlockWithNotify(var2, var3, var4, 0);
|
||||
this.dropBlockAsItem(var1, var2, var3, var4, var6);
|
||||
}
|
||||
|
||||
if(var5 > 0 && Block.blocksList[var5].canProvidePower()) {
|
||||
boolean var9 = var1.isBlockIndirectlyGettingPowered(var2, var3, var4);
|
||||
this.func_28040_a(var1, var2, var3, var4, var9);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public MovingObjectPosition collisionRayTrace(World var1, int var2, int var3, int var4, Vec3D var5, Vec3D var6) {
|
||||
this.setBlockBoundsBasedOnState(var1, var2, var3, var4);
|
||||
return super.collisionRayTrace(var1, var2, var3, var4, var5, var6);
|
||||
}
|
||||
|
||||
public void onBlockPlaced(World var1, int var2, int var3, int var4, int var5) {
|
||||
byte var6 = 0;
|
||||
if(var5 == 2) {
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if(var5 == 3) {
|
||||
var6 = 1;
|
||||
}
|
||||
|
||||
if(var5 == 4) {
|
||||
var6 = 2;
|
||||
}
|
||||
|
||||
if(var5 == 5) {
|
||||
var6 = 3;
|
||||
}
|
||||
|
||||
var1.setBlockMetadataWithNotify(var2, var3, var4, var6);
|
||||
}
|
||||
|
||||
public boolean canPlaceBlockOnSide(World var1, int var2, int var3, int var4, int var5) {
|
||||
if(var5 == 0) {
|
||||
return false;
|
||||
} else if(var5 == 1) {
|
||||
return false;
|
||||
} else {
|
||||
if(var5 == 2) {
|
||||
++var4;
|
||||
}
|
||||
|
||||
if(var5 == 3) {
|
||||
--var4;
|
||||
}
|
||||
|
||||
if(var5 == 4) {
|
||||
++var2;
|
||||
}
|
||||
|
||||
if(var5 == 5) {
|
||||
--var2;
|
||||
}
|
||||
|
||||
return var1.isBlockNormalCube(var2, var3, var4);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean func_28038_d(int var0) {
|
||||
return (var0 & 4) != 0;
|
||||
}
|
||||
}
|
||||
34
src/net/minecraft/block/BlockWeb.java
Normal file
34
src/net/minecraft/block/BlockWeb.java
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockWeb extends Block {
|
||||
public BlockWeb(int var1, int var2) {
|
||||
super(var1, var2, Material.web);
|
||||
}
|
||||
|
||||
public void onEntityCollidedWithBlock(World var1, int var2, int var3, int var4, Entity var5) {
|
||||
var5.field_27012_bb = true;
|
||||
}
|
||||
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World var1, int var2, int var3, int var4) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isACube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int idDropped(int var1, Random var2) {
|
||||
return Item.silk.shiftedIndex;
|
||||
}
|
||||
}
|
||||
25
src/net/minecraft/block/BlockWorkbench.java
Normal file
25
src/net/minecraft/block/BlockWorkbench.java
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockWorkbench extends Block {
|
||||
protected BlockWorkbench(int var1) {
|
||||
super(var1, Material.wood);
|
||||
this.blockIndexInTexture = 59;
|
||||
}
|
||||
|
||||
public int getBlockTextureFromSide(int var1) {
|
||||
return var1 == 1 ? this.blockIndexInTexture - 16 : (var1 == 0 ? Block.planks.getBlockTextureFromSide(0) : (var1 != 2 && var1 != 4 ? this.blockIndexInTexture : this.blockIndexInTexture + 1));
|
||||
}
|
||||
|
||||
public boolean blockActivated(World var1, int var2, int var3, int var4, EntityPlayer var5) {
|
||||
if(var1.singleplayerWorld) {
|
||||
return true;
|
||||
} else {
|
||||
var5.displayWorkbenchGUI(var2, var3, var4);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
350
src/net/minecraft/block/RailLogic.java
Normal file
350
src/net/minecraft/block/RailLogic.java
Normal file
|
|
@ -0,0 +1,350 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import net.minecraft.math.ChunkPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
class RailLogic {
|
||||
private World worldObj;
|
||||
private int trackX;
|
||||
private int trackY;
|
||||
private int trackZ;
|
||||
private final boolean field_27084_f;
|
||||
private List connectedTracks;
|
||||
final BlockRail minecartTrack;
|
||||
|
||||
public RailLogic(BlockRail var1, World var2, int var3, int var4, int var5) {
|
||||
this.minecartTrack = var1;
|
||||
this.connectedTracks = new ArrayList();
|
||||
this.worldObj = var2;
|
||||
this.trackX = var3;
|
||||
this.trackY = var4;
|
||||
this.trackZ = var5;
|
||||
int var6 = var2.getBlockId(var3, var4, var5);
|
||||
int var7 = var2.getBlockMetadata(var3, var4, var5);
|
||||
if(BlockRail.func_27033_a((BlockRail)Block.blocksList[var6])) {
|
||||
this.field_27084_f = true;
|
||||
var7 &= -9;
|
||||
} else {
|
||||
this.field_27084_f = false;
|
||||
}
|
||||
|
||||
this.func_27083_a(var7);
|
||||
}
|
||||
|
||||
private void func_27083_a(int var1) {
|
||||
this.connectedTracks.clear();
|
||||
if(var1 == 0) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
|
||||
} else if(var1 == 1) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
|
||||
} else if(var1 == 2) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY + 1, this.trackZ));
|
||||
} else if(var1 == 3) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY + 1, this.trackZ));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
|
||||
} else if(var1 == 4) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY + 1, this.trackZ - 1));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
|
||||
} else if(var1 == 5) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY + 1, this.trackZ + 1));
|
||||
} else if(var1 == 6) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
|
||||
} else if(var1 == 7) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ + 1));
|
||||
} else if(var1 == 8) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX - 1, this.trackY, this.trackZ));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
|
||||
} else if(var1 == 9) {
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX + 1, this.trackY, this.trackZ));
|
||||
this.connectedTracks.add(new ChunkPosition(this.trackX, this.trackY, this.trackZ - 1));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void func_591_b() {
|
||||
for(int var1 = 0; var1 < this.connectedTracks.size(); ++var1) {
|
||||
RailLogic var2 = this.getMinecartTrackLogic((ChunkPosition)this.connectedTracks.get(var1));
|
||||
if(var2 != null && var2.isConnectedTo(this)) {
|
||||
this.connectedTracks.set(var1, new ChunkPosition(var2.trackX, var2.trackY, var2.trackZ));
|
||||
} else {
|
||||
this.connectedTracks.remove(var1--);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean isMinecartTrack(int var1, int var2, int var3) {
|
||||
return BlockRail.func_27029_g(this.worldObj, var1, var2, var3) ? true : (BlockRail.func_27029_g(this.worldObj, var1, var2 + 1, var3) ? true : BlockRail.func_27029_g(this.worldObj, var1, var2 - 1, var3));
|
||||
}
|
||||
|
||||
private RailLogic getMinecartTrackLogic(ChunkPosition var1) {
|
||||
return BlockRail.func_27029_g(this.worldObj, var1.x, var1.y, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y, var1.z) : (BlockRail.func_27029_g(this.worldObj, var1.x, var1.y + 1, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y + 1, var1.z) : (BlockRail.func_27029_g(this.worldObj, var1.x, var1.y - 1, var1.z) ? new RailLogic(this.minecartTrack, this.worldObj, var1.x, var1.y - 1, var1.z) : null));
|
||||
}
|
||||
|
||||
private boolean isConnectedTo(RailLogic var1) {
|
||||
for(int var2 = 0; var2 < this.connectedTracks.size(); ++var2) {
|
||||
ChunkPosition var3 = (ChunkPosition)this.connectedTracks.get(var2);
|
||||
if(var3.x == var1.trackX && var3.z == var1.trackZ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean func_599_b(int var1, int var2, int var3) {
|
||||
for(int var4 = 0; var4 < this.connectedTracks.size(); ++var4) {
|
||||
ChunkPosition var5 = (ChunkPosition)this.connectedTracks.get(var4);
|
||||
if(var5.x == var1 && var5.z == var3) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private int getAdjacentTracks() {
|
||||
int var1 = 0;
|
||||
if(this.isMinecartTrack(this.trackX, this.trackY, this.trackZ - 1)) {
|
||||
++var1;
|
||||
}
|
||||
|
||||
if(this.isMinecartTrack(this.trackX, this.trackY, this.trackZ + 1)) {
|
||||
++var1;
|
||||
}
|
||||
|
||||
if(this.isMinecartTrack(this.trackX - 1, this.trackY, this.trackZ)) {
|
||||
++var1;
|
||||
}
|
||||
|
||||
if(this.isMinecartTrack(this.trackX + 1, this.trackY, this.trackZ)) {
|
||||
++var1;
|
||||
}
|
||||
|
||||
return var1;
|
||||
}
|
||||
|
||||
private boolean handleKeyPress(RailLogic var1) {
|
||||
if(this.isConnectedTo(var1)) {
|
||||
return true;
|
||||
} else if(this.connectedTracks.size() == 2) {
|
||||
return false;
|
||||
} else if(this.connectedTracks.size() == 0) {
|
||||
return true;
|
||||
} else {
|
||||
ChunkPosition var2 = (ChunkPosition)this.connectedTracks.get(0);
|
||||
return var1.trackY == this.trackY && var2.y == this.trackY ? true : true;
|
||||
}
|
||||
}
|
||||
|
||||
private void func_598_d(RailLogic var1) {
|
||||
this.connectedTracks.add(new ChunkPosition(var1.trackX, var1.trackY, var1.trackZ));
|
||||
boolean var2 = this.func_599_b(this.trackX, this.trackY, this.trackZ - 1);
|
||||
boolean var3 = this.func_599_b(this.trackX, this.trackY, this.trackZ + 1);
|
||||
boolean var4 = this.func_599_b(this.trackX - 1, this.trackY, this.trackZ);
|
||||
boolean var5 = this.func_599_b(this.trackX + 1, this.trackY, this.trackZ);
|
||||
byte var6 = -1;
|
||||
if(var2 || var3) {
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if(var4 || var5) {
|
||||
var6 = 1;
|
||||
}
|
||||
|
||||
if(!this.field_27084_f) {
|
||||
if(var3 && var5 && !var2 && !var4) {
|
||||
var6 = 6;
|
||||
}
|
||||
|
||||
if(var3 && var4 && !var2 && !var5) {
|
||||
var6 = 7;
|
||||
}
|
||||
|
||||
if(var2 && var4 && !var3 && !var5) {
|
||||
var6 = 8;
|
||||
}
|
||||
|
||||
if(var2 && var5 && !var3 && !var4) {
|
||||
var6 = 9;
|
||||
}
|
||||
}
|
||||
|
||||
if(var6 == 0) {
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1)) {
|
||||
var6 = 4;
|
||||
}
|
||||
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ + 1)) {
|
||||
var6 = 5;
|
||||
}
|
||||
}
|
||||
|
||||
if(var6 == 1) {
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ)) {
|
||||
var6 = 2;
|
||||
}
|
||||
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX - 1, this.trackY + 1, this.trackZ)) {
|
||||
var6 = 3;
|
||||
}
|
||||
}
|
||||
|
||||
if(var6 < 0) {
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
int var7 = var6;
|
||||
if(this.field_27084_f) {
|
||||
var7 = this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) & 8 | var6;
|
||||
}
|
||||
|
||||
this.worldObj.setBlockMetadataWithNotify(this.trackX, this.trackY, this.trackZ, var7);
|
||||
}
|
||||
|
||||
private boolean func_592_c(int var1, int var2, int var3) {
|
||||
RailLogic var4 = this.getMinecartTrackLogic(new ChunkPosition(var1, var2, var3));
|
||||
if(var4 == null) {
|
||||
return false;
|
||||
} else {
|
||||
var4.func_591_b();
|
||||
return var4.handleKeyPress(this);
|
||||
}
|
||||
}
|
||||
|
||||
public void func_596_a(boolean var1, boolean var2) {
|
||||
boolean var3 = this.func_592_c(this.trackX, this.trackY, this.trackZ - 1);
|
||||
boolean var4 = this.func_592_c(this.trackX, this.trackY, this.trackZ + 1);
|
||||
boolean var5 = this.func_592_c(this.trackX - 1, this.trackY, this.trackZ);
|
||||
boolean var6 = this.func_592_c(this.trackX + 1, this.trackY, this.trackZ);
|
||||
byte var7 = -1;
|
||||
if((var3 || var4) && !var5 && !var6) {
|
||||
var7 = 0;
|
||||
}
|
||||
|
||||
if((var5 || var6) && !var3 && !var4) {
|
||||
var7 = 1;
|
||||
}
|
||||
|
||||
if(!this.field_27084_f) {
|
||||
if(var4 && var6 && !var3 && !var5) {
|
||||
var7 = 6;
|
||||
}
|
||||
|
||||
if(var4 && var5 && !var3 && !var6) {
|
||||
var7 = 7;
|
||||
}
|
||||
|
||||
if(var3 && var5 && !var4 && !var6) {
|
||||
var7 = 8;
|
||||
}
|
||||
|
||||
if(var3 && var6 && !var4 && !var5) {
|
||||
var7 = 9;
|
||||
}
|
||||
}
|
||||
|
||||
if(var7 == -1) {
|
||||
if(var3 || var4) {
|
||||
var7 = 0;
|
||||
}
|
||||
|
||||
if(var5 || var6) {
|
||||
var7 = 1;
|
||||
}
|
||||
|
||||
if(!this.field_27084_f) {
|
||||
if(var1) {
|
||||
if(var4 && var6) {
|
||||
var7 = 6;
|
||||
}
|
||||
|
||||
if(var5 && var4) {
|
||||
var7 = 7;
|
||||
}
|
||||
|
||||
if(var6 && var3) {
|
||||
var7 = 9;
|
||||
}
|
||||
|
||||
if(var3 && var5) {
|
||||
var7 = 8;
|
||||
}
|
||||
} else {
|
||||
if(var3 && var5) {
|
||||
var7 = 8;
|
||||
}
|
||||
|
||||
if(var6 && var3) {
|
||||
var7 = 9;
|
||||
}
|
||||
|
||||
if(var5 && var4) {
|
||||
var7 = 7;
|
||||
}
|
||||
|
||||
if(var4 && var6) {
|
||||
var7 = 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(var7 == 0) {
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ - 1)) {
|
||||
var7 = 4;
|
||||
}
|
||||
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX, this.trackY + 1, this.trackZ + 1)) {
|
||||
var7 = 5;
|
||||
}
|
||||
}
|
||||
|
||||
if(var7 == 1) {
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX + 1, this.trackY + 1, this.trackZ)) {
|
||||
var7 = 2;
|
||||
}
|
||||
|
||||
if(BlockRail.func_27029_g(this.worldObj, this.trackX - 1, this.trackY + 1, this.trackZ)) {
|
||||
var7 = 3;
|
||||
}
|
||||
}
|
||||
|
||||
if(var7 < 0) {
|
||||
var7 = 0;
|
||||
}
|
||||
|
||||
this.func_27083_a(var7);
|
||||
int var8 = var7;
|
||||
if(this.field_27084_f) {
|
||||
var8 = this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) & 8 | var7;
|
||||
}
|
||||
|
||||
if(var2 || this.worldObj.getBlockMetadata(this.trackX, this.trackY, this.trackZ) != var8) {
|
||||
this.worldObj.setBlockMetadataWithNotify(this.trackX, this.trackY, this.trackZ, var8);
|
||||
|
||||
for(int var9 = 0; var9 < this.connectedTracks.size(); ++var9) {
|
||||
RailLogic var10 = this.getMinecartTrackLogic((ChunkPosition)this.connectedTracks.get(var9));
|
||||
if(var10 != null) {
|
||||
var10.func_591_b();
|
||||
if(var10.handleKeyPress(this)) {
|
||||
var10.func_598_d(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static int getNAdjacentTracks(RailLogic var0) {
|
||||
return var0.getAdjacentTracks();
|
||||
}
|
||||
}
|
||||
15
src/net/minecraft/block/RedstoneUpdateInfo.java
Normal file
15
src/net/minecraft/block/RedstoneUpdateInfo.java
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
package net.minecraft.block;
|
||||
|
||||
class RedstoneUpdateInfo {
|
||||
int x;
|
||||
int y;
|
||||
int z;
|
||||
long updateTime;
|
||||
|
||||
public RedstoneUpdateInfo(int var1, int var2, int var3, long var4) {
|
||||
this.x = var1;
|
||||
this.y = var2;
|
||||
this.z = var3;
|
||||
this.updateTime = var4;
|
||||
}
|
||||
}
|
||||
110
src/net/minecraft/block/material/Material.java
Normal file
110
src/net/minecraft/block/material/Material.java
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
package net.minecraft.block.material;
|
||||
|
||||
import net.minecraft.item.map.MapColor;
|
||||
|
||||
public class Material {
|
||||
public static final Material air = new MaterialTransparent(MapColor.airColor);
|
||||
public static final Material grass = new Material(MapColor.grassColor);
|
||||
public static final Material ground = new Material(MapColor.dirtColor);
|
||||
public static final Material wood = (new Material(MapColor.woodColor)).setBurning();
|
||||
public static final Material rock = (new Material(MapColor.stoneColor)).func_31058_n();
|
||||
public static final Material iron = (new Material(MapColor.ironColor)).func_31058_n();
|
||||
public static final Material water = (new MaterialLiquid(MapColor.waterColor)).setNoPushMobility();
|
||||
public static final Material lava = (new MaterialLiquid(MapColor.tntColor)).setNoPushMobility();
|
||||
public static final Material leaves = (new Material(MapColor.foliageColor)).setBurning().func_28129_i().setNoPushMobility();
|
||||
public static final Material plants = (new MaterialLogic(MapColor.foliageColor)).setNoPushMobility();
|
||||
public static final Material sponge = new Material(MapColor.clothColor);
|
||||
public static final Material cloth = (new Material(MapColor.clothColor)).setBurning();
|
||||
public static final Material fire = (new MaterialTransparent(MapColor.airColor)).setNoPushMobility();
|
||||
public static final Material sand = new Material(MapColor.sandColor);
|
||||
public static final Material circuits = (new MaterialLogic(MapColor.airColor)).setNoPushMobility();
|
||||
public static final Material glass = (new Material(MapColor.airColor)).func_28129_i();
|
||||
public static final Material tnt = (new Material(MapColor.tntColor)).setBurning().func_28129_i();
|
||||
public static final Material wug = (new Material(MapColor.foliageColor)).setNoPushMobility();
|
||||
public static final Material ice = (new Material(MapColor.iceColor)).func_28129_i();
|
||||
public static final Material snow = (new MaterialLogic(MapColor.snowColor)).func_27089_f().func_28129_i().func_31058_n().setNoPushMobility();
|
||||
public static final Material builtSnow = (new Material(MapColor.snowColor)).func_31058_n();
|
||||
public static final Material cactus = (new Material(MapColor.foliageColor)).func_28129_i().setNoPushMobility();
|
||||
public static final Material clay = new Material(MapColor.clayColor);
|
||||
public static final Material pumpkin = (new Material(MapColor.foliageColor)).setNoPushMobility();
|
||||
public static final Material portal = (new MaterialPortal(MapColor.airColor)).setImmovableMobility();
|
||||
public static final Material cakeMaterial = (new Material(MapColor.airColor)).setNoPushMobility();
|
||||
public static final Material web = (new Material(MapColor.clothColor)).func_31058_n().setNoPushMobility();
|
||||
public static final Material piston = (new Material(MapColor.stoneColor)).setImmovableMobility();
|
||||
private boolean canBurn;
|
||||
private boolean field_27091_A;
|
||||
private boolean isTranslucent;
|
||||
public final MapColor field_28131_A;
|
||||
private boolean field_31061_G = true;
|
||||
private int mobilityFlag;
|
||||
|
||||
public Material(MapColor var1) {
|
||||
this.field_28131_A = var1;
|
||||
}
|
||||
|
||||
public boolean getIsLiquid() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSolid() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean getCanBlockGrass() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean getIsSolid() {
|
||||
return true;
|
||||
}
|
||||
|
||||
private Material func_28129_i() {
|
||||
this.isTranslucent = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
private Material func_31058_n() {
|
||||
this.field_31061_G = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
private Material setBurning() {
|
||||
this.canBurn = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean getBurning() {
|
||||
return this.canBurn;
|
||||
}
|
||||
|
||||
public Material func_27089_f() {
|
||||
this.field_27091_A = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean func_27090_g() {
|
||||
return this.field_27091_A;
|
||||
}
|
||||
|
||||
public boolean getIsOpaque() {
|
||||
return this.isTranslucent ? false : this.getIsSolid();
|
||||
}
|
||||
|
||||
public boolean func_31055_i() {
|
||||
return this.field_31061_G;
|
||||
}
|
||||
|
||||
public int getMaterialMobility() {
|
||||
return this.mobilityFlag;
|
||||
}
|
||||
|
||||
protected Material setNoPushMobility() {
|
||||
this.mobilityFlag = 1;
|
||||
return this;
|
||||
}
|
||||
|
||||
protected Material setImmovableMobility() {
|
||||
this.mobilityFlag = 2;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
23
src/net/minecraft/block/material/MaterialLiquid.java
Normal file
23
src/net/minecraft/block/material/MaterialLiquid.java
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package net.minecraft.block.material;
|
||||
|
||||
import net.minecraft.item.map.MapColor;
|
||||
|
||||
public class MaterialLiquid extends Material {
|
||||
public MaterialLiquid(MapColor var1) {
|
||||
super(var1);
|
||||
this.func_27089_f();
|
||||
this.setNoPushMobility();
|
||||
}
|
||||
|
||||
public boolean getIsLiquid() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean getIsSolid() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSolid() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
21
src/net/minecraft/block/material/MaterialLogic.java
Normal file
21
src/net/minecraft/block/material/MaterialLogic.java
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
package net.minecraft.block.material;
|
||||
|
||||
import net.minecraft.item.map.MapColor;
|
||||
|
||||
public class MaterialLogic extends Material {
|
||||
public MaterialLogic(MapColor var1) {
|
||||
super(var1);
|
||||
}
|
||||
|
||||
public boolean isSolid() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean getCanBlockGrass() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean getIsSolid() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
21
src/net/minecraft/block/material/MaterialPortal.java
Normal file
21
src/net/minecraft/block/material/MaterialPortal.java
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
package net.minecraft.block.material;
|
||||
|
||||
import net.minecraft.item.map.MapColor;
|
||||
|
||||
public class MaterialPortal extends Material {
|
||||
public MaterialPortal(MapColor var1) {
|
||||
super(var1);
|
||||
}
|
||||
|
||||
public boolean isSolid() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean getCanBlockGrass() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean getIsSolid() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
22
src/net/minecraft/block/material/MaterialTransparent.java
Normal file
22
src/net/minecraft/block/material/MaterialTransparent.java
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
package net.minecraft.block.material;
|
||||
|
||||
import net.minecraft.item.map.MapColor;
|
||||
|
||||
public class MaterialTransparent extends Material {
|
||||
public MaterialTransparent(MapColor var1) {
|
||||
super(var1);
|
||||
this.func_27089_f();
|
||||
}
|
||||
|
||||
public boolean isSolid() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean getCanBlockGrass() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean getIsSolid() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
25
src/net/minecraft/block/stepsound/StepSound.java
Normal file
25
src/net/minecraft/block/stepsound/StepSound.java
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
package net.minecraft.block.stepsound;
|
||||
|
||||
public class StepSound {
|
||||
public final String field_1029_a;
|
||||
public final float field_1028_b;
|
||||
public final float field_1030_c;
|
||||
|
||||
public StepSound(String var1, float var2, float var3) {
|
||||
this.field_1029_a = var1;
|
||||
this.field_1028_b = var2;
|
||||
this.field_1030_c = var3;
|
||||
}
|
||||
|
||||
public float getVolume() {
|
||||
return this.field_1028_b;
|
||||
}
|
||||
|
||||
public float getPitch() {
|
||||
return this.field_1030_c;
|
||||
}
|
||||
|
||||
public String func_737_c() {
|
||||
return "step." + this.field_1029_a;
|
||||
}
|
||||
}
|
||||
7
src/net/minecraft/block/stepsound/StepSoundSand.java
Normal file
7
src/net/minecraft/block/stepsound/StepSoundSand.java
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
package net.minecraft.block.stepsound;
|
||||
|
||||
public final class StepSoundSand extends StepSound {
|
||||
public StepSoundSand(String var1, float var2, float var3) {
|
||||
super(var1, var2, var3);
|
||||
}
|
||||
}
|
||||
7
src/net/minecraft/block/stepsound/StepSoundStone.java
Normal file
7
src/net/minecraft/block/stepsound/StepSoundStone.java
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
package net.minecraft.block.stepsound;
|
||||
|
||||
public final class StepSoundStone extends StepSound {
|
||||
public StepSoundStone(String var1, float var2, float var3) {
|
||||
super(var1, var2, var3);
|
||||
}
|
||||
}
|
||||
106
src/net/minecraft/block/tile/TileEntity.java
Normal file
106
src/net/minecraft/block/tile/TileEntity.java
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
package net.minecraft.block.tile;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.packets.Packet;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntity {
|
||||
private static Map nameToClassMap = new HashMap();
|
||||
private static Map classToNameMap = new HashMap();
|
||||
public World worldObj;
|
||||
public int xCoord;
|
||||
public int yCoord;
|
||||
public int zCoord;
|
||||
protected boolean tileEntityInvalid;
|
||||
|
||||
private static void addMapping(Class var0, String var1) {
|
||||
if(classToNameMap.containsKey(var1)) {
|
||||
throw new IllegalArgumentException("Duplicate id: " + var1);
|
||||
} else {
|
||||
nameToClassMap.put(var1, var0);
|
||||
classToNameMap.put(var0, var1);
|
||||
}
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound var1) {
|
||||
this.xCoord = var1.getInteger("x");
|
||||
this.yCoord = var1.getInteger("y");
|
||||
this.zCoord = var1.getInteger("z");
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound var1) {
|
||||
String var2 = (String)classToNameMap.get(this.getClass());
|
||||
if(var2 == null) {
|
||||
throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!");
|
||||
} else {
|
||||
var1.setString("id", var2);
|
||||
var1.setInteger("x", this.xCoord);
|
||||
var1.setInteger("y", this.yCoord);
|
||||
var1.setInteger("z", this.zCoord);
|
||||
}
|
||||
}
|
||||
|
||||
public void updateEntity() {
|
||||
}
|
||||
|
||||
public static TileEntity createAndLoadEntity(NBTTagCompound var0) {
|
||||
TileEntity var1 = null;
|
||||
|
||||
try {
|
||||
Class var2 = (Class)nameToClassMap.get(var0.getString("id"));
|
||||
if(var2 != null) {
|
||||
var1 = (TileEntity)var2.newInstance();
|
||||
}
|
||||
} catch (Exception var3) {
|
||||
var3.printStackTrace();
|
||||
}
|
||||
|
||||
if(var1 != null) {
|
||||
var1.readFromNBT(var0);
|
||||
} else {
|
||||
System.out.println("Skipping TileEntity with id " + var0.getString("id"));
|
||||
}
|
||||
|
||||
return var1;
|
||||
}
|
||||
|
||||
public int func_31005_e() {
|
||||
return this.worldObj.getBlockMetadata(this.xCoord, this.yCoord, this.zCoord);
|
||||
}
|
||||
|
||||
public void onInventoryChanged() {
|
||||
if(this.worldObj != null) {
|
||||
this.worldObj.updateTileEntityChunkAndDoNothing(this.xCoord, this.yCoord, this.zCoord, this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Packet getDescriptionPacket() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isInvalid() {
|
||||
return this.tileEntityInvalid;
|
||||
}
|
||||
|
||||
public void invalidate() {
|
||||
this.tileEntityInvalid = true;
|
||||
}
|
||||
|
||||
public void validate() {
|
||||
this.tileEntityInvalid = false;
|
||||
}
|
||||
|
||||
static {
|
||||
addMapping(TileEntityFurnace.class, "Furnace");
|
||||
addMapping(TileEntityChest.class, "Chest");
|
||||
addMapping(TileEntityRecordPlayer.class, "RecordPlayer");
|
||||
addMapping(TileEntityDispenser.class, "Trap");
|
||||
addMapping(TileEntitySign.class, "Sign");
|
||||
addMapping(TileEntityMobSpawner.class, "MobSpawner");
|
||||
addMapping(TileEntityNote.class, "Music");
|
||||
addMapping(TileEntityPiston.class, "Piston");
|
||||
}
|
||||
}
|
||||
93
src/net/minecraft/block/tile/TileEntityChest.java
Normal file
93
src/net/minecraft/block/tile/TileEntityChest.java
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
package net.minecraft.block.tile;
|
||||
|
||||
import net.minecraft.container.inventory.IInventory;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
|
||||
public class TileEntityChest extends TileEntity implements IInventory {
|
||||
private ItemStack[] chestContents = new ItemStack[36];
|
||||
|
||||
public int getSizeInventory() {
|
||||
return 27;
|
||||
}
|
||||
|
||||
public ItemStack getStackInSlot(int var1) {
|
||||
return this.chestContents[var1];
|
||||
}
|
||||
|
||||
public ItemStack decrStackSize(int var1, int var2) {
|
||||
if(this.chestContents[var1] != null) {
|
||||
ItemStack var3;
|
||||
if(this.chestContents[var1].stackSize <= var2) {
|
||||
var3 = this.chestContents[var1];
|
||||
this.chestContents[var1] = null;
|
||||
this.onInventoryChanged();
|
||||
return var3;
|
||||
} else {
|
||||
var3 = this.chestContents[var1].splitStack(var2);
|
||||
if(this.chestContents[var1].stackSize == 0) {
|
||||
this.chestContents[var1] = null;
|
||||
}
|
||||
|
||||
this.onInventoryChanged();
|
||||
return var3;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void setInventorySlotContents(int var1, ItemStack var2) {
|
||||
this.chestContents[var1] = var2;
|
||||
if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
|
||||
var2.stackSize = this.getInventoryStackLimit();
|
||||
}
|
||||
|
||||
this.onInventoryChanged();
|
||||
}
|
||||
|
||||
public String getInvName() {
|
||||
return "Chest";
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound var1) {
|
||||
super.readFromNBT(var1);
|
||||
NBTTagList var2 = var1.getTagList("Items");
|
||||
this.chestContents = new ItemStack[this.getSizeInventory()];
|
||||
|
||||
for(int var3 = 0; var3 < var2.tagCount(); ++var3) {
|
||||
NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
|
||||
int var5 = var4.getByte("Slot") & 255;
|
||||
if(var5 >= 0 && var5 < this.chestContents.length) {
|
||||
this.chestContents[var5] = new ItemStack(var4);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound var1) {
|
||||
super.writeToNBT(var1);
|
||||
NBTTagList var2 = new NBTTagList();
|
||||
|
||||
for(int var3 = 0; var3 < this.chestContents.length; ++var3) {
|
||||
if(this.chestContents[var3] != null) {
|
||||
NBTTagCompound var4 = new NBTTagCompound();
|
||||
var4.setByte("Slot", (byte)var3);
|
||||
this.chestContents[var3].writeToNBT(var4);
|
||||
var2.setTag(var4);
|
||||
}
|
||||
}
|
||||
|
||||
var1.setTag("Items", var2);
|
||||
}
|
||||
|
||||
public int getInventoryStackLimit() {
|
||||
return 64;
|
||||
}
|
||||
|
||||
public boolean canInteractWith(EntityPlayer var1) {
|
||||
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
|
||||
}
|
||||
}
|
||||
112
src/net/minecraft/block/tile/TileEntityDispenser.java
Normal file
112
src/net/minecraft/block/tile/TileEntityDispenser.java
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
package net.minecraft.block.tile;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.container.inventory.IInventory;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
|
||||
public class TileEntityDispenser extends TileEntity implements IInventory {
|
||||
private ItemStack[] dispenserContents = new ItemStack[9];
|
||||
private Random dispenserRandom = new Random();
|
||||
|
||||
public int getSizeInventory() {
|
||||
return 9;
|
||||
}
|
||||
|
||||
public ItemStack getStackInSlot(int var1) {
|
||||
return this.dispenserContents[var1];
|
||||
}
|
||||
|
||||
public ItemStack decrStackSize(int var1, int var2) {
|
||||
if(this.dispenserContents[var1] != null) {
|
||||
ItemStack var3;
|
||||
if(this.dispenserContents[var1].stackSize <= var2) {
|
||||
var3 = this.dispenserContents[var1];
|
||||
this.dispenserContents[var1] = null;
|
||||
this.onInventoryChanged();
|
||||
return var3;
|
||||
} else {
|
||||
var3 = this.dispenserContents[var1].splitStack(var2);
|
||||
if(this.dispenserContents[var1].stackSize == 0) {
|
||||
this.dispenserContents[var1] = null;
|
||||
}
|
||||
|
||||
this.onInventoryChanged();
|
||||
return var3;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack getRandomStackFromInventory() {
|
||||
int var1 = -1;
|
||||
int var2 = 1;
|
||||
|
||||
for(int var3 = 0; var3 < this.dispenserContents.length; ++var3) {
|
||||
if(this.dispenserContents[var3] != null && this.dispenserRandom.nextInt(var2++) == 0) {
|
||||
var1 = var3;
|
||||
}
|
||||
}
|
||||
|
||||
if(var1 >= 0) {
|
||||
return this.decrStackSize(var1, 1);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void setInventorySlotContents(int var1, ItemStack var2) {
|
||||
this.dispenserContents[var1] = var2;
|
||||
if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
|
||||
var2.stackSize = this.getInventoryStackLimit();
|
||||
}
|
||||
|
||||
this.onInventoryChanged();
|
||||
}
|
||||
|
||||
public String getInvName() {
|
||||
return "Trap";
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound var1) {
|
||||
super.readFromNBT(var1);
|
||||
NBTTagList var2 = var1.getTagList("Items");
|
||||
this.dispenserContents = new ItemStack[this.getSizeInventory()];
|
||||
|
||||
for(int var3 = 0; var3 < var2.tagCount(); ++var3) {
|
||||
NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
|
||||
int var5 = var4.getByte("Slot") & 255;
|
||||
if(var5 >= 0 && var5 < this.dispenserContents.length) {
|
||||
this.dispenserContents[var5] = new ItemStack(var4);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound var1) {
|
||||
super.writeToNBT(var1);
|
||||
NBTTagList var2 = new NBTTagList();
|
||||
|
||||
for(int var3 = 0; var3 < this.dispenserContents.length; ++var3) {
|
||||
if(this.dispenserContents[var3] != null) {
|
||||
NBTTagCompound var4 = new NBTTagCompound();
|
||||
var4.setByte("Slot", (byte)var3);
|
||||
this.dispenserContents[var3].writeToNBT(var4);
|
||||
var2.setTag(var4);
|
||||
}
|
||||
}
|
||||
|
||||
var1.setTag("Items", var2);
|
||||
}
|
||||
|
||||
public int getInventoryStackLimit() {
|
||||
return 64;
|
||||
}
|
||||
|
||||
public boolean canInteractWith(EntityPlayer var1) {
|
||||
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
|
||||
}
|
||||
}
|
||||
186
src/net/minecraft/block/tile/TileEntityFurnace.java
Normal file
186
src/net/minecraft/block/tile/TileEntityFurnace.java
Normal file
|
|
@ -0,0 +1,186 @@
|
|||
package net.minecraft.block.tile;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockFurnace;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.container.inventory.IInventory;
|
||||
import net.minecraft.entity.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||
import net.minecraft.item.crafting.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
|
||||
public class TileEntityFurnace extends TileEntity implements IInventory {
|
||||
private ItemStack[] furnaceItemStacks = new ItemStack[3];
|
||||
public int furnaceBurnTime = 0;
|
||||
public int currentItemBurnTime = 0;
|
||||
public int furnaceCookTime = 0;
|
||||
|
||||
public int getSizeInventory() {
|
||||
return this.furnaceItemStacks.length;
|
||||
}
|
||||
|
||||
public ItemStack getStackInSlot(int var1) {
|
||||
return this.furnaceItemStacks[var1];
|
||||
}
|
||||
|
||||
public ItemStack decrStackSize(int var1, int var2) {
|
||||
if(this.furnaceItemStacks[var1] != null) {
|
||||
ItemStack var3;
|
||||
if(this.furnaceItemStacks[var1].stackSize <= var2) {
|
||||
var3 = this.furnaceItemStacks[var1];
|
||||
this.furnaceItemStacks[var1] = null;
|
||||
return var3;
|
||||
} else {
|
||||
var3 = this.furnaceItemStacks[var1].splitStack(var2);
|
||||
if(this.furnaceItemStacks[var1].stackSize == 0) {
|
||||
this.furnaceItemStacks[var1] = null;
|
||||
}
|
||||
|
||||
return var3;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void setInventorySlotContents(int var1, ItemStack var2) {
|
||||
this.furnaceItemStacks[var1] = var2;
|
||||
if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) {
|
||||
var2.stackSize = this.getInventoryStackLimit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getInvName() {
|
||||
return "Furnace";
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound var1) {
|
||||
super.readFromNBT(var1);
|
||||
NBTTagList var2 = var1.getTagList("Items");
|
||||
this.furnaceItemStacks = new ItemStack[this.getSizeInventory()];
|
||||
|
||||
for(int var3 = 0; var3 < var2.tagCount(); ++var3) {
|
||||
NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);
|
||||
byte var5 = var4.getByte("Slot");
|
||||
if(var5 >= 0 && var5 < this.furnaceItemStacks.length) {
|
||||
this.furnaceItemStacks[var5] = new ItemStack(var4);
|
||||
}
|
||||
}
|
||||
|
||||
this.furnaceBurnTime = var1.getShort("BurnTime");
|
||||
this.furnaceCookTime = var1.getShort("CookTime");
|
||||
this.currentItemBurnTime = this.getItemBurnTime(this.furnaceItemStacks[1]);
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound var1) {
|
||||
super.writeToNBT(var1);
|
||||
var1.setShort("BurnTime", (short)this.furnaceBurnTime);
|
||||
var1.setShort("CookTime", (short)this.furnaceCookTime);
|
||||
NBTTagList var2 = new NBTTagList();
|
||||
|
||||
for(int var3 = 0; var3 < this.furnaceItemStacks.length; ++var3) {
|
||||
if(this.furnaceItemStacks[var3] != null) {
|
||||
NBTTagCompound var4 = new NBTTagCompound();
|
||||
var4.setByte("Slot", (byte)var3);
|
||||
this.furnaceItemStacks[var3].writeToNBT(var4);
|
||||
var2.setTag(var4);
|
||||
}
|
||||
}
|
||||
|
||||
var1.setTag("Items", var2);
|
||||
}
|
||||
|
||||
public int getInventoryStackLimit() {
|
||||
return 64;
|
||||
}
|
||||
|
||||
public boolean isBurning() {
|
||||
return this.furnaceBurnTime > 0;
|
||||
}
|
||||
|
||||
public void updateEntity() {
|
||||
boolean var1 = this.furnaceBurnTime > 0;
|
||||
boolean var2 = false;
|
||||
if(this.furnaceBurnTime > 0) {
|
||||
--this.furnaceBurnTime;
|
||||
}
|
||||
|
||||
if(!this.worldObj.singleplayerWorld) {
|
||||
if(this.furnaceBurnTime == 0 && this.canSmelt()) {
|
||||
this.currentItemBurnTime = this.furnaceBurnTime = this.getItemBurnTime(this.furnaceItemStacks[1]);
|
||||
if(this.furnaceBurnTime > 0) {
|
||||
var2 = true;
|
||||
if(this.furnaceItemStacks[1] != null) {
|
||||
--this.furnaceItemStacks[1].stackSize;
|
||||
if(this.furnaceItemStacks[1].stackSize == 0) {
|
||||
this.furnaceItemStacks[1] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(this.isBurning() && this.canSmelt()) {
|
||||
++this.furnaceCookTime;
|
||||
if(this.furnaceCookTime == 200) {
|
||||
this.furnaceCookTime = 0;
|
||||
this.smeltItem();
|
||||
var2 = true;
|
||||
}
|
||||
} else {
|
||||
this.furnaceCookTime = 0;
|
||||
}
|
||||
|
||||
if(var1 != this.furnaceBurnTime > 0) {
|
||||
var2 = true;
|
||||
BlockFurnace.updateFurnaceBlockState(this.furnaceBurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
|
||||
}
|
||||
}
|
||||
|
||||
if(var2) {
|
||||
this.onInventoryChanged();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean canSmelt() {
|
||||
if(this.furnaceItemStacks[0] == null) {
|
||||
return false;
|
||||
} else {
|
||||
ItemStack var1 = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0].getItem().shiftedIndex);
|
||||
return var1 == null ? false : (this.furnaceItemStacks[2] == null ? true : (!this.furnaceItemStacks[2].isItemEqual(var1) ? false : (this.furnaceItemStacks[2].stackSize < this.getInventoryStackLimit() && this.furnaceItemStacks[2].stackSize < this.furnaceItemStacks[2].getMaxStackSize() ? true : this.furnaceItemStacks[2].stackSize < var1.getMaxStackSize())));
|
||||
}
|
||||
}
|
||||
|
||||
public void smeltItem() {
|
||||
if(this.canSmelt()) {
|
||||
ItemStack var1 = FurnaceRecipes.smelting().getSmeltingResult(this.furnaceItemStacks[0].getItem().shiftedIndex);
|
||||
if(this.furnaceItemStacks[2] == null) {
|
||||
this.furnaceItemStacks[2] = var1.copy();
|
||||
} else if(this.furnaceItemStacks[2].itemID == var1.itemID) {
|
||||
++this.furnaceItemStacks[2].stackSize;
|
||||
}
|
||||
|
||||
--this.furnaceItemStacks[0].stackSize;
|
||||
if(this.furnaceItemStacks[0].stackSize <= 0) {
|
||||
this.furnaceItemStacks[0] = null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private int getItemBurnTime(ItemStack var1) {
|
||||
if(var1 == null) {
|
||||
return 0;
|
||||
} else {
|
||||
int var2 = var1.getItem().shiftedIndex;
|
||||
return var2 < 256 && Block.blocksList[var2].blockMaterial == Material.wood ? 300 : (var2 == Item.stick.shiftedIndex ? 100 : (var2 == Item.coal.shiftedIndex ? 1600 : (var2 == Item.bucketLava.shiftedIndex ? 20000 : (var2 == Block.sapling.blockID ? 100 : 0))));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canInteractWith(EntityPlayer var1) {
|
||||
return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : var1.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
|
||||
}
|
||||
}
|
||||
105
src/net/minecraft/block/tile/TileEntityMobSpawner.java
Normal file
105
src/net/minecraft/block/tile/TileEntityMobSpawner.java
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
package net.minecraft.block.tile;
|
||||
|
||||
import net.minecraft.entity.EntityList;
|
||||
import net.minecraft.entity.EntityLiving;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public class TileEntityMobSpawner extends TileEntity {
|
||||
public int delay = -1;
|
||||
private String mobID = "Pig";
|
||||
public double yaw;
|
||||
public double yaw2 = 0.0D;
|
||||
|
||||
public TileEntityMobSpawner() {
|
||||
this.delay = 20;
|
||||
}
|
||||
|
||||
public void setMobID(String var1) {
|
||||
this.mobID = var1;
|
||||
}
|
||||
|
||||
public boolean anyPlayerInRange() {
|
||||
return this.worldObj.getClosestPlayer((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D, 16.0D) != null;
|
||||
}
|
||||
|
||||
public void updateEntity() {
|
||||
this.yaw2 = this.yaw;
|
||||
if(this.anyPlayerInRange()) {
|
||||
double var1 = (double)((float)this.xCoord + this.worldObj.rand.nextFloat());
|
||||
double var3 = (double)((float)this.yCoord + this.worldObj.rand.nextFloat());
|
||||
double var5 = (double)((float)this.zCoord + this.worldObj.rand.nextFloat());
|
||||
this.worldObj.spawnParticle("smoke", var1, var3, var5, 0.0D, 0.0D, 0.0D);
|
||||
this.worldObj.spawnParticle("flame", var1, var3, var5, 0.0D, 0.0D, 0.0D);
|
||||
|
||||
for(this.yaw += (double)(1000.0F / ((float)this.delay + 200.0F)); this.yaw > 360.0D; this.yaw2 -= 360.0D) {
|
||||
this.yaw -= 360.0D;
|
||||
}
|
||||
|
||||
if(!this.worldObj.singleplayerWorld) {
|
||||
if(this.delay == -1) {
|
||||
this.updateDelay();
|
||||
}
|
||||
|
||||
if(this.delay > 0) {
|
||||
--this.delay;
|
||||
return;
|
||||
}
|
||||
|
||||
byte var7 = 4;
|
||||
|
||||
for(int var8 = 0; var8 < var7; ++var8) {
|
||||
EntityLiving var9 = (EntityLiving)((EntityLiving)EntityList.createEntityInWorld(this.mobID, this.worldObj));
|
||||
if(var9 == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int var10 = this.worldObj.getEntitiesWithinAABB(var9.getClass(), AxisAlignedBB.getBoundingBoxFromPool((double)this.xCoord, (double)this.yCoord, (double)this.zCoord, (double)(this.xCoord + 1), (double)(this.yCoord + 1), (double)(this.zCoord + 1)).expand(8.0D, 4.0D, 8.0D)).size();
|
||||
if(var10 >= 6) {
|
||||
this.updateDelay();
|
||||
return;
|
||||
}
|
||||
|
||||
if(var9 != null) {
|
||||
double var11 = (double)this.xCoord + (this.worldObj.rand.nextDouble() - this.worldObj.rand.nextDouble()) * 4.0D;
|
||||
double var13 = (double)(this.yCoord + this.worldObj.rand.nextInt(3) - 1);
|
||||
double var15 = (double)this.zCoord + (this.worldObj.rand.nextDouble() - this.worldObj.rand.nextDouble()) * 4.0D;
|
||||
var9.setLocationAndAngles(var11, var13, var15, this.worldObj.rand.nextFloat() * 360.0F, 0.0F);
|
||||
if(var9.getCanSpawnHere()) {
|
||||
this.worldObj.entityJoinedWorld(var9);
|
||||
|
||||
for(int var17 = 0; var17 < 20; ++var17) {
|
||||
var1 = (double)this.xCoord + 0.5D + ((double)this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
|
||||
var3 = (double)this.yCoord + 0.5D + ((double)this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
|
||||
var5 = (double)this.zCoord + 0.5D + ((double)this.worldObj.rand.nextFloat() - 0.5D) * 2.0D;
|
||||
this.worldObj.spawnParticle("smoke", var1, var3, var5, 0.0D, 0.0D, 0.0D);
|
||||
this.worldObj.spawnParticle("flame", var1, var3, var5, 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
|
||||
var9.spawnExplosionParticle();
|
||||
this.updateDelay();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
super.updateEntity();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateDelay() {
|
||||
this.delay = 200 + this.worldObj.rand.nextInt(600);
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound var1) {
|
||||
super.readFromNBT(var1);
|
||||
this.mobID = var1.getString("EntityId");
|
||||
this.delay = var1.getShort("Delay");
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound var1) {
|
||||
super.writeToNBT(var1);
|
||||
var1.setString("EntityId", this.mobID);
|
||||
var1.setShort("Delay", (short)this.delay);
|
||||
}
|
||||
}
|
||||
57
src/net/minecraft/block/tile/TileEntityNote.java
Normal file
57
src/net/minecraft/block/tile/TileEntityNote.java
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
package net.minecraft.block.tile;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityNote extends TileEntity {
|
||||
public byte note = 0;
|
||||
public boolean previousRedstoneState = false;
|
||||
|
||||
public void writeToNBT(NBTTagCompound var1) {
|
||||
super.writeToNBT(var1);
|
||||
var1.setByte("note", this.note);
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound var1) {
|
||||
super.readFromNBT(var1);
|
||||
this.note = var1.getByte("note");
|
||||
if(this.note < 0) {
|
||||
this.note = 0;
|
||||
}
|
||||
|
||||
if(this.note > 24) {
|
||||
this.note = 24;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void changePitch() {
|
||||
this.note = (byte)((this.note + 1) % 25);
|
||||
this.onInventoryChanged();
|
||||
}
|
||||
|
||||
public void triggerNote(World var1, int var2, int var3, int var4) {
|
||||
if(var1.getBlockMaterial(var2, var3 + 1, var4) == Material.air) {
|
||||
Material var5 = var1.getBlockMaterial(var2, var3 - 1, var4);
|
||||
byte var6 = 0;
|
||||
if(var5 == Material.rock) {
|
||||
var6 = 1;
|
||||
}
|
||||
|
||||
if(var5 == Material.sand) {
|
||||
var6 = 2;
|
||||
}
|
||||
|
||||
if(var5 == Material.glass) {
|
||||
var6 = 3;
|
||||
}
|
||||
|
||||
if(var5 == Material.wood) {
|
||||
var6 = 4;
|
||||
}
|
||||
|
||||
var1.playNoteAt(var2, var3, var4, var6, this.note);
|
||||
}
|
||||
}
|
||||
}
|
||||
134
src/net/minecraft/block/tile/TileEntityPiston.java
Normal file
134
src/net/minecraft/block/tile/TileEntityPiston.java
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
package net.minecraft.block.tile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.math.AxisAlignedBB;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.PistonBlockTextures;
|
||||
|
||||
public class TileEntityPiston extends TileEntity {
|
||||
private int storedBlockID;
|
||||
private int storedMetadata;
|
||||
private int storedOrientation;
|
||||
private boolean isExtending;
|
||||
private boolean field_31018_j;
|
||||
private float progress;
|
||||
private float lastProgress;
|
||||
private static List field_31013_m = new ArrayList();
|
||||
|
||||
public TileEntityPiston() {
|
||||
}
|
||||
|
||||
public TileEntityPiston(int var1, int var2, int var3, boolean var4, boolean var5) {
|
||||
this.storedBlockID = var1;
|
||||
this.storedMetadata = var2;
|
||||
this.storedOrientation = var3;
|
||||
this.isExtending = var4;
|
||||
this.field_31018_j = var5;
|
||||
}
|
||||
|
||||
public int getStoredBlockID() {
|
||||
return this.storedBlockID;
|
||||
}
|
||||
|
||||
public int func_31005_e() {
|
||||
return this.storedMetadata;
|
||||
}
|
||||
|
||||
public boolean func_31010_c() {
|
||||
return this.isExtending;
|
||||
}
|
||||
|
||||
public int func_31008_d() {
|
||||
return this.storedOrientation;
|
||||
}
|
||||
|
||||
public float func_31007_a(float var1) {
|
||||
if(var1 > 1.0F) {
|
||||
var1 = 1.0F;
|
||||
}
|
||||
|
||||
return this.lastProgress + (this.progress - this.lastProgress) * var1;
|
||||
}
|
||||
|
||||
private void func_31009_a(float var1, float var2) {
|
||||
if(!this.isExtending) {
|
||||
--var1;
|
||||
} else {
|
||||
var1 = 1.0F - var1;
|
||||
}
|
||||
|
||||
AxisAlignedBB var3 = Block.pistonMoving.func_31032_a(this.worldObj, this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, var1, this.storedOrientation);
|
||||
if(var3 != null) {
|
||||
List var4 = this.worldObj.getEntitiesWithinAABBExcludingEntity((Entity)null, var3);
|
||||
if(!var4.isEmpty()) {
|
||||
field_31013_m.addAll(var4);
|
||||
Iterator var5 = field_31013_m.iterator();
|
||||
|
||||
while(var5.hasNext()) {
|
||||
Entity var6 = (Entity)var5.next();
|
||||
var6.moveEntity((double)(var2 * (float)PistonBlockTextures.field_31051_b[this.storedOrientation]), (double)(var2 * (float)PistonBlockTextures.field_31054_c[this.storedOrientation]), (double)(var2 * (float)PistonBlockTextures.field_31053_d[this.storedOrientation]));
|
||||
}
|
||||
|
||||
field_31013_m.clear();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void clearPistonTileEntity() {
|
||||
if(this.lastProgress < 1.0F) {
|
||||
this.lastProgress = this.progress = 1.0F;
|
||||
this.worldObj.removeBlockTileEntity(this.xCoord, this.yCoord, this.zCoord);
|
||||
this.invalidate();
|
||||
if(this.worldObj.getBlockId(this.xCoord, this.yCoord, this.zCoord) == Block.pistonMoving.blockID) {
|
||||
this.worldObj.setBlockAndMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, this.storedMetadata);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateEntity() {
|
||||
this.lastProgress = this.progress;
|
||||
if(this.lastProgress >= 1.0F) {
|
||||
this.func_31009_a(1.0F, 0.25F);
|
||||
this.worldObj.removeBlockTileEntity(this.xCoord, this.yCoord, this.zCoord);
|
||||
this.invalidate();
|
||||
if(this.worldObj.getBlockId(this.xCoord, this.yCoord, this.zCoord) == Block.pistonMoving.blockID) {
|
||||
this.worldObj.setBlockAndMetadataWithNotify(this.xCoord, this.yCoord, this.zCoord, this.storedBlockID, this.storedMetadata);
|
||||
}
|
||||
|
||||
} else {
|
||||
this.progress += 0.5F;
|
||||
if(this.progress >= 1.0F) {
|
||||
this.progress = 1.0F;
|
||||
}
|
||||
|
||||
if(this.isExtending) {
|
||||
this.func_31009_a(this.progress, this.progress - this.lastProgress + 1.0F / 16.0F);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound var1) {
|
||||
super.readFromNBT(var1);
|
||||
this.storedBlockID = var1.getInteger("blockId");
|
||||
this.storedMetadata = var1.getInteger("blockData");
|
||||
this.storedOrientation = var1.getInteger("facing");
|
||||
this.lastProgress = this.progress = var1.getFloat("progress");
|
||||
this.isExtending = var1.getBoolean("extending");
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound var1) {
|
||||
super.writeToNBT(var1);
|
||||
var1.setInteger("blockId", this.storedBlockID);
|
||||
var1.setInteger("blockData", this.storedMetadata);
|
||||
var1.setInteger("facing", this.storedOrientation);
|
||||
var1.setFloat("progress", this.lastProgress);
|
||||
var1.setBoolean("extending", this.isExtending);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue