mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-14 09:05:17 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83248d65c2 | ||
|
|
dda9f474af | ||
|
|
b7e940da22 | ||
|
|
df3449534f | ||
|
|
906cb8ee39 | ||
|
|
d541e492c4 | ||
|
|
d7d0f241ff | ||
|
|
c8fca39895 | ||
|
|
dd1eb6924d | ||
|
|
3f8d830899 | ||
|
|
a4475c9e9a | ||
|
|
90a4744130 | ||
|
|
f4eec04eba | ||
|
|
dbb5a37449 | ||
|
|
348a6fe03c | ||
|
|
6e1442e8e6 | ||
|
|
b91eb1ceac | ||
|
|
a38c8bd427 | ||
|
|
2936697302 | ||
|
|
52de732b8e | ||
|
|
c2f165f211 | ||
|
|
4c6e03e4ad | ||
|
|
c84b8740b4 | ||
|
|
8c9762fd9a | ||
|
|
d8a14ee928 | ||
|
|
8bb73671ba | ||
|
|
46a9ba178f | ||
|
|
5c60c2246c | ||
|
|
e79b5d1937 | ||
|
|
9bf4f67d9d |
No files matched your search
@@ -0,0 +1 @@
|
||||
asdfsnb -a -v "svn"+
|
||||
Binary file not shown.
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,228 @@
|
||||
net/minecraft/client/Minecraft.func_6257_q()V=org/lwjgl/LWJGLException
|
||||
net/minecraft/client/Minecraft.func_6271_a()V=org/lwjgl/LWJGLException
|
||||
net/minecraft/src/ChunkLoader.func_812_a(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/ChunkLoader.func_813_a(Lnet/minecraft/src/World;II)Lnet/minecraft/src/Chunk;=java/io/IOException
|
||||
net/minecraft/src/ChunkLoader.func_815_b(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_1138_a(Ljava/io/InputStream;)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_1139_a(Lnet/minecraft/src/NBTTagCompound;Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_1141_a(Ljava/io/DataInput;)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_1143_a(Lnet/minecraft/src/NBTTagCompound;Ljava/io/OutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_35620_b(Lnet/minecraft/src/NBTTagCompound;Ljava/io/File;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_35621_a(Lnet/minecraft/src/NBTTagCompound;Ljava/io/File;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_35622_a(Ljava/io/File;)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_40591_a(Lnet/minecraft/src/NBTTagCompound;)[B=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_40592_a([B)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21125_a(Ljava/util/List;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21127_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21128_a(Ljava/io/DataOutputStream;Lnet/minecraft/src/WatchableObject;)V=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21131_a(Ljava/io/DataInputStream;)Ljava/util/List;=java/io/IOException
|
||||
net/minecraft/src/GuiMultiplayer.func_35328_b(Lnet/minecraft/src/ServerNBTStorage;)V=java/io/IOException
|
||||
net/minecraft/src/GuiMultiplayer.func_35336_a(Lnet/minecraft/src/GuiMultiplayer;Lnet/minecraft/src/ServerNBTStorage;)V=java/io/IOException
|
||||
net/minecraft/src/IChunkLoader.func_812_a(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/IChunkLoader.func_813_a(Lnet/minecraft/src/World;II)Lnet/minecraft/src/Chunk;=java/io/IOException
|
||||
net/minecraft/src/IChunkLoader.func_815_b(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/J_CompactJsonFormatter.func_27328_a(Lnet/minecraft/src/J_JsonNode;Ljava/io/Writer;)V=java/io/IOException
|
||||
net/minecraft/src/J_CompactJsonFormatter.func_27329_a(Lnet/minecraft/src/J_JsonRootNode;Ljava/io/Writer;)V=java/io/IOException
|
||||
net/minecraft/src/J_JdomParser.func_27366_a(Ljava/io/Reader;)Lnet/minecraft/src/J_JsonRootNode;=net/minecraft/src/J_InvalidSyntaxException,java/io/IOException
|
||||
net/minecraft/src/J_JdomParser.func_27367_a(Ljava/lang/String;)Lnet/minecraft/src/J_JsonRootNode;=net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_PositionTrackingPushbackReader.func_27333_c()I=java/io/IOException
|
||||
net/minecraft/src/J_PositionTrackingPushbackReader.func_27334_a(C)V=java/io/IOException
|
||||
net/minecraft/src/J_PositionTrackingPushbackReader.func_27336_b([C)I=java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27448_l(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)I=java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27449_c(Lnet/minecraft/src/J_PositionTrackingPushbackReader;Lnet/minecraft/src/J_JsonListener;)V=net/minecraft/src/J_InvalidSyntaxException,java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27450_k(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)I=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27451_b(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)Ljava/lang/String;=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27452_i(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)Ljava/lang/String;=net/minecraft/src/J_InvalidSyntaxException,java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27453_b(Lnet/minecraft/src/J_PositionTrackingPushbackReader;Lnet/minecraft/src/J_JsonListener;)V=net/minecraft/src/J_InvalidSyntaxException,java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27454_g(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)Ljava/lang/String;=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27455_a(Lnet/minecraft/src/J_PositionTrackingPushbackReader;Lnet/minecraft/src/J_JsonListener;)V=net/minecraft/src/J_InvalidSyntaxException,java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27456_e(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)Ljava/lang/String;=java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27457_j(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)C=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27458_d(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)C=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27459_a(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)Ljava/lang/String;=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27460_c(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)C=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27461_h(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)Ljava/lang/String;=java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27462_f(Lnet/minecraft/src/J_PositionTrackingPushbackReader;)Ljava/lang/String;=java/io/IOException,net/minecraft/src/J_InvalidSyntaxException
|
||||
net/minecraft/src/J_SajParser.func_27463_a(Ljava/io/Reader;Lnet/minecraft/src/J_JsonListener;)V=net/minecraft/src/J_InvalidSyntaxException,java/io/IOException
|
||||
net/minecraft/src/J_SajParser.func_27464_d(Lnet/minecraft/src/J_PositionTrackingPushbackReader;Lnet/minecraft/src/J_JsonListener;)V=net/minecraft/src/J_InvalidSyntaxException,java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_734_b(Ljava/io/DataInput;)Lnet/minecraft/src/NBTBase;=java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_738_a(Lnet/minecraft/src/NBTBase;Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagByte.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagByte.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagByteArray.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagByteArray.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagCompound.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagCompound.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagDouble.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagDouble.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagEnd.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagEnd.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagFloat.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagFloat.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagInt.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagInt.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagList.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagList.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagLong.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagLong.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagShort.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagShort.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagString.func_735_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagString.func_736_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NetClientHandler.<init>(Lnet/minecraft/client/Minecraft;Ljava/lang/String;I)V=java/net/UnknownHostException,java/io/IOException
|
||||
net/minecraft/src/NetworkManager.<init>(Ljava/net/Socket;Ljava/lang/String;Lnet/minecraft/src/NetHandler;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_27048_a(Ljava/io/DataInputStream;I)Ljava/lang/String;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_27049_a(Ljava/lang/String;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_324_b(Ljava/io/DataInputStream;Z)Lnet/minecraft/src/Packet;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_328_a(Lnet/minecraft/src/Packet;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40186_c(Ljava/io/DataInputStream;)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40187_b(Ljava/io/DataInputStream;)Lnet/minecraft/src/ItemStack;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40188_a(Lnet/minecraft/src/ItemStack;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40189_a(Lnet/minecraft/src/NBTTagCompound;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet0KeepAlive.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet0KeepAlive.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet100OpenWindow.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet100OpenWindow.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet101CloseWindow.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet101CloseWindow.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet102WindowClick.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet102WindowClick.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet103SetSlot.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet103SetSlot.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet104WindowItems.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet104WindowItems.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet105UpdateProgressbar.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet105UpdateProgressbar.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet106Transaction.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet106Transaction.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet107CreativeSetSlot.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet107CreativeSetSlot.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet108EnchantItem.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet108EnchantItem.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet10Flying.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet10Flying.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet11PlayerPosition.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet11PlayerPosition.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet12PlayerLook.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet12PlayerLook.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet130UpdateSign.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet130UpdateSign.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet131MapData.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet131MapData.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet13PlayerLookMove.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet13PlayerLookMove.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet14BlockDig.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet14BlockDig.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet15Place.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet15Place.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet16BlockItemSwitch.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet16BlockItemSwitch.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet17Sleep.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet17Sleep.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet18Animation.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet18Animation.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet19EntityAction.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet19EntityAction.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet1Login.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet1Login.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet200Statistic.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet200Statistic.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet201PlayerInfo.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet201PlayerInfo.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet20NamedEntitySpawn.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet20NamedEntitySpawn.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet21PickupSpawn.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet21PickupSpawn.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet22Collect.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet22Collect.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet23VehicleSpawn.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet23VehicleSpawn.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet24MobSpawn.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet24MobSpawn.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet254ServerPing.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet254ServerPing.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet255KickDisconnect.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet255KickDisconnect.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet25EntityPainting.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet25EntityPainting.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet26EntityExpOrb.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet26EntityExpOrb.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet27Position.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet27Position.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet28EntityVelocity.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet28EntityVelocity.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet29DestroyEntity.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet29DestroyEntity.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet2Handshake.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet2Handshake.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet30Entity.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet30Entity.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet31RelEntityMove.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet31RelEntityMove.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet32EntityLook.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet32EntityLook.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet33RelEntityMoveLook.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet33RelEntityMoveLook.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet34EntityTeleport.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet34EntityTeleport.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet38EntityStatus.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet38EntityStatus.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet39AttachEntity.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet39AttachEntity.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet3Chat.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet3Chat.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet40EntityMetadata.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet40EntityMetadata.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet41EntityEffect.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet41EntityEffect.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet42RemoveEntityEffect.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet42RemoveEntityEffect.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet43Experience.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet43Experience.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet4UpdateTime.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet4UpdateTime.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet50PreChunk.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet50PreChunk.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet51MapChunk.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet51MapChunk.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet52MultiBlockChange.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet52MultiBlockChange.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet53BlockChange.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet53BlockChange.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet54PlayNoteBlock.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet54PlayNoteBlock.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet5PlayerInventory.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet5PlayerInventory.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet60Explosion.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet60Explosion.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet61DoorChange.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet61DoorChange.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet6SpawnPosition.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet6SpawnPosition.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet70Bed.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet70Bed.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet71Weather.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet71Weather.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet7UseEntity.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet7UseEntity.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet8UpdateHealth.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet8UpdateHealth.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet9Respawn.func_322_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet9Respawn.func_327_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22196_b()V=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22198_a(III)V=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22200_a(I[BI)V=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22208_b(III)V=java/io/IOException
|
||||
net/minecraft/src/RenderEngine.func_6526_a(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.func_1212_a(Ljava/net/URL;Ljava/io/File;J)V=java/io/IOException
|
||||
net/minecraft/src/ThreadedChunkLoader.func_40551_a(Lnet/minecraft/src/ThreadedChunkLoaderPending;)V=java/io/IOException
|
||||
net/minecraft/src/ThreadedChunkLoader.func_813_a(Lnet/minecraft/src/World;II)Lnet/minecraft/src/Chunk;=java/io/IOException
|
||||
net/minecraft/src/ThreadedFileIOBase.func_40566_a()V=java/lang/InterruptedException
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,139 @@
|
||||
[DEFAULT]
|
||||
DirTemp = temp
|
||||
DirSrc = src
|
||||
DirLogs = logs
|
||||
DirBin = bin
|
||||
DirJars = jars
|
||||
DirReobf = reobf
|
||||
DirConf = conf
|
||||
DirRuntime = runtime
|
||||
DirLib = lib
|
||||
DirFFOut = temp/ffout
|
||||
|
||||
[CSV]
|
||||
Classes = %(DirConf)s/classes.csv
|
||||
Methods = %(DirConf)s/methods.csv
|
||||
Fields = %(DirConf)s/fields.csv
|
||||
|
||||
[SRGS]
|
||||
Client = %(DirTemp)s/client_rg.srg
|
||||
Server = %(DirTemp)s/server_rg.srg
|
||||
|
||||
[JAR]
|
||||
DirNatives = %(DirJars)s/bin/natives
|
||||
Client = %(DirJars)s/bin/minecraft.jar
|
||||
Server = %(DirJars)s/minecraft_server.jar
|
||||
MD5Client = 3820d222b95d0b8c520d9596a756a6e6
|
||||
MD5Server = 934b6010999daa1f1b1ccdf4cb77e052
|
||||
|
||||
[RETROGUARD]
|
||||
Location = %(DirRuntime)s/bin/retroguard.jar
|
||||
RetroConf = %(DirTemp)s/retroguard.cfg
|
||||
RetroReobConf = %(DirTemp)s/retroguard_ro.cfg
|
||||
ClientConf = %(DirTemp)s/client_rg.cfg
|
||||
ServerConf = %(DirTemp)s/server_rg.cfg
|
||||
ClientReobConf = %(DirTemp)s/client_ro.cfg
|
||||
ServerReobConf = %(DirTemp)s/server_ro.cfg
|
||||
ClientOut = %(DirTemp)s/minecraft_rg.jar
|
||||
ServerOut = %(DirTemp)s/minecraft_server_rg.jar
|
||||
ClientLog = %(DirLogs)s/client_rg.log
|
||||
ServerLog = %(DirLogs)s/server_rg.log
|
||||
ClientDeobLog = %(DirLogs)s/client_deob.log
|
||||
ServerDeobLog = %(DirLogs)s/server_deob.log
|
||||
|
||||
[EXCEPTOR]
|
||||
XClientCfg = %(DirConf)s/client.exc
|
||||
XServerCfg = %(DirConf)s/server.exc
|
||||
XClientOut = %(DirTemp)s/minecraft_exc.jar
|
||||
XServerOut = %(DirTemp)s/minecraft_server_exc.jar
|
||||
XClientLog = %(DirLogs)s/client_exc.log
|
||||
XServerLog = %(DirLogs)s/server_exc.log
|
||||
|
||||
[DECOMPILE]
|
||||
FFClientConf = -rbr=0 -dgs=1 -asc=1
|
||||
FFServerConf = -rbr=0 -dgs=1 -asc=1
|
||||
FFClientOut = %(DirFFOut)s/client
|
||||
FFServerOut = %(DirFFOut)s/server
|
||||
FFClientSrc = %(DirFFOut)s/minecraft_exc.jar
|
||||
FFServerSrc = %(DirFFOut)s/minecraft_server_exc.jar
|
||||
FFSource = net
|
||||
|
||||
[OUTPUT]
|
||||
BinOut = %(DirTemp)s/bin
|
||||
BinClient = %(DirTemp)s/bin/minecraft
|
||||
BinServer = %(DirTemp)s/bin/minecraft_server
|
||||
SrcClient = %(DirSrc)s/minecraft
|
||||
SrcServer = %(DirSrc)s/minecraft_server
|
||||
|
||||
[PACKAGES]
|
||||
PkgClient = net/minecraft/src,net/minecraft/client
|
||||
PkgServer = net/minecraft/src,net/minecraft/server
|
||||
|
||||
[PATCHES]
|
||||
PatchClient = %(DirConf)s/patches/minecraft.patch
|
||||
PatchServer = %(DirConf)s/patches/minecraft_server.patch
|
||||
PatchTemp = %(DirTemp)s/temp.patch
|
||||
FFPatchClient = %(DirConf)s/patches/minecraft_ff.patch
|
||||
FFPatchServer = %(DirConf)s/patches/minecraft_server_ff.patch
|
||||
|
||||
[RECOMPILE]
|
||||
BinClient = %(DirBin)s/minecraft
|
||||
BinServer = %(DirBin)s/minecraft_server
|
||||
ClassPathClient = %(DirLib)s/,%(DirLib)s/*,%(DirJars)s/bin/minecraft.jar,%(DirJars)s/bin/jinput.jar,%(DirJars)s/bin/lwjgl.jar,%(DirJars)s/bin/lwjgl_util.jar
|
||||
ClassPathServer = %(DirLib)s/,%(DirLib)s/*,%(DirJars)s/minecraft_server.jar
|
||||
ClientFixes = %(DirConf)s/patches
|
||||
|
||||
[REOBF]
|
||||
SAFFXClient = %(DirTemp)s/minecraft.saffx
|
||||
SAFFXServer = %(DirTemp)s/minecraft_server.saffx
|
||||
MD5Client = %(DirTemp)s/client.md5
|
||||
MD5Server = %(DirTemp)s/server.md5
|
||||
MD5PreReobfClient = %(DirTemp)s/client_reobf.md5
|
||||
MD5PreReobfServer = %(DirTemp)s/server_reobf.md5
|
||||
ObfSRGClient = %(DirTemp)s/client_ro.srg
|
||||
ObfSRGServer = %(DirTemp)s/server_ro.srg
|
||||
RecompJarClient = %(DirTemp)s/client_recomp.jar
|
||||
RecompJarServer = %(DirTemp)s/server_recomp.jar
|
||||
ObfJarClient = %(DirTemp)s/client_reobf.jar
|
||||
ObfJarServer = %(DirTemp)s/server_reobf.jar
|
||||
ReobfDirClient = %(DirReobf)s/minecraft
|
||||
ReobfDirServer = %(DirReobf)s/minecraft_server
|
||||
ReobfClientLog = %(DirLogs)s/client_reob.log
|
||||
ReobfServerLog = %(DirLogs)s/server_reob.log
|
||||
FixSound = minecraft/me.class
|
||||
FixStart = minecraft/Start.class
|
||||
NullPkg = net/minecraft/src
|
||||
IgnorePkg = paulscode,com/jcraft,isom,ibxm,de/matthiasmann/twl,org/xmlpull,javax/xml
|
||||
|
||||
[GETMODSOURCE]
|
||||
OutSRCClient = modsrc/client
|
||||
OutSRCServer = modsrc/server
|
||||
OutSRC = modsrc
|
||||
|
||||
[MCP]
|
||||
LogFile = %(DirLogs)s/mcp.log
|
||||
LogFileErr = %(DirLogs)s/mcperr.log
|
||||
|
||||
[COMMANDS]
|
||||
Patcher = %(DirRuntime)s/bin/applydiff.exe
|
||||
JadRetro = %(DirRuntime)s/bin/jadretro.jar
|
||||
Fernflower = %(DirRuntime)s/bin/fernflower.jar
|
||||
Jadwin = %(DirRuntime)s/bin/jad.exe
|
||||
Jadlinux = %(DirRuntime)s/bin/jad.exe
|
||||
Jadosx = %(DirRuntime)s/bin/jad-osx
|
||||
Exceptor = %(DirRuntime)s/bin/exceptor.jar
|
||||
CmdRG = %s -cp {classpath} RetroGuard -searge {conffile}
|
||||
CmdRGReobf = %s -cp {classpath} RetroGuard -notch {conffile}
|
||||
CmdJadretro = %s -jar {jarjr} {targetdir}
|
||||
CmdRecompClt = %s -g -source 1.6 -target 1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs} {fixes}/*.java
|
||||
CmdRecompSrv = %s -g -source 1.6 -target 1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs}
|
||||
CmdStartSrv = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" net.minecraft.server.MinecraftServer
|
||||
CmdStartClt = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" -Djava.library.path={natives} Start
|
||||
CmdJadwin = .\{binjad} -b -d {outdir} -dead -o -r -s .java -stat -v -ff {classes}
|
||||
CmdJadlinux = wine {binjad} -b -d {outdir} -dead -o -r -s .java -stat -v -ff "{classes}"
|
||||
CmdJadosx = {binjad} -b -d {outdir} -dead -o -r -s .java -stat -v -ff {classes}
|
||||
CmdPatchwin = .\%(Patcher)s --binary -p1 -u -i ..\..\{patchfile} -d {srcdir}
|
||||
CmdPatchlinux = patch --binary -p1 -u -i ../../{patchfile} -d {srcdir}
|
||||
CmdPatchosx = patch --binary -p1 -u -i ../../{patchfile} -d {srcdir}
|
||||
CmdFernflower = %s -jar {jarff} {conf} {jarin} {jarout}
|
||||
CmdExceptor = %s -jar {jarexc} {input} {output} {conf} {log}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,27 @@
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
public class Start
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
// set new minecraft data folder to prevent it from using the .minecraft folder
|
||||
// this makes it a portable version
|
||||
Field f = Minecraft.class.getDeclaredField("minecraftDir");
|
||||
Field.setAccessible(new Field[] { f }, true);
|
||||
f.set(null, new File("."));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
// start minecraft game application
|
||||
Minecraft.main(args);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// this is needed for the sound engine to work with deobfuscated sourcecode without crashing
|
||||
|
||||
public class me
|
||||
{
|
||||
public static int c(double d)
|
||||
{
|
||||
int i = (int)d;
|
||||
return d >= (double)i ? i : i - 1;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,109 @@
|
||||
diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net\minecraft\client\Minecraft.java
|
||||
--- minecraft\net\minecraft\client\Minecraft.java Tue Nov 22 23:21:44 2011
|
||||
+++ minecraft_patched\net\minecraft\client\Minecraft.java Wed Nov 23 00:09:14 2011
|
||||
@@ -1600,11 +1600,13 @@
|
||||
|
||||
this.field_6324_e.func_600_a(var6.field_22395_a + var10, 64, var6.field_22396_c + var8);
|
||||
if(!this.field_6327_b.func_35643_e()) {
|
||||
+/*
|
||||
while(true) {
|
||||
if(this.field_6324_e.func_6465_g()) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
+*/
|
||||
}
|
||||
}
|
||||
}
|
||||
diff -r -U 3 minecraft\net\minecraft\src\CodecMus.java minecraft_patched\net\minecraft\src\CodecMus.java
|
||||
--- minecraft\net\minecraft\src\CodecMus.java Tue Nov 22 23:21:36 2011
|
||||
+++ minecraft_patched\net\minecraft\src\CodecMus.java Wed Nov 23 00:09:14 2011
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.src;
|
||||
|
||||
+import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import net.minecraft.src.MusInputStream;
|
||||
import paulscode.sound.codecs.CodecJOrbis;
|
||||
@@ -7,6 +8,11 @@
|
||||
public class CodecMus extends CodecJOrbis {
|
||||
|
||||
protected InputStream openInputStream() {
|
||||
- return new MusInputStream(this, this.url, this.urlConnection.getInputStream());
|
||||
+ try {
|
||||
+ return new MusInputStream(this, this.url, this.urlConnection.getInputStream());
|
||||
+ }
|
||||
+ catch (IOException e) {
|
||||
+ return null;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
diff -r -U 3 minecraft\net\minecraft\src\ItemMap.java minecraft_patched\net\minecraft\src\ItemMap.java
|
||||
--- minecraft\net\minecraft\src\ItemMap.java Tue Nov 22 23:21:24 2011
|
||||
+++ minecraft_patched\net\minecraft\src\ItemMap.java Wed Nov 23 00:09:14 2011
|
||||
@@ -19,7 +19,6 @@
|
||||
}
|
||||
|
||||
public static MapData func_28013_a(short var0, World var1) {
|
||||
- "map_" + var0;
|
||||
MapData var3 = (MapData)var1.func_28103_a(MapData.class, "map_" + var0);
|
||||
if(var3 == null) {
|
||||
int var4 = var1.func_28101_b("map");
|
||||
@@ -32,7 +31,6 @@
|
||||
}
|
||||
|
||||
public MapData func_28012_a(ItemStack var1, World var2) {
|
||||
- "map_" + var1.func_21181_i();
|
||||
MapData var4 = (MapData)var2.func_28103_a(MapData.class, "map_" + var1.func_21181_i());
|
||||
if(var4 == null) {
|
||||
var1.func_28156_b(var2.func_28101_b("map"));
|
||||
diff -r -U 3 minecraft\net\minecraft\src\MusInputStream.java minecraft_patched\net\minecraft\src\MusInputStream.java
|
||||
--- minecraft\net\minecraft\src\MusInputStream.java Tue Nov 22 23:21:24 2011
|
||||
+++ minecraft_patched\net\minecraft\src\MusInputStream.java Wed Nov 23 00:09:14 2011
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.minecraft.src;
|
||||
|
||||
+import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import net.minecraft.src.CodecMus;
|
||||
@@ -28,7 +29,12 @@
|
||||
}
|
||||
|
||||
public int read(byte[] var1, int var2, int var3) {
|
||||
- var3 = this.field_1515_d.read(var1, var2, var3);
|
||||
+ try {
|
||||
+ var3 = this.field_1515_d.read(var1, var2, var3);
|
||||
+ }
|
||||
+ catch (IOException e) {
|
||||
+ return 0;
|
||||
+ }
|
||||
|
||||
for(int var4 = 0; var4 < var3; ++var4) {
|
||||
byte var5 = var1[var2 + var4] = (byte)(var1[var2 + var4] ^ this.field_1516_c >> 8);
|
||||
diff -r -U 3 minecraft\net\minecraft\src\RenderGlobal.java minecraft_patched\net\minecraft\src\RenderGlobal.java
|
||||
--- minecraft\net\minecraft\src\RenderGlobal.java Tue Nov 22 23:21:20 2011
|
||||
+++ minecraft_patched\net\minecraft\src\RenderGlobal.java Wed Nov 23 00:10:20 2011
|
||||
@@ -1466,7 +1466,7 @@
|
||||
double var15 = this.field_1439_t.field_22009_h.field_611_ak - var2;
|
||||
double var17 = this.field_1439_t.field_22009_h.field_610_al - var4;
|
||||
double var19 = this.field_1439_t.field_22009_h.field_609_am - var6;
|
||||
- Object var21 = null;
|
||||
+ EntityFX var21 = null;
|
||||
if(var1.equals("hugeexplosion")) {
|
||||
this.field_1439_t.field_6321_h.func_1192_a(var21 = new EntityHugeExplodeFX(this.field_1448_k, var2, var4, var6, var8, var10, var12));
|
||||
} else if(var1.equals("largeexplode")) {
|
||||
diff -r -U 3 minecraft\net\minecraft\src\ThreadedFileIOBase.java minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java
|
||||
--- minecraft\net\minecraft\src\ThreadedFileIOBase.java Tue Nov 22 23:21:30 2011
|
||||
+++ minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java Wed Nov 23 00:09:14 2011
|
||||
@@ -21,7 +21,9 @@
|
||||
}
|
||||
|
||||
public void run() {
|
||||
- this.func_40568_b();
|
||||
+ while (true) {
|
||||
+ this.func_40568_b();
|
||||
+ }
|
||||
}
|
||||
|
||||
private void func_40568_b() {
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,26 @@
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\ItemMap.java minecraft_server_patched\net\minecraft\src\ItemMap.java
|
||||
--- minecraft_server\net\minecraft\src\ItemMap.java Tue Nov 22 23:21:56 2011
|
||||
+++ minecraft_server_patched\net\minecraft\src\ItemMap.java Wed Nov 23 00:09:45 2011
|
||||
@@ -22,7 +22,6 @@
|
||||
}
|
||||
|
||||
public MapData func_28023_a(ItemStack var1, World var2) {
|
||||
- "map_" + var1.func_21125_h();
|
||||
MapData var4 = (MapData)var2.func_28103_a(MapData.class, "map_" + var1.func_21125_h());
|
||||
if(var4 == null) {
|
||||
var1.func_28145_b(var2.func_28104_b("map"));
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\RConThreadClient.java minecraft_server_patched\net\minecraft\src\RConThreadClient.java
|
||||
diff -r -U 3 minecraft_server\net\minecraft\src\ThreadedFileIOBase.java minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java
|
||||
--- minecraft_server\net\minecraft\src\ThreadedFileIOBase.java Tue Nov 22 23:22:10 2011
|
||||
+++ minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java Wed Nov 23 00:09:45 2011
|
||||
@@ -21,7 +21,9 @@
|
||||
}
|
||||
|
||||
public void run() {
|
||||
- this.func_40509_b();
|
||||
+ while (true) {
|
||||
+ this.func_40509_b();
|
||||
+ }
|
||||
}
|
||||
|
||||
private void func_40509_b() {
|
||||
@@ -0,0 +1 @@
|
||||
Now it is YOURCRAFT!
|
||||
@@ -0,0 +1,202 @@
|
||||
net/minecraft/server/MinecraftServer.func_6008_d()Z=java/net/UnknownHostException
|
||||
net/minecraft/src/ChunkLoader.func_4104_b(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/ChunkLoader.func_659_a(Lnet/minecraft/src/World;II)Lnet/minecraft/src/Chunk;=java/io/IOException
|
||||
net/minecraft/src/ChunkLoader.func_662_a(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_40515_a([B)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_40516_a(Lnet/minecraft/src/NBTTagCompound;)[B=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_769_a(Lnet/minecraft/src/NBTTagCompound;Ljava/io/OutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_770_a(Ljava/io/InputStream;)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_771_a(Lnet/minecraft/src/NBTTagCompound;Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/CompressedStreamTools.func_774_a(Ljava/io/DataInput;)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21149_a(Ljava/io/DataInputStream;)Ljava/util/List;=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21151_a(Ljava/util/List;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21152_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/DataWatcher.func_21154_a(Ljava/io/DataOutputStream;Lnet/minecraft/src/WatchableObject;)V=java/io/IOException
|
||||
net/minecraft/src/IChunkLoader.func_4104_b(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/IChunkLoader.func_659_a(Lnet/minecraft/src/World;II)Lnet/minecraft/src/Chunk;=java/io/IOException
|
||||
net/minecraft/src/IChunkLoader.func_662_a(Lnet/minecraft/src/World;Lnet/minecraft/src/Chunk;)V=java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_380_a(Lnet/minecraft/src/NBTBase;Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTBase.func_383_b(Ljava/io/DataInput;)Lnet/minecraft/src/NBTBase;=java/io/IOException
|
||||
net/minecraft/src/NBTTagByte.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagByte.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagByteArray.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagByteArray.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagCompound.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagCompound.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagDouble.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagDouble.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagEnd.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagEnd.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagFloat.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagFloat.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagInt.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagInt.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagList.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagList.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagLong.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagLong.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagShort.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagShort.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagString.func_381_a(Ljava/io/DataOutput;)V=java/io/IOException
|
||||
net/minecraft/src/NBTTagString.func_382_a(Ljava/io/DataInput;)V=java/io/IOException
|
||||
net/minecraft/src/NetLoginHandler.<init>(Lnet/minecraft/server/MinecraftServer;Ljava/net/Socket;Ljava/lang/String;)V=java/io/IOException
|
||||
net/minecraft/src/NetworkListenThread.<init>(Lnet/minecraft/server/MinecraftServer;Ljava/net/InetAddress;I)V=java/io/IOException
|
||||
net/minecraft/src/NetworkManager.<init>(Ljava/net/Socket;Ljava/lang/String;Lnet/minecraft/src/NetHandler;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_27037_a(Ljava/io/DataInputStream;I)Ljava/lang/String;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_27038_a(Ljava/lang/String;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40259_c(Ljava/io/DataInputStream;)Lnet/minecraft/src/NBTTagCompound;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40260_a(Lnet/minecraft/src/NBTTagCompound;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40261_a(Lnet/minecraft/src/ItemStack;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_40262_b(Ljava/io/DataInputStream;)Lnet/minecraft/src/ItemStack;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_65_b(Ljava/io/DataInputStream;Z)Lnet/minecraft/src/Packet;=java/io/IOException
|
||||
net/minecraft/src/Packet.func_66_a(Lnet/minecraft/src/Packet;Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet0KeepAlive.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet0KeepAlive.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet100OpenWindow.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet100OpenWindow.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet101CloseWindow.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet101CloseWindow.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet102WindowClick.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet102WindowClick.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet103SetSlot.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet103SetSlot.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet104WindowItems.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet104WindowItems.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet105UpdateProgressbar.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet105UpdateProgressbar.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet106Transaction.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet106Transaction.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet107CreativeSetSlot.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet107CreativeSetSlot.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet108EnchantItem.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet108EnchantItem.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet10Flying.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet10Flying.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet11PlayerPosition.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet11PlayerPosition.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet12PlayerLook.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet12PlayerLook.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet130UpdateSign.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet130UpdateSign.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet131MapData.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet131MapData.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet13PlayerLookMove.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet13PlayerLookMove.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet14BlockDig.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet14BlockDig.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet15Place.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet15Place.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet16BlockItemSwitch.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet16BlockItemSwitch.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet17Sleep.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet17Sleep.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet18Animation.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet18Animation.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet19EntityAction.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet19EntityAction.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet1Login.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet1Login.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet200Statistic.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet200Statistic.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet201PlayerInfo.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet201PlayerInfo.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet20NamedEntitySpawn.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet20NamedEntitySpawn.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet21PickupSpawn.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet21PickupSpawn.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet22Collect.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet22Collect.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet23VehicleSpawn.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet23VehicleSpawn.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet24MobSpawn.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet24MobSpawn.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet255KickDisconnect.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet255KickDisconnect.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet25EntityPainting.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet25EntityPainting.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet26EntityExpOrb.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet26EntityExpOrb.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet27Position.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet27Position.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet28EntityVelocity.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet28EntityVelocity.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet29DestroyEntity.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet29DestroyEntity.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet2Handshake.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet2Handshake.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet30Entity.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet30Entity.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet31RelEntityMove.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet31RelEntityMove.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet32EntityLook.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet32EntityLook.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet33RelEntityMoveLook.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet33RelEntityMoveLook.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet34EntityTeleport.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet34EntityTeleport.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet38EntityStatus.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet38EntityStatus.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet39AttachEntity.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet39AttachEntity.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet3Chat.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet3Chat.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet40EntityMetadata.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet40EntityMetadata.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet41EntityEffect.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet41EntityEffect.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet42RemoveEntityEffect.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet42RemoveEntityEffect.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet43Experience.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet43Experience.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet4UpdateTime.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet4UpdateTime.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet50PreChunk.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet50PreChunk.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet51MapChunk.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet51MapChunk.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet52MultiBlockChange.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet52MultiBlockChange.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet53BlockChange.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet53BlockChange.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet54PlayNoteBlock.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet54PlayNoteBlock.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet5PlayerInventory.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet5PlayerInventory.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet60Explosion.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet60Explosion.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet61DoorChange.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet61DoorChange.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet6SpawnPosition.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet6SpawnPosition.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet70Bed.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet70Bed.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet71Weather.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet71Weather.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet7UseEntity.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet7UseEntity.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet8UpdateHealth.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet8UpdateHealth.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet9Respawn.func_68_a(Ljava/io/DataOutputStream;)V=java/io/IOException
|
||||
net/minecraft/src/Packet9Respawn.func_70_a(Ljava/io/DataInputStream;)V=java/io/IOException
|
||||
net/minecraft/src/RConOutputStream.func_40393_a(I)V=java/io/IOException
|
||||
net/minecraft/src/RConOutputStream.func_40394_a(S)V=java/io/IOException
|
||||
net/minecraft/src/RConOutputStream.func_40396_a([B)V=java/io/IOException
|
||||
net/minecraft/src/RConOutputStream.func_40397_a(Ljava/lang/String;)V=java/io/IOException
|
||||
net/minecraft/src/RConThreadClient.func_40453_a(IILjava/lang/String;)V=java/io/IOException
|
||||
net/minecraft/src/RConThreadClient.func_40454_e()V=java/io/IOException
|
||||
net/minecraft/src/RConThreadClient.func_40455_a(ILjava/lang/String;)V=java/io/IOException
|
||||
net/minecraft/src/RConThreadQuery.func_40428_a([BLjava/net/DatagramPacket;)V=java/net/SocketException,java/io/IOException
|
||||
net/minecraft/src/RConThreadQuery.func_40430_a(Ljava/net/DatagramPacket;)Z=java/io/IOException
|
||||
net/minecraft/src/RConThreadQuery.func_40431_d(Ljava/net/DatagramPacket;)V=java/net/SocketException,java/io/IOException
|
||||
net/minecraft/src/RConThreadQuery.func_40434_b(Ljava/net/DatagramPacket;)[B=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22126_b()V=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22128_a(III)V=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22130_a(I[BI)V=java/io/IOException
|
||||
net/minecraft/src/RegionFile.func_22138_b(III)V=java/io/IOException
|
||||
net/minecraft/src/ThreadedChunkLoader.func_40325_a(Lnet/minecraft/src/ThreadedChunkLoaderPending;)V=java/io/IOException
|
||||
net/minecraft/src/ThreadedChunkLoader.func_659_a(Lnet/minecraft/src/World;II)Lnet/minecraft/src/Chunk;=java/io/IOException
|
||||
net/minecraft/src/ThreadedFileIOBase.func_40508_a()V=java/lang/InterruptedException
|
||||
@@ -0,0 +1,4 @@
|
||||
[VERSION]
|
||||
MCPVersion = 5.0
|
||||
ClientVersion = 1.0.0
|
||||
ServerVersion = 1.0.1
|
||||
@@ -1,12 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry including="*.java" kind="src" path="start"/>
|
||||
<classpathentry kind="src" path="forge_common"/>
|
||||
<classpathentry kind="src" path="minecraft"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="lib" path="../../jars/bin/jinput.jar"/>
|
||||
<classpathentry kind="lib" path="../../jars/bin/lwjgl.jar"/>
|
||||
<classpathentry kind="lib" path="../../jars/bin/lwjgl_util.jar"/>
|
||||
<classpathentry kind="lib" path="../../jars/bin/jinput.jar">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="forge_client/jars/bin/natives"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="../../jars/bin/lwjgl.jar">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="forge_client/jars/bin/natives"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="../../jars/bin/lwjgl_util.jar">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY" value="forge_client/jars/bin/natives"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="../../jars/bin/minecraft.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -20,10 +20,64 @@
|
||||
<type>2</type>
|
||||
<locationURI>PARENT-1-PROJECT_LOC/forge_common</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>jars</name>
|
||||
<type>2</type>
|
||||
<locationURI>MCP_LOC/jars</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>minecraft</name>
|
||||
<type>2</type>
|
||||
<locationURI>PARENT-1-WORKSPACE_LOC/src_work/minecraft</locationURI>
|
||||
</link>
|
||||
<link>
|
||||
<name>start</name>
|
||||
<type>2</type>
|
||||
<locationURI>MCP_LOC/conf/patches</locationURI>
|
||||
</link>
|
||||
</linkedResources>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1324024223159</id>
|
||||
<name>jars</name>
|
||||
<type>9</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-bin</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1324024223163</id>
|
||||
<name>jars</name>
|
||||
<type>6</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-*</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1324022795404</id>
|
||||
<name>start</name>
|
||||
<type>5</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-*.java</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
<filter>
|
||||
<id>1324024144075</id>
|
||||
<name>jars/bin</name>
|
||||
<type>5</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.ui.ide.multiFilter</id>
|
||||
<arguments>1.0-name-matches-false-false-*.jar</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
<variableList>
|
||||
<variable>
|
||||
<name>MCP_LOC</name>
|
||||
<value>$%7BPARENT-1-WORKSPACE_LOC%7D</value>
|
||||
</variable>
|
||||
</variableList>
|
||||
</projectDescription>
|
||||
@@ -30,7 +30,16 @@ public class ForgeHooksClient {
|
||||
return false;
|
||||
}
|
||||
|
||||
static LinkedList<IHighlightHandler> highlightHandlers = new LinkedList<IHighlightHandler>();
|
||||
public static void onRenderWorldLast(RenderGlobal rg, float f) {
|
||||
for (IRenderWorldLastHandler handler : renderWorldLastHandlers) {
|
||||
handler.onRenderWorldLast(rg,f);
|
||||
}
|
||||
}
|
||||
|
||||
static LinkedList<IHighlightHandler> highlightHandlers =
|
||||
new LinkedList<IHighlightHandler>();
|
||||
static LinkedList<IRenderWorldLastHandler> renderWorldLastHandlers =
|
||||
new LinkedList<IRenderWorldLastHandler>();
|
||||
|
||||
public static boolean canRenderInPass(Block block, int pass) {
|
||||
if(block instanceof IMultipassRender) {
|
||||
@@ -41,25 +50,54 @@ public class ForgeHooksClient {
|
||||
return false;
|
||||
}
|
||||
|
||||
static HashMap tessellators=new HashMap();
|
||||
static HashMap textures=new HashMap();
|
||||
private static class TesKey implements Comparable<TesKey> {
|
||||
public TesKey(int t, int s) { tex=t; sub=s; }
|
||||
public int compareTo(TesKey key) {
|
||||
if(sub==key.sub) return tex-key.tex;
|
||||
return sub-key.sub;
|
||||
}
|
||||
public boolean equals(Object obj) {
|
||||
return compareTo((TesKey)obj)==0;
|
||||
}
|
||||
public int hashCode() {
|
||||
int c1=Integer.valueOf(tex).hashCode();
|
||||
int c2=Integer.valueOf(sub).hashCode();
|
||||
return c1+31*c2;
|
||||
}
|
||||
public int tex, sub;
|
||||
}
|
||||
|
||||
static HashMap<TesKey,Tessellator> tessellators=
|
||||
new HashMap<TesKey,Tessellator>();
|
||||
static HashMap<String,Integer> textures=new HashMap<String,Integer>();
|
||||
static boolean inWorld=false;
|
||||
static HashSet renderTextureTest=new HashSet();
|
||||
static ArrayList<List> renderTextureList=new ArrayList();
|
||||
static TreeSet<TesKey> renderTextures=new TreeSet<TesKey>();
|
||||
static Tessellator defaultTessellator=null;
|
||||
static HashMap<TesKey,IRenderContextHandler> renderHandlers=new
|
||||
HashMap<TesKey,IRenderContextHandler>();
|
||||
|
||||
protected static void registerRenderContextHandler(String tex, int sub,
|
||||
IRenderContextHandler handler) {
|
||||
Integer n;
|
||||
n=textures.get(tex);
|
||||
if(n==null) {
|
||||
n=ModLoader.getMinecraftInstance().renderEngine
|
||||
.getTexture(tex);
|
||||
textures.put(tex,n);
|
||||
}
|
||||
renderHandlers.put(new TesKey(n,sub),handler);
|
||||
}
|
||||
|
||||
protected static void bindTessellator(int tex, int sub) {
|
||||
List key=Arrays.asList(tex,sub);
|
||||
TesKey key=new TesKey(tex,sub);
|
||||
Tessellator t;
|
||||
if(!tessellators.containsKey(key)) {
|
||||
t=tessellators.get(key);
|
||||
if(t==null) {
|
||||
t=new Tessellator();
|
||||
tessellators.put(key,t);
|
||||
} else {
|
||||
t=(Tessellator)tessellators.get(key);
|
||||
}
|
||||
if(inWorld && !renderTextureTest.contains(key)) {
|
||||
renderTextureTest.add(key);
|
||||
renderTextureList.add(key);
|
||||
if(inWorld && !renderTextures.contains(key)) {
|
||||
renderTextures.add(key);
|
||||
t.startDrawingQuads();
|
||||
t.setTranslationD(defaultTessellator.xOffset,
|
||||
defaultTessellator.yOffset,
|
||||
@@ -68,22 +106,30 @@ public class ForgeHooksClient {
|
||||
Tessellator.instance=t;
|
||||
}
|
||||
|
||||
static IRenderContextHandler unbindContext=null;
|
||||
protected static void bindTexture(String name, int sub) {
|
||||
int n;
|
||||
if(!textures.containsKey(name)) {
|
||||
Integer n;
|
||||
n=textures.get(name);
|
||||
if(n==null) {
|
||||
n=ModLoader.getMinecraftInstance().renderEngine
|
||||
.getTexture(name);
|
||||
textures.put(name,n);
|
||||
} else {
|
||||
n=(Integer)textures.get(name);
|
||||
}
|
||||
if(!inWorld) {
|
||||
if(unbindContext!=null) {
|
||||
unbindContext.afterRenderContext();
|
||||
unbindContext=null;
|
||||
}
|
||||
if(Tessellator.instance.isDrawing) {
|
||||
int mode=Tessellator.instance.drawMode;
|
||||
Tessellator.instance.draw();
|
||||
Tessellator.instance.startDrawing(mode);
|
||||
}
|
||||
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */,n);
|
||||
unbindContext=renderHandlers.get(new TesKey(n,sub));
|
||||
if(unbindContext!=null) {
|
||||
unbindContext.beforeRenderContext();
|
||||
}
|
||||
return;
|
||||
}
|
||||
bindTessellator(n,sub);
|
||||
@@ -96,6 +142,10 @@ public class ForgeHooksClient {
|
||||
if(Tessellator.instance.isDrawing) {
|
||||
int mode=Tessellator.instance.drawMode;
|
||||
Tessellator.instance.draw();
|
||||
if(unbindContext!=null) {
|
||||
unbindContext.afterRenderContext();
|
||||
unbindContext=null;
|
||||
}
|
||||
Tessellator.instance.startDrawing(mode);
|
||||
}
|
||||
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, ModLoader
|
||||
@@ -113,25 +163,31 @@ public class ForgeHooksClient {
|
||||
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, ModLoader
|
||||
.getMinecraftInstance().renderEngine
|
||||
.getTexture("/terrain.png"));
|
||||
renderTextureTest.clear();
|
||||
renderTextureList.clear();
|
||||
renderTextures.clear();
|
||||
inWorld=true;
|
||||
}
|
||||
|
||||
public static void afterRenderPass(int pass) {
|
||||
renderPass=-1;
|
||||
inWorld=false;
|
||||
for(List l : renderTextureList) {
|
||||
// TODO: call appropriate client hooks
|
||||
Integer[] tn=(Integer[])l.toArray();
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D,tn[0]);
|
||||
Tessellator t=(Tessellator)tessellators.get(l);
|
||||
t.draw();
|
||||
for(TesKey tk : renderTextures) {
|
||||
IRenderContextHandler irch=renderHandlers.get(tk);
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D,tk.tex);
|
||||
Tessellator t=tessellators.get(tk);
|
||||
if(irch==null) {
|
||||
t.draw();
|
||||
} else {
|
||||
Tessellator.instance=t;
|
||||
irch.beforeRenderContext();
|
||||
t.draw();
|
||||
irch.afterRenderContext();
|
||||
}
|
||||
}
|
||||
GL11.glBindTexture(3553 /* GL_TEXTURE_2D */, ModLoader
|
||||
.getMinecraftInstance().renderEngine
|
||||
.getTexture("/terrain.png"));
|
||||
Tessellator.renderingWorldRenderer=false;
|
||||
Tessellator.instance=defaultTessellator;
|
||||
}
|
||||
|
||||
public static void beforeBlockRender(Block block,
|
||||
@@ -160,6 +216,18 @@ public class ForgeHooksClient {
|
||||
}
|
||||
}
|
||||
|
||||
public static String getTexture(String def, Object item)
|
||||
{
|
||||
if (item instanceof ITextureProvider)
|
||||
{
|
||||
return ((ITextureProvider)item).getTextureFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
return def;
|
||||
}
|
||||
}
|
||||
|
||||
public static void renderCustomItem(ICustomItemRenderer customRenderer, RenderBlocks renderBlocks,int itemID, int meta, float f) {
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
if (renderBlocks.useInventoryTint) {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* This software is provided under the terms of the Minecraft Forge Public
|
||||
* License v1.0.
|
||||
*/
|
||||
package net.minecraft.src.forge;
|
||||
|
||||
public interface IRenderContextHandler {
|
||||
/** Run before the specified rendering context.
|
||||
*/
|
||||
public void beforeRenderContext();
|
||||
|
||||
/** Run after the specified rendering context.
|
||||
*/
|
||||
public void afterRenderContext();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* This software is provided under the terms of the Minecraft Forge Public
|
||||
* License v1.0.
|
||||
*/
|
||||
package net.minecraft.src.forge;
|
||||
|
||||
import net.minecraft.src.RenderGlobal;
|
||||
|
||||
public interface IRenderWorldLastHandler {
|
||||
/** Called after rendering all the 3D data of the world. This is
|
||||
* called before the user's tool is rendered, but otherwise after all
|
||||
* 3D content. It is called twice in anaglyph mode. This is intended
|
||||
* for rendering visual effect overlays into the world.
|
||||
*/
|
||||
void onRenderWorldLast(RenderGlobal rg, float f);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,20 @@ public class MinecraftForgeClient {
|
||||
ForgeHooksClient.highlightHandlers.add(handler);
|
||||
}
|
||||
|
||||
/** Register a new render context handler. A render context is a block
|
||||
* of rendering performed with similar OpenGL modes, for example,
|
||||
* texture name.
|
||||
* @param tex The name of the texture for this render context.
|
||||
* @param sub The subid of this render context. 0 is the default pass
|
||||
* for normal rendering, higher subids render later. All subids of 0
|
||||
* will render before all subids of 1, etc.
|
||||
* @param handler The handler to register.
|
||||
*/
|
||||
public static void registerRenderContextHandler(String tex, int sub,
|
||||
IRenderContextHandler handler) {
|
||||
ForgeHooksClient.registerRenderContextHandler(tex,sub,handler);
|
||||
}
|
||||
|
||||
/** Bind a texture. This is used to bind a texture file when
|
||||
* performing your own rendering, rather than using ITextureProvider.
|
||||
*
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package net.minecraft.src.forge;
|
||||
|
||||
import java.util.Random;
|
||||
import net.minecraft.src.ItemStack;
|
||||
|
||||
/**
|
||||
*
|
||||
* Used to hold a list of all items that can be spawned in a world dungeon
|
||||
*
|
||||
*/
|
||||
public class DungeonLoot
|
||||
{
|
||||
private ItemStack item;
|
||||
private int minCount = 1;
|
||||
private int maxCount = 1;
|
||||
|
||||
/**
|
||||
* @param item A item stack
|
||||
* @param min Minimum stack size when randomly generating
|
||||
* @param max Maximum stack size when randomly generating
|
||||
*/
|
||||
public DungeonLoot(ItemStack item, int min, int max)
|
||||
{
|
||||
this.item = item;
|
||||
minCount = min;
|
||||
maxCount = max;
|
||||
}
|
||||
|
||||
/**
|
||||
* Grabs a ItemStack ready to be added to the dungeon chest,
|
||||
* the stack size will be between minCount and maxCount
|
||||
* @param rand World gen random number generator
|
||||
* @return The ItemStack to be added to the chest
|
||||
*/
|
||||
public ItemStack generateStack(Random rand)
|
||||
{
|
||||
ItemStack ret = this.item.copy();
|
||||
ret.stackSize = minCount + (rand.nextInt(maxCount - minCount + 1));
|
||||
return ret;
|
||||
}
|
||||
|
||||
public boolean equals(ItemStack item, int min, int max)
|
||||
{
|
||||
return (min == minCount && max == maxCount && item.isItemEqual(this.item));
|
||||
}
|
||||
|
||||
public boolean equals(ItemStack item)
|
||||
{
|
||||
return item.isItemEqual(this.item);
|
||||
}
|
||||
}
|
||||
@@ -179,72 +179,99 @@ public class ForgeHooks {
|
||||
}
|
||||
|
||||
public static boolean isToolEffective(ItemStack ist, Block bl, int md) {
|
||||
List tc=(List)toolClasses.get(ist.itemID);
|
||||
if(tc==null) return false;
|
||||
Object[] ta=tc.toArray();
|
||||
String cls=(String)ta[0];
|
||||
|
||||
return toolEffectiveness.contains(Arrays.asList(
|
||||
bl.blockID,md,cls));
|
||||
List tc = (List)toolClasses.get(ist.itemID);
|
||||
if (tc == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
Object[] ta = tc.toArray();
|
||||
String cls = (String)ta[0];
|
||||
return toolEffectiveness.contains(Arrays.asList(bl.blockID, md, cls));
|
||||
}
|
||||
|
||||
static void initTools() {
|
||||
if(toolInit) return;
|
||||
toolInit=true;
|
||||
if(toolInit)
|
||||
{
|
||||
return;
|
||||
}
|
||||
toolInit = true;
|
||||
|
||||
MinecraftForge.setToolClass(Item.pickaxeWood,"pickaxe",0);
|
||||
MinecraftForge.setToolClass(Item.pickaxeStone,"pickaxe",1);
|
||||
MinecraftForge.setToolClass(Item.pickaxeSteel,"pickaxe",2);
|
||||
MinecraftForge.setToolClass(Item.pickaxeGold,"pickaxe",0);
|
||||
MinecraftForge.setToolClass(Item.pickaxeDiamond,"pickaxe",3);
|
||||
MinecraftForge.setToolClass(Item.pickaxeWood, "pickaxe", 0);
|
||||
MinecraftForge.setToolClass(Item.pickaxeStone, "pickaxe", 1);
|
||||
MinecraftForge.setToolClass(Item.pickaxeSteel, "pickaxe", 2);
|
||||
MinecraftForge.setToolClass(Item.pickaxeGold, "pickaxe", 0);
|
||||
MinecraftForge.setToolClass(Item.pickaxeDiamond, "pickaxe", 3);
|
||||
|
||||
MinecraftForge.setToolClass(Item.axeWood,"axe",0);
|
||||
MinecraftForge.setToolClass(Item.axeStone,"axe",1);
|
||||
MinecraftForge.setToolClass(Item.axeSteel,"axe",2);
|
||||
MinecraftForge.setToolClass(Item.axeGold,"axe",0);
|
||||
MinecraftForge.setToolClass(Item.axeDiamond,"axe",3);
|
||||
MinecraftForge.setToolClass(Item.axeWood, "axe", 0);
|
||||
MinecraftForge.setToolClass(Item.axeStone, "axe", 1);
|
||||
MinecraftForge.setToolClass(Item.axeSteel, "axe", 2);
|
||||
MinecraftForge.setToolClass(Item.axeGold, "axe", 0);
|
||||
MinecraftForge.setToolClass(Item.axeDiamond, "axe", 3);
|
||||
|
||||
MinecraftForge.setToolClass(Item.shovelWood,"shovel",0);
|
||||
MinecraftForge.setToolClass(Item.shovelStone,"shovel",1);
|
||||
MinecraftForge.setToolClass(Item.shovelSteel,"shovel",2);
|
||||
MinecraftForge.setToolClass(Item.shovelGold,"shovel",0);
|
||||
MinecraftForge.setToolClass(Item.shovelDiamond,"shovel",3);
|
||||
MinecraftForge.setToolClass(Item.shovelWood, "shovel", 0);
|
||||
MinecraftForge.setToolClass(Item.shovelStone, "shovel", 1);
|
||||
MinecraftForge.setToolClass(Item.shovelSteel, "shovel", 2);
|
||||
MinecraftForge.setToolClass(Item.shovelGold, "shovel", 0);
|
||||
MinecraftForge.setToolClass(Item.shovelDiamond, "shovel", 3);
|
||||
|
||||
MinecraftForge.setBlockHarvestLevel(Block.obsidian,"pickaxe",3);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreDiamond,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockDiamond,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreGold,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockGold,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreIron,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockSteel,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreLapis,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockLapis,"pickaxe",1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreRedstone,"pickaxe",2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreRedstoneGlowing,"pickaxe",2);
|
||||
MinecraftForge.removeBlockEffectiveness(Block.oreRedstone,"pickaxe");
|
||||
MinecraftForge.removeBlockEffectiveness(Block.oreRedstoneGlowing,"pickaxe");
|
||||
MinecraftForge.removeBlockEffectiveness(Block.obsidian,"pickaxe");
|
||||
MinecraftForge.setBlockHarvestLevel(Block.obsidian, "pickaxe", 3);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreDiamond, "pickaxe", 2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockDiamond, "pickaxe", 2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreGold, "pickaxe", 2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockGold, "pickaxe", 2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreIron, "pickaxe", 1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockSteel, "pickaxe", 1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreLapis, "pickaxe", 1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.blockLapis, "pickaxe", 1);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreRedstone, "pickaxe", 2);
|
||||
MinecraftForge.setBlockHarvestLevel(Block.oreRedstoneGlowing, "pickaxe", 2);
|
||||
MinecraftForge.removeBlockEffectiveness(Block.oreRedstone, "pickaxe");
|
||||
MinecraftForge.removeBlockEffectiveness(Block.obsidian, "pickaxe");
|
||||
MinecraftForge.removeBlockEffectiveness(Block.oreRedstoneGlowing, "pickaxe");
|
||||
|
||||
Block[] pickeff ={
|
||||
Block[] pickeff = {
|
||||
Block.cobblestone, Block.stairDouble,
|
||||
Block.stairSingle, Block.stone, Block.sandStone,
|
||||
Block.cobblestoneMossy,
|
||||
Block.oreCoal,
|
||||
Block.ice, Block.netherrack, Block.oreLapis,
|
||||
Block.stairSingle, Block.stone,
|
||||
Block.sandStone, Block.cobblestoneMossy,
|
||||
Block.oreCoal, Block.ice,
|
||||
Block.netherrack, Block.oreLapis,
|
||||
Block.blockLapis
|
||||
};
|
||||
for(Block bl : pickeff) {
|
||||
MinecraftForge.setBlockHarvestLevel(bl,"pickaxe",0);
|
||||
};
|
||||
for (Block bl : pickeff)
|
||||
{
|
||||
MinecraftForge.setBlockHarvestLevel(bl, "pickaxe", 0);
|
||||
}
|
||||
|
||||
Block[] spadeEff = {
|
||||
Block.grass, Block.dirt,
|
||||
Block.sand, Block.gravel,
|
||||
Block.snow, Block.blockSnow,
|
||||
Block.blockClay, Block.tilledField,
|
||||
Block.slowSand, Block.mycelium
|
||||
};
|
||||
for (Block bl : spadeEff)
|
||||
{
|
||||
MinecraftForge.setBlockHarvestLevel(bl, "shovel", 0);
|
||||
}
|
||||
|
||||
Block[] axeEff = {
|
||||
Block.planks, Block.bookShelf,
|
||||
Block.wood, Block.chest,
|
||||
Block.stairDouble, Block.stairSingle,
|
||||
Block.pumpkin, Block.pumpkinLantern
|
||||
};
|
||||
for (Block bl : axeEff)
|
||||
{
|
||||
MinecraftForge.setBlockHarvestLevel(bl, "axe", 0);
|
||||
}
|
||||
|
||||
// TODO: add other tool tables.
|
||||
}
|
||||
|
||||
public static final int majorVersion=1;
|
||||
public static final int minorVersion=2;
|
||||
public static final int revisionVersion=1;
|
||||
public static final int revisionVersion=4;
|
||||
static {
|
||||
System.out.printf("MinecraftForge V%d.%d.%d Initialized\n",majorVersion,minorVersion,revisionVersion);
|
||||
System.out.printf("MinecraftForge V%d.%d.%d Initialized\n", majorVersion, minorVersion, revisionVersion);
|
||||
}
|
||||
|
||||
static boolean toolInit=false;
|
||||
|
||||
@@ -14,6 +14,9 @@ import net.minecraft.src.World;
|
||||
* This interface is to be implemented by item classes. It will allow an item
|
||||
* to perform a use before the block is activated.
|
||||
*
|
||||
* @deprecated This interface is no longer used, the function has been moved to
|
||||
* Item. The functionality remains, it simply does not require this interface
|
||||
* any further.
|
||||
* @see Item
|
||||
*/
|
||||
public interface IUseItemFirst {
|
||||
|
||||
@@ -365,4 +365,246 @@ public class MinecraftForge {
|
||||
}
|
||||
}
|
||||
|
||||
private static int dungeonLootAttempts = 8;
|
||||
private static ArrayList<ObjectPair<Float, String>> dungeonMobs = new ArrayList<ObjectPair<Float, String>>();
|
||||
private static ArrayList<ObjectPair<Float, DungeonLoot>> dungeonLoot = new ArrayList<ObjectPair<Float, DungeonLoot>>();
|
||||
/**
|
||||
* Set the number of item stacks that will be attempted to be added to each Dungeon chest.
|
||||
* Note: Due to random number generation, you will not always get this amount per chest.
|
||||
* @param number The maximum number of item stacks to add to a chest.
|
||||
*/
|
||||
public static void setDungeonLootTries(int number)
|
||||
{
|
||||
dungeonLootAttempts = number;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The max number of item stacks found in each dungeon chest.
|
||||
*/
|
||||
public static int getDungeonLootTries()
|
||||
{
|
||||
return dungeonLootAttempts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a mob to the possible list of creatures the spawner will create.
|
||||
* If the mob is already in the spawn list, the rarity will be added to the existing one,
|
||||
* causing the mob to be more common.
|
||||
*
|
||||
* @param name The name of the monster, use the same name used when registering the entity.
|
||||
* @param rarity The rarity of selecting this mob over others. Must be greater then 0.
|
||||
* Vanilla Minecraft has the following mobs:
|
||||
* Spider 1
|
||||
* Skeleton 1
|
||||
* Zombie 2
|
||||
* Meaning, Zombies are twice as common as spiders or skeletons.
|
||||
* @return The new rarity of the monster,
|
||||
*/
|
||||
public static float addDungeonMob(String name, float rarity)
|
||||
{
|
||||
if (rarity <= 0)
|
||||
{
|
||||
throw new IllegalArgumentException("Rarity must be greater then zero");
|
||||
}
|
||||
|
||||
for(ObjectPair<Float, String> mob : dungeonMobs)
|
||||
{
|
||||
if (name.equals(mob.getValue2()))
|
||||
{
|
||||
mob.setValue1(mob.getValue1() + rarity);
|
||||
return mob.getValue1();
|
||||
}
|
||||
}
|
||||
|
||||
dungeonMobs.add(new ObjectPair<Float, String>(rarity, name));
|
||||
return rarity;
|
||||
}
|
||||
|
||||
/**
|
||||
* Will completely remove a Mob from the dungeon spawn list.
|
||||
*
|
||||
* @param name The name of the mob to remove
|
||||
* @return The rarity of the removed mob, prior to being removed.
|
||||
*/
|
||||
public static float removeDungeonMob(String name)
|
||||
{
|
||||
for (ObjectPair<Float, String> mob : dungeonMobs)
|
||||
{
|
||||
if (name.equals(name))
|
||||
{
|
||||
dungeonMobs.remove(mob);
|
||||
return mob.getValue1();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a random mob name from the list.
|
||||
* @param rand World generation random number generator
|
||||
* @return The mob name
|
||||
*/
|
||||
public static String getRandomDungeonMob(Random rand)
|
||||
{
|
||||
float maxRarity = 0f;
|
||||
for (ObjectPair<Float, String> mob : dungeonMobs)
|
||||
{
|
||||
maxRarity += mob.getValue1();
|
||||
}
|
||||
|
||||
float targetRarity = rand.nextFloat() * maxRarity;
|
||||
for (ObjectPair<Float, String> mob : dungeonMobs)
|
||||
{
|
||||
if (targetRarity < mob.getValue1())
|
||||
{
|
||||
return mob.getValue2();
|
||||
}
|
||||
targetRarity -= mob.getValue1();
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a item stack to the dungeon loot list with a stack size
|
||||
* of 1.
|
||||
*
|
||||
* @param item The ItemStack to be added to the loot list
|
||||
* @param rarity The relative chance that this item will spawn, Vanilla has
|
||||
* most of its items set to 1. Like the saddle, bread, silk, wheat, etc..
|
||||
* Rarer items are set to lower values, EXA: Golden Apple 0.01
|
||||
*/
|
||||
public static void addDungeonLoot(ItemStack item, float rarity)
|
||||
{
|
||||
addDungeonLoot(item, rarity, 1, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a item stack, with a range of sizes, to the dungeon loot list.
|
||||
* If a stack matching the same item, and size range, is already in the list
|
||||
* the rarities will be added together making the item more common.
|
||||
*
|
||||
* @param item The ItemStack to be added to the loot list
|
||||
* @param rarity The relative chance that this item will spawn, Vanilla has
|
||||
* most of its items set to 1. Like the saddle, bread, silk, wheat, etc..
|
||||
* Rarer items are set to lower values, EXA: Golden Apple 0.01
|
||||
* @param minCount When this item does generate, the minimum number that is in the stack
|
||||
* @param maxCount When this item does generate, the maximum number that can bein the stack
|
||||
* @return The new rarity of the loot.
|
||||
*/
|
||||
public static float addDungeonLoot(ItemStack item, float rarity, int minCount, int maxCount)
|
||||
{
|
||||
for (ObjectPair<Float, DungeonLoot> loot : dungeonLoot)
|
||||
{
|
||||
if (loot.getValue2().equals(item, minCount, maxCount))
|
||||
{
|
||||
loot.setValue1(loot.getValue1() + rarity);
|
||||
return loot.getValue1();
|
||||
}
|
||||
}
|
||||
|
||||
dungeonLoot.add(new ObjectPair<Float, DungeonLoot>(rarity, new DungeonLoot(item, minCount, maxCount)));
|
||||
return rarity;
|
||||
}
|
||||
/**
|
||||
* Removes a item stack from the dungeon loot list, this will remove all items
|
||||
* as long as the item stack matches, it will not care about matching the stack
|
||||
* size ranges perfectly.
|
||||
*
|
||||
* @param item The item stack to remove
|
||||
* @return The total rarity of all items removed
|
||||
*/
|
||||
public static float removeDungeonLoot(ItemStack item)
|
||||
{
|
||||
return removeDungeonLoot(item, -1, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a item stack from the dungeon loot list. If 'minCount' parameter
|
||||
* is greater then 0, it will only remove loot items that have the same exact
|
||||
* stack size range as passed in by parameters.
|
||||
*
|
||||
* @param item The item stack to remove
|
||||
* @param minCount The minimum count for the match check, if less then 0,
|
||||
* the size check is skipped
|
||||
* @param maxCount The max count used in match check when 'minCount' is >= 0
|
||||
* @return The total rarity of all items removed
|
||||
*/
|
||||
public static float removeDungeonLoot(ItemStack item, int minCount, int maxCount)
|
||||
{
|
||||
float rarity = 0;
|
||||
ArrayList<ObjectPair<Float, DungeonLoot>> lootTmp = (ArrayList<ObjectPair<Float, DungeonLoot>>)dungeonLoot.clone();
|
||||
if (minCount < 0)
|
||||
{
|
||||
for (ObjectPair<Float, DungeonLoot> loot : lootTmp)
|
||||
{
|
||||
if (loot.getValue2().equals(item))
|
||||
{
|
||||
dungeonLoot.remove(loot);
|
||||
rarity += loot.getValue1();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ObjectPair<Float, DungeonLoot> loot : lootTmp)
|
||||
{
|
||||
if (loot.getValue2().equals(item, minCount, maxCount))
|
||||
{
|
||||
dungeonLoot.remove(loot);
|
||||
rarity += loot.getValue1();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rarity;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets a random item stack to place in a dungeon chest during world generation
|
||||
* @param rand World generation random number generator
|
||||
* @return The item stack
|
||||
*/
|
||||
public static ItemStack getRandomDungeonLoot(Random rand)
|
||||
{
|
||||
float maxRarity = 0f;
|
||||
for (ObjectPair<Float, DungeonLoot> loot : dungeonLoot)
|
||||
{
|
||||
maxRarity += loot.getValue1();
|
||||
}
|
||||
|
||||
float targetRarity = rand.nextFloat() * maxRarity;
|
||||
for (ObjectPair<Float, DungeonLoot> loot : dungeonLoot)
|
||||
{
|
||||
if (targetRarity < loot.getValue1())
|
||||
{
|
||||
return loot.getValue2().generateStack(rand);
|
||||
}
|
||||
targetRarity -= loot.getValue1();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static
|
||||
{
|
||||
addDungeonMob("Skeleton", 1.0f);
|
||||
addDungeonMob("Zombie", 2.0f);
|
||||
addDungeonMob("Spider", 1.0f);
|
||||
|
||||
addDungeonLoot(new ItemStack(Item.saddle), 1.00f );
|
||||
addDungeonLoot(new ItemStack(Item.ingotIron), 1.00f, 1, 4);
|
||||
addDungeonLoot(new ItemStack(Item.bread), 1.00f );
|
||||
addDungeonLoot(new ItemStack(Item.wheat), 1.00f, 1, 4);
|
||||
addDungeonLoot(new ItemStack(Item.gunpowder), 1.00f, 1, 4);
|
||||
addDungeonLoot(new ItemStack(Item.silk), 1.00f, 1, 4);
|
||||
addDungeonLoot(new ItemStack(Item.bucketEmpty), 1.00f );
|
||||
addDungeonLoot(new ItemStack(Item.appleGold), 0.01f );
|
||||
addDungeonLoot(new ItemStack(Item.redstone), 0.50f, 1, 4);
|
||||
addDungeonLoot(new ItemStack(Item.record13), 0.05f );
|
||||
addDungeonLoot(new ItemStack(Item.recordCat), 0.05f );
|
||||
addDungeonLoot(new ItemStack(Item.dyePowder, 1, 3), 1.00f );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package net.minecraft.src.forge;
|
||||
|
||||
/**
|
||||
* A class that holds two generic values, can be used as a Key/Value pair,
|
||||
* but is used in forge as a frequency/object pair.
|
||||
*
|
||||
* @param <T1> The type of the first value
|
||||
* @param <T2> The Type of the second value
|
||||
*/
|
||||
public class ObjectPair<T1, T2>
|
||||
{
|
||||
private T1 object1;
|
||||
private T2 object2;
|
||||
|
||||
public ObjectPair(T1 obj1, T2 obj2)
|
||||
{
|
||||
this.object1 = obj1;
|
||||
this.object2 = obj2;
|
||||
}
|
||||
|
||||
public T1 getValue1()
|
||||
{
|
||||
return this.object1;
|
||||
}
|
||||
|
||||
public T2 getValue2()
|
||||
{
|
||||
return this.object2;
|
||||
}
|
||||
|
||||
public void setValue1(T1 value)
|
||||
{
|
||||
object1 = value;
|
||||
}
|
||||
|
||||
public void setValue2(T2 value)
|
||||
{
|
||||
object2 = value;
|
||||
}
|
||||
}
|
||||
@@ -4,9 +4,16 @@ Extract the download archive directly into your MCP-directiory.
|
||||
It should create a folder "forge" within that directory, containing all
|
||||
extracted files.
|
||||
|
||||
You should use freshly decompiled jars, solely including ModLoader &
|
||||
ModLoaderMP respectively. Anything else can eventually cause conflicts.
|
||||
You should use freshly downloaded jars, solely including ModLoader &
|
||||
ModLoaderMP. Anything else can eventually cause conflicts.
|
||||
|
||||
Now just start the install-bat, MCForge will install itself into the proper
|
||||
locations and copy all ned files, as well as modifying the ned baseclasses.
|
||||
Now just start the install.cmd/.sh, MCForge will install itself into the proper
|
||||
locations and copy all needed files, as well as modifying the needed baseclasses.
|
||||
|
||||
Forge also includes a snapshot of the MCP mapings, this may not be the current
|
||||
version of the mapings. But you must use the provided mapings in order for the
|
||||
patch files to work together.
|
||||
|
||||
The install scripts should take care of everything for you, so you should not need
|
||||
to run ANY MCP script before installing forge.
|
||||
|
||||
+35
-12
@@ -5,27 +5,50 @@ echo:
|
||||
|
||||
pushd .. >nul
|
||||
|
||||
xcopy /Y /E /I forge\conf\* conf
|
||||
|
||||
if exist runtime\bin\fernflower.jar move runtime\bin\fernflower.jar runtime\bin\fernflower.jar-backup
|
||||
|
||||
cmd /C cleanup.bat
|
||||
cmd /C decompile.bat
|
||||
|
||||
if exist runtime\bin\fernflower.jar-backup move runtime\bin\fernflower.jar-backup runtime\bin\fernflower.jar
|
||||
|
||||
pushd src >nul
|
||||
del minecraft\net\minecraft\src\MLProp.java
|
||||
copy ..\forge\MLProp.java minecraft\net\minecraft\src\MLProp.java
|
||||
del minecraft_server\net\minecraft\src\MLProp.java
|
||||
copy ..\forge\MLProp.java minecraft_server\net\minecraft\src\MLProp.java
|
||||
|
||||
..\runtime\bin\python\python_mcp ..\forge\lfcr.py ../forge/modLoaderMP.patch ../forge/modLoaderMP.patch
|
||||
..\runtime\bin\applydiff.exe -uf -p2 -i ../forge/modLoaderMP.patch
|
||||
if exist ..\jars\bin\minecraft.jar (
|
||||
del minecraft\net\minecraft\src\MLProp.java
|
||||
copy ..\forge\MLProp.java minecraft\net\minecraft\src\MLProp.java
|
||||
|
||||
for /f "delims=" %%a in ('dir /a -d /b /S ..\forge\patches\minecraft') do (
|
||||
pushd "%%a" 2>nul
|
||||
if errorlevel 1 (
|
||||
..\runtime\bin\python\python_mcp ..\forge\lfcr.py "%%a" "%%a"
|
||||
..\runtime\bin\applydiff.exe -uf -p2 -i "%%a"
|
||||
) else popd
|
||||
)
|
||||
)
|
||||
|
||||
if exist ..\jars\minecraft_server.jar (
|
||||
del minecraft_server\net\minecraft\src\MLProp.java
|
||||
copy ..\forge\MLProp.java minecraft_server\net\minecraft\src\MLProp.java
|
||||
|
||||
for /f "delims=" %%a in ('dir /a -d /b /S ..\forge\patches') do (
|
||||
pushd "%%a" 2>nul
|
||||
if errorlevel 1 (
|
||||
..\runtime\bin\python\python_mcp ..\forge\lfcr.py "%%a" "%%a"
|
||||
..\runtime\bin\applydiff.exe -uf -p2 -i "%%a"
|
||||
) else popd
|
||||
..\runtime\bin\python\python_mcp ..\forge\lfcr.py ../forge/modLoaderMP.patch ../forge/modLoaderMP.patch
|
||||
..\runtime\bin\applydiff.exe -uf -p2 -i ../forge/modLoaderMP.patch
|
||||
|
||||
for /f "delims=" %%a in ('dir /a -d /b /S ..\forge\patches\minecraft_server') do (
|
||||
pushd "%%a" 2>nul
|
||||
if errorlevel 1 (
|
||||
..\runtime\bin\python\python_mcp ..\forge\lfcr.py "%%a" "%%a"
|
||||
..\runtime\bin\applydiff.exe -uf -p2 -i "%%a"
|
||||
) else popd
|
||||
)
|
||||
|
||||
)
|
||||
popd >nul
|
||||
|
||||
xcopy /Y /E forge\src\* src
|
||||
|
||||
cmd /C updatemcp.bat
|
||||
cmd /C updatenames.bat
|
||||
cmd /C updatemd5.bat
|
||||
+44
-10
@@ -5,21 +5,55 @@ echo
|
||||
|
||||
pushd .. > /dev/null
|
||||
|
||||
rm -rf conf
|
||||
mkdir conf
|
||||
cp -r forge/conf/* conf
|
||||
|
||||
if [ -f runtime/bin/fernflower.jar ];
|
||||
then
|
||||
mv runtime/bin/fernflower.jar runtime/bin/fernflower.jar-backup
|
||||
fi
|
||||
|
||||
./cleanup.sh
|
||||
./decompile.sh
|
||||
|
||||
if [ -f runtime/bin/fernflower.jar-backup ];
|
||||
then
|
||||
mv runtime/bin/fernflower.jar-backup runtime/bin/fernflower.jar
|
||||
fi
|
||||
|
||||
|
||||
pushd src > /dev/null
|
||||
find . -name *.java -exec sed -i 's/\r//g' \{\} \;
|
||||
cp ../forge/MLProp.java minecraft/net/minecraft/src/MLProp.java
|
||||
cp ../forge/MLProp.java minecraft_server/net/minecraft/src/MLProp.java
|
||||
patch -p2 -i ../forge/modLoaderMP.patch
|
||||
#patch -p1 -i ../forge/mlprop.patch
|
||||
for i in `find ../forge/patches/ -type f`
|
||||
do
|
||||
patch -p2 -i $i
|
||||
done
|
||||
find . -name *.java -exec sed -i 's/\r//g' \{\} \;
|
||||
find ../forge/ -name *.patch -exec sed -i 's/\r//g' \{\} \;
|
||||
|
||||
if [ -f ../jars/bin/minecraft.jar ];
|
||||
then
|
||||
cp ../forge/MLProp.java minecraft/net/minecraft/src/MLProp.java
|
||||
|
||||
for i in `find ../forge/patches/minecraft/ -type f`
|
||||
do
|
||||
patch -p2 -i $i
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
if [ -f ../jars/minecraft_server.jar ];
|
||||
then
|
||||
cp ../forge/MLProp.java minecraft_server/net/minecraft/src/MLProp.java
|
||||
|
||||
patch -p2 -i ../forge/modLoaderMP.patch
|
||||
|
||||
for i in `find ../forge/patches/minecraft_server/ -type f`
|
||||
do
|
||||
patch -p2 -i $i
|
||||
done
|
||||
fi
|
||||
popd > /dev/null
|
||||
|
||||
cp -r forge/src/* src
|
||||
|
||||
./updatemd5.sh
|
||||
|
||||
./updatemcp.sh
|
||||
./updatenames.sh
|
||||
./updatemd5.sh
|
||||
@@ -16,3 +16,5 @@ ScotTools Background: ScotTools was an API that enabled modders to add blocks to
|
||||
|
||||
* SpaceToad *
|
||||
|
||||
* LexManos *
|
||||
|
||||
@@ -55,11 +55,13 @@ mkdir src
|
||||
mkdir src/minecraft
|
||||
mkdir src/minecraft_server
|
||||
mkdir patches
|
||||
mkdir conf
|
||||
cp -r ../forge_client/src/* src/minecraft
|
||||
cp -r ../forge_server/src/* src/minecraft_server
|
||||
cp -r ../forge_common/* src/minecraft
|
||||
cp -r ../forge_common/* src/minecraft_server
|
||||
cp -r ../patches/* patches
|
||||
cp -r ../conf/* conf
|
||||
cp ../lfcr.py .
|
||||
cp ../install/install.cmd .
|
||||
cp ../install/install.sh .
|
||||
@@ -73,6 +75,8 @@ cd src
|
||||
remove_svn .
|
||||
cd ../patches
|
||||
remove_svn .
|
||||
cd ../conf
|
||||
remove_svn .
|
||||
cd ..
|
||||
|
||||
cd ..
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
}
|
||||
|
||||
public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l)
|
||||
@@ -438,25 +441,56 @@
|
||||
@@ -438,25 +441,70 @@
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
@@ -39,7 +39,14 @@
|
||||
+ }
|
||||
+
|
||||
+ /* FORGE: Metadata-sensitive version.
|
||||
+ *
|
||||
+ * This is deprecated in MC 1.0+ versions because of the new Enchantment
|
||||
+ * system requiring a new argument. Will be removed unless a valid reason
|
||||
+ * for it to remain is brought to light.
|
||||
+ *
|
||||
+ * Implementing this in your mod will not do anything!
|
||||
+ */
|
||||
+ @Deprecated
|
||||
+ public int quantityDropped(int meta, Random random)
|
||||
+ {
|
||||
+ return quantityDropped(meta, 0, random);
|
||||
@@ -87,14 +94,21 @@
|
||||
+ }
|
||||
+
|
||||
+ /* FORGE: This function returns the complete list of drops for a block.
|
||||
+ *
|
||||
+ * This is deprecated in MC 1.0+ versions because of the new Enchantment
|
||||
+ * system requiring a new argument. Will be removed unless a valid reason
|
||||
+ * for it to remain is brought to light.
|
||||
+ *
|
||||
+ * Implementing this in your mod will not do anything!
|
||||
+ */
|
||||
+ @Deprecated
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world,
|
||||
+ int i, int j, int k, int md) {
|
||||
+ return getBlockDropped (world, i, j, k, md);
|
||||
+ return getBlockDropped (world, i, j, k, md, 0);
|
||||
}
|
||||
|
||||
public final void dropBlockAsItem(World world, int i, int j, int k, int l, int i1)
|
||||
@@ -470,18 +504,13 @@
|
||||
@@ -470,18 +518,13 @@
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -116,7 +130,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
@@ -805,6 +834,107 @@
|
||||
@@ -805,6 +848,200 @@
|
||||
return iblockaccess.isBlockNormalCube(i, j, k) ? 0.2F : 1.0F;
|
||||
}
|
||||
|
||||
@@ -220,6 +234,99 @@
|
||||
+ public void addCreativeItems(ArrayList itemList)
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ protected static int blockFireSpreadSpeed[] = new int[256];
|
||||
+ protected static int blockFlammability[] = new int[256];
|
||||
+
|
||||
+ /**
|
||||
+ * Chance that fire will spread and consume this block.
|
||||
+ * 300 being a 100% chance, 0, being a 0% chance.
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return A number ranging from 0 to 300 relating used to determine if the block will be consumed by fire
|
||||
+ */
|
||||
+ public int getFlammability(IBlockAccess world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ return blockFlammability[blockID];
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when fire is updating, checks if a block face can catch fire.
|
||||
+ *
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return True if the face can be on fire, false otherwise.
|
||||
+ */
|
||||
+ public boolean isFlammable(IBlockAccess world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ return getFlammability(world, x, y, z, metadata, face) > 0;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when fire is updating on a neighbor block.
|
||||
+ * The higher the number returned, the faster fire will spread around this block.
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return A number that is used to determine the speed of fire growth around the block
|
||||
+ */
|
||||
+ public int getFireSpreadSpeed(World world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ return blockFireSpreadSpeed[blockID];
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Currently only called by fire when it is on top of this block.
|
||||
+ * Returning true will prevent the fire from naturally dying during updating.
|
||||
+ * Also prevents firing from dying from rain.
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return
|
||||
+ */
|
||||
+ public boolean isFireSource(World world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ if (blockID == Block.netherrack.blockID && face == 0)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if ((world.worldProvider instanceof WorldProviderEnd) && blockID == Block.bedrock.blockID && face == 0)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called by BlockFire to setup the burn values of vanilla blocks.
|
||||
+ * @param id The block id
|
||||
+ * @param encouragement How much the block encourages fire to spread
|
||||
+ * @param flammability how easy a block is to catch fire
|
||||
+ */
|
||||
+ public static void setBurnProperties(int id, int encouragement, int flammability)
|
||||
+ {
|
||||
+ blockFireSpreadSpeed[id] = encouragement;
|
||||
+ blockFlammability[id] = flammability;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
static Class _mthclass$(String s)
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// BlockFlower, Block, World, EntityItem,
|
||||
@@ -108,28 +109,16 @@
|
||||
@@ -108,28 +109,22 @@
|
||||
return 6;
|
||||
}
|
||||
|
||||
@@ -16,31 +16,32 @@
|
||||
- {
|
||||
- super.dropBlockAsItemWithChance(world, i, j, k, l, f, 0);
|
||||
- if(world.multiplayerWorld)
|
||||
- {
|
||||
- return;
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world,
|
||||
+ int i, int j, int k, int md) {
|
||||
+ @Override
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world, int i, int j, int k, int md, int fortune) {
|
||||
+ ArrayList<ItemStack> tr = new ArrayList<ItemStack>();
|
||||
+ if (md == 7) tr.add(new ItemStack(Item.wheat));
|
||||
+
|
||||
+ for(int n = 0; n < 3; n++) {
|
||||
+ if (world.rand.nextInt(15) <= md)
|
||||
+ tr.add(new ItemStack(Item.seeds));
|
||||
+ if (md == 7)
|
||||
{
|
||||
- return;
|
||||
+ tr.add(new ItemStack(Item.wheat));
|
||||
}
|
||||
- int j1 = 3 + i1;
|
||||
- for(int k1 = 0; k1 < j1; k1++)
|
||||
- {
|
||||
+
|
||||
+ for(int n = 0; n < 3+fortune; n++)
|
||||
{
|
||||
- if(world.rand.nextInt(15) <= l)
|
||||
- {
|
||||
+ if (world.rand.nextInt(15) <= md)
|
||||
{
|
||||
- float f1 = 0.7F;
|
||||
- float f2 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
|
||||
- float f3 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
|
||||
- float f4 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
|
||||
- EntityItem entityitem = new EntityItem(world, (float)i + f2, (float)j + f3, (float)k + f4, new ItemStack(Item.seeds));
|
||||
- entityitem.delayBeforeCanPickup = 10;
|
||||
- world.entityJoinedWorld(entityitem);
|
||||
- }
|
||||
- }
|
||||
- world.spawnEntityInWorld(entityitem);
|
||||
+ tr.add(new ItemStack(Item.seeds));
|
||||
}
|
||||
}
|
||||
-
|
||||
+ return tr;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,286 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -14,14 +14,14 @@
|
||||
public class BlockFire extends Block
|
||||
{
|
||||
|
||||
- private int chanceToEncourageFire[];
|
||||
- private int abilityToCatchFire[];
|
||||
-
|
||||
+ private int chanceToEncourageFire[];
|
||||
+ private int abilityToCatchFire[];
|
||||
+
|
||||
protected BlockFire(int i, int j)
|
||||
{
|
||||
super(i, j, Material.fire);
|
||||
- chanceToEncourageFire = new int[256];
|
||||
- abilityToCatchFire = new int[256];
|
||||
+ chanceToEncourageFire = Block.blockFireSpreadSpeed;
|
||||
+ abilityToCatchFire = Block.blockFlammability;
|
||||
setTickOnLoad(true);
|
||||
}
|
||||
|
||||
@@ -38,11 +38,10 @@
|
||||
setBurnRate(Block.cloth.blockID, 30, 60);
|
||||
setBurnRate(Block.vine.blockID, 15, 100);
|
||||
}
|
||||
-
|
||||
+
|
||||
private void setBurnRate(int i, int j, int k)
|
||||
{
|
||||
- chanceToEncourageFire[i] = j;
|
||||
- abilityToCatchFire[i] = k;
|
||||
+ Block.setBurnProperties(i, j, k);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
|
||||
@@ -77,11 +76,9 @@
|
||||
|
||||
public void updateTick(World world, int i, int j, int k, Random random)
|
||||
{
|
||||
- boolean flag = world.getBlockId(i, j - 1, k) == Block.netherrack.blockID;
|
||||
- if((world.worldProvider instanceof WorldProviderEnd) && world.getBlockId(i, j - 1, k) == Block.bedrock.blockID)
|
||||
- {
|
||||
- flag = true;
|
||||
- }
|
||||
+ Block base = Block.blocksList[world.getBlockId(i, j - 1, k)];
|
||||
+ boolean flag = (base != null && base.isFireSource(world, i, j - 1, k, world.getBlockMetadata(i, j - 1, k), 0));
|
||||
+
|
||||
if(!canPlaceBlockAt(world, i, j, k))
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
@@ -99,23 +96,23 @@
|
||||
world.scheduleBlockUpdate(i, j, k, blockID, tickRate());
|
||||
if(!flag && !func_263_h(world, i, j, k))
|
||||
{
|
||||
- if(!world.isBlockNormalCube(i, j - 1, k) || l > 3)
|
||||
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 0) || l > 3)
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
- if(!flag && !canBlockCatchFire(world, i, j - 1, k) && l == 15 && random.nextInt(4) == 0)
|
||||
+ if(!flag && !canBlockCatchFire(world, i, j - 1, k, 0) && l == 15 && random.nextInt(4) == 0)
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
return;
|
||||
}
|
||||
- tryToCatchBlockOnFire(world, i + 1, j, k, 300, random, l);
|
||||
- tryToCatchBlockOnFire(world, i - 1, j, k, 300, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j, k - 1, 300, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l);
|
||||
+ tryToCatchBlockOnFire(world, i + 1, j, k, 300, random, l, 4);
|
||||
+ tryToCatchBlockOnFire(world, i - 1, j, k, 300, random, l, 5);
|
||||
+ tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l, 0);
|
||||
+ tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l, 1);
|
||||
+ tryToCatchBlockOnFire(world, i, j, k - 1, 300, random, l, 3);
|
||||
+ tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l, 2);
|
||||
for(int i1 = i - 1; i1 <= i + 1; i1++)
|
||||
{
|
||||
for(int j1 = k - 1; j1 <= k + 1; j1++)
|
||||
@@ -155,9 +152,23 @@
|
||||
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
|
||||
+ */
|
||||
+ @Deprecated
|
||||
private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1)
|
||||
{
|
||||
- int j1 = abilityToCatchFire[world.getBlockId(i, j, k)];
|
||||
+ tryToCatchBlockOnFire(world, i, j, k, l, random, i1, 0);
|
||||
+ }
|
||||
+
|
||||
+ private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1, int face)
|
||||
+ {
|
||||
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
|
||||
+ int j1 = 0;
|
||||
+ if (block != null)
|
||||
+ {
|
||||
+ j1 = block.getFlammability(world, i, j, k, world.getBlockMetadata(i, j, k), face);
|
||||
+ }
|
||||
if(random.nextInt(l) < j1)
|
||||
{
|
||||
boolean flag = world.getBlockId(i, j, k) == Block.tnt.blockID;
|
||||
@@ -182,27 +193,27 @@
|
||||
|
||||
private boolean func_263_h(World world, int i, int j, int k)
|
||||
{
|
||||
- if(canBlockCatchFire(world, i + 1, j, k))
|
||||
+ if(canBlockCatchFire(world, i + 1, j, k, 4))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i - 1, j, k))
|
||||
+ if(canBlockCatchFire(world, i - 1, j, k, 5))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i, j - 1, k))
|
||||
+ if(canBlockCatchFire(world, i, j - 1, k, 0))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i, j + 1, k))
|
||||
+ if(canBlockCatchFire(world, i, j + 1, k, 1))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i, j, k - 1))
|
||||
+ if(canBlockCatchFire(world, i, j, k - 1, 3))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- return canBlockCatchFire(world, i, j, k + 1);
|
||||
+ return canBlockCatchFire(world, i, j, k + 1, 2);
|
||||
}
|
||||
|
||||
private int getChanceOfNeighborsEncouragingFire(World world, int i, int j, int k)
|
||||
@@ -213,12 +224,12 @@
|
||||
return 0;
|
||||
} else
|
||||
{
|
||||
- l = getChanceToEncourageFire(world, i + 1, j, k, l);
|
||||
- l = getChanceToEncourageFire(world, i - 1, j, k, l);
|
||||
- l = getChanceToEncourageFire(world, i, j - 1, k, l);
|
||||
- l = getChanceToEncourageFire(world, i, j + 1, k, l);
|
||||
- l = getChanceToEncourageFire(world, i, j, k - 1, l);
|
||||
- l = getChanceToEncourageFire(world, i, j, k + 1, l);
|
||||
+ l = getChanceToEncourageFire(world, i + 1, j, k, l, 5);
|
||||
+ l = getChanceToEncourageFire(world, i - 1, j, k, l, 4);
|
||||
+ l = getChanceToEncourageFire(world, i, j - 1, k, l, 0);
|
||||
+ l = getChanceToEncourageFire(world, i, j + 1, k, l, 1);
|
||||
+ l = getChanceToEncourageFire(world, i, j, k - 1, l, 3);
|
||||
+ l = getChanceToEncourageFire(world, i, j, k + 1, l, 2);
|
||||
return l;
|
||||
}
|
||||
}
|
||||
@@ -227,15 +238,43 @@
|
||||
{
|
||||
return false;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ /*
|
||||
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
|
||||
+ */
|
||||
+ @Deprecated
|
||||
public boolean canBlockCatchFire(IBlockAccess iblockaccess, int i, int j, int k)
|
||||
{
|
||||
- return chanceToEncourageFire[iblockaccess.getBlockId(i, j, k)] > 0;
|
||||
+ return canBlockCatchFire(iblockaccess, i, j, k, 0);
|
||||
}
|
||||
|
||||
+ public boolean canBlockCatchFire(IBlockAccess world, int i, int j, int k, int face)
|
||||
+ {
|
||||
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
|
||||
+ if (block != null)
|
||||
+ {
|
||||
+ return block.isFlammable(world, i, j, k, world.getBlockMetadata(i, j, k), face);
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
|
||||
+ */
|
||||
+ @Deprecated
|
||||
public int getChanceToEncourageFire(World world, int i, int j, int k, int l)
|
||||
{
|
||||
- int i1 = chanceToEncourageFire[world.getBlockId(i, j, k)];
|
||||
+ return getChanceToEncourageFire(world, i, j, k, l, 0);
|
||||
+ }
|
||||
+
|
||||
+ public int getChanceToEncourageFire(World world, int i, int j, int k, int l, int face)
|
||||
+ {
|
||||
+ int i1 = 0;
|
||||
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
|
||||
+ if (block != null)
|
||||
+ {
|
||||
+ i1 = block.getFireSpreadSpeed(world, i, j, k, world.getBlockMetadata(i, j, k), face);
|
||||
+ }
|
||||
if(i1 > l)
|
||||
{
|
||||
return i1;
|
||||
@@ -247,12 +286,12 @@
|
||||
|
||||
public boolean canPlaceBlockAt(World world, int i, int j, int k)
|
||||
{
|
||||
- return world.isBlockNormalCube(i, j - 1, k) || func_263_h(world, i, j, k);
|
||||
+ return world.isBlockSolidOnSide(i, j - 1, k, 0) || func_263_h(world, i, j, k);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World world, int i, int j, int k, int l)
|
||||
{
|
||||
- if(!world.isBlockNormalCube(i, j - 1, k) && !func_263_h(world, i, j, k))
|
||||
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 0) && !func_263_h(world, i, j, k))
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
return;
|
||||
@@ -268,7 +307,7 @@
|
||||
{
|
||||
return;
|
||||
}
|
||||
- if(!world.isBlockNormalCube(i, j - 1, k) && !func_263_h(world, i, j, k))
|
||||
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 0) && !func_263_h(world, i, j, k))
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
return;
|
||||
@@ -285,7 +324,7 @@
|
||||
{
|
||||
world.playSoundEffect((float)i + 0.5F, (float)j + 0.5F, (float)k + 0.5F, "fire.fire", 1.0F + random.nextFloat(), random.nextFloat() * 0.7F + 0.3F);
|
||||
}
|
||||
- if(world.isBlockNormalCube(i, j - 1, k) || Block.fire.canBlockCatchFire(world, i, j - 1, k))
|
||||
+ if(world.isBlockSolidOnSide(i, j - 1, k, 0) || Block.fire.canBlockCatchFire(world, i, j - 1, k, 0))
|
||||
{
|
||||
for(int l = 0; l < 3; l++)
|
||||
{
|
||||
@@ -297,7 +336,7 @@
|
||||
|
||||
} else
|
||||
{
|
||||
- if(Block.fire.canBlockCatchFire(world, i - 1, j, k))
|
||||
+ if(Block.fire.canBlockCatchFire(world, i - 1, j, k, 4))
|
||||
{
|
||||
for(int i1 = 0; i1 < 2; i1++)
|
||||
{
|
||||
@@ -308,7 +347,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(world, i + 1, j, k))
|
||||
+ if(Block.fire.canBlockCatchFire(world, i + 1, j, k, 5))
|
||||
{
|
||||
for(int j1 = 0; j1 < 2; j1++)
|
||||
{
|
||||
@@ -319,7 +358,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(world, i, j, k - 1))
|
||||
+ if(Block.fire.canBlockCatchFire(world, i, j, k - 1, 3))
|
||||
{
|
||||
for(int k1 = 0; k1 < 2; k1++)
|
||||
{
|
||||
@@ -330,7 +369,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(world, i, j, k + 1))
|
||||
+ if(Block.fire.canBlockCatchFire(world, i, j, k + 1, 2))
|
||||
{
|
||||
for(int l1 = 0; l1 < 2; l1++)
|
||||
{
|
||||
@@ -341,7 +380,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(world, i, j + 1, k))
|
||||
+ if(Block.fire.canBlockCatchFire(world, i, j + 1, k, 1))
|
||||
{
|
||||
for(int i2 = 0; i2 < 2; i2++)
|
||||
{
|
||||
@@ -0,0 +1,56 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/BlockNetherStalk.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/BlockNetherStalk.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
+import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
@@ -65,26 +66,26 @@
|
||||
return 6;
|
||||
}
|
||||
|
||||
- public void dropBlockAsItemWithChance(World world, int i, int j, int k, int l, float f, int i1)
|
||||
+ @Override
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world, int i, int j, int k, int md, int fortune)
|
||||
{
|
||||
- if(world.multiplayerWorld)
|
||||
- {
|
||||
- return;
|
||||
- }
|
||||
- int j1 = 1;
|
||||
- if(l >= 3)
|
||||
- {
|
||||
- j1 = 2 + world.rand.nextInt(3);
|
||||
- if(i1 > 0)
|
||||
- {
|
||||
- j1 += world.rand.nextInt(i1 + 1);
|
||||
- }
|
||||
- }
|
||||
- for(int k1 = 0; k1 < j1; k1++)
|
||||
- {
|
||||
- dropBlockAsItem_do(world, i, j, k, new ItemStack(Item.netherStalkSeeds));
|
||||
- }
|
||||
-
|
||||
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
||||
+
|
||||
+ int count = 1;
|
||||
+ if (md >= 3)
|
||||
+ {
|
||||
+ count = 2 + world.rand.nextInt(3);
|
||||
+ if (fortune > 0)
|
||||
+ {
|
||||
+ count += world.rand.nextInt(fortune + 1);
|
||||
+ }
|
||||
+ }
|
||||
+ for (int n = 0; n < count; n++)
|
||||
+ {
|
||||
+ ret.add(new ItemStack(Item.netherStalkSeeds));
|
||||
+ }
|
||||
+ return ret;
|
||||
+
|
||||
}
|
||||
|
||||
public int idDropped(int i, Random random, int j)
|
||||
@@ -0,0 +1,29 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/BlockSnow.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/BlockSnow.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -82,15 +82,8 @@
|
||||
|
||||
public void harvestBlock(World world, EntityPlayer entityplayer, int i, int j, int k, int l)
|
||||
{
|
||||
- int i1 = Item.snowball.shiftedIndex;
|
||||
- float f = 0.7F;
|
||||
- double d = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
- double d1 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
- double d2 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
- EntityItem entityitem = new EntityItem(world, (double)i + d, (double)j + d1, (double)k + d2, new ItemStack(i1, 1, 0));
|
||||
- entityitem.delayBeforeCanPickup = 10;
|
||||
- world.spawnEntityInWorld(entityitem);
|
||||
- world.setBlockWithNotify(i, j, k, 0);
|
||||
+
|
||||
+ dropBlockAsItem(world,i,j,k,l,0);
|
||||
entityplayer.addStat(StatList.mineBlockStatArray[blockID], 1);
|
||||
}
|
||||
|
||||
@@ -101,7 +94,7 @@
|
||||
|
||||
public int quantityDropped(Random random)
|
||||
{
|
||||
- return 0;
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
public void updateTick(World world, int i, int j, int k, Random random)
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// BlockFlower, ColorizerGrass, ColorizerFoliage, IBlockAccess,
|
||||
@@ -73,13 +76,17 @@
|
||||
@@ -73,13 +76,24 @@
|
||||
|
||||
public int idDropped(int i, Random random, int j)
|
||||
{
|
||||
@@ -25,13 +25,20 @@
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world,
|
||||
+ int i, int j, int k, int md) {
|
||||
+ ArrayList<ItemStack> tr=new ArrayList<ItemStack>();
|
||||
+ if(world.rand.nextInt(8)!=0)
|
||||
+ @Override
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world, int i, int j, int k, int md, int fortune)
|
||||
+ {
|
||||
+ ArrayList<ItemStack> tr = new ArrayList<ItemStack>();
|
||||
+ if(world.rand.nextInt(8) != 0)
|
||||
+ {
|
||||
+ return tr;
|
||||
+ ItemStack ist=ForgeHooks.getGrassSeed(world);
|
||||
+ if(ist!=null) tr.add(ist);
|
||||
+ }
|
||||
+
|
||||
+ ItemStack ist = ForgeHooks.getGrassSeed(world);
|
||||
+ if (ist != null)
|
||||
+ {
|
||||
+ tr.add(ist);
|
||||
+ }
|
||||
+ return tr;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+++ ../src_work/minecraft/net/minecraft/src/BlockTorch.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
private boolean func_31032_h(World world, int i, int j, int k)
|
||||
private boolean canPlaceTorchOn(World world, int i, int j, int k)
|
||||
{
|
||||
- if(world.func_41082_b(i, j, k, true))
|
||||
+ if(world.isBlockSolidOnSide(i, j, k, 1))
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
worldObj.setBlockTileEntity(i, j, k, tileentity);
|
||||
}
|
||||
if(tileentity != null)
|
||||
@@ -398,14 +399,6 @@
|
||||
tileentity.func_35144_b();
|
||||
@@ -398,15 +399,7 @@
|
||||
tileentity.updateContainingBlockInfo();
|
||||
}
|
||||
}
|
||||
- } else
|
||||
@@ -27,11 +27,13 @@
|
||||
- TileEntity tileentity1 = getChunkBlockTileEntity(i, j, k);
|
||||
- if(tileentity1 != null)
|
||||
- {
|
||||
- tileentity1.func_35144_b();
|
||||
- tileentity1.updateContainingBlockInfo();
|
||||
- }
|
||||
}
|
||||
- }
|
||||
+ }
|
||||
isModified = true;
|
||||
return true;
|
||||
}
|
||||
@@ -430,7 +423,11 @@
|
||||
blocks[i << worldObj.xShift | k << worldObj.heightShift | j] = (byte)(byte0 & 0xff);
|
||||
if(k1 != 0)
|
||||
@@ -55,7 +57,7 @@
|
||||
}
|
||||
if(tileentity != null)
|
||||
@@ -466,14 +463,6 @@
|
||||
tileentity.func_35144_b();
|
||||
tileentity.updateContainingBlockInfo();
|
||||
}
|
||||
}
|
||||
- } else
|
||||
@@ -64,7 +66,7 @@
|
||||
- TileEntity tileentity1 = getChunkBlockTileEntity(i, j, k);
|
||||
- if(tileentity1 != null)
|
||||
- {
|
||||
- tileentity1.func_35144_b();
|
||||
- tileentity1.updateContainingBlockInfo();
|
||||
- }
|
||||
}
|
||||
isModified = true;
|
||||
@@ -138,7 +140,7 @@
|
||||
+ Iterator iterator = chunkTileEntityMap.values().iterator();
|
||||
+ while (iterator.hasNext()){
|
||||
+ te = (TileEntity)iterator.next();
|
||||
+ te.func_35144_b();
|
||||
+ te.updateContainingBlockInfo();
|
||||
+ te.getBlockMetadata();
|
||||
+ te.getBlockType();
|
||||
+ }
|
||||
@@ -146,17 +148,18 @@
|
||||
for(int l1 = i; l1 < l; l1++)
|
||||
{
|
||||
for(int l2 = k; l2 < j1; l2++)
|
||||
@@ -859,12 +869,25 @@
|
||||
@@ -859,12 +869,29 @@
|
||||
|
||||
}
|
||||
|
||||
- TileEntity tileentity;
|
||||
- for(Iterator iterator = chunkTileEntityMap.values().iterator(); iterator.hasNext(); tileentity.func_35144_b())
|
||||
- for(Iterator iterator = chunkTileEntityMap.values().iterator(); iterator.hasNext(); tileentity.updateContainingBlockInfo())
|
||||
- {
|
||||
- tileentity = (TileEntity)iterator.next();
|
||||
+ List<TileEntity> invalidList=new ArrayList();
|
||||
+ iterator = chunkTileEntityMap.values().iterator();
|
||||
+ while(iterator.hasNext()) {
|
||||
+ while(iterator.hasNext())
|
||||
+ {
|
||||
+ te = (TileEntity)iterator.next();
|
||||
+ if ((te.xCoord & 15) >= i && (te.xCoord & 15) <= l &&
|
||||
+ (te.yCoord >= j) && (te.yCoord <= i1) &&
|
||||
@@ -171,9 +174,11 @@
|
||||
+ invalidList.add(te);
|
||||
+ }
|
||||
}
|
||||
-
|
||||
|
||||
+ for(TileEntity te2 : invalidList)
|
||||
+ {
|
||||
+ te2.invalidate();
|
||||
+ }
|
||||
return k1;
|
||||
}
|
||||
|
||||
@@ -11,8 +11,26 @@
|
||||
import java.util.*;
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
@@ -548,6 +552,8 @@
|
||||
worldObj.entityJoinedWorld(entityitem);
|
||||
@@ -502,7 +506,16 @@
|
||||
|
||||
public void dropCurrentItem()
|
||||
{
|
||||
- dropPlayerItemWithRandomChoice(inventory.decrStackSize(inventory.currentItem, 1), false);
|
||||
+ ItemStack stack = inventory.getCurrentItem();
|
||||
+ if (stack == null)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (stack.getItem().onDroppedByPlayer(stack, this))
|
||||
+ {
|
||||
+ dropPlayerItemWithRandomChoice(inventory.decrStackSize(inventory.currentItem, 1), false);
|
||||
+ }
|
||||
}
|
||||
|
||||
public void dropPlayerItem(ItemStack itemstack)
|
||||
@@ -548,6 +561,8 @@
|
||||
worldObj.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
|
||||
+ /* FORGE: This isnt called anymore
|
||||
@@ -20,7 +38,7 @@
|
||||
public float getCurrentPlayerStrVsBlock(Block block)
|
||||
{
|
||||
float f = inventory.getStrVsBlock(block);
|
||||
@@ -576,6 +582,45 @@
|
||||
@@ -576,6 +591,45 @@
|
||||
return f1;
|
||||
}
|
||||
|
||||
@@ -66,7 +84,7 @@
|
||||
public boolean canHarvestBlock(Block block)
|
||||
{
|
||||
return inventory.canHarvestBlock(block);
|
||||
@@ -774,6 +819,25 @@
|
||||
@@ -774,6 +828,25 @@
|
||||
|
||||
protected void damageEntity(DamageSource damagesource, int i)
|
||||
{
|
||||
@@ -89,10 +107,10 @@
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if(!damagesource.unblockable() && func_35162_ad())
|
||||
if(!damagesource.isUnblockable() && func_35162_ad())
|
||||
{
|
||||
i = 1 + i >> 1;
|
||||
@@ -825,7 +889,9 @@
|
||||
@@ -825,7 +898,9 @@
|
||||
|
||||
public void destroyCurrentEquippedItem()
|
||||
{
|
||||
@@ -102,7 +120,7 @@
|
||||
}
|
||||
|
||||
public double getYOffset()
|
||||
@@ -957,6 +1023,10 @@
|
||||
@@ -957,6 +1032,10 @@
|
||||
|
||||
public EnumStatus sleepInBedAt(int i, int j, int k)
|
||||
{
|
||||
|
||||
@@ -34,3 +34,12 @@
|
||||
GL11.glEnable(3008 /*GL_ALPHA_TEST*/);
|
||||
}
|
||||
Profiler.endStartSection("weather");
|
||||
@@ -988,6 +993,8 @@
|
||||
setupFog(1, f);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
+ Profiler.endStartSection("fhooks");
|
||||
+ ForgeHooksClient.onRenderWorldLast(renderglobal,f);
|
||||
Profiler.endStartSection("hand");
|
||||
if(cameraZoom == 1.0D)
|
||||
{
|
||||
@@ -9,7 +9,7 @@
|
||||
import java.util.Random;
|
||||
|
||||
@@ -177,6 +178,9 @@
|
||||
private String field_39010_c;
|
||||
private String potionModifier;
|
||||
private String itemName;
|
||||
|
||||
+ // FORGE: To disable repair recipes.
|
||||
@@ -18,7 +18,22 @@
|
||||
protected Item(int i)
|
||||
{
|
||||
maxStackSize = 64;
|
||||
@@ -231,6 +235,13 @@
|
||||
@@ -221,6 +225,14 @@
|
||||
return getIconFromDamage(itemstack.getItemDamage());
|
||||
}
|
||||
|
||||
+ /* FORGE: This is called when the item is used, before the block is
|
||||
+ * activated. Return true to prevent any further processing.
|
||||
+ */
|
||||
+ public boolean onItemUseFirst(ItemStack ist, EntityPlayer player,
|
||||
+ World world, int i, int j, int k, int l) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l)
|
||||
{
|
||||
return false;
|
||||
@@ -231,6 +243,13 @@
|
||||
return 1.0F;
|
||||
}
|
||||
|
||||
@@ -32,7 +47,7 @@
|
||||
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
|
||||
{
|
||||
return itemstack;
|
||||
@@ -278,6 +289,29 @@
|
||||
@@ -278,6 +297,29 @@
|
||||
return maxDamage > 0 && !hasSubtypes;
|
||||
}
|
||||
|
||||
@@ -62,7 +77,7 @@
|
||||
public boolean hitEntity(ItemStack itemstack, EntityLiving entityliving, EntityLiving entityliving1)
|
||||
{
|
||||
return false;
|
||||
@@ -473,6 +507,18 @@
|
||||
@@ -473,6 +515,32 @@
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -77,6 +92,20 @@
|
||||
+ {
|
||||
+ itemList.add(new ItemStack(this, 1));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when a player drops the item into the world,
|
||||
+ * returning false from this will prevent the item from
|
||||
+ * being removed from the players inventory and spawning
|
||||
+ * in the world
|
||||
+ *
|
||||
+ * @param player The player that dropped the item
|
||||
+ * @param item The item stack, before the item is removed.
|
||||
+ */
|
||||
+ public boolean onDroppedByPlayer(ItemStack item, EntityPlayer player)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
static
|
||||
|
||||
@@ -10,27 +10,32 @@
|
||||
import java.util.Random;
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
@@ -45,13 +47,18 @@
|
||||
@@ -45,13 +47,23 @@
|
||||
|
||||
public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l)
|
||||
{
|
||||
- if(!entityplayer.func_35190_e(i, j, k))
|
||||
+ if(entityplayer!=null && !entityplayer.func_35190_e(i, j, k))
|
||||
- if(!entityplayer.canPlayerEdit(i, j, k))
|
||||
+ if(entityplayer != null && !entityplayer.canPlayerEdit(i, j, k))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(itemstack.getItemDamage() == 15)
|
||||
{
|
||||
int i1 = world.getBlockId(i, j, k);
|
||||
+ if(ForgeHooks.onUseBonemeal(world,i1,i,j,k)) {
|
||||
+ if(!world.multiplayerWorld)
|
||||
+ itemstack.stackSize--;
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ if (ForgeHooks.onUseBonemeal(world, i1, i, j, k))
|
||||
+ {
|
||||
+ if (!world.multiplayerWorld)
|
||||
+ {
|
||||
+ itemstack.stackSize--;
|
||||
+ }
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
if(i1 == Block.sapling.blockID)
|
||||
{
|
||||
if(!world.multiplayerWorld)
|
||||
@@ -118,13 +125,7 @@
|
||||
@@ -118,13 +130,7 @@
|
||||
world.setBlockAndMetadataWithNotify(k1, l1, i2, Block.tallGrass.blockID, 1);
|
||||
continue;
|
||||
}
|
||||
@@ -45,7 +50,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
@@ -147,5 +148,17 @@
|
||||
@@ -147,5 +153,17 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,24 +19,27 @@
|
||||
+ ICustomItemRenderer customRenderer = MinecraftForgeClient.getCustomItemRenderer(itemstack.itemID);
|
||||
+
|
||||
+ if (customRenderer != null) {
|
||||
+ GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
|
||||
+ ForgeHooksClient.overrideTexture (itemstack.getItem());
|
||||
+ String tex = ForgeHooksClient.getTexture("/terrain.png", itemstack.getItem());
|
||||
+ GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture(tex));
|
||||
+ ForgeHooksClient.renderCustomItem(customRenderer, renderBlocksInstance, itemstack.itemID, itemstack.getItemDamage(), entityliving.getEntityBrightness(1.0F));
|
||||
+ } else if(itemstack.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack.itemID].getRenderType()))
|
||||
{
|
||||
GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
|
||||
+ ForgeHooksClient.overrideTexture (Block.blocksList[itemstack.itemID]);
|
||||
- GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
|
||||
+ String tex = ForgeHooksClient.getTexture("/terrain.png", Block.blocksList[itemstack.itemID]);
|
||||
+ GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture(tex));
|
||||
renderBlocksInstance.renderBlockAsItem(Block.blocksList[itemstack.itemID], itemstack.getItemDamage(), 1.0F);
|
||||
} else
|
||||
{
|
||||
if(itemstack.itemID < 256)
|
||||
{
|
||||
GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
|
||||
+ ForgeHooksClient.overrideTexture (Block.blocksList[itemstack.itemID]);
|
||||
- GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/terrain.png"));
|
||||
+ String tex = ForgeHooksClient.getTexture("/terrain.png", Block.blocksList[itemstack.itemID]);
|
||||
+ GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture(tex));
|
||||
} else
|
||||
{
|
||||
GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/items.png"));
|
||||
+ ForgeHooksClient.overrideTexture (Item.itemsList[itemstack.itemID]);
|
||||
- GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture("/gui/items.png"));
|
||||
+ String tex = ForgeHooksClient.getTexture("/gui/items.png", Item.itemsList[itemstack.itemID]);
|
||||
+ GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, mc.renderEngine.getTexture(tex));
|
||||
}
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
int j = entityliving.getItemIcon(itemstack, i);
|
||||
@@ -0,0 +1,15 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/PlayerControllerCreative.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/PlayerControllerCreative.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -58,6 +58,12 @@
|
||||
|
||||
public boolean onPlayerRightClick(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l)
|
||||
{
|
||||
+ if (itemstack != null) {
|
||||
+ Item it=itemstack.getItem();
|
||||
+ if (it.onItemUseFirst(itemstack, entityplayer, world, i, j, k, l)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
int i1 = world.getBlockId(i, j, k);
|
||||
if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer))
|
||||
{
|
||||
@@ -1,66 +1,68 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/PlayerControllerMP.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/PlayerControllerMP.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -4,6 +4,9 @@
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
+import net.minecraft.src.forge.IUseItemFirst;
|
||||
+import net.minecraft.src.forge.ForgeHooks;
|
||||
+
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
@@ -68,13 +71,16 @@
|
||||
@@ -68,13 +70,19 @@
|
||||
|
||||
public boolean sendBlockRemoved(int i, int j, int k, int l)
|
||||
public boolean onPlayerDestroyBlock(int i, int j, int k, int l)
|
||||
{
|
||||
+ ItemStack itemstack = mc.thePlayer.getCurrentEquippedItem();
|
||||
+ if(itemstack!=null && itemstack.getItem().onBlockStartBreak(itemstack,
|
||||
+ i,j,k,mc.thePlayer))
|
||||
+ return false;
|
||||
+ ItemStack itemstack = mc.thePlayer.getCurrentEquippedItem();
|
||||
+ if (itemstack != null && itemstack.getItem().onBlockStartBreak(itemstack, i, j, k, mc.thePlayer))
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
if(creativeMode)
|
||||
{
|
||||
return super.sendBlockRemoved(i, j, k, l);
|
||||
return super.onPlayerDestroyBlock(i, j, k, l);
|
||||
}
|
||||
int i1 = mc.theWorld.getBlockId(i, j, k);
|
||||
boolean flag = super.sendBlockRemoved(i, j, k, l);
|
||||
boolean flag = super.onPlayerDestroyBlock(i, j, k, l);
|
||||
- ItemStack itemstack = mc.thePlayer.getCurrentEquippedItem();
|
||||
+
|
||||
if(itemstack != null)
|
||||
{
|
||||
itemstack.onDestroyBlock(i1, i, j, k, mc.thePlayer);
|
||||
@@ -103,7 +109,7 @@
|
||||
@@ -103,7 +111,7 @@
|
||||
{
|
||||
Block.blocksList[i1].onBlockClicked(mc.theWorld, i, j, k, mc.thePlayer);
|
||||
}
|
||||
- if(i1 > 0 && Block.blocksList[i1].blockStrength(mc.thePlayer) >= 1.0F)
|
||||
+ if(i1 > 0 && Block.blocksList[i1].blockStrength(mc.theWorld,mc.thePlayer,i,j,k) >= 1.0F)
|
||||
{
|
||||
sendBlockRemoved(i, j, k, l);
|
||||
onPlayerDestroyBlock(i, j, k, l);
|
||||
} else
|
||||
@@ -149,7 +155,7 @@
|
||||
@@ -149,7 +157,7 @@
|
||||
return;
|
||||
}
|
||||
Block block = Block.blocksList[i1];
|
||||
- curBlockDamageMP += block.blockStrength(mc.thePlayer);
|
||||
+ curBlockDamageMP += block.blockStrength(mc.theWorld,mc.thePlayer,i,j,k);
|
||||
+ curBlockDamageMP += block.blockStrength(mc.theWorld, mc.thePlayer, i, j, k);
|
||||
if(stepSoundTickCounter % 4F == 0.0F && block != null)
|
||||
{
|
||||
mc.sndManager.playSound(block.stepSound.stepSoundDir2(), (float)i + 0.5F, (float)j + 0.5F, (float)k + 0.5F, (block.stepSound.getVolume() + 1.0F) / 8F, block.stepSound.getPitch() * 0.5F);
|
||||
@@ -216,6 +222,13 @@
|
||||
@@ -216,6 +224,13 @@
|
||||
{
|
||||
syncCurrentPlayItem();
|
||||
netClientHandler.addToSendQueue(new Packet15Place(i, j, k, l, entityplayer.inventory.getCurrentItem()));
|
||||
+
|
||||
+ if (itemstack != null && itemstack.getItem() instanceof IUseItemFirst) {
|
||||
+ IUseItemFirst iuif = (IUseItemFirst) itemstack.getItem();
|
||||
+ if (iuif.onItemUseFirst(itemstack, entityplayer, world, i, j, k, l)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (itemstack != null) {
|
||||
+ Item it=itemstack.getItem();
|
||||
+ if (it.onItemUseFirst(itemstack, entityplayer, world, i, j, k, l)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
int i1 = world.getBlockId(i, j, k);
|
||||
if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer))
|
||||
{
|
||||
@@ -235,7 +248,11 @@
|
||||
@@ -235,7 +250,11 @@
|
||||
return flag;
|
||||
} else
|
||||
{
|
||||
|
||||
@@ -1,63 +1,65 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/PlayerControllerSP.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/PlayerControllerSP.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -3,6 +3,8 @@
|
||||
@@ -3,6 +3,7 @@
|
||||
// Decompiler options: packimports(3) braces deadcode fieldsfirst
|
||||
|
||||
package net.minecraft.src;
|
||||
+import net.minecraft.src.forge.IUseItemFirst;
|
||||
+import net.minecraft.src.forge.ForgeHooks;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
@@ -46,11 +48,14 @@
|
||||
@@ -46,11 +47,17 @@
|
||||
|
||||
public boolean sendBlockRemoved(int i, int j, int k, int l)
|
||||
public boolean onPlayerDestroyBlock(int i, int j, int k, int l)
|
||||
{
|
||||
+ ItemStack itemstack = mc.thePlayer.getCurrentEquippedItem();
|
||||
+ if(itemstack!=null && itemstack.getItem().onBlockStartBreak(itemstack,
|
||||
+ i,j,k,mc.thePlayer))
|
||||
+ return false;
|
||||
+ ItemStack itemstack = mc.thePlayer.getCurrentEquippedItem();
|
||||
+ if (itemstack != null && itemstack.getItem().onBlockStartBreak(itemstack, i, j, k, mc.thePlayer))
|
||||
+ {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
int i1 = mc.theWorld.getBlockId(i, j, k);
|
||||
int j1 = mc.theWorld.getBlockMetadata(i, j, k);
|
||||
boolean flag = super.sendBlockRemoved(i, j, k, l);
|
||||
boolean flag = super.onPlayerDestroyBlock(i, j, k, l);
|
||||
- ItemStack itemstack = mc.thePlayer.getCurrentEquippedItem();
|
||||
- boolean flag1 = mc.thePlayer.canHarvestBlock(Block.blocksList[i1]);
|
||||
+ boolean flag1 = Block.blocksList[i1].canHarvestBlock(mc.thePlayer,j1);
|
||||
+
|
||||
+ boolean flag1 = Block.blocksList[i1].canHarvestBlock(mc.thePlayer, j1);
|
||||
if(itemstack != null)
|
||||
{
|
||||
itemstack.onDestroyBlock(i1, i, j, k, mc.thePlayer);
|
||||
@@ -79,7 +84,7 @@
|
||||
@@ -79,7 +86,7 @@
|
||||
{
|
||||
Block.blocksList[i1].onBlockClicked(mc.theWorld, i, j, k, mc.thePlayer);
|
||||
}
|
||||
- if(i1 > 0 && Block.blocksList[i1].blockStrength(mc.thePlayer) >= 1.0F)
|
||||
+ if(i1 > 0 && Block.blocksList[i1].blockStrength(mc.theWorld,mc.thePlayer,i,j,k) >= 1.0F)
|
||||
{
|
||||
sendBlockRemoved(i, j, k, l);
|
||||
onPlayerDestroyBlock(i, j, k, l);
|
||||
}
|
||||
@@ -110,7 +115,7 @@
|
||||
@@ -110,7 +117,7 @@
|
||||
return;
|
||||
}
|
||||
Block block = Block.blocksList[i1];
|
||||
- curBlockDamage += block.blockStrength(mc.thePlayer);
|
||||
+ curBlockDamage += block.blockStrength(mc.theWorld,mc.thePlayer,i,j,k);
|
||||
if(field_1069_h % 4F == 0.0F && block != null)
|
||||
+ curBlockDamage += block.blockStrength(mc.theWorld, mc.thePlayer, i, j, k);
|
||||
if(blockDestroySoundCounter % 4F == 0.0F && block != null)
|
||||
{
|
||||
mc.sndManager.playSound(block.stepSound.stepSoundDir2(), (float)i + 0.5F, (float)j + 0.5F, (float)k + 0.5F, (block.stepSound.getVolume() + 1.0F) / 8F, block.stepSound.getPitch() * 0.5F);
|
||||
@@ -173,6 +178,12 @@
|
||||
@@ -173,6 +180,12 @@
|
||||
|
||||
public boolean sendPlaceBlock(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l)
|
||||
public boolean onPlayerRightClick(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l)
|
||||
{
|
||||
+ if (itemstack != null && itemstack.getItem() instanceof IUseItemFirst) {
|
||||
+ IUseItemFirst iuif = (IUseItemFirst) itemstack.getItem();
|
||||
+ if (iuif.onItemUseFirst(itemstack, entityplayer, world, i, j, k, l)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (itemstack != null) {
|
||||
+ Item it=itemstack.getItem();
|
||||
+ if (it.onItemUseFirst(itemstack, entityplayer, world, i, j, k, l)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
int i1 = world.getBlockId(i, j, k);
|
||||
if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer))
|
||||
{
|
||||
@@ -183,7 +194,11 @@
|
||||
@@ -183,7 +196,11 @@
|
||||
return false;
|
||||
} else
|
||||
{
|
||||
|
||||
@@ -1,5 +1,59 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/RenderBlocks.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/RenderBlocks.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -1332,7 +1332,7 @@
|
||||
double d2 = (float)j1 / 256F;
|
||||
double d3 = ((float)j1 + 15.99F) / 256F;
|
||||
float f = 1.4F;
|
||||
- if(!blockAccess.isBlockNormalCube(i, j - 1, k) && !Block.fire.canBlockCatchFire(blockAccess, i, j - 1, k))
|
||||
+ if(!blockAccess.isBlockNormalCube(i, j - 1, k) && !Block.fire.canBlockCatchFire(blockAccess, i, j - 1, k, 0))
|
||||
{
|
||||
float f1 = 0.2F;
|
||||
float f2 = 0.0625F;
|
||||
@@ -1349,7 +1349,7 @@
|
||||
d1 = d;
|
||||
d = d4;
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(blockAccess, i - 1, j, k))
|
||||
+ if(Block.fire.canBlockCatchFire(blockAccess, i - 1, j, k, 4))
|
||||
{
|
||||
tessellator.addVertexWithUV((float)i + f1, (float)j + f + f2, k + 1, d1, d2);
|
||||
tessellator.addVertexWithUV(i + 0, (float)(j + 0) + f2, k + 1, d1, d3);
|
||||
@@ -1360,7 +1360,7 @@
|
||||
tessellator.addVertexWithUV(i + 0, (float)(j + 0) + f2, k + 1, d1, d3);
|
||||
tessellator.addVertexWithUV((float)i + f1, (float)j + f + f2, k + 1, d1, d2);
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(blockAccess, i + 1, j, k))
|
||||
+ if(Block.fire.canBlockCatchFire(blockAccess, i + 1, j, k, 5))
|
||||
{
|
||||
tessellator.addVertexWithUV((float)(i + 1) - f1, (float)j + f + f2, k + 0, d, d2);
|
||||
tessellator.addVertexWithUV((i + 1) - 0, (float)(j + 0) + f2, k + 0, d, d3);
|
||||
@@ -1371,7 +1371,7 @@
|
||||
tessellator.addVertexWithUV((i + 1) - 0, (float)(j + 0) + f2, k + 0, d, d3);
|
||||
tessellator.addVertexWithUV((float)(i + 1) - f1, (float)j + f + f2, k + 0, d, d2);
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(blockAccess, i, j, k - 1))
|
||||
+ if(Block.fire.canBlockCatchFire(blockAccess, i, j, k - 1, 3))
|
||||
{
|
||||
tessellator.addVertexWithUV(i + 0, (float)j + f + f2, (float)k + f1, d1, d2);
|
||||
tessellator.addVertexWithUV(i + 0, (float)(j + 0) + f2, k + 0, d1, d3);
|
||||
@@ -1382,7 +1382,7 @@
|
||||
tessellator.addVertexWithUV(i + 0, (float)(j + 0) + f2, k + 0, d1, d3);
|
||||
tessellator.addVertexWithUV(i + 0, (float)j + f + f2, (float)k + f1, d1, d2);
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(blockAccess, i, j, k + 1))
|
||||
+ if(Block.fire.canBlockCatchFire(blockAccess, i, j, k + 1, 2))
|
||||
{
|
||||
tessellator.addVertexWithUV(i + 1, (float)j + f + f2, (float)(k + 1) - f1, d, d2);
|
||||
tessellator.addVertexWithUV(i + 1, (float)(j + 0) + f2, (k + 1) - 0, d, d3);
|
||||
@@ -1393,7 +1393,7 @@
|
||||
tessellator.addVertexWithUV(i + 1, (float)(j + 0) + f2, (k + 1) - 0, d, d3);
|
||||
tessellator.addVertexWithUV(i + 1, (float)j + f + f2, (float)(k + 1) - f1, d, d2);
|
||||
}
|
||||
- if(Block.fire.canBlockCatchFire(blockAccess, i, j + 1, k))
|
||||
+ if(Block.fire.canBlockCatchFire(blockAccess, i, j + 1, k, 1))
|
||||
{
|
||||
double d5 = (double)i + 0.5D + 0.5D;
|
||||
double d7 = ((double)i + 0.5D) - 0.5D;
|
||||
@@ -3301,7 +3301,7 @@
|
||||
colorBlueTopRight *= f27;
|
||||
int k2 = block.getBlockTexture(blockAccess, i, j, k, 2);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
import java.util.Random;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@@ -54,10 +58,36 @@
|
||||
@@ -54,10 +58,34 @@
|
||||
}
|
||||
GL11.glTranslatef((float)d, (float)d1 + f2, (float)d2);
|
||||
GL11.glEnable(32826 /*GL_RESCALE_NORMAL_EXT*/);
|
||||
@@ -21,8 +21,7 @@
|
||||
+
|
||||
+ if (customRenderer != null) {
|
||||
+ GL11.glRotatef(f3, 0.0F, 1.0F, 0.0F);
|
||||
+ loadTexture("/terrain.png");
|
||||
+ ForgeHooksClient.overrideTexture(itemstack.getItem());
|
||||
+ loadTexture(ForgeHooksClient.getTexture("/terrain.png", itemstack.getItem()));
|
||||
+ float f4 = 0.25F;
|
||||
+ f4 = 0.5F;
|
||||
+ GL11.glScalef(f4, f4, f4);
|
||||
@@ -44,24 +43,25 @@
|
||||
+ } else if(itemstack.itemID < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[itemstack.itemID].getRenderType()))
|
||||
{
|
||||
GL11.glRotatef(f3, 0.0F, 1.0F, 0.0F);
|
||||
loadTexture("/terrain.png");
|
||||
+ ForgeHooksClient.overrideTexture(Block.blocksList[itemstack.itemID]);
|
||||
- loadTexture("/terrain.png");
|
||||
+ loadTexture(ForgeHooksClient.getTexture("/terrain.png", Block.blocksList[itemstack.itemID]));
|
||||
float f4 = 0.25F;
|
||||
int j = Block.blocksList[itemstack.itemID].getRenderType();
|
||||
if(j == 1 || j == 19 || j == 12 || j == 2)
|
||||
@@ -108,9 +138,11 @@
|
||||
@@ -107,10 +135,10 @@
|
||||
int i = itemstack.getIconIndex();
|
||||
if(itemstack.itemID < 256)
|
||||
{
|
||||
loadTexture("/terrain.png");
|
||||
+ ForgeHooksClient.overrideTexture(Block.blocksList[itemstack.itemID]);
|
||||
- loadTexture("/terrain.png");
|
||||
+ loadTexture(ForgeHooksClient.getTexture("/terrain.png", Block.blocksList[itemstack.itemID]));
|
||||
} else
|
||||
{
|
||||
loadTexture("/gui/items.png");
|
||||
+ ForgeHooksClient.overrideTexture(Item.itemsList[itemstack.itemID]);
|
||||
- loadTexture("/gui/items.png");
|
||||
+ loadTexture(ForgeHooksClient.getTexture("/gui/items.png", Item.itemsList[itemstack.itemID]));
|
||||
}
|
||||
if(field_27004_a)
|
||||
{
|
||||
@@ -162,10 +194,37 @@
|
||||
@@ -162,10 +190,37 @@
|
||||
|
||||
public void drawItemIntoGui(FontRenderer fontrenderer, RenderEngine renderengine, int i, int j, int k, int l, int i1)
|
||||
{
|
||||
@@ -69,11 +69,11 @@
|
||||
+ ICustomItemRenderer customRenderer = MinecraftForgeClient.getCustomItemRenderer(i);
|
||||
+ if (customRenderer != null) {
|
||||
+ int j1 = i;
|
||||
+ renderengine.bindTexture(renderengine.getTexture("/terrain.png"));
|
||||
+ String tex = ForgeHooksClient.getTexture("/terrain.png", Item.itemsList [i]);
|
||||
+ renderengine.bindTexture(renderengine.getTexture(tex));
|
||||
+ Item item = Item.itemsList[i];
|
||||
+ ForgeHooksClient.overrideTexture (Item.itemsList [i]);
|
||||
+ GL11.glPushMatrix();
|
||||
+ GL11.glTranslatef(l - 2, i1 + 3, -3F);
|
||||
+ GL11.glTranslatef(l - 2, i1 + 3, -3F + zLevel);
|
||||
+ GL11.glScalef(10F, 10F, 10F);
|
||||
+ GL11.glTranslatef(1.0F, 0.5F, 1.0F);
|
||||
+ GL11.glScalef(1.0F, 1.0F, -1F);
|
||||
@@ -95,20 +95,24 @@
|
||||
+ } else if(i < 256 && RenderBlocks.renderItemIn3d(Block.blocksList[i].getRenderType()))
|
||||
{
|
||||
int j1 = i;
|
||||
renderengine.bindTexture(renderengine.getTexture("/terrain.png"));
|
||||
+ ForgeHooksClient.overrideTexture (Block.blocksList[i]);
|
||||
- renderengine.bindTexture(renderengine.getTexture("/terrain.png"));
|
||||
+ String tex = ForgeHooksClient.getTexture("/terrain.png", Block.blocksList[i]);
|
||||
+ renderengine.bindTexture(renderengine.getTexture(tex));
|
||||
Block block = Block.blocksList[j1];
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(l - 2, i1 + 3, -3F + zLevel);
|
||||
@@ -215,9 +274,11 @@
|
||||
@@ -214,10 +269,12 @@
|
||||
GL11.glDisable(2896 /*GL_LIGHTING*/);
|
||||
if(i < 256)
|
||||
{
|
||||
renderengine.bindTexture(renderengine.getTexture("/terrain.png"));
|
||||
+ ForgeHooksClient.overrideTexture (Block.blocksList[i]);
|
||||
- renderengine.bindTexture(renderengine.getTexture("/terrain.png"));
|
||||
+ String tex = ForgeHooksClient.getTexture("/terrain.png", Block.blocksList[i]);
|
||||
+ renderengine.bindTexture(renderengine.getTexture(tex));
|
||||
} else
|
||||
{
|
||||
renderengine.bindTexture(renderengine.getTexture("/gui/items.png"));
|
||||
+ ForgeHooksClient.overrideTexture(Item.itemsList[i]);
|
||||
- renderengine.bindTexture(renderengine.getTexture("/gui/items.png"));
|
||||
+ String tex = ForgeHooksClient.getTexture("/gui/items.png", Item.itemsList[i]);
|
||||
+ renderengine.bindTexture(renderengine.getTexture(tex));
|
||||
}
|
||||
int k1 = Item.itemsList[i].getColorFromDamage(j);
|
||||
float f = (float)(k1 >> 16 & 0xff) / 255F;
|
||||
@@ -0,0 +1,35 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/TileEntityBrewingStand.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/TileEntityBrewingStand.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
+import net.minecraft.src.forge.ISidedInventory;
|
||||
+
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// TileEntity, IInventory, ItemStack, World,
|
||||
@@ -11,7 +13,7 @@
|
||||
// NBTTagList, EntityPlayer
|
||||
|
||||
public class TileEntityBrewingStand extends TileEntity
|
||||
- implements IInventory
|
||||
+ implements IInventory, ISidedInventory
|
||||
{
|
||||
|
||||
private ItemStack brewingItemStacks[];
|
||||
@@ -280,4 +282,14 @@
|
||||
|
||||
return i;
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public int getStartInventorySide(int side) {
|
||||
+ return (side == 1 ? 3 : 0);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getSizeInventorySide(int side) {
|
||||
+ return (side == 1 ? 1 : 3);
|
||||
+ }
|
||||
}
|
||||
@@ -145,7 +145,7 @@
|
||||
+ }
|
||||
}
|
||||
|
||||
public void func_35455_a(TileEntity tileentity)
|
||||
public void markEntityForDespawn(TileEntity tileentity)
|
||||
@@ -2106,13 +2092,18 @@
|
||||
public boolean isBlockNormalCube(int i, int j, int k)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
--- ../src_base/minecraft/net/minecraft/src/WorldGenDungeons.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft/net/minecraft/src/WorldGenDungeons.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -7,6 +7,8 @@
|
||||
import java.io.PrintStream;
|
||||
import java.util.Random;
|
||||
|
||||
+import net.minecraft.src.forge.MinecraftForge;
|
||||
+
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// WorldGenerator, World, Material, Block,
|
||||
// TileEntityChest, TileEntityMobSpawner, ItemStack, Item
|
||||
@@ -129,11 +131,11 @@
|
||||
int k4 = 0;
|
||||
do
|
||||
{
|
||||
- if(k4 >= 8)
|
||||
+ if(k4 >= MinecraftForge.getDungeonLootTries())
|
||||
{
|
||||
break label0;
|
||||
}
|
||||
- ItemStack itemstack = pickCheckLootItem(random);
|
||||
+ ItemStack itemstack = MinecraftForge.getRandomDungeonLoot(random);
|
||||
if(itemstack != null)
|
||||
{
|
||||
tileentitychest.setInventorySlotContents(random.nextInt(tileentitychest.getSizeInventory()), itemstack);
|
||||
@@ -148,7 +150,7 @@
|
||||
TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getBlockTileEntity(i, j, k);
|
||||
if(tileentitymobspawner != null)
|
||||
{
|
||||
- tileentitymobspawner.setMobID(pickMobSpawner(random));
|
||||
+ tileentitymobspawner.setMobID(MinecraftForge.getRandomDungeonMob(random));
|
||||
} else
|
||||
{
|
||||
System.err.println((new StringBuilder()).append("Failed to fetch mob spawner entity at (").append(i).append(", ").append(j).append(", ").append(k).append(")").toString());
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
@@ -384,26 +385,57 @@
|
||||
@@ -384,26 +385,71 @@
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -20,7 +20,14 @@
|
||||
+ }
|
||||
+
|
||||
+ /* FORGE: Metadata-sensitive version.
|
||||
+ *
|
||||
+ * This is deprecated in MC 1.0+ versions because of the new Enchantment
|
||||
+ * system requiring a new argument. Will be removed unless a valid reason
|
||||
+ * for it to remain is brought to light.
|
||||
+ *
|
||||
+ * Implementing this in your mod will not do anything!
|
||||
+ */
|
||||
+ @Deprecated
|
||||
+ public int quantityDropped(int meta, Random random)
|
||||
+ {
|
||||
+ return quantityDropped(meta, 0, random);
|
||||
@@ -70,16 +77,23 @@
|
||||
+ }
|
||||
+
|
||||
+ /* FORGE: This function returns the complete list of drops for a block.
|
||||
+ *
|
||||
+ * This is deprecated in MC 1.0+ versions because of the new Enchantment
|
||||
+ * system requiring a new argument. Will be removed unless a valid reason
|
||||
+ * for it to remain is brought to light.
|
||||
+ *
|
||||
+ * Implementing this in your mod will not do anything!
|
||||
+ */
|
||||
+ @Deprecated
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world,
|
||||
+ int i, int j, int k, int md) {
|
||||
+ return getBlockDropped (world, i, j, k, md);
|
||||
+ return getBlockDropped (world, i, j, k, md, 0);
|
||||
+ }
|
||||
+
|
||||
public final void dropBlockAsItem(World world, int i, int j, int k, int l, int i1)
|
||||
{
|
||||
dropBlockAsItemWithChance(world, i, j, k, l, 1.0F, i1);
|
||||
@@ -415,18 +447,14 @@
|
||||
@@ -415,18 +461,14 @@
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -101,7 +115,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
@@ -725,6 +753,99 @@
|
||||
@@ -725,6 +767,197 @@
|
||||
return blockMaterial.getMaterialMobility();
|
||||
}
|
||||
|
||||
@@ -123,7 +137,7 @@
|
||||
+ * others.
|
||||
+ */
|
||||
+ public boolean isBlockNormalCube(World world, int i, int j, int k) {
|
||||
+ return blockMaterial.getIsOpaque() && isACube();
|
||||
+ return blockMaterial.getIsOpaque() && renderAsNormalBlock();
|
||||
+ }
|
||||
+
|
||||
+ /* FORGE: Return true if the block is solid on the given side. This
|
||||
@@ -197,6 +211,104 @@
|
||||
+ int i, int j, int k) {
|
||||
+ return world.setBlockWithNotify(i, j, k, 0);
|
||||
+ }
|
||||
+
|
||||
+ /* FORGE: This is not called by the server, but declared here for compatibility
|
||||
+ */
|
||||
+ public void addCreativeItems(ArrayList itemList)
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ protected static int blockFireSpreadSpeed[] = new int[256];
|
||||
+ protected static int blockFlammability[] = new int[256];
|
||||
+
|
||||
+ /**
|
||||
+ * Chance that fire will spread and consume this block.
|
||||
+ * 300 being a 100% chance, 0, being a 0% chance.
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return A number ranging from 0 to 300 relating used to determine if the block will be consumed by fire
|
||||
+ */
|
||||
+ public int getFlammability(IBlockAccess world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ return blockFlammability[blockID];
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when fire is updating, checks if a block face can catch fire.
|
||||
+ *
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return True if the face can be on fire, false otherwise.
|
||||
+ */
|
||||
+ public boolean isFlammable(IBlockAccess world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ return getFlammability(world, x, y, z, metadata, face) > 0;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when fire is updating on a neighbor block.
|
||||
+ * The higher the number returned, the faster fire will spread around this block.
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return A number that is used to determine the speed of fire growth around the block
|
||||
+ */
|
||||
+ public int getFireSpreadSpeed(World world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ return blockFireSpreadSpeed[blockID];
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Currently only called by fire when it is on top of this block.
|
||||
+ * Returning true will prevent the fire from naturally dieing during updating.
|
||||
+ * Also prevents firing from dieing from rain.
|
||||
+ *
|
||||
+ * @param world The current world
|
||||
+ * @param x The blocks X position
|
||||
+ * @param y The blocks Y position
|
||||
+ * @param z The blocks Z position
|
||||
+ * @param metadata The blocks current metadata
|
||||
+ * @param face The face that the fire is coming from
|
||||
+ * @return
|
||||
+ */
|
||||
+ public boolean isFireSource(World world, int x, int y, int z, int metadata, int face)
|
||||
+ {
|
||||
+ if (blockID == Block.netherrack.blockID && face == 0)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if ((world.worldProvider instanceof WorldProviderEnd) && blockID == Block.bedrock.blockID && face == 0)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called by BlockFire to setup the burn values of vanilla blocks.
|
||||
+ * @param id The block id
|
||||
+ * @param encouragement How much the block encourages fire to spread
|
||||
+ * @param flammability how easy a block is to catch fire
|
||||
+ */
|
||||
+ public static void setBurnProperties(int id, int encouragement, int flammability)
|
||||
+ {
|
||||
+ blockFireSpreadSpeed[id] = encouragement;
|
||||
+ blockFlammability[id] = flammability;
|
||||
+ }
|
||||
+
|
||||
static Class _mthclass$(String s)
|
||||
{
|
||||
|
||||
@@ -9,16 +9,27 @@
|
||||
}
|
||||
|
||||
public void onBlockRemoval(World world, int i, int j, int k)
|
||||
@@ -37,6 +37,12 @@
|
||||
@@ -36,7 +36,7 @@
|
||||
}
|
||||
|
||||
public abstract TileEntity getBlockEntity();
|
||||
|
||||
+ /* FORGE: Metadata-sensitive version, to fix 1.8.1 regression.
|
||||
+ */
|
||||
+ public TileEntity getBlockEntity(int md) {
|
||||
+ return getBlockEntity();
|
||||
+ }
|
||||
+
|
||||
public void playBlock(World world, int i, int j, int k, int l, int i1)
|
||||
-
|
||||
+
|
||||
public void powerBlock(World world, int i, int j, int k, int l, int i1)
|
||||
{
|
||||
super.playBlock(world, i, j, k, l, i1);
|
||||
super.powerBlock(world, i, j, k, l, i1);
|
||||
@@ -46,4 +46,14 @@
|
||||
tileentity.onTileEntityPowered(l, i1);
|
||||
}
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
+ * Metatdata sensitive version of getBlockEntity
|
||||
+ * @param metadata The Metatdata for the current block
|
||||
+ * @return A instance of the TileEntity class associated with this block
|
||||
+ */
|
||||
+ public TileEntity getBlockEntity(int metadata)
|
||||
+ {
|
||||
+ return getBlockEntity();
|
||||
+ }
|
||||
}
|
||||
@@ -8,39 +8,42 @@
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// BlockFlower, Block, World, EntityItem,
|
||||
@@ -108,28 +109,16 @@
|
||||
@@ -108,28 +109,23 @@
|
||||
return 6;
|
||||
}
|
||||
|
||||
- public void dropBlockAsItemWithChance(World world, int i, int j, int k, int l, float f, int i1)
|
||||
- {
|
||||
+ @Override
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world, int i, int j, int k, int md, int fortune)
|
||||
{
|
||||
- super.dropBlockAsItemWithChance(world, i, j, k, l, f, 0);
|
||||
- if(world.singleplayerWorld)
|
||||
- {
|
||||
- return;
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world,
|
||||
+ int i, int j, int k, int md) {
|
||||
+ ArrayList<ItemStack> tr = new ArrayList<ItemStack>();
|
||||
+ if (md == 7) tr.add(new ItemStack(Item.wheat));
|
||||
+ if (md == 7)
|
||||
+ {
|
||||
+ tr.add(new ItemStack(Item.wheat));
|
||||
+ }
|
||||
+
|
||||
+ for(int n = 0; n < 3; n++) {
|
||||
+ if (world.rand.nextInt(15) <= md)
|
||||
+ tr.add(new ItemStack(Item.seeds));
|
||||
}
|
||||
+ for(int n = 0; n < 3+fortune; n++)
|
||||
{
|
||||
- return;
|
||||
- }
|
||||
- int j1 = 3 + i1;
|
||||
- for(int k1 = 0; k1 < j1; k1++)
|
||||
- {
|
||||
- if(world.rand.nextInt(15) <= l)
|
||||
- {
|
||||
+ if (world.rand.nextInt(15) <= md)
|
||||
{
|
||||
- float f1 = 0.7F;
|
||||
- float f2 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
|
||||
- float f3 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
|
||||
- float f4 = world.rand.nextFloat() * f1 + (1.0F - f1) * 0.5F;
|
||||
- EntityItem entityitem = new EntityItem(world, (float)i + f2, (float)j + f3, (float)k + f4, new ItemStack(Item.seeds));
|
||||
- entityitem.delayBeforeCanPickup = 10;
|
||||
- world.entityJoinedWorld(entityitem);
|
||||
- }
|
||||
- }
|
||||
- world.spawnEntityInWorld(entityitem);
|
||||
+ tr.add(new ItemStack(Item.seeds));
|
||||
}
|
||||
}
|
||||
-
|
||||
+ return tr;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
--- ../src_base/minecraft_server/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/BlockFire.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -14,14 +14,14 @@
|
||||
public class BlockFire extends Block
|
||||
{
|
||||
|
||||
- private int chanceToEncourageFire[];
|
||||
- private int abilityToCatchFire[];
|
||||
-
|
||||
+ private int chanceToEncourageFire[];
|
||||
+ private int abilityToCatchFire[];
|
||||
+
|
||||
protected BlockFire(int i, int j)
|
||||
{
|
||||
super(i, j, Material.fire);
|
||||
- chanceToEncourageFire = new int[256];
|
||||
- abilityToCatchFire = new int[256];
|
||||
+ chanceToEncourageFire = Block.blockFireSpreadSpeed;
|
||||
+ abilityToCatchFire = Block.blockFlammability;
|
||||
setTickOnLoad(true);
|
||||
}
|
||||
|
||||
@@ -38,11 +38,10 @@
|
||||
setBurnRate(Block.cloth.blockID, 30, 60);
|
||||
setBurnRate(Block.vine.blockID, 15, 100);
|
||||
}
|
||||
-
|
||||
+
|
||||
private void setBurnRate(int i, int j, int k)
|
||||
{
|
||||
- chanceToEncourageFire[i] = j;
|
||||
- abilityToCatchFire[i] = k;
|
||||
+ Block.setBurnProperties(i, j, k);
|
||||
}
|
||||
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k)
|
||||
@@ -77,11 +76,9 @@
|
||||
|
||||
public void updateTick(World world, int i, int j, int k, Random random)
|
||||
{
|
||||
- boolean flag = world.getBlockId(i, j - 1, k) == Block.netherrack.blockID;
|
||||
- if((world.worldProvider instanceof WorldProviderEnd) && world.getBlockId(i, j - 1, k) == Block.bedrock.blockID)
|
||||
- {
|
||||
- flag = true;
|
||||
- }
|
||||
+ Block base = Block.blocksList[world.getBlockId(i, j - 1, k)];
|
||||
+ boolean flag = (base != null && base.isFireSource(world, i, j - 1, k, world.getBlockMetadata(i, j - 1, k), 0));
|
||||
+
|
||||
if(!canPlaceBlockAt(world, i, j, k))
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
@@ -99,23 +96,23 @@
|
||||
world.scheduleBlockUpdate(i, j, k, blockID, tickRate());
|
||||
if(!flag && !func_268_g(world, i, j, k))
|
||||
{
|
||||
- if(!world.isBlockNormalCube(i, j - 1, k) || l > 3)
|
||||
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 0) || l > 3)
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
- if(!flag && !canBlockCatchFire(world, i, j - 1, k) && l == 15 && random.nextInt(4) == 0)
|
||||
+ if(!flag && !canBlockCatchFire(world, i, j - 1, k, 0) && l == 15 && random.nextInt(4) == 0)
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
return;
|
||||
}
|
||||
- tryToCatchBlockOnFire(world, i + 1, j, k, 300, random, l);
|
||||
- tryToCatchBlockOnFire(world, i - 1, j, k, 300, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j, k - 1, 300, random, l);
|
||||
- tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l);
|
||||
+ tryToCatchBlockOnFire(world, i + 1, j, k, 300, random, l, 4);
|
||||
+ tryToCatchBlockOnFire(world, i - 1, j, k, 300, random, l, 5);
|
||||
+ tryToCatchBlockOnFire(world, i, j - 1, k, 250, random, l, 0);
|
||||
+ tryToCatchBlockOnFire(world, i, j + 1, k, 250, random, l, 1);
|
||||
+ tryToCatchBlockOnFire(world, i, j, k - 1, 300, random, l, 3);
|
||||
+ tryToCatchBlockOnFire(world, i, j, k + 1, 300, random, l, 2);
|
||||
for(int i1 = i - 1; i1 <= i + 1; i1++)
|
||||
{
|
||||
for(int j1 = k - 1; j1 <= k + 1; j1++)
|
||||
@@ -154,10 +151,24 @@
|
||||
}
|
||||
|
||||
}
|
||||
-
|
||||
+
|
||||
+ /*
|
||||
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
|
||||
+ */
|
||||
+ @Deprecated
|
||||
private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1)
|
||||
{
|
||||
- int j1 = abilityToCatchFire[world.getBlockId(i, j, k)];
|
||||
+ tryToCatchBlockOnFire(world, i, j, k, l, random, i1, 0);
|
||||
+ }
|
||||
+
|
||||
+ private void tryToCatchBlockOnFire(World world, int i, int j, int k, int l, Random random, int i1, int face)
|
||||
+ {
|
||||
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
|
||||
+ int j1 = 0;
|
||||
+ if (block != null)
|
||||
+ {
|
||||
+ j1 = block.getFlammability(world, i, j, k, world.getBlockMetadata(i, j, k), face);
|
||||
+ }
|
||||
if(random.nextInt(l) < j1)
|
||||
{
|
||||
boolean flag = world.getBlockId(i, j, k) == Block.tnt.blockID;
|
||||
@@ -182,27 +193,27 @@
|
||||
|
||||
private boolean func_268_g(World world, int i, int j, int k)
|
||||
{
|
||||
- if(canBlockCatchFire(world, i + 1, j, k))
|
||||
+ if(canBlockCatchFire(world, i + 1, j, k, 4))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i - 1, j, k))
|
||||
+ if(canBlockCatchFire(world, i - 1, j, k, 5))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i, j - 1, k))
|
||||
+ if(canBlockCatchFire(world, i, j - 1, k, 0))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i, j + 1, k))
|
||||
+ if(canBlockCatchFire(world, i, j + 1, k, 1))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- if(canBlockCatchFire(world, i, j, k - 1))
|
||||
+ if(canBlockCatchFire(world, i, j, k - 1, 3))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
- return canBlockCatchFire(world, i, j, k + 1);
|
||||
+ return canBlockCatchFire(world, i, j, k + 1, 2);
|
||||
}
|
||||
|
||||
private int getChanceOfNeighborsEncouragingFire(World world, int i, int j, int k)
|
||||
@@ -213,12 +224,12 @@
|
||||
return 0;
|
||||
} else
|
||||
{
|
||||
- l = getChanceToEncourageFire(world, i + 1, j, k, l);
|
||||
- l = getChanceToEncourageFire(world, i - 1, j, k, l);
|
||||
- l = getChanceToEncourageFire(world, i, j - 1, k, l);
|
||||
- l = getChanceToEncourageFire(world, i, j + 1, k, l);
|
||||
- l = getChanceToEncourageFire(world, i, j, k - 1, l);
|
||||
- l = getChanceToEncourageFire(world, i, j, k + 1, l);
|
||||
+ l = getChanceToEncourageFire(world, i + 1, j, k, l, 5);
|
||||
+ l = getChanceToEncourageFire(world, i - 1, j, k, l, 4);
|
||||
+ l = getChanceToEncourageFire(world, i, j - 1, k, l, 0);
|
||||
+ l = getChanceToEncourageFire(world, i, j + 1, k, l, 1);
|
||||
+ l = getChanceToEncourageFire(world, i, j, k - 1, l, 3);
|
||||
+ l = getChanceToEncourageFire(world, i, j, k + 1, l, 2);
|
||||
return l;
|
||||
}
|
||||
}
|
||||
@@ -227,15 +238,43 @@
|
||||
{
|
||||
return false;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ /*
|
||||
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
|
||||
+ */
|
||||
+ @Deprecated
|
||||
public boolean canBlockCatchFire(IBlockAccess iblockaccess, int i, int j, int k)
|
||||
{
|
||||
- return chanceToEncourageFire[iblockaccess.getBlockId(i, j, k)] > 0;
|
||||
+ return canBlockCatchFire(iblockaccess, i, j, k, 0);
|
||||
}
|
||||
|
||||
+ public boolean canBlockCatchFire(IBlockAccess world, int i, int j, int k, int face)
|
||||
+ {
|
||||
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
|
||||
+ if (block != null)
|
||||
+ {
|
||||
+ return block.isFlammable(world, i, j, k, world.getBlockMetadata(i, j, k), face);
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Added for backwards compatibility, should not be called by anyone who is making a mod for forge
|
||||
+ */
|
||||
+ @Deprecated
|
||||
public int getChanceToEncourageFire(World world, int i, int j, int k, int l)
|
||||
{
|
||||
- int i1 = chanceToEncourageFire[world.getBlockId(i, j, k)];
|
||||
+ return getChanceToEncourageFire(world, i, j, k, l, 0);
|
||||
+ }
|
||||
+
|
||||
+ public int getChanceToEncourageFire(World world, int i, int j, int k, int l, int face)
|
||||
+ {
|
||||
+ int i1 = 0;
|
||||
+ Block block = Block.blocksList[world.getBlockId(i, j, k)];
|
||||
+ if (block != null)
|
||||
+ {
|
||||
+ i1 = block.getFireSpreadSpeed(world, i, j, k, world.getBlockMetadata(i, j, k), face);
|
||||
+ }
|
||||
if(i1 > l)
|
||||
{
|
||||
return i1;
|
||||
@@ -247,12 +286,12 @@
|
||||
|
||||
public boolean canPlaceBlockAt(World world, int i, int j, int k)
|
||||
{
|
||||
- return world.isBlockNormalCube(i, j - 1, k) || func_268_g(world, i, j, k);
|
||||
+ return world.isBlockSolidOnSide(i, j - 1, k, 0) || func_268_g(world, i, j, k);
|
||||
}
|
||||
|
||||
public void onNeighborBlockChange(World world, int i, int j, int k, int l)
|
||||
{
|
||||
- if(!world.isBlockNormalCube(i, j - 1, k) && !func_268_g(world, i, j, k))
|
||||
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 0) && !func_268_g(world, i, j, k))
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
return;
|
||||
@@ -268,7 +307,7 @@
|
||||
{
|
||||
return;
|
||||
}
|
||||
- if(!world.isBlockNormalCube(i, j - 1, k) && !func_268_g(world, i, j, k))
|
||||
+ if(!world.isBlockSolidOnSide(i, j - 1, k, 0) && !func_268_g(world, i, j, k))
|
||||
{
|
||||
world.setBlockWithNotify(i, j, k, 0);
|
||||
return;
|
||||
@@ -0,0 +1,59 @@
|
||||
--- ../src_base/minecraft_server/net/minecraft/src/BlockNetherStalk.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/BlockNetherStalk.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
+import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
@@ -64,27 +65,27 @@
|
||||
{
|
||||
return 6;
|
||||
}
|
||||
-
|
||||
- public void dropBlockAsItemWithChance(World world, int i, int j, int k, int l, float f, int i1)
|
||||
- {
|
||||
- if(world.singleplayerWorld)
|
||||
- {
|
||||
- return;
|
||||
- }
|
||||
- int j1 = 1;
|
||||
- if(l >= 3)
|
||||
- {
|
||||
- j1 = 2 + world.rand.nextInt(3);
|
||||
- if(i1 > 0)
|
||||
- {
|
||||
- j1 += world.rand.nextInt(i1 + 1);
|
||||
- }
|
||||
- }
|
||||
- for(int k1 = 0; k1 < j1; k1++)
|
||||
- {
|
||||
- dropBlockAsItem_do(world, i, j, k, new ItemStack(Item.netherStalkSeeds));
|
||||
- }
|
||||
-
|
||||
+
|
||||
+ @Override
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world, int i, int j, int k, int md, int fortune)
|
||||
+ {
|
||||
+ ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
||||
+
|
||||
+ int count = 1;
|
||||
+ if (md >= 3)
|
||||
+ {
|
||||
+ count = 2 + world.rand.nextInt(3);
|
||||
+ if (fortune > 0)
|
||||
+ {
|
||||
+ count += world.rand.nextInt(fortune + 1);
|
||||
+ }
|
||||
+ }
|
||||
+ for (int n = 0; n < count; n++)
|
||||
+ {
|
||||
+ ret.add(new ItemStack(Item.netherStalkSeeds));
|
||||
+ }
|
||||
+ return ret;
|
||||
+
|
||||
}
|
||||
|
||||
public int idDropped(int i, Random random, int j)
|
||||
@@ -0,0 +1,28 @@
|
||||
--- ../src_base/minecraft_server/net/minecraft/src/BlockSnow.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/BlockSnow.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -82,15 +82,7 @@
|
||||
|
||||
public void harvestBlock(World world, EntityPlayer entityplayer, int i, int j, int k, int l)
|
||||
{
|
||||
- int i1 = Item.snowball.shiftedIndex;
|
||||
- float f = 0.7F;
|
||||
- double d = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
- double d1 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
- double d2 = (double)(world.rand.nextFloat() * f) + (double)(1.0F - f) * 0.5D;
|
||||
- EntityItem entityitem = new EntityItem(world, (double)i + d, (double)j + d1, (double)k + d2, new ItemStack(i1, 1, 0));
|
||||
- entityitem.delayBeforeCanPickup = 10;
|
||||
- world.spawnEntityInWorld(entityitem);
|
||||
- world.setBlockWithNotify(i, j, k, 0);
|
||||
+ dropBlockAsItem(world,i,j,k,l,0);
|
||||
entityplayer.addStat(StatList.mineBlockStatArray[blockID], 1);
|
||||
}
|
||||
|
||||
@@ -101,7 +93,7 @@
|
||||
|
||||
public int quantityDropped(Random random)
|
||||
{
|
||||
- return 0;
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
public void updateTick(World world, int i, int j, int k, Random random)
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// BlockFlower, Item, World, EntityPlayer,
|
||||
@@ -41,13 +44,17 @@
|
||||
@@ -41,13 +44,24 @@
|
||||
|
||||
public int idDropped(int i, Random random, int j)
|
||||
{
|
||||
@@ -24,13 +24,20 @@
|
||||
- }
|
||||
+ }
|
||||
+
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world,
|
||||
+ int i, int j, int k, int md) {
|
||||
+ ArrayList<ItemStack> tr=new ArrayList<ItemStack>();
|
||||
+ if(world.rand.nextInt(8)!=0)
|
||||
+ @Override
|
||||
+ public ArrayList<ItemStack> getBlockDropped(World world, int i, int j, int k, int md, int fortune)
|
||||
+ {
|
||||
+ ArrayList<ItemStack> tr = new ArrayList<ItemStack>();
|
||||
+ if (world.rand.nextInt(8) != 0)
|
||||
+ {
|
||||
+ return tr;
|
||||
+ ItemStack ist=ForgeHooks.getGrassSeed(world);
|
||||
+ if(ist!=null) tr.add(ist);
|
||||
+ }
|
||||
+
|
||||
+ ItemStack ist = ForgeHooks.getGrassSeed(world);
|
||||
+ if (ist != null)
|
||||
+ {
|
||||
+ tr.add(ist);
|
||||
+ }
|
||||
+ return tr;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,15 +8,7 @@
|
||||
|
||||
import java.io.PrintStream;
|
||||
import java.util.*;
|
||||
@@ -325,6 +326,7 @@
|
||||
}
|
||||
int i2 = xPosition * 16 + i;
|
||||
int j2 = zPosition * 16 + k;
|
||||
+
|
||||
blocks[i << worldObj.field_35250_b | k << worldObj.worldYBits | j] = (byte)(byte0 & 0xff);
|
||||
if(l1 != 0)
|
||||
{
|
||||
@@ -367,7 +369,7 @@
|
||||
@@ -367,7 +368,7 @@
|
||||
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
|
||||
if(tileentity == null)
|
||||
{
|
||||
@@ -25,7 +17,7 @@
|
||||
worldObj.setBlockTileEntity(i, j, k, tileentity);
|
||||
}
|
||||
if(tileentity != null)
|
||||
@@ -375,14 +377,6 @@
|
||||
@@ -375,14 +376,6 @@
|
||||
tileentity.func_35164_g();
|
||||
}
|
||||
}
|
||||
@@ -40,22 +32,19 @@
|
||||
}
|
||||
isModified = true;
|
||||
return true;
|
||||
@@ -404,10 +398,13 @@
|
||||
}
|
||||
int l1 = xPosition * 16 + i;
|
||||
int i2 = zPosition * 16 + k;
|
||||
+
|
||||
blocks[i << worldObj.field_35250_b | k << worldObj.worldYBits | j] = (byte)(byte0 & 0xff);
|
||||
@@ -408,6 +401,11 @@
|
||||
if(k1 != 0)
|
||||
{
|
||||
- Block.blocksList[k1].onBlockRemoval(worldObj, l1, j, i2);
|
||||
+ if (!worldObj.singleplayerWorld)
|
||||
+ Block.blocksList[k1].onBlockRemoval(worldObj, l1, j, i2);
|
||||
+ worldObj.removeBlockTileEntity(l1, j, i2);
|
||||
Block.blocksList[k1].onBlockRemoval(worldObj, l1, j, i2);
|
||||
+ if (!worldObj.singleplayerWorld)
|
||||
+ {
|
||||
+ Block.blocksList[k1].onBlockRemoval(worldObj, l1, j, i2);
|
||||
+ }
|
||||
+ worldObj.removeBlockTileEntity(l1, j, i2);
|
||||
}
|
||||
data.setNibble(i, j, k, 0);
|
||||
if(Block.lightOpacity[byte0 & 0xff] != 0)
|
||||
@@ -435,7 +432,7 @@
|
||||
@@ -435,7 +433,7 @@
|
||||
TileEntity tileentity = getChunkBlockTileEntity(i, j, k);
|
||||
if(tileentity == null)
|
||||
{
|
||||
@@ -64,7 +53,7 @@
|
||||
worldObj.setBlockTileEntity(i, j, k, tileentity);
|
||||
}
|
||||
if(tileentity != null)
|
||||
@@ -443,14 +440,6 @@
|
||||
@@ -443,14 +441,6 @@
|
||||
tileentity.func_35164_g();
|
||||
}
|
||||
}
|
||||
@@ -79,7 +68,7 @@
|
||||
}
|
||||
isModified = true;
|
||||
return true;
|
||||
@@ -586,6 +575,11 @@
|
||||
@@ -586,6 +576,11 @@
|
||||
{
|
||||
ChunkPosition chunkposition = new ChunkPosition(i, j, k);
|
||||
TileEntity tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition);
|
||||
@@ -91,7 +80,7 @@
|
||||
if(tileentity == null)
|
||||
{
|
||||
int l = getBlockID(i, j, k);
|
||||
@@ -595,18 +589,23 @@
|
||||
@@ -595,18 +590,23 @@
|
||||
}
|
||||
if(tileentity == null)
|
||||
{
|
||||
@@ -122,7 +111,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -618,7 +617,7 @@
|
||||
@@ -618,7 +618,7 @@
|
||||
setChunkBlockTileEntity(i, j, k, tileentity);
|
||||
if(isChunkLoaded)
|
||||
{
|
||||
@@ -131,7 +120,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -634,6 +633,8 @@
|
||||
@@ -634,6 +634,8 @@
|
||||
return;
|
||||
} else
|
||||
{
|
||||
|
||||
@@ -11,8 +11,26 @@
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// EntityLiving, InventoryPlayer, FoodStats, PlayerCapabilities,
|
||||
// ContainerPlayer, World, ChunkCoordinates, DataWatcher,
|
||||
@@ -493,6 +497,8 @@
|
||||
worldObj.entityJoinedWorld(entityitem);
|
||||
@@ -447,7 +451,16 @@
|
||||
|
||||
public void dropCurrentItem()
|
||||
{
|
||||
- dropPlayerItemWithRandomChoice(inventory.decrStackSize(inventory.currentItem, 1), false);
|
||||
+ ItemStack stack = inventory.getCurrentItem();
|
||||
+ if (stack == null)
|
||||
+ {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (stack.getItem().onDroppedByPlayer(stack, this))
|
||||
+ {
|
||||
+ dropPlayerItemWithRandomChoice(inventory.decrStackSize(inventory.currentItem, 1), false);
|
||||
+ }
|
||||
}
|
||||
|
||||
public void dropPlayerItem(ItemStack itemstack)
|
||||
@@ -493,6 +506,8 @@
|
||||
worldObj.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
|
||||
+ /* FORGE: This isnt called anymore
|
||||
@@ -20,7 +38,7 @@
|
||||
public float getCurrentPlayerStrVsBlock(Block block)
|
||||
{
|
||||
float f = inventory.getStrVsBlock(block);
|
||||
@@ -521,6 +527,45 @@
|
||||
@@ -521,6 +536,45 @@
|
||||
return f1;
|
||||
}
|
||||
|
||||
@@ -41,12 +59,12 @@
|
||||
+ f += i * i + 1;
|
||||
+ }
|
||||
+
|
||||
+ if(func_35184_a(Potion.digSpeed))
|
||||
+ if(isPotionActive(Potion.digSpeed))
|
||||
+ {
|
||||
+ f *= 1.0F + (float)(getActivePotionEffect(Potion.digSpeed).getAmplifier() + 1) * 0.2F;
|
||||
+ }
|
||||
+
|
||||
+ if(func_35184_a(Potion.digSlowdown))
|
||||
+ if(isPotionActive(Potion.digSlowdown))
|
||||
+ {
|
||||
+ f *= 1.0F - (float)(getActivePotionEffect(Potion.digSlowdown).getAmplifier() + 1) * 0.2F;
|
||||
+ }
|
||||
@@ -66,7 +84,7 @@
|
||||
public boolean canHarvestBlock(Block block)
|
||||
{
|
||||
return inventory.canHarvestBlock(block);
|
||||
@@ -718,7 +763,26 @@
|
||||
@@ -718,7 +772,26 @@
|
||||
}
|
||||
|
||||
protected void damageEntity(DamageSource damagesource, int i)
|
||||
@@ -91,10 +109,10 @@
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if(!damagesource.unblockable() && func_35180_G())
|
||||
if(!damagesource.isUnblockable() && func_35180_G())
|
||||
{
|
||||
i = 1 + i >> 1;
|
||||
@@ -770,7 +834,9 @@
|
||||
@@ -770,7 +843,9 @@
|
||||
|
||||
public void destroyCurrentEquippedItem()
|
||||
{
|
||||
@@ -104,7 +122,7 @@
|
||||
}
|
||||
|
||||
public double getYOffset()
|
||||
@@ -896,6 +962,10 @@
|
||||
@@ -896,6 +971,10 @@
|
||||
|
||||
public EnumStatus sleepInBedAt(int i, int j, int k)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
--- ../src_base/minecraft_server/net/minecraft/src/Item.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/Item.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -175,6 +175,9 @@
|
||||
@@ -5,6 +5,7 @@
|
||||
package net.minecraft.src;
|
||||
|
||||
import java.io.PrintStream;
|
||||
+import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
@@ -175,6 +176,9 @@
|
||||
private String potionInfo;
|
||||
private String itemName;
|
||||
|
||||
@@ -10,7 +18,22 @@
|
||||
protected Item(int i)
|
||||
{
|
||||
maxStackSize = 64;
|
||||
@@ -219,6 +222,13 @@
|
||||
@@ -209,6 +213,14 @@
|
||||
return this;
|
||||
}
|
||||
|
||||
+ /* FORGE: This is called when the item is used, before the block is
|
||||
+ * activated. Return true to prevent any further processing.
|
||||
+ */
|
||||
+ public boolean onItemUseFirst(ItemStack ist, EntityPlayer player,
|
||||
+ World world, int i, int j, int k, int l) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l)
|
||||
{
|
||||
return false;
|
||||
@@ -219,6 +231,13 @@
|
||||
return 1.0F;
|
||||
}
|
||||
|
||||
@@ -24,7 +47,7 @@
|
||||
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
|
||||
{
|
||||
return itemstack;
|
||||
@@ -266,6 +276,29 @@
|
||||
@@ -266,6 +285,29 @@
|
||||
return maxDamage > 0 && !hasSubtypes;
|
||||
}
|
||||
|
||||
@@ -54,3 +77,30 @@
|
||||
public boolean hitEntity(ItemStack itemstack, EntityLiving entityliving, EntityLiving entityliving1)
|
||||
{
|
||||
return false;
|
||||
@@ -414,6 +456,26 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ /* FORGE: This is not called by the server, but declared here for compatibility
|
||||
+ */
|
||||
+ public void addCreativeItems(ArrayList itemList)
|
||||
+ {
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when a player drops the item into the world,
|
||||
+ * returning false from this will prevent the item from
|
||||
+ * being removed from the players inventory and spawning
|
||||
+ * in the world
|
||||
+ *
|
||||
+ * @param player The player that dropped the item
|
||||
+ * @param item The item stack, before the item is removed.
|
||||
+ */
|
||||
+ public boolean onDroppedByPlayer(ItemStack item, EntityPlayer player)
|
||||
+ {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
static
|
||||
{
|
||||
shovelSteel = (new ItemSpade(0, EnumToolMaterial.IRON)).setIconCoord(2, 5).setItemName("shovelIron");
|
||||
@@ -19,6 +19,6 @@
|
||||
+ return customBucket;
|
||||
+ }
|
||||
+
|
||||
if(!entityplayer.func_35200_c(i, j, k))
|
||||
if(!entityplayer.canPlayerEdit(i, j, k))
|
||||
{
|
||||
return itemstack;
|
||||
@@ -12,8 +12,8 @@
|
||||
|
||||
public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l)
|
||||
{
|
||||
- if(!entityplayer.func_35200_c(i, j, k))
|
||||
+ if(entityplayer!=null && !entityplayer.func_35200_c(i, j, k))
|
||||
- if(!entityplayer.canPlayerEdit(i, j, k))
|
||||
+ if(entityplayer!=null && !entityplayer.canPlayerEdit(i, j, k))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
--- ../src_base/minecraft_server/net/minecraft/src/ItemInWorldManager.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/ItemInWorldManager.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -3,7 +3,8 @@
|
||||
@@ -3,7 +3,7 @@
|
||||
// Decompiler options: packimports(3) braces deadcode fieldsfirst
|
||||
|
||||
package net.minecraft.src;
|
||||
-
|
||||
+import net.minecraft.src.forge.ForgeHooks;
|
||||
+import net.minecraft.src.forge.IUseItemFirst;
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// EntityPlayer, PlayerCapabilities, World, Block,
|
||||
@@ -81,7 +82,8 @@
|
||||
@@ -81,7 +81,8 @@
|
||||
if(j != 0)
|
||||
{
|
||||
Block block = Block.blocksList[j];
|
||||
@@ -20,7 +19,7 @@
|
||||
if(f >= 1.0F)
|
||||
{
|
||||
field_22050_k = false;
|
||||
@@ -108,7 +110,7 @@
|
||||
@@ -108,7 +109,7 @@
|
||||
{
|
||||
Block.blocksList[i1].onBlockClicked(thisWorld, i, j, k, thisPlayer);
|
||||
}
|
||||
@@ -29,7 +28,7 @@
|
||||
{
|
||||
blockHarvessted(i, j, k);
|
||||
} else
|
||||
@@ -128,7 +130,7 @@
|
||||
@@ -128,7 +129,7 @@
|
||||
if(i1 != 0)
|
||||
{
|
||||
Block block = Block.blocksList[i1];
|
||||
@@ -38,7 +37,7 @@
|
||||
if(f >= 0.7F)
|
||||
{
|
||||
blockHarvessted(i, j, k);
|
||||
@@ -150,16 +152,19 @@
|
||||
@@ -150,16 +151,19 @@
|
||||
{
|
||||
Block block = Block.blocksList[thisWorld.getBlockId(i, j, k)];
|
||||
int l = thisWorld.getBlockMetadata(i, j, k);
|
||||
@@ -63,7 +62,7 @@
|
||||
int l = thisWorld.getBlockId(i, j, k);
|
||||
int i1 = thisWorld.getBlockMetadata(i, j, k);
|
||||
thisWorld.playAuxSFXAtEntity(thisPlayer, 2001, i, j, k, l + thisWorld.getBlockMetadata(i, j, k) * 256);
|
||||
@@ -169,8 +174,7 @@
|
||||
@@ -169,8 +173,7 @@
|
||||
((EntityPlayerMP)thisPlayer).playerNetServerHandler.sendPacket(new Packet53BlockChange(i, j, k, thisWorld));
|
||||
} else
|
||||
{
|
||||
@@ -73,7 +72,7 @@
|
||||
if(itemstack != null)
|
||||
{
|
||||
itemstack.onDestroyBlock(l, i, j, k, thisPlayer);
|
||||
@@ -204,6 +208,7 @@
|
||||
@@ -204,6 +207,7 @@
|
||||
if(itemstack1.stackSize == 0)
|
||||
{
|
||||
entityplayer.inventory.mainInventory[entityplayer.inventory.currentItem] = null;
|
||||
@@ -81,15 +80,16 @@
|
||||
}
|
||||
return true;
|
||||
} else
|
||||
@@ -214,6 +219,11 @@
|
||||
@@ -214,6 +218,12 @@
|
||||
|
||||
public boolean activeBlockOrUseItem(EntityPlayer entityplayer, World world, ItemStack itemstack, int i, int j, int k, int l)
|
||||
{
|
||||
+ if(itemstack!=null && itemstack.getItem() instanceof IUseItemFirst) {
|
||||
+ IUseItemFirst iuif=(IUseItemFirst)itemstack.getItem();
|
||||
+ if(iuif.onItemUseFirst(itemstack,entityplayer,world,i,j,k,l))
|
||||
+ if (itemstack != null) {
|
||||
+ Item it=itemstack.getItem();
|
||||
+ if (it.onItemUseFirst(itemstack, entityplayer, world, i, j, k, l)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
int i1 = world.getBlockId(i, j, k);
|
||||
if(i1 > 0 && Block.blocksList[i1].blockActivated(world, i, j, k, entityplayer))
|
||||
{
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
--- ../src_base/minecraft_server/net/minecraft/src/TileEntityBrewingStand.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/TileEntityBrewingStand.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
package net.minecraft.src;
|
||||
|
||||
+import net.minecraft.src.forge.ISidedInventory;
|
||||
+
|
||||
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// TileEntity, IInventory, ItemStack, World,
|
||||
@@ -11,7 +13,7 @@
|
||||
// NBTTagList, EntityPlayer
|
||||
|
||||
public class TileEntityBrewingStand extends TileEntity
|
||||
- implements IInventory
|
||||
+ implements IInventory, ISidedInventory
|
||||
{
|
||||
|
||||
private ItemStack brewingItemStacks[];
|
||||
@@ -274,5 +276,15 @@
|
||||
}
|
||||
|
||||
return i;
|
||||
- }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getStartInventorySide(int side) {
|
||||
+ return (side == 1 ? 3 : 0);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getSizeInventorySide(int side) {
|
||||
+ return (side == 1 ? 1 : 3);
|
||||
+ }
|
||||
}
|
||||
@@ -144,7 +144,7 @@
|
||||
+ }
|
||||
}
|
||||
|
||||
public void func_35239_a(TileEntity tileentity)
|
||||
public void markEntityForDespawn(TileEntity tileentity)
|
||||
@@ -1762,13 +1751,18 @@
|
||||
public boolean isBlockNormalCube(int i, int j, int k)
|
||||
{
|
||||
@@ -154,7 +154,7 @@
|
||||
- return false;
|
||||
- } else
|
||||
- {
|
||||
- return block.blockMaterial.getIsOpaque() && block.isACube();
|
||||
- return block.blockMaterial.getIsOpaque() && block.renderAsNormalBlock();
|
||||
- }
|
||||
+ if(block == null) return false;
|
||||
+ return block.isBlockNormalCube(this,i,j,k);
|
||||
@@ -173,7 +173,7 @@
|
||||
public boolean func_41047_b(int i, int j, int k, boolean flag)
|
||||
@@ -2179,7 +2173,7 @@
|
||||
|
||||
private int func_35241_e(int i, int j, int k, int l, int i1, int j1)
|
||||
private int computeBlockLightValue(int i, int j, int k, int l, int i1, int j1)
|
||||
{
|
||||
- int k1 = Block.lightValue[i1];
|
||||
+ int k1 = (i1==0)?0:Block.blocksList[i1].getLightValue(this,j,k,l);
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
--- ../src_base/minecraft_server/net/minecraft/src/WorldGenDungeons.java 0000-00-00 00:00:00.000000000 -0000
|
||||
+++ ../src_work/minecraft_server/net/minecraft/src/WorldGenDungeons.java 0000-00-00 00:00:00.000000000 -0000
|
||||
@@ -7,6 +7,8 @@
|
||||
import java.io.PrintStream;
|
||||
import java.util.Random;
|
||||
|
||||
+import net.minecraft.src.forge.MinecraftForge;
|
||||
+
|
||||
// Referenced classes of package net.minecraft.src:
|
||||
// WorldGenerator, World, Material, Block,
|
||||
// TileEntityChest, TileEntityMobSpawner, ItemStack, Item
|
||||
@@ -129,11 +131,11 @@
|
||||
int k4 = 0;
|
||||
do
|
||||
{
|
||||
- if(k4 >= 8)
|
||||
+ if(k4 >= MinecraftForge.getDungeonLootTries())
|
||||
{
|
||||
break label0;
|
||||
}
|
||||
- ItemStack itemstack = pickCheckLootItem(random);
|
||||
+ ItemStack itemstack = MinecraftForge.getRandomDungeonLoot(random);
|
||||
if(itemstack != null)
|
||||
{
|
||||
tileentitychest.setInventorySlotContents(random.nextInt(tileentitychest.getSizeInventory()), itemstack);
|
||||
@@ -148,7 +150,7 @@
|
||||
TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner)world.getBlockTileEntity(i, j, k);
|
||||
if(tileentitymobspawner != null)
|
||||
{
|
||||
- tileentitymobspawner.setMobID(pickMobSpawner(random));
|
||||
+ tileentitymobspawner.setMobID(MinecraftForge.getRandomDungeonMob(random));
|
||||
} else
|
||||
{
|
||||
System.err.println((new StringBuilder()).append("Failed to fetch mob spawner entity at (").append(i).append(", ").append(j).append(", ").append(k).append(")").toString());
|
||||
+1
-1
@@ -8,6 +8,6 @@ set PATH=E:\cygwin\bin;%PATH%
|
||||
|
||||
cd forge
|
||||
|
||||
sh package.sh 1.2.1
|
||||
sh package.sh 1.2.4
|
||||
|
||||
pause
|
||||
@@ -2,6 +2,7 @@
|
||||
@echo off
|
||||
|
||||
set PATH=.\bin;%PATH%
|
||||
|
||||
echo Creating directories
|
||||
for /f %%i in ('find ../src_work -type d') do (
|
||||
set file=%%i
|
||||
@@ -16,14 +17,9 @@ for /f %%i in ('find ../src_work -type f') do (
|
||||
rem echo !file!
|
||||
diff -u ../src_base!file! ../src_work!file! -r --strip-trailing-cr --new-file | sed -e "1,2s/[0-9-]* [0-9:\.]* [+-][0-9]*\b/0000-00-00 00:00:00.000000000 -0000/" | tr -d '\r' > patches!file!.patch
|
||||
)
|
||||
|
||||
echo Removing empty patches
|
||||
for /f %%i in ('find patches -size 0 -type f') do (
|
||||
set file=%%i
|
||||
rem Have to do this to filter out .svn entries
|
||||
if /I "!file:~-6!" EQU ".patch" (
|
||||
del !file:/=\!
|
||||
)
|
||||
)
|
||||
find patches -size 0 -type f -regex .+\.patch -delete
|
||||
for /f %%i in ('find patches -depth -empty -type d') do (
|
||||
set file=%%i
|
||||
if "!file:.svn=!" EQU "!file!" (
|
||||
@@ -31,5 +27,22 @@ for /f %%i in ('find patches -depth -empty -type d') do (
|
||||
)
|
||||
)
|
||||
|
||||
echo Grabbing copy of conf folder
|
||||
for /f %%i in ('find conf -type f') do (
|
||||
set file=%%i
|
||||
if "!file:.svn=!" EQU "!file!" (
|
||||
del !file:/=\!
|
||||
)
|
||||
)
|
||||
|
||||
for /f %%i in ('find conf -depth -empty -type d') do (
|
||||
set file=%%i
|
||||
if "!file:.svn=!" EQU "!file!" (
|
||||
rmdir "%%i"
|
||||
)
|
||||
)
|
||||
|
||||
xcopy ..\conf conf /E /I /Y
|
||||
|
||||
echo Finished
|
||||
pause
|
||||
+15
-4
@@ -13,11 +13,22 @@ do
|
||||
done
|
||||
|
||||
echo Removing empty patches
|
||||
for i in `find patches -size 0 -type f -name \*.patch`
|
||||
do
|
||||
rm $i
|
||||
done
|
||||
find patches -size 0 -type f -name \*.patch -delete
|
||||
for i in `find patches -depth -empty -type d | grep -a -v "svn"`
|
||||
do
|
||||
rmdir "$i"
|
||||
done
|
||||
|
||||
echo Grabbing copy of conf folder
|
||||
for i in `find conf -type f | grep -a -v "svn"`
|
||||
do
|
||||
rm $i
|
||||
done
|
||||
for i in `find conf -depth -empty -type d | grep -a -v "svn"`
|
||||
do
|
||||
rmdir "$i"
|
||||
done
|
||||
|
||||
cp -r ../conf/* conf
|
||||
|
||||
echo Finished
|
||||
Reference in new issue
Block a user