Fixes for rendering

This commit is contained in:
Raoul Van den Berge
2016-07-08 19:32:44 +02:00
parent 34afdb8915
commit e1cc067c3d
9 changed files with 133 additions and 68 deletions

View File

@@ -1,5 +1,7 @@
package refinedstorage.block; package refinedstorage.block;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -7,12 +9,15 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileDiskDrive; import refinedstorage.tile.TileDiskDrive;
public class BlockDiskDrive extends BlockNode { public class BlockDiskDrive extends BlockNode {
public static final PropertyInteger STORED = PropertyInteger.create("stored", 0, 7);
public BlockDiskDrive() { public BlockDiskDrive() {
super("disk_drive"); super("disk_drive");
} }
@@ -22,6 +27,19 @@ public class BlockDiskDrive extends BlockNode {
return new TileDiskDrive(); 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 @Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { 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) { if (!world.isRemote) {

View File

@@ -1,7 +1,5 @@
package refinedstorage.block; package refinedstorage.block;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -16,8 +14,6 @@ import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileSolderer; import refinedstorage.tile.TileSolderer;
public class BlockSolderer extends BlockNode { public class BlockSolderer extends BlockNode {
public static final PropertyBool WORKING = PropertyBool.create("working");
public BlockSolderer() { public BlockSolderer() {
super("solderer"); super("solderer");
} }
@@ -37,15 +33,12 @@ public class BlockSolderer extends BlockNode {
} }
@Override @Override
protected BlockStateContainer createBlockState() { public boolean isBlockSolid(IBlockAccess worldIn, BlockPos pos, EnumFacing side) {
return createBlockStateBuilder() return false;
.add(WORKING)
.build();
} }
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { public EnumPlacementType getPlacementType() {
return super.getActualState(state, world, pos) return null;
.withProperty(WORKING, ((TileSolderer) world.getTileEntity(pos)).isWorking());
} }
} }

View File

@@ -49,6 +49,7 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
private static final String NBT_PRIORITY = "Priority"; private static final String NBT_PRIORITY = "Priority";
private static final String NBT_COMPARE = "Compare"; private static final String NBT_COMPARE = "Compare";
private static final String NBT_MODE = "Mode"; 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)) { private BasicItemHandler disks = new BasicItemHandler(8, this, new BasicItemValidator(RefinedStorageItems.STORAGE_DISK)) {
@Override @Override
@@ -84,6 +85,20 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
private int priority = 0; private int priority = 0;
private int compare = 0; private int compare = 0;
private int mode = ModeConstants.WHITELIST; 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 @Override
public int getEnergyUsage() { public int getEnergyUsage() {
@@ -166,6 +181,22 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
return tag; 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 @Override
public void writeContainerData(ByteBuf buf) { public void writeContainerData(ByteBuf buf) {
super.writeContainerData(buf); super.writeContainerData(buf);
@@ -213,6 +244,30 @@ public class TileDiskDrive extends TileNode implements IStorageProvider, IStorag
markDirty(); 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 @Override
public String getGuiTitle() { public String getGuiTitle() {
return "block.refinedstorage:disk_drive.name"; return "block.refinedstorage:disk_drive.name";

View File

@@ -155,10 +155,10 @@ public abstract class TileNode extends TileBase implements INetworkNode, ISynchr
} }
public void readUpdate(NBTTagCompound tag) { public void readUpdate(NBTTagCompound tag) {
super.readUpdate(tag);
if (canSendConnectivityUpdate()) { if (canSendConnectivityUpdate()) {
connected = tag.getBoolean(NBT_CONNECTED); connected = tag.getBoolean(NBT_CONNECTED);
} }
super.readUpdate(tag);
} }
} }

View File

@@ -138,22 +138,6 @@ public class TileSolderer extends TileNode {
return tag; 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 @Override
public void readContainerData(ByteBuf buf) { public void readContainerData(ByteBuf buf) {
super.readContainerData(buf); super.readContainerData(buf);

View File

@@ -5,7 +5,7 @@
"textures": { "textures": {
"side": "refinedstorage:blocks/side", "side": "refinedstorage:blocks/side",
"top": "refinedstorage:blocks/side", "top": "refinedstorage:blocks/side",
"front": "refinedstorage:blocks/disk_drive" "front": "refinedstorage:blocks/disk_drive_0"
} }
}, },
"variants": { "variants": {
@@ -15,6 +15,48 @@
"y": 0 "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": { "direction": {
"north": { "north": {
"y": 0 "y": 0

View File

@@ -1,48 +1,21 @@
{ {
"forge_marker": 1, "forge_marker": 1,
"defaults": { "defaults": {
"model": "orientable",
"textures": { "textures": {
"side": "refinedstorage:blocks/side", "particle": "refinedstorage:blocks/quartz_enriched_iron_block"
"top": "refinedstorage:blocks/side", },
"front": "refinedstorage:blocks/solderer" "model": "refinedstorage:solderer",
} "uvlock": true
}, },
"variants": { "variants": {
"inventory": [ "inventory": [
{ {
"y": 0, "model": "refinedstorage:solderer",
"transform": "forge:default-block" "transform": "forge:default-block"
} }
], ],
"working": { "normal": {
"true": { "model": "refinedstorage:solderer"
"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
}
} }
} }
} }

View File

@@ -1,10 +1,10 @@
{ {
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
"textures": { "textures": {
"0": "refinedstorage:blocks/quartz_enriched_iron_block.pngquartz_enriched_iron_block", "0": "refinedstorage:blocks/quartz_enriched_iron_block",
"1": "refinedstorage:blocks/side.pngside", "1": "refinedstorage:blocks/side",
"2": "blocks/quartz_enriched_iron_block", "2": "refinedstorage:blocks/quartz_enriched_iron_block",
"3": "blocks/redstone_block.pngredstone_block", "3": "blocks/redstone_block",
"4": "blocks/redstone_block" "4": "blocks/redstone_block"
}, },
"elements": [ "elements": [

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

After

Width:  |  Height:  |  Size: 714 B