From ba3e80b15c1240e13df62c03e2aa9c702df2fc55 Mon Sep 17 00:00:00 2001 From: Sen Date: Sun, 20 Jul 2025 16:20:24 +0200 Subject: [PATCH] remove chest renderer --- .../client/renderer/entity/RenderItem.java | 7 +- .../client/renderer/model/ModelChest.java | 42 ------- .../renderer/tileentity/ChestRenderer.java | 105 ------------------ .../tileentity/TileEntityRenderer.java | 1 - .../main/java/client/world/WorldClient.java | 4 +- .../main/resources/textures/blocks/chest.png | Bin 1302 -> 0 bytes .../resources/textures/blocks/chest_front.png | Bin 0 -> 5992 bytes .../textures/blocks/chest_handle.png | Bin 0 -> 5094 bytes .../resources/textures/blocks/chest_inner.png | Bin 0 -> 5929 bytes .../resources/textures/blocks/chest_side.png | Bin 0 -> 5650 bytes .../resources/textures/blocks/chest_top.png | Bin 0 -> 5942 bytes .../resources/textures/blocks/large_chest.png | Bin 1720 -> 0 bytes .../java/common/block/tech/BlockChest.java | 71 ++++++++++-- .../common/tileentity/TileEntityChest.java | 49 +------- 14 files changed, 70 insertions(+), 209 deletions(-) delete mode 100755 client/src/main/java/client/renderer/model/ModelChest.java delete mode 100755 client/src/main/java/client/renderer/tileentity/ChestRenderer.java delete mode 100755 client/src/main/resources/textures/blocks/chest.png create mode 100755 client/src/main/resources/textures/blocks/chest_front.png create mode 100755 client/src/main/resources/textures/blocks/chest_handle.png create mode 100755 client/src/main/resources/textures/blocks/chest_inner.png create mode 100755 client/src/main/resources/textures/blocks/chest_side.png create mode 100755 client/src/main/resources/textures/blocks/chest_top.png delete mode 100755 client/src/main/resources/textures/blocks/large_chest.png diff --git a/client/src/main/java/client/renderer/entity/RenderItem.java b/client/src/main/java/client/renderer/entity/RenderItem.java index aa287fe6..7042cd02 100755 --- a/client/src/main/java/client/renderer/entity/RenderItem.java +++ b/client/src/main/java/client/renderer/entity/RenderItem.java @@ -136,12 +136,7 @@ public class RenderItem } private void renderBuiltin(ItemStack stack) { - if(stack.getItem().getBlock() instanceof BlockChest chest) { - this.state = chest.getState().withProperty(BlockChest.FACING, Facing.SOUTH); - TileEntityRenderer.instance.renderItem(this.chest, 0.0D, 0.0D, 0.0D, 0.0F); - this.state = null; - } - else if(stack.getItem().getBlock() instanceof BlockStandingSign sign) { + if(stack.getItem().getBlock() instanceof BlockStandingSign sign) { this.state = sign.getState().withProperty(BlockStandingSign.ROTATION, 8); TileEntityRenderer.instance.renderItem(this.sign, 0.0D, 0.0D, 0.0D, 0.0F); this.state = null; diff --git a/client/src/main/java/client/renderer/model/ModelChest.java b/client/src/main/java/client/renderer/model/ModelChest.java deleted file mode 100755 index bfb5ffee..00000000 --- a/client/src/main/java/client/renderer/model/ModelChest.java +++ /dev/null @@ -1,42 +0,0 @@ -package client.renderer.model; - -public class ModelChest extends ModelBase -{ - /** The chest lid in the chest's model. */ - public ModelRenderer chestLid = (new ModelRenderer(this, 0, 0)).setTextureSize(64, 64); - - /** The model of the bottom of the chest. */ - public ModelRenderer chestBelow; - - /** The chest's knob in the chest model. */ - public ModelRenderer chestKnob; - - public ModelChest() - { - this.chestLid.addBox(0.0F, -5.0F, -14.0F, 14, 5, 14, 0.0F); - this.chestLid.rotationPointX = 1.0F; - this.chestLid.rotationPointY = 7.0F; - this.chestLid.rotationPointZ = 15.0F; - this.chestKnob = (new ModelRenderer(this, 0, 0)).setTextureSize(64, 64); - this.chestKnob.addBox(-1.0F, -2.0F, -15.0F, 2, 4, 1, 0.0F); - this.chestKnob.rotationPointX = 8.0F; - this.chestKnob.rotationPointY = 7.0F; - this.chestKnob.rotationPointZ = 15.0F; - this.chestBelow = (new ModelRenderer(this, 0, 19)).setTextureSize(64, 64); - this.chestBelow.addBox(0.0F, 0.0F, 0.0F, 14, 10, 14, 0.0F); - this.chestBelow.rotationPointX = 1.0F; - this.chestBelow.rotationPointY = 6.0F; - this.chestBelow.rotationPointZ = 1.0F; - } - - /** - * This method renders out all parts of the chest model. - */ - public void renderAll() - { - this.chestKnob.rotateAngleX = this.chestLid.rotateAngleX; - this.chestLid.render(0.0625F); - this.chestKnob.render(0.0625F); - this.chestBelow.render(0.0625F); - } -} diff --git a/client/src/main/java/client/renderer/tileentity/ChestRenderer.java b/client/src/main/java/client/renderer/tileentity/ChestRenderer.java deleted file mode 100755 index 07e2d841..00000000 --- a/client/src/main/java/client/renderer/tileentity/ChestRenderer.java +++ /dev/null @@ -1,105 +0,0 @@ -package client.renderer.tileentity; - -import org.lwjgl.opengl.GL11; - -import client.renderer.GlState; -import client.renderer.model.ModelChest; -import common.block.tech.BlockChest; -import common.init.BlockRegistry; -import common.init.Blocks; -import common.tileentity.TileEntityChest; -import common.world.State; - - -public class ChestRenderer extends TileRenderer -{ - private final ModelChest model = new ModelChest(); - - public ChestRenderer(TileEntityRenderer renderer) { - super(renderer); - } - - public void renderTileEntityAt(TileEntityChest te, double x, double y, double z, float partialTicks, int destroyStage) - { - GlState.enableDepth(); - GlState.depthFunc(GL11.GL_LEQUAL); - GlState.depthMask(true); - int i = 0; - BlockChest block = Blocks.chest; - - if (te.hasWorldObj()) - { - State state = te.getBlockState(); - if(state.getBlock() instanceof BlockChest chest) { - i = state.getValue(BlockChest.FACING).getIndex(); - block = chest; - } - } - - if (destroyStage >= 0) - { - this.bindTexture(DESTROY_STAGES[destroyStage]); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glPushMatrix(); - GL11.glScalef(4.0F, 4.0F, 1.0F); - GL11.glTranslatef(0.0625F, 0.0625F, 0.0625F); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - } - else - { - this.bindTexture("textures/blocks/" + BlockRegistry.getName(block) + ".png"); - } - - GL11.glPushMatrix(); - GlState.enableRescaleNormal(); - - if (destroyStage < 0) - { - GlState.color(1.0F, 1.0F, 1.0F, 1.0F); - } - - GL11.glTranslatef((float)x, (float)y + 1.0F, (float)z + 1.0F); - GL11.glScalef(1.0F, -1.0F, -1.0F); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - int j = 0; - - if (i == 2) - { - j = 180; - } - - if (i == 3) - { - j = 0; - } - - if (i == 4) - { - j = 90; - } - - if (i == 5) - { - j = -90; - } - - GL11.glRotatef((float)j, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - float f = te.prevLidAngle + (te.lidAngle - te.prevLidAngle) * partialTicks; - - f = 1.0F - f; - f = 1.0F - f * f * f; - this.model.chestLid.rotateAngleX = -(f * (float)Math.PI / 2.0F); - this.model.renderAll(); - GlState.disableRescaleNormal(); - GL11.glPopMatrix(); - GlState.color(1.0F, 1.0F, 1.0F, 1.0F); - - if (destroyStage >= 0) - { - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glPopMatrix(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - } - } -} diff --git a/client/src/main/java/client/renderer/tileentity/TileEntityRenderer.java b/client/src/main/java/client/renderer/tileentity/TileEntityRenderer.java index 7a5e8832..03e41255 100755 --- a/client/src/main/java/client/renderer/tileentity/TileEntityRenderer.java +++ b/client/src/main/java/client/renderer/tileentity/TileEntityRenderer.java @@ -32,7 +32,6 @@ public class TileEntityRenderer { private TileEntityRenderer() { this.renderers.put(TileEntitySign.class, new SignRenderer(this)); this.renderers.put(TileEntityDisplay.class, new DisplayRenderer(this)); - this.renderers.put(TileEntityChest.class, new ChestRenderer(this)); } private TileRenderer getRenderer(Class clazz) { diff --git a/client/src/main/java/client/world/WorldClient.java b/client/src/main/java/client/world/WorldClient.java index cecb5d72..045dee5e 100755 --- a/client/src/main/java/client/world/WorldClient.java +++ b/client/src/main/java/client/world/WorldClient.java @@ -664,8 +664,10 @@ public class WorldClient extends AWorldClient case 2016: TileEntity te = this.getTileEntity(blockPosIn); - if(te instanceof TileEntityChest chest) + if(te instanceof TileEntityChest chest) { chest.setUsing(data); + this.markBlockForUpdate(blockPosIn); + } } } diff --git a/client/src/main/resources/textures/blocks/chest.png b/client/src/main/resources/textures/blocks/chest.png deleted file mode 100755 index 2e3d7fdeaa5e20b4ccb50a6ee6b00f1c40d4032a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1302 zcmZuxeK-?%9RJPhjV8%^(v<41tx%U^YR_h`5@ytum%JXWJ7dQhMK&SIqxD8>>8^fc>R38A2Z32Lu34lhMV!s1`=?uVlH~^^2 z09YjyHTv(;0?-8V!9)N|+Li_KDE@l1wqKqX9vhf^Xfi0&`y$qSFwEb4YFkAUzpnAf zVZtV|EpuNcKFriskD7F@JlO*8Wg2L(#347n3rkkUU-_Fio8sZSfKm(WLYbLu(hlhk zWl?NL5zjs9hWu0C;Gip?&(Ho&lA3Ncu`iKUUhsIVCY!T2UlC`M{$%Dp=H+2Vv+DXp z#R!4Sj#OF&zv&a6P|wbDFV*`!{k#E53N|ZiyFMc_DHH|REoyW>zLJi1lFO=p zd>%5dx;jL`$fGM`a+*57<%Qg+pE#Q7Hk2%%MIaE0#d8u-HSPe2S$sl$DN){uKuCpl zdP}JTe_Gxj1O3nIGPuFAeCMaXa(8$fkR&WGQaU3R6Ny0GY!cBy(UbU-*+`sybjj8< zgK0{>r%trZH2kEtzlq3RIKMQOvri!O(;59BG>M}@+Hu$pG?XiRiW)Hq!44VL2x`z{ zDAFNKCLPUot5P8^p@-pVY`;#?u^&l8?UEEgxz3Mqq-2z;u@(`Qf?3{g{wip8ROu9cdyvWMZI0 z|2io+JVzJ{Y7|WZXz%O;+9Mm-TMb}+E>r;T1QtiM6c(h5ERAJB?6Xo9A7UInZdE%+ zEQ(cyeeh`lqceuur=r~YMK&+#P+5{f-q6N(Y4TV0Os=vxzSUu>jZ(a-yd>5Bw3$M^t-r_r8aZ+ z*m=Y+v9umld(wv0mX?|4PvN+uR~+Ss1zlMQnrRZiIr_> zaqf12yf7_F5)hiLGSp^lCcSvS$9Wv5UW_XIDQ~7k)XVDC7}om;{ddZU8&{8{7)#q| zEz8uBxDr?#jnT^>wyouJFBdpu*Yzf^UQZ_@7pbh^**1bj>@4<41?I@04>(;^75vK)R)1F@@R&ZZ1pt;2#C!BTGRGuZu zrk7UnsRdIoTM2)@HI%s`r=cOM54Ph6hU*22ou)I@N$>3}Br#y?!pB!ezI5}0b5o3g z><4Vz-J8M90X3cQ_VIz{Q0DRBXQ$pAcW`rpte{)E^B$KRu6`}jyJy&b%g|`v-W_|- zzcmHQ)^Gp(R|0Nez}}q(Awk}51V8gSdCxA`q=B~gck|R{uQY5f$#+U;szsb6v=1^J zft=zPuMe+gLBxY&8#Y@+6feN9%()%2*3NN`C3j!5K%}dS8}kGAmbC<=SEZs5N@h_Z uTMl>OT9a2e8kp(kavoqJ|2HghH24HKz2he+N>-)zSphGCFTTn%JmVk5JXtmX diff --git a/client/src/main/resources/textures/blocks/chest_front.png b/client/src/main/resources/textures/blocks/chest_front.png new file mode 100755 index 0000000000000000000000000000000000000000..d6ad16cd3da6aee91965af9145491814a8b8431a GIT binary patch literal 5992 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 Ut-p0ajRbRbbayCT|9#Yd0IlaRK>z>% literal 0 HcmV?d00001 diff --git a/client/src/main/resources/textures/blocks/chest_handle.png b/client/src/main/resources/textures/blocks/chest_handle.png new file mode 100755 index 0000000000000000000000000000000000000000..0096cda95fe7312ffcb2cb9ba9aec01d9a89a4b2 GIT binary patch literal 5094 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 WUxvFVMlb;Y1PYoMEGzSmO8p%ny=!a$ literal 0 HcmV?d00001 diff --git a/client/src/main/resources/textures/blocks/chest_inner.png b/client/src/main/resources/textures/blocks/chest_inner.png new file mode 100755 index 0000000000000000000000000000000000000000..2b840b7b4043f833d95959e726506490d300dedc GIT binary patch literal 5929 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 EU$D>-@&Et; literal 0 HcmV?d00001 diff --git a/client/src/main/resources/textures/blocks/chest_side.png b/client/src/main/resources/textures/blocks/chest_side.png new file mode 100755 index 0000000000000000000000000000000000000000..4d4ad6924d4afbe5f70bcbee2cdfcd01ad845cf7 GIT binary patch literal 5650 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 literal 0 HcmV?d00001 diff --git a/client/src/main/resources/textures/blocks/chest_top.png b/client/src/main/resources/textures/blocks/chest_top.png new file mode 100755 index 0000000000000000000000000000000000000000..daf9cd168707099e8bd7b2c25e9573ee53d0878e GIT binary patch literal 5942 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 TFJU=IH=(@U{TQXoBU1khBmx=e literal 0 HcmV?d00001 diff --git a/client/src/main/resources/textures/blocks/large_chest.png b/client/src/main/resources/textures/blocks/large_chest.png deleted file mode 100755 index 3aef19011fc99065bfceab5eb49c26cea04ec61b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1720 zcmV;p21ogcP)VGd00vk|L_t(|+U=Q5ZzM+<$A4ATJv}cT zzpP_>SGy)CA!wBsB0v#`h)63TH~}AE4;&De9QX!^`yTlK+^ifpAf!l~IC6_c5^=Bu zOJsSK^*Y}5cwTy@r@N{+^y^G^ciJrmjidfcma1p!*VXk*)zeS?EdUM=5AD&>5qIz2 z<>=^$`}gk)7U-?-zG|DzMt1Ee34pa0ZESX3)aAfONl6v%=-(#`pQ(zRgM$N`UZg=d zI5@D2g0R+U^7HRESr7 z3^3DvnT)Zt?UB{pIfuUwm_$H-Gu#*HJ<)Eda9D z>v3{&La*1O*j@-q!KH~f4GpKE!Rf5ybk?)>X=r$Arno9XdJaZ;2q`npx8PfF-S{tU z`xblv0YZ^+OIrZ|=jZ3y2gUZw6zO;8a}9ho_UQ#KkyaVsQR#ia zDYQFz7e+eX9!2hd9)JfA9#l#$j*{$lTR@OaJk?iYAAp;##ObVa$7|3~0!IY^371d2 zIAMUch*!ggg5B;~#w~3HRFO3XJsx2!jDslq{H7~sazNORgP|v2P5hl6kFXj-o!_r5 zW^+I|CGTtG>IFbZiE6cIb>oZ`jryF1hCAz<**1{L-94|tKnS!QK(->h24{mIpfc_<`Gq$c(9!Y4 zNAoK}k#Q>*07pr-JeOBmZk7Xz6HgPQ26QlG%WDE*#&uMl1Bw%$Pmn3Mk~zSH78M0q z4%n6rToo0T$t24KCbTG#bJpZJpq;$-@_XmGz=RP>u$no*>v%XF4+nVE>v3mulSj{~ zA$D30p70Pd&gNdn!%g=56VyZ30|j}aVr%7fD2zFdlYuNTbvD`=ez87*MNBc zZh1{Erw$jsnBji(!`Bin?>o=AjahCPs(kl1-`KZn?Ise?$!!!CjX)G?S&Kj$P!f!_ zjK>qIaEG7&YblWsKmFhbHq?0*a+S(XXOS`4bx}`y1GYE2TnBDZ;2eNoeDB%UvUmFa z29v$lRW!lrtn<4+P1xS-^5F+&X3y`m+8m!vXf#~Dz1O-DS9QEa+`=4SjCo=9jtW^E zz~I2Bj}%~xVchp;D!=ppT=2!?_*ZH^>$7pYTZ*eXUKws-0Hl;W9NMhdm`_S^lCx|( zB0j%|9zu+G9yhR(o;RYa;Iqe?+Z*M$s^gX676u^Hn!kRkK&0WCAcP>&3MD5qFA8nq zf@J7V2({+pe<+m9x%Obnxf7cLuSA;9KXXcPRmUsCE$uDvjj_b4g5MZRtSXpVTfhC| z!&3eK@axxSEU~LvX-l)jDuao&RXSjEme^ITw3R##U#V=Kv$m>QX)ARcPOYsnDq34r zt+bW2#LB8@ZB@0>R?-qHtJK;`EwQUwX)9}qmDRi@c2z5FWi7F?nzzKRYNf5LC06=1 zm{?m?t+bW3#LB8@ZB@0>R?-st{jX-NEq(YUUC+aRd;5jfR#hwQT3BN5JiSB!pKfnl z3rozo_x`(fH1rF{VUlB}DI7i1V`lt-=g<1=?cSh2@Ii_!ip_yf7{+_KJ@oOr9RwhR z#n_m8?bVxKQHrZNUKy^GC02X|m8;C)dE5^H=a-{`aZ$c9I~!E1=>Ff_ODn-Q-`KaQIcSp7L}HV+ohcgA z%4|FdXeHM6s&ikQJXvlnU8`2DTD5A`s#U92ty;Be)v8siR;^msN&f|$Va CHESTS = Maps.newHashMap(); private final int width; @@ -46,7 +52,7 @@ public class BlockChest extends Block implements ITileEntityProvider, Rotatable public BlockChest(int width, int height) { super(Material.WOOD); - this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.NORTH)); + this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.NORTH).withProperty(OPEN, false)); this.width = width; this.height = height; this.setTab(CheatTab.TECHNOLOGY); @@ -74,11 +80,6 @@ public class BlockChest extends Block implements ITileEntityProvider, Rotatable return false; } - public int getRenderType() - { - return 2; - } - public State getPlacedState(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); @@ -230,15 +231,65 @@ public class BlockChest extends Block implements ITileEntityProvider, Rotatable protected Property[] getProperties() { - return new Property[] {FACING}; + return new Property[] {FACING, OPEN}; } + + protected Property[] getUnsavedProperties() + { + return new Property[] {OPEN}; + } + + public State getState(State state, IWorldAccess world, BlockPos pos) { + TileEntity te = world.getTileEntity(pos); + if(te instanceof TileEntityChest chest) + return state.withProperty(OPEN, chest.numPlayersUsing > 0); + return state; + } public boolean isXrayVisible() { return true; } - - public String getFallbackTexture() { - return "oak_planks"; + + public Model getModel(ModelProvider provider, String name, State state) { + return !state.getValue(OPEN) ? + provider.getModel(name + "_top") + .add(1, 0, 1, 15, 14, 15) + .d().noCull() + .u().noCull() + .n(name + "_front").noCull() + .s(name + "_side").noCull() + .w(name + "_side").noCull() + .e(name + "_side").noCull() + .add(7, 7, 0, 9, 11, 1) + .d(name + "_handle").uv(7, 8, 9, 9).noCull() + .u(name + "_handle").uv(7, 5, 9, 6).noCull() + .n(name + "_handle").noCull() + .w(name + "_handle").uv(8, 5, 9, 9).noCull() + .e(name + "_handle").uv(7, 5, 8, 9).noCull() + .rotate(ModelRotation.getNorthRot(state.getValue(FACING))) : + provider.getModel(name + "_top") + .add(1, 0, 1, 15, 10, 15) + .d().noCull() + .u(name + "_inner").noCull() + .n(name + "_front").noCull() + .s(name + "_side").noCull() + .w(name + "_side").noCull() + .e(name + "_side").noCull() + .add(1, 9, 15, 15, 23, 20) + .d(name + "_side").uv(1, 2, 15, 7).noCull() + .u(name + "_front").uv(1, 2, 15, 7).rot(180).noCull() + .n(name + "_inner").uv(1, 1, 15, 15).noCull() + .s().uv(1, 1, 15, 15).noCull() + .w(name + "_side").uv(1, 2, 15, 7).rot(90).noCull() + .e(name + "_side").uv(1, 2, 15, 7).rot(270).noCull() + .add(7, 23, 13, 9, 24, 17) + .n(name + "_handle").uv(7, 8, 9, 9).noCull() + .s(name + "_handle").uv(7, 5, 9, 6).rot(180).noCull() + .u(name + "_handle").uv(7, 5, 9, 9).rot(180).noCull() + .d(name + "_handle").uv(9, 5, 7, 9).noCull() + .w(name + "_handle").uv(8, 5, 9, 9).rot(90).noCull() + .e(name + "_handle").uv(7, 5, 8, 9).rot(270).noCull() + .rotate(ModelRotation.getNorthRot(state.getValue(FACING))); } } diff --git a/common/src/main/java/common/tileentity/TileEntityChest.java b/common/src/main/java/common/tileentity/TileEntityChest.java index 8dcceeac..43ca126d 100755 --- a/common/src/main/java/common/tileentity/TileEntityChest.java +++ b/common/src/main/java/common/tileentity/TileEntityChest.java @@ -18,8 +18,7 @@ public class TileEntityChest extends TileEntity implements ITickable, IInventory private ItemStack[] chestContents; private String code; - public float lidAngle; - public float prevLidAngle; + public boolean wasOpen; public int numPlayersUsing; private int ticksSinceSync; private String customName; @@ -216,49 +215,11 @@ public class TileEntityChest extends TileEntity implements ITickable, IInventory } } - this.prevLidAngle = this.lidAngle; - float f1 = 0.1F; - - if (this.numPlayersUsing > 0 && this.lidAngle == 0.0F) + if ((this.numPlayersUsing <= 0 && this.wasOpen) || (this.numPlayersUsing > 0 && !this.wasOpen)) { - double d1 = (double)i + 0.5D; - double d2 = (double)k + 0.5D; - - this.worldObj.playSound(SoundEvent.CHESTOPEN, d1, (double)j + 0.5D, d2, 0.5F); - } - - if (this.numPlayersUsing == 0 && this.lidAngle > 0.0F || this.numPlayersUsing > 0 && this.lidAngle < 1.0F) - { - float f2 = this.lidAngle; - - if (this.numPlayersUsing > 0) - { - this.lidAngle += f1; - } - else - { - this.lidAngle -= f1; - } - - if (this.lidAngle > 1.0F) - { - this.lidAngle = 1.0F; - } - - float f3 = 0.5F; - - if (this.lidAngle < f3 && f2 >= f3) - { - double d3 = (double)i + 0.5D; - double d0 = (double)k + 0.5D; - - this.worldObj.playSound(SoundEvent.CHESTCLOSED, d3, (double)j + 0.5D, d0, 0.5F); - } - - if (this.lidAngle < 0.0F) - { - this.lidAngle = 0.0F; - } + double d3 = (double)i + 0.5D; + double d0 = (double)k + 0.5D; + this.worldObj.playSound((this.wasOpen = this.numPlayersUsing > 0) ? SoundEvent.CHESTOPEN : SoundEvent.CHESTCLOSED, d3, (double)j + 0.5D, d0, 0.5F); } }