From e1cc067c3dc4ccf40177192cf973af12080500d5 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 8 Jul 2016 19:32:44 +0200 Subject: [PATCH] Fixes for rendering --- .../refinedstorage/block/BlockDiskDrive.java | 18 ++++++ .../refinedstorage/block/BlockSolderer.java | 15 ++--- .../refinedstorage/tile/TileDiskDrive.java | 55 ++++++++++++++++++ .../java/refinedstorage/tile/TileNode.java | 4 +- .../refinedstorage/tile/TileSolderer.java | 16 ----- .../blockstates/disk_drive.json | 44 +++++++++++++- .../refinedstorage/blockstates/solderer.json | 41 +++---------- .../refinedstorage/models/block/solderer.json | 8 +-- .../refinedstorage/textures/blocks/cable.png | Bin 448 -> 714 bytes 9 files changed, 133 insertions(+), 68 deletions(-) mode change 100644 => 100755 src/main/resources/assets/refinedstorage/models/block/solderer.json diff --git a/src/main/java/refinedstorage/block/BlockDiskDrive.java b/src/main/java/refinedstorage/block/BlockDiskDrive.java index f4c69bfbc..5f0bdc9d5 100755 --- a/src/main/java/refinedstorage/block/BlockDiskDrive.java +++ b/src/main/java/refinedstorage/block/BlockDiskDrive.java @@ -1,5 +1,7 @@ package refinedstorage.block; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -7,12 +9,15 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileDiskDrive; public class BlockDiskDrive extends BlockNode { + public static final PropertyInteger STORED = PropertyInteger.create("stored", 0, 7); + public BlockDiskDrive() { super("disk_drive"); } @@ -22,6 +27,19 @@ public class BlockDiskDrive extends BlockNode { return new TileDiskDrive(); } + @Override + public BlockStateContainer createBlockState() { + return createBlockStateBuilder() + .add(STORED) + .build(); + } + + @Override + public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { + return super.getActualState(state, world, pos) + .withProperty(STORED, ((TileDiskDrive) world.getTileEntity(pos)).getStoredForDisplay()); + } + @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { if (!world.isRemote) { diff --git a/src/main/java/refinedstorage/block/BlockSolderer.java b/src/main/java/refinedstorage/block/BlockSolderer.java index 97f2b3b4b..96cf8f47f 100755 --- a/src/main/java/refinedstorage/block/BlockSolderer.java +++ b/src/main/java/refinedstorage/block/BlockSolderer.java @@ -1,7 +1,5 @@ package refinedstorage.block; -import net.minecraft.block.properties.PropertyBool; -import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -16,8 +14,6 @@ import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileSolderer; public class BlockSolderer extends BlockNode { - public static final PropertyBool WORKING = PropertyBool.create("working"); - public BlockSolderer() { super("solderer"); } @@ -37,15 +33,12 @@ public class BlockSolderer extends BlockNode { } @Override - protected BlockStateContainer createBlockState() { - return createBlockStateBuilder() - .add(WORKING) - .build(); + public boolean isBlockSolid(IBlockAccess worldIn, BlockPos pos, EnumFacing side) { + return false; } @Override - public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { - return super.getActualState(state, world, pos) - .withProperty(WORKING, ((TileSolderer) world.getTileEntity(pos)).isWorking()); + public EnumPlacementType getPlacementType() { + return null; } } diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index d0080969d..885899209 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -49,6 +49,7 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag private static final String NBT_PRIORITY = "Priority"; private static final String NBT_COMPARE = "Compare"; private static final String NBT_MODE = "Mode"; + private static final String NBT_STORED = "Stored"; private BasicItemHandler disks = new BasicItemHandler(8, this, new BasicItemValidator(RefinedStorageItems.STORAGE_DISK)) { @Override @@ -84,6 +85,20 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag private int priority = 0; private int compare = 0; private int mode = ModeConstants.WHITELIST; + private int stored = 0; + + @Override + public void update() { + if (!worldObj.isRemote) { + if (stored != getStoredForDisplayServer()) { + stored = getStoredForDisplayServer(); + + RefinedStorageUtils.updateBlock(worldObj, pos); + } + } + + super.update(); + } @Override public int getEnergyUsage() { @@ -166,6 +181,22 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag return tag; } + @Override + public NBTTagCompound writeUpdate(NBTTagCompound tag) { + super.writeUpdate(tag); + + tag.setInteger(NBT_STORED, stored); + + return tag; + } + + @Override + public void readUpdate(NBTTagCompound tag) { + stored = tag.getInteger(NBT_STORED); + + super.readUpdate(tag); + } + @Override public void writeContainerData(ByteBuf buf) { super.writeContainerData(buf); @@ -213,6 +244,30 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag markDirty(); } + public int getStoredForDisplayServer() { + float stored = 0; + float storedMax = 0; + + for (int i = 0; i < disks.getSlots(); ++i) { + ItemStack disk = disks.getStackInSlot(i); + + if (disk != null) { + stored += NBTStorage.getStoredFromNBT(disk.getTagCompound()); + storedMax += EnumStorageType.getById(disk.getItemDamage()).getCapacity(); + } + } + + if (storedMax == 0) { + return 0; + } + + return (int) Math.floor((stored / storedMax) * 7f); + } + + public int getStoredForDisplay() { + return stored; + } + @Override public String getGuiTitle() { return "block.refinedstorage:disk_drive.name"; diff --git a/src/main/java/refinedstorage/tile/TileNode.java b/src/main/java/refinedstorage/tile/TileNode.java index 17b3fecfe..c682b1c00 100755 --- a/src/main/java/refinedstorage/tile/TileNode.java +++ b/src/main/java/refinedstorage/tile/TileNode.java @@ -155,10 +155,10 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr } public void readUpdate(NBTTagCompound tag) { - super.readUpdate(tag); - if (canSendConnectivityUpdate()) { connected = tag.getBoolean(NBT_CONNECTED); } + + super.readUpdate(tag); } } diff --git a/src/main/java/refinedstorage/tile/TileSolderer.java b/src/main/java/refinedstorage/tile/TileSolderer.java index 723aef9a7..8d371717c 100755 --- a/src/main/java/refinedstorage/tile/TileSolderer.java +++ b/src/main/java/refinedstorage/tile/TileSolderer.java @@ -138,22 +138,6 @@ public class TileSolderer extends TileNode { return tag; } - @Override - public NBTTagCompound writeUpdate(NBTTagCompound tag) { - super.writeUpdate(tag); - - tag.setBoolean(NBT_WORKING, working); - - return tag; - } - - @Override - public void readUpdate(NBTTagCompound tag) { - working = tag.getBoolean(NBT_WORKING); - - super.readUpdate(tag); - } - @Override public void readContainerData(ByteBuf buf) { super.readContainerData(buf); diff --git a/src/main/resources/assets/refinedstorage/blockstates/disk_drive.json b/src/main/resources/assets/refinedstorage/blockstates/disk_drive.json index 7c80a5427..7f2769a99 100755 --- a/src/main/resources/assets/refinedstorage/blockstates/disk_drive.json +++ b/src/main/resources/assets/refinedstorage/blockstates/disk_drive.json @@ -5,7 +5,7 @@ "textures": { "side": "refinedstorage:blocks/side", "top": "refinedstorage:blocks/side", - "front": "refinedstorage:blocks/disk_drive" + "front": "refinedstorage:blocks/disk_drive_0" } }, "variants": { @@ -15,6 +15,48 @@ "y": 0 } ], + "stored": { + "0": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_0" + } + }, + "1": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_1" + } + }, + "2": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_2" + } + }, + "3": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_3" + } + }, + "4": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_4" + } + }, + "5": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_5" + } + }, + "6": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_6" + } + }, + "7": { + "textures": { + "front": "refinedstorage:blocks/disk_drive_7" + } + } + }, "direction": { "north": { "y": 0 diff --git a/src/main/resources/assets/refinedstorage/blockstates/solderer.json b/src/main/resources/assets/refinedstorage/blockstates/solderer.json index 9cdfed17a..f1f9c1716 100755 --- a/src/main/resources/assets/refinedstorage/blockstates/solderer.json +++ b/src/main/resources/assets/refinedstorage/blockstates/solderer.json @@ -1,48 +1,21 @@ { "forge_marker": 1, "defaults": { - "model": "orientable", "textures": { - "side": "refinedstorage:blocks/side", - "top": "refinedstorage:blocks/side", - "front": "refinedstorage:blocks/solderer" - } + "particle": "refinedstorage:blocks/quartz_enriched_iron_block" + }, + "model": "refinedstorage:solderer", + "uvlock": true }, "variants": { "inventory": [ { - "y": 0, + "model": "refinedstorage:solderer", "transform": "forge:default-block" } ], - "working": { - "true": { - "textures": { - "front": "refinedstorage:blocks/solderer_working" - } - }, - "false": { - } - }, - "direction": { - "north": { - "y": 0 - }, - "east": { - "y": 90 - }, - "south": { - "y": 180 - }, - "west": { - "y": 270 - }, - "up": { - "x": 270 - }, - "down": { - "x": 90 - } + "normal": { + "model": "refinedstorage:solderer" } } } \ No newline at end of file diff --git a/src/main/resources/assets/refinedstorage/models/block/solderer.json b/src/main/resources/assets/refinedstorage/models/block/solderer.json old mode 100644 new mode 100755 index 5977eec7c..e74dd6919 --- a/src/main/resources/assets/refinedstorage/models/block/solderer.json +++ b/src/main/resources/assets/refinedstorage/models/block/solderer.json @@ -1,10 +1,10 @@ { "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", "textures": { - "0": "refinedstorage:blocks/quartz_enriched_iron_block.pngquartz_enriched_iron_block", - "1": "refinedstorage:blocks/side.pngside", - "2": "blocks/quartz_enriched_iron_block", - "3": "blocks/redstone_block.pngredstone_block", + "0": "refinedstorage:blocks/quartz_enriched_iron_block", + "1": "refinedstorage:blocks/side", + "2": "refinedstorage:blocks/quartz_enriched_iron_block", + "3": "blocks/redstone_block", "4": "blocks/redstone_block" }, "elements": [ diff --git a/src/main/resources/assets/refinedstorage/textures/blocks/cable.png b/src/main/resources/assets/refinedstorage/textures/blocks/cable.png index 123ad41e24d467f36ab68124820b3811e6b0866a..114937eb77c37b09b611661cab7d6397db9440ca 100644 GIT binary patch delta 631 zcmV--0*L*<1Ih)EJPN)501mzZ>O!%=kwzwe0!T?jK~y+TJx^(KqCga!|Nj?K6+=`m zSvAOg=n~Pa1c`E}T%uAzHzcuQYQOIrw`!Zm%saaK0V<2KeycyuALsA$<#MHo z_qVz}*58-!%jNR<`B_!fcDp_74@F*}FbIpH*dO+Q^0ll^)$#RsI-TC@^AX<|&@V85 zp-kcxisLxTGBC*VZ3f3aKa^!v{VuEHZol7Mk>%MY-T-`mfs!PFI!lr?N#Z1pp-vNU zNb@{Rlijx16}v1;<9Lk)VTgR+U#;PZHfz8p2qQo6qac8B6a{$->$5ea&<-Nk^N{Pp z=`EMbFbqNLExcv0jKF2JS}Yb(2>%#=c#FB~K0A(U+cp+Bjx(Fhp09A{t`BtIe|dTF z=HAkS%bU+Z;KCGW$g(VZV&eczFs6Vf95|ogbZSq=))<%oWZ9NIwRO{c9FOhk^ylLk zNRy`tgbQn(Ief{?`8Az^%C3+ZS%jE)iTq*kN^_n8*Qazu~)9GYwp#e&+ zJfF`Aw=Rr)lYQ0|bkTQBD;pK9F znW9~-Ru(c|EEXaT&FAxI0+PyWVK$qM$77(GOeSuzo=&GCCxhf;IvfrGxnVvUjp8Q= z30TRDd$oYBf8DxP_DvqqpYe zav3D#Tr3s^FS&zAda+b0VI?RO3Q0f?S(d$KzY?Q)`=>0+z5#^m%+q5Ob0Po$002ov JPDHLkV1h^xr