From bb404bc703559b1775cc92cd13db02f604ba0760 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 21 Nov 2022 21:14:13 +0100 Subject: [PATCH] more boxduct variants, fixed soysauce launcher wackyness --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../com/hbm/blocks/machine/SoyuzLauncher.java | 15 ++-- .../com/hbm/blocks/network/FluidDuctBox.java | 14 +++- .../hbm/blocks/network/RadioTorchSender.java | 16 +++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 1 + .../com/hbm/render/block/RenderBoxDuct.java | 59 ++++++++++----- .../java/com/hbm/render/block/RenderRTTY.java | 67 ++++++++++++++++++ .../machine/TileEntitySoyuzLauncher.java | 4 +- .../machine/storage/TileEntityBarrel.java | 2 - .../storage/TileEntityMachineFluidTank.java | 14 +++- .../assets/hbm/models/blocks/rtty.obj | 59 +++++++++++++++ .../textures/blocks/boxduct_white_curve.png | Bin 0 -> 294 bytes .../blocks/boxduct_white_curve_bl.png | Bin 0 -> 377 bytes .../blocks/boxduct_white_curve_br.png | Bin 0 -> 364 bytes .../blocks/boxduct_white_curve_tl.png | Bin 0 -> 347 bytes .../blocks/boxduct_white_curve_tr.png | Bin 0 -> 395 bytes .../hbm/textures/blocks/boxduct_white_end.png | Bin 0 -> 489 bytes .../blocks/boxduct_white_junction.png | Bin 0 -> 274 bytes .../blocks/boxduct_white_straight.png | Bin 0 -> 294 bytes .../hbm/textures/blocks/rtty_rec_off.png | Bin 301 -> 189 bytes .../hbm/textures/blocks/rtty_rec_on.png | Bin 283 -> 172 bytes .../hbm/textures/blocks/rtty_sender_off.png | Bin 313 -> 191 bytes .../hbm/textures/blocks/rtty_sender_on.png | Bin 291 -> 173 bytes 24 files changed, 223 insertions(+), 32 deletions(-) create mode 100644 src/main/java/com/hbm/render/block/RenderRTTY.java create mode 100644 src/main/resources/assets/hbm/models/blocks/rtty.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_bl.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tl.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tr.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_end.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 9e904ba13..8b365ed54 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -789,6 +789,7 @@ public class ModBlocks { public static Block fluid_duct_solid; public static Block fluid_duct_neo; public static Block fluid_duct_box; + public static Block radio_torch_sender; public static Block conveyor; //public static Block conveyor_classic; @@ -1977,6 +1978,7 @@ public class ModBlocks { fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); + radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); //conveyor_classic = new BlockConveyorClassic().setBlockName("conveyor_classic").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); @@ -3158,6 +3160,7 @@ public class ModBlocks { GameRegistry.registerBlock(fluid_duct_neo, ItemBlockBase.class, fluid_duct_neo.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct_box, ItemBlockBase.class, fluid_duct_box.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); + GameRegistry.registerBlock(radio_torch_sender, radio_torch_sender.getUnlocalizedName()); GameRegistry.registerBlock(crane_extractor, crane_extractor.getUnlocalizedName()); GameRegistry.registerBlock(crane_inserter, crane_inserter.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java index 6ed230464..63d4610f7 100644 --- a/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java +++ b/src/main/java/com/hbm/blocks/machine/SoyuzLauncher.java @@ -145,12 +145,17 @@ public class SoyuzLauncher extends BlockDummyable { MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { 0, 4, 1, 1, -6, 8 }, this, dir); MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { 0, 4, 2, 2, 9, -5 }, this, dir); - for(int ix = x - 6; ix <= x + 6; ix++) { - for(int iz = z - 6; iz <= z + 6; iz++) { - this.makeExtra(world, ix, y, iz); - this.makeExtra(world, ix, y + 1, iz); + keepInventory = true; + for(int ix = -6; ix <= 6; ix++) { + for(int iz = -6; iz <= 6; iz++) { + + if(ix == 6 || ix == -6 || iz == 6 || iz == -6) { + this.makeExtra(world, x + ix, y, z + iz); + this.makeExtra(world, x + ix, y + 1, z + iz); + } } } + keepInventory = false; } @Override @@ -172,7 +177,7 @@ public class SoyuzLauncher extends BlockDummyable { if(!keepInventory) { ISidedInventory tileentityfurnace = (ISidedInventory) world.getTileEntity(x, y, z); - if(tileentityfurnace != null) { + if(tileentityfurnace instanceof TileEntitySoyuzLauncher) { for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) { ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java index 8213efbdd..9769c6836 100644 --- a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -36,7 +36,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve @SideOnly(Side.CLIENT) protected IIcon[] iconCurveBR; @SideOnly(Side.CLIENT) protected IIcon[] iconJunction; - private static final String[] materials = new String[] { "silver", "copper" }; + private static final String[] materials = new String[] { "silver", "copper", "white" }; public FluidDuctBox(Material mat) { super(mat); @@ -126,7 +126,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < 2; ++i) { + for(int i = 0; i < 12; ++i) { list.add(new ItemStack(item, 1, i)); } } @@ -154,7 +154,7 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve @Override public int getSubCount() { - return 2; + return 3; } @Override @@ -171,4 +171,12 @@ public class FluidDuctBox extends FluidDuctBase implements IBlockMulti, ILookOve text.add("&[" + duct.getType().getColor() + "&]" +I18nUtil.resolveKey(duct.getType().getUnlocalizedName())); ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); } + + public static int cachedColor = 0xffffff; + + @Override + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) { + return cachedColor; + } } diff --git a/src/main/java/com/hbm/blocks/network/RadioTorchSender.java b/src/main/java/com/hbm/blocks/network/RadioTorchSender.java index c456e2b2b..ba82ce6c1 100644 --- a/src/main/java/com/hbm/blocks/network/RadioTorchSender.java +++ b/src/main/java/com/hbm/blocks/network/RadioTorchSender.java @@ -1,13 +1,29 @@ package com.hbm.blocks.network; +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; import net.minecraft.world.World; public class RadioTorchSender extends RadioTorchBase { + + @SideOnly(Side.CLIENT) + protected IIcon iconOn; public RadioTorchSender() { super(); } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":rtty_sender_off"); + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":rtty_sender_on"); + } @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 2da3a5218..7a2659cba 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -744,6 +744,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderBoxDuct()); RenderingRegistry.registerBlockHandler(new RenderBlockDecoModel(ModBlocks.deco_computer.getRenderType(), ResourceManager.deco_computer)); RenderingRegistry.registerBlockHandler(new RenderReeds()); + RenderingRegistry.registerBlockHandler(new RenderRTTY()); RenderingRegistry.registerBlockHandler(new RenderFoundryBasin()); RenderingRegistry.registerBlockHandler(new RenderFoundryMold()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b9c6b03f4..13c6c5ed4 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1266,6 +1266,7 @@ public class ResourceManager { public static final IModelCustom pipe_rim = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_rim.obj")); public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj")); public static final IModelCustom pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj")); + public static final IModelCustom rtty = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/rtty.obj")); public static final IModelCustom deco_computer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/puter.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderBoxDuct.java b/src/main/java/com/hbm/render/block/RenderBoxDuct.java index f7afa2ee2..4a9b9713d 100644 --- a/src/main/java/com/hbm/render/block/RenderBoxDuct.java +++ b/src/main/java/com/hbm/render/block/RenderBoxDuct.java @@ -9,6 +9,7 @@ import com.hbm.tileentity.network.TileEntityPipeBaseNT; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; @@ -22,10 +23,17 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { FluidType type = Fluids.NONE; TileEntity te = world.getTileEntity(x, y, z); - + Tessellator tessellator = Tessellator.instance; + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + int meta = world.getBlockMetadata(x, y, z); + + FluidDuctBox.cachedColor = 0xffffff; if(te instanceof TileEntityPipeBaseNT) { TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; type = pipe.getType(); + if(meta == 2) { + FluidDuctBox.cachedColor = type.getColor(); + } } boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.NEG_X, type); @@ -37,6 +45,21 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { int mask = 0 + (pX ? 32 : 0) + (nX ? 16 : 0) + (pY ? 8 : 0) + (nY ? 4 : 0) + (pZ ? 2 : 0) + (nZ ? 1 : 0); int count = 0 + (pX ? 1 : 0) + (nX ? 1 : 0) + (pY ? 1 : 0) + (nY ? 1 : 0) + (pZ ? 1 : 0) + (nZ ? 1 : 0); + + double lower = 0.125D; + double upper = 0.875D; + double jLower = 0.0625D; + double jUpper = 0.9375D; + + for(int i = 2; i < 10; i += 3) { + + if(meta > i) { + lower += 0.0625D; + upper -= 0.0625D; + jLower += 0.0625D; + jUpper -= 0.0625D; + } + } //Straight along X if((mask & 0b001111) == 0 && mask > 0) { @@ -44,19 +67,19 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { renderer.uvRotateBottom = 1; renderer.uvRotateEast = 2; renderer.uvRotateWest = 1; - renderer.setRenderBounds(0.0D, 0.125D, 0.125D, 1.0D, 0.875D, 0.875D); + renderer.setRenderBounds(0.0D, lower, lower, 1.0D, upper, upper); renderer.renderStandardBlock(block, x, y, z); //Straight along Z } else if((mask & 0b111100) == 0 && mask > 0) { renderer.uvRotateNorth = 1; renderer.uvRotateSouth = 2; - renderer.setRenderBounds(0.125D, 0.125D, 0.0D, 0.875D, 0.875D, 1.0D); + renderer.setRenderBounds(lower, lower, 0.0D, upper, upper, 1.0D); renderer.renderStandardBlock(block, x, y, z); //Straight along Y } else if((mask & 0b110011) == 0 && mask > 0) { - renderer.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 1.0D, 0.875D); + renderer.setRenderBounds(lower, 0.0D, lower, upper, 1.0D, upper); renderer.renderStandardBlock(block, x, y, z); //Curve @@ -79,61 +102,61 @@ public class RenderBoxDuct implements ISimpleBlockRenderingHandler { renderer.uvRotateWest = 1; } - renderer.setRenderBounds(0.125D, 0.125D, 0.125D, 0.875D, 0.875D, 0.875D); + renderer.setRenderBounds(lower, lower, lower, upper, upper, upper); renderer.renderStandardBlock(block, x, y, z); if(nY) { - renderer.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 0.125D, 0.875D); + renderer.setRenderBounds(lower, 0.0D, lower, upper, lower, upper); renderer.renderStandardBlock(block, x, y, z); } if(pY) { - renderer.setRenderBounds(0.125D, 0.875D, 0.125D, 0.875D, 1.0D, 0.875D); + renderer.setRenderBounds(lower, upper, lower, upper, 1.0D, upper); renderer.renderStandardBlock(block, x, y, z); } if(nX) { - renderer.setRenderBounds(0.0D, 0.125D, 0.125D, 0.125D, 0.875D, 0.875D); + renderer.setRenderBounds(0.0D, lower, lower, lower, upper, upper); renderer.renderStandardBlock(block, x, y, z); } if(pX) { - renderer.setRenderBounds(0.875D, 0.125D, 0.125D, 1.0D, 0.875D, 0.875D); + renderer.setRenderBounds(upper, lower, lower, 1.0D, upper, upper); renderer.renderStandardBlock(block, x, y, z); } if(nZ) { - renderer.setRenderBounds(0.125D, 0.125D, 0.0D, 0.875D, 0.875D, 0.125D); + renderer.setRenderBounds(lower, lower, 0.0D, upper, upper, lower); renderer.renderStandardBlock(block, x, y, z); } if(pZ) { - renderer.setRenderBounds(0.125D, 0.125D, 0.875D, 0.875D, 0.875D, 1.0D); + renderer.setRenderBounds(lower, lower, upper, upper, upper, 1.0D); renderer.renderStandardBlock(block, x, y, z); } //Junction } else { - renderer.setRenderBounds(0.0625D, 0.0625D, 0.0625D, 0.9375D, 0.9375D, 0.9375D); + renderer.setRenderBounds(jLower, jLower, jLower, jUpper, jUpper, jUpper); renderer.renderStandardBlock(block, x, y, z); if(nY) { - renderer.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 0.0625D, 0.875D); + renderer.setRenderBounds(lower, 0.0D, lower, upper, jLower, upper); renderer.renderStandardBlock(block, x, y, z); } if(pY) { - renderer.setRenderBounds(0.125D, 0.9375D, 0.125D, 0.875D, 1.0D, 0.875D); + renderer.setRenderBounds(lower, jUpper, lower, upper, 1.0D, upper); renderer.renderStandardBlock(block, x, y, z); } if(nX) { - renderer.setRenderBounds(0.0D, 0.125D, 0.125D, 0.0625D, 0.875D, 0.875D); + renderer.setRenderBounds(0.0D, lower, lower, jLower, upper, upper); renderer.renderStandardBlock(block, x, y, z); } if(pX) { - renderer.setRenderBounds(0.9375D, 0.125D, 0.125D, 1.0D, 0.875D, 0.875D); + renderer.setRenderBounds(jUpper, lower, lower, 1.0D, upper, upper); renderer.renderStandardBlock(block, x, y, z); } if(nZ) { - renderer.setRenderBounds(0.125D, 0.125D, 0.0D, 0.875D, 0.875D, 0.0625D); + renderer.setRenderBounds(lower, lower, 0.0D, upper, upper, jLower); renderer.renderStandardBlock(block, x, y, z); } if(pZ) { - renderer.setRenderBounds(0.125D, 0.125D, 0.9375D, 0.875D, 0.875D, 1.0D); + renderer.setRenderBounds(lower, lower, jUpper, upper, upper, 1.0D); renderer.renderStandardBlock(block, x, y, z); } } diff --git a/src/main/java/com/hbm/render/block/RenderRTTY.java b/src/main/java/com/hbm/render/block/RenderRTTY.java new file mode 100644 index 000000000..24858ce6a --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderRTTY.java @@ -0,0 +1,67 @@ +package com.hbm.render.block; + +import com.hbm.blocks.network.RadioTorchBase; +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderRTTY implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + int brightness = block.getMixedBrightnessForBlock(world, x, y, z); + tessellator.setBrightness(brightness); + tessellator.setColorOpaque_F(1, 1, 1); + + IIcon icon = block.getIcon(world, x, y, z, 0); + int meta = world.getBlockMetadata(x, y, z); + + float flip = 0; + float rotation = 0; + + if(meta == 0) + flip = (float)Math.PI; + + if(meta == 2) + rotation = 90F / 180F * (float) Math.PI; + + if(meta == 3) + rotation = 270F / 180F * (float) Math.PI; + + if(meta == 4) + rotation = 180F / 180F * (float)Math.PI; + + if(rotation != 0F || meta == 5) + flip = (float)Math.PI * 0.5F; + + //using OBJ here because vanilla's block renderer is so broken it's not even funny anymore + //mojang genuinely doesn't know how on earth UVs work + tessellator.addTranslation(x + 0.5F, y + 0.5F, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.rtty, icon, tessellator, rotation, flip, false); + tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return RadioTorchBase.renderID; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index f870f9cfe..e0c215294 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -154,8 +154,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS ForgeDirection rot = dir.getRotation(ForgeDirection.UP); for(int i = -6; i <= 6; i++) { - conPos.add(new DirPos(xCoord + dir.offsetX * 7 + rot.offsetX * i, yCoord + 0, zCoord + dir.offsetX * 7 + rot.offsetZ * i, dir)); - conPos.add(new DirPos(xCoord + dir.offsetX * 7 + rot.offsetX * i, yCoord + 1, zCoord + dir.offsetX * 7 + rot.offsetZ * i, dir)); + conPos.add(new DirPos(xCoord + dir.offsetX * 7 + rot.offsetX * i, yCoord + 0, zCoord + dir.offsetZ * 7 + rot.offsetZ * i, dir)); + conPos.add(new DirPos(xCoord + dir.offsetX * 7 + rot.offsetX * i, yCoord - 1, zCoord + dir.offsetZ * 7 + rot.offsetZ * i, dir)); } } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 2d167fc91..3136a3a21 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -12,7 +12,6 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.main.ModEventHandlerImpact; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; @@ -178,7 +177,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Override public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 7aee76459..6734e3fa6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -14,14 +14,14 @@ import com.hbm.lib.Library; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; -import api.hbm.fluid.IFluidUser; +import api.hbm.fluid.IFluidStandardTransceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, IFluidSource, IFluidAcceptor, IFluidUser, IPersistentNBT { +public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT { public FluidTank tank; public short mode = 0; @@ -229,4 +229,14 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements this.tank.readFromNBT(data, "tank"); this.mode = data.getShort("mode"); } + + @Override + public FluidTank[] getSendingTanks() { + return (mode == 1 || mode == 2) ? new FluidTank[] {tank} : new FluidTank[0]; + } + + @Override + public FluidTank[] getReceivingTanks() { + return (mode == 0 || mode == 1) ? new FluidTank[] {tank} : new FluidTank[0]; + } } diff --git a/src/main/resources/assets/hbm/models/blocks/rtty.obj b/src/main/resources/assets/hbm/models/blocks/rtty.obj new file mode 100644 index 000000000..5961d712a --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/rtty.obj @@ -0,0 +1,59 @@ +# Blender v2.79 (sub 0) OBJ File: 'rtty.blend' +# www.blender.org +o Cube_Cube.001 +v -0.125000 -0.500000 0.062500 +v -0.125000 0.125000 0.062500 +v -0.125000 -0.500000 -0.062500 +v -0.125000 0.125000 -0.062500 +v 0.125000 -0.500000 0.062500 +v 0.125000 0.125000 0.062500 +v 0.125000 -0.500000 -0.062500 +v 0.125000 0.125000 -0.062500 +v -0.062500 0.062500 0.062500 +v -0.062500 0.062500 -0.062500 +v 0.062500 0.062500 0.062500 +v 0.062500 0.062500 -0.062500 +v -0.062500 -0.500000 0.125000 +v -0.062500 0.125000 0.125000 +v -0.062500 -0.500000 -0.125000 +v -0.062500 0.125000 -0.125000 +v 0.062500 -0.500000 0.125000 +v 0.062500 0.125000 0.125000 +v 0.062500 -0.500000 -0.125000 +v 0.062500 0.125000 -0.125000 +vt 0.625000 0.625000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.625000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.562500 0.562500 +vt 0.437500 0.437500 +vt 0.562500 0.437500 +vt 0.625000 0.625000 +vt 0.375000 -0.000000 +vt 0.625000 -0.000000 +vt 0.625000 0.625000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.625000 +vt 0.375000 0.625000 +vt 0.437500 0.562500 +vt 0.375000 0.625000 +vt 0.375000 0.625000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 4/1/1 7/2/1 3/3/1 +f 6/4/2 1/5/2 5/6/2 +f 10/7/3 11/8/3 12/9/3 +f 14/10/4 15/11/4 13/12/4 +f 20/13/5 17/14/5 19/15/5 +f 4/1/1 8/16/1 7/2/1 +f 6/4/2 2/17/2 1/5/2 +f 10/7/3 9/18/3 11/8/3 +f 14/10/4 16/19/4 15/11/4 +f 20/13/5 18/20/5 17/14/5 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve.png new file mode 100644 index 0000000000000000000000000000000000000000..d8115f2dbb25bf3655921ffd6a80be3815cd2b45 GIT binary patch literal 294 zcmV+>0oneEP)CKNtq)*{Gx!p2EKvYPOyeS{ zAiG&d%T^f)31*n5#|Qp9Zh5jS%hx-N-g}&LeBLM9wykRJ`yPO4njQfFP1C#t?EB8T zt|+CR0W~J)d7`z(T6+zsF%c0`N`C`hnN$G)j^nt@#~AAXdGqf`DIp?tfGd-1@KFoM zO)*Bgu45R6_YCe$@;`XGgZ#s`ZM$sF^?9BNAv_v*?+aOLjffy3<*YHrQV$_8j^hpZ s0XXL{#-NnKT1!f)jQr-tn6l3C4O~Q<3>)S3T>t<807*qoM6N<$g4|7a{{R30 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_bl.png new file mode 100644 index 0000000000000000000000000000000000000000..586ca4d1a89ac31bb467e61efda6a02c7a7e8642 GIT binary patch literal 377 zcmV-<0fzpGP)#N7_45Yqg4lD;Cobv~c(`~4nc40)cTltOEbwHD_b)>?|9z!<|g zjx z9*+R@egDyXyWIc?J|U%K97l{XY`5Ew$w9#$yj0;SZ0 zKx@rGeMFhti1Qs zbxm28e_qx*g1W9B1fdVIEL&V4_*UL~+O|aqK~+_hW%<%nRTYQBVJ2wXmMAR#+i&~= XPodfA4@>Iv00000NkvXXu0mjfAljr9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_br.png new file mode 100644 index 0000000000000000000000000000000000000000..1883702b0b8a79a4f87a1036b1a4e3102a7b7579 GIT binary patch literal 364 zcmV-y0h9iTP)By_OcRX380*q+hIb`-u*Rn<}y1)Ot8k_1r{!CDI<0yBe%kYyR1bMW5d@pvcz z&>|2*K-;!3#-Q(eF!LJIG=Z7Xw(a^BsH&=#5CYOP#a}QC140N;%d#wGSt5>OT(8$( zk#Dyf0H7>O=%#64j9H7;+EW4VJ)Cne#y}@Yg1+xJ4QEbXuNQ=;qbLG1W1i1pw7)GB#5FsHa!UxC+?89itL2?>TIY!RlNoUApJb1E@ zJtl+um(tP_P5l;u;Qe|MpDI4m_x;mai!p|;YtET$L(ihobz2|f~(RCd$M%uQ;IY(XBEXzVliDg-6nuZu7+qN;! zGv0fYwf6JmVHh}{&-|9hu7zWgJJ^wtX8GgK->p19`BL z2&V+D>$=#$Ifu$QlTyMMQ#3$0CFMvd6%7zhNl6ZeL$QI@dN+`U4Z~1m5JK1uqz6)x tcMYa#+70gaJICX(=nBGBvhi=f@da`_wzKr#6<+`V002ovPDHLkV1m@8lXU<9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_curve_tr.png new file mode 100644 index 0000000000000000000000000000000000000000..1732c7916d04a3ae3a362629dd5605762ac38586 GIT binary patch literal 395 zcmV;60d)R}P)d%_xLhs;fD8$Gy&g%D z0AQ^}YmG66vMll5)9G|rEEWK)*XtldY&M&^C1Y-C@@-(YZj|MbGcl;a)!S-@ZKZyJg2Iv pw{3i6x7%?%9&c|KHvjE6UI9@v=&$8O0$Bh6002ovPDHLkV1kM?r{Vwr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_end.png new file mode 100644 index 0000000000000000000000000000000000000000..484764a50f75e26aca4e7fad3776f17c5f309256 GIT binary patch literal 489 zcmVr z1pq<_eBUPs0=lk4N{Qn*9FIo;s;bg77G+t!!Z751zXM>~HkM_5K!4Zqa=Fm9Elc0` z$@3h5D2j-ph|Ok09LFR{!gjl5x7)Gb?@7~?G)+-TQ4|Hf@3Zne4wg+oLcE_ z&jqGs55vIo`7{DbDS{wCO36}6N!N960(0^_yHd*7yVS#BS=QG(&$DX*Jy0t>B=hXw z$p5V%%Q9o*^v-kgRN!zp{Hs6+!Fs*Mwr%6{l<*AzQc6~R-_tY=aU65I-B3!IpOjJ` z(B!JB==+|9UW%WepI4se2qB2$_+y#6t|QAbgb*}M!|8N--^R9Wsp}fg^LRWSNGT1p fQ*~XNcYS^VnJ{cifgVU@00000NkvXXu0mjfJ+0pC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_junction.png new file mode 100644 index 0000000000000000000000000000000000000000..36e78e7129302fd1600cb151bb34d20705f5eb52 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfs~3%Y7v!>&5I@%Irc~3XL_LD;nK08rV8cyqUuNF6`H(>xGwIv72|Mo;0pH zXz^jO#N)NAIylx}K2z|0`^{~+3>*xx*YBoe%zG}7)bqVi#^*B20gJx=Wr-3DFMiM4 zwN5iswBfVO&F^zpt&(HDB-^kmsEdQ)^{#)JY&W*`zTU+kAlT(HK{<4(2aDw|p2nG} z>@y@=cc-)O_-(JCA?%oSW0Ow*vSpbK@6~2WrYd>xdaM5QUGH1+o!=%ns_6bt?wk4T V@6>r6Y*7FJ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_white_straight.png new file mode 100644 index 0000000000000000000000000000000000000000..636913932e460ee4c37a8e5e3a141b981a1f4f52 GIT binary patch literal 294 zcmV+>0oneEP)FB z>0Wa9IB_do0sACtWPjrq%{=&~@B5dO5+MZFYOTdNcdK33Jph7JkmosV+XA4JLP|*- z#~5R<))GY#P167{48!^DN04P1%d()9qN*z5I3`IFgb)~G2*c3lX_|V$lM7mF%Ch7g zT5EzJ`1SUD)BA5ef{y?$qYO~jH30KG|Ji)z<2c?0`@Z{GFNy-^9L_nvOvV_WAIEVQ sY}>{(O$Z@a*A;86Kj#`x)8y|bUo}E`mRW~5H~;_u07*qoM6N<$f=QBiX8-^I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_rec_off.png b/src/main/resources/assets/hbm/textures/blocks/rtty_rec_off.png index 6e823d5f09cfbe9c4c5d331df92667b5ed719eb1..23c33d6a551b98bb22668d0dab15c1234bb6f965 100644 GIT binary patch delta 145 zcmV;C0B--S0=)r{G=FqSL_t(IjqQ-J5yK!51Q&(m>Veb=y-}H40aYMtTmUmhoC3#2 zGp|H}FZ$qb@9*KSn`__DzM;|1G%|nY2kZ2mP3cWfNjkmaH{^xhi_r{_Qc{f3_5%R# zJ-zo~$PiF#rL|@Ulu~fc*#RMhYZY?NrxgxR$vJNEO=n*K015yANkvXXu0mjfH}FB{ delta 257 zcmV+c0sj8I0j&a%G=JntL_t(Ijir(?N`x^Gg{MNht|4Bj=0|0-STGwR+}R6u0F;n)>;q|LlIY3 z>nh8#%zvWy9%Br3i3(_~q4z!yD5by{GY??q|5eC2|5@P|nR{W5qS%*~00000NkvXX Hu0mjfs&02P diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_rec_on.png b/src/main/resources/assets/hbm/textures/blocks/rtty_rec_on.png index 3dd5d38c5f057850c9291aa281b09a8f7ae2d273..aa3cf9116700545f130e7d034e0e4ca45f0f5676 100644 GIT binary patch delta 127 zcmV-_0D%9S0;~a$G>wX3Fy5u#_$7LYlIN| hfRxhSg<9+Dg$LchH4BlhWySyi002ovPDHLkV1i_zH$DIW delta 239 zcmVY5l$U`aA>#^T!urJ zV7LmTMuY;L*3sciALNM!c6iIM3k#)`H0P|VjI4&%T4Ic=$QmFblv4Hqs!9l9A7HJ; zIkyiG5n5|Yz)}y;2Q05(a?ToKq?AGk0p}d8H9l@PqyXPA-)P|FIGA%X#=sc!=Tk~* ztwlsoRi6Imen<2Zcx4*H`+4HMr}s{+mFLpS3SSo$mO9Th%x@JLMi34!Y{6zTDsi|2QB~r002ovPDHLkV1me5Y>NN@ diff --git a/src/main/resources/assets/hbm/textures/blocks/rtty_sender_off.png b/src/main/resources/assets/hbm/textures/blocks/rtty_sender_off.png index 6019674bec80fa38f660492e91d581b504876919..7caf9ecb7c4d6344ee25d7fc2826612a5caf0580 100644 GIT binary patch delta 147 zcmV;E0Brxc0>1%}G=FwUL_t(IjqQ=E5yLPLM4t@B-GgX|dQ(+~u0^RJ@uUFFMA8}r z=R9*LAd3#%zP%6p_2U``8V9m^7R&rzZ#mxmn)bWpbh&AClgsWnqnjT3k(1N002ovPDHLkV1gs8 BKU4q! delta 270 zcmV+p0rCF70l5N@G=K0(L_t(Ijir+@O2t4FMb8XV4AY7rZeXShHUaB27UEuh83<_c z(dB$F3z2k*WCMQvZ5VJe;|^XR-u6Atkrjt4Nja(nea{#GU;k z&DqM$f$plHeB)z-h@P+|ODatvUg3TJn7+GtXOH4uUoiT=A&{`ve i;1{HnZeK8Y(!vFxP%}5+8eeJv0000VThQ2I|3J~=uLP|+BQ31VoLI~#p z)>@o%=K&%@DMbaSI$mhO9MC_Pg_IH@1e|k}Qn=o3NCJMLU2x!S9BHjlYsDBtYmKjM z!~Ov4x*{Sx9uKUwhzM7J@D1SuE{18E@ZPiUJ2_`!jJ$8#^9c9<3~8R{K91x0A$jj< xt*Is|VBdFYt>*zbXN)oD0Wrp>5mdd>!XFCrSwIA-)(QXs002ovPDHLkV1jGnZg~Iz