Init commit. b1.7.3 vanilla server

This commit is contained in:
Dereku 2026-01-30 02:20:46 +07:00
commit ee3d133a31
451 changed files with 50531 additions and 0 deletions

224
conf/exceptions.exc Normal file
View 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

File diff suppressed because it is too large Load diff

4
res/META-INF/MANIFEST.MF Normal file
View 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
View 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
View 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
View 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
View 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

View 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;
}
}

View 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");
}
}

View 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));
}
}

View 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();
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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);
}
}
}
}

View 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);
}
}

View 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;
}
}

View 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();
}
}

View 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;
}
}

View 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;
}
}

View 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();
}

View 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;
}
}

View 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;
}
}

View 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());
}
}
}

View 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);
}
}

View 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);
}
}

View 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;
}
}

View 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);
}
}

View 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;
}
}

View 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());
}
}
}
}

View 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;
}
}

View 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());
}
}
}

View 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);
}
}
}

View 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);
}
}

View 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;
}
}

View 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;
}
}

View 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);
}
}

View 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;
}
}

View 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;
}
}

View 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();
}
}

View 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;
}
}

View 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);
}
}

View 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;
}
}

View 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;
}
}

View 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);
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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);
}
}

View 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);
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}
}

View 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;
}
}

View 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;
}
}

View 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();
}
}
}

View 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;
}
}

View 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);
}
}

View 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;
}
}

View 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);
}
}
}
}

View 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;
}
}

View 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;
}
}

View 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];
}
}
}

View 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;
}
}

View 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;
}
}
}

View 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);
}
}

View 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;
}
}

View 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);
}
}

View 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);
}
}
}

View 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);
}
}
}

View 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;
}
}

View 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));
}
}
}
}
}

View 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);
}
}
}

View 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();
}
}

View 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;
}
}

View 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;
}
}

View 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);
}
}

View 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;
}
}

View 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);
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}
}

View 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();
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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);
}
}

View 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);
}
}

View 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");
}
}

View 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;
}
}

View 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;
}
}

View 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;
}
}

View 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);
}
}

View 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);
}
}
}

View 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