aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkekzdealer <kekzdealer@gmail.com>2019-11-20 21:14:35 +0100
committerkekzdealer <kekzdealer@gmail.com>2019-11-20 21:14:35 +0100
commit77d84c4680913e1bfbc384402ccd90ee26b7e553 (patch)
tree939c33e2caec7e0594e42e3a174146f4c49847f8
parent069a2c5d0e074375f629d0d322621a21c49d1bbc (diff)
downloadGT5-Unofficial-77d84c4680913e1bfbc384402ccd90ee26b7e553.tar.gz
GT5-Unofficial-77d84c4680913e1bfbc384402ccd90ee26b7e553.tar.bz2
GT5-Unofficial-77d84c4680913e1bfbc384402ccd90ee26b7e553.zip
Item Server forms! Only MultiItemHandler missing :)
-rw-r--r--GregTech.lang12
-rw-r--r--config/IC2.ini2
-rw-r--r--config/splash.properties2
-rw-r--r--src/main/java/blocks/Block_ItemServerDrive.java5
-rw-r--r--src/main/java/blocks/Block_ItemServerIOPort.java41
-rw-r--r--src/main/java/blocks/Block_ItemServerRackCasing.java33
-rw-r--r--src/main/java/itemBlocks/IB_ItemServerIOPort.java21
-rw-r--r--src/main/java/itemBlocks/IB_ItemServerRackCasing.java21
-rw-r--r--src/main/java/kekztech/KekzCore.java4
-rw-r--r--src/main/java/kekztech/MultiItemHandler.java41
-rw-r--r--src/main/java/tileentities/GTMTE_ItemServer.java12
-rw-r--r--src/main/java/tileentities/TE_ItemServerIOPort.java84
-rw-r--r--src/main/resources/assets/kekztech/lang/en_US.lang3
-rw-r--r--src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive.pngbin985 -> 567 bytes
-rw-r--r--src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_BOTTOM.pngbin477 -> 309 bytes
-rw-r--r--src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_TOP.pngbin683 -> 405 bytes
-rw-r--r--src/main/resources/assets/kekztech/textures/blocks/ItemServerIOPort.pngbin0 -> 362 bytes
-rw-r--r--src/main/resources/assets/kekztech/textures/blocks/ItemServerRackCasing.pngbin0 -> 282 bytes
18 files changed, 277 insertions, 4 deletions
diff --git a/GregTech.lang b/GregTech.lang
index 1bc082a29c..465bc37e26 100644
--- a/GregTech.lang
+++ b/GregTech.lang
@@ -988,6 +988,17 @@ languagefile {
S:TileEntity_DESCRIPTION_13104_Index_7=Tier IV: 64,000,000L per block, 4EU/t
S:TileEntity_DESCRIPTION_13104_Index_8=------------------------------------------
S:TileEntity_DESCRIPTION_13104_Index_9=Note on hatch locking:
+ S:TileEntity_DESCRIPTION_13105_Index_0=High-Tech item storage!
+ S:TileEntity_DESCRIPTION_13105_Index_1=Variable length: Slices 2-4 can be repeated as long as the total length does not exceed 16 blocks.
+ S:TileEntity_DESCRIPTION_13105_Index_10=Created by Kekzdealer
+ S:TileEntity_DESCRIPTION_13105_Index_2=Each slices offers storage for 128 item types
+ S:TileEntity_DESCRIPTION_13105_Index_3=Storage capacity per item depends on the controller configuration.
+ S:TileEntity_DESCRIPTION_13105_Index_4=Insert an Integrated Circuit into the controller with your desired configuration.
+ S:TileEntity_DESCRIPTION_13105_Index_5=The base configuration (0) is 1024 items per type. For each higher level, the capacity quadruples.
+ S:TileEntity_DESCRIPTION_13105_Index_6=Each slice also adds 1EU/t of power consumption and doubles with rising configuration values.
+ S:TileEntity_DESCRIPTION_13105_Index_7=Valid config values are from zero to eight.
+ S:TileEntity_DESCRIPTION_13105_Index_8=-----------------------------------------
+ S:TileEntity_DESCRIPTION_13105_Index_9=Hold §l[LSHIFT]§r§7 to display structure guidelines
S:TileEntity_DESCRIPTION_1310_Index_0=Max Voltage: %s
S:TileEntity_DESCRIPTION_1310_Index_1=Max Amperage: %s
S:TileEntity_DESCRIPTION_1310_Index_2=Loss/Meter/Ampere: %s EU-Volt
@@ -5038,6 +5049,7 @@ languagefile {
S:gt.blockmachines.multimachine.fuelcellmk2.name=Solid-Oxide Fuel Cell MK2
S:gt.blockmachines.multimachine.heatexchanger.name=Large Heat Exchanger
S:gt.blockmachines.multimachine.implosioncompressor.name=Implosion Compressor
+ S:gt.blockmachines.multimachine.itemserver.name=Item Server
S:gt.blockmachines.multimachine.largegasturbine.name=Large Gas Turbine
S:gt.blockmachines.multimachine.largehpturbine.name=Large HP Steam Turbine
S:gt.blockmachines.multimachine.largeplasmaturbine.name=Large Plasma Generator
diff --git a/config/IC2.ini b/config/IC2.ini
index 787f501733..8ce9dd4967 100644
--- a/config/IC2.ini
+++ b/config/IC2.ini
@@ -1,5 +1,5 @@
; ic2 general config
-; created Nov 20, 2019 1:23:50 PM
+; created Nov 20, 2019 8:45:36 PM
;---
[worldgen]
diff --git a/config/splash.properties b/config/splash.properties
index 6f5f99b145..c68378b3de 100644
--- a/config/splash.properties
+++ b/config/splash.properties
@@ -1,5 +1,5 @@
#Splash screen properties
-#Wed Nov 20 13:23:41 CET 2019
+#Wed Nov 20 20:45:26 CET 2019
logoTexture=textures/gui/title/mojang.png
background=0xFFFFFF
font=0x0
diff --git a/src/main/java/blocks/Block_ItemServerDrive.java b/src/main/java/blocks/Block_ItemServerDrive.java
index 6f929e87c3..14a9e97d3e 100644
--- a/src/main/java/blocks/Block_ItemServerDrive.java
+++ b/src/main/java/blocks/Block_ItemServerDrive.java
@@ -52,4 +52,9 @@ public class Block_ItemServerDrive extends Block{
return faces[side];
}
+ @Override
+ public int getLightValue() {
+ return 7;
+ }
+
}
diff --git a/src/main/java/blocks/Block_ItemServerIOPort.java b/src/main/java/blocks/Block_ItemServerIOPort.java
new file mode 100644
index 0000000000..79aba33b89
--- /dev/null
+++ b/src/main/java/blocks/Block_ItemServerIOPort.java
@@ -0,0 +1,41 @@
+package blocks;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import itemBlocks.IB_ItemServerIOPort;
+import kekztech.KekzCore;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import tileentities.TE_ItemServerIOPort;
+
+public class Block_ItemServerIOPort extends BlockContainer {
+
+ private static Block_ItemServerIOPort instance = new Block_ItemServerIOPort();
+
+ private Block_ItemServerIOPort() {
+ // I am a singleton
+ super(Material.iron);
+ }
+
+ public static Block_ItemServerIOPort getInstance() {
+ return instance;
+ }
+
+ public void registerBlock() {
+ final String blockName = "kekztech_itemserverioport_block";
+ super.setBlockName(blockName);
+ super.setCreativeTab(CreativeTabs.tabMisc);
+ super.setBlockTextureName(KekzCore.MODID + ":" + "ItemServerIOPort");
+ super.setHardness(5.0f);
+ super.setResistance(6.0f);
+ GameRegistry.registerBlock(getInstance(), IB_ItemServerIOPort.class, blockName);
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World world, int p_149915_2_) {
+ return new TE_ItemServerIOPort();
+ }
+
+}
diff --git a/src/main/java/blocks/Block_ItemServerRackCasing.java b/src/main/java/blocks/Block_ItemServerRackCasing.java
new file mode 100644
index 0000000000..e0ee7af698
--- /dev/null
+++ b/src/main/java/blocks/Block_ItemServerRackCasing.java
@@ -0,0 +1,33 @@
+package blocks;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import itemBlocks.IB_ItemServerRackCasing;
+import kekztech.KekzCore;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.creativetab.CreativeTabs;
+
+public class Block_ItemServerRackCasing extends Block {
+
+ private static Block_ItemServerRackCasing instance = new Block_ItemServerRackCasing();
+
+ private Block_ItemServerRackCasing() {
+ // I am a singleton
+ super(Material.iron);
+ }
+
+ public static Block_ItemServerRackCasing getInstance() {
+ return instance;
+ }
+
+ public void registerBlock() {
+ final String blockName = "kekztech_itemserverrackcasing_block";
+ super.setBlockName(blockName);
+ super.setCreativeTab(CreativeTabs.tabMisc);
+ super.setBlockTextureName(KekzCore.MODID + ":" + "ItemServerRackCasing");
+ super.setHardness(5.0f);
+ super.setResistance(6.0f);
+ GameRegistry.registerBlock(getInstance(), IB_ItemServerRackCasing.class, blockName);
+ }
+
+}
diff --git a/src/main/java/itemBlocks/IB_ItemServerIOPort.java b/src/main/java/itemBlocks/IB_ItemServerIOPort.java
new file mode 100644
index 0000000000..bbfaca3065
--- /dev/null
+++ b/src/main/java/itemBlocks/IB_ItemServerIOPort.java
@@ -0,0 +1,21 @@
+package itemBlocks;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+
+public class IB_ItemServerIOPort extends ItemBlock {
+
+ public IB_ItemServerIOPort(Block block) {
+ super(block);
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) {
+ lines.add("I/O Port for interfacing with an Item Server.");
+ }
+}
diff --git a/src/main/java/itemBlocks/IB_ItemServerRackCasing.java b/src/main/java/itemBlocks/IB_ItemServerRackCasing.java
new file mode 100644
index 0000000000..52a586d8df
--- /dev/null
+++ b/src/main/java/itemBlocks/IB_ItemServerRackCasing.java
@@ -0,0 +1,21 @@
+package itemBlocks;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+
+public class IB_ItemServerRackCasing extends ItemBlock {
+
+ public IB_ItemServerRackCasing(Block block) {
+ super(block);
+ }
+
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ @Override
+ public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) {
+ lines.add("Shiny new server rack");
+ }
+}
diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java
index 8cea0de8b5..239d8cc49f 100644
--- a/src/main/java/kekztech/KekzCore.java
+++ b/src/main/java/kekztech/KekzCore.java
@@ -3,6 +3,8 @@ package kekztech;
import blocks.Block_ControlRod;
import blocks.Block_GDCUnit;
import blocks.Block_ItemServerDrive;
+import blocks.Block_ItemServerIOPort;
+import blocks.Block_ItemServerRackCasing;
import blocks.Block_ReactorChamber_OFF;
import blocks.Block_ReactorChamber_ON;
import blocks.Block_TFFTCasing;
@@ -89,6 +91,8 @@ public class KekzCore {
Block_ReactorChamber_ON.getInstance().registerBlock();
Block_ControlRod.getInstance().registerBlock();
Block_ItemServerDrive.getInstance().registerBlock();
+ Block_ItemServerRackCasing.getInstance().registerBlock();
+ Block_ItemServerIOPort.getInstance().registerBlock();
// TODO: Disabled for new release
//Block_ItemDistributionCable.getInstance().registerBlock();
//Block_ItemDistributionNode.getInstance().registerBlock();
diff --git a/src/main/java/kekztech/MultiItemHandler.java b/src/main/java/kekztech/MultiItemHandler.java
new file mode 100644
index 0000000000..aac3dc59c4
--- /dev/null
+++ b/src/main/java/kekztech/MultiItemHandler.java
@@ -0,0 +1,41 @@
+package kekztech;
+
+public class MultiItemHandler {
+
+ private int itemTypeCapacity = 128;
+ private int perTypeCapacity = 1024;
+
+ private boolean locked = true;
+
+ public MultiItemHandler() {
+
+ }
+
+ public void setItemTypeCapacity(int itemTypeCapacity) {
+ this.itemTypeCapacity = itemTypeCapacity;
+ }
+
+ public void setPerTypeCapacity(int perTypeCapacity) {
+ this.perTypeCapacity = perTypeCapacity;
+ }
+
+ /**
+ * Lock internal storage in case Item Server is not running.
+ *
+ * @param state
+ * Lock state.
+ */
+ public void setLock(boolean state) {
+ locked = state;
+ }
+
+ public int getItemTypeCapacity() {
+ return itemTypeCapacity;
+ }
+
+ public int getPerTypeCapacity() {
+ return perTypeCapacity;
+ }
+
+
+}
diff --git a/src/main/java/tileentities/GTMTE_ItemServer.java b/src/main/java/tileentities/GTMTE_ItemServer.java
index 9a8039ec0e..8fcb72c498 100644
--- a/src/main/java/tileentities/GTMTE_ItemServer.java
+++ b/src/main/java/tileentities/GTMTE_ItemServer.java
@@ -1,10 +1,13 @@
package tileentities;
import java.util.ArrayList;
+import java.util.HashSet;
import org.lwjgl.input.Keyboard;
import blocks.Block_ItemServerDrive;
+import blocks.Block_ItemServerIOPort;
+import blocks.Block_ItemServerRackCasing;
import gregtech.api.enums.Textures.BlockIcons;
import gregtech.api.gui.GT_GUIContainer_MultiMachine;
import gregtech.api.interfaces.ITexture;
@@ -13,6 +16,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.objects.GT_RenderedTexture;
import kekztech.MultiFluidHandler;
+import kekztech.MultiItemHandler;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -29,9 +33,13 @@ public class GTMTE_ItemServer extends GT_MetaTileEntity_MultiBlockBase {
private static final int BASE_ITEM_TYPES_PER_SLICE = 128;
private final Block_ItemServerDrive DRIVE = Block_ItemServerDrive.getInstance();
+ private final Block_ItemServerRackCasing CASING = Block_ItemServerRackCasing.getInstance();
+ private final Block_ItemServerIOPort IO_PORT = Block_ItemServerIOPort.getInstance();
private final String ALU_FRAME_BOX_NAME = "gt.blockmachines.gt_frame_aluminium";
private final int CASING_TEXTURE_ID = 176;
+ private MultiItemHandler mih;
+ private HashSet<TE_ItemServerIOPort> ioPorts = new HashSet<>();
private int sliceCount = 0;
public GTMTE_ItemServer(int aID, String aName, String aNameRegional) {
@@ -52,7 +60,7 @@ public class GTMTE_ItemServer extends GT_MetaTileEntity_MultiBlockBase {
final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder();
b.addInfo("High-Tech item storage!")
.addInfo("Variable length: Slices 2-4 can be repeated as long as the total length does not exceed 16 blocks.")
- .addInfo("Each slices offers storage for 128 item types")
+ .addInfo("Each slice offers storage for 128 item types")
.addInfo("Storage capacity per item depends on the controller configuration.")
.addInfo("Insert an Integrated Circuit into the controller with your desired configuration.")
.addInfo("The base configuration (0) is 1024 items per type. For each higher level, the capacity quadruples.")
@@ -63,7 +71,7 @@ public class GTMTE_ItemServer extends GT_MetaTileEntity_MultiBlockBase {
.addController("Front Bottom Center")
.addEnergyHatch("Any casing")
.addOtherStructurePart("Front slice", "3x5x1 Item Server Rack Casing")
- .addOtherStructurePart("2nd and 3rd slice, center", "1x4x1 Tungstensteel Frame Box")
+ .addOtherStructurePart("2nd and 3rd slice, center", "1x4x1 Aluminium Frame Box")
.addOtherStructurePart("2nd and 3rd slice, top", "3x1x1 Item Server Rack Casing")
.addOtherStructurePart("2nd and 3rd slice, sides", "2x 1x4x1 Item Server Drive")
.addOtherStructurePart("Back slice", "3x5x1 Item Server Rack Casing")
diff --git a/src/main/java/tileentities/TE_ItemServerIOPort.java b/src/main/java/tileentities/TE_ItemServerIOPort.java
new file mode 100644
index 0000000000..17e322fa82
--- /dev/null
+++ b/src/main/java/tileentities/TE_ItemServerIOPort.java
@@ -0,0 +1,84 @@
+package tileentities;
+
+import kekztech.MultiItemHandler;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+
+public class TE_ItemServerIOPort extends TileEntity implements IInventory {
+
+ private MultiItemHandler mih;
+
+ public void setMultiItemHandler(MultiItemHandler mih) {
+ this.mih = mih;
+ }
+
+ @Override
+ public int getSizeInventory() {
+ return mih.getItemTypeCapacity();
+ }
+
+ @Override
+ public ItemStack getStackInSlot(int slot) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ItemStack decrStackSize(int slot, int amount) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ItemStack getStackInSlotOnClosing(int slot) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setInventorySlotContents(int slot, ItemStack itemStack) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public String getInventoryName() {
+ return "Item Server";
+ }
+
+ @Override
+ public boolean hasCustomInventoryName() {
+ return true;
+ }
+
+ @Override
+ public int getInventoryStackLimit() {
+ return mih.getPerTypeCapacity();
+ }
+
+ @Override
+ public boolean isUseableByPlayer(EntityPlayer player) {
+ return true;
+ }
+
+ @Override
+ public void openInventory() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void closeInventory() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean isItemValidForSlot(int slot, ItemStack itemStack) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang
index 61125730db..f83d06f111 100644
--- a/src/main/resources/assets/kekztech/lang/en_US.lang
+++ b/src/main/resources/assets/kekztech/lang/en_US.lang
@@ -90,3 +90,6 @@ tile.kekztech_reactorchamberon_block.name=Nuclear Reactor Chamber (ON)
tile.kekztech_itemdistributioncable_block.name=Item Distribution Cable
tile.kekztech_itemdistributionnode_block.name=Item Distribution Node
tile.kekztech_itemserverdrive_block.name=Item Server Drive
+tile.kekztech_itemserverrackcasing_block.name=Item Server Rack Casing
+tile.kekztech_itemserverioport_block.name=Item Server I/O Port
+
diff --git a/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive.png b/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive.png
index 1251fa460b..2560ec1c14 100644
--- a/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive.png
+++ b/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive.png
Binary files differ
diff --git a/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_BOTTOM.png b/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_BOTTOM.png
index 8590d5688a..c62f716f68 100644
--- a/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_BOTTOM.png
+++ b/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_BOTTOM.png
Binary files differ
diff --git a/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_TOP.png b/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_TOP.png
index 39d99e28ac..9f3b2f2c0c 100644
--- a/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_TOP.png
+++ b/src/main/resources/assets/kekztech/textures/blocks/ItemServerDrive_TOP.png
Binary files differ
diff --git a/src/main/resources/assets/kekztech/textures/blocks/ItemServerIOPort.png b/src/main/resources/assets/kekztech/textures/blocks/ItemServerIOPort.png
new file mode 100644
index 0000000000..f91bd07ece
--- /dev/null
+++ b/src/main/resources/assets/kekztech/textures/blocks/ItemServerIOPort.png
Binary files differ
diff --git a/src/main/resources/assets/kekztech/textures/blocks/ItemServerRackCasing.png b/src/main/resources/assets/kekztech/textures/blocks/ItemServerRackCasing.png
new file mode 100644
index 0000000000..5f3a9b6d58
--- /dev/null
+++ b/src/main/resources/assets/kekztech/textures/blocks/ItemServerRackCasing.png
Binary files differ