New solderer model

This commit is contained in:
Raoul Van den Berge
2016-09-26 18:01:28 +02:00
parent 72fde5ce31
commit c9a9c52e3b
14 changed files with 1268 additions and 282 deletions

View File

@@ -1,18 +1,15 @@
package refinedstorage.block;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui;
@@ -21,10 +18,6 @@ import refinedstorage.tile.TileSolderer;
import java.util.List;
public class BlockSolderer extends BlockNode {
private static final AxisAlignedBB AABB_SOLDERER = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 14D / 16D, 1.0D);
private static final PropertyBool WORKING = PropertyBool.create("working");
public BlockSolderer() {
super("solderer");
}
@@ -54,30 +47,6 @@ public class BlockSolderer extends BlockNode {
return true;
}
@Override
public boolean hasConnectivityState() {
return true;
}
@Override
@SuppressWarnings("deprecation")
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) {
return AABB_SOLDERER;
}
@Override
protected BlockStateContainer createBlockState() {
return super.createBlockStateBuilder()
.add(WORKING)
.build();
}
@Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
return super.getActualState(state, world, pos)
.withProperty(WORKING, ((TileSolderer) world.getTileEntity(pos)).isWorking());
}
@Override
@SuppressWarnings("deprecation")
public boolean isOpaqueCube(IBlockState state) {
@@ -90,6 +59,11 @@ public class BlockSolderer extends BlockNode {
return false;
}
@Override
public BlockRenderLayer getBlockLayer() {
return BlockRenderLayer.TRANSLUCENT;
}
@Override
public EnumPlacementType getPlacementType() {
return EnumPlacementType.HORIZONTAL;

View File

@@ -28,7 +28,7 @@ public class GuiSolderer extends GuiBase {
drawTexture(x, y, 0, 0, width, height);
if (solderer.isWorking()) {
if (TileSolderer.WORKING.getValue()) {
drawTexture(x + 83, y + 38 - 1, 212, 0, getProgressScaled(22), 15);
}
}
@@ -38,7 +38,7 @@ public class GuiSolderer extends GuiBase {
drawString(7, 7, t("gui.refinedstorage:solderer"));
drawString(7, 77, t("container.inventory"));
if (inBounds(83, 38, 22, 15, mouseX, mouseY) && solderer.isWorking()) {
if (inBounds(83, 38, 22, 15, mouseX, mouseY) && TileSolderer.WORKING.getValue()) {
drawTooltip(mouseX, mouseY, getProgressScaled(100) + "%");
}
}

View File

@@ -37,6 +37,13 @@ public class TileSolderer extends TileNode {
}
});
public static final TileDataParameter<Boolean> WORKING = new TileDataParameter<>(DataSerializers.BOOLEAN, false, new ITileDataProducer<Boolean, TileSolderer>() {
@Override
public Boolean getValue(TileSolderer tile) {
return tile.working;
}
});
private static final String NBT_WORKING = "Working";
private static final String NBT_PROGRESS = "Progress";
@@ -72,11 +79,7 @@ public class TileSolderer extends TileNode {
public TileSolderer() {
dataManager.addWatchedParameter(DURATION);
dataManager.addWatchedParameter(PROGRESS);
}
@Override
public boolean hasConnectivityState() {
return true;
dataManager.addWatchedParameter(WORKING);
}
@Override
@@ -86,8 +89,6 @@ public class TileSolderer extends TileNode {
@Override
public void updateNode() {
boolean wasWorking = working;
if (items.getStackInSlot(1) == null && items.getStackInSlot(2) == null && result.getStackInSlot(0) == null) {
stop();
} else {
@@ -129,10 +130,6 @@ public class TileSolderer extends TileNode {
}
}
}
if (wasWorking != working) {
updateBlock();
}
}
@Override
@@ -141,8 +138,6 @@ public class TileSolderer extends TileNode {
if (!state) {
stop();
updateBlock();
}
}
@@ -187,26 +182,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);
}
public boolean isWorking() {
return working;
}
public ItemHandlerBasic getItems() {
return items;
}

View File

@@ -1,37 +1,17 @@
{
"forge_marker": 1,
"defaults": {
"textures": {
"particle": "refinedstorage:blocks/side_borderless",
"3": "refinedstorage:blocks/solderer_laser",
"4": "refinedstorage:blocks/solderer_laser"
},
"model": "refinedstorage:solderer",
"uvlock": true
"textures": {
"particle": "refinedstorage:blocks/solderer_side"
}
},
"variants": {
"inventory": [
{
"model": "refinedstorage:solderer",
"transform": "forge:default-block"
}
],
"working": {
"true": {
"textures": {
"3": "refinedstorage:blocks/solderer_laser_working",
"4": "refinedstorage:blocks/solderer_laser_working"
}
},
"false": {
}
},
"connected": {
"true": {
},
"false": {
}
},
"direction": {
"north": {
"y": 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB