mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
extraordinarily wide fluid storage
This commit is contained in:
parent
721edd302b
commit
2f9482a46b
@ -857,6 +857,8 @@ public class ModBlocks {
|
||||
public static Block machine_fluidtank;
|
||||
public static final int guiID_machine_fluidtank = 50;
|
||||
|
||||
public static Block machine_bat9000;
|
||||
|
||||
public static Block launch_pad;
|
||||
public static final int guiID_launch_pad = 19;
|
||||
|
||||
@ -1749,7 +1751,7 @@ public class ModBlocks {
|
||||
watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_hatch");
|
||||
watz_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_conductor_top").setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_conductor_side");
|
||||
watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_computer");
|
||||
watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz");
|
||||
watz = new Watz().setBlockName("watz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
fwatz_conductor = new BlockPillar(Material.iron, RefStrings.MODID + ":block_combine_steel").setBlockName("fwatz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_conductor_side");
|
||||
fwatz_cooler = new BlockPillar(Material.iron, RefStrings.MODID + ":fwatz_cooler_top").setBlockName("fwatz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fwatz_cooler");
|
||||
@ -1895,6 +1897,7 @@ public class ModBlocks {
|
||||
machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_assembler");
|
||||
machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chemplant");
|
||||
machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank");
|
||||
machine_bat9000 = new MachineBigAssTank9000(Material.iron).setBlockName("machine_bat9000").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_turbofan = new MachineTurbofan(Material.iron).setBlockName("machine_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbofan");
|
||||
machine_press = new MachinePress(Material.iron).setBlockName("machine_press").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_press");
|
||||
machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress");
|
||||
@ -2717,6 +2720,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(machine_assembler, machine_assembler.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_fluidtank, machine_fluidtank.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_bat9000, machine_bat9000.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_boiler_off, machine_boiler_off.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_boiler_on, machine_boiler_on.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(machine_boiler_electric_on, machine_boiler_electric_on.getUnlocalizedName());
|
||||
|
||||
@ -0,0 +1,85 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineBAT9000;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineBigAssTank9000 extends BlockDummyable {
|
||||
|
||||
public MachineBigAssTank9000(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
|
||||
if(meta >= 12) return new TileEntityMachineBAT9000();
|
||||
if(meta >= 6) return new TileEntityProxyCombo(false, false, true);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getDimensions() {
|
||||
return new int[] {4, 0, 2, 2, 1, 1};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOffset() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, 0, 1, 1, 2, -2}, this, dir);
|
||||
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, 0, 1, 1, -2, 2}, this, dir);
|
||||
|
||||
this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o + 2);
|
||||
this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o + 2);
|
||||
this.makeExtra(world, x + dir.offsetX * o + 1, y, z + dir.offsetZ * o - 2);
|
||||
this.makeExtra(world, x + dir.offsetX * o - 1, y, z + dir.offsetZ * o - 2);
|
||||
this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o + 1);
|
||||
this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o + 1);
|
||||
this.makeExtra(world, x + dir.offsetX * o + 2, y, z + dir.offsetZ * o - 1);
|
||||
this.makeExtra(world, x + dir.offsetX * o - 2, y, z + dir.offsetZ * o - 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
|
||||
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false;
|
||||
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, 0, 1, 1, 2, -2}, x, y, z, dir)) return false;
|
||||
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, 0, 1, 1, -2, 2}, x, y, z, dir)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@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;
|
||||
} else if(!player.isSneaking()) {
|
||||
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return false;
|
||||
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_barrel, world, pos[0], pos[1], pos[2]); //we can do this because nobody is stopping me from doing this
|
||||
return true;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -160,6 +160,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRefinery.class, new RenderRefinery());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpjack.class, new RenderPumpjack());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbofan.class, new RenderTurbofan());
|
||||
|
||||
@ -483,6 +483,7 @@ public class MainRegistry {
|
||||
GameRegistry.registerTileEntity(TileEntityChungus.class, "tileentity_chungus");
|
||||
GameRegistry.registerTileEntity(TileEntityCableBaseNT.class, "tileentity_ohgod");
|
||||
GameRegistry.registerTileEntity(TileEntityWatz.class, "tileentity_watz");
|
||||
GameRegistry.registerTileEntity(TileEntityMachineBAT9000.class, "tileentity_bat9000");
|
||||
|
||||
GameRegistry.registerTileEntity(TileEntityRBMKRod.class, "tileentity_rbmk_rod");
|
||||
GameRegistry.registerTileEntity(TileEntityRBMKRodReaSim.class, "tileentity_rbmk_rod_reasim");
|
||||
|
||||
@ -68,6 +68,7 @@ public class ResourceManager {
|
||||
|
||||
//Tank
|
||||
public static final IModelCustom fluidtank = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fluidtank.obj"));
|
||||
public static final IModelCustom bat9000 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/bat9000.obj"));
|
||||
|
||||
//Turbofan
|
||||
public static final IModelCustom turbofan_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turbofan_body.obj"));
|
||||
@ -320,6 +321,7 @@ public class ResourceManager {
|
||||
//Tank
|
||||
public static final ResourceLocation tank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png");
|
||||
public static final ResourceLocation tank_label_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tank_NONE.png");
|
||||
public static final ResourceLocation bat9000_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/bat9000.png");
|
||||
|
||||
//Turbofan
|
||||
public static final ResourceLocation turbofan_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_body.png");
|
||||
|
||||
@ -1004,6 +1004,28 @@ public class ItemRenderLibrary {
|
||||
bindTexture(ResourceManager.turret_fritz_tex); ResourceManager.turret_fritz.renderPart("Gun");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.machine_bat9000), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -3, 0);
|
||||
GL11.glScaled(2, 2, 2);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.bat9000_tex); ResourceManager.bat9000.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
|
||||
renderers.put(Item.getItemFromBlock(ModBlocks.watz), new ItemRenderBase() {
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
GL11.glScaled(2, 2, 2);
|
||||
}
|
||||
public void renderCommon() {
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.watz_tex); ResourceManager.watz.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}});
|
||||
}
|
||||
|
||||
private static void bindTexture(ResourceLocation res) {
|
||||
|
||||
101
src/main/java/com/hbm/render/tileentity/RenderBAT9000.java
Normal file
101
src/main/java/com/hbm/render/tileentity/RenderBAT9000.java
Normal file
@ -0,0 +1,101 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.handler.FluidTypeHandler.FluidType;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.util.DiamondPronter;
|
||||
import com.hbm.render.util.EnumSymbol;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineBAT9000;
|
||||
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderBAT9000 extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
|
||||
|
||||
TileEntityMachineBAT9000 bat = (TileEntityMachineBAT9000) te;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
bindTexture(ResourceManager.bat9000_tex);
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
ResourceManager.bat9000.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
FluidType type = bat.tank.getTankType();
|
||||
|
||||
if(type != null && type != FluidType.NONE) {
|
||||
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
GL11.glPushMatrix();
|
||||
int poison = type.poison;
|
||||
int flammability = type.flammability;
|
||||
int reactivity = type.reactivity;
|
||||
EnumSymbol symbol = type.symbol;
|
||||
|
||||
GL11.glRotatef(45, 0, 1, 0);
|
||||
|
||||
for(int j = 0; j < 4; j++) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(2.5, 2.25, 0);
|
||||
GL11.glScalef(1.0F, 0.75F, 0.75F);
|
||||
DiamondPronter.pront(poison, flammability, reactivity, symbol);
|
||||
GL11.glPopMatrix();
|
||||
GL11.glRotatef(90, 0, 1, 0);
|
||||
}
|
||||
GL11.glPopMatrix();
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
}
|
||||
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
GL11.glColor3f(1F, 1F, 1F);
|
||||
Tessellator tess = Tessellator.instance;
|
||||
|
||||
double height = bat.tank.getFill() * 1.5D / bat.tank.getMaxFill();
|
||||
double off = 2.2;
|
||||
|
||||
tess.startDrawingQuads();
|
||||
tess.setColorOpaque_I(type.getColor());
|
||||
|
||||
tess.addVertex(-off, 1.5, -0.5);
|
||||
tess.addVertex(-off, 1.5 + height, -0.5);
|
||||
tess.addVertex(-off, 1.5 + height, 0.5);
|
||||
tess.addVertex(-off, 1.5, 0.5);
|
||||
|
||||
tess.addVertex(off, 1.5, -0.5);
|
||||
tess.addVertex(off, 1.5 + height, -0.5);
|
||||
tess.addVertex(off, 1.5 + height, 0.5);
|
||||
tess.addVertex(off, 1.5, 0.5);
|
||||
|
||||
tess.addVertex(-0.5, 1.5, -off);
|
||||
tess.addVertex(-0.5, 1.5 + height, -off);
|
||||
tess.addVertex(0.5, 1.5 + height, -off);
|
||||
tess.addVertex(0.5, 1.5, -off);
|
||||
|
||||
tess.addVertex(-0.5, 1.5, off);
|
||||
tess.addVertex(-0.5, 1.5 + height, off);
|
||||
tess.addVertex(0.5, 1.5 + height, off);
|
||||
tess.addVertex(0.5, 1.5, off);
|
||||
|
||||
tess.draw();
|
||||
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
}
|
||||
@ -26,6 +26,10 @@ public class RenderFluidBarrel extends TileEntitySpecialRenderer {
|
||||
FluidType type = barrel.tank.getTankType();
|
||||
|
||||
if(type != FluidType.NONE) {
|
||||
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
GL11.glPushMatrix();
|
||||
|
||||
int poison = type.poison;
|
||||
int flammability = type.flammability;
|
||||
int reactivity = type.reactivity;
|
||||
@ -33,15 +37,16 @@ public class RenderFluidBarrel extends TileEntitySpecialRenderer {
|
||||
|
||||
for(int j = 0; j < 4; j++) {
|
||||
|
||||
RenderHelper.disableStandardItemLighting();
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0.4, 0.25, -0.15);
|
||||
GL11.glScalef(1.0F, 0.35F, 0.35F);
|
||||
DiamondPronter.pront(poison, flammability, reactivity, symbol);
|
||||
GL11.glPopMatrix();
|
||||
GL11.glRotatef(90, 0, 1, 0);
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
RenderHelper.enableStandardItemLighting();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -57,41 +57,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
|
||||
fillFluidInit(tank.getTankType());
|
||||
|
||||
if(tank.getFill() > 0) {
|
||||
|
||||
Block b = this.getBlockType();
|
||||
|
||||
//for when you fill antimatter into a matter tank
|
||||
if(b != ModBlocks.barrel_antimatter && tank.getTankType().traits.contains(FluidTrait.AMAT)) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true);
|
||||
}
|
||||
|
||||
//for when you fill hot or corrosive liquids into a plastic tank
|
||||
if(b == ModBlocks.barrel_plastic && (tank.getTankType().isCorrosive() || tank.getTankType().isHot())) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
//for when you fill corrosive liquid into an iron tank
|
||||
if((b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) ||
|
||||
(b == ModBlocks.barrel_steel && tank.getTankType().traits.contains(FluidTrait.CORROSIVE_2))) {
|
||||
ItemStack[] copy = this.slots.clone();
|
||||
this.slots = new ItemStack[6];
|
||||
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.barrel_corroded);
|
||||
TileEntityBarrel barrel = (TileEntityBarrel)worldObj.getTileEntity(xCoord, yCoord, zCoord);
|
||||
|
||||
if(barrel != null) {
|
||||
barrel.tank.setTankType(tank.getTankType());
|
||||
barrel.tank.setFill(Math.min(barrel.tank.getMaxFill(), tank.getFill()));
|
||||
barrel.slots = copy;
|
||||
}
|
||||
|
||||
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) {
|
||||
tank.setFill(tank.getFill() - 1);
|
||||
}
|
||||
checkFluidInteraction();
|
||||
}
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
@ -100,6 +66,44 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
|
||||
}
|
||||
}
|
||||
|
||||
public void checkFluidInteraction() {
|
||||
|
||||
Block b = this.getBlockType();
|
||||
|
||||
//for when you fill antimatter into a matter tank
|
||||
if(b != ModBlocks.barrel_antimatter && tank.getTankType().traits.contains(FluidTrait.AMAT)) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true);
|
||||
}
|
||||
|
||||
//for when you fill hot or corrosive liquids into a plastic tank
|
||||
if(b == ModBlocks.barrel_plastic && (tank.getTankType().isCorrosive() || tank.getTankType().isHot())) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
//for when you fill corrosive liquid into an iron tank
|
||||
if((b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) ||
|
||||
(b == ModBlocks.barrel_steel && tank.getTankType().traits.contains(FluidTrait.CORROSIVE_2))) {
|
||||
ItemStack[] copy = this.slots.clone();
|
||||
this.slots = new ItemStack[6];
|
||||
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.barrel_corroded);
|
||||
TileEntityBarrel barrel = (TileEntityBarrel)worldObj.getTileEntity(xCoord, yCoord, zCoord);
|
||||
|
||||
if(barrel != null) {
|
||||
barrel.tank.setTankType(tank.getTankType());
|
||||
barrel.tank.setFill(Math.min(barrel.tank.getMaxFill(), tank.getFill()));
|
||||
barrel.slots = copy;
|
||||
}
|
||||
|
||||
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.fizz", 1.0F, 1.0F);
|
||||
}
|
||||
|
||||
if(b == ModBlocks.barrel_corroded && worldObj.rand.nextInt(3) == 0) {
|
||||
tank.setFill(tank.getFill() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public void networkUnpack(NBTTagCompound data) {
|
||||
|
||||
mode = data.getShort("mode");
|
||||
|
||||
@ -0,0 +1,66 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.handler.FluidTypeHandler.FluidTrait;
|
||||
import com.hbm.handler.FluidTypeHandler.FluidType;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
public class TileEntityMachineBAT9000 extends TileEntityBarrel {
|
||||
|
||||
public TileEntityMachineBAT9000() {
|
||||
super(2048000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.bat9000";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkFluidInteraction() {
|
||||
|
||||
if(tank.getTankType().traits.contains(FluidTrait.AMAT)) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10, true, true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillFluidInit(FluidType type) {
|
||||
fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 3, getTact(), type);
|
||||
fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 3, getTact(), type);
|
||||
fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 3, getTact(), type);
|
||||
fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 3, getTact(), type);
|
||||
fillFluid(this.xCoord + 3, this.yCoord, this.zCoord + 1, getTact(), type);
|
||||
fillFluid(this.xCoord - 3, this.yCoord, this.zCoord + 1, getTact(), type);
|
||||
fillFluid(this.xCoord + 3, this.yCoord, this.zCoord - 1, getTact(), type);
|
||||
fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 1, getTact(), type);
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
|
||||
if(bb == null) {
|
||||
bb = AxisAlignedBB.getBoundingBox(
|
||||
xCoord - 2,
|
||||
yCoord,
|
||||
zCoord - 2,
|
||||
xCoord + 3,
|
||||
yCoord + 5,
|
||||
zCoord + 3
|
||||
);
|
||||
}
|
||||
|
||||
return bb;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
}
|
||||
@ -281,9 +281,9 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
|
||||
tanks[0].loadTank(17, 19, slots);
|
||||
tanks[1].loadTank(18, 20, slots);
|
||||
|
||||
if(slots[17] != null && !(slots[17].getItem() == ModItems.fluid_barrel_infinite || slots[17].getItem() == ModItems.inf_water))
|
||||
if(slots[17] != null && !(slots[17].getItem() == ModItems.fluid_barrel_infinite || slots[17].getItem() == ModItems.inf_water || slots[17].getItem() == ModItems.inf_water_mk2))
|
||||
tanks[0].unloadTank(17, 19, slots);
|
||||
if(slots[18] != null && !(slots[18].getItem() == ModItems.fluid_barrel_infinite || slots[18].getItem() == ModItems.inf_water))
|
||||
if(slots[18] != null && !(slots[18].getItem() == ModItems.fluid_barrel_infinite || slots[18].getItem() == ModItems.inf_water || slots[18].getItem() == ModItems.inf_water_mk2))
|
||||
tanks[1].unloadTank(18, 20, slots);
|
||||
|
||||
tanks[2].unloadTank(9, 11, slots);
|
||||
|
||||
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.handler.FluidTypeHandler.FluidTrait;
|
||||
import com.hbm.handler.FluidTypeHandler.FluidType;
|
||||
import com.hbm.interfaces.IFluidAcceptor;
|
||||
import com.hbm.interfaces.IFluidContainer;
|
||||
@ -53,9 +54,15 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements
|
||||
tank.loadTank(2, 3, slots);
|
||||
tank.setType(0, 1, slots);
|
||||
|
||||
if(tank.getTankType().isAntimatter() && tank.getFill() > 0) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true);
|
||||
if(tank.getFill() > 0) {
|
||||
if(tank.getTankType().isAntimatter()) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true);
|
||||
}
|
||||
|
||||
if(tank.getTankType().traits.contains(FluidTrait.CORROSIVE_2)) {
|
||||
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
|
||||
}
|
||||
}
|
||||
|
||||
tank.unloadTank(4, 5, slots);
|
||||
|
||||
@ -2916,6 +2916,7 @@ tile.machine_arc_furnace_off.name=Lichtbogenofen
|
||||
tile.machine_arc_furnace_on.name=Lichtbogenofen
|
||||
tile.machine_armor_table.name=Rüstungsmodifikationstisch
|
||||
tile.machine_assembler.name=Fertigungsmaschine
|
||||
tile.machine_bat9000.name=Big-Ass Tank 9000
|
||||
tile.machine_battery.name=Energiespeicherblock
|
||||
tile.machine_battery_potato.name=Kartoffelbatterieblock
|
||||
tile.machine_boiler_electric_off.name=Elektrischer Boiler
|
||||
|
||||
@ -2998,6 +2998,7 @@ tile.machine_arc_furnace_off.name=Arc Furnace
|
||||
tile.machine_arc_furnace_on.name=Arc Furnace
|
||||
tile.machine_armor_table.name=Armor Modification Table
|
||||
tile.machine_assembler.name=Assembly Machine
|
||||
tile.machine_bat9000.name=Big-Ass Tank 9000
|
||||
tile.machine_battery.name=Energy Storage Block
|
||||
tile.machine_battery_potato.name=Potato Battery Block
|
||||
tile.machine_boiler_electric_off.name=Electric Boiler
|
||||
|
||||
1815
src/main/resources/assets/hbm/models/machines/bat9000.obj
Normal file
1815
src/main/resources/assets/hbm/models/machines/bat9000.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
src/main/resources/assets/hbm/sounds/turret/richard_reload.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/turret/richard_reload.ogg
Normal file
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 857 B After Width: | Height: | Size: 1.0 KiB |
Loading…
x
Reference in New Issue
Block a user