diff --git a/IronChests2/build.xml b/IronChests2/build.xml
index d94599d..55d1585 100644
--- a/IronChests2/build.xml
+++ b/IronChests2/build.xml
@@ -13,7 +13,7 @@
-
+
diff --git a/IronChests2/client/cpw/mods/ironchest/client/ClientProxy.java b/IronChests2/client/cpw/mods/ironchest/client/ClientProxy.java
index fddfe04..913fdd9 100644
--- a/IronChests2/client/cpw/mods/ironchest/client/ClientProxy.java
+++ b/IronChests2/client/cpw/mods/ironchest/client/ClientProxy.java
@@ -11,6 +11,8 @@ import net.minecraft.src.GuiScreen;
import net.minecraft.src.ModLoader;
import net.minecraft.src.ModLoaderMp;
import net.minecraft.src.NBTTagCompound;
+import net.minecraft.src.Packet;
+import net.minecraft.src.TileEntity;
import net.minecraft.src.forge.MinecraftForgeClient;
import cpw.mods.ironchest.ChestChangerType;
import cpw.mods.ironchest.IProxy;
@@ -21,8 +23,8 @@ public class ClientProxy extends BaseModMp implements IProxy {
@Override
public void registerRenderInformation() {
ChestItemRenderHelper.instance=new IronChestRenderHelper();
- MinecraftForgeClient.preloadTexture("cpw/mods/ironchest/sprites/block_textures.png");
- MinecraftForgeClient.preloadTexture("cpw/mods/ironchest/sprites/item_textures.png");
+ MinecraftForgeClient.preloadTexture("/cpw/mods/ironchest/sprites/block_textures.png");
+ MinecraftForgeClient.preloadTexture("/cpw/mods/ironchest/sprites/item_textures.png");
}
@Override
@@ -84,4 +86,29 @@ public class ClientProxy extends BaseModMp implements IProxy {
}
return null;
}
+
+ @Override
+ public void handleTileEntityPacket(int x, int y, int z, int type, int[] intData, float[] floatData, String[] stringData) {
+ TileEntity te=ModLoader.getMinecraftInstance().theWorld.getBlockTileEntity(x, y, z);
+ if (te!=null && te instanceof TileEntityIronChest) {
+ TileEntityIronChest icte=(TileEntityIronChest)te;
+ icte.handlePacketData(type,intData,floatData,stringData);
+ }
+ }
+
+ @Override
+ public Packet getDescriptionPacket(TileEntityIronChest tile) {
+ // NOOP on client
+ return null;
+ }
+
+ @Override
+ public void sendTileEntityUpdate(TileEntityIronChest tile) {
+ // NOOP on client
+ }
+
+ @Override
+ public boolean isRemote() {
+ return ModLoader.getMinecraftInstance().theWorld.isRemote;
+ }
}
diff --git a/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java b/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java
index 23165b0..acc099e 100644
--- a/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java
+++ b/IronChests2/common/cpw/mods/ironchest/BlockIronChest.java
@@ -14,7 +14,6 @@ import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
import net.minecraft.src.mod_IronChest;
-import net.minecraft.src.forge.IMultipassRender;
import net.minecraft.src.forge.ITextureProvider;
public class BlockIronChest extends BlockContainer implements ITextureProvider {
@@ -182,9 +181,4 @@ public class BlockIronChest extends BlockContainer implements ITextureProvider {
}
}
}
-
-/* @Override
- public boolean canRenderInPass(int n) {
- return n==0;
- }*/
}
\ No newline at end of file
diff --git a/IronChests2/common/cpw/mods/ironchest/IProxy.java b/IronChests2/common/cpw/mods/ironchest/IProxy.java
index 7a55e7a..909abca 100644
--- a/IronChests2/common/cpw/mods/ironchest/IProxy.java
+++ b/IronChests2/common/cpw/mods/ironchest/IProxy.java
@@ -5,6 +5,7 @@ import java.io.File;
import net.minecraft.src.EntityItem;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.NBTTagCompound;
+import net.minecraft.src.Packet;
public interface IProxy {
@@ -22,4 +23,11 @@ public interface IProxy {
public abstract void registerGUI(int guiId);
+ public abstract void handleTileEntityPacket(int x, int y, int z, int type, int[] intData, float[] floatData, String[] stringData);
+
+ public abstract Packet getDescriptionPacket(TileEntityIronChest tile);
+
+ public abstract void sendTileEntityUpdate(TileEntityIronChest tile);
+
+ public abstract boolean isRemote();
}
diff --git a/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java b/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java
index e0d9ffc..5cb8a99 100644
--- a/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java
+++ b/IronChests2/common/cpw/mods/ironchest/ItemChestChanger.java
@@ -5,6 +5,7 @@ import net.minecraft.src.Item;
import net.minecraft.src.ItemStack;
import net.minecraft.src.TileEntity;
import net.minecraft.src.World;
+import net.minecraft.src.mod_IronChest;
import net.minecraft.src.forge.ITextureProvider;
public class ItemChestChanger extends Item implements ITextureProvider {
@@ -32,6 +33,7 @@ public class ItemChestChanger extends Item implements ITextureProvider {
world.setBlockMetadataWithNotify(X, Y, Z, newchest.getType().ordinal());
world.notifyBlocksOfNeighborChange(X, Y, Z, world.getBlockId(X, Y, Z));
stack.stackSize=0;
+ mod_IronChest.proxy.sendTileEntityUpdate(newchest);
return true;
} else {
return false;
diff --git a/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java b/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java
index e61484d..6fed2d8 100644
--- a/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java
+++ b/IronChests2/common/cpw/mods/ironchest/TileEntityIronChest.java
@@ -8,6 +8,7 @@ import net.minecraft.src.IInventory;
import net.minecraft.src.ItemStack;
import net.minecraft.src.NBTTagCompound;
import net.minecraft.src.NBTTagList;
+import net.minecraft.src.Packet;
import net.minecraft.src.TileEntity;
import net.minecraft.src.mod_IronChest;
@@ -21,6 +22,7 @@ public class TileEntityIronChest extends TileEntity implements IInventory {
private ItemStack[] topStacks;
private byte facing;
private boolean inventoryTouched;
+ private boolean hadStuff;
public TileEntityIronChest() {
this(IronChestType.IRON);
@@ -66,7 +68,7 @@ public class TileEntityIronChest extends TileEntity implements IInventory {
}
protected void sortTopStacks() {
- if (!type.isTransparent()) {
+ if (!type.isTransparent() || mod_IronChest.proxy.isRemote()) {
return;
}
ItemStack[] tempCopy=new ItemStack[getSizeInventory()];
@@ -85,12 +87,15 @@ public class TileEntityIronChest extends TileEntity implements IInventory {
hasStuff=true;
}
}
- if (!hasStuff) {
+ if (!hasStuff && hadStuff) {
+ hadStuff=false;
for (int i=0; i() {
@Override
public int compare(ItemStack o1, ItemStack o2) {
@@ -115,7 +120,7 @@ public class TileEntityIronChest extends TileEntity implements IInventory {
for (int i=p; i