From 5bcd1719c3900a5e90c0957153b5b2fe4b5ea37c Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Thu, 28 Jan 2016 22:28:07 +0100 Subject: [PATCH] base storage block --- .../java/storagecraft/StorageCraftBlocks.java | 1 + .../java/storagecraft/block/BlockGrid.java | 13 ++- .../java/storagecraft/block/BlockStorage.java | 52 +++++++++++ .../storagecraft/block/EnumStorageType.java | 58 ++++++++++++ .../storagecraft/item/ItemBlockStorage.java | 11 +++ .../java/storagecraft/proxy/ClientProxy.java | 6 ++ .../java/storagecraft/proxy/CommonProxy.java | 1 + .../storagecraft/blockstates/drive.json | 86 +++++++++--------- .../storagecraft/blockstates/storage.json | 81 +++++++++++++++++ .../assets/storagecraft/lang/en_US.lang | 5 + .../textures/blocks/16k_storage_block.png | Bin 0 -> 365 bytes .../textures/blocks/1k_storage_block.png | Bin 0 -> 366 bytes .../textures/blocks/4k_storage_block.png | Bin 0 -> 363 bytes .../textures/blocks/64k_storage_block.png | Bin 0 -> 365 bytes .../blocks/creative_storage_block.png | Bin 0 -> 368 bytes 15 files changed, 264 insertions(+), 50 deletions(-) create mode 100644 src/main/java/storagecraft/block/BlockStorage.java create mode 100644 src/main/java/storagecraft/block/EnumStorageType.java create mode 100644 src/main/java/storagecraft/item/ItemBlockStorage.java create mode 100644 src/main/resources/assets/storagecraft/blockstates/storage.json create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/16k_storage_block.png create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/1k_storage_block.png create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/4k_storage_block.png create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/64k_storage_block.png create mode 100644 src/main/resources/assets/storagecraft/textures/blocks/creative_storage_block.png diff --git a/src/main/java/storagecraft/StorageCraftBlocks.java b/src/main/java/storagecraft/StorageCraftBlocks.java index 1f4c7a731..0a56c765d 100644 --- a/src/main/java/storagecraft/StorageCraftBlocks.java +++ b/src/main/java/storagecraft/StorageCraftBlocks.java @@ -17,4 +17,5 @@ public final class StorageCraftBlocks public static final BlockWirelessTransmitter WIRELESS_TRANSMITTER = new BlockWirelessTransmitter(); public static final BlockDestructor DESTRUCTOR = new BlockDestructor(); public static final BlockConstructor CONSTRUCTOR = new BlockConstructor(); + public static final BlockStorage STORAGE = new BlockStorage(); } diff --git a/src/main/java/storagecraft/block/BlockGrid.java b/src/main/java/storagecraft/block/BlockGrid.java index 0d8e9a777..11401aaa3 100644 --- a/src/main/java/storagecraft/block/BlockGrid.java +++ b/src/main/java/storagecraft/block/BlockGrid.java @@ -1,5 +1,6 @@ package storagecraft.block; +import java.util.List; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; @@ -16,8 +17,6 @@ import storagecraft.StorageCraft; import storagecraft.StorageCraftGUI; import storagecraft.tile.TileGrid; -import java.util.List; - public class BlockGrid extends BlockMachine { public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumGridType.class); @@ -46,11 +45,11 @@ public class BlockGrid extends BlockMachine protected BlockState createBlockState() { return new BlockState(this, new IProperty[] - { - DIRECTION, - CONNECTED, - TYPE - }); + { + DIRECTION, + CONNECTED, + TYPE + }); } @Override diff --git a/src/main/java/storagecraft/block/BlockStorage.java b/src/main/java/storagecraft/block/BlockStorage.java new file mode 100644 index 000000000..74e0b90eb --- /dev/null +++ b/src/main/java/storagecraft/block/BlockStorage.java @@ -0,0 +1,52 @@ +package storagecraft.block; + +import java.util.List; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.BlockState; +import net.minecraft.block.state.IBlockState; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import static storagecraft.block.BlockBase.DIRECTION; + +public class BlockStorage extends BlockBase +{ + public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumStorageType.class); + + public BlockStorage() + { + super("storage"); + } + + @Override + public void getSubBlocks(Item item, CreativeTabs tab, List subItems) + { + for (int i = 0; i <= 4; i++) + { + subItems.add(new ItemStack(item, 1, i)); + } + } + + @Override + protected BlockState createBlockState() + { + return new BlockState(this, new IProperty[] + { + DIRECTION, + TYPE + }); + } + + @Override + public IBlockState getStateFromMeta(int meta) + { + return getDefaultState().withProperty(TYPE, EnumStorageType.getById(meta)); + } + + @Override + public int getMetaFromState(IBlockState state) + { + return ((EnumStorageType) state.getValue(TYPE)).getId(); + } +} diff --git a/src/main/java/storagecraft/block/EnumStorageType.java b/src/main/java/storagecraft/block/EnumStorageType.java new file mode 100644 index 000000000..07c83ba22 --- /dev/null +++ b/src/main/java/storagecraft/block/EnumStorageType.java @@ -0,0 +1,58 @@ +package storagecraft.block; + +import net.minecraft.util.IStringSerializable; + +public enum EnumStorageType implements IStringSerializable +{ + TYPE_1K(0, 1000, "1k"), + TYPE_4K(1, 4000, "4k"), + TYPE_16K(2, 16000, "16k"), + TYPE_64K(3, 64000, "64k"), + TYPE_CREATIVE(4, -1, "creative"); + + private int id; + private int capacity; + private String name; + + EnumStorageType(int id, int capacity, String name) + { + this.id = id; + this.capacity = capacity; + this.name = name; + } + + @Override + public String getName() + { + return name; + } + + public int getId() + { + return id; + } + + public int getCapacity() + { + return capacity; + } + + @Override + public String toString() + { + return name; + } + + public static EnumStorageType getById(int id) + { + for (EnumStorageType type : EnumStorageType.values()) + { + if (type.getId() == id) + { + return type; + } + } + + return null; + } +} diff --git a/src/main/java/storagecraft/item/ItemBlockStorage.java b/src/main/java/storagecraft/item/ItemBlockStorage.java new file mode 100644 index 000000000..e33592dac --- /dev/null +++ b/src/main/java/storagecraft/item/ItemBlockStorage.java @@ -0,0 +1,11 @@ +package storagecraft.item; + +import net.minecraft.block.Block; + +public class ItemBlockStorage extends ItemBlockBase +{ + public ItemBlockStorage(Block block) + { + super(block); + } +} diff --git a/src/main/java/storagecraft/proxy/ClientProxy.java b/src/main/java/storagecraft/proxy/ClientProxy.java index 40ec9b8b4..86d8c46de 100644 --- a/src/main/java/storagecraft/proxy/ClientProxy.java +++ b/src/main/java/storagecraft/proxy/ClientProxy.java @@ -17,6 +17,7 @@ import storagecraft.StorageCraftBlocks; import storagecraft.StorageCraftItems; import storagecraft.block.EnumControllerType; import storagecraft.block.EnumGridType; +import storagecraft.block.EnumStorageType; import storagecraft.item.*; import storagecraft.render.BlockCableRenderer; import storagecraft.tile.TileCable; @@ -129,5 +130,10 @@ public class ClientProxy extends CommonProxy mesher.register(Item.getItemFromBlock(StorageCraftBlocks.SOLDERER), 0, new ModelResourceLocation("storagecraft:solderer", "inventory")); mesher.register(Item.getItemFromBlock(StorageCraftBlocks.WIRELESS_TRANSMITTER), 0, new ModelResourceLocation("storagecraft:wireless_transmitter", "inventory")); mesher.register(Item.getItemFromBlock(StorageCraftBlocks.DETECTOR), 0, new ModelResourceLocation("storagecraft:detector", "inventory")); + mesher.register(Item.getItemFromBlock(StorageCraftBlocks.STORAGE), EnumStorageType.TYPE_1K.getId(), new ModelResourceLocation("storagecraft:storage", "inventory")); + mesher.register(Item.getItemFromBlock(StorageCraftBlocks.STORAGE), EnumStorageType.TYPE_4K.getId(), new ModelResourceLocation("storagecraft:storage", "inventory")); + mesher.register(Item.getItemFromBlock(StorageCraftBlocks.STORAGE), EnumStorageType.TYPE_16K.getId(), new ModelResourceLocation("storagecraft:storage", "inventory")); + mesher.register(Item.getItemFromBlock(StorageCraftBlocks.STORAGE), EnumStorageType.TYPE_64K.getId(), new ModelResourceLocation("storagecraft:storage", "inventory")); + mesher.register(Item.getItemFromBlock(StorageCraftBlocks.STORAGE), EnumStorageType.TYPE_CREATIVE.getId(), new ModelResourceLocation("storagecraft:storage", "inventory")); } } diff --git a/src/main/java/storagecraft/proxy/CommonProxy.java b/src/main/java/storagecraft/proxy/CommonProxy.java index f3a9ef959..03a5d8171 100644 --- a/src/main/java/storagecraft/proxy/CommonProxy.java +++ b/src/main/java/storagecraft/proxy/CommonProxy.java @@ -63,6 +63,7 @@ public class CommonProxy GameRegistry.registerBlock(StorageCraftBlocks.WIRELESS_TRANSMITTER, "wireless_transmitter"); GameRegistry.registerBlock(StorageCraftBlocks.DESTRUCTOR, "destructor"); GameRegistry.registerBlock(StorageCraftBlocks.CONSTRUCTOR, "constructor"); + GameRegistry.registerBlock(StorageCraftBlocks.STORAGE, ItemBlockStorage.class, "storage"); GameRegistry.registerItem(StorageCraftItems.STORAGE_CELL, "storage_cell"); GameRegistry.registerItem(StorageCraftItems.WIRELESS_GRID, "wireless_grid"); diff --git a/src/main/resources/assets/storagecraft/blockstates/drive.json b/src/main/resources/assets/storagecraft/blockstates/drive.json index 942f32d62..259b000b7 100644 --- a/src/main/resources/assets/storagecraft/blockstates/drive.json +++ b/src/main/resources/assets/storagecraft/blockstates/drive.json @@ -1,45 +1,45 @@ { - "forge_marker": 1, - "defaults": { - "model": "orientable", - "textures": { - "side": "storagecraft:blocks/side", - "top": "storagecraft:blocks/side", - "front": "storagecraft:blocks/drive" - } - }, - "variants": { - "inventory": [ - { - "transform": "forge:default-block", - "y": 0 - } - ], - "connected": { - "true": { - }, - "false": { - } - }, - "direction": { - "north": { - "y": 0 - }, - "east": { - "y": 90 - }, - "south": { - "y": 180 - }, - "west": { - "y": 270 - }, - "up": { - "x": 270 - }, - "down": { - "x": 90 - } - } - } + "forge_marker": 1, + "defaults": { + "model": "orientable", + "textures": { + "side": "storagecraft:blocks/side", + "top": "storagecraft:blocks/side", + "front": "storagecraft:blocks/drive" + } + }, + "variants": { + "inventory": [ + { + "transform": "forge:default-block", + "y": 0 + } + ], + "connected": { + "true": { + }, + "false": { + } + }, + "direction": { + "north": { + "y": 0 + }, + "east": { + "y": 90 + }, + "south": { + "y": 180 + }, + "west": { + "y": 270 + }, + "up": { + "x": 270 + }, + "down": { + "x": 90 + } + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/storagecraft/blockstates/storage.json b/src/main/resources/assets/storagecraft/blockstates/storage.json new file mode 100644 index 000000000..f66d2f8d3 --- /dev/null +++ b/src/main/resources/assets/storagecraft/blockstates/storage.json @@ -0,0 +1,81 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "cube_all" + }, + "variants": { + "inventory": [ + { + "textures": { + "all": "storagecraft:blocks/1k_storage_block" + }, + "transform": "forge:default-block" + }, + { + "textures": { + "all": "storagecraft:blocks/4k_storage_block" + }, + "transform": "forge:default-block" + }, + { + "textures": { + "all": "storagecraft:blocks/16k_storage_block" + }, + "transform": "forge:default-block" + }, + { + "textures": { + "all": "storagecraft:blocks/64k_storage_block" + }, + "transform": "forge:default-block" + }, + { + "textures": { + "all": "storagecraft:blocks/creative_storage_block" + }, + "transform": "forge:default-block" + } + ], + "type": { + "1k": { + "textures": { + "all": "storagecraft:blocks/1k_storage_block" + } + }, + "4k": { + "textures": { + "all": "storagecraft:blocks/4k_storage_block" + } + }, + "16k": { + "textures": { + "all": "storagecraft:blocks/16k_storage_block" + } + }, + "64k": { + "textures": { + "all": "storagecraft:blocks/64k_storage_block" + } + }, + "creative": { + "textures": { + "all": "storagecraft:blocks/creative_storage_block" + } + } + }, + "direction": { + "north": { + }, + "east": { + }, + "south": { + }, + "west": { + }, + "up": { + }, + "down": { + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/storagecraft/lang/en_US.lang b/src/main/resources/assets/storagecraft/lang/en_US.lang index f433a01c7..43a8ac98e 100644 --- a/src/main/resources/assets/storagecraft/lang/en_US.lang +++ b/src/main/resources/assets/storagecraft/lang/en_US.lang @@ -72,6 +72,11 @@ block.storagecraft:solderer.name=Solderer block.storagecraft:wireless_transmitter.name=Wireless Transmitter block.storagecraft:destructor.name=Destructor block.storagecraft:constructor.name=Constructor +block.storagecraft:storage.0.name=1k Storage Block +block.storagecraft:storage.1.name=4k Storage Block +block.storagecraft:storage.2.name=16k Storage Block +block.storagecraft:storage.3.name=64k Storage Block +block.storagecraft:storage.4.name=Creative Storage Block item.storagecraft:storage_cell.0.name=1k Storage Cell item.storagecraft:storage_cell.1.name=4k Storage Cell diff --git a/src/main/resources/assets/storagecraft/textures/blocks/16k_storage_block.png b/src/main/resources/assets/storagecraft/textures/blocks/16k_storage_block.png new file mode 100644 index 0000000000000000000000000000000000000000..fca25aff30abb840e792f6ba29cffe69c87903b4 GIT binary patch literal 365 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=%3y`{UggH5kUd-gmaPSm)J5rzVa{fYgf^& zcW*1=zU!NOsMS5W|97pb;zCD>D2^t!?TQ>eXTNg_Nx59~d1Tg-2$VROup#5@?64Wua;ez zs<^OmD}Qp`4&GyT9AC2uNrhbXeq0#LT=By}Z;C1rt33 zJD);d*-g`%_es(S<5G+x?9fh z;qyBv>$5!F^2F!K!3!J%V-n4px&3Np+I$SNo^gJ4e>5|vcGqq8y&N7H3rckhrKhZ# zx=KPwD&n`nv-aBwXJohJDK2!3+^3S)yw#tRllR|)ulKGjSnyEv;N!hOuQGVL`njxg HN@xNAkX?y2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/storagecraft/textures/blocks/4k_storage_block.png b/src/main/resources/assets/storagecraft/textures/blocks/4k_storage_block.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1021724329bd959ea7877d064798c573b5c7b6 GIT binary patch literal 363 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=$+nPE+pV8axn5h?ft!zuNrNc`_s5mu`JTm zQR3S_r)G^ylm6_!A1)*$rPA4IQMQA(FefU|Wx|C7gAA2C=Sf$95a^F|3e+gE$Cl01;`VM57 zS)X(al-bL~yXqBFDrfqfA4Zjrbj@d+&yT+@CKMKWUB60j!Uc!dyN~1syjpjqS8-wE zR{!L>9lXbE9J1Ltd0+j~EtFnU>*@6a BhD-ne literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/storagecraft/textures/blocks/64k_storage_block.png b/src/main/resources/assets/storagecraft/textures/blocks/64k_storage_block.png new file mode 100644 index 0000000000000000000000000000000000000000..a45ac4de2e5388687cfba583ecd7d71bb5bb0890 GIT binary patch literal 365 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=%3zRuC%hFX$NDm*kj&3-QPHRf`6x9)jpNE zd;8gTe~DWM4f Dn@fjf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/storagecraft/textures/blocks/creative_storage_block.png b/src/main/resources/assets/storagecraft/textures/blocks/creative_storage_block.png new file mode 100644 index 0000000000000000000000000000000000000000..ab59534d0e075e6be032a1ebe697007d88652fd3 GIT binary patch literal 368 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 zJp63D9K#}x=yx(KbFS*LMZSGIwN=2VQ zQ%c!B0am&MB^tFicEdky6bfd(6bDlu6{1- HoD!M