From b939b80ae6080cb776fd42b9d263896c4d8284eb Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Thu, 24 Dec 2015 17:21:55 +0100 Subject: [PATCH] shift clicking in wireless transmitter + textures --- .../block/BlockWirelessTransmitter.java | 41 +++++++++++++++++ .../ContainerWirelessTransmitter.java | 42 +++++++++++++++++- .../java/storagecraft/tile/TileSolderer.java | 2 +- .../tile/TileWirelessTransmitter.java | 9 +++- .../textures/blocks/wirelessTransmitter.png | Bin 0 -> 382 bytes .../blocks/wirelessTransmitterSide.png | Bin 0 -> 326 bytes .../blocks/wirelessTransmitterSideWorking.png | Bin 0 -> 324 bytes .../blocks/wirelessTransmitterWorking.png | Bin 0 -> 380 bytes 8 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitter.png create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitterSide.png create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitterSideWorking.png create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitterWorking.png diff --git a/src/main/java/storagecraft/block/BlockWirelessTransmitter.java b/src/main/java/storagecraft/block/BlockWirelessTransmitter.java index df2625bf8..1eb26a242 100644 --- a/src/main/java/storagecraft/block/BlockWirelessTransmitter.java +++ b/src/main/java/storagecraft/block/BlockWirelessTransmitter.java @@ -1,14 +1,22 @@ package storagecraft.block; import net.minecraft.block.ITileEntityProvider; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import storagecraft.StorageCraft; import storagecraft.tile.TileWirelessTransmitter; public class BlockWirelessTransmitter extends BlockBase implements ITileEntityProvider { + private IIcon icon; + private IIcon workingIcon; + private IIcon sideIcon; + private IIcon workingSideIcon; + public BlockWirelessTransmitter() { super("wirelessTransmitter"); @@ -30,4 +38,37 @@ public class BlockWirelessTransmitter extends BlockBase implements ITileEntityPr { return new TileWirelessTransmitter(); } + + @Override + public void registerBlockIcons(IIconRegister register) + { + icon = register.registerIcon("storagecraft:wirelessTransmitter"); + workingIcon = register.registerIcon("storagecraft:wirelessTransmitterWorking"); + sideIcon = register.registerIcon("storagecraft:wirelessTransmitterSide"); + workingSideIcon = register.registerIcon("storagecraft:wirelessTransmitterSideWorking"); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) + { + TileWirelessTransmitter tile = (TileWirelessTransmitter) world.getTileEntity(x, y, z); + + if (side == tile.getDirection().ordinal()) + { + return tile.isWorking() ? workingIcon : icon; + } + + return tile.isWorking() ? workingSideIcon : sideIcon; + } + + @Override + public IIcon getIcon(int side, int damage) + { + if (side == 3) + { + return icon; + } + + return sideIcon; + } } diff --git a/src/main/java/storagecraft/container/ContainerWirelessTransmitter.java b/src/main/java/storagecraft/container/ContainerWirelessTransmitter.java index 3b33b7ca3..d19113605 100644 --- a/src/main/java/storagecraft/container/ContainerWirelessTransmitter.java +++ b/src/main/java/storagecraft/container/ContainerWirelessTransmitter.java @@ -2,6 +2,8 @@ package storagecraft.container; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import storagecraft.StorageCraftItems; import storagecraft.container.slot.SlotItemFilter; import storagecraft.container.slot.SlotOutput; @@ -13,10 +15,46 @@ public class ContainerWirelessTransmitter extends ContainerBase { super(player); - addPlayerInventory(8, 55); - addSlotToContainer(new SlotItemFilter(wirelessTransmitter, 0, 8, 20, Items.ender_pearl)); addSlotToContainer(new SlotItemFilter(wirelessTransmitter, 1, 101, 20, StorageCraftItems.WIRELESS_GRID)); addSlotToContainer(new SlotOutput(wirelessTransmitter, 2, 152, 20)); + + addPlayerInventory(8, 55); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) + { + ItemStack stack = null; + + Slot slot = getSlot(index); + + if (slot != null && slot.getHasStack()) + { + stack = slot.getStack().copy(); + + if (index < 3) + { + if (!mergeItemStack(stack, 3, inventorySlots.size(), true)) + { + return null; + } + } + else if (!mergeItemStack(stack, 0, 3, false)) + { + return null; + } + + if (stack.stackSize == 0) + { + slot.putStack(null); + } + else + { + slot.onSlotChanged(); + } + } + + return stack; } } diff --git a/src/main/java/storagecraft/tile/TileSolderer.java b/src/main/java/storagecraft/tile/TileSolderer.java index 816cf6d5e..25771bd2a 100644 --- a/src/main/java/storagecraft/tile/TileSolderer.java +++ b/src/main/java/storagecraft/tile/TileSolderer.java @@ -21,7 +21,7 @@ public class TileSolderer extends TileMachine implements IInventory, ISidedInven private InventorySimple inventory = new InventorySimple("solderer", 4); private ISoldererRecipe recipe; private boolean working = false; - private int progress; + private int progress = 0; @SideOnly(Side.CLIENT) private int duration; diff --git a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java index 1e7b2b606..c2f15f8eb 100644 --- a/src/main/java/storagecraft/tile/TileWirelessTransmitter.java +++ b/src/main/java/storagecraft/tile/TileWirelessTransmitter.java @@ -18,7 +18,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory private InventorySimple inventory = new InventorySimple("wirelessTransmitter", 3); - private boolean working; + private boolean working = false; private int progress = 0; @Override @@ -212,8 +212,15 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory { super.fromBytes(buf); + boolean lastWorking = working; + working = buf.readBoolean(); progress = buf.readInt(); + + if (lastWorking != working) + { + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } } @Override diff --git a/src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitter.png b/src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitter.png new file mode 100644 index 0000000000000000000000000000000000000000..c2ed3bfd895fd9255a79f608d771920e3551e5e4 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ+nVO$@hV3-g~+@hFJL5p3N?6G7xA>G`qg^$8For1xgi+P8+_i%iTKN_UlsPwkxZi z+oYdR`OJGTc!Aa2cg%S{_K6vD;?8T<<|=gQ{Hl#FRppWPZMc8*qtgk#BZa)z-2!zb z@|X@k;@Rze)8necwA`1Mx2*M> zmG@^=!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94t15lOW{II1_BLoU*AM2}N;vFQ;E*CWGhLkgE^HYbW%ocooXdOJ9)q4BxtI&QPzBW^r3 z^}o-5ZgD%H!1Fyuz@tovXVHqk#Sab@Ff^-J^2$E02yhe^5LG- zICGQ_G)#z&5A?8VWc_e!iruNAD|3}u9>z0;ewC^U(t12uf?-D5CDkZRfil RY6AL)!PC{xWt~$(69A0kd8_~c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitterSideWorking.png b/src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitterSideWorking.png new file mode 100644 index 0000000000000000000000000000000000000000..c75f638135000cb10a443eb7fe839692fbed90ac GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94t1Ax{^_ z5DWj>OUH$p3c3(#5=~{)**fRpj6)&s= zO?)+W{cFq&N|2be$@{vb*n!e%q2EL2WS&Zx!P>X^SLCg4Q=}3eR7ziGeXW_K%(id8 z>?fN<W2y&!@Ajx$z7iqr{BG^w$HGj Q3+NjLPgg&ebxsLQ0RJX=vj6}9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitterWorking.png b/src/main/resources/assets/storagecraft/textures/blocks/wirelessTransmitterWorking.png new file mode 100644 index 0000000000000000000000000000000000000000..ea3fefb05ae235f144f80e5a6dd39c93341081fe GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ+nVO$@hV3-g>$?hFJL5o_$%?WFXL%n0M{|y~!L}P22)aTgx`i4%@3%TX<~3s;_gN z^UO@yr)a^p>hepw2gkk$w;g-=bQ4Ty8k^i{LqGrEI(pp^jqFI$XqYT6}j5< zP|ZL_@8IEt4<*-sW-{`soa|bC@rC53Pp@=duaJ`HkAD&CI%&&}DZL@QDL18SXKlOc zc{zN4R)SIF<=d&3-T0f2IHB7k)kc(zT5?|Ch}_zyH9){l?O!0V1;({dm~* z>U8l@Vef^E$=jU57U^vNaH}_i>C3fut6r^(PwYvGD8KUcVEWsC(|ocR{=8$9