From 13cf418c16996b7769d5e8a697087c2d6428e50c Mon Sep 17 00:00:00 2001 From: Boblet Date: Fri, 14 Nov 2025 15:18:07 +0100 Subject: [PATCH] mhdt --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../machine/fusion/MachineFusionMHDT.java | 44 ++++++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/ResourceManager.java | 2 + .../render/tileentity/RenderFusionMHDT.java | 60 +++++++++++++++++++ .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/fusion/TileEntityFusionMHDT.java | 34 +++++++++++ .../machine/fusion/TileEntityFusionTorus.java | 16 ++++- 8 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/hbm/blocks/machine/fusion/MachineFusionMHDT.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderFusionMHDT.java create mode 100644 src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 5e4537899..fb3d490f5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -12,6 +12,7 @@ import com.hbm.blocks.machine.fusion.MachineFusionBoiler; import com.hbm.blocks.machine.fusion.MachineFusionBreeder; import com.hbm.blocks.machine.fusion.MachineFusionCollector; import com.hbm.blocks.machine.fusion.MachineFusionKlystron; +import com.hbm.blocks.machine.fusion.MachineFusionMHDT; import com.hbm.blocks.machine.fusion.MachineFusionTorus; import com.hbm.blocks.machine.pile.*; import com.hbm.blocks.machine.rbmk.*; @@ -2065,6 +2066,7 @@ public class ModBlocks { fusion_breeder = new MachineFusionBreeder().setBlockName("fusion_breeder").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); fusion_collector = new MachineFusionCollector().setBlockName("fusion_collector").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); fusion_boiler = new MachineFusionBoiler().setBlockName("fusion_boiler").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + fusion_mhdt = new MachineFusionMHDT().setBlockName("fusion_mhdt").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_icf_press = new MachineICFPress().setBlockName("machine_icf_press").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3454,6 +3456,7 @@ public class ModBlocks { register(fusion_breeder); register(fusion_collector); register(fusion_boiler); + register(fusion_mhdt); register(watz_element); register(watz_cooler); diff --git a/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionMHDT.java b/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionMHDT.java new file mode 100644 index 000000000..7909dea58 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/fusion/MachineFusionMHDT.java @@ -0,0 +1,44 @@ +package com.hbm.blocks.machine.fusion; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.fusion.TileEntityFusionMHDT; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineFusionMHDT extends BlockDummyable { + + public MachineFusionMHDT() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityFusionMHDT(); + if(meta >= 6) return new TileEntityProxyCombo().power().fluid(); + return null; + } + + @Override + public int[] getDimensions() { + return new int[] { 3, 0, 6, 7, 1, 1 }; + } + + @Override + public int getOffset() { + return 7; + } + + @Override + public boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return super.checkRequirement(world, x, y, z, dir, o); + } + + @Override + public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 16510df7f..e83be7b86 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -430,6 +430,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionBreeder.class, new RenderFusionBreeder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionCollector.class, new RenderFusionCollector()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionBoiler.class, new RenderFusionBoiler()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionMHDT.class, new RenderFusionMHDT()); //Watz ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 1363bae6c..31e072f62 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -253,6 +253,7 @@ public class ResourceManager { public static final IModelCustom fusion_breeder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/breeder.obj")).asVBO(); public static final IModelCustom fusion_collector = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/collector.obj")).asVBO(); public static final IModelCustom fusion_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/boiler.obj")).asVBO(); + public static final IModelCustom fusion_mhdt = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/mhdt.obj")).asVBO(); //ICF public static final IModelCustom icf = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/icf.obj")).asVBO(); @@ -708,6 +709,7 @@ public class ResourceManager { public static final ResourceLocation fusion_breeder_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/breeder.png"); public static final ResourceLocation fusion_collector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/collector.png"); public static final ResourceLocation fusion_boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/boiler.png"); + public static final ResourceLocation fusion_mhdt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/mhdt.png"); //ICF public static final ResourceLocation icf_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/icf.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderFusionMHDT.java b/src/main/java/com/hbm/render/tileentity/RenderFusionMHDT.java new file mode 100644 index 000000000..f37cacc63 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFusionMHDT.java @@ -0,0 +1,60 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderFusionMHDT extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - BlockDummyable.offset) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.fusion_mhdt_tex); + ResourceManager.fusion_mhdt.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.fusion_mhdt); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glScaled(2.5, 2.5, 2.5); + GL11.glRotated(90, 0, 1, 0); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.fusion_mhdt_tex); + ResourceManager.fusion_mhdt.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 60babe296..cb2fa1953 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -419,6 +419,7 @@ public class TileMappings { put(TileEntityFusionBreeder.class, "tileentity_fusion_breeder"); put(TileEntityFusionCollector.class, "tileentity_fusion_collector"); put(TileEntityFusionBoiler.class, "tileentity_fusion_boiler"); + put(TileEntityFusionMHDT.class, "tileentity_fusion_mhdt"); } private static void putNetwork() { diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java new file mode 100644 index 000000000..efc86373b --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionMHDT.java @@ -0,0 +1,34 @@ +package com.hbm.tileentity.machine.fusion; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityFusionMHDT extends TileEntity { + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 4, + yCoord, + zCoord - 4, + xCoord + 5, + yCoord + 4, + zCoord + 5 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java index 1262f76f6..2e36b1f57 100644 --- a/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java +++ b/src/main/java/com/hbm/tileentity/machine/fusion/TileEntityFusionTorus.java @@ -1,6 +1,8 @@ package com.hbm.tileentity.machine.fusion; import com.hbm.inventory.container.ContainerFusionTorus; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIFusionTorus; import com.hbm.module.machine.ModuleMachineFusion; import com.hbm.tileentity.IGUIProvider; @@ -17,11 +19,23 @@ import net.minecraft.world.World; public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIProvider { - + public FluidTank[] torusTanks; public ModuleMachineFusion fusionModule; public TileEntityFusionTorus() { super(3); + + this.torusTanks = new FluidTank[4]; + + this.torusTanks[0] = new FluidTank(Fluids.NONE, 4_000); + this.torusTanks[1] = new FluidTank(Fluids.NONE, 4_000); + this.torusTanks[2] = new FluidTank(Fluids.NONE, 4_000); + this.torusTanks[3] = new FluidTank(Fluids.NONE, 4_000); + + this.fusionModule = new ModuleMachineFusion(0, this, slots) + .fluidInput(torusTanks[0], torusTanks[1], torusTanks[2]) + .fluidOutput(torusTanks[3]) + .itemOutput(2); } @Override