AMS recipe, energy generation, radiation damage

This commit is contained in:
HbmMods 2018-02-03 19:21:20 +01:00
parent 69fc66b36a
commit 37e5eecef7
23 changed files with 512 additions and 31 deletions

View File

@ -451,6 +451,7 @@ item.powder_spark_mix.name=Sparkmischung
item.ingot_dineutronium.name=Dineutroniumbarren
item.powder_dineutronium.name=Dineutroniumstaub
item.nugget_dineutronium.name=Dineutroniumnugget
item.ingot_starmetal.name=Sternenmetallbarren
item.solid_fuel.name=Festbrennstoff
@ -1114,6 +1115,7 @@ item.nugget_euphemium.name=Euphemiumnugget
item.rod_quad_euphemium.name=Ausgebrannter Schrabidiumvierfachbrennstab
item.plate_euphemium.name=Euphemium-Verbundplatte
item.plate_dineutronium.name=Dineutronium-Verbundplatte
item.plate_desh.name=Desh-Verbundplatte
item.euphemium_helmet.name=Euphemiumstiefel
item.euphemium_plate.name=Euphemiumbrustplatte

View File

@ -451,6 +451,7 @@ item.powder_spark_mix.name=Spark Blend
item.ingot_dineutronium.name=Dineutronium Ingot
item.powder_dineutronium.name=Dineutronium Powder
item.nugget_dineutronium.name=Dineutronium Nugget
item.ingot_starmetal.name=Starmetal Ingot
item.solid_fuel.name=Solid Fuel
@ -1117,6 +1118,7 @@ item.nugget_euphemium.name=Euphemium Nugget
item.rod_quad_euphemium.name=Burned Out Quad Schrabidium Fuel Rod
item.plate_euphemium.name=Euphemium Compound Plate
item.plate_dineutronium.name=Dineutronium Compound Plate
item.plate_desh.name=Desh Compound Plate
item.euphemium_helmet.name=Euphemium Helemt
item.euphemium_plate.name=Euphemium Chestplate

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

View File

@ -6,6 +6,7 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.effect.EntityCloudFleija;
import com.hbm.entity.effect.EntityCloudFleijaRainbow;
import com.hbm.entity.logic.EntityNukeExplosionAdvanced;
import com.hbm.entity.logic.EntityNukeExplosionMK3;
import com.hbm.interfaces.IBomb;
@ -154,7 +155,7 @@ public class NukeFleija extends BlockContainer implements IBomb {
world.spawnEntityInWorld(entity);
EntityCloudFleija cloud = new EntityCloudFleija(world, r);
EntityCloudFleijaRainbow cloud = new EntityCloudFleijaRainbow(world, r);
cloud.posX = x;
cloud.posY = y;
cloud.posZ = z;

View File

@ -1,5 +1,6 @@
package com.hbm.blocks.test;
import com.hbm.entity.logic.EntityNukeExplosionMK4;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.bomb.TileEntityTestBombAdvanced;
@ -107,7 +108,7 @@ public class TestBombAdvanced extends BlockContainer {
public void explode(World world, int x, int y, int z, int bombStartStrength, int bombStrengthA)
{
int r = bombStartStrength; //radius of explosion (change this to bigger numbers for more epicness)
/*int r = bombStartStrength; //radius of explosion (change this to bigger numbers for more epicness)
int r2 = r*r; //radius^2, for faster distance checks. (No sqrt needed for pythagoras)
int r22 = r2/2; //half of r^2, calculations outside the loop only get called once. Always pull out as many things from the loop as possible.
for (int xx = -r; xx < r; xx++)
@ -129,6 +130,14 @@ public class TestBombAdvanced extends BlockContainer {
} //you can change the if statement to if (ZZ<r2) for a smoother explosion crater.
}
}
}
}*/
world.setBlock(x, y, z, Blocks.air);
EntityNukeExplosionMK4 mk4 = new EntityNukeExplosionMK4(world);
mk4.strength = 40;
mk4.count = 100000;
mk4.speed = 50;
mk4.setPosition(x + 0.5, y + 0.5, z + 0.5);
world.spawnEntityInWorld(mk4);
}
}

View File

@ -9,6 +9,8 @@ import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.effect.EntityBlackHole;
import com.hbm.entity.effect.EntityCloudFleija;
import com.hbm.entity.effect.EntityCloudFleijaRainbow;
import com.hbm.entity.projectile.EntityMeteor;
import com.hbm.main.MainRegistry;
import com.hbm.main.ModEventHandler;
@ -160,9 +162,17 @@ public class TestEventTester extends Block {
}*/
if(!worldObj.isRemote) {
/*if(!worldObj.isRemote) {
ModEventHandler.meteorShower = 6000;
}
}*/
EntityCloudFleija rainbow = new EntityCloudFleija(worldObj);
rainbow.posX = x1;
rainbow.posY = y1;
rainbow.posZ = z1;
rainbow.maxAge = 100;
if(!worldObj.isRemote)
worldObj.spawnEntityInWorld(rainbow);

View File

@ -51,6 +51,11 @@ public class EntityBlackHole extends Entity {
int z0 = (int)(this.posZ + (vec.zCoord * i));
if(!worldObj.isRemote) {
if(worldObj.getBlock(x0, y0, z0).getMaterial().isLiquid()) {
worldObj.setBlock(x0, y0, z0, Blocks.air);
}
if(worldObj.getBlock(x0, y0, z0) != Blocks.air) {
EntityRubble rubble = new EntityRubble(worldObj);
rubble.posX = x0 + 0.5F;

View File

@ -0,0 +1,84 @@
package com.hbm.entity.effect;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class EntityCloudFleijaRainbow extends Entity {
public int maxAge = 100;
public int age;
public float scale = 0;
public EntityCloudFleijaRainbow(World p_i1582_1_) {
super(p_i1582_1_);
this.setSize(1, 4);
this.ignoreFrustumCheck = true;
this.isImmuneToFire = true;
this.age = 0;
scale = 0;
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(16, Integer.valueOf(0));
}
@Override
@SideOnly(Side.CLIENT)
public int getBrightnessForRender(float p_70070_1_)
{
return 15728880;
}
@Override
public float getBrightness(float p_70013_1_)
{
return 1.0F;
}
public EntityCloudFleijaRainbow(World p_i1582_1_, int maxAge) {
super(p_i1582_1_);
this.setSize(20, 40);
this.isImmuneToFire = true;
this.setMaxAge(maxAge);
}
@Override
public void onUpdate() {
this.age++;
this.worldObj.spawnEntityInWorld(new EntityLightningBolt(this.worldObj, this.posX, this.posY + 200, this.posZ));
if(this.age >= this.getMaxAge())
{
this.age = 0;
this.setDead();
}
this.scale++;
}
@Override
protected void readEntityFromNBT(NBTTagCompound p_70037_1_) {
age = p_70037_1_.getShort("age");
scale = p_70037_1_.getShort("scale");
}
@Override
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {
p_70014_1_.setShort("age", (short)age);
p_70014_1_.setShort("scale", (short)scale);
}
public void setMaxAge(int i) {
this.dataWatcher.updateObject(16, Integer.valueOf(i));
}
public int getMaxAge() {
return this.dataWatcher.getWatchableObjectInt(16);
}
}

View File

@ -0,0 +1,54 @@
package com.hbm.entity.logic;
import com.hbm.explosion.ExplosionLarge;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class EntityNukeExplosionMK4 extends Entity {
//Strength of the blast
public long strength;
//How many rays should be created
public long count;
//How many rays are calculated per tick
public int speed;
//How many rays have already been processed
public long done;
public EntityNukeExplosionMK4(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityNukeExplosionMK4(World world, long strength, long count, int speed) {
super(world);
this.strength = strength;
this.count = count;
this.speed = speed;
}
@Override
public void onUpdate() {
ExplosionLarge.destructionRay(worldObj, posX, posY, posZ, speed, strength);
done += speed;
if(done >= count)
this.setDead();
}
@Override
protected void entityInit() {
}
@Override
protected void readEntityFromNBT(NBTTagCompound p_70037_1_) {
}
@Override
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {
}
}

View File

@ -11,6 +11,7 @@ import com.hbm.entity.projectile.EntityShrapnel;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
@ -19,6 +20,45 @@ public class ExplosionLarge {
static Random rand = new Random();
public static void destructionRay(World world, double posX, double posY, double posZ, int count, long strength) {
for(int k = 0; k < count; k++) {
double phi = rand.nextDouble() * (Math.PI * 2);
double costheta = rand.nextDouble() * 2 - 1;
double theta = Math.acos(costheta);
double x = Math.sin( theta) * Math.cos( phi );
double y = Math.sin( theta) * Math.sin( phi );
double z = Math.cos( theta );
Vec3 vec = Vec3.createVectorHelper(x, y, z);
int length = (int)Math.ceil(strength);
float res = strength;
for(int i = 0; i < length; i ++) {
int x0 = (int)(posX + (vec.xCoord * i));
int y0 = (int)(posY + (vec.yCoord * i));
int z0 = (int)(posZ + (vec.zCoord * i));
if(!world.isRemote) {
if(world.getBlock(x0, y0, z0).getMaterial().isLiquid()) {
world.setBlock(x0, y0, z0, Blocks.air);
}
res -= Math.pow(world.getBlock(x0, y0, z0).getExplosionResistance(null), 2);
if(res > 0 && world.getBlock(x0, y0, z0) != Blocks.air) {
world.setBlock(x0, y0, z0, Blocks.air);
}
}
}
}
}
public static void spawnParticles(World world, double x, double y, double z, int count) {
for(int i = 0; i < count; i++) {

View File

@ -99,6 +99,11 @@ public class MachineRecipes {
return new ItemStack(ModItems.ingot_dura_steel, 2);
}
if (mODE(item, new String[] {"ingotSteel", "dustSteel"}) && item2 == ModItems.powder_meteorite
|| item == ModItems.powder_meteorite && mODE(item2, new String[] {"ingotSteel", "dustSteel"})) {
return new ItemStack(ModItems.ingot_starmetal, 2);
}
return null;
}
@ -768,6 +773,8 @@ public class MachineRecipes {
getFurnaceOutput(ModItems.ingot_steel, ModItems.ingot_tungsten).copy());
recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.powder_cobalt) },
getFurnaceOutput(ModItems.ingot_steel, ModItems.powder_cobalt).copy());
recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.powder_meteorite) },
getFurnaceOutput(ModItems.ingot_steel, ModItems.powder_meteorite).copy());
} catch (Exception x) {
MainRegistry.logger.error("Unable to register alloy recipes for NEI!");
}
@ -2954,6 +2961,33 @@ public class MachineRecipes {
list.add(new ItemStack(Blocks.tnt, 3));
list.add(new ItemStack(ModItems.plate_schrabidium, 8));
break;
case COMPONENT_LIMITER:
list.add(new ItemStack(ModItems.hull_big_steel, 2));
list.add(new ItemStack(ModItems.plate_steel, 32));
list.add(new ItemStack(ModItems.plate_titanium, 18));
list.add(new ItemStack(ModItems.plate_desh, 12));
list.add(new ItemStack(ModItems.pipes_steel, 4));
list.add(new ItemStack(ModItems.circuit_gold, 8));
list.add(new ItemStack(ModItems.circuit_schrabidium, 4));
list.add(new ItemStack(ModItems.ingot_starmetal, 14));
list.add(new ItemStack(ModItems.plate_dalekanium, 5));
list.add(new ItemStack(ModItems.powder_magic, 16));
list.add(new ItemStack(ModBlocks.fwatz_computer, 3));
break;
case COMPONENT_EMITTER:
list.add(new ItemStack(ModItems.hull_big_steel, 3));
list.add(new ItemStack(ModItems.hull_big_titanium, 2));
list.add(new ItemStack(ModItems.plate_steel, 32));
list.add(new ItemStack(ModItems.plate_lead, 24));
list.add(new ItemStack(ModItems.plate_desh, 24));
list.add(new ItemStack(ModItems.pipes_steel, 8));
list.add(new ItemStack(ModItems.circuit_gold, 12));
list.add(new ItemStack(ModItems.circuit_schrabidium, 8));
list.add(new ItemStack(ModItems.ingot_starmetal, 26));
list.add(new ItemStack(ModItems.powder_magic, 48));
list.add(new ItemStack(ModBlocks.fwatz_computer, 2));
list.add(new ItemStack(ModItems.crystal_xen, 1));
break;
default:
list.add(new ItemStack(Items.stick));
break;
@ -3624,6 +3658,12 @@ public class MachineRecipes {
case FLEIJA_PROPELLANT:
output = new ItemStack(ModItems.fleija_propellant, 1);
break;
case COMPONENT_LIMITER:
output = new ItemStack(ModItems.component_limiter, 1);
break;
case COMPONENT_EMITTER:
output = new ItemStack(ModItems.component_emitter, 1);
break;
default:
output = new ItemStack(Items.stick, 1);
break;

View File

@ -36,9 +36,9 @@ public class GUIAMSBase extends GuiInfoContainer {
base.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 124 - 52, 16, 52);
base.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 124 - 52, 16, 52);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 124 - 104, 7, 104, base.power, base.maxPower);
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 124 - 104, 7, 104, new String[] { "Restriction Field:", base.field + "%" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 124 - 104, 7, 104, new String[] { "Efficiency:", base.efficiency + "%" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 124 - 104, 7, 104, new String[] { "Heat:", base.heat + "/" + base.maxHeat });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 124 - 106, 7, 106, new String[] { "Restriction Field:", base.field + "%" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 53, guiTop + 124 - 106, 7, 106, new String[] { "Efficiency:", base.efficiency + "%" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 125, guiTop + 124 - 106, 7, 106, new String[] { "Heat:", base.heat + "/" + base.maxHeat });
}
@Override

View File

@ -93,6 +93,7 @@ public class ModItems {
public static Item ingot_dineutronium;
public static Item nugget_dineutronium;
public static Item powder_dineutronium;
public static Item ingot_starmetal;
public static Item nugget_uranium;
public static Item nugget_u235;
@ -135,6 +136,7 @@ public class ModItems {
public static Item bolt_compound;
public static Item plate_polymer;
public static Item plate_dineutronium;
public static Item plate_desh;
public static Item ingot_dura_steel;
public static Item ingot_polymer;
@ -1220,6 +1222,7 @@ public class ModItems {
bolt_compound = new Item().setUnlocalizedName("bolt_compound").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":bolt_compound");
plate_polymer = new Item().setUnlocalizedName("plate_polymer").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_polymer");
plate_dineutronium = new Item().setUnlocalizedName("plate_dineutronium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_dineutronium");
plate_desh = new Item().setUnlocalizedName("plate_desh").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":plate_desh");
ingot_dura_steel = new ItemCustomLore().setUnlocalizedName("ingot_dura_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_dura_steel");
ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_polymer");
@ -1228,6 +1231,7 @@ public class ModItems {
ingot_dineutronium = new ItemCustomLore().setUnlocalizedName("ingot_dineutronium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_dineutronium");
nugget_dineutronium = new ItemCustomLore().setUnlocalizedName("nugget_dineutronium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":nugget_dineutronium");
powder_dineutronium = new ItemCustomLore().setUnlocalizedName("powder_dineutronium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_dineutronium");
ingot_starmetal = new ItemCustomLore().setUnlocalizedName("ingot_starmetal").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_starmetal");
ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_lanthanium");
ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ingot_actinium");
@ -1462,21 +1466,21 @@ public class ModItems {
rune_thurisaz = new ItemCustomLore().setUnlocalizedName("rune_thurisaz").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":rune_thurisaz");
ams_catalyst_blank = new Item().setUnlocalizedName("ams_catalyst_blank").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_blank");
ams_catalyst_aluminium = new ItemCatalyst(0xCCCCCC, 1000000, 1.15F, 0.85F, 1.0F).setUnlocalizedName("ams_catalyst_aluminium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_aluminium");
ams_catalyst_beryllium = new ItemCatalyst(0x97978B, 0, 1.25F, 0.95F, 1.0F).setUnlocalizedName("ams_catalyst_beryllium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_beryllium");
ams_catalyst_caesium = new ItemCatalyst(0x6400FF, 2500000, 1.0F, 0.85F, 1.0F).setUnlocalizedName("ams_catalyst_caesium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_caesium");
ams_catalyst_cerium = new ItemCatalyst(0x1D3FFF, 1000000, 1.15F, 1.15F, 1.0F).setUnlocalizedName("ams_catalyst_cerium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cerium");
ams_catalyst_cobalt = new ItemCatalyst(0x789BBE, 0, 1.25F, 1.05F, 1.0F).setUnlocalizedName("ams_catalyst_cobalt").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cobalt");
ams_catalyst_aluminium = new ItemCatalyst(0xCCCCCC, 1000000, 1.15F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_aluminium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_aluminium");
ams_catalyst_beryllium = new ItemCatalyst(0x97978B, 0, 1.25F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_beryllium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_beryllium");
ams_catalyst_caesium = new ItemCatalyst(0x6400FF, 2500000, 1.0F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_caesium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_caesium");
ams_catalyst_cerium = new ItemCatalyst(0x1D3FFF, 1000000, 1.15F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_cerium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cerium");
ams_catalyst_cobalt = new ItemCatalyst(0x789BBE, 0, 1.25F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_cobalt").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_cobalt");
ams_catalyst_copper = new ItemCatalyst(0xAADE29, 0, 1.25F, 1.0F, 1.0F).setUnlocalizedName("ams_catalyst_copper").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_copper");
ams_catalyst_dineutronium = new ItemCatalyst(0x334077, 2500000, 1.0F, 1.15F, 1.0F).setUnlocalizedName("ams_catalyst_dineutronium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_dineutronium");
ams_catalyst_dineutronium = new ItemCatalyst(0x334077, 2500000, 1.0F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_dineutronium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_dineutronium");
ams_catalyst_euphemium = new ItemCatalyst(0xFF9CD2, 2500000, 1.0F, 1.0F, 1.0F).setUnlocalizedName("ams_catalyst_euphemium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_euphemium");
ams_catalyst_iron = new ItemCatalyst(0xFF7E22, 1000000, 1.15F, 0.95F, 1.0F).setUnlocalizedName("ams_catalyst_iron").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_iron");
ams_catalyst_lithium = new ItemCatalyst(0xFF2727, 0, 1.25F, 0.85F, 1.0F).setUnlocalizedName("ams_catalyst_lithium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_lithium");
ams_catalyst_niobium = new ItemCatalyst(0x3BF1B6, 1000000, 1.15F, 1.05F, 1.0F).setUnlocalizedName("ams_catalyst_niobium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_niobium");
ams_catalyst_schrabidium = new ItemCatalyst(0x32FFFF, 2500000, 1.0F, 1.05F, 1.0F).setUnlocalizedName("ams_catalyst_schrabidium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_schrabidium");
ams_catalyst_iron = new ItemCatalyst(0xFF7E22, 1000000, 1.15F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_iron").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_iron");
ams_catalyst_lithium = new ItemCatalyst(0xFF2727, 0, 1.25F, 0.85F, 1.15F).setUnlocalizedName("ams_catalyst_lithium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_lithium");
ams_catalyst_niobium = new ItemCatalyst(0x3BF1B6, 1000000, 1.15F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_niobium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_niobium");
ams_catalyst_schrabidium = new ItemCatalyst(0x32FFFF, 2500000, 1.0F, 1.05F, 0.95F).setUnlocalizedName("ams_catalyst_schrabidium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_schrabidium");
ams_catalyst_strontium = new ItemCatalyst(0xDD0D35, 1000000, 1.15F, 1.0F, 1.0F).setUnlocalizedName("ams_catalyst_strontium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_strontium");
ams_catalyst_thorium = new ItemCatalyst(0x653B22, 2500000, 1.0F, 0.95F, 1.0F).setUnlocalizedName("ams_catalyst_thorium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_thorium");
ams_catalyst_tungsten = new ItemCatalyst(0xF5FF48, 0, 1.25F, 1.15F, 1.0F).setUnlocalizedName("ams_catalyst_tungsten").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_tungsten");
ams_catalyst_thorium = new ItemCatalyst(0x653B22, 2500000, 1.0F, 0.95F, 1.05F).setUnlocalizedName("ams_catalyst_thorium").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_thorium");
ams_catalyst_tungsten = new ItemCatalyst(0xF5FF48, 0, 1.25F, 1.15F, 0.85F).setUnlocalizedName("ams_catalyst_tungsten").setCreativeTab(MainRegistry.tabParts).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ams_catalyst_tungsten");
cell_empty = new ItemCell().setUnlocalizedName("cell_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":cell_empty");
cell_uf6 = new Item().setUnlocalizedName("cell_uf6").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_uf6");
@ -1912,10 +1916,10 @@ public class ModItems {
ams_focus_limiter = new ItemCustomLore().setUnlocalizedName("ams_focus_limiter").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_focus_limiter");
ams_focus_booster = new ItemCustomLore().setUnlocalizedName("ams_focus_booster").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_focus_booster");
ams_muzzle = new ItemCustomLore().setUnlocalizedName("ams_muzzle").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_muzzle");
ams_core_sing = new ItemAMSCore().setUnlocalizedName("ams_core_sing").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_core_sing");
ams_core_wormhole = new ItemAMSCore().setUnlocalizedName("ams_core_wormhole").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_core_wormhole");
ams_core_eyeofharmony = new ItemAMSCore().setUnlocalizedName("ams_core_eyeofharmony").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_core_eyeofharmony");
ams_core_thingy = new ItemAMSCore().setUnlocalizedName("ams_core_thingy").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":ams_core_thingy");
ams_core_sing = new ItemAMSCore(1000000000L, 200, 10).setUnlocalizedName("ams_core_sing").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_core_sing");
ams_core_wormhole = new ItemAMSCore(1500000000L, 200, 15).setUnlocalizedName("ams_core_wormhole").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_core_wormhole");
ams_core_eyeofharmony = new ItemAMSCore(2500000000L, 300, 10).setUnlocalizedName("ams_core_eyeofharmony").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":ams_core_eyeofharmony");
ams_core_thingy = new ItemAMSCore(5000000000L, 250, 5).setUnlocalizedName("ams_core_thingy").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":ams_core_thingy");
upgrade_template = new ItemCustomLore().setUnlocalizedName("upgrade_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":upgrade_template");
upgrade_speed_1 = new ItemCustomLore().setUnlocalizedName("upgrade_speed_1").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":upgrade_speed_1");
@ -2312,6 +2316,7 @@ public class ModItems {
GameRegistry.registerItem(ingot_lanthanium, ingot_lanthanium.getUnlocalizedName());
GameRegistry.registerItem(ingot_actinium, ingot_actinium.getUnlocalizedName());
GameRegistry.registerItem(ingot_desh, ingot_desh.getUnlocalizedName());
GameRegistry.registerItem(ingot_starmetal, ingot_starmetal.getUnlocalizedName());
GameRegistry.registerItem(ingot_euphemium, ingot_euphemium.getUnlocalizedName());
GameRegistry.registerItem(ingot_dineutronium, ingot_dineutronium.getUnlocalizedName());
@ -2447,6 +2452,7 @@ public class ModItems {
GameRegistry.registerItem(plate_paa, plate_paa.getUnlocalizedName());
GameRegistry.registerItem(plate_polymer, plate_polymer.getUnlocalizedName());
GameRegistry.registerItem(plate_dalekanium, plate_dalekanium.getUnlocalizedName());
GameRegistry.registerItem(plate_desh, plate_desh.getUnlocalizedName());
GameRegistry.registerItem(plate_euphemium, plate_euphemium.getUnlocalizedName());
GameRegistry.registerItem(plate_dineutronium, plate_dineutronium.getUnlocalizedName());

View File

@ -14,6 +14,16 @@ import net.minecraft.item.ItemStack;
public class ItemAMSCore extends Item {
long powerBase;
int heatBase;
int fuelBase;
public ItemAMSCore(long powerBase, int heatBase, int fuelBase) {
this.powerBase = powerBase;
this.heatBase = heatBase;
this.fuelBase = fuelBase;
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
@ -89,4 +99,22 @@ public class ItemAMSCore extends Item {
return false;
}
public static long getPowerBase(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemAMSCore))
return 0;
return ((ItemAMSCore)stack.getItem()).powerBase;
}
public static int getHeatBase(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemAMSCore))
return 0;
return ((ItemAMSCore)stack.getItem()).heatBase;
}
public static int getFuelBase(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemAMSCore))
return 0;
return ((ItemAMSCore)stack.getItem()).fuelBase;
}
}

View File

@ -11,7 +11,7 @@ import net.minecraft.item.ItemStack;
public class ItemCatalyst extends Item {
int color;
int powerAbs;
long powerAbs;
float powerMod;
float heatMod;
float fuelMod;
@ -24,7 +24,7 @@ public class ItemCatalyst extends Item {
this.fuelMod = 1.0F;
}
public ItemCatalyst(int color, int powerAbs, float powerMod, float heatMod, float fuelMod) {
public ItemCatalyst(int color, long powerAbs, float powerMod, float heatMod, float fuelMod) {
this.color = color;
this.powerAbs = powerAbs;
this.powerMod = powerMod;
@ -44,5 +44,29 @@ public class ItemCatalyst extends Item {
list.add("Heat Modifier: " + (heatMod >= 1 ? "+" : "") + (Math.round(heatMod * 1000) * .10 - 100) + "%");
list.add("Fuel Modifier: " + (fuelMod >= 1 ? "+" : "") + (Math.round(fuelMod * 1000) * .10 - 100) + "%");
}
public static long getPowerAbs(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemCatalyst))
return 0;
return ((ItemCatalyst)stack.getItem()).powerAbs;
}
public static float getPowerMod(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemCatalyst))
return 0;
return ((ItemCatalyst)stack.getItem()).powerMod;
}
public static float getHeatMod(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemCatalyst))
return 0;
return ((ItemCatalyst)stack.getItem()).heatMod;
}
public static float getFuelMod(ItemStack stack) {
if(stack == null || !(stack.getItem() instanceof ItemCatalyst))
return 0;
return ((ItemCatalyst)stack.getItem()).fuelMod;
}
}

View File

@ -229,7 +229,9 @@ public class ItemAssemblyTemplate extends Item {
FLEIIJA_IGNITER,
FLEIJA_CORE,
FLEIJA_PROPELLANT,
SCHRABIDIUM_HAMMER;
SCHRABIDIUM_HAMMER,
COMPONENT_LIMITER,
COMPONENT_EMITTER;
//private final int value;
//private EnumAssemblyTemplate(int value) {
@ -718,6 +720,10 @@ public class ItemAssemblyTemplate extends Item {
return 400;
case SCHRABIDIUM_HAMMER:
return 1000;
case COMPONENT_LIMITER:
return 2500;
case COMPONENT_EMITTER:
return 2500;
default:
return 100;
}

View File

@ -33,6 +33,8 @@ public class ModDamageSource extends DamageSource {
public static DamageSource meteorite = (new DamageSource("meteorite")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource boxcar = (new DamageSource("boxcar")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource taint = (new DamageSource("taint")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource ams = (new DamageSource("ams")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource amsCore = (new DamageSource("amsCore")).setDamageIsAbsolute().setDamageBypassesArmor();
public ModDamageSource(String p_i1566_1_) {
super(p_i1566_1_);

View File

@ -124,6 +124,7 @@ public class ClientProxy extends ServerProxy
RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudSmall.class, new RenderSmallNukeAlt());
RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudBig.class, new RenderBigNuke());
RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleija.class, new RenderCloudFleija());
RenderingRegistry.registerEntityRenderingHandler(EntityCloudFleijaRainbow.class, new RenderCloudRainbow());
RenderingRegistry.registerEntityRenderingHandler(EntityNukeCloudNoShroom.class, new RenderNoCloud());
RenderingRegistry.registerEntityRenderingHandler(EntityFalloutRain.class, new RenderFallout());
RenderingRegistry.registerEntityRenderingHandler(EntityBlackHole.class, new RenderBlackHole());

View File

@ -1084,6 +1084,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_pip_ammo, 1), new Object[] { "S", "G", "C", 'S', "plateSteel", 'G', Items.gunpowder, 'C', "plateCopper" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_dineutronium, 1), new Object[] { ModItems.powder_spark_mix, "nuggetSchrabidium" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.plate_dineutronium, 4), new Object[] { "PIP", "IDI", "PIP", 'P', ModItems.powder_spark_mix, 'I', "ingotDineutronium", 'D', "ingotDesh" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.plate_desh, 4), new Object[] { "PIP", "IDI", "PIP", 'P', ModItems.powder_polymer, 'I', "ingotDesh", 'D', "ingotDuraSteel" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.taint), new Object[] { "nuggetEuphemium", ModItems.nuclear_waste }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.taint), new Object[] { "nuggetEuphemium", ModItems.trinitite }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.meteor_remote), new Object[] { "nuggetSchrabidium", ModItems.fragment_meteorite, ModItems.crate_caller }));

View File

@ -41,6 +41,7 @@ import com.hbm.creativetabs.NukeTab;
import com.hbm.creativetabs.PartsTab;
import com.hbm.entity.effect.EntityBlackHole;
import com.hbm.entity.effect.EntityCloudFleija;
import com.hbm.entity.effect.EntityCloudFleijaRainbow;
import com.hbm.entity.effect.EntityEMPBlast;
import com.hbm.entity.effect.EntityFalloutRain;
import com.hbm.entity.effect.EntityNukeCloudBig;
@ -74,6 +75,7 @@ import com.hbm.entity.logic.EntityMissileTest;
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.EntityNukeExplosionPlus;
import com.hbm.entity.logic.IChunkLoader;
import com.hbm.entity.missile.EntityBombletSelena;
@ -647,6 +649,8 @@ public class MainRegistry
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.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00);
EntityRegistry.registerGlobalEntityID(EntityHunterChopper.class, "entity_mob_hunter_chopper", EntityRegistry.findGlobalUniqueEntityId(), 0x000020, 0x2D2D72);

View File

@ -0,0 +1,71 @@
package com.hbm.render.entity;
import org.lwjgl.opengl.GL11;
import com.hbm.entity.effect.EntityCloudFleija;
import com.hbm.entity.effect.EntityCloudFleijaRainbow;
import com.hbm.lib.RefStrings;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
public class RenderCloudRainbow extends Render {
private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Sphere.obj");
private IModelCustom blastModel;
public float scale = 0;
public float ring = 0;
public RenderCloudRainbow() {
blastModel = AdvancedModelLoader.loadModel(objTesterModelRL);
scale = 0;
}
@Override
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
render((EntityCloudFleijaRainbow)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
}
public void render(EntityCloudFleijaRainbow cloud, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
GL11.glPushMatrix();
GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glScalef(cloud.age, cloud.age, cloud.age);
GL11.glColor3ub((byte)cloud.worldObj.rand.nextInt(0x100), (byte)cloud.worldObj.rand.nextInt(0x100), (byte)cloud.worldObj.rand.nextInt(0x100));
GL11.glScalef(0.5F, 0.5F, 0.5F);
blastModel.renderAll();
GL11.glScalef(1/0.5F, 1/0.5F, 1/0.5F);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
for(float i = 0.6F; i <= 1F; i += 0.1F) {
GL11.glColor3ub((byte)cloud.worldObj.rand.nextInt(0x100), (byte)cloud.worldObj.rand.nextInt(0x100), (byte)cloud.worldObj.rand.nextInt(0x100));
GL11.glScalef(i, i, i);
blastModel.renderAll();
GL11.glScalef(1/i, 1/i, 1/i);
}
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glPopMatrix();
}
@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
return null;
}
}

View File

@ -16,12 +16,14 @@ import com.hbm.items.ModItems;
import com.hbm.items.special.ItemAMSCore;
import com.hbm.items.special.ItemCatalyst;
import com.hbm.lib.Library;
import com.hbm.lib.ModDamageSource;
import com.hbm.packet.AuxElectricityPacket;
import com.hbm.packet.AuxGaugePacket;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
@ -237,6 +239,15 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IS
if (!worldObj.isRemote) {
if(!locked) {
age++;
if(age >= 20)
{
age = 0;
}
if(age == 9 || age == 19)
ffgeuaInit();
tanks[0].setType(0, 1, slots);
tanks[1].setType(2, 3, slots);
@ -297,6 +308,13 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IS
this.color = -1;
float powerMod = 1;
float heatMod = 1;
float fuelMod = 1;
long powerBase = 0;
int heatBase = 0;
int fuelBase = 0;
if(slots[8] != null && slots[9] != null && slots[10] != null && slots[11] != null && slots[12] != null &&
slots[8].getItem() instanceof ItemCatalyst && slots[9].getItem() instanceof ItemCatalyst &&
slots[10].getItem() instanceof ItemCatalyst && slots[11].getItem() instanceof ItemCatalyst &&
@ -312,8 +330,51 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IS
int g = this.calcAvgHex(e, f);
this.color = g;
for(int i = 8; i < 12; i++) {
powerBase += ItemCatalyst.getPowerAbs(slots[i]);
powerMod *= ItemCatalyst.getPowerMod(slots[i]);
heatMod *= ItemCatalyst.getHeatMod(slots[i]);
fuelMod *= ItemCatalyst.getFuelMod(slots[i]);
}
powerBase = ItemAMSCore.getPowerBase(slots[12]);
heatBase = ItemAMSCore.getHeatBase(slots[12]);
fuelBase = ItemAMSCore.getFuelBase(slots[12]);
powerBase *= this.efficiency;
powerBase *= Math.pow(1.25F, booster);
heatBase *= Math.pow(1.25F, booster);
heatBase *= (100 - field);
if(this.getFuelPower(tanks[2].getTankType()) > 0 && this.getFuelPower(tanks[3].getTankType()) > 0) {
power += (powerBase * powerMod * gauss(1, (heat - (maxHeat / 2)) / maxHeat));
heat += (heatBase * heatMod) / (float)(this.field / 100F);
tanks[2].setFill((int)(tanks[2].getFill() - fuelBase * fuelMod));
tanks[3].setFill((int)(tanks[3].getFill() - fuelBase * fuelMod));
if(tanks[2].getFill() <= 0)
tanks[2].setFill(0);
if(tanks[3].getFill() <= 0)
tanks[3].setFill(0);
radiation();
if(heat > maxHeat) {
explode();
heat = maxHeat;
}
if(field < 2)
explode();
}
}
if(power > maxPower)
power = maxPower;
if(heat > 0 && tanks[0].getFill() > 0 && tanks[1].getFill() > 0) {
heat -= (this.getCoolingStrength(tanks[0].getTankType()) * this.getCoolingStrength(tanks[1].getTankType()));
@ -344,16 +405,45 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IS
}
}
private void radiation() {
double maxSize = 5;
double minSize = 0.5;
double scale = minSize;
scale += ((((double)this.tanks[2].getFill()) / ((double)this.tanks[2].getMaxFill())) + (((double)this.tanks[3].getFill()) / ((double)this.tanks[3].getMaxFill()))) * ((maxSize - minSize) / 2);
scale *= 0.60;
List<Entity> list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 10 + 0.5, yCoord - 10 + 0.5 + 6, zCoord - 10 + 0.5, xCoord + 10 + 0.5, yCoord + 10 + 0.5 + 6, zCoord + 10 + 0.5));
for(Entity e : list) {
if(!Library.isObstructed(worldObj, xCoord + 0.5, yCoord + 0.5 + 6, zCoord + 0.5, e.posX, e.posY + e.getEyeHeight(), e.posZ)) {
e.attackEntityFrom(ModDamageSource.ams, 1000);
e.setFire(3);
}
}
List<Entity> list2 = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - scale + 0.5, yCoord - scale + 0.5 + 6, zCoord - scale + 0.5, xCoord + scale + 0.5, yCoord + scale + 0.5 + 6, zCoord + scale + 0.5));
for(Entity e : list2) {
e.attackEntityFrom(ModDamageSource.amsCore, 10000);
}
}
private void explode() {
}
private int getCoolingStrength(FluidType type) {
switch(type) {
case WATER:
return 50;
return 5;
case OIL:
return 150;
return 15;
case COOLANT:
return this.heat / 50;
return this.heat / 250;
case CRYOGEL:
return this.heat > heat/2 ? 200 : 50;
return this.heat > heat/2 ? 25 : 5;
default:
return 0;
}
@ -483,6 +573,7 @@ public class TileEntityAMSBase extends TileEntity implements ISidedInventory, IS
ffgeua(this.xCoord + 2, this.yCoord, this.zCoord, getTact());
ffgeua(this.xCoord, this.yCoord, this.zCoord - 2, getTact());
ffgeua(this.xCoord, this.yCoord, this.zCoord + 2, getTact());
ffgeua(this.xCoord, this.yCoord - 1, this.zCoord, getTact());
}
@Override