This commit is contained in:
Boblet 2025-11-07 14:44:52 +01:00
parent 9386e9d186
commit bc1073f734
9 changed files with 286 additions and 1 deletions

View File

@ -8,6 +8,7 @@ import com.hbm.blocks.generic.*;
import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect;
import com.hbm.blocks.machine.*;
import com.hbm.blocks.machine.albion.*;
import com.hbm.blocks.machine.fusion.MachineFusionTorus;
import com.hbm.blocks.machine.pile.*;
import com.hbm.blocks.machine.rbmk.*;
import com.hbm.blocks.network.*;
@ -903,8 +904,9 @@ public class ModBlocks {
public static Block iter;
public static Block plasma_heater;
public static Block fusion_component;
public static Block fusion_torus;
public static Block machine_icf_press;
public static Block icf_component;
@ -2046,6 +2048,7 @@ public class ModBlocks {
plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater");
fusion_component = new BlockFusionComponent().setBlockName("fusion_component").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_component");
fusion_torus = new MachineFusionTorus().setBlockName("fusion_torus").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");
@ -3429,6 +3432,7 @@ public class ModBlocks {
GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName());
register(fusion_component);
register(fusion_torus);
register(watz_element);
register(watz_cooler);

View File

@ -0,0 +1,159 @@
package com.hbm.blocks.machine.fusion;
import com.hbm.blocks.BlockDummyable;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.fusion.TileEntityFusionTorus;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineFusionTorus extends BlockDummyable {
public static final int[][][] layout = new int[][][] {
new int[][] {
new int[] {0,0,0,0,3,3,3,3,3,3,3,0,0,0,0},
new int[] {0,0,0,3,1,1,1,1,1,1,1,3,0,0,0},
new int[] {0,0,3,1,1,1,1,1,1,1,1,1,3,0,0},
new int[] {0,3,1,1,1,1,1,1,1,1,1,1,1,3,0},
new int[] {3,1,1,1,1,3,3,3,3,3,1,1,1,1,3},
new int[] {3,1,1,1,3,3,3,3,3,3,3,1,1,1,3},
new int[] {3,1,1,1,3,3,3,3,3,3,3,1,1,1,3},
new int[] {3,1,1,1,3,3,3,3,3,3,3,1,1,1,3},
new int[] {3,1,1,1,3,3,3,3,3,3,3,1,1,1,3},
new int[] {3,1,1,1,3,3,3,3,3,3,3,1,1,1,3},
new int[] {3,1,1,1,1,3,3,3,3,3,1,1,1,1,3},
new int[] {0,3,1,1,1,1,1,1,1,1,1,1,1,3,0},
new int[] {0,0,3,1,1,1,1,1,1,1,1,1,3,0,0},
new int[] {0,0,0,3,1,1,1,1,1,1,1,3,0,0,0},
new int[] {0,0,0,0,3,3,3,3,3,3,3,0,0,0,0},
},
new int[][] {
new int[] {0,0,0,0,1,1,3,3,3,1,1,0,0,0,0},
new int[] {0,0,0,1,1,1,1,1,1,1,1,1,0,0,0},
new int[] {0,0,1,1,2,2,2,2,2,2,2,1,1,0,0},
new int[] {0,1,1,2,1,1,1,1,1,1,1,2,1,1,0},
new int[] {1,1,2,1,1,1,1,1,1,1,1,1,2,1,1},
new int[] {1,1,2,1,1,3,3,3,3,3,1,1,2,1,1},
new int[] {3,1,2,1,1,3,3,3,3,3,1,1,2,1,3},
new int[] {3,1,2,1,1,3,3,3,3,3,1,1,2,1,3},
new int[] {3,1,2,1,1,3,3,3,3,3,1,1,2,1,3},
new int[] {1,1,2,1,1,3,3,3,3,3,1,1,2,1,1},
new int[] {1,1,2,1,1,1,1,1,1,1,1,1,2,1,1},
new int[] {0,1,1,2,1,1,1,1,1,1,1,2,1,1,0},
new int[] {0,0,1,1,2,2,2,2,2,2,2,1,1,0,0},
new int[] {0,0,0,1,1,1,1,1,1,1,1,1,0,0,0},
new int[] {0,0,0,0,1,1,3,3,3,1,1,0,0,0,0},
},
new int[][] {
new int[] {0,0,0,0,1,1,3,3,3,1,1,0,0,0,0},
new int[] {0,0,0,1,2,2,2,2,2,2,2,1,0,0,0},
new int[] {0,0,1,2,2,2,2,2,2,2,2,2,1,0,0},
new int[] {0,1,2,2,2,2,2,2,2,2,2,2,2,1,0},
new int[] {1,2,2,2,1,1,1,1,1,1,1,2,2,2,1},
new int[] {1,2,2,2,1,3,3,3,3,3,1,2,2,2,1},
new int[] {3,2,2,2,1,3,3,3,3,3,1,2,2,2,3},
new int[] {3,2,2,2,1,3,3,3,3,3,1,2,2,2,3},
new int[] {3,2,2,2,1,3,3,3,3,3,1,2,2,2,3},
new int[] {1,2,2,2,1,3,3,3,3,3,1,2,2,2,1},
new int[] {1,2,2,2,1,1,1,1,1,1,1,2,2,2,1},
new int[] {0,1,2,2,2,2,2,2,2,2,2,2,2,1,0},
new int[] {0,0,1,2,2,2,2,2,2,2,2,2,1,0,0},
new int[] {0,0,0,1,2,2,2,2,2,2,2,1,0,0,0},
new int[] {0,0,0,0,1,1,3,3,3,1,1,0,0,0,0},
}
};
public MachineFusionTorus() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityFusionTorus();
if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid();
return null;
}
@Override
public int[] getDimensions() {
return new int[] { 4, 0, 7, 7, 7, 7 };
}
@Override
public int getOffset() {
return 7;
}
@Override
public boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
x = x + dir.offsetX * o;
z = z + dir.offsetZ * o;
for(int iy = 0; iy < 5; iy++) {
int l = iy > 2 ? 4 - iy : iy;
int[][] layer = layout[l];
for(int ix = 0; ix < layer.length; ix++) {
for(int iz = 0; iz < layer.length; iz++) {
int ex = ix - layer.length / 2;
int ez = iz - layer.length / 2;
if(!world.getBlock(x + ex, y + iy, z + ez).canPlaceBlockAt(world, x + ex, y + iy, z + ez)) {
return false;
}
}
}
}
return true;
}
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
x = x + dir.offsetX * o;
z = z + dir.offsetZ * o;
for(int iy = 0; iy < 5; iy++) {
int l = iy > 2 ? 4 - iy : iy;
int[][] layer = layout[l];
for(int ix = 0; ix < layer.length; ix++) {
for(int iz = 0; iz < layer[0].length; iz++) {
int ex = ix - layer.length / 2;
int ez = iz - layer.length / 2;
int meta = 0;
if(iy > 0) {
meta = ForgeDirection.UP.ordinal();
} else if(ex < 0) {
meta = ForgeDirection.WEST.ordinal();
} else if(ex > 0) {
meta = ForgeDirection.EAST.ordinal();
} else if(ez < 0) {
meta = ForgeDirection.NORTH.ordinal();
} else if(ez > 0) {
meta = ForgeDirection.SOUTH.ordinal();
} else {
continue;
}
if(layout[l][ix][iz] > 0)
world.setBlock(x + ex, y + iy, z + ez, this, meta, 3);
}
}
}
}
}

View File

@ -75,6 +75,7 @@ import com.hbm.tileentity.bomb.*;
import com.hbm.tileentity.deco.*;
import com.hbm.tileentity.machine.*;
import com.hbm.tileentity.machine.albion.*;
import com.hbm.tileentity.machine.fusion.*;
import com.hbm.tileentity.machine.oil.*;
import com.hbm.tileentity.machine.rbmk.*;
import com.hbm.tileentity.machine.storage.*;
@ -422,6 +423,8 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePlasmaHeater.class, new RenderPlasmaHeater());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICF.class, new RenderICF());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityICFController.class, new RenderICFController());
//Fusion
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionTorus.class, new RenderFusionTorus());
//Watz
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump());

View File

@ -248,6 +248,7 @@ public class ResourceManager {
//ITER
public static final IModelCustom iter = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/iter.obj")).asVBO();
public static final IModelCustom fusion_torus = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/torus.obj")).asVBO();
//ICF
public static final IModelCustom icf = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/icf.obj")).asVBO();
@ -698,6 +699,7 @@ public class ResourceManager {
public static final ResourceLocation iter_torus_desh = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_desh.png");
public static final ResourceLocation iter_torus_chlorophyte = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_chlorophyte.png");
public static final ResourceLocation iter_torus_vaporwave = new ResourceLocation(RefStrings.MODID, "textures/models/iter/torus_vaporwave.png");
public static final ResourceLocation fusion_torus_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/torus.png");
//ICF
public static final ResourceLocation icf_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/icf.png");

View File

@ -0,0 +1,51 @@
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 net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;
public class RenderFusionTorus 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);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.fusion_torus_tex);
ResourceManager.fusion_torus.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.fusion_torus);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glScaled(2, 2, 2);
}
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_torus_tex);
ResourceManager.fusion_torus.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}};
}
}

View File

@ -48,6 +48,7 @@ import com.hbm.tileentity.bomb.*;
import com.hbm.tileentity.deco.*;
import com.hbm.tileentity.machine.*;
import com.hbm.tileentity.machine.albion.*;
import com.hbm.tileentity.machine.fusion.*;
import com.hbm.tileentity.machine.oil.*;
import com.hbm.tileentity.machine.pile.*;
import com.hbm.tileentity.machine.rbmk.*;
@ -253,6 +254,7 @@ public class TileMappings {
putMachines();
putPile();
putRBMK();
putFusion();
TileEntityMachineRadarNT.registerEntityClasses();
TileEntityMachineRadarNT.registerConverters();
@ -410,6 +412,10 @@ public class TileMappings {
put(TileEntityRBMKAutoloader.class, "tileentity_rbmk_autoloader");
}
private static void putFusion() {
put(TileEntityFusionTorus.class, "tileentity_fusion_torus");
}
private static void putNetwork() {
put(TileEntityCableBaseNT.class, "tileentity_cable", "tileentity_wirecoated");
put(TileEntityCablePaintable.class, "tileentity_cable_paintable");

View File

@ -0,0 +1,60 @@
package com.hbm.tileentity.machine.fusion;
import com.hbm.tileentity.machine.albion.TileEntityCooledBase;
import com.hbm.util.fauxpointtwelve.DirPos;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.AxisAlignedBB;
public class TileEntityFusionTorus extends TileEntityCooledBase {
public TileEntityFusionTorus() {
super(3);
}
@Override
public String getName() {
return "container.fusionTorus";
}
@Override
public void updateEntity() {
}
@Override
public long getMaxPower() {
return 0;
}
@Override
public DirPos[] getConPos() {
return null;
}
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 8,
yCoord,
zCoord - 8,
xCoord + 9,
yCoord + 5,
zCoord + 9
);
}
return bb;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB