From 6304df71dd789694f10b9d0420df8c88b3394948 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 8 Oct 2025 16:58:32 +0200 Subject: [PATCH] more plumbing, get your free toilet now --- .../hbm/blocks/network/FluidPipeAnchor.java | 35 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 1 - src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 11 +- .../render/tileentity/RenderPipeAnchor.java | 120 ++++ .../assets/hbm/models/network/pipe_anchor.obj | 636 +++++++++--------- ...ammo_standard.capacitor_blacklightning.png | Bin 249 -> 0 bytes 7 files changed, 476 insertions(+), 328 deletions(-) create mode 100644 src/main/java/com/hbm/render/tileentity/RenderPipeAnchor.java delete mode 100644 src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_blacklightning.png diff --git a/src/main/java/com/hbm/blocks/network/FluidPipeAnchor.java b/src/main/java/com/hbm/blocks/network/FluidPipeAnchor.java index d99a57e8b..1dbf4edf6 100644 --- a/src/main/java/com/hbm/blocks/network/FluidPipeAnchor.java +++ b/src/main/java/com/hbm/blocks/network/FluidPipeAnchor.java @@ -3,10 +3,11 @@ package com.hbm.blocks.network; import java.util.List; import com.hbm.blocks.ITooltipProvider; +import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.Library; import com.hbm.tileentity.network.TileEntityPipeAnchor; -import net.minecraft.block.BlockContainer; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -17,7 +18,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class FluidPipeAnchor extends BlockContainer implements ITooltipProvider { +public class FluidPipeAnchor extends FluidDuctBase implements ITooltipProvider { public FluidPipeAnchor() { super(Material.iron); @@ -51,8 +52,8 @@ public class FluidPipeAnchor extends BlockContainer implements ITooltipProvider private void setBlockBounds(int meta) { float pixel = 0.0625F; - float min = pixel * 5F; - float max = pixel * 11F; + float min = pixel * 4F; + float max = pixel * 12F; ForgeDirection dir = ForgeDirection.getOrientation(meta).getOpposite(); @@ -71,4 +72,30 @@ public class FluidPipeAnchor extends BlockContainer implements ITooltipProvider list.add(EnumChatFormatting.GOLD + "Connection Type: " + EnumChatFormatting.YELLOW + "Single"); list.add(EnumChatFormatting.GOLD + "Connection Range: " + EnumChatFormatting.YELLOW + "10m"); } + + @Override // didn't think this was overridable, that makes everything so much easier. good job martin + public void changeTypeRecursively(World world, int x, int y, int z, FluidType prevType, FluidType type, int loopsRemaining) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityPipeAnchor) { + TileEntityPipeAnchor pipe = (TileEntityPipeAnchor) te; + + if(pipe.getType() == prevType && pipe.getType() != type) { + pipe.setType(type); + + if(loopsRemaining > 0) { + ForgeDirection dir = ForgeDirection.getOrientation(pipe.getBlockMetadata()).getOpposite(); + Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); + + if(b instanceof IBlockFluidDuct) ((IBlockFluidDuct) b).changeTypeRecursively(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, prevType, type, loopsRemaining - 1); + + for(int[] pos : pipe.getConnected()) { + Block c = world.getBlock(pos[0], pos[1], pos[2]); + if(c instanceof IBlockFluidDuct) ((IBlockFluidDuct) c).changeTypeRecursively(world, pos[0], pos[1], pos[2], prevType, type, loopsRemaining - 1); + } + } + } + } + } } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index b5dac1bcd..1eb4db97b 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -24,7 +24,6 @@ import com.hbm.world.feature.BedrockOre.BedrockOreDefinition; import com.hbm.world.generator.CellularDungeonFactory; import com.hbm.world.generator.DungeonToolbox; import cpw.mods.fml.common.IWorldGenerator; -import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityChest; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a876e05cb..f12e1af29 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -386,6 +386,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonLarge.class, new RenderPylonLarge()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySubstation.class, new RenderSubstation()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPipeAnchor.class, new RenderPipeAnchor()); //chargers ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCharger.class, new RenderCharger()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRefueler.class, new RenderRefueler()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index d4331bbb5..fc422c215 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -388,15 +388,13 @@ public class ResourceManager { public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")).asVBO(); public static final IModelCustom zirnox_destroyed = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox_destroyed.obj")).asVBO(); - //Belt - public static final IModelCustom arrow = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/arrow.obj")); - //Network public static final IModelCustom connector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/connector.obj")); public static final IModelCustom pylon_medium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_medium.obj")); public static final IModelCustom pylon_large = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/network/pylon_large.obj")); - public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")); - public static final IModelCustom fluid_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/fluid_diode.obj")); + public static final IModelCustom substation = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/substation.obj")).asVBO(); + public static final IModelCustom pipe_anchor = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/pipe_anchor.obj")).asVBO(); + public static final IModelCustom fluid_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/network/fluid_diode.obj")).asVBO(); //Radiolysis public static final IModelCustom radiolysis = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/radiolysis.obj")); @@ -831,6 +829,9 @@ public class ResourceManager { public static final ResourceLocation substation_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/substation.png"); public static final ResourceLocation wire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire.png"); public static final ResourceLocation wire_greyscale_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/wire_greyscale.png"); + + //Pipes + public static final ResourceLocation pipe_anchor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/pipe_anchor.png"); public static final ResourceLocation fluid_pump_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/fluid_diode.png"); //Radiolysis diff --git a/src/main/java/com/hbm/render/tileentity/RenderPipeAnchor.java b/src/main/java/com/hbm/render/tileentity/RenderPipeAnchor.java new file mode 100644 index 000000000..fff66bed3 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPipeAnchor.java @@ -0,0 +1,120 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.network.TileEntityPipeAnchor; +import com.hbm.util.ColorUtil; +import com.hbm.util.Compat; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPipeAnchor extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 0.5D, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + GL11.glPushMatrix(); + switch(te.getBlockMetadata()) { + case 0: GL11.glRotated(180, 1, 0, 0); break; + case 1: break; + case 2: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(180, 0, 0, 1); break; + case 3: GL11.glRotated(90, 1, 0, 0); break; + case 4: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(90, 0, 0, 1); break; + case 5: GL11.glRotated(90, 1, 0, 0); GL11.glRotated(270, 0, 0, 1); break; + } + + GL11.glTranslated(0, -0.5F, 0); + bindTexture(ResourceManager.pipe_anchor_tex); + ResourceManager.pipe_anchor.renderPart("Anchor"); + GL11.glPopMatrix(); + + TileEntityPipeAnchor anchor = (TileEntityPipeAnchor) te; + + for(int[] pos : anchor.getConnected()) { + TileEntity tile = Compat.getTileStandard(te.getWorldObj(), pos[0], pos[1], pos[2]); + if(tile instanceof TileEntityPipeAnchor) { + TileEntityPipeAnchor other = (TileEntityPipeAnchor) tile; + if(anchor.getType() != other.getType()) continue; + Vec3 anchorPoint = anchor.getConnectionPoint(); + Vec3 connectionPoint = other.getConnectionPoint(); + + if(isDominant(anchorPoint, connectionPoint)) { + double dX = connectionPoint.xCoord - anchorPoint.xCoord; + double dY = connectionPoint.yCoord - anchorPoint.yCoord; + double dZ = connectionPoint.zCoord - anchorPoint.zCoord; + + double hyp = Math.sqrt(dX * dX + dZ * dZ); + double yaw = Math.toDegrees(Math.atan2(dX, dZ)); + double pitch = Math.toDegrees(Math.atan2(dY, hyp)); + double length = Math.sqrt(dX * dX + dY * dY + dZ * dZ); + + GL11.glPushMatrix(); + GL11.glRotated(yaw, 0, 1, 0); + GL11.glRotated(90 - pitch, 1, 0, 0); + + GL11.glPushMatrix(); + GL11.glScaled(1, length, 1); + GL11.glTranslated(0, -0.5, 0); + int color = ColorUtil.lightenColor(anchor.getType().getColor(), 0.25D); + GL11.glColor3f(ColorUtil.fr(color), ColorUtil.fg(color), ColorUtil.fb(color)); + ResourceManager.pipe_anchor.renderPart("Pipe"); + GL11.glColor3f(1F, 1F, 1F); + GL11.glPopMatrix(); + + GL11.glPushMatrix(); + GL11.glTranslated(0, length / 2D - 1.5, 0); + ResourceManager.pipe_anchor.renderPart("Ring"); + GL11.glPopMatrix(); + + GL11.glPopMatrix(); + } + } + } + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + /** Determines the "dominant" anchor, i.e. the one that should render the pipe (instead of rendering two half segments, gives marginally better performance) */ + public static boolean isDominant(Vec3 first, Vec3 second) { + if(first.xCoord < second.xCoord) return true; + if(first.xCoord > second.xCoord) return false; + if(first.yCoord < second.yCoord) return true; + if(first.yCoord > second.yCoord) return false; + if(first.zCoord < second.zCoord) return true; + if(first.zCoord > second.zCoord) return false; + return false; // exact same pos? no need to render anything + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.pipe_anchor); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + double scale = 5; + GL11.glScaled(scale, scale, scale); + } + public void renderCommon() { + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.pipe_anchor_tex); + ResourceManager.pipe_anchor.renderPart("Anchor"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/resources/assets/hbm/models/network/pipe_anchor.obj b/src/main/resources/assets/hbm/models/network/pipe_anchor.obj index ce47e78e9..9c57bec82 100644 --- a/src/main/resources/assets/hbm/models/network/pipe_anchor.obj +++ b/src/main/resources/assets/hbm/models/network/pipe_anchor.obj @@ -1,264 +1,46 @@ -# Blender v2.79 (sub 0) OBJ File: 'pipe_anchor.blend' +# Blender v2.79 (sub 0) OBJ File: '' # www.blender.org -o Pipe -v -0.000000 0.500000 -0.187500 -v -0.000000 1.500000 -0.187500 -v 0.132583 0.500000 -0.132583 -v 0.132583 1.500000 -0.132583 -v 0.187500 0.500000 0.000000 -v 0.187500 1.500000 0.000000 -v 0.132583 0.500000 0.132583 -v 0.132583 1.500000 0.132583 -v -0.000000 0.500000 0.187500 -v -0.000000 1.500000 0.187500 -v -0.132583 0.500000 0.132583 -v -0.132583 1.500000 0.132583 -v -0.187500 0.500000 -0.000000 -v -0.187500 1.500000 -0.000000 -v -0.132583 0.500000 -0.132583 -v -0.132583 1.500000 -0.132583 -vt 0.812500 0.062500 -vt 0.625000 -0.000000 -vt 0.812500 -0.000000 -vt 1.000000 0.062500 -vt 0.812500 -0.000000 -vt 1.000000 -0.000000 -vt 0.812500 0.062500 -vt 0.625000 -0.000000 -vt 1.000000 0.062500 -vt 0.812500 -0.000000 -vt 1.000000 -0.000000 -vt 0.812500 0.062500 -vt 0.625000 -0.000000 -vt 1.000000 0.062500 -vt 0.812500 0.000000 -vt 1.000000 -0.000000 -vt 0.812500 0.062500 -vt 0.625000 0.000000 -vt 1.000000 0.062500 -vt 1.000000 -0.000000 -vt 0.625000 0.062500 -vt 0.625000 0.062500 -vt 0.625000 0.062500 -vt 0.625000 0.062500 -vn 0.3827 0.0000 -0.9239 -vn 0.9239 0.0000 -0.3827 -vn 0.9239 0.0000 0.3827 -vn 0.3827 0.0000 0.9239 -vn -0.3827 0.0000 0.9239 -vn -0.9239 0.0000 0.3827 -vn -0.9239 0.0000 -0.3827 -vn -0.3827 0.0000 -0.9239 -s off -f 2/1/1 3/2/1 1/3/1 -f 4/4/2 5/5/2 3/6/2 -f 6/7/3 7/8/3 5/5/3 -f 8/9/4 9/10/4 7/11/4 -f 10/12/5 11/13/5 9/10/5 -f 12/14/6 13/15/6 11/16/6 -f 14/17/7 15/18/7 13/15/7 -f 16/19/8 1/3/8 15/20/8 -f 2/1/1 4/21/1 3/2/1 -f 4/4/2 6/7/2 5/5/2 -f 6/7/3 8/22/3 7/8/3 -f 8/9/4 10/12/4 9/10/4 -f 10/12/5 12/23/5 11/13/5 -f 12/14/6 14/17/6 13/15/6 -f 14/17/7 16/24/7 15/18/7 -f 16/19/8 2/1/8 1/3/8 -o Ring -v -0.000000 1.562500 -0.187500 -v 0.132583 1.562500 -0.132583 -v 0.187500 1.562500 0.000000 -v 0.132583 1.562500 0.132583 -v -0.000000 1.562500 0.187500 -v -0.132583 1.562500 0.132583 -v -0.187500 1.562500 -0.000000 -v -0.132583 1.562500 -0.132583 -v -0.132583 1.437500 -0.132583 -v -0.187500 1.437500 -0.000000 -v -0.132583 1.437500 0.132583 -v -0.000000 1.437500 0.187500 -v 0.132583 1.437500 0.132583 -v 0.187500 1.437500 0.000000 -v 0.132583 1.437500 -0.132583 -v -0.000000 1.437500 -0.187500 -v -0.000000 1.562500 -0.210938 -v 0.149155 1.562500 -0.149155 -v 0.210937 1.562500 0.000000 -v 0.149155 1.562500 0.149155 -v -0.000000 1.562500 0.210938 -v -0.149155 1.562500 0.149155 -v -0.210938 1.562500 -0.000000 -v -0.149155 1.562500 -0.149155 -v -0.149155 1.437500 -0.149155 -v -0.210938 1.437500 -0.000000 -v -0.149155 1.437500 0.149155 -v -0.000000 1.437500 0.210938 -v 0.149155 1.437500 0.149155 -v 0.210937 1.437500 0.000000 -v 0.149155 1.437500 -0.149155 -v -0.000000 1.437500 -0.210938 -vt 1.000000 0.062500 -vt 0.812500 0.125000 -vt 0.812500 0.062500 -vt 0.625000 0.062500 -vt 1.000000 0.125000 -vt 0.812500 0.062500 -vt 1.000000 0.062500 -vt 0.812500 0.125000 -vt 0.625000 0.062500 -vt 1.000000 0.062500 -vt 0.812500 0.125000 -vt 0.812500 0.062500 -vt 0.625000 0.062500 -vt 1.000000 0.062500 -vt 0.812500 0.125000 -vt 0.812500 0.062500 -vt 0.625000 0.062500 -vt 1.000000 0.062500 -vt 0.812500 0.125000 -vt 0.812500 0.062500 -vt 0.625000 0.062500 -vt 1.000000 0.125000 -vt 0.812500 0.062500 -vt 1.000000 0.062500 -vt 0.812500 0.125000 -vt 0.625000 0.062500 -vt 1.000000 0.125000 -vt 0.812500 0.062500 -vt 1.000000 0.062500 -vt 0.812500 0.125000 -vt 0.625000 0.062500 -vt 1.000000 0.125000 -vt 0.812500 0.062500 -vt 1.000000 0.062500 -vt 0.625000 0.125000 -vt 0.625000 0.062500 -vt 0.812500 0.125000 -vt 1.000000 0.125000 -vt 0.812500 0.125000 -vt 1.000000 0.125000 -vt 0.812500 0.125000 -vt 1.000000 0.125000 -vt 0.625000 0.125000 -vt 0.625000 0.125000 -vt 0.625000 0.125000 -vt 0.625000 0.125000 -vt 0.812500 0.125000 -vt 1.000000 0.125000 -vt 1.000000 0.125000 -vt 0.625000 0.125000 -vt 0.625000 0.125000 -vt 1.000000 0.125000 -vt 0.625000 0.125000 -vt 1.000000 0.125000 -vt 0.625000 0.125000 -vt 1.000000 0.125000 -vt 0.625000 0.125000 -vt 0.625000 0.125000 -vt 0.625000 0.125000 -vt 0.812500 0.125000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn 0.9239 0.0000 -0.3827 -vn -0.3827 0.0000 -0.9239 -vn -0.9239 0.0000 0.3827 -vn 0.9239 0.0000 0.3827 -vn 0.3827 0.0000 -0.9239 -vn -0.9239 0.0000 -0.3827 -vn -0.3827 0.0000 0.9239 -vn 0.3827 0.0000 0.9239 -s off -f 45/25/9 28/26/9 44/27/9 -f 28/26/9 43/28/9 44/27/9 -f 27/29/9 42/30/9 43/31/9 -f 26/32/9 41/33/9 42/30/9 -f 41/34/9 32/35/9 48/36/9 -f 32/35/9 47/37/9 48/36/9 -f 47/38/9 30/39/9 46/40/9 -f 30/39/9 45/41/9 46/40/9 -f 36/42/10 19/43/10 35/44/10 -f 19/43/10 34/45/10 35/44/10 -f 18/46/10 33/47/10 34/48/10 -f 17/49/10 40/50/10 33/47/10 -f 24/51/10 39/52/10 40/53/10 -f 23/54/10 38/55/10 39/52/10 -f 22/56/10 37/57/10 38/58/10 -f 37/57/10 20/59/10 36/60/10 -f 42/61/11 38/58/11 43/62/11 -f 44/63/12 36/42/12 45/64/12 -f 46/65/13 34/48/13 47/66/13 -f 41/67/14 39/52/14 42/61/14 -f 43/68/15 37/57/15 44/63/15 -f 45/69/16 35/44/16 46/65/16 -f 47/70/17 33/47/17 48/71/17 -f 48/71/18 40/53/18 41/72/18 -f 45/25/9 29/73/9 28/26/9 -f 28/26/9 27/74/9 43/28/9 -f 27/29/9 26/32/9 42/30/9 -f 26/32/9 25/75/9 41/33/9 -f 41/34/9 25/76/9 32/35/9 -f 32/35/9 31/77/9 47/37/9 -f 47/38/9 31/78/9 30/39/9 -f 30/39/9 29/79/9 45/41/9 -f 36/42/10 20/80/10 19/43/10 -f 19/43/10 18/81/10 34/45/10 -f 18/46/10 17/49/10 33/47/10 -f 17/49/10 24/82/10 40/50/10 -f 24/51/10 23/54/10 39/52/10 -f 23/54/10 22/83/10 38/55/10 -f 22/56/10 21/84/10 37/57/10 -f 37/57/10 21/84/10 20/59/10 -f 42/61/11 39/52/11 38/58/11 -f 44/63/12 37/57/12 36/42/12 -f 46/65/13 35/44/13 34/48/13 -f 41/67/14 40/50/14 39/52/14 -f 43/68/15 38/55/15 37/57/15 -f 45/69/16 36/60/16 35/44/16 -f 47/70/17 34/45/17 33/47/17 -f 48/71/18 33/47/18 40/53/18 o Anchor -v -0.187500 0.250000 0.187500 +v 0.187500 0.687500 0.250000 v -0.187500 0.312500 0.250000 +v 0.187500 0.312500 0.250000 +v 0.250000 0.687500 -0.187500 +v 0.250000 0.312500 0.187500 +v 0.250000 0.312500 -0.187500 +v -0.187500 0.750000 -0.187500 +v 0.187500 0.750000 0.187500 +v 0.187500 0.750000 -0.187500 +v -0.250000 0.687500 0.187500 +v -0.250000 0.312500 -0.187500 v -0.250000 0.312500 0.187500 +v -0.187500 0.687500 -0.250000 +v 0.187500 0.312500 -0.250000 +v -0.187500 0.312500 -0.250000 +v -0.187500 0.250000 0.187500 v -0.187500 0.687500 0.250000 v -0.187500 0.750000 0.187500 -v -0.250000 0.687500 0.187500 v -0.187500 0.250000 -0.187500 -v -0.250000 0.312500 -0.187500 -v -0.187500 0.312500 -0.250000 -v -0.187500 0.750000 -0.187500 -v -0.187500 0.687500 -0.250000 v -0.250000 0.687500 -0.187500 v 0.187500 0.250000 0.187500 -v 0.250000 0.312500 0.187500 -v 0.187500 0.312500 0.250000 -v 0.187500 0.750000 0.187500 -v 0.187500 0.687500 0.250000 v 0.250000 0.687500 0.187500 v 0.187500 0.250000 -0.187500 -v 0.187500 0.312500 -0.250000 -v 0.250000 0.312500 -0.187500 -v 0.187500 0.750000 -0.187500 -v 0.250000 0.687500 -0.187500 v 0.187500 0.687500 -0.250000 -v -0.187500 0.062500 -0.187500 -v 0.187500 0.062500 -0.187500 -v 0.187500 0.062500 0.187500 -v -0.187500 0.062500 0.187500 v 0.187500 0.000000 -0.187500 -v 0.187500 0.000000 0.187500 +v 0.187500 0.062500 0.187500 +v 0.187500 -0.000000 0.187500 +v -0.187500 -0.000000 0.187500 +v -0.187500 0.062500 -0.187500 v -0.187500 0.000000 -0.187500 -v -0.187500 0.000000 0.187500 -v -0.125000 0.062500 0.125000 +v -0.187500 0.062500 0.187500 +v 0.187500 0.062500 -0.187500 +v 0.125000 0.062500 -0.125000 +v 0.125000 0.250000 0.125000 v 0.125000 0.062500 0.125000 v -0.125000 0.062500 -0.125000 -v 0.125000 0.062500 -0.125000 +v -0.125000 0.062500 0.125000 v -0.125000 0.250000 -0.125000 -v -0.125000 0.250000 0.125000 -v 0.125000 0.250000 0.125000 v 0.125000 0.250000 -0.125000 +v -0.125000 0.250000 0.125000 vt 0.937500 0.937500 vt 0.562500 0.562500 vt 0.937500 0.562500 @@ -351,10 +133,10 @@ vt 0.312500 0.687500 vt 0.312500 0.687500 vt 0.312500 0.687500 vt 0.312500 0.687500 -vn 0.0000 0.0000 1.0000 +vn 0.0000 -0.0000 1.0000 vn 1.0000 0.0000 0.0000 vn 0.0000 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 vn 0.0000 0.0000 -1.0000 vn -0.5774 -0.5774 0.5774 vn -0.5774 0.5774 0.5774 @@ -365,7 +147,7 @@ vn 0.5774 0.5774 0.5774 vn 0.5774 -0.5774 -0.5774 vn 0.5774 0.5774 -0.5774 vn -0.7071 -0.7071 0.0000 -vn -0.7071 0.0000 0.7071 +vn -0.7071 -0.0000 0.7071 vn -0.7071 0.7071 0.0000 vn -0.7071 0.0000 -0.7071 vn 0.0000 -0.7071 -0.7071 @@ -373,78 +155,296 @@ vn 0.0000 0.7071 -0.7071 vn 0.7071 0.0000 -0.7071 vn 0.7071 -0.7071 0.0000 vn 0.7071 0.7071 0.0000 -vn 0.7071 0.0000 0.7071 +vn 0.7071 -0.0000 0.7071 vn 0.0000 -0.7071 0.7071 vn 0.0000 0.7071 0.7071 +vn 0.0000 -1.0000 -0.0000 +s 1 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 7/7/3 8/8/3 9/9/3 +f 10/10/4 11/11/4 12/12/4 +f 13/13/5 14/14/5 15/15/5 +f 16/16/6 2/17/6 12/18/6 +f 17/19/7 18/20/7 10/10/7 +f 19/21/8 11/22/8 15/23/8 +f 7/24/9 13/13/9 20/25/9 +f 21/26/10 5/27/10 3/28/10 +f 8/29/11 1/1/11 22/30/11 +f 23/31/12 14/32/12 6/33/12 +f 9/34/13 4/4/13 24/35/13 +f 16/16/14 11/36/14 19/37/14 +f 17/19/15 12/12/15 2/38/15 +f 7/39/16 10/10/16 18/20/16 +f 15/15/17 20/25/17 13/13/17 +f 19/21/18 14/40/18 23/41/18 +f 9/42/19 13/13/19 7/24/19 +f 6/6/20 24/35/20 4/4/20 +f 23/31/21 5/43/21 21/44/21 +f 8/45/22 4/4/22 9/34/22 +f 3/3/23 22/30/23 1/1/23 +f 21/26/24 2/46/24 16/47/24 +f 18/48/25 1/1/25 8/29/25 +f 23/31/26 16/49/26 19/50/26 +f 25/51/2 26/52/2 27/53/2 +f 28/54/4 29/55/4 30/56/4 +f 27/57/1 31/58/1 28/59/1 +f 30/60/5 32/61/5 25/62/5 +f 33/63/3 26/52/3 32/64/3 +f 25/51/26 28/65/26 30/66/26 +f 33/63/2 34/67/2 35/68/2 +f 36/69/3 32/61/3 29/70/3 +f 37/71/3 29/55/3 31/72/3 +f 35/73/3 31/58/3 26/74/3 +f 37/71/4 38/75/4 36/76/4 +f 36/69/5 39/77/5 33/78/5 +f 35/73/1 40/79/1 37/80/1 +f 1/1/1 17/81/1 2/2/1 +f 4/4/2 22/82/2 5/5/2 +f 7/7/3 18/83/3 8/8/3 +f 10/10/4 20/84/4 11/11/4 +f 13/13/5 24/85/5 14/14/5 +f 16/16/14 12/18/14 11/36/14 +f 17/19/15 10/10/15 12/12/15 +f 7/39/16 20/84/16 10/10/16 +f 15/15/17 11/86/17 20/25/17 +f 19/21/18 15/23/18 14/40/18 +f 9/42/19 24/85/19 13/13/19 +f 6/6/20 14/87/20 24/35/20 +f 23/31/21 6/33/21 5/43/21 +f 8/45/22 22/82/22 4/4/22 +f 3/3/23 5/88/23 22/30/23 +f 21/26/24 3/28/24 2/46/24 +f 18/48/25 17/81/25 1/1/25 +f 23/31/26 21/44/26 16/49/26 +f 25/51/2 32/64/2 26/52/2 +f 28/54/4 31/72/4 29/55/4 +f 27/57/1 26/74/1 31/58/1 +f 30/60/5 29/70/5 32/61/5 +f 33/63/3 35/68/3 26/52/3 +f 25/51/26 27/53/26 28/65/26 +f 33/63/2 39/89/2 34/67/2 +f 36/69/3 33/78/3 32/61/3 +f 37/71/3 36/76/3 29/55/3 +f 35/73/3 37/80/3 31/58/3 +f 37/71/4 40/90/4 38/75/4 +f 36/69/5 38/91/5 39/77/5 +f 35/73/1 34/92/1 40/79/1 +o Ring +v 0.149155 1.437500 0.149155 +v 0.000000 1.437500 0.187500 +v 0.000000 1.437500 0.210938 +v -0.149155 1.437500 0.149155 +v -0.132583 1.437500 0.132583 +v -0.210938 1.437500 0.000000 +v -0.187500 1.437500 0.000000 +v -0.149155 1.437500 -0.149155 +v 0.000000 1.437500 -0.187500 +v 0.000000 1.437500 -0.210938 +v 0.149155 1.437500 -0.149155 +v 0.187500 1.437500 0.000000 +v 0.210937 1.437500 0.000000 +v 0.149155 1.562500 0.149155 +v 0.187500 1.562500 0.000000 +v 0.210937 1.562500 0.000000 +v 0.149155 1.562500 -0.149155 +v 0.132583 1.562500 -0.132583 +v 0.000000 1.562500 -0.210938 +v 0.000000 1.562500 -0.187500 +v -0.149155 1.562500 -0.149155 +v -0.132583 1.562500 -0.132583 +v -0.210938 1.562500 0.000000 +v -0.187500 1.562500 0.000000 +v -0.149155 1.562500 0.149155 +v -0.132583 1.562500 0.132583 +v 0.000000 1.562500 0.210938 +v 0.132583 1.562500 0.132583 +v 0.132583 1.437500 0.132583 +v -0.132583 1.437500 -0.132583 +v 0.132583 1.437500 -0.132583 +v 0.000000 1.562500 0.187500 +vt 0.812500 0.125000 +vt 1.000000 0.062500 +vt 0.812500 0.062500 +vt 1.000000 0.125000 +vt 0.812500 0.062500 +vt 0.812500 0.125000 +vt 0.812500 0.125000 +vt 1.000000 0.062500 +vt 0.812500 0.062500 +vt 0.812500 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.062500 +vt 0.812500 0.125000 +vt 0.812500 0.062500 +vt 0.812500 0.125000 +vt 1.000000 0.062500 +vt 0.812500 0.062500 +vt 0.625000 0.125000 +vt 0.812500 0.062500 +vt 0.625000 0.062500 +vt 0.625000 0.062500 +vt 0.625000 0.125000 +vt 0.625000 0.062500 +vt 1.000000 0.125000 +vt 0.812500 0.125000 +vt 0.625000 0.062500 +vt 0.812500 0.125000 +vt 0.812500 0.062500 +vt 1.000000 0.062500 +vt 0.625000 0.062500 +vt 1.000000 0.062500 +vt 0.812500 0.125000 +vt 0.812500 0.125000 +vt 0.812500 0.125000 +vt 0.812500 0.125000 +vt 0.812500 0.062500 +vt 1.000000 0.062500 +vt 1.000000 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.062500 +vt 1.000000 0.125000 +vt 1.000000 0.125000 +vt 1.000000 0.062500 +vt 1.000000 0.125000 +vt 0.625000 0.125000 +vt 0.625000 0.125000 +vt 1.000000 0.125000 +vt 0.625000 0.125000 +vt 0.625000 0.125000 +vt 1.000000 0.125000 +vt 0.625000 0.125000 +vt 1.000000 0.125000 +vt 0.625000 0.125000 +vt 0.625000 0.125000 +vt 0.625000 0.125000 +vt 0.625000 0.125000 +vt 1.000000 0.125000 +vn 0.0000 1.0000 0.0000 vn 0.0000 -1.0000 0.0000 -s off -f 65/85/19 50/86/19 63/87/19 -f 71/88/20 62/89/20 69/90/20 -f 58/91/21 64/92/21 70/93/21 -f 54/94/22 56/95/22 51/96/22 -f 59/97/23 68/98/23 57/99/23 -f 49/100/24 50/101/24 51/102/24 -f 52/103/25 53/104/25 54/94/25 -f 55/105/26 56/106/26 57/107/26 -f 58/108/27 59/97/27 60/109/27 -f 61/110/28 62/111/28 63/112/28 -f 64/113/29 65/85/29 66/114/29 -f 67/115/30 68/116/30 69/117/30 -f 70/118/31 71/88/31 72/119/31 -f 49/100/32 56/120/32 55/121/32 -f 52/103/33 51/96/33 50/122/33 -f 58/123/34 54/94/34 53/104/34 -f 57/99/35 60/109/35 59/97/35 -f 55/105/36 68/124/36 67/125/36 -f 70/126/37 59/97/37 58/108/37 -f 69/90/38 72/119/38 71/88/38 -f 67/115/39 62/127/39 61/128/39 -f 64/129/40 71/88/40 70/118/40 -f 63/87/41 66/114/41 65/85/41 -f 61/110/42 50/130/42 49/131/42 -f 53/132/43 65/85/43 64/113/43 -f 67/115/44 49/133/44 55/134/44 -f 77/135/20 75/136/20 78/137/20 -f 80/138/22 73/139/22 79/140/22 -f 78/141/19 76/142/19 80/143/19 -f 79/144/23 74/145/23 77/146/23 -f 84/147/21 75/136/21 74/148/21 -f 77/135/44 80/149/44 79/150/44 -f 84/147/20 87/151/20 82/152/20 -f 83/153/21 74/145/21 73/154/21 -f 81/155/21 73/139/21 76/156/21 -f 82/157/21 76/142/21 75/158/21 -f 81/155/22 85/159/22 83/160/22 -f 83/153/23 88/161/23 84/162/23 -f 82/157/19 86/163/19 81/164/19 -f 65/85/19 52/165/19 50/86/19 -f 71/88/20 66/166/20 62/89/20 -f 58/91/21 53/167/21 64/92/21 -f 54/94/22 60/168/22 56/95/22 -f 59/97/23 72/169/23 68/98/23 -f 49/100/32 51/102/32 56/120/32 -f 52/103/33 54/94/33 51/96/33 -f 58/123/34 60/168/34 54/94/34 -f 57/99/35 56/170/35 60/109/35 -f 55/105/36 57/107/36 68/124/36 -f 70/126/37 72/169/37 59/97/37 -f 69/90/38 68/171/38 72/119/38 -f 67/115/39 69/117/39 62/127/39 -f 64/129/40 66/166/40 71/88/40 -f 63/87/41 62/172/41 66/114/41 -f 61/110/42 63/112/42 50/130/42 -f 53/132/43 52/165/43 65/85/43 -f 67/115/44 61/128/44 49/133/44 -f 77/135/20 74/148/20 75/136/20 -f 80/138/22 76/156/22 73/139/22 -f 78/141/19 75/158/19 76/142/19 -f 79/144/23 73/154/23 74/145/23 -f 84/147/21 82/152/21 75/136/21 -f 77/135/44 78/137/44 80/149/44 -f 84/147/20 88/173/20 87/151/20 -f 83/153/21 84/162/21 74/145/21 -f 81/155/21 83/160/21 73/139/21 -f 82/157/21 81/164/21 76/142/21 -f 81/155/22 86/174/22 85/159/22 -f 83/153/23 85/175/23 88/161/23 -f 82/157/19 87/176/19 86/163/19 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 0.0000 -0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.0000 0.0000 -1.0000 +vn -0.7071 0.0000 -0.7071 +vn -1.0000 0.0000 -0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -0.0000 1.0000 +s 1 +f 60/93/27 57/94/27 59/95/27 +f 71/96/28 53/97/28 52/98/28 +f 64/99/27 61/100/27 63/101/27 +f 72/102/27 54/103/27 68/104/27 +f 61/105/27 60/93/27 59/95/27 +f 48/106/28 47/107/28 46/108/28 +f 42/109/28 41/110/28 43/111/28 +f 58/112/27 56/113/27 57/114/27 +f 44/115/28 42/109/28 43/111/28 +f 69/116/28 53/97/28 41/117/28 +f 68/118/27 56/113/27 55/119/27 +f 51/120/28 49/121/28 50/122/28 +f 47/107/28 44/123/28 46/108/28 +f 65/124/27 64/99/27 63/101/27 +f 49/121/28 48/125/28 50/122/28 +f 54/103/29 53/126/30 56/113/30 +f 57/114/31 50/127/32 59/95/32 +f 61/105/33 46/128/34 63/101/34 +f 65/124/35 43/129/36 67/130/36 +f 72/102/27 65/131/27 67/130/27 +f 56/113/30 51/132/31 57/94/31 +f 63/101/34 44/133/35 65/131/35 +f 67/130/36 41/134/29 54/135/29 +f 59/95/32 48/136/33 61/100/33 +f 60/93/27 58/137/27 57/94/27 +f 71/96/28 51/138/28 53/97/28 +f 64/99/27 62/139/27 61/100/27 +f 72/102/27 67/130/27 54/103/27 +f 61/105/27 62/140/27 60/93/27 +f 48/106/28 70/141/28 47/107/28 +f 42/109/28 69/142/28 41/110/28 +f 58/112/27 55/119/27 56/113/27 +f 44/115/28 45/143/28 42/109/28 +f 69/116/28 52/98/28 53/97/28 +f 68/118/27 54/135/27 56/113/27 +f 51/120/28 71/144/28 49/121/28 +f 47/107/28 45/145/28 44/123/28 +f 65/124/27 66/146/27 64/99/27 +f 49/121/28 70/147/28 48/125/28 +f 54/103/29 41/148/29 53/126/30 +f 57/114/31 51/149/31 50/127/32 +f 61/105/33 48/150/33 46/128/34 +f 65/124/35 44/151/35 43/129/36 +f 72/102/27 66/152/27 65/131/27 +f 56/113/30 53/126/30 51/132/31 +f 63/101/34 46/128/34 44/133/35 +f 67/130/36 43/129/36 41/134/29 +f 59/95/32 50/127/32 48/136/33 +o Pipe +v 0.000000 1.500000 -0.187500 +v 0.132583 0.500000 -0.132583 +v 0.000000 0.500000 -0.187500 +v 0.132583 1.500000 -0.132583 +v 0.187500 0.500000 0.000000 +v 0.187500 1.500000 0.000000 +v 0.132583 0.500000 0.132583 +v 0.132583 1.500000 0.132583 +v 0.000000 0.500000 0.187500 +v 0.000000 1.500000 0.187500 +v -0.132583 0.500000 0.132583 +v -0.132583 1.500000 0.132583 +v -0.187500 0.500000 0.000000 +v -0.187500 1.500000 0.000000 +v -0.132583 0.500000 -0.132583 +v -0.132583 1.500000 -0.132583 +vt 0.625000 0.062500 +vt 0.812500 -0.000000 +vt 0.812500 0.062500 +vt 0.625000 0.062500 +vt 0.812500 0.000000 +vt 0.812500 0.062500 +vt 1.000000 -0.000000 +vt 1.000000 0.062500 +vt 1.000000 -0.000000 +vt 1.000000 0.062500 +vt 0.625000 0.062500 +vt 0.812500 -0.000000 +vt 0.812500 0.062500 +vt 0.812500 0.062500 +vt 1.000000 -0.000000 +vt 1.000000 0.062500 +vt 0.625000 0.062500 +vt 0.812500 -0.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.062500 +vt 0.625000 -0.000000 +vt 0.625000 0.000000 +vt 0.625000 -0.000000 +vt 0.625000 -0.000000 +vn 0.7071 -0.0000 0.7071 +vn 1.0000 -0.0000 -0.0000 +vn -0.7071 0.0000 -0.7071 +vn -1.0000 -0.0000 -0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.7071 0.0000 -0.7071 +vn -0.0000 -0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +s 1 +f 80/153/37 77/154/38 78/155/38 +f 88/156/39 85/157/40 86/158/40 +f 86/158/40 83/159/41 84/160/41 +f 78/155/38 74/161/42 76/162/42 +f 84/163/41 81/164/43 82/165/43 +f 73/166/44 87/167/39 88/168/39 +f 76/169/42 75/170/44 73/166/44 +f 82/165/43 79/171/37 80/172/37 +f 80/153/37 79/173/37 77/154/38 +f 88/156/39 87/174/39 85/157/40 +f 86/158/40 85/157/40 83/159/41 +f 78/155/38 77/154/38 74/161/42 +f 84/163/41 83/175/41 81/164/43 +f 73/166/44 75/170/44 87/167/39 +f 76/169/42 74/176/42 75/170/44 +f 82/165/43 81/164/43 79/171/37 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_blacklightning.png b/src/main/resources/assets/hbm/textures/items/ammo_standard.capacitor_blacklightning.png deleted file mode 100644 index 00b4e57aeaa9c101ce24243282366aa2de23bb0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfrcT?k%X2&TDAx;%jbhW