removed trash, improved turbofan, boxy pipes and more
@ -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;
|
||||
|
||||
@ -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<? extends ItemBlock> clazz) {
|
||||
GameRegistry.registerBlock(b, clazz, b.getUnlocalizedName());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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())
|
||||
{
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
154
src/main/java/com/hbm/blocks/network/FluidDuctBox.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
||||
424
src/main/java/com/hbm/entity/EntityMappings.java
Normal file
@ -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<Quartet<Class<? extends Entity>, String, Integer, Boolean>> entityMappings = new ArrayList();
|
||||
public static List<Quartet<Class<? extends Entity>, 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<Class<? extends Entity>, String, Integer, Boolean> entry : entityMappings) {
|
||||
EntityRegistry.registerModEntity(entry.getW(), entry.getX(), id++, MainRegistry.instance, entry.getY(), 1, entry.getZ());
|
||||
}
|
||||
|
||||
for(Quartet<Class<? extends Entity>, String, Integer, Integer> entry : mobMappings) {
|
||||
EntityRegistry.registerGlobalEntityID(entry.getW(), entry.getX(), EntityRegistry.findGlobalUniqueEntityId(), entry.getY(), entry.getZ());
|
||||
}
|
||||
}
|
||||
|
||||
private static void addEntity(Class<? extends Entity> clazz, String name, int trackingRange) {
|
||||
addEntity(clazz, name, trackingRange, true);
|
||||
}
|
||||
|
||||
private static void addEntity(Class<? extends Entity> clazz, String name, int trackingRange, boolean velocityUpdates) {
|
||||
entityMappings.add(new Quartet(clazz, name, trackingRange, velocityUpdates));
|
||||
}
|
||||
|
||||
private static void addMob(Class<? extends Entity> clazz, String name, int color1, int color2) {
|
||||
mobMappings.add(new Quartet(clazz, name, color1, color2));
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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<EntityLivingBase> 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) {
|
||||
|
||||
|
||||
@ -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<Entity> 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<EntityPlayer> 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<Entity> 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<EntityPlayer> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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<Item, ItemRenderBase> 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;
|
||||
}
|
||||
|
||||
@ -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 });
|
||||
|
||||
@ -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()) {
|
||||
|
||||
|
||||
@ -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 ///
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
160
src/main/java/com/hbm/render/block/RenderBoxDuct.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ public class SoundLoopTurbofan extends SoundLoopMachine {
|
||||
if(this.volume != 10)
|
||||
volume = 10;
|
||||
|
||||
if(!drill.isRunning)
|
||||
if(!drill.wasOn)
|
||||
this.donePlaying = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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){
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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<Entity> list = (List<Entity>)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<Entity>)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<Entity>)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<Entity> list = (List<Entity>)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<Entity>)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<Entity>)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<Entity> list = (List<Entity>)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<Entity>)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<Entity>)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<Entity> list = (List<Entity>)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<Entity>)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<Entity>)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<Entity> 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<Entity> 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 };
|
||||
}
|
||||
}
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
464
src/main/resources/assets/hbm/models/doors/fire_door.obj
Normal file
@ -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
|
||||
@ -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}]},
|
||||
|
||||
BIN
src/main/resources/assets/hbm/sounds/block/door/alarm6.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/block/door/wgh_start.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/block/door/wgh_stop.ogg
Normal file
BIN
src/main/resources/assets/hbm/textures/blocks/boxduct_copper.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 465 B |
|
After Width: | Height: | Size: 440 B |
|
After Width: | Height: | Size: 417 B |
|
After Width: | Height: | Size: 483 B |
|
After Width: | Height: | Size: 619 B |
|
After Width: | Height: | Size: 352 B |
|
After Width: | Height: | Size: 350 B |
BIN
src/main/resources/assets/hbm/textures/blocks/boxduct_silver.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 296 B |
|
After Width: | Height: | Size: 380 B |
|
After Width: | Height: | Size: 372 B |
|
After Width: | Height: | Size: 355 B |
|
After Width: | Height: | Size: 395 B |
|
After Width: | Height: | Size: 495 B |
|
After Width: | Height: | Size: 280 B |
|
After Width: | Height: | Size: 293 B |
BIN
src/main/resources/assets/hbm/textures/blocks/fire_door.png
Normal file
|
After Width: | Height: | Size: 233 B |
BIN
src/main/resources/assets/hbm/textures/blocks/fluid_duct_box.png
Normal file
|
After Width: | Height: | Size: 259 B |
|
After Width: | Height: | Size: 71 KiB |