diff --git a/src/main/java/com/hbm/blocks/ITooltipProvider.java b/src/main/java/com/hbm/blocks/ITooltipProvider.java index ae2ecff15..e959db070 100644 --- a/src/main/java/com/hbm/blocks/ITooltipProvider.java +++ b/src/main/java/com/hbm/blocks/ITooltipProvider.java @@ -2,13 +2,30 @@ package com.hbm.blocks; import java.util.List; +import org.lwjgl.input.Keyboard; + +import com.hbm.util.I18nUtil; + +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public interface ITooltipProvider { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext); + + public default void addStandardInfo(ItemStack stack, EntityPlayer player, List list, boolean ext) { + + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); + } else { + list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + + EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + + EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); + } + } public default EnumRarity getRarity(ItemStack stack) { return EnumRarity.common; diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 0190c5b17..c0a76641d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -26,6 +26,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemBlock; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -548,6 +549,7 @@ public class ModBlocks { public static Block vault_door; public static Block blast_door; + public static Block fire_door; public static Block transition_seal; public static Block door_metal; @@ -750,6 +752,7 @@ public class ModBlocks { public static Block fluid_duct; public static Block fluid_duct_solid; public static Block fluid_duct_neo; + public static Block fluid_duct_box; public static Block conveyor; public static Block conveyor_double; @@ -824,9 +827,8 @@ public class ModBlocks { public static Block fusion_motor; public static Block fusion_heater; public static Block fusion_hatch; - public static Block fusion_core; + //public static Block fusion_core; public static Block plasma; - public static final int guiID_fusion_multiblock = 27; public static Block iter; public static final int guiID_iter = 98; @@ -1912,6 +1914,7 @@ public class ModBlocks { fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); 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"); conveyor = new BlockConveyor().setBlockName("conveyor").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor"); conveyor_double = new BlockConveyorDouble().setBlockName("conveyor_double").setHardness(2.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":conveyor_double"); @@ -1984,7 +1987,7 @@ public class ModBlocks { fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); - fusion_core = new FusionCore(Material.iron).setBlockName("fusion_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_core_side"); + //fusion_core = new FusionCore(Material.iron).setBlockName("fusion_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_core_side"); plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma"); iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":iter"); plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); @@ -2030,6 +2033,7 @@ public class ModBlocks { vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door"); blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door"); + fire_door = new BlockDoorGeneric(Material.iron, DoorDecl.FIRE_DOOR).setBlockName("fire_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fire_door"); transition_seal = new BlockDoorGeneric(Material.iron, DoorDecl.TRANSITION_SEAL).setBlockName("transition_seal").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transition_seal"); door_metal = new BlockModDoor(Material.iron).setBlockName("door_metal").setHardness(5.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":door_metal"); @@ -2926,6 +2930,7 @@ public class ModBlocks { //Vault Door GameRegistry.registerBlock(vault_door, vault_door.getUnlocalizedName()); GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName()); + GameRegistry.registerBlock(fire_door, fire_door.getUnlocalizedName()); GameRegistry.registerBlock(transition_seal, transition_seal.getUnlocalizedName()); //Doors @@ -2967,9 +2972,9 @@ public class ModBlocks { GameRegistry.registerBlock(press_preheater, press_preheater.getUnlocalizedName()); GameRegistry.registerBlock(machine_press, machine_press.getUnlocalizedName()); GameRegistry.registerBlock(machine_epress, machine_epress.getUnlocalizedName()); - GameRegistry.registerBlock(heater_firebox, heater_firebox.getUnlocalizedName()); - GameRegistry.registerBlock(furnace_iron, furnace_iron.getUnlocalizedName()); - GameRegistry.registerBlock(furnace_steel, furnace_steel.getUnlocalizedName()); + register(heater_firebox); + register(furnace_iron); + register(furnace_steel); GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName()); @@ -3079,6 +3084,7 @@ public class ModBlocks { GameRegistry.registerBlock(gas_duct_solid, gas_duct_solid.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); 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(crane_extractor, crane_extractor.getUnlocalizedName()); @@ -3232,7 +3238,7 @@ public class ModBlocks { GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName()); - GameRegistry.registerBlock(fusion_core, fusion_core.getUnlocalizedName()); + //GameRegistry.registerBlock(fusion_core, fusion_core.getUnlocalizedName()); GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); @@ -3395,4 +3401,12 @@ public class ModBlocks { GameRegistry.registerBlock(pink_stairs, pink_stairs.getUnlocalizedName()); GameRegistry.registerBlock(ff, ff.getUnlocalizedName()); } + + private static void register(Block b) { + GameRegistry.registerBlock(b, ItemBlockBase.class, b.getUnlocalizedName()); + } + + private static void register(Block b, Class clazz) { + GameRegistry.registerBlock(b, clazz, b.getUnlocalizedName()); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index e05f0f4ca..4dad6a3a9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -5,6 +5,8 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.Rotation; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -70,12 +72,21 @@ public class BlockDoorGeneric extends BlockDummyable { @Override public void addCollisionBoxesToList(World worldIn, int x, int y, int z, AxisAlignedBB entityBox, List collidingBoxes, Entity entityIn) { - AxisAlignedBB box = getCollisionBoundingBoxFromPool(worldIn, x, y, z); - if(box.minY == 0 && box.maxY == 0) + AxisAlignedBB box = getBoundingBox(worldIn, x, y ,z); + box = AxisAlignedBB.getBoundingBox( + Math.min(box.minX, box.maxX), Math.min(box.minY, box.maxY), Math.min(box.minZ, box.maxZ), + Math.max(box.minX, box.maxX), Math.max(box.minY, box.maxY), Math.max(box.minZ, box.maxZ)); + + if(box.minY == y && box.maxY == y) return; - if(hasExtra(worldIn.getBlockMetadata(x, y, z))) - return; - super.addCollisionBoxesToList( worldIn, x, y, z, entityBox, collidingBoxes, entityIn); + + if(box != null && box.intersectsWith(entityBox)) { + collidingBoxes.add(box); + } + + //if(hasExtra(worldIn.getBlockMetadata(x, y, z))) //transition hatch only worked with this, but fire door doesn't + // return; + //super.addCollisionBoxesToList(worldIn, x, y, z, entityBox, collidingBoxes, entityIn); } @Override @@ -96,25 +107,31 @@ public class BlockDoorGeneric extends BlockDummyable { } @Override - public AxisAlignedBB getSelectedBoundingBoxFromPool(World source, int x, int y, int z) { - int meta = source.getBlockMetadata(x, y, z); - TileEntity te = source.getTileEntity(x, y, z); - int[] core = this.findCore(source, x, y, z); - boolean open = hasExtra(meta) || (te instanceof TileEntityDoorGeneric && ((TileEntityDoorGeneric)te).shouldUseBB); + public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) { + return getBoundingBox(world, x, y, z); + //return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); + } + + public AxisAlignedBB getBoundingBox(World world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + TileEntity te = world.getTileEntity(x, y, z); + int[] core = this.findCore(world, x, y, z); + boolean open = hasExtra(meta) || (te instanceof TileEntityDoorGeneric && ((TileEntityDoorGeneric)te).state != 0); if(core == null){ - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); } - TileEntity te2 = source.getTileEntity(core[0], core[1], core[2]); + TileEntity te2 = world.getTileEntity(core[0], core[1], core[2]); ForgeDirection dir = ForgeDirection.getOrientation(te2.getBlockMetadata() - BlockDummyable.offset); - AxisAlignedBB box = type.getBlockBound(x - core[0], y - core[1], z - core[2], open ); //.rotate(dir.getBlockRotation().add(Rotation.COUNTERCLOCKWISE_90)), open); TODO: add rotation - //System.out.println(te2.getBlockMetadata()-offset); + BlockPos pos = new BlockPos(x - core[0], y - core[1], z - core[2]).rotate(Rotation.getBlockRotation(dir).add(Rotation.COUNTERCLOCKWISE_90)); + AxisAlignedBB box = type.getBlockBound(pos.getX(), pos.getY(), pos.getZ(), open); + switch(te2.getBlockMetadata() - offset){ - case 2: return AxisAlignedBB.getBoundingBox(1 - box.minX, box.minY, 1 - box.minZ, 1 - box.maxX, box.maxY, 1 - box.maxZ); - case 4: return AxisAlignedBB.getBoundingBox(1 - box.minZ, box.minY, box.minX, 1 - box.maxZ, box.maxY, box.maxX); - case 3: return AxisAlignedBB.getBoundingBox(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); - case 5: return AxisAlignedBB.getBoundingBox(box.minZ, box.minY, 1 - box.minX, box.maxZ, box.maxY, 1 - box.maxX); + case 2: return AxisAlignedBB.getBoundingBox(x + 1 - box.minX, y + box.minY, z + 1 - box.minZ, x + 1 - box.maxX, y + box.maxY, z + 1 - box.maxZ); + case 4: return AxisAlignedBB.getBoundingBox(x + 1 - box.minZ, y + box.minY, z + box.minX, x + 1 - box.maxZ, y + box.maxY, z + box.maxX); + case 3: return AxisAlignedBB.getBoundingBox(x + box.minX, y + box.minY, z + box.minZ, x + box.maxX, y + box.maxY, z + box.maxZ); + case 5: return AxisAlignedBB.getBoundingBox(x + box.minZ, y + box.minY, z + 1 - box.maxX, x + box.maxZ, y + box.maxY, z + 1 - box.minX); } - return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockMarker.java b/src/main/java/com/hbm/blocks/generic/BlockMarker.java index 86b90ff83..e613f02da 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMarker.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMarker.java @@ -172,22 +172,11 @@ public class BlockMarker extends BlockContainer { if(world.isRemote) { int i = ((TileEntityStructureMarker)world.getTileEntity(x, y, z)).type + 1; - if(i > 6) - i -= 7; - if(i == 0) - player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Factory")); - if(i == 1) - player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Nuclear Reactor")); - if(i == 2) - player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Nuclear Reactor with Concrete Casing")); - if(i == 3) - player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Fusion Reactor")); - if(i == 4) - player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Fusion Reactor with Internal Coating")); - if(i == 5) - player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Watz Power Plant")); - if(i == 6) - player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Fusionary Watz Plant")); + if(i > 2) + i -= 3; + if(i == 0) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Nuclear Reactor")); + if(i == 1) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Watz Power Plant")); + if(i == 2) player.addChatMessage(new ChatComponentText("[Structure Marker] Set template: Fusionary Watz Plant")); return true; } else if(!player.isSneaking()) { diff --git a/src/main/java/com/hbm/blocks/generic/BlockOre.java b/src/main/java/com/hbm/blocks/generic/BlockOre.java index 7efae6b9d..c96ee03d5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOre.java @@ -119,7 +119,7 @@ public class BlockOre extends Block { case 19: return Item.getItemFromBlock(ModBlocks.fusion_heater); case 20: - return Item.getItemFromBlock(ModBlocks.fusion_core); + return ModItems.circuit_red_copper; case 21: return Item.getItemFromBlock(ModBlocks.watz_element); case 22: diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java index 608963f7c..1b5ab3f20 100644 --- a/src/main/java/com/hbm/blocks/machine/FurnaceIron.java +++ b/src/main/java/com/hbm/blocks/machine/FurnaceIron.java @@ -1,15 +1,19 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityFurnaceIron; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class FurnaceIron extends BlockDummyable { +public class FurnaceIron extends BlockDummyable implements ITooltipProvider { public FurnaceIron() { super(Material.iron); @@ -35,4 +39,9 @@ public class FurnaceIron extends BlockDummyable { public int getOffset() { return 0; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/FurnaceSteel.java b/src/main/java/com/hbm/blocks/machine/FurnaceSteel.java index 0aa5c2af0..4d0d84c23 100644 --- a/src/main/java/com/hbm/blocks/machine/FurnaceSteel.java +++ b/src/main/java/com/hbm/blocks/machine/FurnaceSteel.java @@ -1,15 +1,19 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityFurnaceSteel; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class FurnaceSteel extends BlockDummyable { +public class FurnaceSteel extends BlockDummyable implements ITooltipProvider { public FurnaceSteel() { super(Material.iron); @@ -35,4 +39,9 @@ public class FurnaceSteel extends BlockDummyable { public int getOffset() { return 1; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/FusionCore.java b/src/main/java/com/hbm/blocks/machine/FusionCore.java deleted file mode 100644 index d2a26bc1d..000000000 --- a/src/main/java/com/hbm/blocks/machine/FusionCore.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityFusionMultiblock; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class FusionCore extends BlockContainer { - - @SideOnly(Side.CLIENT) - private IIcon iconTop; - - public FusionCore(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":fusion_center_top_alt"); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fusion_core_side_alt"); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityFusionMultiblock(); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/FusionHatch.java b/src/main/java/com/hbm/blocks/machine/FusionHatch.java index 5ef103e83..6c549c609 100644 --- a/src/main/java/com/hbm/blocks/machine/FusionHatch.java +++ b/src/main/java/com/hbm/blocks/machine/FusionHatch.java @@ -1,23 +1,14 @@ package com.hbm.blocks.machine; -import java.util.Random; - -import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityFusionMultiblock; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -46,49 +37,6 @@ public class FusionHatch extends Block { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : (metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon))); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(this); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - //this.setDefaultDirection(world, x, y, z); - } - - private void setDefaultDirection(World world, int x, int y, int z) { - if(!world.isRemote) - { - Block block1 = world.getBlock(x, y, z - 1); - Block block2 = world.getBlock(x, y, z + 1); - Block block3 = world.getBlock(x - 1, y, z); - Block block4 = world.getBlock(x + 1, y, z); - - byte b0 = 3; - - if(block1.func_149730_j() && !block2.func_149730_j()) - { - b0 = 3; - } - if(block2.func_149730_j() && !block1.func_149730_j()) - { - b0 = 2; - } - if(block3.func_149730_j() && !block4.func_149730_j()) - { - b0 = 5; - } - if(block4.func_149730_j() && !block3.func_149730_j()) - { - b0 = 4; - } - - world.setBlockMetadataWithNotify(x, y, z, b0, 2); - } - } - @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; @@ -110,73 +58,4 @@ public class FusionHatch extends Block { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } - - @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()) - { - if(world.getBlockMetadata(x, y, z) == 2) - { - if(world.getTileEntity(x, y, z + 8) instanceof TileEntityFusionMultiblock) - { - if(((TileEntityFusionMultiblock)world.getTileEntity(x, y, z + 8)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x, y, z + 8); - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 3) - { - if(world.getTileEntity(x, y, z - 8) instanceof TileEntityFusionMultiblock) - { - if(((TileEntityFusionMultiblock)world.getTileEntity(x, y, z - 8)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x, y, z - 8); - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 4) - { - if(world.getTileEntity(x + 8, y, z) instanceof TileEntityFusionMultiblock) - { - if(((TileEntityFusionMultiblock)world.getTileEntity(x + 8, y, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x + 8, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Core not found!")); - } - } - if(world.getBlockMetadata(x, y, z) == 5) - { - if(world.getTileEntity(x - 8, y, z) instanceof TileEntityFusionMultiblock) - { - if(((TileEntityFusionMultiblock)world.getTileEntity(x - 8, y, z)).isStructureValid(world)) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_fusion_multiblock, world, x - 8, y, z); - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Structure not valid!")); - } - } else { - player.addChatMessage(new ChatComponentText("[Fusion Reactor] Error: Reactor Core not found!")); - } - } - return true; - } else { - return false; - } - } } diff --git a/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java b/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java index 762b291c3..e502b1a3b 100644 --- a/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java +++ b/src/main/java/com/hbm/blocks/machine/HeaterFirebox.java @@ -1,15 +1,19 @@ package com.hbm.blocks.machine; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityHeaterFirebox; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; -public class HeaterFirebox extends BlockDummyable { +public class HeaterFirebox extends BlockDummyable implements ITooltipProvider { public HeaterFirebox() { super(Material.iron); @@ -42,4 +46,9 @@ public class HeaterFirebox extends BlockDummyable { public int getOffset() { return 1; } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + this.addStandardInfo(stack, player, list, ext); + } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java index 00009050b..48165752b 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java @@ -2,19 +2,15 @@ package com.hbm.blocks.machine; import java.util.List; -import org.lwjgl.input.Keyboard; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; -import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -68,13 +64,6 @@ public class MachineLiquefactor extends BlockDummyable implements ITooltipProvid @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); - } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); - } + this.addStandardInfo(stack, player, list, ext); } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java index 33bb6db37..c7ece049d 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java @@ -2,19 +2,15 @@ package com.hbm.blocks.machine; import java.util.List; -import org.lwjgl.input.Keyboard; - import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.oil.TileEntityMachineSolidifier; -import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -68,13 +64,6 @@ public class MachineSolidifier extends BlockDummyable implements ITooltipProvide @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { - - if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { - for(String s : I18nUtil.resolveKeyArray(this.getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s); - } else { - list.add(EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC +"Hold <" + - EnumChatFormatting.YELLOW + "" + EnumChatFormatting.ITALIC + "LSHIFT" + - EnumChatFormatting.DARK_GRAY + "" + EnumChatFormatting.ITALIC + "> to display more info"); - } + this.addStandardInfo(stack, player, list, ext); } } diff --git a/src/main/java/com/hbm/blocks/network/FluidDuctBox.java b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java new file mode 100644 index 000000000..2a398267e --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/FluidDuctBox.java @@ -0,0 +1,154 @@ +package com.hbm.blocks.network; + +import java.util.List; + +import com.hbm.blocks.IBlockMulti; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.Library; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.network.TileEntityPipeBaseNT; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class FluidDuctBox extends FluidDuctBase implements IBlockMulti { + + @SideOnly(Side.CLIENT) protected IIcon[] iconStraight; + @SideOnly(Side.CLIENT) protected IIcon[] iconEnd; + @SideOnly(Side.CLIENT) protected IIcon[] iconCurveTL; + @SideOnly(Side.CLIENT) protected IIcon[] iconCurveTR; + @SideOnly(Side.CLIENT) protected IIcon[] iconCurveBL; + @SideOnly(Side.CLIENT) protected IIcon[] iconCurveBR; + @SideOnly(Side.CLIENT) protected IIcon[] iconJunction; + + private static final String[] materials = new String[] { "silver", "copper" }; + + public FluidDuctBox(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + + int count = materials.length; + iconStraight = new IIcon[count]; + iconEnd = new IIcon[count]; + iconCurveTL = new IIcon[count]; + iconCurveTR = new IIcon[count]; + iconCurveBL = new IIcon[count]; + iconCurveBR = new IIcon[count]; + iconJunction = new IIcon[count]; + + for(int i = 0; i < count; i++) { + iconStraight[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_straight"); + iconEnd[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_end"); + iconCurveTL[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_tl"); + iconCurveTR[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_tr"); + iconCurveBL[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_bl"); + iconCurveBR[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_curve_br"); + iconJunction[i] = iconRegister.registerIcon(RefStrings.MODID + ":boxduct_" + materials[i] + "_junction"); + } + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + FluidType type = Fluids.NONE; + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; + type = pipe.getType(); + } + + boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.NEG_X, type); + boolean nX = Library.canConnectFluid(world, x - 1, y, z, Library.POS_X, type); + boolean pY = Library.canConnectFluid(world, x, y + 1, z, Library.NEG_Y, type); + boolean nY = Library.canConnectFluid(world, x, y - 1, z, Library.POS_Y, type); + boolean pZ = Library.canConnectFluid(world, x, y, z + 1, Library.NEG_Z, type); + boolean nZ = Library.canConnectFluid(world, x, y, z - 1, Library.POS_Z, type); + + 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); + + int m = rectify(world.getBlockMetadata(x, y, z)); + + if((mask & 0b001111) == 0 && mask > 0) { + return (side == 4 || side == 5) ? iconEnd[m] : iconStraight[m]; + } else if((mask & 0b111100) == 0 && mask > 0) { + return (side == 2 || side == 3) ? iconEnd[m] : iconStraight[m]; + } else if((mask & 0b110011) == 0 && mask > 0) { + return (side == 0 || side == 1) ? iconEnd[m] : iconStraight[m]; + } else if(count == 2) { + + if(side == 0 && nY || side == 1 && pY || side == 2 && nZ || side == 3 && pZ || side == 4 && nX || side == 5 && pX) + return iconEnd[m]; + if(side == 1 && nY || side == 0 && pY || side == 3 && nZ || side == 2 && pZ || side == 5 && nX || side == 4 && pX) + return iconStraight[m]; + + if(nY && pZ) return side == 4 ? iconCurveBR[m] : iconCurveBL[m]; + if(nY && nZ) return side == 5 ? iconCurveBR[m] : iconCurveBL[m]; + if(nY && pX) return side == 3 ? iconCurveBR[m] : iconCurveBL[m]; + if(nY && nX) return side == 2 ? iconCurveBR[m] : iconCurveBL[m]; + if(pY && pZ) return side == 4 ? iconCurveTR[m] : iconCurveTL[m]; + if(pY && nZ) return side == 5 ? iconCurveTR[m] : iconCurveTL[m]; + if(pY && pX) return side == 3 ? iconCurveTR[m] : iconCurveTL[m]; + if(pY && nX) return side == 2 ? iconCurveTR[m] : iconCurveTL[m]; + + if(pX && nZ) return side == 0 ? iconCurveTR[m] : iconCurveTR[m]; + if(pX && pZ) return side == 0 ? iconCurveBR[m] : iconCurveBR[m]; + if(nX && nZ) return side == 0 ? iconCurveTL[m] : iconCurveTL[m]; + if(nX && pZ) return side == 0 ? iconCurveBL[m] : iconCurveBL[m]; + + return iconJunction[m]; + } + + return iconJunction[m]; + } + + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < 2; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + + public int damageDropped(int meta) { + return rectify(meta); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public int getSubCount() { + return 2; + } +} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java new file mode 100644 index 000000000..c05204f3f --- /dev/null +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -0,0 +1,424 @@ +package com.hbm.entity; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.cart.EntityMinecartBogie; +import com.hbm.entity.cart.EntityMinecartCrate; +import com.hbm.entity.cart.EntityMinecartDestroyer; +import com.hbm.entity.cart.EntityMinecartOre; +import com.hbm.entity.cart.EntityMinecartPowder; +import com.hbm.entity.cart.EntityMinecartSemtex; +import com.hbm.entity.effect.EntityBlackHole; +import com.hbm.entity.effect.EntityCloudFleija; +import com.hbm.entity.effect.EntityCloudFleijaRainbow; +import com.hbm.entity.effect.EntityCloudSolinium; +import com.hbm.entity.effect.EntityCloudTom; +import com.hbm.entity.effect.EntityEMPBlast; +import com.hbm.entity.effect.EntityFalloutRain; +import com.hbm.entity.effect.EntityNukeCloudBig; +import com.hbm.entity.effect.EntityNukeCloudNoShroom; +import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.effect.EntityNukeTorex; +import com.hbm.entity.effect.EntityQuasar; +import com.hbm.entity.effect.EntityRagingVortex; +import com.hbm.entity.effect.EntitySpear; +import com.hbm.entity.effect.EntityVortex; +import com.hbm.entity.grenade.EntityGrenadeASchrab; +import com.hbm.entity.grenade.EntityGrenadeBlackHole; +import com.hbm.entity.grenade.EntityGrenadeBouncyGeneric; +import com.hbm.entity.grenade.EntityGrenadeBreach; +import com.hbm.entity.grenade.EntityGrenadeBurst; +import com.hbm.entity.grenade.EntityGrenadeCloud; +import com.hbm.entity.grenade.EntityGrenadeCluster; +import com.hbm.entity.grenade.EntityGrenadeDynamite; +import com.hbm.entity.grenade.EntityGrenadeElectric; +import com.hbm.entity.grenade.EntityGrenadeFire; +import com.hbm.entity.grenade.EntityGrenadeFlare; +import com.hbm.entity.grenade.EntityGrenadeFrag; +import com.hbm.entity.grenade.EntityGrenadeGas; +import com.hbm.entity.grenade.EntityGrenadeGascan; +import com.hbm.entity.grenade.EntityGrenadeGeneric; +import com.hbm.entity.grenade.EntityGrenadeIFBouncy; +import com.hbm.entity.grenade.EntityGrenadeIFBrimstone; +import com.hbm.entity.grenade.EntityGrenadeIFConcussion; +import com.hbm.entity.grenade.EntityGrenadeIFGeneric; +import com.hbm.entity.grenade.EntityGrenadeIFHE; +import com.hbm.entity.grenade.EntityGrenadeIFHopwire; +import com.hbm.entity.grenade.EntityGrenadeIFImpact; +import com.hbm.entity.grenade.EntityGrenadeIFIncendiary; +import com.hbm.entity.grenade.EntityGrenadeIFMystery; +import com.hbm.entity.grenade.EntityGrenadeIFNull; +import com.hbm.entity.grenade.EntityGrenadeIFSpark; +import com.hbm.entity.grenade.EntityGrenadeIFSticky; +import com.hbm.entity.grenade.EntityGrenadeIFToxic; +import com.hbm.entity.grenade.EntityGrenadeImpactGeneric; +import com.hbm.entity.grenade.EntityGrenadeLemon; +import com.hbm.entity.grenade.EntityGrenadeMIRV; +import com.hbm.entity.grenade.EntityGrenadeMk2; +import com.hbm.entity.grenade.EntityGrenadeNuclear; +import com.hbm.entity.grenade.EntityGrenadeNuke; +import com.hbm.entity.grenade.EntityGrenadePC; +import com.hbm.entity.grenade.EntityGrenadePlasma; +import com.hbm.entity.grenade.EntityGrenadePoison; +import com.hbm.entity.grenade.EntityGrenadePulse; +import com.hbm.entity.grenade.EntityGrenadeSchrabidium; +import com.hbm.entity.grenade.EntityGrenadeShrapnel; +import com.hbm.entity.grenade.EntityGrenadeSmart; +import com.hbm.entity.grenade.EntityGrenadeStrong; +import com.hbm.entity.grenade.EntityGrenadeTau; +import com.hbm.entity.grenade.EntityGrenadeZOMG; +import com.hbm.entity.grenade.EntityWastePearl; +import com.hbm.entity.item.EntityFireworks; +import com.hbm.entity.item.EntityMagnusCartus; +import com.hbm.entity.item.EntityMinecartTest; +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.entity.item.EntityTNTPrimedBase; +import com.hbm.entity.logic.EntityBalefire; +import com.hbm.entity.logic.EntityBomber; +import com.hbm.entity.logic.EntityDeathBlast; +import com.hbm.entity.logic.EntityEMP; +import com.hbm.entity.logic.EntityNukeExplosion; +import com.hbm.entity.logic.EntityNukeExplosionAdvanced; +import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.logic.EntityNukeExplosionNT; +import com.hbm.entity.logic.EntityNukeExplosionPlus; +import com.hbm.entity.logic.EntityTomBlast; +import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.entity.missile.EntityBombletSelena; +import com.hbm.entity.missile.EntityBombletTheta; +import com.hbm.entity.missile.EntityBooster; +import com.hbm.entity.missile.EntityCarrier; +import com.hbm.entity.missile.EntityMIRV; +import com.hbm.entity.missile.EntityMinerRocket; +import com.hbm.entity.missile.EntityMissileAntiBallistic; +import com.hbm.entity.missile.EntityMissileBHole; +import com.hbm.entity.missile.EntityMissileBunkerBuster; +import com.hbm.entity.missile.EntityMissileBurst; +import com.hbm.entity.missile.EntityMissileBusterStrong; +import com.hbm.entity.missile.EntityMissileCluster; +import com.hbm.entity.missile.EntityMissileClusterStrong; +import com.hbm.entity.missile.EntityMissileCustom; +import com.hbm.entity.missile.EntityMissileDoomsday; +import com.hbm.entity.missile.EntityMissileDrill; +import com.hbm.entity.missile.EntityMissileEMP; +import com.hbm.entity.missile.EntityMissileEMPStrong; +import com.hbm.entity.missile.EntityMissileEndo; +import com.hbm.entity.missile.EntityMissileExo; +import com.hbm.entity.missile.EntityMissileGeneric; +import com.hbm.entity.missile.EntityMissileIncendiary; +import com.hbm.entity.missile.EntityMissileIncendiaryStrong; +import com.hbm.entity.missile.EntityMissileInferno; +import com.hbm.entity.missile.EntityMissileMicro; +import com.hbm.entity.missile.EntityMissileMirv; +import com.hbm.entity.missile.EntityMissileNuclear; +import com.hbm.entity.missile.EntityMissileRain; +import com.hbm.entity.missile.EntityMissileSchrabidium; +import com.hbm.entity.missile.EntityMissileShuttle; +import com.hbm.entity.missile.EntityMissileStrong; +import com.hbm.entity.missile.EntityMissileTaint; +import com.hbm.entity.missile.EntityMissileVolcano; +import com.hbm.entity.missile.EntitySiegeDropship; +import com.hbm.entity.missile.EntitySoyuz; +import com.hbm.entity.missile.EntitySoyuzCapsule; +import com.hbm.entity.missile.EntityTestMissile; +import com.hbm.entity.mob.EntityBlockSpider; +import com.hbm.entity.mob.EntityCyberCrab; +import com.hbm.entity.mob.EntityDuck; +import com.hbm.entity.mob.EntityFBI; +import com.hbm.entity.mob.EntityGhost; +import com.hbm.entity.mob.EntityHunterChopper; +import com.hbm.entity.mob.EntityMaskMan; +import com.hbm.entity.mob.EntityNuclearCreeper; +import com.hbm.entity.mob.EntityQuackos; +import com.hbm.entity.mob.EntityRADBeast; +import com.hbm.entity.mob.EntityTaintCrab; +import com.hbm.entity.mob.EntityTaintedCreeper; +import com.hbm.entity.mob.EntityTeslaCrab; +import com.hbm.entity.mob.EntityUFO; +import com.hbm.entity.mob.botprime.EntityBOTPrimeBody; +import com.hbm.entity.mob.botprime.EntityBOTPrimeHead; +import com.hbm.entity.mob.siege.EntitySiegeCraft; +import com.hbm.entity.mob.siege.EntitySiegeSkeleton; +import com.hbm.entity.mob.siege.EntitySiegeTunneler; +import com.hbm.entity.mob.siege.EntitySiegeUFO; +import com.hbm.entity.mob.siege.EntitySiegeZombie; +import com.hbm.entity.particle.EntityBSmokeFX; +import com.hbm.entity.particle.EntityChlorineFX; +import com.hbm.entity.particle.EntityCloudFX; +import com.hbm.entity.particle.EntityDSmokeFX; +import com.hbm.entity.particle.EntityFogFX; +import com.hbm.entity.particle.EntityGasFX; +import com.hbm.entity.particle.EntityOilSpillFX; +import com.hbm.entity.particle.EntityOrangeFX; +import com.hbm.entity.particle.EntityPinkCloudFX; +import com.hbm.entity.particle.EntitySSmokeFX; +import com.hbm.entity.particle.EntitySmokeFX; +import com.hbm.entity.particle.EntityTSmokeFX; +import com.hbm.entity.projectile.EntityAAShell; +import com.hbm.entity.projectile.EntityArtilleryShell; +import com.hbm.entity.projectile.EntityBeamVortex; +import com.hbm.entity.projectile.EntityBombletZeta; +import com.hbm.entity.projectile.EntityBoxcar; +import com.hbm.entity.projectile.EntityBuilding; +import com.hbm.entity.projectile.EntityBullet; +import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.entity.projectile.EntityBurningFOEQ; +import com.hbm.entity.projectile.EntityChopperMine; +import com.hbm.entity.projectile.EntityCombineBall; +import com.hbm.entity.projectile.EntityDischarge; +import com.hbm.entity.projectile.EntityDuchessGambit; +import com.hbm.entity.projectile.EntityExplosiveBeam; +import com.hbm.entity.projectile.EntityFallingNuke; +import com.hbm.entity.projectile.EntityFire; +import com.hbm.entity.projectile.EntityLN2; +import com.hbm.entity.projectile.EntityLaser; +import com.hbm.entity.projectile.EntityLaserBeam; +import com.hbm.entity.projectile.EntityMeteor; +import com.hbm.entity.projectile.EntityMinerBeam; +import com.hbm.entity.projectile.EntityModBeam; +import com.hbm.entity.projectile.EntityNightmareBlast; +import com.hbm.entity.projectile.EntityOilSpill; +import com.hbm.entity.projectile.EntityPlasmaBeam; +import com.hbm.entity.projectile.EntityRBMKDebris; +import com.hbm.entity.projectile.EntityRainbow; +import com.hbm.entity.projectile.EntityRocket; +import com.hbm.entity.projectile.EntityRocketHoming; +import com.hbm.entity.projectile.EntityRubble; +import com.hbm.entity.projectile.EntitySchrab; +import com.hbm.entity.projectile.EntityShrapnel; +import com.hbm.entity.projectile.EntitySiegeLaser; +import com.hbm.entity.projectile.EntitySparkBeam; +import com.hbm.entity.projectile.EntityTom; +import com.hbm.entity.projectile.EntityWaterSplash; +import com.hbm.entity.projectile.EntityZirnoxDebris; +import com.hbm.entity.qic.EntitySPV; +import com.hbm.main.MainRegistry; +import com.hbm.util.Tuple.Quartet; + +import cpw.mods.fml.common.registry.EntityRegistry; +import net.minecraft.entity.Entity; + +public class EntityMappings { + + public static List, String, Integer, Boolean>> entityMappings = new ArrayList(); + public static List, String, Integer, Integer>> mobMappings = new ArrayList(); + + public static void writeMappings() { + + addEntity(EntityRocket.class, "entity_rocket", 250); + addEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 250); + addEntity(EntityNukeExplosionAdvanced.class, "entity_nuke_explosion_advanced", 250); + addEntity(EntityGrenadeGeneric.class, "entity_grenade_generic", 250); + addEntity(EntityGrenadeStrong.class, "entity_grenade_strong", 250); + addEntity(EntityGrenadeFrag.class, "entity_grenade_frag", 250); + addEntity(EntityGrenadeFire.class, "entity_grenade_fire", 250); + addEntity(EntityGrenadeCluster.class, "entity_grenade_cluster", 250); + addEntity(EntityTestMissile.class, "entity_test_missile", 1000); + addEntity(EntityNukeCloudSmall.class, "entity_nuke_cloud_small", 10000); + addEntity(EntityBullet.class, "entity_bullet", 250); + addEntity(EntityGrenadeFlare.class, "entity_grenade_flare", 500); + addEntity(EntityGrenadeElectric.class, "entity_grenade_electric", 500); + addEntity(EntityGrenadePoison.class, "entity_grenade_poison", 500); + addEntity(EntityGrenadeGas.class, "entity_grenade_gas", 500); + addEntity(EntityGrenadeSchrabidium.class, "entity_grenade_schrab", 500); + addEntity(EntityGrenadeNuke.class, "entity_grenade_nuke", 500); + addEntity(EntitySchrab.class, "entity_schrabnel", 500); + addEntity(EntityMissileGeneric.class, "entity_missile_generic", 1000); + addEntity(EntityMissileStrong.class, "entity_missile_strong", 1000); + addEntity(EntityMissileNuclear.class, "entity_missile_nuclear", 1000); + addEntity(EntityMissileCluster.class, "entity_missile_cluster", 1000); + addEntity(EntityMissileIncendiary.class, "entity_missile_incendiary", 1000); + addEntity(EntityMissileAntiBallistic.class, "entity_missile_anti", 1000); + addEntity(EntityMissileBunkerBuster.class, "entity_missile_buster", 1000); + addEntity(EntityMissileIncendiaryStrong.class, "entity_missile_incendiary_strong", 1000); + addEntity(EntityMissileClusterStrong.class, "entity_missile_cluster_strong", 1000); + addEntity(EntityMissileBusterStrong.class, "entity_missile_buster_strong", 1000); + addEntity(EntityMissileBurst.class, "entity_missile_burst", 1000); + addEntity(EntityMissileInferno.class, "entity_missile_inferno", 1000); + addEntity(EntityMissileRain.class, "entity_missile_rain", 1000); + addEntity(EntityMissileDrill.class, "entity_missile_drill", 1000); + addEntity(EntityMissileEndo.class, "entity_missile_endo", 1000); + addEntity(EntityMissileExo.class, "entity_missile_exo", 1000); + addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000); + addEntity(EntityMIRV.class, "entity_mirvlet", 1000); + addEntity(EntitySmokeFX.class, "entity_smoke_fx", 1000); + addEntity(EntityNukeCloudBig.class, "entity_nuke_cloud_big", 1000); + addEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 1000); + addEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 1000); + addEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 500); + addEntity(EntityGrenadeTau.class, "entity_grenade_tau", 500); + addEntity(EntityChopperMine.class, "entity_chopper_mine", 1000); + addEntity(EntityCombineBall.class, "entity_combine_ball", 1000); + addEntity(EntityRainbow.class, "entity_rainbow", 1000); + addEntity(EntityGrenadeLemon.class, "entity_grenade_lemon", 500); + addEntity(EntityCloudFleija.class, "entity_cloud_fleija", 500); + addEntity(EntityGrenadeMk2.class, "entity_grenade_mk2", 500); + addEntity(EntityGrenadeZOMG.class, "entity_grenade_zomg", 500); + addEntity(EntityGrenadeASchrab.class, "entity_grenade_aschrab", 500); + addEntity(EntityNukeCloudNoShroom.class, "entity_nuke_cloud_no", 1000); + addEntity(EntityFalloutRain.class, "entity_fallout", 1000); + addEntity(EntityDischarge.class, "entity_emp_discharge", 500); + addEntity(EntityEMPBlast.class, "entity_emp_blast", 1000); + addEntity(EntityFire.class, "entity_fire", 1000); + addEntity(EntityPlasmaBeam.class, "entity_immolator_beam", 1000); + addEntity(EntityLN2.class, "entity_LN2", 1000); + addEntity(EntityNightmareBlast.class, "entity_ominous_bullet", 1000); + addEntity(EntityGrenadePulse.class, "entity_grenade_pulse", 1000); + addEntity(EntityNukeExplosionPlus.class, "entity_nuke_explosion_advanced", 250); + addEntity(EntityLaserBeam.class, "entity_laser_beam", 1000); + addEntity(EntityMinerBeam.class, "entity_miner_beam", 1000); + addEntity(EntityRubble.class, "entity_rubble", 1000); + addEntity(EntityDSmokeFX.class, "entity_d_smoke_fx", 1000); + addEntity(EntitySSmokeFX.class, "entity_s_smoke_fx", 1000); + addEntity(EntityShrapnel.class, "entity_shrapnel", 1000); + addEntity(EntityGrenadeShrapnel.class, "entity_grenade_shrapnel", 250); + addEntity(EntityBlackHole.class, "entity_black_hole", 250); + addEntity(EntityGrenadeBlackHole.class, "entity_grenade_black_hole", 250); + addEntity(EntityOilSpillFX.class, "entity_spill_fx", 1000); + addEntity(EntityOilSpill.class, "entity_oil_spill", 1000); + addEntity(EntityGasFX.class, "entity_spill_fx", 1000); + addEntity(EntityMinecartTest.class, "entity_minecart_test", 1000); + addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); + addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); + addEntity(EntityBombletTheta.class, "entity_theta", 1000); + addEntity(EntityBombletSelena.class, "entity_selena", 1000); + addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); + addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); + addEntity(EntityVortex.class, "entity_vortex", 250); + addEntity(EntityMeteor.class, "entity_meteor", 1000); + addEntity(EntityLaser.class, "entity_laser", 1000); + addEntity(EntityBoxcar.class, "entity_boxcar", 1000); + addEntity(EntityMissileTaint.class, "entity_missile_taint", 1000); + addEntity(EntityGrenadeGascan.class, "entity_grenade_gascan", 1000); + addEntity(EntityNukeExplosionMK4.class, "entity_nuke_mk4", 1000); + addEntity(EntityCloudFleijaRainbow.class, "entity_cloud_rainbow", 1000); + addEntity(EntityExplosiveBeam.class, "entity_beam_bomb", 1000); + addEntity(EntityAAShell.class, "entity_aa_shell", 1000); + addEntity(EntityRocketHoming.class, "entity_stinger", 1000); + addEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 1000); + addEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 1000); + addEntity(EntityRagingVortex.class, "entity_raging_vortex", 250); + addEntity(EntityCarrier.class, "entity_missile_carrier", 1000); + addEntity(EntityBooster.class, "entity_missile_booster", 1000); + addEntity(EntityModBeam.class, "entity_beam_bang", 1000); + addEntity(EntityMissileBHole.class, "entity_missile_blackhole", 1000); + addEntity(EntityMissileSchrabidium.class, "entity_missile_schrabidium", 1000); + addEntity(EntityMissileEMP.class, "entity_missile_emp", 1000); + addEntity(EntityChlorineFX.class, "entity_chlorine_fx", 1000); + addEntity(EntityPinkCloudFX.class, "entity_pink_cloud_fx", 1000); + addEntity(EntityCloudFX.class, "entity_cloud_fx", 1000); + addEntity(EntityGrenadePC.class, "entity_grenade_pink_cloud", 250); + addEntity(EntityGrenadeCloud.class, "entity_grenade_cloud", 250); + addEntity(EntityBomber.class, "entity_bomber", 1000); + addEntity(EntityBombletZeta.class, "entity_zeta", 1000); + addEntity(EntityOrangeFX.class, "entity_agent_orange", 1000); + addEntity(EntityDeathBlast.class, "entity_laser_blast", 1000); + addEntity(EntityGrenadeSmart.class, "entity_grenade_smart", 250); + addEntity(EntityGrenadeMIRV.class, "entity_grenade_mirv", 250); + addEntity(EntityGrenadeBreach.class, "entity_grenade_breach", 250); + addEntity(EntityGrenadeBurst.class, "entity_grenade_burst", 250); + addEntity(EntityBurningFOEQ.class, "entity_burning_foeq", 1000); + addEntity(EntityGrenadeIFGeneric.class, "entity_grenade_ironshod", 250); + addEntity(EntityGrenadeIFHE.class, "entity_grenade_ironshod_he", 250); + addEntity(EntityGrenadeIFBouncy.class, "entity_grenade_ironshod_bouncy", 250); + addEntity(EntityGrenadeIFSticky.class, "entity_grenade_ironshod_sticky", 250); + addEntity(EntityGrenadeIFImpact.class, "entity_grenade_ironshod_impact", 250); + addEntity(EntityGrenadeIFIncendiary.class, "entity_grenade_ironshod_fire", 250); + addEntity(EntityGrenadeIFToxic.class, "entity_grenade_ironshod_toxic", 250); + addEntity(EntityGrenadeIFConcussion.class, "entity_grenade_ironshod_con", 250); + addEntity(EntityGrenadeIFBrimstone.class, "entity_grenade_ironshod_brim", 250); + addEntity(EntityGrenadeIFMystery.class, "entity_grenade_ironshod_m", 250); + addEntity(EntityGrenadeIFSpark.class, "entity_grenade_ironshod_s", 250); + addEntity(EntityGrenadeIFHopwire.class, "entity_grenade_ironshod_hopwire", 250); + addEntity(EntityGrenadeIFNull.class, "entity_grenade_ironshod_null", 250); + addEntity(EntityFallingNuke.class, "entity_falling_bomb", 1000); + addEntity(EntityBulletBase.class, "entity_bullet_mk2", 250); + addEntity(EntityMinerRocket.class, "entity_miner_lander", 1000); + addEntity(EntityFogFX.class, "entity_nuclear_fog", 1000); + addEntity(EntityDuchessGambit.class, "entity_duchessgambit", 1000); + addEntity(EntityMissileEMPStrong.class, "entity_missile_emp_strong", 1000); + addEntity(EntityEMP.class, "entity_emp_logic", 1000); + addEntity(EntityWaterSplash.class, "entity_water_splash", 1000); + addEntity(EntityBobmazon.class, "entity_bobmazon_delivery", 1000); + addEntity(EntityMissileCustom.class, "entity_custom_missile", 1000); + addEntity(EntityBalefire.class, "entity_balefire", 1000); + addEntity(EntityTom.class, "entity_tom_the_moonstone", 1000); + addEntity(EntityTomBlast.class, "entity_tom_bust", 1000); + addEntity(EntityBuilding.class, "entity_falling_building", 1000); + addEntity(EntitySoyuz.class, "entity_soyuz", 1000); + addEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 1000); + addEntity(EntityMovingItem.class, "entity_c_item", 1000); + addEntity(EntityCloudTom.class, "entity_moonstone_blast", 1000); + addEntity(EntityBeamVortex.class, "entity_vortex_beam", 1000); + addEntity(EntityFireworks.class, "entity_firework_ball", 1000); + addEntity(EntityWastePearl.class, "entity_waste_pearl", 1000); + addEntity(EntityBOTPrimeHead.class, "entity_balls_o_tron", 1000); + addEntity(EntityBOTPrimeBody.class, "entity_balls_o_tron_seg", 1000); + addEntity(EntityBlockSpider.class, "entity_taintcrawler", 1000); + addEntity(EntityRBMKDebris.class, "entity_rbmk_debris", 1000); + addEntity(EntityUFO.class, "entity_ntm_ufo", 1000); + addEntity(EntityNukeExplosionNT.class, "entity_ntm_explosion_nt", 1000); + addEntity(EntityQuasar.class, "entity_digamma_quasar", 250); + addEntity(EntitySpear.class, "entity_digamma_spear", 1000); + addEntity(EntityMissileVolcano.class, "entity_missile_volcano", 1000); + addEntity(EntityMissileShuttle.class, "entity_missile_shuttle", 1000); + addEntity(EntityZirnoxDebris.class, "entity_zirnox_debris", 1000); + addEntity(EntityGhost.class, "entity_ntm_ghost", 1000); + addEntity(EntityGrenadeDynamite.class, "entity_grenade_dynamite", 250); + addEntity(EntitySiegeLaser.class, "entity_ntm_siege_laser", 1000); + addEntity(EntitySiegeDropship.class, "entity_ntm_siege_dropship", 1000); + addEntity(EntityTNTPrimedBase.class, "entity_ntm_tnt_primed", 1000); + addEntity(EntityGrenadeBouncyGeneric.class, "entity_grenade_bouncy_generic", 250); + addEntity(EntityGrenadeImpactGeneric.class, "entity_grenade_impact_generic", 250); + addEntity(EntityMinecartCrate.class, "entity_ntm_cart_crate", 250, false); + addEntity(EntityMinecartDestroyer.class, "entity_ntm_cart_crate", 250, false); + addEntity(EntityMinecartOre.class, "entity_ntm_cart_ore", 250, false); + addEntity(EntityMinecartBogie.class, "entity_ntm_cart_bogie", 250, false); + addEntity(EntityMagnusCartus.class, "entity_ntm_cart_chungoid", 250, false); + addEntity(EntityMinecartPowder.class, "entity_ntm_cart_powder", 250, false); + addEntity(EntityMinecartSemtex.class, "entity_ntm_cart_semtex", 250, false); + addEntity(EntityNukeTorex.class, "entity_effect_torex", 250, false); + addEntity(EntityArtilleryShell.class, "entity_artillery_shell", 1000); + addEntity(EntitySiegeTunneler.class, "entity_meme_tunneler", 1000); + addEntity(EntitySPV.class, "entity_self_propelled_vehicle_mark_1", 1000); + + addMob(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", 0x204131, 0x75CE00); + addMob(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", 0x813b9b, 0xd71fdd); + addMob(EntityHunterChopper.class, "entity_mob_hunter_chopper", 0x000020, 0x2D2D72); + addMob(EntityCyberCrab.class, "entity_cyber_crab", 0xAAAAAA, 0x444444); + addMob(EntityTeslaCrab.class, "entity_tesla_crab", 0xAAAAAA, 0x440000); + addMob(EntityTaintCrab.class, "entity_taint_crab", 0xAAAAAA, 0xFF00FF); + addMob(EntityMaskMan.class, "entity_mob_mask_man", 0x818572, 0xC7C1B7); + addMob(EntityDuck.class, "entity_fucc_a_ducc", 0xd0d0d0, 0xFFBF00); + addMob(EntityQuackos.class, "entity_elder_one", 0xd0d0d0, 0xFFBF00); + addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); + addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); + addMob(EntitySiegeZombie.class, "entity_meme_zombie", 0x303030, 0x008000); + addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080); + addMob(EntitySiegeUFO.class, "entity_meme_ufo", 0x303030, 0x800000); + addMob(EntitySiegeCraft.class, "entity_meme_craft", 0x303030, 0x808000); + + int id = 0; + for(Quartet, String, Integer, Boolean> entry : entityMappings) { + EntityRegistry.registerModEntity(entry.getW(), entry.getX(), id++, MainRegistry.instance, entry.getY(), 1, entry.getZ()); + } + + for(Quartet, String, Integer, Integer> entry : mobMappings) { + EntityRegistry.registerGlobalEntityID(entry.getW(), entry.getX(), EntityRegistry.findGlobalUniqueEntityId(), entry.getY(), entry.getZ()); + } + } + + private static void addEntity(Class clazz, String name, int trackingRange) { + addEntity(clazz, name, trackingRange, true); + } + + private static void addEntity(Class clazz, String name, int trackingRange, boolean velocityUpdates) { + entityMappings.add(new Quartet(clazz, name, trackingRange, velocityUpdates)); + } + + private static void addMob(Class clazz, String name, int color1, int color2) { + mobMappings.add(new Quartet(clazz, name, color1, color2)); + } +} diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index a6cef460f..92b21609a 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -146,13 +146,13 @@ public class EntityFalloutRain extends Entity { double d = dist / 100; - double chance = 0.05 - Math.pow((d - 0.6) * 0.5, 2); + double chance = 0.1 - Math.pow((d - 0.7) * 1.0, 2); if(chance >= rand.nextDouble() && ModBlocks.fallout.canPlaceBlockAt(worldObj, x, y + 1, z)) setBlock(x, y + 1, z, ModBlocks.fallout); } - if(b.isFlammable(worldObj, x, y, z, ForgeDirection.UP)) { + if(dist < 65 && b.isFlammable(worldObj, x, y, z, ForgeDirection.UP)) { if(rand.nextInt(5) == 0) setBlock(x, y + 1, z, Blocks.fire); } @@ -171,10 +171,15 @@ public class EntityFalloutRain extends Entity { } if(dist < 65 && b.getBlockHardness(worldObj, x, y, z) <= Blocks.stonebrick.getExplosionResistance(null)) { + Block bl = worldObj.getBlock(x, y - 1, z); if(bl == Blocks.air) { - EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldObj, x + 0.5D, y + 0.5D, z + 0.5D, worldObj.getBlock(x, y, z), worldObj.getBlockMetadata(x, y, z)); - worldObj.spawnEntityInWorld(entityfallingblock); + for(int i = 0; i <= depth; i++) { + if(worldObj.getBlock(x, y + i, z).getBlockHardness(worldObj, x, y + i, z) <= Blocks.stonebrick.getExplosionResistance(null)) { + EntityFallingBlock entityfallingblock = new EntityFallingBlock(worldObj, x + 0.5D, y + 0.5D + i, z + 0.5D, worldObj.getBlock(x, y + i, z), worldObj.getBlockMetadata(x, y + i, z)); + worldObj.spawnEntityInWorld(entityfallingblock); + } + } } } diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java index 6d0a40d70..ece1c9a82 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java @@ -1,5 +1,7 @@ package com.hbm.entity.logic; +import java.util.List; + import org.apache.logging.log4j.Level; import com.hbm.config.BombConfig; @@ -8,11 +10,19 @@ import com.hbm.entity.effect.EntityFalloutRain; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.explosion.ExplosionNukeRay; import com.hbm.handler.radiation.ChunkRadiationManager; +import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityNukeExplosionMK4 extends Entity { @@ -55,13 +65,13 @@ public class EntityNukeExplosionMK4 extends Entity { for(Object player : this.worldObj.playerEntities) ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); - if(!worldObj.isRemote && fallout && explosion != null) { + if(!worldObj.isRemote && fallout && explosion != null && this.ticksExisted < 10) { + + radiate(500_000, this.length * 2); - //float radMax = (float) (length / 2F * Math.pow(length, 2) / 35F); - float radMax = Math.min((float) (length / 2F * Math.pow(length, 1.5) / 35F), 15000); - //System.out.println(radMax); + /*float radMax = Math.min((float) (length / 2F * Math.pow(length, 1.5) / 35F), 15000); float rad = radMax / 4F; - ChunkRadiationManager.proxy.incrementRad(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rad); + ChunkRadiationManager.proxy.incrementRad(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), rad);*/ } if(!mute) { @@ -74,30 +84,14 @@ public class EntityNukeExplosionMK4 extends Entity { if(explosion == null) { explosion = new ExplosionNukeRay(worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, this.strength, this.count, this.speed, this.length); - - //MainRegistry.logger.info("START: " + System.currentTimeMillis()); - - /*if(!worldObj.isRemote) - for(int x = (int) (posX - 1); x <= (int) (posX + 1); x++) - for(int y = (int) (posY - 1); y <= (int) (posY + 1); y++) - for(int z = (int) (posZ - 1); z <= (int) (posZ + 1); z++) - worldObj.setBlock(x, y, z, Blocks.air);*/ } - //if(explosion.getStoredSize() < count / length) { if(!explosion.isAusf3Complete) { - //if(!worldObj.isRemote) - //MainRegistry.logger.info(explosion.getStoredSize() + " / " + count / length); - //explosion.collectTip(speed * 10); explosion.collectTipMk4_5(speed * 10); } else if(explosion.getStoredSize() > 0) { - //if(!worldObj.isRemote) - //MainRegistry.logger.info(explosion.getProgress() + " / " + count / length); explosion.processTip(BombConfig.mk4); } else if(fallout) { - //MainRegistry.logger.info("STOP: " + System.currentTimeMillis()); - EntityFalloutRain fallout = new EntityFalloutRain(this.worldObj); fallout.posX = this.posX; fallout.posY = this.posY; @@ -111,14 +105,45 @@ public class EntityNukeExplosionMK4 extends Entity { this.setDead(); } } - - @Override - protected void entityInit() { + + private void radiate(float rads, double range) { + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(posX, posY, posZ, posX, posY, posZ).expand(range, range, range)); + + for(EntityLivingBase e : entities) { + + Vec3 vec = Vec3.createVectorHelper(e.posX - posX, (e.posY + e.getEyeHeight()) - posY, e.posZ - posZ); + double len = vec.lengthVector(); + vec = vec.normalize(); + + float res = 0; + + for(int i = 1; i < len; i++) { + + int ix = (int)Math.floor(posX + vec.xCoord * i); + int iy = (int)Math.floor(posY + vec.yCoord * i); + int iz = (int)Math.floor(posZ + vec.zCoord * i); + + res += worldObj.getBlock(ix, iy, iz).getExplosionResistance(null); + } + + if(res < 1) + res = 1; + + float eRads = rads; + eRads /= (float)res; + eRads /= (float)(len * len); + + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); + } } + @Override + protected void entityInit() { } + @Override protected void readEntityFromNBT(NBTTagCompound nbt) { + this.ticksExisted = nbt.getInteger("ticksExisted"); /*strength = nbt.getInteger("strength"); count = nbt.getInteger("count"); @@ -131,7 +156,9 @@ public class EntityNukeExplosionMK4 extends Entity { } @Override - protected void writeEntityToNBT(NBTTagCompound nbt) { } + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setInteger("ticksExisted", this.ticksExisted); + } public static EntityNukeExplosionMK4 statFac(World world, int r, double x, double y, double z) { diff --git a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java index 0aa26034c..2d431699e 100644 --- a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java +++ b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java @@ -44,334 +44,305 @@ import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityNuclearCreeper extends EntityMob { - - private int lastActiveTime; - private int timeSinceIgnited; - private int fuseTime = 75; - public EntityNuclearCreeper(World p_i1733_1_) - { - super(p_i1733_1_); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAINuclearCreeperSwell(this)); - this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0D, false)); - this.tasks.addTask(4, new EntityAIWander(this, 0.8D)); - this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(6, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); - this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); - this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityOcelot.class, 0, true)); - } + private int lastActiveTime; + private int timeSinceIgnited; + private int fuseTime = 75; - @Override - protected void applyEntityAttributes() - { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.3D); - } - - @Override + public EntityNuclearCreeper(World p_i1733_1_) { + super(p_i1733_1_); + this.tasks.addTask(1, new EntityAISwimming(this)); + this.tasks.addTask(2, new EntityAINuclearCreeperSwell(this)); + this.tasks.addTask(3, new EntityAIAttackOnCollide(this, 1.0D, false)); + this.tasks.addTask(4, new EntityAIWander(this, 0.8D)); + this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); + this.tasks.addTask(6, new EntityAILookIdle(this)); + this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); + this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityOcelot.class, 0, true)); + } + + @Override + protected void applyEntityAttributes() { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.3D); + } + + @Override public boolean attackEntityFrom(DamageSource source, float amount) { - - if(source == ModDamageSource.radiation || source == ModDamageSource.mudPoisoning) { - this.heal(amount); - return false; - } + + if(source == ModDamageSource.radiation || source == ModDamageSource.mudPoisoning) { + this.heal(amount); + return false; + } return super.attackEntityFrom(source, amount); } - - @Override - public boolean isAIEnabled() - { - return true; - } - - @Override - public int getMaxSafePointTries() - { - return this.getAttackTarget() == null ? 3 : 3 + (int)(this.getHealth() - 1.0F); - } - - @Override - protected void fall(float p_70069_1_) - { - super.fall(p_70069_1_); - this.timeSinceIgnited = (int)(this.timeSinceIgnited + p_70069_1_ * 1.5F); - if (this.timeSinceIgnited > this.fuseTime - 5) - { - this.timeSinceIgnited = this.fuseTime - 5; - } - } + @Override + public boolean isAIEnabled() { + return true; + } - @Override - protected void entityInit() - { - super.entityInit(); - this.dataWatcher.addObject(16, Byte.valueOf((byte) - 1)); - this.dataWatcher.addObject(17, Byte.valueOf((byte)0)); - this.dataWatcher.addObject(18, Byte.valueOf((byte)0)); - } - - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - super.writeEntityToNBT(p_70014_1_); + @Override + public int getMaxSafePointTries() { + return this.getAttackTarget() == null ? 3 : 3 + (int) (this.getHealth() - 1.0F); + } - if (this.dataWatcher.getWatchableObjectByte(17) == 1) - { - p_70014_1_.setBoolean("powered", true); - } + @Override + protected void fall(float p_70069_1_) { + super.fall(p_70069_1_); + this.timeSinceIgnited = (int) (this.timeSinceIgnited + p_70069_1_ * 1.5F); - p_70014_1_.setShort("Fuse", (short)this.fuseTime); - p_70014_1_.setBoolean("ignited", this.func_146078_ca()); - } - - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - super.readEntityFromNBT(p_70037_1_); - this.dataWatcher.updateObject(17, Byte.valueOf((byte)(p_70037_1_.getBoolean("powered") ? 1 : 0))); + if(this.timeSinceIgnited > this.fuseTime - 5) { + this.timeSinceIgnited = this.fuseTime - 5; + } + } - if (p_70037_1_.hasKey("Fuse", 99)) - { - this.fuseTime = p_70037_1_.getShort("Fuse"); - } + @Override + protected void entityInit() { + super.entityInit(); + this.dataWatcher.addObject(16, Byte.valueOf((byte) -1)); + this.dataWatcher.addObject(17, Byte.valueOf((byte) 0)); + this.dataWatcher.addObject(18, Byte.valueOf((byte) 0)); + } - if (p_70037_1_.getBoolean("ignited")) - { - this.func_146079_cb(); - } - } - - @Override - public void onUpdate() - { - if(this.isDead) - { - this.isDead = false; - this.heal(10.0F); - } - - if (this.isEntityAlive()) - { - this.lastActiveTime = this.timeSinceIgnited; + @Override + public void writeEntityToNBT(NBTTagCompound p_70014_1_) { + super.writeEntityToNBT(p_70014_1_); - if (this.func_146078_ca()) - { - this.setCreeperState(1); - } + if(this.dataWatcher.getWatchableObjectByte(17) == 1) { + p_70014_1_.setBoolean("powered", true); + } - int i = this.getCreeperState(); + p_70014_1_.setShort("Fuse", (short) this.fuseTime); + p_70014_1_.setBoolean("ignited", this.func_146078_ca()); + } - if (i > 0 && this.timeSinceIgnited == 0) - { - this.playSound("creeper.primed", 1.0F * 30 / 75, 0.5F); - } + @Override + public void readEntityFromNBT(NBTTagCompound p_70037_1_) { + super.readEntityFromNBT(p_70037_1_); + this.dataWatcher.updateObject(17, Byte.valueOf((byte) (p_70037_1_.getBoolean("powered") ? 1 : 0))); - this.timeSinceIgnited += i; + if(p_70037_1_.hasKey("Fuse", 99)) { + this.fuseTime = p_70037_1_.getShort("Fuse"); + } - if (this.timeSinceIgnited < 0) - { - this.timeSinceIgnited = 0; - } + if(p_70037_1_.getBoolean("ignited")) { + this.func_146079_cb(); + } + } - if (this.timeSinceIgnited >= this.fuseTime) - { - this.timeSinceIgnited = this.fuseTime; - this.func_146077_cc(); - } - } - - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); + @Override + public void onUpdate() { + if(this.isDead) { + this.isDead = false; + this.heal(10.0F); + } - for(Entity e : list) - if(e instanceof EntityLivingBase) { - ContaminationUtil.contaminate((EntityLivingBase)e, HazardType.RADIATION, ContaminationType.CREATIVE, 0.25F); - } + if(this.isEntityAlive()) { + this.lastActiveTime = this.timeSinceIgnited; - super.onUpdate(); - - if(this.getHealth() < this.getMaxHealth() && this.ticksExisted % 10 == 0) - { - this.heal(1.0F); - } - } - - @Override - protected String getHurtSound() - { - return "mob.creeper.say"; - } - - @Override - protected String getDeathSound() - { - return "mob.creeper.death"; - } - - @Override - public void onDeath(DamageSource p_70645_1_) - { - super.onDeath(p_70645_1_); - - List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(50, 50, 50)); - - for(EntityPlayer player : players) { - player.triggerAchievement(MainRegistry.bossCreeper); - } + if(this.func_146078_ca()) { + this.setCreeperState(1); + } - if (p_70645_1_.getEntity() instanceof EntitySkeleton || (p_70645_1_.isProjectile() && p_70645_1_.getEntity() instanceof EntityArrow && ((EntityArrow)(p_70645_1_.getEntity())).shootingEntity == null)) - { - int i = rand.nextInt(11); - int j = rand.nextInt(3); - if(i == 0) - this.dropItem(ModItems.nugget_u235, j); - if(i == 1) - this.dropItem(ModItems.nugget_pu238, j); - if(i == 2) - this.dropItem(ModItems.nugget_pu239, j); - if(i == 3) - this.dropItem(ModItems.nugget_neptunium, j); - if(i == 4) - this.dropItem(ModItems.man_core, 1); - if(i == 5) - { - this.dropItem(ModItems.sulfur, j * 2); - this.dropItem(ModItems.niter, j * 2); - } - if(i == 6) - this.dropItem(ModItems.syringe_awesome, 1); - if(i == 7) - this.dropItem(ModItems.fusion_core, 1); - if(i == 8) - this.dropItem(ModItems.syringe_metal_stimpak, 1); - if(i == 9) - { - switch(rand.nextInt(4)) - { - case 0: this.dropItem(ModItems.t45_helmet, 1); break; - case 1: this.dropItem(ModItems.t45_plate, 1); break; - case 2: this.dropItem(ModItems.t45_legs, 1); break; - case 3: this.dropItem(ModItems.t45_boots, 1); break; - } - this.dropItem(ModItems.fusion_core, 1); - } - if(i == 10) - this.dropItem(ModItems.ammo_nuke_high, 1); - } - } + int i = this.getCreeperState(); - @Override - public boolean attackEntityAsMob(Entity p_70652_1_) - { - return true; - } - - public boolean getPowered() - { - return this.dataWatcher.getWatchableObjectByte(17) == 1; - } - - @SideOnly(Side.CLIENT) - public float getCreeperFlashIntensity(float p_70831_1_) - { - return (this.lastActiveTime + (this.timeSinceIgnited - this.lastActiveTime) * p_70831_1_) / (this.fuseTime - 2); - } + if(i > 0 && this.timeSinceIgnited == 0) { + this.playSound("creeper.primed", 1.0F * 30 / 75, 0.5F); + } - @Override - protected Item getDropItem() - { - return Item.getItemFromBlock(Blocks.tnt); - } + this.timeSinceIgnited += i; - @Override - protected void dropFewItems(boolean p_70628_1_, int p_70628_2_) { - - super.dropFewItems(p_70628_1_, p_70628_2_); - - if(rand.nextInt(3) == 0) - this.dropItem(ModItems.coin_creeper, 1); - } - - public int getCreeperState() - { - return this.dataWatcher.getWatchableObjectByte(16); - } - - public void setCreeperState(int p_70829_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)p_70829_1_)); - } - - @Override - public void onStruckByLightning(EntityLightningBolt p_70077_1_) - { - super.onStruckByLightning(p_70077_1_); - this.dataWatcher.updateObject(17, Byte.valueOf((byte)1)); - } - - @Override - protected boolean interact(EntityPlayer p_70085_1_) - { - ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + if(this.timeSinceIgnited < 0) { + this.timeSinceIgnited = 0; + } - if (itemstack != null && itemstack.getItem() == Items.flint_and_steel) - { - this.worldObj.playSoundEffect(this.posX + 0.5D, this.posY + 0.5D, this.posZ + 0.5D, "fire.ignite", 1.0F, this.rand.nextFloat() * 0.4F + 0.8F); - p_70085_1_.swingItem(); + if(this.timeSinceIgnited >= this.fuseTime) { + this.timeSinceIgnited = this.fuseTime; + this.func_146077_cc(); + } + } - if (!this.worldObj.isRemote) - { - this.func_146079_cb(); - itemstack.damageItem(1, p_70085_1_); - return true; - } - } + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - 5, posY - 5, posZ - 5, posX + 5, posY + 5, posZ + 5)); - return super.interact(p_70085_1_); - } + for(Entity e : list) + if(e instanceof EntityLivingBase) { + ContaminationUtil.contaminate((EntityLivingBase) e, HazardType.RADIATION, ContaminationType.CREATIVE, 0.25F); + } - private void func_146077_cc() - { - if (!this.worldObj.isRemote) - { - boolean flag = this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing"); + super.onUpdate(); - if (this.getPowered()) { - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "muke"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); - worldObj.playSoundEffect(posX, posY + 0.5, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + if(this.getHealth() < this.getMaxHealth() && this.ticksExisted % 10 == 0) { + this.heal(1.0F); + } + } - if(flag) { - worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, 50, posX, posY, posZ).mute()); - } else { - ExplosionNukeGeneric.dealDamage(worldObj, posX, posY + 0.5, posZ, 100); - } - } else { - - ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.medium); - } + @Override + protected String getHurtSound() { + return "mob.creeper.say"; + } - this.setDead(); - } - } + @Override + protected String getDeathSound() { + return "mob.creeper.death"; + } - public boolean func_146078_ca() - { - return this.dataWatcher.getWatchableObjectByte(18) != 0; - } + @Override + public void onDeath(DamageSource p_70645_1_) { + super.onDeath(p_70645_1_); - public void func_146079_cb() - { - this.dataWatcher.updateObject(18, Byte.valueOf((byte)1)); - } - - public void setPowered(int power) { - this.dataWatcher.updateObject(17, power); - } + List players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, this.boundingBox.expand(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.bossCreeper); + } + + if(p_70645_1_.getEntity() instanceof EntitySkeleton || (p_70645_1_.isProjectile() && p_70645_1_.getEntity() instanceof EntityArrow && ((EntityArrow) (p_70645_1_.getEntity())).shootingEntity == null)) { + int i = rand.nextInt(11); + int j = rand.nextInt(3); + if(i == 0) + this.dropItem(ModItems.nugget_u235, j); + if(i == 1) + this.dropItem(ModItems.nugget_pu238, j); + if(i == 2) + this.dropItem(ModItems.nugget_pu239, j); + if(i == 3) + this.dropItem(ModItems.nugget_neptunium, j); + if(i == 4) + this.dropItem(ModItems.man_core, 1); + if(i == 5) { + this.dropItem(ModItems.sulfur, j * 2); + this.dropItem(ModItems.niter, j * 2); + } + if(i == 6) + this.dropItem(ModItems.syringe_awesome, 1); + if(i == 7) + this.dropItem(ModItems.fusion_core, 1); + if(i == 8) + this.dropItem(ModItems.syringe_metal_stimpak, 1); + if(i == 9) { + switch(rand.nextInt(4)) { + case 0: + this.dropItem(ModItems.t45_helmet, 1); + break; + case 1: + this.dropItem(ModItems.t45_plate, 1); + break; + case 2: + this.dropItem(ModItems.t45_legs, 1); + break; + case 3: + this.dropItem(ModItems.t45_boots, 1); + break; + } + this.dropItem(ModItems.fusion_core, 1); + } + if(i == 10) + this.dropItem(ModItems.ammo_nuke_high, 1); + } + } + + @Override + public boolean attackEntityAsMob(Entity p_70652_1_) { + return true; + } + + public boolean getPowered() { + return this.dataWatcher.getWatchableObjectByte(17) == 1; + } + + @SideOnly(Side.CLIENT) + public float getCreeperFlashIntensity(float p_70831_1_) { + return (this.lastActiveTime + (this.timeSinceIgnited - this.lastActiveTime) * p_70831_1_) / (this.fuseTime - 2); + } + + @Override + protected Item getDropItem() { + return Item.getItemFromBlock(Blocks.tnt); + } + + @Override + protected void dropFewItems(boolean p_70628_1_, int p_70628_2_) { + + super.dropFewItems(p_70628_1_, p_70628_2_); + + if(rand.nextInt(3) == 0) + this.dropItem(ModItems.coin_creeper, 1); + } + + public int getCreeperState() { + return this.dataWatcher.getWatchableObjectByte(16); + } + + public void setCreeperState(int p_70829_1_) { + this.dataWatcher.updateObject(16, Byte.valueOf((byte) p_70829_1_)); + } + + @Override + public void onStruckByLightning(EntityLightningBolt p_70077_1_) { + super.onStruckByLightning(p_70077_1_); + this.dataWatcher.updateObject(17, Byte.valueOf((byte) 1)); + } + + @Override + protected boolean interact(EntityPlayer p_70085_1_) { + ItemStack itemstack = p_70085_1_.inventory.getCurrentItem(); + + if(itemstack != null && itemstack.getItem() == Items.flint_and_steel) { + this.worldObj.playSoundEffect(this.posX + 0.5D, this.posY + 0.5D, this.posZ + 0.5D, "fire.ignite", 1.0F, this.rand.nextFloat() * 0.4F + 0.8F); + p_70085_1_.swingItem(); + + if(!this.worldObj.isRemote) { + this.func_146079_cb(); + itemstack.damageItem(1, p_70085_1_); + return true; + } + } + + return super.interact(p_70085_1_); + } + + private void func_146077_cc() { + if(!this.worldObj.isRemote) { + boolean flag = this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing"); + + if(this.getPowered()) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "muke"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(dimension, posX, posY, posZ, 250)); + worldObj.playSoundEffect(posX, posY + 0.5, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + + if(flag) { + worldObj.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(worldObj, 50, posX, posY, posZ).mute()); + } else { + ExplosionNukeGeneric.dealDamage(worldObj, posX, posY + 0.5, posZ, 100); + } + } else { + + if(flag) { + ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.medium); + } else { + ExplosionNukeSmall.explode(worldObj, posX, posY + 0.5, posZ, ExplosionNukeSmall.safe); + } + } + + this.setDead(); + } + } + + public boolean func_146078_ca() { + return this.dataWatcher.getWatchableObjectByte(18) != 0; + } + + public void func_146079_cb() { + this.dataWatcher.updateObject(18, Byte.valueOf((byte) 1)); + } + + public void setPowered(int power) { + this.dataWatcher.updateObject(17, power); + } } diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 144dcb6b6..c33bd2bbd 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -225,13 +225,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_fusion_multiblock: { - if(entity instanceof TileEntityFusionMultiblock) { - return new ContainerFusionMultiblock(player.inventory, (TileEntityFusionMultiblock) entity); - } - return null; - } - case ModBlocks.guiID_schrabidium_transmutator: { if(entity instanceof TileEntityMachineSchrabidiumTransmutator) { return new ContainerMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity); @@ -1051,13 +1044,6 @@ public class GUIHandler implements IGuiHandler { return null; } - case ModBlocks.guiID_fusion_multiblock: { - if(entity instanceof TileEntityFusionMultiblock) { - return new GUIFusionMultiblock(player.inventory, (TileEntityFusionMultiblock) entity); - } - return null; - } - case ModBlocks.guiID_schrabidium_transmutator: { if(entity instanceof TileEntityMachineSchrabidiumTransmutator) { return new GUIMachineSchrabidiumTransmutator(player.inventory, (TileEntityMachineSchrabidiumTransmutator) entity); diff --git a/src/main/java/com/hbm/inventory/container/ContainerFusionMultiblock.java b/src/main/java/com/hbm/inventory/container/ContainerFusionMultiblock.java deleted file mode 100644 index 013a577bb..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerFusionMultiblock.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.tileentity.machine.TileEntityFusionMultiblock; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerFusionMultiblock extends Container { - - private TileEntityFusionMultiblock diFurnace; - - private boolean isRunning; - - public ContainerFusionMultiblock(InventoryPlayer invPlayer, TileEntityFusionMultiblock tedf) { - - diFurnace = tedf; - - //Water Input - this.addSlotToContainer(new Slot(tedf, 0, 8, 108 - 18)); - //Battery - this.addSlotToContainer(new Slot(tedf, 1, 26, 108 - 18)); - //Deut Input - this.addSlotToContainer(new Slot(tedf, 2, 134, 108 - 18)); - //Trit Input - this.addSlotToContainer(new Slot(tedf, 3, 152, 108 - 18)); - //Startup - this.addSlotToContainer(new Slot(tedf, 4, 53, 45)); - this.addSlotToContainer(new Slot(tedf, 5, 107, 45)); - this.addSlotToContainer(new Slot(tedf, 6, 53, 81)); - this.addSlotToContainer(new Slot(tedf, 7, 107, 81)); - this.addSlotToContainer(new Slot(tedf, 8, 80, 63)); - //Water Output - this.addSlotToContainer(new Slot(tedf, 9, 8, 108)); - //Deut Output - this.addSlotToContainer(new Slot(tedf, 10, 134, 108)); - //Trit Output - this.addSlotToContainer(new Slot(tedf, 11, 152, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 1, isRunning ? 1 : 0); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 11) { - if (!this.mergeItemStack(var5, 12, this.inventorySlots.size(), true)) - { - return null; - } - } else { - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return diFurnace.isUseableByPlayer(player); - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - - for(int i = 0; i < this.crafters.size(); i++) - { - ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.isRunning != this.diFurnace.isRunning()) - { - par1.sendProgressBarUpdate(this, 1, this.diFurnace.isRunning() ? 1 : 0); - } - } - - this.isRunning = this.diFurnace.isRunning(); - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - if(j == 0) - { - diFurnace.emptyPlasma(); - } else { - diFurnace.fillPlasma(); - } - } - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIFusionMultiblock.java b/src/main/java/com/hbm/inventory/gui/GUIFusionMultiblock.java deleted file mode 100644 index bf1982cfc..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIFusionMultiblock.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.FluidTank; -import com.hbm.inventory.container.ContainerFusionMultiblock; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityFusionMultiblock; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIFusionMultiblock extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_fusion_multiblock.png"); - private TileEntityFusionMultiblock diFurnace; - - public GUIFusionMultiblock(InventoryPlayer invPlayer, TileEntityFusionMultiblock tedf) { - super(new ContainerFusionMultiblock(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 88 - 70, 16, 70); - diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 88 - 70, 16, 70); - diFurnace.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 88 - 70, 16, 70); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 88 - 70, 16, 70, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - int k = (int)diFurnace.getPowerScaled(70); - drawTexturedModalRect(guiLeft + 26, guiTop + 88 - k, 192, 88 - k, 16, k); - - if(diFurnace.isRunning()) - drawTexturedModalRect(guiLeft + 80, guiTop + 18, 240, 0, 16, 16); - - diFurnace.tanks[0].renderTank(guiLeft + 8, guiTop + 88, this.zLevel, 16, 70); - diFurnace.tanks[1].renderTank(guiLeft + 134, guiTop + 88, this.zLevel, 16, 70); - diFurnace.tanks[2].renderTank(guiLeft + 152, guiTop + 88, this.zLevel, 16, 70); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java index ce0d4b30a..27fbdedb4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbofan.java @@ -2,7 +2,6 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; -import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineTurbofan; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; @@ -57,7 +56,7 @@ public class GUIMachineTurbofan extends GuiInfoContainer { } if(diFurnace.afterburner > 0) { - int i = diFurnace.afterburner; + int i = Math.min(diFurnace.afterburner, 6); drawTexturedModalRect(guiLeft + 107, guiTop + 53, 176, (i - 1) * 16, 16, 16); } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 95b261194..a21a31700 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -638,6 +638,14 @@ public class AssemblerRecipes { new ComparableStack(ModItems.bolt_dura_steel, 3), new ComparableStack(ModItems.motor, 1), }, 300); + + makeRecipe(new ComparableStack(ModBlocks.fire_door, 1), new AStack[] { + new OreDictStack(STEEL.ingot(), 8), + new OreDictStack(STEEL.plate(), 8), + new OreDictStack(ALLOY.plate(), 4), + new ComparableStack(ModItems.bolt_tungsten, 4), + new ComparableStack(ModItems.motor, 2), + }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_chekhov, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index b6476112f..d793d99e6 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -170,6 +170,22 @@ public class AnvilRecipes { new ComparableStack(ModItems.circuit_aluminium, 1 * ukModifier) }, new AnvilOutput(new ItemStack(ModBlocks.machine_assembler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.furnace), + new OreDictStack(STEEL.plate(), 8), + new OreDictStack(CU.ingot(), 8) + }, new AnvilOutput(new ItemStack(ModBlocks.heater_firebox))).setTier(2)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new ComparableStack(Blocks.stonebrick, 16), + new OreDictStack(IRON.ingot(), 4), + new OreDictStack(STEEL.plate(), 16), + new OreDictStack(CU.ingot(), 8), + new ComparableStack(ModBlocks.steel_grate, 16) + }, new AnvilOutput(new ItemStack(ModBlocks.furnace_steel))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.ingot(), 6), diff --git a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java index bfd315f46..1a04a4649 100644 --- a/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java +++ b/src/main/java/com/hbm/items/machine/ItemMachineUpgrade.java @@ -101,31 +101,13 @@ public class ItemMachineUpgrade extends Item { list.add("Fortune +3 / Delay +45"); } - if(this == ModItems.upgrade_afterburn_1) { + if(this.type == UpgradeType.AFTERBURN) { list.add(EnumChatFormatting.RED + "Turbofan:"); - list.add("Production x2 / Consumption x2.5"); + list.add("Production x" + (this.tier + 1) + " / Consumption x" + (this.tier + 2)); list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Afterburn +3s"); + list.add("Afterburn +" + (this.tier * 3) + "s"); list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Burn 10mB of gas for 50HE/t"); - } - - if(this == ModItems.upgrade_afterburn_2) { - list.add(EnumChatFormatting.RED + "Turbofan:"); - list.add("Production x3 / Consumption x5"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Afterburn +6s"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Burn 20mB of gas for 100HE/t"); - } - - if(this == ModItems.upgrade_afterburn_3) { - list.add(EnumChatFormatting.RED + "Turbofan:"); - list.add("Production x4 / Consumption x7.5"); - list.add(EnumChatFormatting.RED + "Maxwell:"); - list.add("Afterburn +9s"); - list.add(EnumChatFormatting.RED + "Oil Wells:"); - list.add("Burn 30mB of gas for 150HE/t"); + list.add("Burn " + (this.tier * 10) + "mB of gas for " + (this.tier * 50) + "HE/t"); } if(this == ModItems.upgrade_radius) { diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 24e8b3b64..c6b7e4276 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -214,8 +214,6 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { - System.out.println("PRE " + world.isRemote + " " + stack.getItemDamage()); - if(world.isRemote || this.breakAbility.size() < 2 || !canOperate(stack)) return super.onItemRightClick(stack, world, player); @@ -245,8 +243,6 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc world.playSoundAtEntity(player, "random.orb", 0.25F, getCurrentAbility(stack) == null ? 0.75F : 1.25F); - System.out.println("POST " + world.isRemote + " " + stack.getItemDamage()); - return stack; } diff --git a/src/main/java/com/hbm/items/tool/ItemWandS.java b/src/main/java/com/hbm/items/tool/ItemWandS.java index 9db318929..ea7ba07fa 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandS.java +++ b/src/main/java/com/hbm/items/tool/ItemWandS.java @@ -4,9 +4,6 @@ import java.util.List; import java.util.Random; import com.hbm.world.machine.FWatz; -import com.hbm.world.machine.FactoryAdvanced; -import com.hbm.world.machine.FactoryTitanium; -import com.hbm.world.machine.FusionReactor; import com.hbm.world.machine.NuclearReactor; import com.hbm.world.machine.Watz; @@ -31,21 +28,12 @@ public class ItemWandS extends Item { switch(itemstack.stackTagCompound.getInteger("building")) { case 0: - list.add("Structure: Titanium Factory"); - break; - case 1: - list.add("Structure: Advanced Factory"); - break; - case 2: list.add("Structure: Nuclear Reactor"); break; - case 3: - list.add("Structure: Fusion Reactor"); - break; - case 4: + case 1: list.add("Structure: Watz Power Plant"); break; - case 5: + case 2: list.add("Structure: Fusionary Watz Plant"); break; } @@ -70,21 +58,12 @@ public class ItemWandS extends Item { switch(stack.stackTagCompound.getInteger("building")) { case 0: - new FactoryTitanium().generate(world, rand, x, up ? y : y - 2, z); - break; - case 1: - new FactoryAdvanced().generate(world, rand, x, up ? y : y - 2, z); - break; - case 2: new NuclearReactor().generate(world, rand, x, up ? y : y - 4, z); break; - case 3: - new FusionReactor().generate(world, rand, x, up ? y : y - 4, z); - break; - case 4: + case 1: new Watz().generate(world, rand, x, up ? y : y - 12, z); break; - case 5: + case 2: new FWatz().generateHull(world, rand, x, up ? y : y - 18, z); break; } @@ -103,12 +82,12 @@ public class ItemWandS extends Item { stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound.setInteger("building", 0); if(world.isRemote) - player.addChatMessage(new ChatComponentText("Set Structure: Titanium Factory")); + player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); } else { int i = stack.stackTagCompound.getInteger("building"); i++; stack.stackTagCompound.setInteger("building", i); - if(i >= 6) { + if(i >= 3) { stack.stackTagCompound.setInteger("building", 0); } @@ -117,25 +96,16 @@ public class ItemWandS extends Item { switch(i) { case 0: - player.addChatMessage(new ChatComponentText("Set Structure: Titanium Factory")); - break; - case 1: - player.addChatMessage(new ChatComponentText("Set Structure: Advanced Factory")); - break; - case 2: player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); break; - case 3: - player.addChatMessage(new ChatComponentText("Set Structure: Fusion Reactor")); - break; - case 4: + case 1: player.addChatMessage(new ChatComponentText("Set Structure: Watz Power Plant")); break; - case 5: + case 2: player.addChatMessage(new ChatComponentText("Set Structure: Fusionary Watz Plant")); break; default: - player.addChatMessage(new ChatComponentText("Set Structure: Titanium Factory")); + player.addChatMessage(new ChatComponentText("Set Structure: Nuclear Reactor")); break; } } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 5ccdf03ab..6e13476dc 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -450,23 +450,6 @@ public class Library { { tileentity = worldObj.getTileEntity(x - 2, y, z); } - //Large Fusion Reactor - if(block == ModBlocks.fusion_hatch && worldObj.getBlock(x, y, z + 8) == ModBlocks.fusion_core) - { - tileentity = worldObj.getTileEntity(x, y, z + 8); - } - if(block == ModBlocks.fusion_hatch && worldObj.getBlock(x, y, z - 8) == ModBlocks.fusion_core) - { - tileentity = worldObj.getTileEntity(x, y, z - 8); - } - if(block == ModBlocks.fusion_hatch && worldObj.getBlock(x + 8, y, z) == ModBlocks.fusion_core) - { - tileentity = worldObj.getTileEntity(x + 8, y, z); - } - if(block == ModBlocks.fusion_hatch && worldObj.getBlock(x - 8, y, z) == ModBlocks.fusion_core) - { - tileentity = worldObj.getTileEntity(x - 8, y, z); - } //FWatz Reactor if(block == ModBlocks.fwatz_hatch && worldObj.getBlock(x, y + 11, z + 9) == ModBlocks.fwatz_core) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 77604dd08..c32206965 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -15,7 +15,6 @@ import net.minecraft.client.renderer.entity.RenderMinecart; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -329,6 +328,7 @@ public class ClientProxy extends ServerProxy { for(Entry entry : ItemRenderLibrary.renderers.entrySet()) MinecraftForgeClient.registerItemRenderer(entry.getKey(), entry.getValue()); + //this bit registers an item renderer for every existing tile entity renderer that implements IItemRendererProvider Iterator iterator = TileEntityRendererDispatcher.instance.mapSpecialRenderers.values().iterator(); while(iterator.hasNext()) { Object renderer = iterator.next(); @@ -723,6 +723,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderBlockMultipass()); RenderingRegistry.registerBlockHandler(new RenderBlockSideRotation()); RenderingRegistry.registerBlockHandler(new RenderDiode()); + RenderingRegistry.registerBlockHandler(new RenderBoxDuct()); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_dynamite.getRenderType(), ResourceManager.charge_dynamite)); RenderingRegistry.registerBlockHandler(new RenderBlockRotated(ModBlocks.charge_c4.getRenderType(), ResourceManager.charge_c4)); @@ -1701,7 +1702,8 @@ public class ClientProxy extends ServerProxy { double mX = data.getDouble("mX"); double mY = data.getDouble("mY"); double mZ = data.getDouble("mZ"); - ParticleGasFlame text = new ParticleGasFlame(world, x, y, z, mX, mY, mZ, 6.5F); + float scale = data.getFloat("scale"); + ParticleGasFlame text = new ParticleGasFlame(world, x, y, z, mX, mY, mZ, scale > 0 ? scale : 6.5F); Minecraft.getMinecraft().effectRenderer.addEffect(text); } } @@ -1734,7 +1736,7 @@ public class ClientProxy extends ServerProxy { @Override public AudioWrapper getLoopedSoundStartStop(World world, String sound, String start, String stop, float x, float y, float z, float volume, float pitch) { - AudioWrapperClientStartStop audio = new AudioWrapperClientStartStop(world, sound == null ? null : new ResourceLocation(sound), start, stop, volume); + AudioWrapperClientStartStop audio = new AudioWrapperClientStartStop(world, sound == null ? null : new ResourceLocation(sound), start, stop, volume * 5); audio.updatePosition(x, y, z); return audio; } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 9dc0f8a44..86e93d5b6 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -759,7 +759,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); - addShapelessAuto(new ItemStack(ModItems.circuit_red_copper, 48), new Object[] { ModBlocks.fusion_core }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); addShapelessAuto(new ItemStack(ModItems.energy_core), new Object[] { ModItems.fusion_core, ModItems.fuse }); @@ -771,7 +770,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"GNG", "RUR", "GMG", 'R', RUBBER.ingot(), 'M', ModItems.motor, 'G', ModItems.coil_gold, 'N', TCALLOY.ingot(), 'U', ModItems.upgrade_template}); //TODO: gate this behind the upwards gate of the oil chain when it exists - addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_aluminium, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); + addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_aluminium, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'U', ModItems.upgrade_template }); addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 1), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 0) }); addRecipeAuto(new ItemStack(ModItems.upgrade_stack, 1, 2), new Object[] { " C ", "PUP", " C ", 'C', ModItems.circuit_red_copper, 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_ELECTRIC), 'U', new ItemStack(ModItems.upgrade_stack, 1, 1) }); addRecipeAuto(new ItemStack(ModItems.upgrade_ejector, 1, 0), new Object[] { " C ", "PUP", " C ", 'C', ModItems.plate_copper, 'P', ModItems.motor, 'U', ModItems.upgrade_template }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 62d9834fd..08eb51a5d 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1,6 +1,5 @@ package com.hbm.main; -import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorProjectileDispense; @@ -45,17 +44,10 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres; import com.hbm.config.*; import com.hbm.creativetabs.*; -import com.hbm.entity.cart.*; -import com.hbm.entity.effect.*; +import com.hbm.entity.EntityMappings; import com.hbm.entity.grenade.*; -import com.hbm.entity.item.*; import com.hbm.entity.logic.*; -import com.hbm.entity.missile.*; -import com.hbm.entity.mob.*; -import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.siege.*; -import com.hbm.entity.particle.*; -import com.hbm.entity.projectile.*; import com.hbm.entity.qic.EntitySPV; import com.hbm.handler.*; import com.hbm.handler.imc.*; @@ -332,202 +324,8 @@ public class MainRegistry { ChestGenHooks.addItem(ChestGenHooks.DUNGEON_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.scrumpy), 1, 1, 1)); ChestGenHooks.addItem(ChestGenHooks.PYRAMID_DESERT_CHEST, new WeightedRandomChestContent(new ItemStack(ModItems.scrumpy), 1, 1, 1)); - EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityNukeExplosionAdvanced.class, "entity_nuke_explosion_advanced", 2, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeGeneric.class, "entity_grenade_generic", 3, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeStrong.class, "entity_grenade_strong", 4, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeFrag.class, "entity_grenade_frag", 5, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeFire.class, "entity_grenade_fire", 6, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeCluster.class, "entity_grenade_cluster", 7, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityTestMissile.class, "entity_test_missile", 8, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityNukeCloudSmall.class, "entity_nuke_cloud_small", 9, this, 10000, 1, true); - EntityRegistry.registerModEntity(EntityBullet.class, "entity_bullet", 10, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeFlare.class, "entity_grenade_flare", 11, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeElectric.class, "entity_grenade_electric", 12, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadePoison.class, "entity_grenade_poison", 13, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeGas.class, "entity_grenade_gas", 14, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeSchrabidium.class, "entity_grenade_schrab", 15, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeNuke.class, "entity_grenade_nuke", 16, this, 500, 1, true); - EntityRegistry.registerModEntity(EntitySchrab.class, "entity_schrabnel", 17, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityMissileGeneric.class, "entity_missile_generic", 18, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileStrong.class, "entity_missile_strong", 19, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileNuclear.class, "entity_missile_nuclear", 20, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileCluster.class, "entity_missile_cluster", 21, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileIncendiary.class, "entity_missile_incendiary", 22, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileAntiBallistic.class, "entity_missile_anti", 23, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileBunkerBuster.class, "entity_missile_buster", 24, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileIncendiaryStrong.class, "entity_missile_incendiary_strong", 25, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileClusterStrong.class, "entity_missile_cluster_strong", 26, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileBusterStrong.class, "entity_missile_buster_strong", 27, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileBurst.class, "entity_missile_burst", 28, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileInferno.class, "entity_missile_inferno", 29, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileRain.class, "entity_missile_rain", 30, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileDrill.class, "entity_missile_drill", 31, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileEndo.class, "entity_missile_endo", 32, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileExo.class, "entity_missile_exo", 33, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileMirv.class, "entity_missile_mirv", 34, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMIRV.class, "entity_mirvlet", 35, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntitySmokeFX.class, "entity_smoke_fx", 37, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityNukeCloudBig.class, "entity_nuke_cloud_big", 38, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 39, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 40, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 41, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeTau.class, "entity_grenade_tau", 42, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityChopperMine.class, "entity_chopper_mine", 43, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityCombineBall.class, "entity_combine_ball", 44, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityRainbow.class, "entity_rainbow", 45, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeLemon.class, "entity_grenade_lemon", 46, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityCloudFleija.class, "entity_cloud_fleija", 47, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeMk2.class, "entity_grenade_mk2", 48, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeZOMG.class, "entity_grenade_zomg", 49, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeASchrab.class, "entity_grenade_aschrab", 50, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityNukeCloudNoShroom.class, "entity_nuke_cloud_no", 51, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityFalloutRain.class, "entity_fallout", 52, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityDischarge.class, "entity_emp_discharge", 53, this, 500, 1, true); - EntityRegistry.registerModEntity(EntityEMPBlast.class, "entity_emp_blast", 54, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityFire.class, "entity_fire", 57, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityPlasmaBeam.class, "entity_immolator_beam", 58, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityLN2.class, "entity_LN2", 59, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityNightmareBlast.class, "entity_ominous_bullet", 60, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadePulse.class, "entity_grenade_pulse", 61, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityNukeExplosionPlus.class, "entity_nuke_explosion_advanced", 62, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityLaserBeam.class, "entity_laser_beam", 63, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMinerBeam.class, "entity_miner_beam", 64, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityRubble.class, "entity_rubble", 65, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityDSmokeFX.class, "entity_d_smoke_fx", 66, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntitySSmokeFX.class, "entity_s_smoke_fx", 67, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityShrapnel.class, "entity_shrapnel", 68, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeShrapnel.class, "entity_grenade_shrapnel", 69, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityBlackHole.class, "entity_black_hole", 70, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeBlackHole.class, "entity_grenade_black_hole", 71, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityOilSpillFX.class, "entity_spill_fx", 72, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityOilSpill.class, "entity_oil_spill", 73, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGasFX.class, "entity_spill_fx", 74, this, 1000, 1, true); - //EntityRegistry.registerModEntity(EntityGasFlameFX.class, "entity_gasflame_fx", 75, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMinecartTest.class, "entity_minecart_test", 76, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntitySparkBeam.class, "entity_spark_beam", 77, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 78, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBombletTheta.class, "entity_theta", 79, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBombletSelena.class, "entity_selena", 80, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 81, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 82, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityVortex.class, "entity_vortex", 83, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityMeteor.class, "entity_meteor", 84, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityLaser.class, "entity_laser", 85, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBoxcar.class, "entity_boxcar", 86, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileTaint.class, "entity_missile_taint", 87, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeGascan.class, "entity_grenade_gascan", 88, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityNukeExplosionMK4.class, "entity_nuke_mk4", 89, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityCloudFleijaRainbow.class, "entity_cloud_rainbow", 90, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityExplosiveBeam.class, "entity_beam_bomb", 91, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityAAShell.class, "entity_aa_shell", 92, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityRocketHoming.class, "entity_stinger", 93, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileMicro.class, "entity_missile_micronuclear", 94, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 95, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityRagingVortex.class, "entity_raging_vortex", 96, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityCarrier.class, "entity_missile_carrier", 97, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBooster.class, "entity_missile_booster", 98, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityModBeam.class, "entity_beam_bang", 99, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileBHole.class, "entity_missile_blackhole", 100, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileSchrabidium.class, "entity_missile_schrabidium", 101, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileEMP.class, "entity_missile_emp", 102, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityChlorineFX.class, "entity_chlorine_fx", 103, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityPinkCloudFX.class, "entity_pink_cloud_fx", 104, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityCloudFX.class, "entity_cloud_fx", 105, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadePC.class, "entity_grenade_pink_cloud", 106, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeCloud.class, "entity_grenade_cloud", 107, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityBomber.class, "entity_bomber", 108, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBombletZeta.class, "entity_zeta", 109, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityOrangeFX.class, "entity_agent_orange", 110, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityDeathBlast.class, "entity_laser_blast", 111, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeSmart.class, "entity_grenade_smart", 112, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeMIRV.class, "entity_grenade_mirv", 113, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeBreach.class, "entity_grenade_breach", 114, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeBurst.class, "entity_grenade_burst", 115, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityBurningFOEQ.class, "entity_burning_foeq", 116, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFGeneric.class, "entity_grenade_ironshod", 117, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFHE.class, "entity_grenade_ironshod_he", 118, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFBouncy.class, "entity_grenade_ironshod_bouncy", 119, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFSticky.class, "entity_grenade_ironshod_sticky", 120, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFImpact.class, "entity_grenade_ironshod_impact", 121, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFIncendiary.class, "entity_grenade_ironshod_fire", 122, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFToxic.class, "entity_grenade_ironshod_toxic", 123, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFConcussion.class, "entity_grenade_ironshod_con", 124, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFBrimstone.class, "entity_grenade_ironshod_brim", 125, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFMystery.class, "entity_grenade_ironshod_m", 126, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFSpark.class, "entity_grenade_ironshod_s", 127, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFHopwire.class, "entity_grenade_ironshod_hopwire", 128, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeIFNull.class, "entity_grenade_ironshod_null", 129, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityFallingNuke.class, "entity_falling_bomb", 130, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBulletBase.class, "entity_bullet_mk2", 131, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityMinerRocket.class, "entity_miner_lander", 132, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityFogFX.class, "entity_nuclear_fog", 133, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityDuchessGambit.class, "entity_duchessgambit", 134, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileEMPStrong.class, "entity_missile_emp_strong", 135, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityEMP.class, "entity_emp_logic", 136, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityWaterSplash.class, "entity_water_splash", 137, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBobmazon.class, "entity_bobmazon_delivery", 138, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileCustom.class, "entity_custom_missile", 139, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBalefire.class, "entity_balefire", 140, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityTom.class, "entity_tom_the_moonstone", 141, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityTomBlast.class, "entity_tom_bust", 142, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBuilding.class, "entity_falling_building", 143, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntitySoyuz.class, "entity_soyuz", 144, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 145, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMovingItem.class, "entity_c_item", 146, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityCloudTom.class, "entity_moonstone_blast", 147, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBeamVortex.class, "entity_vortex_beam", 148, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityFireworks.class, "entity_firework_ball", 149, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityWastePearl.class, "entity_waste_pearl", 150, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBOTPrimeHead.class, "entity_balls_o_tron", 151, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBOTPrimeBody.class, "entity_balls_o_tron_seg", 152, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityBlockSpider.class, "entity_taintcrawler", 153, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityRBMKDebris.class, "entity_rbmk_debris", 154, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityUFO.class, "entity_ntm_ufo", 155, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityNukeExplosionNT.class, "entity_ntm_explosion_nt", 156, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityQuasar.class, "entity_digamma_quasar", 157, this, 250, 1, true); - EntityRegistry.registerModEntity(EntitySpear.class, "entity_digamma_spear", 158, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileVolcano.class, "entity_missile_volcano", 159, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityMissileShuttle.class, "entity_missile_shuttle", 160, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityZirnoxDebris.class, "entity_zirnox_debris", 161, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGhost.class, "entity_ntm_ghost", 162, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeDynamite.class, "entity_grenade_dynamite", 163, this, 250, 1, true); - EntityRegistry.registerModEntity(EntitySiegeLaser.class, "entity_ntm_siege_laser", 164, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntitySiegeDropship.class, "entity_ntm_siege_dropship", 165, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityTNTPrimedBase.class, "entity_ntm_tnt_primed", 166, this, 1000, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeBouncyGeneric.class, "entity_grenade_bouncy_generic", 168, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityGrenadeImpactGeneric.class, "entity_grenade_impact_generic", 169, this, 250, 1, true); - EntityRegistry.registerModEntity(EntityMinecartCrate.class, "entity_ntm_cart_crate", 170, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityMinecartDestroyer.class, "entity_ntm_cart_crate", 171, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityMinecartOre.class, "entity_ntm_cart_ore", 172, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityMinecartBogie.class, "entity_ntm_cart_bogie", 173, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityMagnusCartus.class, "entity_ntm_cart_chungoid", 174, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityMinecartPowder.class, "entity_ntm_cart_powder", 175, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityMinecartSemtex.class, "entity_ntm_cart_semtex", 176, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityNukeTorex.class, "entity_effect_torex", 177, this, 250, 1, false); - EntityRegistry.registerModEntity(EntityArtilleryShell.class, "entity_artillery_shell", 178, this, 1000, 1, true); - - EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); - EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); - EntityRegistry.registerGlobalEntityID(EntityHunterChopper.class, "entity_mob_hunter_chopper", EntityRegistry.findGlobalUniqueEntityId(), 0x000020, 0x2D2D72); - EntityRegistry.registerGlobalEntityID(EntityCyberCrab.class, "entity_cyber_crab", EntityRegistry.findGlobalUniqueEntityId(), 0xAAAAAA, 0x444444); - EntityRegistry.registerGlobalEntityID(EntityTeslaCrab.class, "entity_tesla_crab", EntityRegistry.findGlobalUniqueEntityId(), 0xAAAAAA, 0x440000); - EntityRegistry.registerGlobalEntityID(EntityTaintCrab.class, "entity_taint_crab", EntityRegistry.findGlobalUniqueEntityId(), 0xAAAAAA, 0xFF00FF); - EntityRegistry.registerGlobalEntityID(EntityMaskMan.class, "entity_mob_mask_man", EntityRegistry.findGlobalUniqueEntityId(), 0x818572, 0xC7C1B7); - EntityRegistry.registerGlobalEntityID(EntityDuck.class, "entity_fucc_a_ducc", EntityRegistry.findGlobalUniqueEntityId(), 0xd0d0d0, 0xFFBF00); - EntityRegistry.registerGlobalEntityID(EntityQuackos.class, "entity_elder_one", EntityRegistry.findGlobalUniqueEntityId(), 0xd0d0d0, 0xFFBF00); - EntityRegistry.registerGlobalEntityID(EntityFBI.class, "entity_ntm_fbi", EntityRegistry.findGlobalUniqueEntityId(), 0x008000, 0x404040); - EntityRegistry.registerGlobalEntityID(EntityRADBeast.class, "entity_ntm_radiation_blaze", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008000); - EntityRegistry.registerGlobalEntityID(EntitySiegeZombie.class, "entity_meme_zombie", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008000); - EntityRegistry.registerGlobalEntityID(EntitySiegeSkeleton.class, "entity_meme_skeleton", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x000080); - EntityRegistry.registerGlobalEntityID(EntitySiegeUFO.class, "entity_meme_ufo", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x800000); - EntityRegistry.registerGlobalEntityID(EntitySiegeCraft.class, "entity_meme_craft", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x808000); - EntityRegistry.registerModEntity(EntitySiegeTunneler.class, "entity_meme_tunneler", 167, this, 1000, 1, true); //how about you have a taste of my fucking scrotum? - //EntityRegistry.registerGlobalEntityID(EntitySiegeTunneler.class, "entity_meme_tunneler", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008080); - - EntityRegistry.registerModEntity(EntitySPV.class, "entity_self_propelled_vehicle_mark_1", 1600, this, 1000, 1, true); - + EntityMappings.writeMappings(); + ForgeChunkManager.setForcedChunkLoadingCallback(this, new LoadingCallback() { @Override @@ -1109,14 +907,17 @@ public class MainRegistry { ignoreMappings.add("hbm:item.crystal_energy"); ignoreMappings.add("hbm:item.pellet_coolant"); ignoreMappings.add("hbm:item.turret_control"); + ignoreMappings.add("hbm:tile.sellafield_0"); + ignoreMappings.add("hbm:tile.sellafield_1"); + ignoreMappings.add("hbm:tile.sellafield_2"); + ignoreMappings.add("hbm:tile.sellafield_3"); + ignoreMappings.add("hbm:tile.sellafield_4"); + ignoreMappings.add("hbm:tile.sellafield_core"); + ignoreMappings.add("hbm:tile.fusion_core"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses); - //forge shits the bed when you dare to remap several blocks into one, since noone would ever try to do that - /*remapBlocks.put("hbm:tile.sellafield_core", ModBlocks.sellafield); - for(byte i = 0; i < 5; i++) - remapBlocks.put("hbm:tile.sellafield_" + i, ModBlocks.sellafield);*/ for(MissingMapping mapping : event.get()) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index 9d412ed51..ff0c945c1 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -76,6 +76,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.AbstractClientPlayer; +import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.renderer.OpenGlHelper; @@ -170,6 +171,18 @@ public class ModEventHandlerClient { if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK && world.getBlock(mop.blockX, mop.blockY, mop.blockZ) instanceof ILookOverlay) { ((ILookOverlay) world.getBlock(mop.blockX, mop.blockY, mop.blockZ)).printHook(event, world, mop.blockX, mop.blockY, mop.blockZ); } + + /*if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + ScaledResolution resolution = event.resolution; + GL11.glPushMatrix(); + int pX = resolution.getScaledWidth() / 2 + 8; + int pZ = resolution.getScaledHeight() / 2; + mc.fontRenderer.drawString("META: " + world.getBlockMetadata(mop.blockX, mop.blockY, mop.blockZ), pX, pZ - 3, 0xffff00); + GL11.glDisable(GL11.GL_BLEND); + GL11.glColor3f(1F, 1F, 1F); + GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(Gui.icons); + }*/ } /// HANLDE ANIMATION BUSES /// diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 89afd2837..5be068f0f 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -5,6 +5,7 @@ import com.hbm.animloader.Animation; import com.hbm.animloader.ColladaLoader; import com.hbm.lib.RefStrings; import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.render.loader.WavefrontObjDisplayList; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; @@ -272,9 +273,10 @@ public class ResourceManager { public static final IModelCustom blast_door_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_slider.obj")); public static final IModelCustom blast_door_block = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_block.obj")); - //Transission Seal + //Doors public static AnimatedModel transition_seal; public static Animation transition_seal_anim; + public static final WavefrontObjDisplayList fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/fire_door.obj")).asDisplayList(); //Tesla Coil public static final IModelCustom tesla = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/tesla.obj")); @@ -398,6 +400,7 @@ public class ResourceManager { //Turbofan public static final ResourceLocation turbofan_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan.png"); public static final ResourceLocation turbofan_back_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan_back.png"); + public static final ResourceLocation turbofan_afterburner_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbofan_afterburner.png"); //Large Turbine public static final ResourceLocation turbine_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/turbine.png"); @@ -601,6 +604,7 @@ public class ResourceManager { //Doors public static final ResourceLocation transition_seal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/transition_seal.png"); + public static final ResourceLocation fire_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/fire_door.png"); //Tesla Coil public static final ResourceLocation tesla_tex = new ResourceLocation(RefStrings.MODID, "textures/models/tesla.png"); diff --git a/src/main/java/com/hbm/packet/LoopedSoundPacket.java b/src/main/java/com/hbm/packet/LoopedSoundPacket.java index 4def5fb03..44d9339bf 100644 --- a/src/main/java/com/hbm/packet/LoopedSoundPacket.java +++ b/src/main/java/com/hbm/packet/LoopedSoundPacket.java @@ -96,7 +96,7 @@ public class LoopedSoundPacket implements IMessage { flag = false; } - if(flag && te.getWorldObj().isRemote && ((TileEntityMachineTurbofan)te).isRunning) + if(flag && te.getWorldObj().isRemote && ((TileEntityMachineTurbofan)te).wasOn) Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopTurbofan(new ResourceLocation("hbm:block.turbofanOperate"), te)); } diff --git a/src/main/java/com/hbm/packet/TETurbofanPacket.java b/src/main/java/com/hbm/packet/TETurbofanPacket.java index 6b7fd8f38..c40a1b0b7 100644 --- a/src/main/java/com/hbm/packet/TETurbofanPacket.java +++ b/src/main/java/com/hbm/packet/TETurbofanPacket.java @@ -59,7 +59,7 @@ public class TETurbofanPacket implements IMessage { TileEntityMachineTurbofan gen = (TileEntityMachineTurbofan) te; gen.spin = m.spin; - gen.isRunning = m.isRunning; + gen.wasOn = m.isRunning; } return null; } diff --git a/src/main/java/com/hbm/render/block/RenderBoxDuct.java b/src/main/java/com/hbm/render/block/RenderBoxDuct.java new file mode 100644 index 000000000..f7afa2ee2 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderBoxDuct.java @@ -0,0 +1,160 @@ +package com.hbm.render.block; + +import com.hbm.blocks.network.FluidDuctBox; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.lib.Library; +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.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; + +public class RenderBoxDuct 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) { + FluidType type = Fluids.NONE; + + TileEntity te = world.getTileEntity(x, y, z); + + if(te instanceof TileEntityPipeBaseNT) { + TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te; + type = pipe.getType(); + } + + boolean pX = Library.canConnectFluid(world, x + 1, y, z, Library.NEG_X, type); + boolean nX = Library.canConnectFluid(world, x - 1, y, z, Library.POS_X, type); + boolean pY = Library.canConnectFluid(world, x, y + 1, z, Library.NEG_Y, type); + boolean nY = Library.canConnectFluid(world, x, y - 1, z, Library.POS_Y, type); + boolean pZ = Library.canConnectFluid(world, x, y, z + 1, Library.NEG_Z, type); + boolean nZ = Library.canConnectFluid(world, x, y, z - 1, Library.POS_Z, type); + + 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); + + //Straight along X + if((mask & 0b001111) == 0 && mask > 0) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateEast = 2; + renderer.uvRotateWest = 1; + renderer.setRenderBounds(0.0D, 0.125D, 0.125D, 1.0D, 0.875D, 0.875D); + 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.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.renderStandardBlock(block, x, y, z); + + //Curve + } else if(count == 2) { + + if(nY && (pX || nX)) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + } + + if(pY && (pX || nX)) { + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + } + + if(!nY && !pY) { + renderer.uvRotateNorth = 1; + renderer.uvRotateSouth = 2; + renderer.uvRotateEast = 2; + renderer.uvRotateWest = 1; + } + + renderer.setRenderBounds(0.125D, 0.125D, 0.125D, 0.875D, 0.875D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + + if(nY) { + renderer.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 0.125D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(pY) { + renderer.setRenderBounds(0.125D, 0.875D, 0.125D, 0.875D, 1.0D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(nX) { + renderer.setRenderBounds(0.0D, 0.125D, 0.125D, 0.125D, 0.875D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(pX) { + renderer.setRenderBounds(0.875D, 0.125D, 0.125D, 1.0D, 0.875D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(nZ) { + renderer.setRenderBounds(0.125D, 0.125D, 0.0D, 0.875D, 0.875D, 0.125D); + renderer.renderStandardBlock(block, x, y, z); + } + if(pZ) { + renderer.setRenderBounds(0.125D, 0.125D, 0.875D, 0.875D, 0.875D, 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.renderStandardBlock(block, x, y, z); + + if(nY) { + renderer.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 0.0625D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(pY) { + renderer.setRenderBounds(0.125D, 0.9375D, 0.125D, 0.875D, 1.0D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(nX) { + renderer.setRenderBounds(0.0D, 0.125D, 0.125D, 0.0625D, 0.875D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(pX) { + renderer.setRenderBounds(0.9375D, 0.125D, 0.125D, 1.0D, 0.875D, 0.875D); + renderer.renderStandardBlock(block, x, y, z); + } + if(nZ) { + renderer.setRenderBounds(0.125D, 0.125D, 0.0D, 0.875D, 0.875D, 0.0625D); + renderer.renderStandardBlock(block, x, y, z); + } + if(pZ) { + renderer.setRenderBounds(0.125D, 0.125D, 0.9375D, 0.875D, 0.875D, 1.0D); + renderer.renderStandardBlock(block, x, y, z); + } + } + + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return FluidDuctBox.renderID; + } +} diff --git a/src/main/java/com/hbm/render/block/RenderTestPipe.java b/src/main/java/com/hbm/render/block/RenderTestPipe.java index bdda2c57f..30958f977 100644 --- a/src/main/java/com/hbm/render/block/RenderTestPipe.java +++ b/src/main/java/com/hbm/render/block/RenderTestPipe.java @@ -10,7 +10,6 @@ import com.hbm.main.ResourceManager; import com.hbm.render.util.ObjUtil; import com.hbm.tileentity.network.TileEntityPipeBaseNT; -import api.hbm.fluid.IFluidConnector; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index 4e2663806..239ef1ee9 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -3,11 +3,15 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.DiamondPronter; import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; +import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; @@ -42,8 +46,29 @@ public class RenderFluidTank extends TileEntitySpecialRenderer implements IItemR ResourceManager.fluidtank.renderPart("Tank"); GL11.glShadeModel(GL11.GL_FLAT); + + + FluidType type = ((TileEntityMachineFluidTank) tileEntity).tank.getTankType(); + + if(type != null && type != Fluids.NONE) { + + RenderHelper.disableStandardItemLighting(); + GL11.glPushMatrix(); + GL11.glTranslated(-0.25, 0.5, -1.501); + GL11.glRotated(90, 0, 1, 0); + GL11.glScalef(1.0F, 0.375F, 0.375F); + DiamondPronter.pront(type.poison, type.flammability, type.reactivity, type.symbol); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glTranslated(0.25, 0.5, 1.501); + GL11.glRotated(-90, 0, 1, 0); + GL11.glScalef(1.0F, 0.375F, 0.375F); + DiamondPronter.pront(type.poison, type.flammability, type.reactivity, type.symbol); + GL11.glPopMatrix(); + } GL11.glPopMatrix(); + RenderHelper.enableStandardItemLighting(); } @Override diff --git a/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java b/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java index edb145f2f..20d55b4d6 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java +++ b/src/main/java/com/hbm/render/tileentity/RenderStructureMaker.java @@ -7,8 +7,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityStructureMarker; import com.hbm.world.machine.FWatz; -import com.hbm.world.machine.FactoryTitanium; -import com.hbm.world.machine.FusionReactor; import com.hbm.world.machine.NuclearReactor; import com.hbm.world.machine.Watz; @@ -23,9 +21,6 @@ import net.minecraft.util.ResourceLocation; public class RenderStructureMaker extends TileEntitySpecialRenderer { float pixel = 1F/16F; - - public RenderStructureMaker() { - } @Override public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { @@ -50,43 +45,6 @@ public class RenderStructureMaker extends TileEntitySpecialRenderer { int offsetZ = 0; if(type == 0) { - if(meta == 6) { - offsetZ = 2; - } - if(meta == 7) { - offsetX = 2; - } - if(meta == 8) { - offsetZ = -2; - } - if(meta == 9) { - offsetX = -2; - } - - GL11.glTranslatef(-1 + offsetX, -2, -1 + offsetZ); - for(int a = 0; a < 3; a++) { - for(int b = 0; b < 3; b++) { - for(int c = 0; c < 3; c++) { - - Block block = Blocks.air; - if(FactoryTitanium.array[b][a].substring(c, c + 1).equals("H")) - block = ModBlocks.factory_titanium_hull; - if(FactoryTitanium.array[b][a].substring(c, c + 1).equals("F")) - block = ModBlocks.factory_titanium_furnace; - if(FactoryTitanium.array[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.factory_titanium_core; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 1) { - if(meta == 6) { offsetZ = 3; } @@ -116,6 +74,8 @@ public class RenderStructureMaker extends TileEntitySpecialRenderer { block = ModBlocks.reactor_hatch; if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("I")) block = ModBlocks.reactor_conductor; + //if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("B")) + // block = ModBlocks.brick_concrete; if(block != Blocks.air) { RenderBlocks rb = RenderBlocks.getInstance(); ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); @@ -126,138 +86,7 @@ public class RenderStructureMaker extends TileEntitySpecialRenderer { } } } - if(type == 2) { - - if(meta == 6) { - offsetZ = 3; - } - if(meta == 7) { - offsetX = 3; - } - if(meta == 8) { - offsetZ = -3; - } - if(meta == 9) { - offsetX = -3; - } - - GL11.glTranslatef(-2 + offsetX, -4, -2 + offsetZ); - for(int a = 0; a < 5; a++) { - for(int b = 0; b < 5; b++) { - for(int c = 0; c < 5; c++) { - - Block block = Blocks.air; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("R")) - block = ModBlocks.reactor_element; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.reactor_computer; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.reactor_control; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("A")) - block = ModBlocks.reactor_hatch; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("I")) - block = ModBlocks.reactor_conductor; - if(NuclearReactor.array2[b][a].substring(c, c + 1).equals("B")) - block = ModBlocks.brick_concrete; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 3) { - - if(meta == 6) { - offsetZ = 9; - } - if(meta == 7) { - offsetX = 9; - } - if(meta == 8) { - offsetZ = -9; - } - if(meta == 9) { - offsetX = -9; - } - - GL11.glTranslatef(-8 + offsetX, -4, -8 + offsetZ); - for(int a = 0; a < 17; a++) { - for(int b = 0; b < 5; b++) { - for(int c = 0; c < 17; c++) { - - Block block = Blocks.air; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("M")) - block = ModBlocks.fusion_conductor; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("H")) - block = ModBlocks.fusion_heater; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("A")) - block = ModBlocks.fusion_hatch; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("R")) - block = ModBlocks.fusion_motor; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.fusion_center; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.fusion_core; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 4) { - - if(meta == 6) { - offsetZ = 9; - } - if(meta == 7) { - offsetX = 9; - } - if(meta == 8) { - offsetZ = -9; - } - if(meta == 9) { - offsetX = -9; - } - - GL11.glTranslatef(-8 + offsetX, -4, -8 + offsetZ); - for(int a = 0; a < 17; a++) { - for(int b = 0; b < 5; b++) { - for(int c = 0; c < 17; c++) { - - Block block = Blocks.air; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("M")) - block = ModBlocks.fusion_conductor; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("H")) - block = ModBlocks.fusion_heater; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("A")) - block = ModBlocks.fusion_hatch; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("R")) - block = ModBlocks.fusion_motor; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("C")) - block = ModBlocks.fusion_center; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("#")) - block = ModBlocks.fusion_core; - if(FusionReactor.array[b][a].substring(c, c + 1).equals("T")) - block = ModBlocks.block_tungsten; - if(block != Blocks.air) { - RenderBlocks rb = RenderBlocks.getInstance(); - ResourceLocation loc1 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 1).getIconName().substring(4, rb.getBlockIconFromSide(block, 1).getIconName().length()) + ".png"); - ResourceLocation loc2 = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + rb.getBlockIconFromSide(block, 3).getIconName().substring(4, rb.getBlockIconFromSide(block, 3).getIconName().length()) + ".png"); - renderSmolBlockAt(loc1, loc2, a, b, c); - } - } - } - } - } - if(type == 5) { + if(type == 1) { if(meta == 6) { offsetZ = 4; @@ -304,7 +133,7 @@ public class RenderStructureMaker extends TileEntitySpecialRenderer { } } } - if(type == 6) { + if(type == 2) { if(meta == 6) { offsetZ = 10; diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java index 1e7b35ed2..7f322a458 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurbofan.java @@ -14,7 +14,7 @@ public class RenderTurbofan extends TileEntitySpecialRenderer { } @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); @@ -29,17 +29,27 @@ public class RenderTurbofan extends TileEntitySpecialRenderer { case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; } + + TileEntityMachineTurbofan turbo = (TileEntityMachineTurbofan) tileEntity; + + float spin = turbo.lastSpin + (turbo.spin - turbo.lastSpin) * interp; GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.turbofan_tex); ResourceManager.turbofan.renderPart("Body"); + GL11.glPushMatrix(); GL11.glTranslated(0, 1.5, 0); - GL11.glRotated(((TileEntityMachineTurbofan) tileEntity).spin, 0, 0, -1); + GL11.glRotated(spin, 0, 0, -1); GL11.glTranslated(0, -1.5, 0); ResourceManager.turbofan.renderPart("Blades"); GL11.glPopMatrix(); - bindTexture(ResourceManager.turbofan_back_tex); + + if(turbo.afterburner == 0) + bindTexture(ResourceManager.turbofan_back_tex); + else + bindTexture(ResourceManager.turbofan_afterburner_tex); + ResourceManager.turbofan.renderPart("Afterburner"); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java index 1bd2fd3b3..663981b9e 100644 --- a/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java +++ b/src/main/java/com/hbm/sound/AudioWrapperClientStartStop.java @@ -33,7 +33,7 @@ public class AudioWrapperClientStartStop extends AudioWrapperClient { @Override public void startSound(){ if(start != null){ - world.playSound(x, y, z, start, ssVol, 1, false); + world.playSound(x, y, z, start, ssVol * 0.2F, 1, false); } super.startSound(); } @@ -41,7 +41,7 @@ public class AudioWrapperClientStartStop extends AudioWrapperClient { @Override public void stopSound(){ if(stop != null){ - world.playSound(x, y, z, stop, ssVol, 1, false); + world.playSound(x, y, z, stop, ssVol * 0.2F, 1, false); } super.stopSound(); } diff --git a/src/main/java/com/hbm/sound/SoundLoopTurbofan.java b/src/main/java/com/hbm/sound/SoundLoopTurbofan.java index 4d5b125f3..4b08d0471 100644 --- a/src/main/java/com/hbm/sound/SoundLoopTurbofan.java +++ b/src/main/java/com/hbm/sound/SoundLoopTurbofan.java @@ -27,7 +27,7 @@ public class SoundLoopTurbofan extends SoundLoopMachine { if(this.volume != 10) volume = 10; - if(!drill.isRunning) + if(!drill.wasOn) this.donePlaying = true; } } diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index 3a2c511e6..b770acb68 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -95,6 +95,93 @@ public static final DoorDecl TRANSITION_SEAL = new DoorDecl(){ return null; } }; + +public static final DoorDecl FIRE_DOOR = new DoorDecl(){ + + @Override + public String getOpenSoundEnd() { + return "hbm:door.wghStop"; + }; + @Override + public String getOpenSoundLoop() { + return "hbm:door.wghStart"; + }; + @Override + public String getSoundLoop2() { + return "hbm:door.alarm6"; + }; + + @Override + public float getSoundVolume(){ + return 2; + } + + @Override + @SideOnly(Side.CLIENT) + public void getTranslation(String partName, float openTicks, boolean child, float[] trans) { + if(!partName.equals("frame")){ + set(trans, 0, 3*getNormTime(openTicks), 0); + } else { + super.getTranslation(partName, openTicks, child, trans); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public void doOffsetTransform() { + GL11.glTranslated(0, 0, 0.5); + }; + + @Override + @SideOnly(Side.CLIENT) + public double[][] getClippingPlanes() { + return new double[][]{{0, -1, 0, 3.0001}}; + }; + + @Override + public int timeToOpen() { + return 160; + }; + + @Override + public int[][] getDoorOpenRanges(){ + return new int[][]{{-1, 0, 0, 3, 4, 1}}; + } + + @Override + public int[] getDimensions(){ + return new int[]{2, 0, 0, 0, 2, 1}; + } + + @Override + public AxisAlignedBB getBlockBound(int x, int y, int z, boolean open) { + if(!open) + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 1, 1); + if(z == 1){ + return AxisAlignedBB.getBoundingBox(0.5, 0, 0, 1, 1, 1); + } else if(z == -2){ + return AxisAlignedBB.getBoundingBox(0, 0, 0, 0.5, 1, 1); + } else if(y > 1){ + return AxisAlignedBB.getBoundingBox(0, 0.75, 0, 1, 1, 1); + } else if(y == 0) { + return AxisAlignedBB.getBoundingBox(0, 0, 0, 1, 0.1, 1); + } else { + return super.getBlockBound(x, y, z, open); + } + }; + + @Override + @SideOnly(Side.CLIENT) + public ResourceLocation getTextureForPart(String partName){ + return ResourceManager.fire_door_tex; + } + + @Override + @SideOnly(Side.CLIENT) + public WavefrontObjDisplayList getModel(){ + return ResourceManager.fire_door; + } + }; //Format: x, y, z, tangent amount 1 (how long the door would be if it moved up), tangent amount 2 (door places blocks in this direction), axis (0-x, 1-y, 2-z) public abstract int[][] getDoorOpenRanges(); diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 5bfedc014..386737ab3 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -13,7 +13,6 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEDoorAnimationPacket; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.machine.TileEntityLockableBase; -import com.hbm.util.Tuple.Triplet; import com.hbm.util.fauxpointtwelve.BlockPos; import com.hbm.util.fauxpointtwelve.Rotation; @@ -176,23 +175,18 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public boolean tryToggle(EntityPlayer player){ - System.out.println("start"); - if(state == 0 && redstonePower > 0){ - System.out.println("red power > 0"); //Redstone "power locks" doors, just like minecraft iron doors return false; } if(this.state == 0) { if(!worldObj.isRemote && canAccess(player)) { this.state = 3; - System.out.println("opening"); } return true; } else if(this.state == 1) { if(!worldObj.isRemote && canAccess(player)) { this.state = 2; - System.out.println("closing"); } return true; } @@ -242,7 +236,6 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn } } - //TODO: sound loops @Override @SideOnly(Side.CLIENT) public void handleNewState(byte state){ diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index e355594d8..e96ac2391 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -61,7 +61,6 @@ public class TileMappings { put(TileEntityDecoBlockAltF.class, "tileentity_deco_f"); put(TileEntityCoreTitanium.class, "tileentity_core_titanium"); put(TileEntityCoreAdvanced.class, "tileentity_core_advanced"); - put(TileEntityFusionMultiblock.class, "tileentity_fusion_multiblock"); put(TileEntityCrashedBomb.class, "tileentity_crashed_balefire"); put(TileEntityConverterHeRf.class, "tileentity_converter_herf"); put(TileEntityConverterRfHe.class, "tileentity_converter_rfhe"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFusionMultiblock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFusionMultiblock.java deleted file mode 100644 index 3c112a62d..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFusionMultiblock.java +++ /dev/null @@ -1,1193 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IReactor; -import com.hbm.inventory.FluidTank; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -@Deprecated //old multiblock fusion reactor -public class TileEntityFusionMultiblock extends TileEntity implements ISidedInventory, IReactor { - - public long power; - public final static long maxPower = 100000000; - private ItemStack slots[]; - public int age = 0; - public FluidTank tanks[]; - - private String customName; - - public TileEntityFusionMultiblock() { - slots = new ItemStack[12]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.WATER, 128000, 0); - tanks[1] = new FluidTank(Fluids.DEUTERIUM, 64000, 1); - tanks[2] = new FluidTank(Fluids.TRITIUM, 64000, 2); - } - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.fusionMultiblock"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return true; - } - } - - @Override - public void openInventory() {} - - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - return true; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; - } - - @Override - public boolean canInsertItem(int p_102007_1_, ItemStack p_102007_2_, int p_102007_3_) { - return false; - } - - @Override - public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) { - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("power"); - tanks[0].readFromNBT(nbt, "water"); - tanks[1].readFromNBT(nbt, "deut"); - tanks[2].readFromNBT(nbt, "trit"); - - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - - nbt.setLong("power", power); - tanks[0].writeToNBT(nbt, "water"); - tanks[1].writeToNBT(nbt, "deut"); - tanks[2].writeToNBT(nbt, "trit"); - - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public boolean isStructureValid(World world) { - - //...and I wrote all of this by hand! Ha! - //update, about 5 years later: what the fuck was wrong with me - - if(world.getBlock(this.xCoord + 5, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 8, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 1, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_center && - world.getBlock(this.xCoord + 0, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord + 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord + 0) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord - 1, this.yCoord - 2, this.zCoord - 1) == ModBlocks.fusion_motor && - - world.getBlock(this.xCoord + 5, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 2, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 2, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 2, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 2, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 2, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 2, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 8, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 1, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_center && - world.getBlock(this.xCoord + 0, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord + 1) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord + 0) == ModBlocks.fusion_motor && - world.getBlock(this.xCoord - 1, this.yCoord + 2, this.zCoord - 1) == ModBlocks.fusion_motor && - - world.getBlock(this.xCoord + 6, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 6, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord - 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord - 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 6, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 6, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord + 6) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord - 6) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord + 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord + 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord + 5) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord - 5) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord - 4) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord - 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord - 2) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 8, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord + 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord + 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord + 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord + 1, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord - 7) == ModBlocks.fusion_heater && - - world.getBlock(this.xCoord + 8, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord - 1, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord - 1, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord - 1, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord - 1, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord - 7) == ModBlocks.fusion_heater && - - world.getBlock(this.xCoord, this.yCoord + 1, this.zCoord) == ModBlocks.fusion_center && - world.getBlock(this.xCoord, this.yCoord - 1, this.zCoord) == ModBlocks.fusion_center && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 6, this.yCoord, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord - 3) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 6, this.yCoord, this.zCoord + 3) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord + 6) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord - 6) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord - 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord, this.zCoord - 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 4, this.yCoord, this.zCoord + 5) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord + 4) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 4, this.yCoord, this.zCoord + 5) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord + 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord - 2) == ModBlocks.fusion_conductor && - - world.getBlock(this.xCoord + 8, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 8, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_hatch && - world.getBlock(this.xCoord + 8, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 7, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 8, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_hatch && - world.getBlock(this.xCoord - 8, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord, this.zCoord - 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord, this.zCoord + 0) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 7, this.yCoord, this.zCoord + 1) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord + 8) == ModBlocks.fusion_hatch && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord + 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord + 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord - 8) == ModBlocks.fusion_hatch && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord - 8) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord - 7) == ModBlocks.fusion_heater && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord - 7) == ModBlocks.fusion_heater && - - world.getBlock(this.xCoord, this.yCoord, this.zCoord) == ModBlocks.fusion_core) - { - return true; - } - - return false; - } - - @Override - public boolean isCoatingValid(World world) { - if(world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord - 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord - 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord, this.yCoord - 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord - 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord - 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord, this.yCoord - 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord - 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord - 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord - 1, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord - 1, this.zCoord - 3) == ModBlocks.block_tungsten && - - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord + 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord + 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord, this.yCoord + 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord + 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord + 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord, this.yCoord + 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord + 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord + 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord + 1, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord + 1, this.zCoord - 3) == ModBlocks.block_tungsten && - - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord, this.yCoord, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord, this.yCoord, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord - 3) == ModBlocks.block_tungsten && - - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord + 0) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 5, this.yCoord, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord - 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord - 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord - 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord + 0) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord + 1) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord + 2) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 5, this.yCoord, this.zCoord + 3) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord + 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord + 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord + 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord + 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord + 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord + 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord + 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 3, this.yCoord, this.zCoord - 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 2, this.yCoord, this.zCoord - 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 1, this.yCoord, this.zCoord - 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 0, this.yCoord, this.zCoord - 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 1, this.yCoord, this.zCoord - 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 2, this.yCoord, this.zCoord - 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 3, this.yCoord, this.zCoord - 5) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord + 4, this.yCoord, this.zCoord - 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord, this.zCoord + 4) == ModBlocks.block_tungsten && - world.getBlock(this.xCoord - 4, this.yCoord, this.zCoord - 4) == ModBlocks.block_tungsten) - { - return true; - } - - return false; - } - - @Override - public boolean hasFuse() { - return slots[8] != null && (slots[8].getItem() == ModItems.fuse || slots[8].getItem() == ModItems.screwdriver); - } - - @Override - public int getWaterScaled(int i) { - return 0; - } - - @Override - public int getCoolantScaled(int i) { - return 0; - } - - @Override - public int getHeatScaled(int i) { - return 0; - } - - @Override - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - tanks[0].loadTank(0, 9, slots); - tanks[1].loadTank(2, 10, slots); - tanks[2].loadTank(3, 11, slots); - - for(int i = 0; i < 3; i++) - tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - if(slots[2] != null && slots[2].getItem() == ModItems.tritium_deuterium_cake) - { - this.slots[2].stackSize--; - if(this.slots[2].stackSize == 0) - { - this.slots[2] = null; - } - - tanks[1].setFill(tanks[1].getFill() + 10000); - tanks[2].setFill(tanks[2].getFill() + 10000); - - if(tanks[1].getFill() > tanks[1].getMaxFill()) - tanks[1].setFill(tanks[1].getMaxFill()); - - if(tanks[2].getFill() > tanks[2].getMaxFill()) - tanks[2].setFill(tanks[2].getMaxFill()); - } - - if(slots[3] != null && slots[3].getItem() == ModItems.tritium_deuterium_cake) - { - this.slots[3].stackSize--; - if(this.slots[3].stackSize == 0) - { - this.slots[3] = null; - } - - tanks[1].setFill(tanks[1].getFill() + 10000); - tanks[2].setFill(tanks[2].getFill() + 10000); - - if(tanks[1].getFill() > tanks[1].getMaxFill()) - tanks[1].setFill(tanks[1].getMaxFill()); - - if(tanks[2].getFill() > tanks[2].getMaxFill()) - tanks[2].setFill(tanks[2].getMaxFill()); - } - - if(!isRunning() && - slots[4] != null && (slots[4].getItem() == ModItems.fusion_core || slots[4].getItem() == ModItems.energy_core) && slots[4].getItemDamage() == 0 && - slots[5] != null && (slots[5].getItem() == ModItems.fusion_core || slots[5].getItem() == ModItems.energy_core) && slots[5].getItemDamage() == 0 && - slots[6] != null && (slots[6].getItem() == ModItems.fusion_core || slots[6].getItem() == ModItems.energy_core) && slots[6].getItemDamage() == 0 && - slots[7] != null && (slots[7].getItem() == ModItems.fusion_core || slots[7].getItem() == ModItems.energy_core) && slots[7].getItemDamage() == 0 && - hasFuse() && - tanks[1].getFill() > 0 && tanks[2].getFill() > 0) - { - slots[4] = null; - slots[5] = null; - slots[6] = null; - slots[7] = null; - fillPlasma(); - } else { - if(isStructureValid(worldObj) && isRunning()) - { - tanks[1].setFill(tanks[1].getFill() - 1); - tanks[2].setFill(tanks[2].getFill() - 1); - - if(tanks[0].getFill() >= 20) - { - tanks[0].setFill(tanks[0].getFill() - 20); - power += 100000; - - if(isCoatingValid(worldObj)) - { - power += 100000; - } - - if(power > maxPower) - { - power = maxPower; - } - } - - fillPlasma(); - } else { - emptyPlasma(); - } - } - - if(!isRunning()) - { - emptyPlasma(); - } - - if(tanks[1].getFill() <= 0 || tanks[2].getFill() <= 0) - { - emptyPlasma(); - } - - power = Library.chargeItemsFromTE(slots, 1, power, maxPower); - - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - } - } - - public boolean isRunning() { - if(hasFuse() && ( - worldObj.getBlock(xCoord + 4, yCoord, zCoord - 3) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 4, yCoord, zCoord - 2) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 4, yCoord, zCoord - 1) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 4, yCoord, zCoord + 0) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 4, yCoord, zCoord + 1) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 4, yCoord, zCoord + 2) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 4, yCoord, zCoord + 3) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 4, yCoord, zCoord - 3) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 4, yCoord, zCoord - 2) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 4, yCoord, zCoord - 1) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 4, yCoord, zCoord + 0) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 4, yCoord, zCoord + 1) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 4, yCoord, zCoord + 2) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 4, yCoord, zCoord + 3) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 3, yCoord, zCoord + 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 2, yCoord, zCoord + 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 1, yCoord, zCoord + 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 0, yCoord, zCoord + 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 1, yCoord, zCoord + 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 2, yCoord, zCoord + 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 3, yCoord, zCoord + 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 3, yCoord, zCoord - 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 2, yCoord, zCoord - 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 1, yCoord, zCoord - 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 0, yCoord, zCoord - 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 1, yCoord, zCoord - 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 2, yCoord, zCoord - 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 3, yCoord, zCoord - 4) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 3, yCoord, zCoord + 3) == ModBlocks.plasma || - worldObj.getBlock(xCoord + 3, yCoord, zCoord - 3) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 3, yCoord, zCoord + 3) == ModBlocks.plasma || - worldObj.getBlock(xCoord - 3, yCoord, zCoord - 3) == ModBlocks.plasma)) - { - return true; - } - return false; - } - - public void fillPlasma() { - setPlasma(xCoord + 4, yCoord, zCoord - 3); - setPlasma(xCoord + 4, yCoord, zCoord - 2); - setPlasma(xCoord + 4, yCoord, zCoord - 1); - setPlasma(xCoord + 4, yCoord, zCoord + 0); - setPlasma(xCoord + 4, yCoord, zCoord + 1); - setPlasma(xCoord + 4, yCoord, zCoord + 2); - setPlasma(xCoord + 4, yCoord, zCoord + 3); - setPlasma(xCoord - 4, yCoord, zCoord - 3); - setPlasma(xCoord - 4, yCoord, zCoord - 2); - setPlasma(xCoord - 4, yCoord, zCoord - 1); - setPlasma(xCoord - 4, yCoord, zCoord + 0); - setPlasma(xCoord - 4, yCoord, zCoord + 1); - setPlasma(xCoord - 4, yCoord, zCoord + 2); - setPlasma(xCoord - 4, yCoord, zCoord + 3); - setPlasma(xCoord - 3, yCoord, zCoord + 4); - setPlasma(xCoord - 2, yCoord, zCoord + 4); - setPlasma(xCoord - 1, yCoord, zCoord + 4); - setPlasma(xCoord + 0, yCoord, zCoord + 4); - setPlasma(xCoord + 1, yCoord, zCoord + 4); - setPlasma(xCoord + 2, yCoord, zCoord + 4); - setPlasma(xCoord + 3, yCoord, zCoord + 4); - setPlasma(xCoord - 3, yCoord, zCoord - 4); - setPlasma(xCoord - 2, yCoord, zCoord - 4); - setPlasma(xCoord - 1, yCoord, zCoord - 4); - setPlasma(xCoord + 0, yCoord, zCoord - 4); - setPlasma(xCoord + 1, yCoord, zCoord - 4); - setPlasma(xCoord + 2, yCoord, zCoord - 4); - setPlasma(xCoord + 3, yCoord, zCoord - 4); - setPlasma(xCoord + 3, yCoord, zCoord + 3); - setPlasma(xCoord + 3, yCoord, zCoord - 3); - setPlasma(xCoord - 3, yCoord, zCoord + 3); - setPlasma(xCoord - 3, yCoord, zCoord - 3); - } - - public void emptyPlasma() { - removePlasma(xCoord + 4, yCoord, zCoord - 3); - removePlasma(xCoord + 4, yCoord, zCoord - 2); - removePlasma(xCoord + 4, yCoord, zCoord - 1); - removePlasma(xCoord + 4, yCoord, zCoord + 0); - removePlasma(xCoord + 4, yCoord, zCoord + 1); - removePlasma(xCoord + 4, yCoord, zCoord + 2); - removePlasma(xCoord + 4, yCoord, zCoord + 3); - removePlasma(xCoord - 4, yCoord, zCoord - 3); - removePlasma(xCoord - 4, yCoord, zCoord - 2); - removePlasma(xCoord - 4, yCoord, zCoord - 1); - removePlasma(xCoord - 4, yCoord, zCoord + 0); - removePlasma(xCoord - 4, yCoord, zCoord + 1); - removePlasma(xCoord - 4, yCoord, zCoord + 2); - removePlasma(xCoord - 4, yCoord, zCoord + 3); - removePlasma(xCoord - 3, yCoord, zCoord + 4); - removePlasma(xCoord - 2, yCoord, zCoord + 4); - removePlasma(xCoord - 1, yCoord, zCoord + 4); - removePlasma(xCoord + 0, yCoord, zCoord + 4); - removePlasma(xCoord + 1, yCoord, zCoord + 4); - removePlasma(xCoord + 2, yCoord, zCoord + 4); - removePlasma(xCoord + 3, yCoord, zCoord + 4); - removePlasma(xCoord - 3, yCoord, zCoord - 4); - removePlasma(xCoord - 2, yCoord, zCoord - 4); - removePlasma(xCoord - 1, yCoord, zCoord - 4); - removePlasma(xCoord + 0, yCoord, zCoord - 4); - removePlasma(xCoord + 1, yCoord, zCoord - 4); - removePlasma(xCoord + 2, yCoord, zCoord - 4); - removePlasma(xCoord + 3, yCoord, zCoord - 4); - removePlasma(xCoord + 3, yCoord, zCoord + 3); - removePlasma(xCoord + 3, yCoord, zCoord - 3); - removePlasma(xCoord - 3, yCoord, zCoord + 3); - removePlasma(xCoord - 3, yCoord, zCoord - 3); - } - - public void setPlasma(int x, int y, int z) { - if(worldObj.getBlock(x, y, z) != ModBlocks.plasma) - worldObj.setBlock(x, y, z, ModBlocks.plasma); - } - - public void removePlasma(int x, int y, int z) { - if(worldObj.getBlock(x, y, z) == ModBlocks.plasma) - worldObj.setBlock(x, y, z, Blocks.air); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index d9118650f..e9da0a2ba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -194,24 +194,24 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); } - - public void onChunkUnload() { - - if(audio != null) { + + public void onChunkUnload() { + + if(audio != null) { audio.stopSound(); audio = null; - } - } - - public void invalidate() { - - super.invalidate(); - - if(audio != null) { + } + } + + public void invalidate() { + + super.invalidate(); + + if(audio != null) { audio.stopSound(); audio = null; - } - } + } + } @Override public void networkUnpack(NBTTagCompound data) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index a7751b620..715762114 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -1,534 +1,332 @@ package com.hbm.tileentity.machine; import java.util.List; -import java.util.Random; -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.types.FluidTypeCombustible; +import com.hbm.inventory.fluid.types.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.ModDamageSource; -import com.hbm.packet.AuxElectricityPacket; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.packet.TETurbofanPacket; -import com.hbm.tileentity.TileEntityLoadedBase; +import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyGenerator; +import api.hbm.fluid.IFluidStandardReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; import net.minecraftforge.common.util.ForgeDirection; -@Spaghetti("a") -public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor { - - private ItemStack slots[]; +public class TileEntityMachineTurbofan extends TileEntityMachineBase implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver { public long power; - public int soundCycle = 0; - public static final long maxPower = 150000; + public static final long maxPower = 500_000; public FluidTank tank; - Random rand = new Random(); + public int afterburner; - public boolean isRunning; - public int spin; + public boolean wasOn; - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0, 0 }; - private static final int[] slots_side = new int[] { 0 }; - - private String customName; + public float spin; + public float lastSpin; + public int momentum = 0; + + private AudioWrapper audio; public TileEntityMachineTurbofan() { - slots = new ItemStack[3]; - tank = new FluidTank(Fluids.KEROSENE, 64000, 0); + super(3); + tank = new FluidTank(Fluids.KEROSENE, 24000, 0); } @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if (slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineTurbofan"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if (slots[i] != null) { - if (slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } + public String getName() { + return "container.machineTurbofan"; } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); this.power = nbt.getLong("powerTime"); tank.readFromNBT(nbt, "fuel"); - slots = new ItemStack[getSizeInventory()]; - - for (int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if (b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + nbt.setLong("powerTime", power); tank.writeToNBT(nbt, "fuel"); - NBTTagList list = new NBTTagList(); - - for (int i = 0; i < slots.length; i++) { - if (slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; } public long getPowerScaled(long i) { return (power * i) / maxPower; } + + protected DirPos[] getConPos() { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); + + return new DirPos[] { + new DirPos(this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord + rot.offsetZ * 2, rot), + new DirPos(this.xCoord + rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), + new DirPos(this.xCoord - rot.offsetX * 2, this.yCoord, this.zCoord - rot.offsetZ * 2, rot.getOpposite()), + new DirPos(this.xCoord - rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord - rot.offsetZ * 2 - dir.offsetZ, rot.getOpposite()) + }; + } - @Spaghetti("HOOOOUUUGH") @Override public void updateEntity() { - int nrg = 1250; - int cnsp = 1; - - afterburner = 0; - if(slots[2] != null) { - if(slots[2].getItem() == ModItems.upgrade_afterburn_1) { - nrg *= 2; - cnsp *= 2.5; - afterburner = 1; - } - if(slots[2].getItem() == ModItems.upgrade_afterburn_2) { - nrg *= 3; - cnsp *= 5; - afterburner = 2; - } - if(slots[2].getItem() == ModItems.upgrade_afterburn_3) { - nrg *= 4; - cnsp *= 7.5; - afterburner = 3; - } - } - - if (!worldObj.isRemote) { - - /*this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord - 1, Library.POS_X); - this.sendPower(worldObj, this.xCoord + 2, this.yCoord + 1, this.zCoord + 1, Library.POS_X); - this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord + 2, Library.POS_Z); - this.sendPower(worldObj, this.xCoord - 1, this.yCoord + 1, this.zCoord + 2, Library.POS_Z); - this.sendPower(worldObj, this.xCoord - 2, this.yCoord + 1, this.zCoord + 1, Library.NEG_X); - this.sendPower(worldObj, this.xCoord - 2, this.yCoord + 1, this.zCoord - 1, Library.NEG_X); - this.sendPower(worldObj, this.xCoord - 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z); - this.sendPower(worldObj, this.xCoord + 1, this.yCoord + 1, this.zCoord - 2, Library.NEG_Z);*/ - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - this.sendPower(worldObj, this.xCoord + rot.offsetX * 2, this.yCoord, this.zCoord + rot.offsetZ * 2, rot); - this.sendPower(worldObj, this.xCoord + rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord + rot.offsetZ * 2 - dir.offsetZ, rot); - this.sendPower(worldObj, this.xCoord - rot.offsetX * 2, this.yCoord, this.zCoord - rot.offsetZ * 2, rot.getOpposite()); - this.sendPower(worldObj, this.xCoord - rot.offsetX * 2 - dir.offsetX, this.yCoord, this.zCoord - rot.offsetZ * 2 - dir.offsetZ, rot.getOpposite()); - - //Tank Management - tank.loadTank(0, 1, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - - isRunning = false; - - if(tank.getFill() >= cnsp) { - tank.setFill(tank.getFill() - cnsp); - power += nrg; - - isRunning = true; - - spin += 20; - spin = spin % 360; - - if(power > maxPower) - power = maxPower; - - int meta = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); - - double posX = xCoord + 0.5; - double posY = yCoord; - double posZ = zCoord + 0.5; - - if(meta == 2) { - if(afterburner == 0 && rand.nextInt(3) == 0) { - EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 3.25; - smoke.motionX = rand.nextGaussian() * 0.3; - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = 2.5 + (rand.nextFloat() * 3.5); - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - for(int i = 0; i < afterburner * 5; i++) - if(afterburner > 0 && rand.nextInt(2) == 0) { - EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 3.25; - smoke.motionX = rand.nextGaussian() * 0.3; - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = 2.5 + (rand.nextFloat() * 3.5); - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - //Exhaust push - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 12)); - - for(Entity e : list) { - e.motionZ += 0.5; - if(afterburner > 0) - e.setFire(3 * afterburner); - } - - //Intake pull - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 3.5)); - - for(Entity e : list) { - e.motionZ += 0.5; - } - - //Intake kill - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 4.5, posX + 1.5, posY + 3, posZ - 3.5)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.turbofan, 1000); - - if(!e.isEntityAlive() && e instanceof EntityLivingBase) { - NBTTagCompound vdat = new NBTTagCompound(); - vdat.setString("type", "giblets"); - vdat.setInteger("ent", e.getEntityId()); - vdat.setInteger("cDiv", 5); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); - - worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); - } - } - } - if(meta == 3) { - if(afterburner == 0 && rand.nextInt(3) == 0) { - EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord - 3.25; - smoke.motionX = rand.nextGaussian() * 0.3; - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = -2.5 - (rand.nextFloat() * 3.5); - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - for(int i = 0; i < afterburner * 5; i++) - if(afterburner > 0 && rand.nextInt(2) == 0) { - EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord - 3.25; - smoke.motionX = rand.nextGaussian() * 0.3; - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = -2.5 - (rand.nextFloat() * 3.5); - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - //Exhaust push - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ - 12, posX + 1.5, posY + 3, posZ - 3.5)); - - for(Entity e : list) { - e.motionZ -= 0.5; - if(afterburner > 0) - e.setFire(3 * afterburner); - } - - //Intake pull - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 12)); - - for(Entity e : list) { - e.motionZ -= 0.5; - } - - //Intake kill - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 1.5, posY, posZ + 3.5, posX + 1.5, posY + 3, posZ + 4.5)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.turbofan, 1000); - - if(!e.isEntityAlive() && e instanceof EntityLivingBase) { - NBTTagCompound vdat = new NBTTagCompound(); - vdat.setString("type", "giblets"); - vdat.setInteger("ent", e.getEntityId()); - vdat.setInteger("cDiv", 5); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); - - worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); - } - } - } - if(meta == 4) { - if(afterburner == 0 && rand.nextInt(3) == 0) { - EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord + 3.25; - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = rand.nextGaussian() * 0.3; - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - for(int i = 0; i < afterburner * 5; i++) - if(afterburner > 0 && rand.nextInt(2) == 0) { - EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord + 3.25; - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = rand.nextGaussian() * 0.3; - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - //Exhaust push - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); - - for(Entity e : list) { - e.motionX += 0.5; - if(afterburner > 0) - e.setFire(3 * afterburner); - } - - //Intake pull - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); - - for(Entity e : list) { - e.motionX += 0.5; - } - - //Intake kill - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 4.5, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.turbofan, 1000); - - if(!e.isEntityAlive() && e instanceof EntityLivingBase) { - NBTTagCompound vdat = new NBTTagCompound(); - vdat.setString("type", "giblets"); - vdat.setInteger("ent", e.getEntityId()); - vdat.setInteger("cDiv", 5); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); - - worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); - } - } - } - if(meta == 5) { - if(afterburner == 0 && rand.nextInt(3) == 0) { - EntityTSmokeFX smoke = new EntityTSmokeFX(worldObj); - smoke.posX = xCoord - 3.25; - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.motionX = -2.5 - (rand.nextFloat() * 3.5); - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = rand.nextGaussian() * 0.3; - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - for(int i = 0; i < afterburner * 5; i++) - if(afterburner > 0 && rand.nextInt(2) == 0) { - EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); - smoke.posX = xCoord - 3.25; - smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); - smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); - smoke.motionX = -2.5 - (rand.nextFloat() * 3.5); - smoke.motionY = rand.nextGaussian() * 0.3; - smoke.motionZ = rand.nextGaussian() * 0.3; - if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(smoke); - } - - //Exhaust push - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 12, posY, posZ - 1.5, posX - 3.5, posY + 3, posZ + 1.5)); - - for(Entity e : list) { - e.motionX -= 0.5; - if(afterburner > 0) - e.setFire(3 * afterburner); - } - - //Intake pull - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 12, posY + 3, posZ + 1.5)); - - for(Entity e : list) { - e.motionX -= 0.5; - } - - //Intake kill - list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX + 3.5, posY, posZ - 1.5, posX + 4.5, posY + 3, posZ + 1.5)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.turbofan, 1000); - - if(!e.isEntityAlive() && e instanceof EntityLivingBase) { - NBTTagCompound vdat = new NBTTagCompound(); - vdat.setString("type", "giblets"); - vdat.setInteger("ent", e.getEntityId()); - vdat.setInteger("cDiv", 5); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); - - worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); - } - } - } - } - } - if(!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new TETurbofanPacket(xCoord, yCoord, zCoord, spin, isRunning), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + for(DirPos pos : getConPos()) { + this.sendPower(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tank.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + + tank.loadTank(0, 1, slots); + + this.wasOn = false; + + UpgradeManager.eval(slots, 2, 2); + this.afterburner = UpgradeManager.getLevel(UpgradeType.AFTERBURN); + + if(slots[2] != null && slots[2].getItem() == ModItems.flame_pony) + this.afterburner = 100; + + long burn = 0; + int amount = 1 + this.afterburner; + + if(tank.getTankType() instanceof FluidTypeCombustible && ((FluidTypeCombustible) tank.getTankType()).getGrade() == FuelGrade.AERO) { + burn = ((FluidTypeCombustible) tank.getTankType()).getCombustionEnergy() / 1_000; + } + + int toBurn = Math.min(amount, this.tank.getFill()); + + if(toBurn > 0) { + this.wasOn = true; + this.tank.setFill(this.tank.getFill() - toBurn); + this.power += burn * toBurn; + if(this.power > this.maxPower) { + this.power = this.maxPower; + } + } + + if(toBurn > 0) { + + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + if(this.afterburner > 0) { + + for(int i = 0; i < 2; i++) { + double speed = 2 + worldObj.rand.nextDouble() * 3; + double deviation = worldObj.rand.nextGaussian() * 0.2; + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "gasfire"); + data.setDouble("mX", -dir.offsetX * speed + deviation); + data.setDouble("mZ", -dir.offsetZ * speed + deviation); + data.setFloat("scale", 8F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, this.xCoord + 0.5F - dir.offsetX * (3 - i), this.yCoord + 1.5F, this.zCoord + 0.5F - dir.offsetZ * (3 - i)), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + } + } + + double minX = this.xCoord + 0.5 - dir.offsetX * 3.5 - rot.offsetX * 1.5; + double maxX = this.xCoord + 0.5 - dir.offsetX * 19.5 + rot.offsetX * 1.5; + double minZ = this.zCoord + 0.5 - dir.offsetZ * 3.5 - rot.offsetZ * 1.5; + double maxZ = this.zCoord + 0.5 - dir.offsetZ * 19.5 + rot.offsetZ * 1.5; + + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); + + for(Entity e : list) { + + if(this.afterburner > 0) { + e.setFire(5); + e.attackEntityFrom(DamageSource.onFire, 5F); + } + e.motionX -= dir.offsetX * 0.2; + e.motionZ -= dir.offsetZ * 0.2; + } + + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; + maxX = this.xCoord + 0.5 + dir.offsetX * 8.5 + rot.offsetX * 1.5; + minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; + maxZ = this.zCoord + 0.5 + dir.offsetZ * 8.5 + rot.offsetZ * 1.5; + + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); + + for(Entity e : list) { + e.motionX -= dir.offsetX * 0.2; + e.motionZ -= dir.offsetZ * 0.2; + } + + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; + maxX = this.xCoord + 0.5 + dir.offsetX * 3.75 + rot.offsetX * 1.5; + minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; + maxZ = this.zCoord + 0.5 + dir.offsetZ * 3.75 + rot.offsetZ * 1.5; + + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.turbofan, 1000); + e.setInWeb(); + + if(!e.isEntityAlive() && e instanceof EntityLivingBase) { + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", e.getEntityId()); + vdat.setInteger("cDiv", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY + e.height * 0.5, e.posZ, 150)); + + worldObj.playSoundEffect(e.posX, e.posY, e.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + worldObj.rand.nextFloat() * 0.2F); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setByte("after", (byte) afterburner); + data.setBoolean("wasOn", wasOn); + tank.writeToNBT(data, "tank"); + this.networkPack(data, 150); + + } else { + + this.lastSpin = this.spin; + + if(wasOn) { + if(this.momentum < 100F) + this.momentum++; + } else { + if(this.momentum > 0) + this.momentum--; + } + + this.spin += momentum / 2; + + if(this.spin >= 360) { + this.spin -= 360F; + this.lastSpin -= 360F; + } + + if(momentum > 0) { + + if(audio == null) { + audio = createAudioLoop(); + audio.startSound(); + } else if(!audio.isPlaying()) { + audio = rebootAudio(audio); + } + + audio.updateVolume(momentum); + audio.updatePitch(momentum / 200F + 0.5F + this.afterburner * 0.16F); + + } else { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + /* + * All movement related stuff has to be repeated on the client, but only for the client's player + * Otherwise this could lead to desync since the motion is never sent form the server + */ + if(!MainRegistry.proxy.me().capabilities.isCreativeMode) { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + + double minX = this.xCoord + 0.5 - dir.offsetX * 3.5 - rot.offsetX * 1.5; + double maxX = this.xCoord + 0.5 - dir.offsetX * 19.5 + rot.offsetX * 1.5; + double minZ = this.zCoord + 0.5 - dir.offsetZ * 3.5 - rot.offsetZ * 1.5; + double maxZ = this.zCoord + 0.5 - dir.offsetZ * 19.5 + rot.offsetZ * 1.5; + + List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); + + for(Entity e : list) { + if(e == MainRegistry.proxy.me()) { + e.motionX -= dir.offsetX * 0.2; + e.motionZ -= dir.offsetZ * 0.2; + } + } + + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; + maxX = this.xCoord + 0.5 + dir.offsetX * 8.5 + rot.offsetX * 1.5; + minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; + maxZ = this.zCoord + 0.5 + dir.offsetZ * 8.5 + rot.offsetZ * 1.5; + + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); + + for(Entity e : list) { + if(e == MainRegistry.proxy.me()) { + e.motionX -= dir.offsetX * 0.2; + e.motionZ -= dir.offsetZ * 0.2; + } + } + + minX = this.xCoord + 0.5 + dir.offsetX * 3.5 - rot.offsetX * 1.5; + maxX = this.xCoord + 0.5 + dir.offsetX * 3.75 + rot.offsetX * 1.5; + minZ = this.zCoord + 0.5 + dir.offsetZ * 3.5 - rot.offsetZ * 1.5; + maxZ = this.zCoord + 0.5 + dir.offsetZ * 3.75 + rot.offsetZ * 1.5; + + list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(Math.min(minX, maxX), yCoord, Math.min(minZ, maxZ), Math.max(minX, maxX), yCoord + 3, Math.max(minZ, maxZ))); + + for(Entity e : list) { + if(e == MainRegistry.proxy.me()) { + e.setInWeb(); + } + } + } + } + } + + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + this.afterburner = nbt.getByte("after"); + this.wasOn = nbt.getBoolean("wasOn"); + tank.readFromNBT(nbt, "tank"); + } + + public AudioWrapper createAudioLoop() { + return MainRegistry.proxy.getLoopedSound("hbm:block.turbofanOperate", xCoord, yCoord, zCoord, 5.0F, 1.0F); + } + + @Override + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + + @Override + public void invalidate() { + + super.invalidate(); + + if(audio != null) { + audio.stopSound(); + audio = null; } } @@ -584,4 +382,9 @@ public class TileEntityMachineTurbofan extends TileEntityLoadedBase implements I { return 65536.0D; } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] { tank }; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java index 500964a15..e6551423b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStructureMarker.java @@ -9,20 +9,16 @@ import net.minecraft.tileentity.TileEntity; public class TileEntityStructureMarker extends TileEntity { - //0: Factory - //1: Nuclear Reactor - //2: Reactor with Coat - //3: Fusion Reactor - //4: Fusion Reactor with Coat - //5: Watz Power Plant - //6: Fusionary Watz Plant + //0: Nuclear Reactor + //1: Watz Power Plant + //2: Fusionary Watz Plant public int type = 0; @Override public void updateEntity() { - if(this.type > 6) - type -= 7; + if(this.type > 2) + type -= 3; if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new TEStructurePacket(xCoord, yCoord, zCoord, type), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 250)); diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship2.java b/src/main/java/com/hbm/world/dungeon/Spaceship2.java index 6aa1c68e4..165fd93d8 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship2.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship2.java @@ -6,7 +6,6 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; -import com.hbm.main.MainRegistry; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -20,7 +19,6 @@ public class Spaceship2 Block Block4 = ModBlocks.fusion_heater; Block Block5 = ModBlocks.block_meteor; Block Block6 = ModBlocks.reactor_element; - Block Block7 = ModBlocks.fusion_core; Block Block8 = ModBlocks.fusion_hatch; Block Block9 = ModBlocks.reinforced_light; Block Block10 = ModBlocks.reinforced_glass; diff --git a/src/main/java/com/hbm/world/machine/FactoryAdvanced.java b/src/main/java/com/hbm/world/machine/FactoryAdvanced.java deleted file mode 100644 index 2c09d06c9..000000000 --- a/src/main/java/com/hbm/world/machine/FactoryAdvanced.java +++ /dev/null @@ -1,70 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class FactoryAdvanced extends WorldGenerator -{ - Block Block1 = ModBlocks.factory_advanced_hull; - Block Block2 = ModBlocks.factory_advanced_conductor; - Block Block3 = ModBlocks.factory_advanced_furnace; - Block Block4 = ModBlocks.factory_advanced_core; - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { - int i = rand.nextInt(1); - - if(i == 0) - { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { - x -= 1; - z -= 1; - - world.setBlock(x + 0, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Block3, 2, 3); - world.setBlock(x + 2, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Block3, 4, 3); - world.setBlock(x + 1, y + 1, z + 1, Block4, 0, 3); - world.setBlock(x + 2, y + 1, z + 1, Block3, 5, 3); - world.setBlock(x + 0, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 2, Block3, 3, 3); - world.setBlock(x + 2, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 2, Block1, 0, 3); - return true; - - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/machine/FactoryTitanium.java b/src/main/java/com/hbm/world/machine/FactoryTitanium.java deleted file mode 100644 index 6d7eb00dd..000000000 --- a/src/main/java/com/hbm/world/machine/FactoryTitanium.java +++ /dev/null @@ -1,89 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - - -public class FactoryTitanium extends WorldGenerator -{ - public static String[][] array = new String[][] { - { - "HHH", - "HHH", - "HHH" - }, - { - "HFH", - "FCF", - "HFH" - }, - { - "HHH", - "HHH", - "HHH" - } - }; - - Block Block1 = ModBlocks.factory_titanium_hull; - Block Block2 = ModBlocks.factory_titanium_conductor; - Block Block3 = ModBlocks.factory_titanium_furnace; - Block Block4 = ModBlocks.factory_titanium_core; - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { - int i = rand.nextInt(1); - - if(i == 0) - { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { - x -= 1; - z -= 1; - - world.setBlock(x + 0, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Block3, 2, 3); - world.setBlock(x + 2, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Block3, 4, 3); - world.setBlock(x + 1, y + 1, z + 1, Block4, 0, 3); - world.setBlock(x + 2, y + 1, z + 1, Block3, 5, 3); - world.setBlock(x + 0, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 2, Block3, 3, 3); - world.setBlock(x + 2, y + 1, z + 2, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 1, Block2, 0, 3); - world.setBlock(x + 2, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 2, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 2, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 2, Block1, 0, 3); - return true; - - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/world/machine/FusionReactor.java b/src/main/java/com/hbm/world/machine/FusionReactor.java deleted file mode 100644 index b293fe8cf..000000000 --- a/src/main/java/com/hbm/world/machine/FusionReactor.java +++ /dev/null @@ -1,1590 +0,0 @@ -//Schematic to java Structure by jajo_11 | inspired by "MITHION'S .SCHEMATIC TO JAVA CONVERTINGTOOL" - -package com.hbm.world.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.world.World; -import net.minecraft.world.gen.feature.WorldGenerator; - -public class FusionReactor extends WorldGenerator -{ - public static String[][] array = new String[][] { - { - " HHH ", - " HHH ", - " ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMMMM ", - " MMM MMM ", - "HH MMM RRR MMM HH", - "HH MMM RCR MMM HH", - "HH MMM RRR MMM HH", - " MMM MMM ", - " MMMMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " ", - " HHH ", - " HHH " - }, - { - " HHH ", - " HHH ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMTTTTTTTMM ", - " MMTTMMMMMTTMM ", - " MMTMMMMMMMTMM ", - "HHMMTMM MMTMMHH", - "HHMMTMM C MMTMMHH", - "HHMMTMM MMTMMHH", - " MMTMMMMMMMTMM ", - " MMTTMMMMMTTMM ", - " MMTTTTTTTMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " HHH ", - " HHH " - }, - { - " HAH ", - " HHH ", - " MMMMMMM ", - " MTTTTTTTM ", - " MT TM ", - " MT TTTTT TM ", - " MT TMMMMMT TM ", - "HHMT TM MT TMHH", - "AHMT TM # MT TMHA", - "HHMT TM MT TMHH", - " MT TMMMMMT TM ", - " MT TTTTT TM ", - " MT TM ", - " MTTTTTTTM ", - " MMMMMMM ", - " HHH ", - " HAH " - }, - { - " HHH ", - " HHH ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMTTTTTTTMM ", - " MMTTMMMMMTTMM ", - " MMTMMMMMMMTMM ", - "HHMMTMM MMTMMHH", - "HHMMTMM C MMTMMHH", - "HHMMTMM MMTMMHH", - " MMTMMMMMMMTMM ", - " MMTTMMMMMTTMM ", - " MMTTTTTTTMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " HHH ", - " HHH " - }, - { - " HHH ", - " HHH ", - " ", - " MMMMMMM ", - " MMMMMMMMM ", - " MMMMMMMMMMM ", - " MMM MMM ", - "HH MMM RRR MMM HH", - "HH MMM RCR MMM HH", - "HH MMM RRR MMM HH", - " MMM MMM ", - " MMMMMMMMMMM ", - " MMMMMMMMM ", - " MMMMMMM ", - " ", - " HHH ", - " HHH " - } - }; - - Block Block1 = ModBlocks.fusion_heater; - Block Block2 = ModBlocks.fusion_conductor; - Block Block3 = ModBlocks.fusion_motor; - Block Block4 = ModBlocks.fusion_center; - Block Block5 = ModBlocks.block_tungsten; - Block Block6 = ModBlocks.fusion_hatch; - Block Block7 = ModBlocks.fusion_core; - - @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { - int i = rand.nextInt(1); - - if(i == 0) - { - generate_r0(world, rand, x, y, z); - } - - return true; - - } - - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { - x -= 8; - z -= 8; - - world.setBlock(x + 0, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + 0, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + 0, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 3, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 3, Block2, 0, 3); - world.setBlock(x + 7, y + 0, z + 3, Block2, 0, 3); - world.setBlock(x + 8, y + 0, z + 3, Block2, 0, 3); - world.setBlock(x + 9, y + 0, z + 3, Block2, 0, 3); - world.setBlock(x + 10, y + 0, z + 3, Block2, 0, 3); - world.setBlock(x + 11, y + 0, z + 3, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 7, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 8, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 9, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 10, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 11, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 4, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 4, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 7, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 8, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 9, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 10, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 11, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 5, Block2, 0, 3); - world.setBlock(x + 14, y + 0, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 6, Block2, 0, 3); - world.setBlock(x + 4, y + 0, z + 6, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 6, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 6, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 6, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 6, Block2, 0, 3); - world.setBlock(x + 14, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 7, Block2, 0, 3); - world.setBlock(x + 4, y + 0, z + 7, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 7, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 7, Block3, 0, 3); - world.setBlock(x + 8, y + 0, z + 7, Block3, 0, 3); - world.setBlock(x + 9, y + 0, z + 7, Block3, 0, 3); - world.setBlock(x + 10, y + 0, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 7, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 7, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 7, Block2, 0, 3); - world.setBlock(x + 14, y + 0, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 7, Block1, 0, 3); - world.setBlock(x + 16, y + 0, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 8, Block2, 0, 3); - world.setBlock(x + 4, y + 0, z + 8, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 8, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 8, Block3, 0, 3); - world.setBlock(x + 8, y + 0, z + 8, Block4, 0, 3); - world.setBlock(x + 9, y + 0, z + 8, Block3, 0, 3); - world.setBlock(x + 10, y + 0, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 8, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 8, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 8, Block2, 0, 3); - world.setBlock(x + 14, y + 0, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 8, Block1, 0, 3); - world.setBlock(x + 16, y + 0, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + 0, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + 0, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 9, Block2, 0, 3); - world.setBlock(x + 4, y + 0, z + 9, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 9, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 9, Block3, 0, 3); - world.setBlock(x + 8, y + 0, z + 9, Block3, 0, 3); - world.setBlock(x + 9, y + 0, z + 9, Block3, 0, 3); - world.setBlock(x + 10, y + 0, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 9, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 9, Block2, 0, 3); - world.setBlock(x + 14, y + 0, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 9, Block1, 0, 3); - world.setBlock(x + 16, y + 0, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 10, Block2, 0, 3); - world.setBlock(x + 4, y + 0, z + 10, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 10, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 10, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 10, Block2, 0, 3); - world.setBlock(x + 14, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 4, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 7, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 8, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 9, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 10, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 11, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 11, Block2, 0, 3); - world.setBlock(x + 14, y + 0, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 5, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 7, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 8, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 9, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 10, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 11, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 12, Block2, 0, 3); - world.setBlock(x + 13, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 13, Block2, 0, 3); - world.setBlock(x + 6, y + 0, z + 13, Block2, 0, 3); - world.setBlock(x + 7, y + 0, z + 13, Block2, 0, 3); - world.setBlock(x + 8, y + 0, z + 13, Block2, 0, 3); - world.setBlock(x + 9, y + 0, z + 13, Block2, 0, 3); - world.setBlock(x + 10, y + 0, z + 13, Block2, 0, 3); - world.setBlock(x + 11, y + 0, z + 13, Block2, 0, 3); - world.setBlock(x + 12, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 15, Block1, 0, 3); - world.setBlock(x + 8, y + 0, z + 15, Block1, 0, 3); - world.setBlock(x + 9, y + 0, z + 15, Block1, 0, 3); - world.setBlock(x + 10, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 0, z + 16, Block1, 0, 3); - world.setBlock(x + 8, y + 0, z + 16, Block1, 0, 3); - world.setBlock(x + 9, y + 0, z + 16, Block1, 0, 3); - world.setBlock(x + 10, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 0, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + 1, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 1, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + 1, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + 1, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 1, z + 2, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 2, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 2, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 2, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 2, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 2, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 2, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 5, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 3, Block2, 0, 3); - world.setBlock(x + 13, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 4, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 4, Block2, 0, 3); - world.setBlock(x + 5, y + 1, z + 4, Block5, 0, 3); - world.setBlock(x + 6, y + 1, z + 4, Block5, 0, 3); - world.setBlock(x + 7, y + 1, z + 4, Block5, 0, 3); - world.setBlock(x + 8, y + 1, z + 4, Block5, 0, 3); - world.setBlock(x + 9, y + 1, z + 4, Block5, 0, 3); - world.setBlock(x + 10, y + 1, z + 4, Block5, 0, 3); - world.setBlock(x + 11, y + 1, z + 4, Block5, 0, 3); - world.setBlock(x + 12, y + 1, z + 4, Block2, 0, 3); - world.setBlock(x + 13, y + 1, z + 4, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 3, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 5, Block5, 0, 3); - world.setBlock(x + 5, y + 1, z + 5, Block5, 0, 3); - world.setBlock(x + 6, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 5, Block5, 0, 3); - world.setBlock(x + 12, y + 1, z + 5, Block5, 0, 3); - world.setBlock(x + 13, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 5, Block2, 0, 3); - world.setBlock(x + 15, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 3, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 6, Block5, 0, 3); - world.setBlock(x + 5, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 6, Block5, 0, 3); - world.setBlock(x + 13, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 6, Block2, 0, 3); - world.setBlock(x + 15, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 3, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 7, Block5, 0, 3); - world.setBlock(x + 5, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 1, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 1, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 7, Block5, 0, 3); - world.setBlock(x + 13, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 7, Block2, 0, 3); - world.setBlock(x + 15, y + 1, z + 7, Block1, 0, 3); - world.setBlock(x + 16, y + 1, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 3, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 8, Block5, 0, 3); - world.setBlock(x + 5, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 1, z + 8, Block4, 0, 3); - world.setBlock(x + 9, y + 1, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 8, Block5, 0, 3); - world.setBlock(x + 13, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 8, Block2, 0, 3); - world.setBlock(x + 15, y + 1, z + 8, Block1, 0, 3); - world.setBlock(x + 16, y + 1, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + 1, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 3, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 9, Block5, 0, 3); - world.setBlock(x + 5, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 1, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 1, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 9, Block5, 0, 3); - world.setBlock(x + 13, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 9, Block2, 0, 3); - world.setBlock(x + 15, y + 1, z + 9, Block1, 0, 3); - world.setBlock(x + 16, y + 1, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + 1, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 3, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 10, Block5, 0, 3); - world.setBlock(x + 5, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 10, Block5, 0, 3); - world.setBlock(x + 13, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 10, Block2, 0, 3); - world.setBlock(x + 15, y + 1, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 3, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 11, Block5, 0, 3); - world.setBlock(x + 5, y + 1, z + 11, Block5, 0, 3); - world.setBlock(x + 6, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 11, Block5, 0, 3); - world.setBlock(x + 12, y + 1, z + 11, Block5, 0, 3); - world.setBlock(x + 13, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 11, Block2, 0, 3); - world.setBlock(x + 15, y + 1, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 12, Block2, 0, 3); - world.setBlock(x + 4, y + 1, z + 12, Block2, 0, 3); - world.setBlock(x + 5, y + 1, z + 12, Block5, 0, 3); - world.setBlock(x + 6, y + 1, z + 12, Block5, 0, 3); - world.setBlock(x + 7, y + 1, z + 12, Block5, 0, 3); - world.setBlock(x + 8, y + 1, z + 12, Block5, 0, 3); - world.setBlock(x + 9, y + 1, z + 12, Block5, 0, 3); - world.setBlock(x + 10, y + 1, z + 12, Block5, 0, 3); - world.setBlock(x + 11, y + 1, z + 12, Block5, 0, 3); - world.setBlock(x + 12, y + 1, z + 12, Block2, 0, 3); - world.setBlock(x + 13, y + 1, z + 12, Block2, 0, 3); - world.setBlock(x + 14, y + 1, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 5, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 13, Block2, 0, 3); - world.setBlock(x + 13, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 1, z + 14, Block2, 0, 3); - world.setBlock(x + 6, y + 1, z + 14, Block2, 0, 3); - world.setBlock(x + 7, y + 1, z + 14, Block2, 0, 3); - world.setBlock(x + 8, y + 1, z + 14, Block2, 0, 3); - world.setBlock(x + 9, y + 1, z + 14, Block2, 0, 3); - world.setBlock(x + 10, y + 1, z + 14, Block2, 0, 3); - world.setBlock(x + 11, y + 1, z + 14, Block2, 0, 3); - world.setBlock(x + 12, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 1, z + 15, Block1, 0, 3); - world.setBlock(x + 8, y + 1, z + 15, Block1, 0, 3); - world.setBlock(x + 9, y + 1, z + 15, Block1, 0, 3); - world.setBlock(x + 10, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 1, z + 16, Block1, 0, 3); - world.setBlock(x + 8, y + 1, z + 16, Block1, 0, 3); - world.setBlock(x + 9, y + 1, z + 16, Block1, 0, 3); - world.setBlock(x + 10, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 1, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + 2, z + 0, Block6, 2, 3); - world.setBlock(x + 9, y + 2, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + 2, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 2, z + 2, Block2, 0, 3); - world.setBlock(x + 6, y + 2, z + 2, Block2, 0, 3); - world.setBlock(x + 7, y + 2, z + 2, Block2, 0, 3); - world.setBlock(x + 8, y + 2, z + 2, Block2, 0, 3); - world.setBlock(x + 9, y + 2, z + 2, Block2, 0, 3); - world.setBlock(x + 10, y + 2, z + 2, Block2, 0, 3); - world.setBlock(x + 11, y + 2, z + 2, Block2, 0, 3); - world.setBlock(x + 12, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 3, Block2, 0, 3); - world.setBlock(x + 5, y + 2, z + 3, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 3, Block5, 0, 3); - world.setBlock(x + 7, y + 2, z + 3, Block5, 0, 3); - world.setBlock(x + 8, y + 2, z + 3, Block5, 0, 3); - world.setBlock(x + 9, y + 2, z + 3, Block5, 0, 3); - world.setBlock(x + 10, y + 2, z + 3, Block5, 0, 3); - world.setBlock(x + 11, y + 2, z + 3, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 3, Block2, 0, 3); - world.setBlock(x + 13, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 4, Block2, 0, 3); - world.setBlock(x + 4, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 7, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 8, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 9, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 10, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 11, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 4, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 4, Block2, 0, 3); - world.setBlock(x + 14, y + 2, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 5, Block2, 0, 3); - world.setBlock(x + 3, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 4, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 7, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 8, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 9, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 10, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 11, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 5, Block5, 0, 3); - world.setBlock(x + 14, y + 2, z + 5, Block2, 0, 3); - world.setBlock(x + 15, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 6, Block2, 0, 3); - world.setBlock(x + 3, y + 2, z + 6, Block5, 0, 3); - world.setBlock(x + 4, y + 2, z + 6, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 6, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 6, Block2, 0, 3); - world.setBlock(x + 7, y + 2, z + 6, Block2, 0, 3); - world.setBlock(x + 8, y + 2, z + 6, Block2, 0, 3); - world.setBlock(x + 9, y + 2, z + 6, Block2, 0, 3); - world.setBlock(x + 10, y + 2, z + 6, Block2, 0, 3); - world.setBlock(x + 11, y + 2, z + 6, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 6, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 6, Block5, 0, 3); - world.setBlock(x + 14, y + 2, z + 6, Block2, 0, 3); - world.setBlock(x + 15, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 7, Block2, 0, 3); - world.setBlock(x + 3, y + 2, z + 7, Block5, 0, 3); - world.setBlock(x + 4, y + 2, z + 7, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 7, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 7, Block2, 0, 3); - world.setBlock(x + 7, y + 2, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 2, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 2, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 2, z + 7, Block2, 0, 3); - world.setBlock(x + 11, y + 2, z + 7, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 7, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 7, Block5, 0, 3); - world.setBlock(x + 14, y + 2, z + 7, Block2, 0, 3); - world.setBlock(x + 15, y + 2, z + 7, Block1, 0, 3); - world.setBlock(x + 16, y + 2, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 8, Block6, 4, 3); - world.setBlock(x + 1, y + 2, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 8, Block2, 0, 3); - world.setBlock(x + 3, y + 2, z + 8, Block5, 0, 3); - world.setBlock(x + 4, y + 2, z + 8, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 8, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 8, Block2, 0, 3); - world.setBlock(x + 7, y + 2, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 2, z + 8, Block7, 0, 3); - world.setBlock(x + 9, y + 2, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 2, z + 8, Block2, 0, 3); - world.setBlock(x + 11, y + 2, z + 8, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 8, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 8, Block5, 0, 3); - world.setBlock(x + 14, y + 2, z + 8, Block2, 0, 3); - world.setBlock(x + 15, y + 2, z + 8, Block1, 0, 3); - world.setBlock(x + 16, y + 2, z + 8, Block6, 5, 3); - world.setBlock(x + 0, y + 2, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + 2, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + 2, z + 9, Block2, 0, 3); - world.setBlock(x + 3, y + 2, z + 9, Block5, 0, 3); - world.setBlock(x + 4, y + 2, z + 9, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 9, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 9, Block2, 0, 3); - world.setBlock(x + 7, y + 2, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 2, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 2, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 2, z + 9, Block2, 0, 3); - world.setBlock(x + 11, y + 2, z + 9, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 9, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 9, Block5, 0, 3); - world.setBlock(x + 14, y + 2, z + 9, Block2, 0, 3); - world.setBlock(x + 15, y + 2, z + 9, Block1, 0, 3); - world.setBlock(x + 16, y + 2, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + 2, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 10, Block2, 0, 3); - world.setBlock(x + 3, y + 2, z + 10, Block5, 0, 3); - world.setBlock(x + 4, y + 2, z + 10, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 10, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 10, Block2, 0, 3); - world.setBlock(x + 7, y + 2, z + 10, Block2, 0, 3); - world.setBlock(x + 8, y + 2, z + 10, Block2, 0, 3); - world.setBlock(x + 9, y + 2, z + 10, Block2, 0, 3); - world.setBlock(x + 10, y + 2, z + 10, Block2, 0, 3); - world.setBlock(x + 11, y + 2, z + 10, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 10, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 10, Block5, 0, 3); - world.setBlock(x + 14, y + 2, z + 10, Block2, 0, 3); - world.setBlock(x + 15, y + 2, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 11, Block2, 0, 3); - world.setBlock(x + 3, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 4, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 7, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 8, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 9, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 10, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 11, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 11, Block5, 0, 3); - world.setBlock(x + 14, y + 2, z + 11, Block2, 0, 3); - world.setBlock(x + 15, y + 2, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 12, Block2, 0, 3); - world.setBlock(x + 4, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 5, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 7, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 8, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 9, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 10, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 11, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 12, Block5, 0, 3); - world.setBlock(x + 13, y + 2, z + 12, Block2, 0, 3); - world.setBlock(x + 14, y + 2, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 13, Block2, 0, 3); - world.setBlock(x + 5, y + 2, z + 13, Block5, 0, 3); - world.setBlock(x + 6, y + 2, z + 13, Block5, 0, 3); - world.setBlock(x + 7, y + 2, z + 13, Block5, 0, 3); - world.setBlock(x + 8, y + 2, z + 13, Block5, 0, 3); - world.setBlock(x + 9, y + 2, z + 13, Block5, 0, 3); - world.setBlock(x + 10, y + 2, z + 13, Block5, 0, 3); - world.setBlock(x + 11, y + 2, z + 13, Block5, 0, 3); - world.setBlock(x + 12, y + 2, z + 13, Block2, 0, 3); - world.setBlock(x + 13, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 2, z + 14, Block2, 0, 3); - world.setBlock(x + 6, y + 2, z + 14, Block2, 0, 3); - world.setBlock(x + 7, y + 2, z + 14, Block2, 0, 3); - world.setBlock(x + 8, y + 2, z + 14, Block2, 0, 3); - world.setBlock(x + 9, y + 2, z + 14, Block2, 0, 3); - world.setBlock(x + 10, y + 2, z + 14, Block2, 0, 3); - world.setBlock(x + 11, y + 2, z + 14, Block2, 0, 3); - world.setBlock(x + 12, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 2, z + 15, Block1, 0, 3); - world.setBlock(x + 8, y + 2, z + 15, Block1, 0, 3); - world.setBlock(x + 9, y + 2, z + 15, Block1, 0, 3); - world.setBlock(x + 10, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 2, z + 16, Block1, 0, 3); - world.setBlock(x + 8, y + 2, z + 16, Block6, 3, 3); - world.setBlock(x + 9, y + 2, z + 16, Block1, 0, 3); - world.setBlock(x + 10, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 2, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + 3, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 3, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + 3, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + 3, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 3, z + 2, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 2, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 2, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 2, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 2, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 2, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 2, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 5, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 3, Block2, 0, 3); - world.setBlock(x + 13, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 4, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 4, Block2, 0, 3); - world.setBlock(x + 5, y + 3, z + 4, Block5, 0, 3); - world.setBlock(x + 6, y + 3, z + 4, Block5, 0, 3); - world.setBlock(x + 7, y + 3, z + 4, Block5, 0, 3); - world.setBlock(x + 8, y + 3, z + 4, Block5, 0, 3); - world.setBlock(x + 9, y + 3, z + 4, Block5, 0, 3); - world.setBlock(x + 10, y + 3, z + 4, Block5, 0, 3); - world.setBlock(x + 11, y + 3, z + 4, Block5, 0, 3); - world.setBlock(x + 12, y + 3, z + 4, Block2, 0, 3); - world.setBlock(x + 13, y + 3, z + 4, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 3, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 5, Block5, 0, 3); - world.setBlock(x + 5, y + 3, z + 5, Block5, 0, 3); - world.setBlock(x + 6, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 5, Block5, 0, 3); - world.setBlock(x + 12, y + 3, z + 5, Block5, 0, 3); - world.setBlock(x + 13, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 5, Block2, 0, 3); - world.setBlock(x + 15, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 3, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 6, Block5, 0, 3); - world.setBlock(x + 5, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 6, Block5, 0, 3); - world.setBlock(x + 13, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 6, Block2, 0, 3); - world.setBlock(x + 15, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 3, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 7, Block5, 0, 3); - world.setBlock(x + 5, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 3, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 3, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 7, Block5, 0, 3); - world.setBlock(x + 13, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 7, Block2, 0, 3); - world.setBlock(x + 15, y + 3, z + 7, Block1, 0, 3); - world.setBlock(x + 16, y + 3, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 3, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 8, Block5, 0, 3); - world.setBlock(x + 5, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 3, z + 8, Block4, 0, 3); - world.setBlock(x + 9, y + 3, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 8, Block5, 0, 3); - world.setBlock(x + 13, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 8, Block2, 0, 3); - world.setBlock(x + 15, y + 3, z + 8, Block1, 0, 3); - world.setBlock(x + 16, y + 3, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + 3, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 3, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 9, Block5, 0, 3); - world.setBlock(x + 5, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 3, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 3, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 9, Block5, 0, 3); - world.setBlock(x + 13, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 9, Block2, 0, 3); - world.setBlock(x + 15, y + 3, z + 9, Block1, 0, 3); - world.setBlock(x + 16, y + 3, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + 3, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 3, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 10, Block5, 0, 3); - world.setBlock(x + 5, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 10, Block5, 0, 3); - world.setBlock(x + 13, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 10, Block2, 0, 3); - world.setBlock(x + 15, y + 3, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 3, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 11, Block5, 0, 3); - world.setBlock(x + 5, y + 3, z + 11, Block5, 0, 3); - world.setBlock(x + 6, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 11, Block5, 0, 3); - world.setBlock(x + 12, y + 3, z + 11, Block5, 0, 3); - world.setBlock(x + 13, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 11, Block2, 0, 3); - world.setBlock(x + 15, y + 3, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 12, Block2, 0, 3); - world.setBlock(x + 4, y + 3, z + 12, Block2, 0, 3); - world.setBlock(x + 5, y + 3, z + 12, Block5, 0, 3); - world.setBlock(x + 6, y + 3, z + 12, Block5, 0, 3); - world.setBlock(x + 7, y + 3, z + 12, Block5, 0, 3); - world.setBlock(x + 8, y + 3, z + 12, Block5, 0, 3); - world.setBlock(x + 9, y + 3, z + 12, Block5, 0, 3); - world.setBlock(x + 10, y + 3, z + 12, Block5, 0, 3); - world.setBlock(x + 11, y + 3, z + 12, Block5, 0, 3); - world.setBlock(x + 12, y + 3, z + 12, Block2, 0, 3); - world.setBlock(x + 13, y + 3, z + 12, Block2, 0, 3); - world.setBlock(x + 14, y + 3, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 5, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 13, Block2, 0, 3); - world.setBlock(x + 13, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 3, z + 14, Block2, 0, 3); - world.setBlock(x + 6, y + 3, z + 14, Block2, 0, 3); - world.setBlock(x + 7, y + 3, z + 14, Block2, 0, 3); - world.setBlock(x + 8, y + 3, z + 14, Block2, 0, 3); - world.setBlock(x + 9, y + 3, z + 14, Block2, 0, 3); - world.setBlock(x + 10, y + 3, z + 14, Block2, 0, 3); - world.setBlock(x + 11, y + 3, z + 14, Block2, 0, 3); - world.setBlock(x + 12, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 3, z + 15, Block1, 0, 3); - world.setBlock(x + 8, y + 3, z + 15, Block1, 0, 3); - world.setBlock(x + 9, y + 3, z + 15, Block1, 0, 3); - world.setBlock(x + 10, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 3, z + 16, Block1, 0, 3); - world.setBlock(x + 8, y + 3, z + 16, Block1, 0, 3); - world.setBlock(x + 9, y + 3, z + 16, Block1, 0, 3); - world.setBlock(x + 10, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 3, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 8, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 9, y + 4, z + 0, Block1, 0, 3); - world.setBlock(x + 10, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 0, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 8, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 9, y + 4, z + 1, Block1, 0, 3); - world.setBlock(x + 10, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 1, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 2, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 3, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 3, Block2, 0, 3); - world.setBlock(x + 7, y + 4, z + 3, Block2, 0, 3); - world.setBlock(x + 8, y + 4, z + 3, Block2, 0, 3); - world.setBlock(x + 9, y + 4, z + 3, Block2, 0, 3); - world.setBlock(x + 10, y + 4, z + 3, Block2, 0, 3); - world.setBlock(x + 11, y + 4, z + 3, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 3, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 7, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 8, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 9, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 10, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 11, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 4, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 4, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 4, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 7, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 8, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 9, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 10, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 11, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 5, Block2, 0, 3); - world.setBlock(x + 14, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 5, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 6, Block2, 0, 3); - world.setBlock(x + 4, y + 4, z + 6, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 6, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 6, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 6, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 6, Block2, 0, 3); - world.setBlock(x + 14, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 6, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 7, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 7, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 7, Block2, 0, 3); - world.setBlock(x + 4, y + 4, z + 7, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 7, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 7, Block3, 0, 3); - world.setBlock(x + 8, y + 4, z + 7, Block3, 0, 3); - world.setBlock(x + 9, y + 4, z + 7, Block3, 0, 3); - world.setBlock(x + 10, y + 4, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 7, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 7, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 7, Block2, 0, 3); - world.setBlock(x + 14, y + 4, z + 7, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 7, Block1, 0, 3); - world.setBlock(x + 16, y + 4, z + 7, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 8, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 8, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 8, Block2, 0, 3); - world.setBlock(x + 4, y + 4, z + 8, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 8, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 8, Block3, 0, 3); - world.setBlock(x + 8, y + 4, z + 8, Block4, 0, 3); - world.setBlock(x + 9, y + 4, z + 8, Block3, 0, 3); - world.setBlock(x + 10, y + 4, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 8, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 8, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 8, Block2, 0, 3); - world.setBlock(x + 14, y + 4, z + 8, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 8, Block1, 0, 3); - world.setBlock(x + 16, y + 4, z + 8, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 9, Block1, 0, 3); - world.setBlock(x + 1, y + 4, z + 9, Block1, 0, 3); - world.setBlock(x + 2, y + 4, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 9, Block2, 0, 3); - world.setBlock(x + 4, y + 4, z + 9, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 9, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 9, Block3, 0, 3); - world.setBlock(x + 8, y + 4, z + 9, Block3, 0, 3); - world.setBlock(x + 9, y + 4, z + 9, Block3, 0, 3); - world.setBlock(x + 10, y + 4, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 9, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 9, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 9, Block2, 0, 3); - world.setBlock(x + 14, y + 4, z + 9, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 9, Block1, 0, 3); - world.setBlock(x + 16, y + 4, z + 9, Block1, 0, 3); - world.setBlock(x + 0, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 10, Block2, 0, 3); - world.setBlock(x + 4, y + 4, z + 10, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 10, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 10, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 10, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 10, Block2, 0, 3); - world.setBlock(x + 14, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 10, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 4, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 7, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 8, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 9, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 10, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 11, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 11, Block2, 0, 3); - world.setBlock(x + 14, y + 4, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 11, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 5, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 7, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 8, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 9, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 10, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 11, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 12, Block2, 0, 3); - world.setBlock(x + 13, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 12, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 13, Block2, 0, 3); - world.setBlock(x + 6, y + 4, z + 13, Block2, 0, 3); - world.setBlock(x + 7, y + 4, z + 13, Block2, 0, 3); - world.setBlock(x + 8, y + 4, z + 13, Block2, 0, 3); - world.setBlock(x + 9, y + 4, z + 13, Block2, 0, 3); - world.setBlock(x + 10, y + 4, z + 13, Block2, 0, 3); - world.setBlock(x + 11, y + 4, z + 13, Block2, 0, 3); - world.setBlock(x + 12, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 13, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 8, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 9, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 10, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 14, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 15, Block1, 0, 3); - world.setBlock(x + 8, y + 4, z + 15, Block1, 0, 3); - world.setBlock(x + 9, y + 4, z + 15, Block1, 0, 3); - world.setBlock(x + 10, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 15, Blocks.air, 0, 3); - world.setBlock(x + 0, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 1, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 2, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 3, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 4, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 5, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 6, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 7, y + 4, z + 16, Block1, 0, 3); - world.setBlock(x + 8, y + 4, z + 16, Block1, 0, 3); - world.setBlock(x + 9, y + 4, z + 16, Block1, 0, 3); - world.setBlock(x + 10, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 11, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 12, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 13, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 14, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 15, y + 4, z + 16, Blocks.air, 0, 3); - world.setBlock(x + 16, y + 4, z + 16, Blocks.air, 0, 3); - return true; - - } - -} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index ea1dee654..86d84c60e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -256,6 +256,7 @@ container.fluidtank=Tank container.forceField=Kraftfeldgenerator container.frackingTower=Hydraulischer Frackingturm container.furnaceIron=Eiserner Ofen +container.furnaceSteel=Stahlofen container.fusionMultiblock=Großer Fusionsreaktor container.fusionaryWatzPlant=Fusionares Watzwerk container.gasCentrifuge=Gaszentrifuge @@ -3249,6 +3250,7 @@ tile.factory_titanium_hull.name=Einfache Fabrikshülle tile.fallout.name=Fallout tile.fence_metal.name=Maschendrahtzaun tile.fire_digamma.name=Verweilendes Digamma +tile.fire_door.name=Brandschutztür tile.fireworks.name=Feuerwerksbatterie tile.fireworks.charges=Ladungen: %s tile.fireworks.message=Nachricht: %s @@ -3264,6 +3266,7 @@ tile.frozen_grass.name=Gefrorenes Gras tile.frozen_log.name=Gefrorener Baumstamm tile.frozen_planks.name=Gefrorene Holzbretter tile.furnace_iron.name=Eiserner Ofen +tile.furnace_steel.name=Stahlofen tile.fusion_center.name=Zentralmagnetstück tile.fusion_conductor.name=Supraleiter-Magnet tile.fusion_core.name=Fusionsreaktorsteuerung diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 51654a4ef..c2e822c66 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -446,6 +446,7 @@ container.fluidtank=Tank container.forceField=Forcefield Emitter container.frackingTower=Hydraulic Fracking Tower container.furnaceIron=Iron Furnace +container.furnaceSteel=Steel Furnace container.fusionMultiblock=Big Fusion Reactor container.fusionaryWatzPlant=Fusionary Watz Plant container.gasCentrifuge=Gas Centrifuge @@ -3676,6 +3677,7 @@ tile.factory_titanium_hull.name=Basic Factory Casing tile.fallout.name=Fallout tile.fence_metal.name=Chainlink Fence tile.fire_digamma.name=Lingering Digamma +tile.fire_door.name=Fire Door tile.fireworks.name=Firework Battery tile.fireworks.charges=Charges Loaded: %s tile.fireworks.message=Message: %s @@ -3691,10 +3693,13 @@ tile.frozen_grass.name=Frozen Grass tile.frozen_log.name=Frozen Log tile.frozen_planks.name=Frozen Planks tile.furnace_iron.name=Iron Furnace +tile.furnace_iron.desc=Larger and more efficient furnace,$does not waste fuel when idle. +tile.furnace_steel.name=Steel Furnace +tile.furnace_steel.desc=Very large furnace that can provide bonus items$when smelting ores. Requires external heat source. tile.fusion_center.name=Central Magnet Piece tile.fusion_conductor.name=Superconducting Magnet tile.fusion_core.name=Fusion Reactor Control -tile.fusion_hatch.name=Fusion Reactor Access Hatch +tile.fusion_hatch.name=Duct Deco Block tile.fusion_heater.name=Plasma Heater Component tile.fusion_motor.name=Magnet Motor Piece tile.fwatz_computer.name=Fusionary Watz Reactor Calculation Matrix @@ -3757,6 +3762,7 @@ tile.hadron_power_1g.name=Particle Accelerator Power Plug (1GHE) tile.hadron_power_10g.name=Particle Accelerator Power Plug (10GHE) tile.hazmat.name=Hazmat Cloth Block tile.heater_firebox.name=Firebox +tile.heater_firebox.desc=Burns solid fuel to produce heat. tile.hev_battery.name=Suit Battery tile.iter.name=Fusion Reactor tile.ladder_aluminium.name=Aluminium Ladder diff --git a/src/main/resources/assets/hbm/models/doors/fire_door.obj b/src/main/resources/assets/hbm/models/doors/fire_door.obj new file mode 100644 index 000000000..d837ad85b --- /dev/null +++ b/src/main/resources/assets/hbm/models/doors/fire_door.obj @@ -0,0 +1,464 @@ +# Blender v2.92.0 OBJ File: 'fire_door.blend' +# www.blender.org +o frame +v 0.500000 3.000000 -2.000000 +v 0.500000 0.000000 -2.000000 +v 0.500000 0.000000 2.000000 +v 0.500000 3.000000 2.000000 +v 0.250000 0.062500 1.375000 +v 0.250000 2.750000 1.375000 +v 0.250000 0.062500 -1.375000 +v 0.250000 2.750000 -1.375000 +v 0.353298 0.062500 1.375000 +v 0.500000 0.000000 1.521702 +v 0.500000 2.804434 1.521702 +v 0.353298 2.750000 1.375000 +v 0.353298 0.062500 -1.375000 +v 0.500000 0.000000 -1.521702 +v 0.500000 2.804434 -1.521702 +v 0.353298 2.750000 -1.375000 +v 0.250000 0.012500 1.500000 +v 0.250000 2.812500 1.500000 +v 0.250000 0.012500 -1.500000 +v 0.250000 2.812500 -1.500000 +v -0.500000 3.000000 -2.000000 +v -0.500000 0.000000 -2.000000 +v -0.500000 0.000000 2.000000 +v -0.500000 3.000000 2.000000 +v -0.250000 0.062500 1.375000 +v -0.250000 2.750000 1.375000 +v -0.250000 0.062500 -1.375000 +v -0.250000 2.750000 -1.375000 +v -0.353298 0.062500 1.375000 +v -0.500000 0.000000 1.521702 +v -0.500000 2.804434 1.521702 +v -0.353298 2.750000 1.375000 +v -0.353298 0.062500 -1.375000 +v -0.500000 0.000000 -1.521702 +v -0.500000 2.804434 -1.521702 +v -0.353298 2.750000 -1.375000 +v -0.250000 0.012500 1.500000 +v -0.250000 2.812500 1.500000 +v -0.250000 0.012500 -1.500000 +v -0.250000 2.812500 -1.500000 +vt 0.129307 0.159244 +vt 0.426242 0.108600 +vt 0.426242 0.159243 +vt 0.426242 0.481480 +vt 0.532123 0.159243 +vt 0.827926 0.884298 +vt 0.537562 0.895205 +vt 0.537562 0.884298 +vt 0.960877 0.286483 +vt 0.949970 0.002720 +vt 0.960877 0.002720 +vt 0.982663 0.002720 +vt 0.993570 0.286481 +vt 0.982663 0.286481 +vt 0.491082 0.933805 +vt 0.480175 0.643442 +vt 0.491082 0.643442 +vt 0.129307 0.481479 +vt 0.426242 0.532122 +vt 0.108601 0.532122 +vt 0.108600 0.108601 +vt 0.474735 0.932486 +vt 0.461537 0.643442 +vt 0.474735 0.648722 +vt 0.390106 0.650041 +vt 0.376907 0.939085 +vt 0.376907 0.643442 +vt 0.997280 0.739973 +vt 0.991983 0.436547 +vt 0.997280 0.449735 +vt 0.410591 0.457749 +vt 0.142598 0.458801 +vt 0.413384 0.180867 +vt 0.145950 0.183841 +vt 0.324114 0.939085 +vt 0.921869 0.436547 +vt 0.869076 0.753308 +vt 0.869076 0.436547 +vt 0.939205 0.753215 +vt 0.991983 0.753216 +vt 0.862476 0.449745 +vt 0.862476 0.740110 +vt 0.426242 0.638003 +vt 0.002720 0.532122 +vt 0.857037 0.862513 +vt 0.558388 0.811578 +vt 0.857037 0.811578 +vt 0.496521 0.933804 +vt 0.507428 0.643442 +vt 0.507428 0.933804 +vt 0.966317 0.286481 +vt 0.977224 0.002720 +vt 0.977224 0.286481 +vt 0.512868 0.927206 +vt 0.523775 0.643442 +vt 0.523775 0.927206 +vt 0.827926 0.878859 +vt 0.537562 0.867952 +vt 0.827926 0.867952 +vt 0.558389 0.487482 +vt 0.857037 0.436547 +vt 0.857037 0.487481 +vt 0.537562 0.862512 +vt 0.408744 0.643442 +vt 0.395545 0.932486 +vt 0.395545 0.648722 +vt 0.310915 0.650041 +vt 0.310915 0.933806 +vt 0.939206 0.436547 +vt 0.933908 0.740024 +vt 0.933908 0.449789 +vt 0.840939 0.511629 +vt 0.571917 0.510031 +vt 0.843798 0.789097 +vt 0.921869 0.753308 +vt 0.928468 0.449745 +vt 0.928468 0.740110 +vt 0.108600 0.002720 +vt 0.426242 0.002720 +vt 0.408744 0.939085 +vt 0.461537 0.939085 +vt 0.532123 0.108601 +vt 0.532123 0.481480 +vt 0.532123 0.532122 +vt 0.827926 0.895205 +vt 0.949970 0.286483 +vt 0.993570 0.002720 +vt 0.480175 0.933805 +vt 0.390106 0.933806 +vt 0.324114 0.643442 +vt 0.108601 0.638003 +vt 0.002720 0.108601 +vt 0.496521 0.643442 +vt 0.966316 0.002720 +vt 0.512867 0.643442 +vt 0.537562 0.878859 +vt 0.537562 0.436547 +vt 0.574725 0.786781 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.2381 0.9712 0.0000 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.2108 -0.9775 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.3919 0.9200 0.0000 +vn 0.3479 -0.9375 0.0000 +vn 0.7071 0.0000 -0.7071 +vn -0.2381 0.9712 0.0000 +vn -0.2108 -0.9775 0.0000 +vn -0.7071 0.0000 0.7071 +vn -0.3919 0.9200 0.0000 +vn -0.3479 -0.9375 0.0000 +vn -0.7071 0.0000 -0.7071 +s 1 +f 11/1/1 3/2/1 10/3/1 +f 14/4/2 10/3/2 30/5/2 +f 5/6/3 13/7/4 7/8/3 +f 6/9/5 9/10/5 5/11/5 +f 7/12/6 16/13/6 8/14/6 +f 8/15/2 12/16/7 6/17/2 +f 15/18/1 2/19/1 1/20/1 +f 15/18/1 4/21/1 11/1/1 +f 8/22/8 19/23/8 7/24/8 +f 6/25/8 17/26/8 18/27/8 +f 7/28/8 17/29/8 5/30/8 +f 13/31/9 15/18/9 16/32/9 +f 14/4/10 9/33/4 10/3/10 +f 11/1/11 16/32/7 15/18/11 +f 11/1/12 9/33/12 12/34/12 +f 37/35/5 18/27/5 17/26/5 +f 38/36/2 20/37/2 18/38/2 +f 39/39/3 17/29/3 19/40/3 +f 6/41/8 20/37/8 8/42/8 +f 22/43/5 1/20/5 2/19/5 +f 21/44/3 4/21/3 1/20/3 +f 23/45/8 31/46/8 30/47/8 +f 33/48/13 25/49/3 27/50/3 +f 29/51/5 26/52/5 25/53/5 +f 36/54/6 27/55/6 28/56/6 +f 32/57/14 28/58/2 26/59/2 +f 35/60/8 22/61/8 34/62/8 +f 24/63/8 35/60/8 31/46/8 +f 39/64/1 28/65/1 27/66/1 +f 26/67/1 37/35/1 25/68/1 +f 37/69/1 27/70/1 25/71/1 +f 35/60/15 33/72/15 36/73/15 +f 29/74/13 34/62/16 30/47/16 +f 36/73/14 31/46/17 35/60/17 +f 31/46/18 29/74/18 30/47/18 +f 40/75/1 26/76/1 28/77/1 +f 3/2/6 24/78/6 23/79/6 +f 40/80/6 19/23/6 20/81/6 +f 11/1/1 4/21/1 3/2/1 +f 10/3/2 3/2/2 23/82/2 +f 30/5/2 34/83/2 14/4/2 +f 34/83/2 22/84/2 14/4/2 +f 10/3/2 23/82/2 30/5/2 +f 22/84/2 2/19/2 14/4/2 +f 5/6/3 9/85/4 13/7/4 +f 6/9/5 12/86/5 9/10/5 +f 7/12/6 13/87/6 16/13/6 +f 8/15/2 16/88/7 12/16/7 +f 15/18/1 14/4/1 2/19/1 +f 15/18/1 1/20/1 4/21/1 +f 8/22/8 20/81/8 19/23/8 +f 6/25/8 5/89/8 17/26/8 +f 7/28/8 19/40/8 17/29/8 +f 13/31/9 14/4/9 15/18/9 +f 14/4/10 13/31/4 9/33/4 +f 11/1/11 12/34/7 16/32/7 +f 11/1/12 10/3/12 9/33/12 +f 37/35/5 38/90/5 18/27/5 +f 38/36/2 40/75/2 20/37/2 +f 39/39/3 37/69/3 17/29/3 +f 6/41/8 18/38/8 20/37/8 +f 22/43/5 21/91/5 1/20/5 +f 21/44/3 24/92/3 4/21/3 +f 23/45/8 24/63/8 31/46/8 +f 33/48/13 29/93/13 25/49/3 +f 29/51/5 32/94/5 26/52/5 +f 36/54/6 33/95/6 27/55/6 +f 32/57/14 36/96/14 28/58/2 +f 35/60/8 21/97/8 22/61/8 +f 24/63/8 21/97/8 35/60/8 +f 39/64/1 40/80/1 28/65/1 +f 26/67/1 38/90/1 37/35/1 +f 37/69/1 39/39/1 27/70/1 +f 35/60/15 34/62/15 33/72/15 +f 29/74/13 33/72/13 34/62/16 +f 36/73/14 32/98/14 31/46/17 +f 31/46/18 32/98/18 29/74/18 +f 40/75/1 38/36/1 26/76/1 +f 3/2/6 4/21/6 24/78/6 +f 40/80/6 39/64/6 19/23/6 +o door +v 0.250000 0.183959 -1.121300 +v 0.250000 2.621650 -1.138101 +v 0.250000 2.621650 -0.055236 +v 0.250000 0.183959 -0.072037 +v 0.250000 0.012500 -1.500000 +v 0.250000 2.812500 -1.500000 +v 0.187500 0.233959 -1.071471 +v 0.187500 2.571650 -1.087928 +v 0.187500 0.233959 -0.121866 +v 0.187500 2.571650 -0.105409 +v 0.250000 0.012500 -0.072037 +v 0.250000 2.812500 -0.055236 +v -0.250000 0.183959 -1.121300 +v -0.250000 2.621650 -1.138101 +v -0.250000 2.621650 -0.055236 +v -0.250000 0.183959 -0.072037 +v -0.250000 0.012500 -1.500000 +v -0.250000 2.812500 -1.500000 +v -0.187500 0.233959 -1.071471 +v -0.187500 2.571650 -1.087928 +v -0.187500 0.233959 -0.121866 +v -0.187500 2.571650 -0.105409 +v -0.250000 0.012500 -0.072037 +v -0.250000 2.812500 -0.055236 +v 0.250000 0.183959 1.121300 +v 0.250000 2.621650 1.138101 +v 0.250000 2.621650 0.055236 +v 0.250000 0.183959 0.072037 +v 0.250000 0.012500 1.500000 +v 0.250000 2.812500 1.500000 +v 0.187500 0.233959 1.071471 +v 0.187500 2.571650 1.087928 +v 0.187500 0.233959 0.121866 +v 0.187500 2.571650 0.105409 +v 0.250000 0.012500 0.072037 +v 0.250000 2.812500 0.055236 +v -0.250000 0.183959 1.121300 +v -0.250000 2.621650 1.138101 +v -0.250000 2.621650 0.055236 +v -0.250000 0.183959 0.072037 +v -0.250000 0.012500 1.500000 +v -0.250000 2.812500 1.500000 +v -0.187500 0.233959 1.071471 +v -0.187500 2.571650 1.087928 +v -0.187500 0.233959 0.121866 +v -0.187500 2.571650 0.105409 +v -0.250000 0.012500 0.072037 +v -0.250000 2.812500 0.055236 +vt 0.870543 0.095027 +vt 0.591111 0.056268 +vt 0.890982 0.056268 +vt 0.890982 0.002720 +vt 0.591111 0.002720 +vt 0.890982 0.210998 +vt 0.870543 0.210998 +vt 0.862101 0.203752 +vt 0.619145 0.104447 +vt 0.861533 0.102468 +vt 0.609474 0.096826 +vt 0.618040 0.201958 +vt 0.609473 0.209199 +vt 0.591111 0.209199 +vt 0.591111 0.377559 +vt 0.890982 0.431107 +vt 0.591111 0.431107 +vt 0.944530 0.210998 +vt 0.944530 0.222829 +vt 0.890982 0.222829 +vt 0.284839 0.928692 +vt 0.002720 0.967823 +vt 0.021259 0.926875 +vt 0.870543 0.222829 +vt 0.305475 0.811605 +vt 0.284840 0.811605 +vt 0.030947 0.919265 +vt 0.276182 0.818924 +vt 0.275848 0.921133 +vt 0.030066 0.820598 +vt 0.021259 0.813422 +vt 0.002720 0.813422 +vt 0.284840 0.799660 +vt 0.870543 0.338800 +vt 0.609473 0.337001 +vt 0.619105 0.329409 +vt 0.862137 0.230055 +vt 0.861490 0.331345 +vt 0.618095 0.231869 +vt 0.609473 0.224628 +vt 0.591111 0.224628 +vt 0.284840 0.682573 +vt 0.002720 0.643442 +vt 0.305476 0.643442 +vt 0.305475 0.799660 +vt 0.276134 0.792335 +vt 0.030993 0.692044 +vt 0.275893 0.690099 +vt 0.021259 0.684390 +vt 0.030002 0.790657 +vt 0.021259 0.797844 +vt 0.002720 0.797843 +vt 0.537562 0.224628 +vt 0.890982 0.377559 +vt 0.944530 0.377559 +vt 0.944530 0.056268 +vt 0.305476 0.967823 +vt 0.537562 0.377559 +vt 0.537562 0.209198 +vt 0.537562 0.056268 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.6260 0.0055 0.7798 +vn 0.6234 0.0054 0.7819 +vn 0.6261 0.0055 0.7798 +vn 0.6247 -0.7809 0.0000 +vn 0.6247 0.7809 0.0000 +vn 0.6260 0.0055 -0.7798 +vn 0.6234 0.0054 -0.7819 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.6260 0.0055 0.7798 +vn -0.6234 0.0054 0.7819 +vn -0.6247 -0.7809 0.0000 +vn -0.6247 0.7809 0.0000 +vn -0.6234 0.0054 -0.7819 +vn -0.6260 0.0055 -0.7798 +vn -0.6261 0.0055 -0.7798 +vn 0.0000 -1.0000 0.0000 +vn 0.6261 0.0055 -0.7798 +vn -0.6261 0.0055 0.7798 +s 1 +f 42/99/19 45/100/19 46/101/19 +f 58/102/20 45/100/20 57/103/20 +f 42/99/19 52/104/19 43/105/19 +f 50/106/19 47/107/19 48/108/19 +f 41/109/21 48/108/22 47/107/23 +f 50/106/24 42/99/24 43/105/24 +f 41/109/25 49/110/25 44/111/25 +f 44/111/26 50/106/27 43/105/27 +f 41/109/19 51/112/19 45/100/19 +f 69/113/28 82/114/28 81/115/28 +f 64/116/29 88/117/29 76/118/29 +f 54/119/30 57/120/30 53/121/30 +f 44/111/19 43/105/19 67/122/19 +f 64/123/30 54/119/30 55/124/30 +f 59/125/30 62/126/30 60/127/30 +f 53/121/31 60/127/32 54/119/32 +f 54/119/33 62/126/33 55/124/33 +f 61/128/34 53/121/34 56/129/34 +f 62/126/35 56/129/36 55/124/35 +f 53/121/30 63/130/30 56/129/30 +f 79/131/30 64/123/30 55/124/30 +f 66/132/19 69/113/19 65/133/19 +f 76/118/19 66/132/19 67/122/19 +f 71/134/19 74/135/19 72/136/19 +f 65/133/26 72/136/27 66/132/27 +f 66/132/24 74/135/24 67/122/24 +f 73/137/25 65/133/25 68/138/25 +f 74/135/22 68/138/21 67/122/22 +f 65/133/19 75/139/19 68/138/19 +f 78/140/30 81/141/30 82/142/30 +f 78/140/30 88/143/30 79/131/30 +f 86/144/30 83/145/30 84/146/30 +f 77/147/36 84/146/35 83/145/37 +f 86/144/33 78/140/33 79/131/33 +f 77/147/34 85/148/34 80/149/34 +f 80/149/31 86/144/32 79/131/32 +f 77/147/30 87/150/30 81/141/30 +f 51/112/38 75/139/38 87/151/38 +f 42/99/19 41/109/19 45/100/19 +f 58/102/20 46/101/20 45/100/20 +f 42/99/19 46/101/19 52/104/19 +f 50/106/19 49/110/19 47/107/19 +f 41/109/21 42/99/22 48/108/22 +f 50/106/24 48/108/24 42/99/24 +f 41/109/25 47/107/25 49/110/25 +f 44/111/26 49/110/39 50/106/27 +f 41/109/19 44/111/19 51/112/19 +f 69/113/28 70/152/28 82/114/28 +f 88/117/29 82/153/29 70/152/29 +f 76/118/29 52/104/29 64/116/29 +f 52/104/29 46/101/29 64/116/29 +f 88/117/29 70/152/29 76/118/29 +f 46/101/29 58/154/29 64/116/29 +f 54/119/30 58/155/30 57/120/30 +f 43/105/19 52/104/19 76/118/19 +f 67/122/19 68/138/19 44/111/19 +f 68/138/19 75/139/19 51/112/19 +f 43/105/19 76/118/19 67/122/19 +f 51/112/19 44/111/19 68/138/19 +f 64/123/30 58/155/30 54/119/30 +f 59/125/30 61/128/30 62/126/30 +f 53/121/31 59/125/40 60/127/32 +f 54/119/33 60/127/33 62/126/33 +f 61/128/34 59/125/34 53/121/34 +f 62/126/35 61/128/37 56/129/36 +f 53/121/30 57/120/30 63/130/30 +f 56/129/30 63/130/30 87/150/30 +f 87/150/30 80/149/30 56/129/30 +f 80/149/30 79/131/30 55/124/30 +f 79/131/30 88/143/30 64/123/30 +f 55/124/30 56/129/30 80/149/30 +f 66/132/19 70/152/19 69/113/19 +f 76/118/19 70/152/19 66/132/19 +f 71/134/19 73/137/19 74/135/19 +f 65/133/26 71/134/39 72/136/27 +f 66/132/24 72/136/24 74/135/24 +f 73/137/25 71/134/25 65/133/25 +f 74/135/22 73/137/23 68/138/21 +f 65/133/19 69/113/19 75/139/19 +f 78/140/30 77/147/30 81/141/30 +f 78/140/30 82/142/30 88/143/30 +f 86/144/30 85/148/30 83/145/30 +f 77/147/36 78/140/35 84/146/35 +f 86/144/33 84/146/33 78/140/33 +f 77/147/34 83/145/34 85/148/34 +f 80/149/31 85/148/40 86/144/32 +f 77/147/30 80/149/30 87/150/30 +f 75/139/38 69/113/38 81/156/38 +f 87/151/38 63/157/38 51/112/38 +f 63/157/38 57/158/38 51/112/38 +f 75/139/38 81/156/38 87/151/38 +f 57/158/38 45/100/38 51/112/38 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index cb6d4f4b3..7a6d5f244 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -46,6 +46,9 @@ "block.closeC": {"category": "block", "sounds": ["block/closeC1", "block/closeC2", "block/closeC3"]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, + "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, + "door.wghStop": {"category": "block", "sounds": [{"name": "block/door/wgh_stop", "stream": true}]}, + "door.alarm6": {"category": "block", "sounds": [{"name": "block/door/alarm6", "stream": true}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/door/alarm6.ogg b/src/main/resources/assets/hbm/sounds/block/door/alarm6.ogg new file mode 100644 index 000000000..7985e49d9 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/alarm6.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/wgh_start.ogg b/src/main/resources/assets/hbm/sounds/block/door/wgh_start.ogg new file mode 100644 index 000000000..7886d39a2 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/wgh_start.ogg differ diff --git a/src/main/resources/assets/hbm/sounds/block/door/wgh_stop.ogg b/src/main/resources/assets/hbm/sounds/block/door/wgh_stop.ogg new file mode 100644 index 000000000..d3dc57207 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/door/wgh_stop.ogg differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png new file mode 100644 index 000000000..7515fb457 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png new file mode 100644 index 000000000..364922ead Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_bl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png new file mode 100644 index 000000000..d9aa43f6d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_br.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png new file mode 100644 index 000000000..197597120 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png new file mode 100644 index 000000000..62520968b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_curve_tr.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png new file mode 100644 index 000000000..95f1df83f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png new file mode 100644 index 000000000..c4b7ac1e6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_junction.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_straight.png new file mode 100644 index 000000000..1c413b9dc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_copper_straight.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png new file mode 100644 index 000000000..63002d448 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve.png new file mode 100644 index 000000000..9695a7d56 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png new file mode 100644 index 000000000..cbfc0f897 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_bl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png new file mode 100644 index 000000000..a18dd32fc Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_br.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png new file mode 100644 index 000000000..304d273ed Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tl.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png new file mode 100644 index 000000000..2db735758 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_curve_tr.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_end.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_end.png new file mode 100644 index 000000000..b0cb42c95 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_end.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction.png new file mode 100644 index 000000000..2ce589063 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_junction.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png new file mode 100644 index 000000000..d8a5699bf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/boxduct_silver_straight.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fire_door.png b/src/main/resources/assets/hbm/textures/blocks/fire_door.png new file mode 100644 index 000000000..2db79c308 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/fire_door.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fluid_duct_box.png b/src/main/resources/assets/hbm/textures/blocks/fluid_duct_box.png new file mode 100644 index 000000000..20195b7c9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/fluid_duct_box.png differ diff --git a/src/main/resources/assets/hbm/textures/models/doors/fire_door.png b/src/main/resources/assets/hbm/textures/models/doors/fire_door.png new file mode 100644 index 000000000..b753e0a04 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/doors/fire_door.png differ