From ed3028561b67249303d4ab4214e058395c595ea9 Mon Sep 17 00:00:00 2001 From: Goodbird Date: Sun, 21 Jan 2024 23:38:06 +0300 Subject: [PATCH] Fixed model setting and client synchronisation --- .../java/noppes/npcs/blocks/tiles/TileScripted.java | 3 ++- .../noppes/npcs/scripted/BlockScriptedWrapper.java | 10 +++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java b/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java index b03d03e30..f214e8284 100644 --- a/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java +++ b/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java @@ -106,7 +106,7 @@ public class TileScripted extends TileEntity implements IScriptBlockHandler { } public void setDisplayNBT(NBTTagCompound compound){ itemModel = ItemStack.loadItemStackFromNBT(compound.getCompoundTag("ScriptBlockModel")); - if(itemModel.stackSize == 0) + if(itemModel==null || itemModel.stackSize == 0) itemModel = new ItemStack(Item.getItemFromBlock(CustomItems.scripted)); if(compound.hasKey("ScriptBlockModelBlock")) blockModel = Block.getBlockFromName(compound.getString("ScriptBlockModelBlock")); @@ -215,6 +215,7 @@ public class TileScripted extends TileEntity implements IScriptBlockHandler { ticksExisted = 0; if(needsClientUpdate){ markDirty(); + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); worldObj.notifyBlocksOfNeighborChange(xCoord,yCoord,zCoord,getBlockType(),3); needsClientUpdate = false; } diff --git a/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java b/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java index dbb8aae69..1e02ea0de 100644 --- a/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java +++ b/src/main/java/noppes/npcs/scripted/BlockScriptedWrapper.java @@ -36,7 +36,15 @@ public class BlockScriptedWrapper extends ScriptBlock implements IBlockScripted{ tile.setItemModel(null, null); else{ Block block = Block.getBlockFromName(name); - tile.setItemModel(new ItemStack(Item.getItemFromBlock(block)), block); + if(block!=null) { + tile.setItemModel(new ItemStack(Item.getItemFromBlock(block)), block); + }else{ + if(Item.itemRegistry.containsKey(name)) { + tile.setItemModel(new ItemStack((Item) Item.itemRegistry.getObject(name)), null); + }else{ + tile.setItemModel(null, null); + } + } } }