diff --git a/src/main/java/api/hbm/ntl/EnumStorageType.java b/src/main/java/api/hbm/ntl/EnumStorageType.java index 287f18c77..bbde53f61 100644 --- a/src/main/java/api/hbm/ntl/EnumStorageType.java +++ b/src/main/java/api/hbm/ntl/EnumStorageType.java @@ -1,5 +1,6 @@ package api.hbm.ntl; +@Deprecated public enum EnumStorageType { CLUTTER, //potentially unsorted storage (like crates) with many slots that have low capacity MASS //storage with very few lots (usually 1) and very high capacity diff --git a/src/main/java/api/hbm/ntl/IPneumaticConnector.java b/src/main/java/api/hbm/ntl/IPneumaticConnector.java new file mode 100644 index 000000000..d9ff3ec7d --- /dev/null +++ b/src/main/java/api/hbm/ntl/IPneumaticConnector.java @@ -0,0 +1,15 @@ +package api.hbm.ntl; + +import net.minecraftforge.common.util.ForgeDirection; + +public interface IPneumaticConnector { + + /** + * Whether the given side can be connected to. + * @param dir The side of this block, not the one that is trying to connect. + * @return + */ + public default boolean canConnectPneumatic(ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN; + } +} diff --git a/src/main/java/api/hbm/ntl/IStorageComponent.java b/src/main/java/api/hbm/ntl/IStorageComponent.java index adb46ead0..13b7ea669 100644 --- a/src/main/java/api/hbm/ntl/IStorageComponent.java +++ b/src/main/java/api/hbm/ntl/IStorageComponent.java @@ -2,6 +2,7 @@ package api.hbm.ntl; import net.minecraft.item.ItemStack; +@Deprecated public interface IStorageComponent { /** diff --git a/src/main/java/api/hbm/ntl/StorageManifest.java b/src/main/java/api/hbm/ntl/StorageManifest.java index 628502d52..0d58df702 100644 --- a/src/main/java/api/hbm/ntl/StorageManifest.java +++ b/src/main/java/api/hbm/ntl/StorageManifest.java @@ -10,6 +10,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +@Deprecated public class StorageManifest { public LinkedHashMap itemMeta = new LinkedHashMap(); diff --git a/src/main/java/api/hbm/ntl/StorageStack.java b/src/main/java/api/hbm/ntl/StorageStack.java index 31871f696..4980bdcbf 100644 --- a/src/main/java/api/hbm/ntl/StorageStack.java +++ b/src/main/java/api/hbm/ntl/StorageStack.java @@ -3,6 +3,7 @@ package api.hbm.ntl; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +@Deprecated public class StorageStack implements Comparable { private int cachedItemId; diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index eeff5c1bb..82c53856b 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -12,6 +12,11 @@ import com.hbm.blocks.machine.fusion.*; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; +import com.hbm.blocks.network.pneumatic.PneumoStorageAccess; +import com.hbm.blocks.network.pneumatic.PneumoStorageClutter; +import com.hbm.blocks.network.pneumatic.PneumoStorageMono; +import com.hbm.blocks.network.pneumatic.PneumoTube; +import com.hbm.blocks.network.pneumatic.PneumoTubePaintableBlock; import com.hbm.blocks.rail.*; import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; @@ -798,6 +803,9 @@ public class ModBlocks { public static Block pneumatic_tube; public static Block pneumatic_tube_paintable; + public static Block pneumatic_storage_access; + public static Block pneumatic_storage_clutter; + public static Block pneumatic_storage_mono; public static Block fan; public static Block piston_inserter; @@ -1914,6 +1922,9 @@ public class ModBlocks { pneumatic_tube = new PneumoTube().setBlockName("pneumatic_tube").setStepSound(ModSoundTypes.pipe).setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_tube"); pneumatic_tube_paintable = new PneumoTubePaintableBlock().setBlockName("pneumatic_tube_paintable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + pneumatic_storage_access = new PneumoStorageAccess().setBlockName("pneumatic_storage_access").setStepSound(ModSoundTypes.pipe).setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_access"); + pneumatic_storage_clutter = new PneumoStorageClutter().setBlockName("pneumatic_storage_clutter").setStepSound(ModSoundTypes.pipe).setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_clutter"); + pneumatic_storage_mono = new PneumoStorageMono().setBlockName("pneumatic_storage_mono").setStepSound(ModSoundTypes.pipe).setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pneumatic_storage_mono"); chain = new BlockChain(Material.iron).setBlockName("dungeon_chain").setHardness(0.25F).setResistance(2.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":chain"); @@ -3185,6 +3196,9 @@ public class ModBlocks { register(drone_crate_requester); register(pneumatic_tube); register(pneumatic_tube_paintable); + register(pneumatic_storage_access); + register(pneumatic_storage_clutter); + register(pneumatic_storage_mono); register(fan); register(piston_inserter); diff --git a/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageAccess.java b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageAccess.java new file mode 100644 index 000000000..9b449e957 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageAccess.java @@ -0,0 +1,63 @@ +package com.hbm.blocks.network.pneumatic; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoStorageAccess; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class PneumoStorageAccess extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + + public PneumoStorageAccess() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPneumoStorageAccess(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister reg) { + super.registerBlockIcons(reg); + this.iconFront = reg.registerIcon(RefStrings.MODID + ":pneumatic_storage_access_front"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return meta == side ? iconFront : blockIcon; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) return true; + if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } + return false; + } +} diff --git a/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageClutter.java b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageClutter.java new file mode 100644 index 000000000..33b18b6ae --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageClutter.java @@ -0,0 +1,33 @@ +package com.hbm.blocks.network.pneumatic; + +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoStorageClutter; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class PneumoStorageClutter extends BlockContainer { + + public PneumoStorageClutter() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPneumoStorageClutter(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) return true; + if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); + return true; + } + return false; + } +} diff --git a/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageMono.java b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageMono.java new file mode 100644 index 000000000..47428aff2 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageMono.java @@ -0,0 +1,19 @@ +package com.hbm.blocks.network.pneumatic; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class PneumoStorageMono extends BlockContainer { + + public PneumoStorageMono() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return null; + } + +} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/network/PneumoTube.java b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoTube.java similarity index 96% rename from src/main/java/com/hbm/blocks/network/PneumoTube.java rename to src/main/java/com/hbm/blocks/network/pneumatic/PneumoTube.java index 729f224dc..ec739a3b8 100644 --- a/src/main/java/com/hbm/blocks/network/PneumoTube.java +++ b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoTube.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.network; +package com.hbm.blocks.network.pneumatic; import java.util.ArrayList; import java.util.List; @@ -8,10 +8,11 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.network.TileEntityPneumoTube; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoTube; import com.hbm.util.Compat; import api.hbm.block.IToolable; +import api.hbm.ntl.IPneumaticConnector; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -207,7 +208,9 @@ public class PneumoTube extends BlockContainer implements IToolable, ITooltipPro public boolean canConnectTo(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { TileEntity tile = world instanceof World ? Compat.getTileStandard((World) world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) : world.getTileEntity(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - return tile instanceof TileEntityPneumoTube; + if(tile instanceof TileEntityPneumoTube) return true; + if(tile instanceof IPneumaticConnector) return ((IPneumaticConnector) tile).canConnectPneumatic(dir.getOpposite()); + return false; } public boolean canConnectToAir(IBlockAccess world, int x, int y, int z, ForgeDirection dir) { diff --git a/src/main/java/com/hbm/blocks/network/PneumoTubePaintableBlock.java b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoTubePaintableBlock.java similarity index 95% rename from src/main/java/com/hbm/blocks/network/PneumoTubePaintableBlock.java rename to src/main/java/com/hbm/blocks/network/pneumatic/PneumoTubePaintableBlock.java index c54baab81..3845a12e7 100644 --- a/src/main/java/com/hbm/blocks/network/PneumoTubePaintableBlock.java +++ b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoTubePaintableBlock.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.network; +package com.hbm.blocks.network.pneumatic; import api.hbm.block.IToolable; @@ -6,11 +6,12 @@ import java.util.List; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ITooltipProvider; +import com.hbm.blocks.network.BlockCablePaintable; import com.hbm.interfaces.ICopiable; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.render.block.RenderBlockMultipass; -import com.hbm.tileentity.network.TileEntityPneumoTube; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoTube; import com.hbm.util.Compat; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java b/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java index 91eaab7f3..6f844e35f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java +++ b/src/main/java/com/hbm/inventory/container/ContainerPneumoTube.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotPattern; -import com.hbm.tileentity.network.TileEntityPneumoTube; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoTube; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/gui/GUIPneumoTube.java b/src/main/java/com/hbm/inventory/gui/GUIPneumoTube.java index 9ee7bd1b1..eba1e7c9a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIPneumoTube.java +++ b/src/main/java/com/hbm/inventory/gui/GUIPneumoTube.java @@ -10,7 +10,7 @@ import com.hbm.module.ModulePatternMatcher; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.render.util.GaugeUtil; -import com.hbm.tileentity.network.TileEntityPneumoTube; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoTube; import com.hbm.uninos.networkproviders.PneumaticNetwork; import net.minecraft.client.Minecraft; diff --git a/src/main/java/com/hbm/render/block/RenderPneumoTube.java b/src/main/java/com/hbm/render/block/RenderPneumoTube.java index 119231e08..85c03f86b 100644 --- a/src/main/java/com/hbm/render/block/RenderPneumoTube.java +++ b/src/main/java/com/hbm/render/block/RenderPneumoTube.java @@ -2,10 +2,10 @@ package com.hbm.render.block; import org.lwjgl.opengl.GL11; -import com.hbm.blocks.network.PneumoTube; +import com.hbm.blocks.network.pneumatic.PneumoTube; import com.hbm.lib.Library; import com.hbm.render.util.RenderBlocksNT; -import com.hbm.tileentity.network.TileEntityPneumoTube; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoTube; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 68be764bc..6a8a5608b 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -42,7 +42,7 @@ import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; import com.hbm.blocks.network.FluidDuctPaintableBlockExhaust.TileEntityPipeExhaustPaintable; import com.hbm.blocks.network.FluidPump.TileEntityFluidPump; -import com.hbm.blocks.network.PneumoTubePaintableBlock.TileEntityPneumoTubePaintable; +import com.hbm.blocks.network.pneumatic.PneumoTubePaintableBlock.TileEntityPneumoTubePaintable; import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; import com.hbm.blocks.test.TestEventTester.TileEntityTestStorage; import com.hbm.blocks.network.BlockOpenComputersCablePaintable.TileEntityOpenComputersCablePaintable; @@ -56,6 +56,9 @@ import com.hbm.tileentity.machine.pile.*; import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoStorageAccess; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoStorageClutter; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoTube; import com.hbm.tileentity.turret.*; import com.hbm.util.Compat; @@ -467,6 +470,8 @@ public class TileMappings { put(TileEntityPneumoTube.class, "tileentity_pneumatic_tube"); put(TileEntityPneumoTubePaintable.class, "tileentity_pneumatic_tube_paintable"); + put(TileEntityPneumoStorageAccess.class, "tileentity_pneumatic_storage_access"); + put(TileEntityPneumoStorageClutter.class, "tileentity_pneumatic_storage_clutter"); put(TileEntityRadioTorchSender.class, "tileentity_rtty_sender"); put(TileEntityRadioTorchReceiver.class, "tileentity_rtty_rec"); diff --git a/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoStorageAccess.java b/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoStorageAccess.java new file mode 100644 index 000000000..f5c4eaca4 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoStorageAccess.java @@ -0,0 +1,14 @@ +package com.hbm.tileentity.network.pneumatic; + +import api.hbm.ntl.IPneumaticConnector; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityPneumoStorageAccess extends TileEntity implements IPneumaticConnector { + + @Override + public boolean canConnectPneumatic(ForgeDirection dir) { + ForgeDirection selfdir = ForgeDirection.getOrientation(getBlockMetadata()); + return dir == selfdir.getOpposite(); + } +} diff --git a/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoStorageClutter.java b/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoStorageClutter.java new file mode 100644 index 000000000..126bed44e --- /dev/null +++ b/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoStorageClutter.java @@ -0,0 +1,30 @@ +package com.hbm.tileentity.network.pneumatic; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.tileentity.TileEntityMachineBase; + +import api.hbm.fluidmk2.IFluidStandardReceiverMK2; + +public class TileEntityPneumoStorageClutter extends TileEntityMachineBase implements IFluidStandardReceiverMK2 { + + public FluidTank compair; + + public TileEntityPneumoStorageClutter() { + super(6 * 9); + this.compair = new FluidTank(Fluids.AIR, 4_000).withPressure(1); + } + + @Override + public String getName() { + return "container.pneumoStorageClutter"; + } + + @Override + public void updateEntity() { + + } + + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {compair}; } + @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {compair}; } +} diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java b/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoTube.java similarity index 99% rename from src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java rename to src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoTube.java index 1123bac7a..fcdbebc25 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java +++ b/src/main/java/com/hbm/tileentity/network/pneumatic/TileEntityPneumoTube.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.network; +package com.hbm.tileentity.network.pneumatic; import com.hbm.inventory.container.ContainerPneumoTube; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java b/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java index aac5d52a7..66e0e4561 100644 --- a/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java +++ b/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java @@ -10,7 +10,7 @@ import java.util.Map.Entry; import java.util.Random; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; -import com.hbm.tileentity.network.TileEntityPneumoTube; +import com.hbm.tileentity.network.pneumatic.TileEntityPneumoTube; import com.hbm.uninos.NodeNet; import com.hbm.util.BobMathUtil; import com.hbm.util.ItemStackUtil; diff --git a/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_access.png b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_access.png new file mode 100644 index 000000000..7f8c02732 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_access.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_access_front.png b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_access_front.png new file mode 100644 index 000000000..4a5f55317 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_access_front.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_clutter.png b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_clutter.png new file mode 100644 index 000000000..9f14c454d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_clutter.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_mono.png b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_mono.png new file mode 100644 index 000000000..3766a8aaf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pneumatic_storage_mono.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_pneumatic_access.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_pneumatic_access.png new file mode 100644 index 000000000..f8c4929a4 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_pneumatic_access.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_pneumatic_clutter.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_pneumatic_clutter.png new file mode 100644 index 000000000..d587a9c5a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_pneumatic_clutter.png differ