removed trash, improved turbofan, boxy pipes and more

This commit is contained in:
Bob 2022-07-25 20:29:01 +02:00
parent 7c75ae997a
commit ccc575c173
79 changed files with 2154 additions and 4694 deletions

View File

@ -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;

View File

@ -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());
}
}

View File

@ -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);
}
}

View File

@ -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())
{

View File

@ -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:

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View 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;
}
}

View 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));
}
}

View File

@ -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);
}
}
}
}

View File

@ -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) {

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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();
}
}
}
}

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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),

View File

@ -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),

View File

@ -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) {

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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)
{

View File

@ -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;
}

View File

@ -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 });

View File

@ -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()) {

View File

@ -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 ///

View File

@ -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");

View File

@ -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));
}

View File

@ -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;
}

View 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;
}
}

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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();
}

View File

@ -27,7 +27,7 @@ public class SoundLoopTurbofan extends SoundLoopMachine {
if(this.volume != 10)
volume = 10;
if(!drill.isRunning)
if(!drill.wasOn)
this.donePlaying = true;
}
}

View File

@ -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();

View File

@ -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){

View File

@ -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");

View File

@ -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) {

View File

@ -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 };
}
}

View File

@ -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));

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View 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

View File

@ -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}]},

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 619 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB