big chungus (turbine edition), screwables, AZ-5 funsies

This commit is contained in:
Bob 2021-06-13 21:10:59 +02:00
parent f2e974e7d0
commit 204f1e990a
56 changed files with 4210 additions and 1375 deletions

View File

@ -0,0 +1,9 @@
package api.hbm.block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
public interface IScrewable {
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ);
}

View File

@ -625,6 +625,7 @@ public class ModBlocks {
public static Block barrel_corroded;
public static Block barrel_iron;
public static Block barrel_steel;
public static Block barrel_tcalloy;
public static Block barrel_antimatter;
public static final int guiID_barrel = 92;
@ -1561,6 +1562,7 @@ public class ModBlocks {
barrel_corroded = new BlockFluidBarrel(Material.iron, 6000).setBlockName("barrel_corroded").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_corroded");
barrel_iron = new BlockFluidBarrel(Material.iron, 8000).setBlockName("barrel_iron").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_iron");
barrel_steel = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_steel").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_steel");
barrel_tcalloy = new BlockFluidBarrel(Material.iron, 24000).setBlockName("barrel_tcalloy").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_tcalloy");
barrel_antimatter = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_antimatter").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_antimatter");
machine_transformer = new MachineTransformer(Material.iron, 10000L, 1).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron");
@ -2470,6 +2472,7 @@ public class ModBlocks {
GameRegistry.registerBlock(barrel_corroded, ItemBlockLore.class, barrel_corroded.getUnlocalizedName());
GameRegistry.registerBlock(barrel_iron, ItemBlockLore.class, barrel_iron.getUnlocalizedName());
GameRegistry.registerBlock(barrel_steel, ItemBlockLore.class, barrel_steel.getUnlocalizedName());
GameRegistry.registerBlock(barrel_tcalloy, ItemBlockLore.class, barrel_tcalloy.getUnlocalizedName());
GameRegistry.registerBlock(barrel_antimatter, ItemBlockLore.class, barrel_antimatter.getUnlocalizedName());
GameRegistry.registerBlock(machine_battery_potato, machine_battery_potato.getUnlocalizedName());
GameRegistry.registerBlock(machine_battery, machine_battery.getUnlocalizedName());

View File

@ -3,7 +3,6 @@ package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.Spaghetti;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityBarrel;
@ -66,74 +65,64 @@ public class BlockFluidBarrel extends BlockContainer {
return false;
}
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_)
{
float f = 0.0625F;
this.setBlockBounds(2*f, 0.0F, 2*f, 14*f, 1.0F, 14*f);
}
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) {
float f = 0.0625F;
this.setBlockBounds(2 * f, 0.0F, 2 * f, 14 * f, 1.0F, 14 * f);
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
float f = 0.0625F;
this.setBlockBounds(2*f, 0.0F, 2*f, 14*f, 1.0F, 14*f);
float f = 0.0625F;
this.setBlockBounds(2 * f, 0.0F, 2 * f, 14 * f, 1.0F, 14 * f);
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
}
private final Random field_149933_a = new Random();
private final Random field_149933_a = new Random();
public static boolean keepInventory;
@Override
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
{
if (!keepInventory)
{
ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) {
if(!keepInventory) {
ISidedInventory tileentityfurnace = (ISidedInventory) p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
if (tileentityfurnace != null)
{
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
{
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if(tileentityfurnace != null) {
for(int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) {
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if (itemstack != null)
{
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
if(itemstack != null) {
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
while (itemstack.stackSize > 0)
{
int j1 = this.field_149933_a.nextInt(21) + 10;
while(itemstack.stackSize > 0) {
int j1 = this.field_149933_a.nextInt(21) + 10;
if (j1 > itemstack.stackSize)
{
j1 = itemstack.stackSize;
}
if(j1 > itemstack.stackSize) {
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound())
{
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
}
if(itemstack.hasTagCompound()) {
entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
}
float f3 = 0.05F;
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem);
}
}
}
float f3 = 0.05F;
entityitem.motionX = (float) this.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float) this.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float) this.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem);
}
}
}
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
}
}
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
}
}
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
}

View File

@ -5,6 +5,7 @@ import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityHadronDiode;
import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig;
import api.hbm.block.IScrewable;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
@ -16,8 +17,8 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockHadronDiode extends BlockContainer {
public class BlockHadronDiode extends BlockContainer implements IScrewable {
@SideOnly(Side.CLIENT)
private IIcon iconIn;
@SideOnly(Side.CLIENT)
@ -31,7 +32,7 @@ public class BlockHadronDiode extends BlockContainer {
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityHadronDiode();
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
@ -40,13 +41,13 @@ public class BlockHadronDiode extends BlockContainer {
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":hadron_diode");
}
@SideOnly(Side.CLIENT)
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
@SideOnly(Side.CLIENT)
public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z);
DiodeConfig conf = diode.getConfig(side);
switch(conf) {
case NONE:
return blockIcon;
@ -56,25 +57,21 @@ public class BlockHadronDiode extends BlockContainer {
default:
return iconOut;
}
}
}
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fx, float fy, float fz) {
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.screwdriver) {
if(!world.isRemote) {
TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z);
int config = diode.getConfig(side).ordinal();
config += 1;
config %= DiodeConfig.values().length;
diode.setConfig(side, config);
}
world.markBlockForUpdate(x, y, z);
return true;
} else {
return false;
}
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ) {
if(!world.isRemote) {
TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z);
int config = diode.getConfig(side).ordinal();
config += 1;
config %= DiodeConfig.values().length;
diode.setConfig(side, config);
}
world.markBlockForUpdate(x, y, z);
return true;
}
}

View File

@ -1,12 +1,16 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.handler.MultiblockHandlerXR;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityChungus;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineChungus extends BlockDummyable {
@ -25,15 +29,107 @@ public class MachineChungus extends BlockDummyable {
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(!player.isSneaking()) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null)
return true;
TileEntityChungus entity = (TileEntityChungus) world.getTileEntity(pos[0], pos[1], pos[2]);
if(entity != null) {
ForgeDirection dir = ForgeDirection.getOrientation(entity.getBlockMetadata() - this.offset);
ForgeDirection turn = dir.getRotation(ForgeDirection.DOWN);
int iX = entity.xCoord + dir.offsetX + turn.offsetX * 2;
int iX2 = entity.xCoord + dir.offsetX * 2 + turn.offsetX * 2;
int iZ = entity.zCoord + dir.offsetZ + turn.offsetZ * 2;
int iZ2 = entity.zCoord + dir.offsetZ * 2 + turn.offsetZ * 2;
if((x == iX || x == iX2) && (z == iZ || z == iZ2) && y < entity.yCoord + 2) {
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.chungusLever", 1.5F, 1.0F);
if(!world.isRemote) {
switch(entity.tanks[0].getTankType()) {
case STEAM:
entity.tanks[0].setTankType(FluidType.HOTSTEAM);
entity.tanks[1].setTankType(FluidType.STEAM);
entity.tanks[0].setFill(entity.tanks[0].getFill() / 10);
entity.tanks[1].setFill(0);
break;
case HOTSTEAM:
entity.tanks[0].setTankType(FluidType.SUPERHOTSTEAM);
entity.tanks[1].setTankType(FluidType.HOTSTEAM);
entity.tanks[0].setFill(entity.tanks[0].getFill() / 10);
entity.tanks[1].setFill(0);
break;
case SUPERHOTSTEAM:
entity.tanks[0].setTankType(FluidType.ULTRAHOTSTEAM);
entity.tanks[1].setTankType(FluidType.SUPERHOTSTEAM);
entity.tanks[0].setFill(entity.tanks[0].getFill() / 10);
entity.tanks[1].setFill(0);
break;
default:
case ULTRAHOTSTEAM:
entity.tanks[0].setTankType(FluidType.STEAM);
entity.tanks[1].setTankType(FluidType.WATER);
entity.tanks[0].setFill(Math.min(entity.tanks[0].getFill() * 1000, entity.tanks[0].getMaxFill()));
entity.tanks[1].setFill(0);
break;
}
entity.markDirty();
}
return true;
}
}
}
return false;
}
@Override
public int[] getDimensions() {
return new int[] { 3, 0, 10, 4, 2, 2 };
return new int[] { 3, 0, 0, 3, 2, 2 };
}
@Override
public int getOffset() {
return 4;
return 3;
}
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -4, 0, 3, 1, 1}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 6, -1, 1, 1}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {2, 0, 10, -7, 1, 1}, this, dir);
world.setBlock(x + dir.offsetX, y + 2, z + dir.offsetZ, this, dir.ordinal(), 3);
this.makeExtra(world, x + dir.offsetX, y + 2, z + dir.offsetZ);
this.makeExtra(world, x + dir.offsetX * (o - 10), y, z + dir.offsetZ * (o - 10));
ForgeDirection side = dir.getRotation(ForgeDirection.UP);
this.makeExtra(world, x + dir.offsetX * o + side.offsetX * 2 , y, z + dir.offsetZ * o + side.offsetZ * 2);
this.makeExtra(world, x + dir.offsetX * o - side.offsetX * 2 , y, z + dir.offsetZ * o - side.offsetZ * 2);
}
@Override
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {3, 0, 6, -1, 1, 1}, x, y, z, dir)) return false;
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {2, 0, 10, -7, 1, 1}, x, y, z, dir)) return false;
if(!world.getBlock(x + dir.offsetX, y + 2, z + dir.offsetZ).canPlaceBlockAt(world, x + dir.offsetX, y + 2, z + dir.offsetZ)) return false;
return true;
}
}

View File

@ -8,6 +8,7 @@ import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.rbmk.RBMKDials;
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase;
import api.hbm.block.IScrewable;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.Block;
@ -20,7 +21,9 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public abstract class RBMKBase extends BlockDummyable {
public abstract class RBMKBase extends BlockDummyable implements IScrewable {
public static boolean dropLids = true;
protected RBMKBase() {
super(Material.iron);
@ -63,7 +66,6 @@ public abstract class RBMKBase extends BlockDummyable {
}
if(!player.isSneaking()) {
FMLNetworkHandler.openGui(player, MainRegistry.instance, gui, world, pos[0], pos[1], pos[2]);
return true;
} else {
@ -123,7 +125,7 @@ public abstract class RBMKBase extends BlockDummyable {
@Override
public void breakBlock(World world, int x, int y, int z, Block b, int i) {
if(!world.isRemote) {
if(!world.isRemote && dropLids) {
if(i == DIR_NORMAL_LID.ordinal() + offset) {
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5 + RBMKDials.getColumnHeight(world), z + 0.5, new ItemStack(ModItems.rbmk_lid)));
@ -135,6 +137,40 @@ public abstract class RBMKBase extends BlockDummyable {
super.breakBlock(world, x, y, z, b, i);
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ) {
int[] pos = this.findCore(world, x, y, z);
if(pos != null) {
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
if(te instanceof TileEntityRBMKBase) {
TileEntityRBMKBase rbmk = (TileEntityRBMKBase) te;
int i = rbmk.getBlockMetadata();
if(rbmk.hasLid() && rbmk.isLidRemovable()) {
if(!world.isRemote) {
if(i == DIR_NORMAL_LID.ordinal() + offset) {
world.spawnEntityInWorld(new EntityItem(world, pos[0] + 0.5, pos[1] + 0.5 + RBMKDials.getColumnHeight(world), pos[2] + 0.5, new ItemStack(ModItems.rbmk_lid)));
}
if(i == DIR_GLASS_LID.ordinal() + offset) {
world.spawnEntityInWorld(new EntityItem(world, pos[0] + 0.5, pos[1] + 0.5 + RBMKDials.getColumnHeight(world), pos[2] + 0.5, new ItemStack(ModItems.rbmk_lid_glass)));
}
world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], DIR_NO_LID.ordinal() + this.offset, 3);
}
return true;
}
}
}
return false;
}
public static int renderIDRods = RenderingRegistry.getNextAvailableRenderId();
public static int renderIDPassive = RenderingRegistry.getNextAvailableRenderId();

View File

@ -170,6 +170,8 @@ public class ConsumableRecipes {
GameRegistry.addRecipe(new ItemStack(ModItems.bathwater_mk2, 1), new Object[] { "MWM", "WBW", "MWM", 'M', ModItems.bottle_mercury, 'W', ModItems.nuclear_waste, 'B', ModItems.bathwater });
GameRegistry.addRecipe(new ItemStack(ModItems.back_tesla, 1), new Object[] { "DGD", "GTG", "DGD", 'D', ModItems.ducttape, 'G', ModItems.wire_gold, 'T', ModBlocks.tesla });
GameRegistry.addRecipe(new ItemStack(ModItems.medal_liquidator, 1), new Object[] { "GBG", "BFB", "GBG", 'G', ModItems.nugget_au198, 'B', ModItems.ingot_boron, 'F', ModItems.debris_fuel });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.injector_5htp, 1), new Object[] { ModItems.five_htp, ModItems.circuit_targeting_tier1, ModItems.plate_saturnite });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.injector_knife, 1), new Object[] { ModItems.injector_5htp, Items.iron_sword });
//Stealth boy
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.stealth_boy, 1), new Object[] { " B", "LI", "LC", 'B', Item.getItemFromBlock(Blocks.stone_button), 'L', Items.leather, 'I', "ingotSteel", 'C', ModItems.circuit_red_copper }));

View File

@ -101,6 +101,7 @@ public class MineralRecipes {
RecipesCommon.addBillet(ModItems.billet_pu238, ModItems.nugget_pu238, "nuggetPlutonium238", "tinyPu238");
RecipesCommon.addBillet(ModItems.billet_pu239, ModItems.nugget_pu239, "nuggetPlutonium239", "tinyPu239");
RecipesCommon.addBillet(ModItems.billet_pu240, ModItems.nugget_pu240, "nuggetPlutonium240", "tinyPu240");
RecipesCommon.addBillet(ModItems.billet_pu241, ModItems.nugget_pu241, "nuggetPlutonium241", "tinyPu241");
RecipesCommon.addBillet(ModItems.billet_pu_mix, ModItems.nugget_pu_mix);
RecipesCommon.addBillet(ModItems.billet_neptunium, ModItems.nugget_neptunium, "nuggetNeptunium237", "tinyNp237");
RecipesCommon.addBillet(ModItems.billet_polonium, ModItems.nugget_polonium, "nuggetPolonium");
@ -164,6 +165,7 @@ public class MineralRecipes {
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg), new Object[] { ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_pu238, "plateIron" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_weak), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_pu238, "plateIron" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_polonium), new Object[] { ModItems.billet_polonium, ModItems.billet_polonium, ModItems.billet_polonium, "plateIron" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_gold), new Object[] { ModItems.billet_au198, ModItems.billet_au198, ModItems.billet_au198, "plateIron" }));
GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_copper), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_copper });
GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_fluorite), 1), new Object[] { "###", "###", "###", '#', ModItems.fluorite });

View File

@ -43,6 +43,7 @@ public class PowderRecipes {
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 3), new Object[] { "dustRedstone", "dustSteel", "dustCopper" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 2), new Object[] { "dustRedCopperAlloy", "dustSteel" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_magnetized_tungsten, 1), new Object[] { "dustTungsten", "nuggetSchrabidium" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_tcalloy, 1), new Object[] { "dustSteel", "nuggetTechnetium99" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_red_copper, 2), new Object[] { "dustRedstone", "dustCopper" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_steel, 2), new Object[] { "dustIron", "dustCoal" }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_dura_steel, 2), new Object[] { "dustSteel", "dustTungsten" }));

View File

@ -163,6 +163,8 @@ public class RodRecipes {
RecipesCommon.addRBMKRod(ModItems.billet_thorium_fuel, ModItems.rbmk_fuel_thmeu);
RecipesCommon.addRBMKRod(ModItems.billet_plutonium_fuel, ModItems.rbmk_fuel_lep);
RecipesCommon.addRBMKRod(ModItems.billet_pu_mix, ModItems.rbmk_fuel_mep);
RecipesCommon.addRBMKRod(ModItems.billet_pu239, ModItems.rbmk_fuel_hep);
RecipesCommon.addRBMKRod(ModItems.billet_pu241, ModItems.rbmk_fuel_hep241);
RecipesCommon.addRBMKRod(ModItems.billet_neptunium_fuel, ModItems.rbmk_fuel_men);
RecipesCommon.addRBMKRod(ModItems.billet_po210be, ModItems.rbmk_fuel_po210be);
RecipesCommon.addRBMKRod(ModItems.billet_pu238be, ModItems.rbmk_fuel_pu238be);

View File

@ -134,7 +134,7 @@ public class EntityEffectHandler {
float digamma = HbmLivingProps.getDigamma(entity);
if(digamma == 0)
if(digamma < 0.01F)
return;
int chance = Math.max(10 - (int)(digamma), 1);

View File

@ -1,28 +1,38 @@
package com.hbm.handler;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import com.hbm.render.util.EnumSymbol;
public class FluidTypeHandler {
public enum FluidType {
public static enum FluidTrait {
AMAT,
CORROSIVE,
CORROSIVE_2,
NO_CONTAINER;
}
public static enum FluidType {
NONE (0x888888, 0, 1, 1, 0, 0, 0, EnumSymbol.NONE, "hbmfluid.none"),
WATER (0x3333FF, 1, 1, 1, 0, 0, 0, EnumSymbol.NONE, "hbmfluid.water"),
STEAM (0xe5e5e5, 9, 2, 1, 3, 0, 0, EnumSymbol.NONE, "hbmfluid.steam", true, false, false, 100),
HOTSTEAM (0xE7D6D6, 1, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.hotsteam", true, false, false, 300),
SUPERHOTSTEAM (0xE7B7B7, 2, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.superhotsteam", true, false, false, 450),
ULTRAHOTSTEAM (0xE39393, 13, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.ultrahotsteam", true, false, false, 600),
STEAM (0xe5e5e5, 9, 2, 1, 3, 0, 0, EnumSymbol.NONE, "hbmfluid.steam", 100),
HOTSTEAM (0xE7D6D6, 1, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.hotsteam", 300),
SUPERHOTSTEAM (0xE7B7B7, 2, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.superhotsteam", 450),
ULTRAHOTSTEAM (0xE39393, 13, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.ultrahotsteam", 600),
COOLANT (0xd8fcff, 2, 1, 1, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.coolant"),
LAVA (0xFF3300, 3, 1, 1, 4, 0, 0, EnumSymbol.NOWATER, "hbmfluid.lava", true, false, false, 1200),
LAVA (0xFF3300, 3, 1, 1, 4, 0, 0, EnumSymbol.NOWATER, "hbmfluid.lava", 1200),
DEUTERIUM (0x0000FF, 4, 1, 1, 3, 4, 0, EnumSymbol.NONE, "hbmfluid.deuterium"),
TRITIUM (0x000099, 5, 1, 1, 3, 4, 0, EnumSymbol.RADIATION, "hbmfluid.tritium"),
OIL (0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.oil"),
HOTOIL (0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotoil", true, false, false, 350),
HOTOIL (0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotoil", 350),
HEAVYOIL (0x141312, 2, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.heavyoil"),
BITUMEN (0x1f2426, 3, 2, 1, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.bitumen"),
@ -48,30 +58,30 @@ public class FluidTypeHandler {
NITAN (0x8018ad, 15, 2, 1, 2, 4, 1, EnumSymbol.NONE, "hbmfluid.nitan"),
UF6 (0xD1CEBE, 14, 1, 1, 4, 0, 2, EnumSymbol.RADIATION, "hbmfluid.uf6", false, true, false),
PUF6 (0x4C4C4C, 15, 1, 1, 4, 0, 4, EnumSymbol.RADIATION, "hbmfluid.puf6", false, true, false),
SAS3 (0x4ffffc, 14, 2, 1, 5, 0, 4, EnumSymbol.RADIATION, "hbmfluid.sas3", false, true, false),
SCHRABIDIC (0x006B6B, 14, 1, 2, 5, 0, 5, EnumSymbol.ACID, "hbmfluid.schrabidic", false, true, false),
UF6 (0xD1CEBE, 14, 1, 1, 4, 0, 2, EnumSymbol.RADIATION, "hbmfluid.uf6", FluidTrait.CORROSIVE),
PUF6 (0x4C4C4C, 15, 1, 1, 4, 0, 4, EnumSymbol.RADIATION, "hbmfluid.puf6", FluidTrait.CORROSIVE),
SAS3 (0x4ffffc, 14, 2, 1, 5, 0, 4, EnumSymbol.RADIATION, "hbmfluid.sas3", FluidTrait.CORROSIVE),
SCHRABIDIC (0x006B6B, 14, 1, 2, 5, 0, 5, EnumSymbol.ACID, "hbmfluid.schrabidic", FluidTrait.CORROSIVE_2),
AMAT (0x010101, 0, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.amat", false, false, true),
ASCHRAB (0xb50000, 1, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.aschrab", false, false, true),
AMAT (0x010101, 0, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.amat", FluidTrait.AMAT),
ASCHRAB (0xb50000, 1, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.aschrab", FluidTrait.AMAT),
ACID (0xfff7aa, 10, 2, 1, 3, 0, 3, EnumSymbol.OXIDIZER, "hbmfluid.acid", false, true, false),
WATZ (0x86653E, 11, 2, 1, 4, 0, 3, EnumSymbol.ACID, "hbmfluid.watz", false, true, false),
CRYOGEL (0x32ffff, 0, 1, 2, 2, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.cryogel", false, false, false, -170),
ACID (0xfff7aa, 10, 2, 1, 3, 0, 3, EnumSymbol.OXIDIZER, "hbmfluid.acid", FluidTrait.CORROSIVE),
WATZ (0x86653E, 11, 2, 1, 4, 0, 3, EnumSymbol.ACID, "hbmfluid.watz", FluidTrait.CORROSIVE_2),
CRYOGEL (0x32ffff, 0, 1, 2, 2, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.cryogel", -170),
HYDROGEN (0x4286f4, 3, 1, 2, 3, 4, 0, EnumSymbol.CROYGENIC, "hbmfluid.hydrogen"),
OXYGEN (0x98bdf9, 4, 1, 2, 3, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.oxygen"),
XENON (0xba45e8, 5, 1, 2, 0, 0, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.xenon"),
BALEFIRE (0x28e02e, 6, 1, 2, 4, 4, 3, EnumSymbol.RADIATION, "hbmfluid.balefire", true, true, false, 1500),
BALEFIRE (0x28e02e, 6, 1, 2, 4, 4, 3, EnumSymbol.RADIATION, "hbmfluid.balefire", 1500, FluidTrait.CORROSIVE),
MERCURY (0x808080, 7, 1, 2, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.mercury"),
PLASMA_DT (0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", true, false, true, 3250),
PLASMA_HD (0xF0ADF4, 9, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", true, false, true, 2500),
PLASMA_HT (0xD1ABF2, 10, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_ht", true, false, true, 3000),
PLASMA_XM (0xC6A5FF, 11, 1, 2, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", true, false, true, 4250),
PLASMA_BF (0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", true, false, true, 8500);
PLASMA_DT (0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER),
PLASMA_HD (0xF0ADF4, 9, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", 2500, FluidTrait.NO_CONTAINER),
PLASMA_HT (0xD1ABF2, 10, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_ht", 3000, FluidTrait.NO_CONTAINER),
PLASMA_XM (0xC6A5FF, 11, 1, 2, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", 4250, FluidTrait.NO_CONTAINER),
PLASMA_BF (0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER);
//Approximate HEX Color of the fluid, used for pipe rendering
@ -85,19 +95,32 @@ public class FluidTypeHandler {
//Unlocalized string ID of the fluid
private String name;
//Whether the fluid counts is too hot for certain tanks
private boolean hot;
//private boolean hot;
//Whether the fluid counts as corrosive and requires a steel tank
private boolean corrosive;
//private boolean corrosive;
//Whether the fluid is antimatter and requires magnetic storage
private boolean antimatter;
//private boolean antimatter;
public int poison;
public int flammability;
public int reactivity;
public EnumSymbol symbol;
public int temperature;
public List<FluidTrait> traits = new ArrayList();
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name) {
this(color, x, y, sheet, p, f, r, symbol, name, 0, new FluidTrait[0]);
}
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, FluidTrait... traits) {
this(color, x, y, sheet, p, f, r, symbol, name, 0, traits);
}
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, int temperature) {
this(color, x, y, sheet, p, f, r, symbol, name, temperature, new FluidTrait[0]);
}
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, int temperature, FluidTrait... traits) {
this.color = color;
this.textureX = x;
this.textureY = y;
@ -107,28 +130,8 @@ public class FluidTypeHandler {
this.flammability = f;
this.reactivity = r;
this.symbol = symbol;
this.temperature = 0;
}
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, boolean hot, boolean corrosive, boolean antimatter) {
this.color = color;
this.textureX = x;
this.textureY = y;
this.name = name;
this.sheetID = sheet;
this.poison = p;
this.flammability = f;
this.reactivity = r;
this.symbol = symbol;
this.hot = hot;
this.corrosive = corrosive;
this.antimatter = antimatter;
this.temperature = 0;
}
private FluidType(int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, boolean hot, boolean corrosive, boolean antimatter, int temperature) {
this(color, x, y, sheet, p, f, r, symbol, name, hot, corrosive, antimatter);
this.temperature = temperature;
Collections.addAll(this.traits, traits);
}
public int getColor() {
@ -175,18 +178,19 @@ public class FluidTypeHandler {
}
public boolean isHot() {
return hot;
return this.temperature >= 100;
}
public boolean isCorrosive() {
return corrosive;
return this.traits.contains(FluidTrait.CORROSIVE) || this.traits.contains(FluidTrait.CORROSIVE_2);
}
public boolean isAntimatter() {
return antimatter;
return this.traits.contains(FluidTrait.AMAT);
}
public boolean hasNoContainer() {
return this.traits.contains(FluidTrait.NO_CONTAINER);
}
};
//More stuff to follow.
}

View File

@ -468,12 +468,23 @@ public class AssemblerRecipes {
new ComparableStack(ModItems.hull_big_steel, 1),
new OreDictStack("plateSteel", 12),
new ComparableStack(ModItems.turbine_titanium, 3),
new ComparableStack(ModItems.rotor_steel, 2),
new ComparableStack(ModItems.generator_steel, 2),
new ComparableStack(ModItems.generator_steel, 1),
new ComparableStack(ModItems.bolt_compound, 3),
new ComparableStack(ModItems.pipes_steel, 1),
new ComparableStack(ModItems.circuit_aluminium, 1),
}, 20);
makeRecipe(new ComparableStack(ModBlocks.machine_chungus, 1), new AStack[] {
new ComparableStack(ModItems.hull_big_steel, 6),
new OreDictStack("plateSteel", 32),
new OreDictStack("plateTitanium", 12),
new ComparableStack(ModItems.ingot_tcalloy, 16),
new ComparableStack(ModItems.turbine_tungsten, 5),
new ComparableStack(ModItems.turbine_titanium, 3),
new ComparableStack(ModItems.flywheel_beryllium, 1),
new ComparableStack(ModItems.generator_steel, 10),
new ComparableStack(ModItems.bolt_compound, 16),
new ComparableStack(ModItems.pipes_steel, 3)
}, 600);
makeRecipe(new ComparableStack(ModItems.pellet_chlorophyte, 2), new AStack[] {
new ComparableStack(ModItems.powder_chlorophyte, 1),
@ -737,7 +748,7 @@ public class AssemblerRecipes {
hidden.put(new ComparableStack(ModItems.missile_soyuz_lander, 1), new HashSet() {{ add(ModItems.journal_bj); }});
}
private static void makeRecipe(ComparableStack out, AStack[] in, int duration) {
public static void makeRecipe(ComparableStack out, AStack[] in, int duration) {
if(out == null || Item.itemRegistry.getNameForObject(out.item) == null) {
MainRegistry.logger.error("Canceling assembler registration, item was null!");

View File

@ -21,9 +21,9 @@ public class CentrifugeRecipes {
public static void register() {
recipes.put(new ComparableStack(ModItems.waste_uranium), new ItemStack[] {
new ItemStack(ModItems.nugget_u235, 1),
new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nugget_pu_mix, 2),
new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2) });
recipes.put(new ComparableStack(ModItems.waste_plutonium), new ItemStack[] {

View File

@ -1,6 +1,10 @@
package com.hbm.inventory;
import java.util.ArrayList;
import java.util.List;
import com.hbm.handler.ArmorModHandler;
import com.hbm.handler.FluidTypeHandler.FluidTrait;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IPartiallyFillable;
import com.hbm.inventory.gui.GuiInfoContainer;
@ -235,10 +239,26 @@ public class FluidTank {
public void renderTankInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height) {
if(x <= mouseX && x + width > mouseX && y < mouseY && y + height >= mouseY) {
if(type.temperature == 0)
gui.drawFluidInfo(new String[] { I18n.format(this.type.getUnlocalizedName()), fluid + "/" + maxFluid + "mB" }, mouseX, mouseY);
else
gui.drawFluidInfo(new String[] { I18n.format(this.type.getUnlocalizedName()), fluid + "/" + maxFluid + "mB", EnumChatFormatting.RED + "" + type.temperature + "°C" }, mouseX, mouseY);
List<String> list = new ArrayList();
list.add(I18n.format(this.type.getUnlocalizedName()));
list.add(fluid + "/" + maxFluid + "mB");
if(type.temperature < 0)
list.add(EnumChatFormatting.BLUE + "" + type.temperature + "°C");
if(type.temperature > 0)
list.add(EnumChatFormatting.RED + "" + type.temperature + "°C");
if(type.isAntimatter())
list.add(EnumChatFormatting.DARK_RED + "Antimatter");
if(type.traits.contains(FluidTrait.CORROSIVE))
list.add(EnumChatFormatting.YELLOW + "Corrosive");
if(type.traits.contains(FluidTrait.CORROSIVE_2))
list.add(EnumChatFormatting.GOLD + "Strongly Corrosive");
gui.drawFluidInfo(list.toArray(new String[0]), mouseX, mouseY);
}
}

View File

@ -94,6 +94,11 @@ public class MachineRecipes {
return new ItemStack(ModItems.ingot_magnetized_tungsten, 1);
}
if (mODE(item, new String[] {"ingotSteel", "dustSteel"}) && mODE(item2, new String[] {"nuggetTechnetium99", "tinyTc99"})
|| mODE(item, new String[] {"nuggetTechnetium99", "tinyTc99"}) && mODE(item2, new String[] {"ingotSteel", "dustSteel"})) {
return new ItemStack(ModItems.ingot_tcalloy, 1);
}
if (item.getItem() == ModItems.plate_mixed && mODE(item2, "plateGold")
|| mODE(item, "plateGold") && item2.getItem() == ModItems.plate_mixed) {
return new ItemStack(ModItems.plate_paa, 2);
@ -799,6 +804,8 @@ public class MachineRecipes {
getFurnaceOutput(new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.ingot_cobalt)).copy());
recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_saturnite), new ItemStack(ModItems.powder_meteorite) },
getFurnaceOutput(new ItemStack(ModItems.ingot_saturnite), new ItemStack(ModItems.powder_meteorite)).copy());
recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.nugget_technetium) },
getFurnaceOutput(new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.nugget_technetium)).copy());
if(GeneralConfig.enableBabyMode) {
recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_empty), new ItemStack(Items.coal) },

View File

@ -21,6 +21,7 @@ public class OreDictManager {
OreDictionary.registerOre("ingotPlutonium239", ModItems.ingot_pu239);
OreDictionary.registerOre("ingotPlutonium240", ModItems.ingot_pu240);
OreDictionary.registerOre("ingotNeptunium237", ModItems.ingot_neptunium);
OreDictionary.registerOre("ingotTechnetium99", ModItems.ingot_technetium);
OreDictionary.registerOre("U233", ModItems.ingot_u233);
OreDictionary.registerOre("U235", ModItems.ingot_u235);
OreDictionary.registerOre("U238", ModItems.ingot_u238);
@ -58,6 +59,7 @@ public class OreDictManager {
OreDictionary.registerOre("ingotAsbestos", ModItems.ingot_asbestos);
OreDictionary.registerOre("ingotZirconium", ModItems.ingot_zirconium);
OreDictionary.registerOre("ingotBoron", ModItems.ingot_boron);
OreDictionary.registerOre("ingotTcAlloy", ModItems.ingot_tcalloy);
OreDictionary.registerOre("nuggetLead", ModItems.nugget_lead);
OreDictionary.registerOre("nuggetBeryllium", ModItems.nugget_beryllium);
@ -71,9 +73,11 @@ public class OreDictManager {
OreDictionary.registerOre("nuggetPlutonium238", ModItems.nugget_pu238);
OreDictionary.registerOre("nuggetPlutonium239", ModItems.nugget_pu239);
OreDictionary.registerOre("nuggetPlutonium240", ModItems.nugget_pu240);
OreDictionary.registerOre("nuggetPlutonium241", ModItems.nugget_pu241);
OreDictionary.registerOre("nuggetAustralium", ModItems.nugget_australium);
OreDictionary.registerOre("nuggetEuphemium", ModItems.nugget_euphemium);
OreDictionary.registerOre("nuggetNeptunium237", ModItems.nugget_neptunium);
OreDictionary.registerOre("nuggetTechnetium99", ModItems.nugget_technetium);
OreDictionary.registerOre("nuggetPolonium", ModItems.nugget_polonium);
OreDictionary.registerOre("nuggetSchrabidium", ModItems.nugget_schrabidium);
OreDictionary.registerOre("nuggetZirconium", ModItems.nugget_zirconium);
@ -84,7 +88,9 @@ public class OreDictManager {
OreDictionary.registerOre("tinyPu238", ModItems.nugget_pu238);
OreDictionary.registerOre("tinyPu239", ModItems.nugget_pu239);
OreDictionary.registerOre("tinyPu240", ModItems.nugget_pu240);
OreDictionary.registerOre("tinyPu241", ModItems.nugget_pu241);
OreDictionary.registerOre("tinyNp237", ModItems.nugget_neptunium);
OreDictionary.registerOre("tinyTc99", ModItems.nugget_technetium);
OreDictionary.registerOre("nuggetNeodymium", ModItems.fragment_neodymium);
OreDictionary.registerOre("nuggetCobalt", ModItems.fragment_cobalt);
@ -136,6 +142,7 @@ public class OreDictManager {
OreDictionary.registerOre("dustPhosphorus", ModItems.powder_fire);
OreDictionary.registerOre("dustZirconium", ModItems.powder_zirconium);
OreDictionary.registerOre("dustBoron", ModItems.powder_boron);
OreDictionary.registerOre("dustTcAlloy", ModItems.powder_tcalloy);
OreDictionary.registerOre("dustNeptunium", ModItems.powder_neptunium);
OreDictionary.registerOre("dustIodine", ModItems.powder_iodine);

View File

@ -222,8 +222,8 @@ public class SILEXRecipes {
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 15))
);
recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.URANIUM.ordinal()), new SILEXRecipe(900, 100)
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 75))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 5))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 65))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 15))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 20))
);
recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), new SILEXRecipe(900, 100)
@ -235,8 +235,8 @@ public class SILEXRecipes {
);
recipes.put(new ComparableStack(ModItems.nuclear_waste_short_depleted, 1, ItemWasteShort.WasteClass.URANIUM.ordinal()), new SILEXRecipe(900, 100)
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_neptunium), 15))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 35))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 5))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 25))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 15))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 45))
);
@ -260,8 +260,8 @@ public class SILEXRecipes {
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 25))
);
recipes.put(new ComparableStack(ModItems.nuclear_waste_long_depleted, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), new SILEXRecipe(900, 100)
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 85))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 5))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 75))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_bismuth), 15))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nuclear_waste_tiny), 10))
);

View File

@ -63,7 +63,8 @@ public class GUIScreenTemplateFolder extends GuiScreen {
allStacks.add(new ItemStack(ModItems.siren_track, 1, i));
// Fluid IDs
for(int i = 1; i < FluidType.values().length; i++)
allStacks.add(new ItemStack(ModItems.fluid_identifier, 1, i));
if(!FluidType.values()[i].hasNoContainer())
allStacks.add(new ItemStack(ModItems.fluid_identifier, 1, i));
// Assembly Templates
for(int i = 0; i < AssemblerRecipes.recipeList.size(); i++)
if(AssemblerRecipes.hidden.get(AssemblerRecipes.recipeList.get(i)) == null)

View File

@ -104,6 +104,7 @@ public class ModItems {
public static Item nugget_mox_fuel;
public static Item nugget_schrabidium_fuel;
public static Item ingot_advanced_alloy;
public static Item ingot_tcalloy;
public static Item lithium;
public static Item ingot_zirconium;
public static Item ingot_hes;
@ -159,6 +160,7 @@ public class ModItems {
public static Item billet_pu238;
public static Item billet_pu239;
public static Item billet_pu240;
public static Item billet_pu241;
public static Item billet_pu_mix;
public static Item billet_neptunium;
public static Item billet_polonium;
@ -337,6 +339,7 @@ public class ModItems {
public static Item powder_cerium;
public static Item powder_advanced_alloy;
public static Item powder_tcalloy;
public static Item powder_coal;
public static Item powder_combine_steel;
public static Item powder_diamond;
@ -513,6 +516,7 @@ public class ModItems {
public static Item turbine_tungsten;
public static Item pellet_coal;
public static Item ring_starmetal;
public static Item flywheel_beryllium;
public static Item toothpicks;
public static Item ducttape;
@ -934,6 +938,8 @@ public class ModItems {
public static ItemRBMKRod rbmk_fuel_thmeu;
public static ItemRBMKRod rbmk_fuel_lep;
public static ItemRBMKRod rbmk_fuel_mep;
public static ItemRBMKRod rbmk_fuel_hep;
public static ItemRBMKRod rbmk_fuel_hep241;
public static ItemRBMKRod rbmk_fuel_men;
public static ItemRBMKRod rbmk_fuel_mox;
public static ItemRBMKRod rbmk_fuel_les;
@ -2369,6 +2375,7 @@ public class ModItems {
nugget_mox_fuel = new ItemHazard(ItemHazard.mox * ItemHazard.nugget).setUnlocalizedName("nugget_mox_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mox_fuel");
nugget_schrabidium_fuel = new ItemHazard(ItemHazard.saf * ItemHazard.nugget, false, true).setUnlocalizedName("nugget_schrabidium_fuel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_schrabidium_fuel");
ingot_advanced_alloy = new Item().setUnlocalizedName("ingot_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_advanced_alloy");
ingot_tcalloy = new Item().setUnlocalizedName("ingot_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_tcalloy");
niter = new Item().setUnlocalizedName("niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":salpeter");
ingot_copper = new Item().setUnlocalizedName("ingot_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_copper");
@ -2429,6 +2436,7 @@ public class ModItems {
billet_pu238 = new ItemHazard(ItemHazard.pu238 * ItemHazard.billet, true).setUnlocalizedName("billet_pu238").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu238");
billet_pu239 = new ItemHazard(ItemHazard.pu239 * ItemHazard.billet).setUnlocalizedName("billet_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu239");
billet_pu240 = new ItemHazard(ItemHazard.pu240 * ItemHazard.billet).setUnlocalizedName("billet_pu240").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu240");
billet_pu241 = new ItemHazard().addRadiation(ItemHazard.pu241 * ItemHazard.billet).toItem().setUnlocalizedName("billet_pu241").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu241");
billet_pu_mix = new ItemHazard(ItemHazard.purg * ItemHazard.billet).setUnlocalizedName("billet_pu_mix").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pu_mix");
billet_neptunium = new ItemHazard(ItemHazard.np237 * ItemHazard.billet).setUnlocalizedName("billet_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_neptunium");
billet_polonium = new ItemHazard(ItemHazard.po210 * ItemHazard.billet, true).setUnlocalizedName("billet_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_polonium");
@ -2599,6 +2607,7 @@ public class ModItems {
dust = new ItemCustomLore().setUnlocalizedName("dust").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":dust");
fallout = new ItemHazard().addRadiation(ItemHazard.fo * ItemHazard.powder).toItem().setUnlocalizedName("fallout").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fallout");
powder_advanced_alloy = new Item().setUnlocalizedName("powder_advanced_alloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_advanced_alloy");
powder_tcalloy = new Item().setUnlocalizedName("powder_tcalloy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tcalloy");
powder_coal = new Item().setUnlocalizedName("powder_coal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_coal");
powder_combine_steel = new Item().setUnlocalizedName("powder_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_combine_steel");
powder_diamond = new Item().setUnlocalizedName("powder_diamond").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_diamond");
@ -2700,6 +2709,7 @@ public class ModItems {
component_emitter = new Item().setUnlocalizedName("component_emitter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":component_emitter");
chlorine_pinwheel = new Item().setUnlocalizedName("chlorine_pinwheel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":chlorine_pinwheel");
ring_starmetal = new Item().setUnlocalizedName("ring_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ring_starmetal");
flywheel_beryllium = new Item().setUnlocalizedName("flywheel_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flywheel_beryllium");
cap_aluminium = new Item().setUnlocalizedName("cap_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":cap_aluminium");
hull_small_steel = new Item().setUnlocalizedName("hull_small_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":hull_small_steel");
@ -3047,7 +3057,7 @@ public class ModItems {
wild_p = new ItemModRevive(3).setUnlocalizedName("wild_p").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":wild_p");
fabsols_vodka = new ItemModRevive(9999).setUnlocalizedName("fabsols_vodka").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":fabsols_vodka");
injector_5htp = new ItemModAuto().setUnlocalizedName("injector_5htp").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":injector_5htp");
injector_knife = new ItemModAuto().setUnlocalizedName("injector_knife").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":injector_knife");
injector_knife = new ItemModKnife().setUnlocalizedName("injector_knife").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":injector_knife");
medal_liquidator = new ItemModMedal().setUnlocalizedName("medal_liquidator").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":medal_liquidator");
can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty");
@ -3276,6 +3286,20 @@ public class ModItems {
.setMeltingPoint(2744)
.addRadiation(ItemHazard.purg * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep");
rbmk_fuel_hep = (ItemRBMKRod) new ItemRBMKRod("Highly Enriched Plutonium-239")
.setYield(100000000D)
.setStats(250)
.setHeat(1.5D)
.setMeltingPoint(2744)
.addRadiation(ItemHazard.pu239 * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_hep").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep");
rbmk_fuel_hep241 = (ItemRBMKRod) new ItemRBMKRod("Highly Enriched Plutonium-241")
.setYield(100000000D)
.setStats(280)
.setHeat(1.75D)
.setMeltingPoint(2744)
.addRadiation(ItemHazard.pu241 * ItemHazard.rod_rbmk).toItem()
.setUnlocalizedName("rbmk_fuel_hep241").setTextureName(RefStrings.MODID + ":rbmk_fuel_hep241");
rbmk_fuel_men = (ItemRBMKRod) new ItemRBMKRod(rbmk_pellet_men)
.setYield(100000000D)
.setStats(175)
@ -4053,7 +4077,7 @@ public class ModItems {
fuse = new ItemCustomLore().setUnlocalizedName("fuse").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fuse");
redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":redcoil_capacitor");
titanium_filter = new ItemCapacitor(6 * 60 * 60 * 20).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":titanium_filter");
screwdriver = new ItemCustomLore().setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":screwdriver");
screwdriver = new ItemScrewdriver().setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":screwdriver");
overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse");
arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode");
arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt");
@ -4463,6 +4487,11 @@ public class ModItems {
jackt = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt");
jackt2 = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2");
initializeItem2();
}
public static void initializeItem2() {
chainsaw = new ItemToolAbility(25, -0.05, MainRegistry.tMatChainsaw, EnumToolType.AXE)
.addBreakAbility(new ToolAbility.SilkAbility())
@ -4742,11 +4771,6 @@ public class ModItems {
meteorite_sword_baleful = new ItemSwordMeteorite(500F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_baleful").setTextureName(RefStrings.MODID + ":meteorite_sword");
mask_of_infamy = new MaskOfInfamy(ArmorMaterial.IRON, 8, 0).setUnlocalizedName("mask_of_infamy").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_of_infamy");
initializeItem2();
}
public static void initializeItem2() {
hazmat_helmet = new ArmorHazmat(MainRegistry.aMatHaz, 9, 0).setUnlocalizedName("hazmat_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_helmet");
hazmat_plate = new ArmorHazmat(MainRegistry.aMatHaz, 9, 1).setUnlocalizedName("hazmat_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":hazmat_plate");
@ -5037,6 +5061,7 @@ public class ModItems {
GameRegistry.registerItem(ingot_tungsten, ingot_tungsten.getUnlocalizedName());
GameRegistry.registerItem(ingot_aluminium, ingot_aluminium.getUnlocalizedName());
GameRegistry.registerItem(ingot_steel, ingot_steel.getUnlocalizedName());
GameRegistry.registerItem(ingot_tcalloy, ingot_tcalloy.getUnlocalizedName());
GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName());
GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName());
GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName());
@ -5101,6 +5126,7 @@ public class ModItems {
GameRegistry.registerItem(billet_pu238, billet_pu238.getUnlocalizedName());
GameRegistry.registerItem(billet_pu239, billet_pu239.getUnlocalizedName());
GameRegistry.registerItem(billet_pu240, billet_pu240.getUnlocalizedName());
GameRegistry.registerItem(billet_pu241, billet_pu241.getUnlocalizedName());
GameRegistry.registerItem(billet_pu_mix, billet_pu_mix.getUnlocalizedName());
GameRegistry.registerItem(billet_neptunium, billet_neptunium.getUnlocalizedName());
GameRegistry.registerItem(billet_polonium, billet_polonium.getUnlocalizedName());
@ -5162,6 +5188,7 @@ public class ModItems {
GameRegistry.registerItem(powder_aluminium, powder_aluminium.getUnlocalizedName());
GameRegistry.registerItem(powder_steel, powder_steel.getUnlocalizedName());
GameRegistry.registerItem(powder_steel_tiny, powder_steel_tiny.getUnlocalizedName());
GameRegistry.registerItem(powder_tcalloy, powder_tcalloy.getUnlocalizedName());
GameRegistry.registerItem(powder_lead, powder_lead.getUnlocalizedName());
GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName());
GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName());
@ -5428,6 +5455,7 @@ public class ModItems {
GameRegistry.registerItem(blade_tungsten, blade_tungsten.getUnlocalizedName());
GameRegistry.registerItem(turbine_titanium, turbine_titanium.getUnlocalizedName());
GameRegistry.registerItem(turbine_tungsten, turbine_tungsten.getUnlocalizedName());
GameRegistry.registerItem(flywheel_beryllium, flywheel_beryllium.getUnlocalizedName());
GameRegistry.registerItem(generator_front, generator_front.getUnlocalizedName());
GameRegistry.registerItem(toothpicks, toothpicks.getUnlocalizedName());
GameRegistry.registerItem(ducttape, ducttape.getUnlocalizedName());
@ -6034,6 +6062,8 @@ public class ModItems {
GameRegistry.registerItem(rbmk_fuel_thmeu, rbmk_fuel_thmeu.getUnlocalizedName());
GameRegistry.registerItem(rbmk_fuel_lep, rbmk_fuel_lep.getUnlocalizedName());
GameRegistry.registerItem(rbmk_fuel_mep, rbmk_fuel_mep.getUnlocalizedName());
GameRegistry.registerItem(rbmk_fuel_hep, rbmk_fuel_hep.getUnlocalizedName());
GameRegistry.registerItem(rbmk_fuel_hep241, rbmk_fuel_hep241.getUnlocalizedName());
GameRegistry.registerItem(rbmk_fuel_men, rbmk_fuel_men.getUnlocalizedName());
GameRegistry.registerItem(rbmk_fuel_mox, rbmk_fuel_mox.getUnlocalizedName());
GameRegistry.registerItem(rbmk_fuel_les, rbmk_fuel_les.getUnlocalizedName());

View File

@ -1,12 +1,16 @@
package com.hbm.items.armor;
import java.util.List;
import java.util.UUID;
import com.hbm.extprop.HbmLivingProps;
import com.hbm.handler.ArmorModHandler;
import com.hbm.items.ModItems;
import com.hbm.potion.HbmPotion;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.EnumChatFormatting;
public class ItemModAuto extends ItemArmorMod {
@ -17,17 +21,30 @@ public class ItemModAuto extends ItemArmorMod {
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
if(this == ModItems.injector_5htp) {
list.add(EnumChatFormatting.BLUE + "Imported from Japsterdam.");
}
if(this == ModItems.injector_knife) {
list.add(EnumChatFormatting.RED + "Pain.");
list.add("");
list.add(EnumChatFormatting.RED + "Hurts, doesn't it?");
}
list.add(EnumChatFormatting.BLUE + "Imported from Japsterdam.");
list.add("");
super.addInformation(stack, player, list, bool);
}
@Override
public void addDesc(List list, ItemStack stack, ItemStack armor) {
list.add(EnumChatFormatting.BLUE + " " + stack.getDisplayName());
}
@Override
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
if(!entity.worldObj.isRemote) {
if(HbmLivingProps.getDigamma(entity) >= 5F) {
ArmorModHandler.removeMod(armor, ArmorModHandler.extra);
entity.worldObj.playSoundAtEntity(entity, "hbm:item.syringe", 1.0F, 1.0F);
HbmLivingProps.setDigamma(entity, HbmLivingProps.getDigamma(entity) - 5F);
entity.addPotionEffect(new PotionEffect(HbmPotion.stability.id, 60 * 20, 0));
entity.heal(20F);
}
}
}
}

View File

@ -0,0 +1,85 @@
package com.hbm.items.armor;
import java.util.List;
import java.util.UUID;
import com.hbm.handler.ArmorModHandler;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
public class ItemModKnife extends ItemArmorMod {
public static final UUID trigamma_UUID = UUID.fromString("86d44ca9-44f1-4ca6-bdbb-d9d33bead251");
public ItemModKnife() {
super(ArmorModHandler.extra, false, true, false, false);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
list.add(EnumChatFormatting.RED + "Pain.");
list.add("");
list.add(EnumChatFormatting.RED + "Hurts, doesn't it?");
list.add("");
super.addInformation(stack, player, list, bool);
}
@Override
public void addDesc(List list, ItemStack stack, ItemStack armor) {
list.add(EnumChatFormatting.RED + " " + stack.getDisplayName());
}
@Override
public void modUpdate(EntityLivingBase entity, ItemStack armor) {
if(!entity.worldObj.isRemote) {
if(entity.ticksExisted % 50 == 0 && entity.getMaxHealth() > 2F) {
entity.worldObj.playSoundAtEntity(entity, "hbm:entity.slicer", 1.0F, 1.0F);
NBTTagCompound nbt = new NBTTagCompound();
nbt.setString("type", "bloodvomit");
nbt.setInteger("entity", entity.getEntityId());
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(nbt, 0, 0, 0), new TargetPoint(entity.dimension, entity.posX, entity.posY, entity.posZ, 25));
IAttributeInstance attributeinstance = entity.getAttributeMap().getAttributeInstance(SharedMonsterAttributes.maxHealth);
float health = entity.getMaxHealth();
try {
attributeinstance.removeModifier(attributeinstance.getModifier(trigamma_UUID));
} catch(Exception ex) { }
attributeinstance.applyModifier(new AttributeModifier(trigamma_UUID, "digamma", -(20F - health + 2), 0));
if(entity instanceof EntityPlayerMP) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "properJolt");
if(entity.getMaxHealth() > 2F) {
data.setInteger("time", 10000 + entity.getRNG().nextInt(10000));
data.setInteger("maxTime", 10000);
} else {
data.setInteger("time", 0);
data.setInteger("maxTime", 0);
}
PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, 0, 0, 0), (EntityPlayerMP)entity);
}
}
}
}
}

View File

@ -35,7 +35,7 @@ public class ItemBlockLore extends ItemBlock {
if(this.field_150939_a == ModBlocks.barrel_corroded) {
list.add(EnumChatFormatting.AQUA + "Capacity: 6,000mB");
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids");
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
list.add(EnumChatFormatting.RED + "Leaky");
}
@ -51,16 +51,24 @@ public class ItemBlockLore extends ItemBlock {
list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB");
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids");
list.add(EnumChatFormatting.YELLOW + "Cannot store highly corrosive fluids properly");
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
}
if(this.field_150939_a == ModBlocks.barrel_antimatter) {
list.add(EnumChatFormatting.AQUA + "Capacity: 16,000mB");
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
list.add(EnumChatFormatting.GREEN + "Can store corrosive fluids");
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
list.add(EnumChatFormatting.GREEN + "Can store antimatter");
}
if(this.field_150939_a == ModBlocks.barrel_tcalloy) {
list.add(EnumChatFormatting.AQUA + "Capacity: 24,000mB");
list.add(EnumChatFormatting.GREEN + "Can store hot fluids");
list.add(EnumChatFormatting.GREEN + "Can store highly corrosive fluids");
list.add(EnumChatFormatting.YELLOW + "Cannot store antimatter");
}
if(this.field_150939_a == ModBlocks.meteor_battery) {
list.add("Provides infinite charge to tesla coils");
}

View File

@ -20,123 +20,111 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class ItemFluidIdentifier extends Item {
IIcon overlayIcon;
public ItemFluidIdentifier()
{
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
public ItemFluidIdentifier() {
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
/*@Override
public String getUnlocalizedName(ItemStack stack)
{
int i = stack.getItemDamage();
return super.getUnlocalizedName() + "." + FluidType.getEnum(i).getName();
}*/
public ItemStack getContainerItem(ItemStack stack) {
return stack.copy();
}
public boolean hasContainerItem() {
return true;
}
public boolean doesContainerItemLeaveCraftingGrid(ItemStack stack)
{
return false;
}
/*
* @Override public String getUnlocalizedName(ItemStack stack) { int i =
* stack.getItemDamage(); return super.getUnlocalizedName() + "." +
* FluidType.getEnum(i).getName(); }
*/
public ItemStack getContainerItem(ItemStack stack) {
return stack.copy();
}
public boolean hasContainerItem() {
return true;
}
public boolean doesContainerItemLeaveCraftingGrid(ItemStack stack) {
return false;
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tabs, List list)
{
for (int i = 0; i < FluidType.values().length; ++i)
{
list.add(new ItemStack(item, 1, i));
}
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool)
{
if(!(stack.getItem() instanceof ItemFluidIdentifier))
return;
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tabs, List list) {
for(int i = 0; i < FluidType.values().length; ++i) {
if(!FluidType.values()[i].hasNoContainer()) {
list.add(new ItemStack(item, 1, i));
}
}
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
if(!(stack.getItem() instanceof ItemFluidIdentifier))
return;
list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name")));
list.add("");
list.add("Universal fluid identifier for:");
list.add(" " + I18n.format(FluidType.getEnum(stack.getItemDamage()).getUnlocalizedName()));
list.add("Universal fluid identifier for:");
list.add(" " + I18n.format(FluidType.getEnum(stack.getItemDamage()).getUnlocalizedName()));
}
public static FluidType getType(ItemStack stack) {
if(stack != null && stack.getItem() instanceof ItemFluidIdentifier)
return FluidType.getEnum(stack.getItemDamage());
else
return FluidType.NONE;
}
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3)
{
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f1, float f2, float f3) {
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityFluidDuct) {
if(!world.isRemote) {
TileEntityFluidDuct duct = (TileEntityFluidDuct)te;
TileEntityFluidDuct duct = (TileEntityFluidDuct) te;
duct.type = FluidType.getEnum(stack.getItemDamage());
}
player.swingItem();
}
return false;
}
}
@Override
@Override
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses()
{
return true;
}
public boolean requiresMultipleRenderPasses() {
return true;
}
@Override
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister p_94581_1_)
{
super.registerIcons(p_94581_1_);
public void registerIcons(IIconRegister p_94581_1_) {
super.registerIcons(p_94581_1_);
this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_identifier_overlay");
}
@Override
this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_identifier_overlay");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_)
{
return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_);
}
public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) {
return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_);
}
@Override
@Override
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack stack, int p_82790_2_)
{
if (p_82790_2_ == 0)
{
return 16777215;
}
else
{
int j = FluidType.getEnum(stack.getItemDamage()).getMSAColor();
public int getColorFromItemStack(ItemStack stack, int p_82790_2_) {
if(p_82790_2_ == 0) {
return 16777215;
} else {
int j = FluidType.getEnum(stack.getItemDamage()).getMSAColor();
if (j < 0)
{
j = 16777215;
}
if(j < 0) {
j = 16777215;
}
return j;
}
}
return j;
}
}
}

View File

@ -13,83 +13,73 @@ import net.minecraft.util.IIcon;
import net.minecraft.util.StatCollector;
public class ItemFluidTank extends Item {
IIcon overlayIcon;
public ItemFluidTank()
{
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
public ItemFluidTank() {
this.setHasSubtypes(true);
this.setMaxDamage(0);
}
@Override
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tabs, List list)
{
for (int i = 1; i < FluidType.values().length; ++i)
{
list.add(new ItemStack(item, 1, i));
}
}
public void getSubItems(Item item, CreativeTabs tabs, List list) {
for(int i = 1; i < FluidType.values().length; ++i) {
if(!FluidType.values()[i].hasNoContainer()) {
list.add(new ItemStack(item, 1, i));
}
}
}
public String getItemStackDisplayName(ItemStack stack)
{
String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim();
String s1 = ("" + StatCollector.translateToLocal(FluidType.getEnum(stack.getItemDamage()).getUnlocalizedName())).trim();
public String getItemStackDisplayName(ItemStack stack) {
String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim();
String s1 = ("" + StatCollector.translateToLocal(FluidType.getEnum(stack.getItemDamage()).getUnlocalizedName())).trim();
if (s1 != null)
{
s = s + " " + s1;
}
if(s1 != null) {
s = s + " " + s1;
}
return s;
}
return s;
}
@Override
@Override
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses()
{
return true;
}
public boolean requiresMultipleRenderPasses() {
return true;
}
@Override
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister p_94581_1_)
{
super.registerIcons(p_94581_1_);
public void registerIcons(IIconRegister p_94581_1_) {
super.registerIcons(p_94581_1_);
if(this == ModItems.fluid_tank_full)
this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_overlay");
if(this == ModItems.fluid_barrel_full)
this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_barrel_overlay");
}
@Override
if(this == ModItems.fluid_tank_full)
this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_overlay");
if(this == ModItems.fluid_barrel_full)
this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_barrel_overlay");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_)
{
return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_);
}
public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_) {
return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_);
}
@Override
@Override
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack stack, int p_82790_2_)
{
if (p_82790_2_ == 0)
{
return 16777215;
}
else
{
int j = FluidType.getEnum(stack.getItemDamage()).getMSAColor();
public int getColorFromItemStack(ItemStack stack, int p_82790_2_) {
if(p_82790_2_ == 0) {
return 16777215;
} else {
int j = FluidType.getEnum(stack.getItemDamage()).getMSAColor();
if (j < 0)
{
j = 16777215;
}
if(j < 0) {
j = 16777215;
}
return j;
}
}
return j;
}
}
}

View File

@ -0,0 +1,23 @@
package com.hbm.items.tool;
import api.hbm.block.IScrewable;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemScrewdriver extends Item {
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) {
Block b = world.getBlock(x, y, z);
if(b instanceof IScrewable) {
return ((IScrewable)b).onScrew(world, player, x, y, z, side, fX, fY, fZ);
}
return false;
}
}

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings {
public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (3894)";
public static final String VERSION = "1.0.27 BETA (3899)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -1182,6 +1182,13 @@ public class ClientProxy extends ServerProxy {
player.attackedAtYaw = 0F;
}
if("properJolt".equals(type)) {
player.hurtTime = data.getInteger("time");
player.maxHurtTime = data.getInteger("maxTime");
player.attackedAtYaw = 0F;
}
if("sweat".equals(type)) {
Entity e = world.getEntityByID(data.getInteger("entity"));

View File

@ -202,6 +202,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blade_tungsten, 2), new Object[] { "IP", "TP", "TI", 'P', "plateTitanium", 'T', "ingotTitanium", 'I', "ingotTungsten" }));
GameRegistry.addRecipe(new ItemStack(ModItems.turbine_tungsten, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_tungsten, 'S', ModItems.ingot_dura_steel });
GameRegistry.addRecipe(new ItemStack(ModItems.ring_starmetal, 1), new Object[] { " S ", "S S", " S ", 'S', ModItems.ingot_starmetal });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.flywheel_beryllium, 1), new Object[] { "BBB", "BTB", "BBB", 'B', "blockBeryllium", 'T', ModItems.bolt_compound }));
ItemStack infinity = new ItemStack(Items.enchanted_book);
EnchantmentUtil.addEnchantment(infinity, Enchantment.infinity, 1);
@ -680,6 +681,7 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', "plateAluminum" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', "plateIron", 'P', "ingotIron" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', "plateSteel", 'P', "ingotSteel" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', "plateTitanium" }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IPI", "IPI", 'I', ModItems.plate_saturnite, 'P', ModItems.coil_advanced_torus });
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', "ingotIron", 'P', "ingotPolymer", 'T', ModBlocks.machine_transformer, 'W', "plankWood" }));
GameRegistry.addRecipe(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 });
@ -928,6 +930,7 @@ public class CraftingManager {
GameRegistry.addSmelting(ModItems.powder_dineutronium, new ItemStack(ModItems.ingot_dineutronium), 5.0F);
GameRegistry.addSmelting(ModItems.powder_asbestos, new ItemStack(ModItems.ingot_asbestos), 1.0F);
GameRegistry.addSmelting(ModItems.powder_zirconium, new ItemStack(ModItems.ingot_zirconium), 1.0F);
GameRegistry.addSmelting(ModItems.powder_tcalloy, new ItemStack(ModItems.ingot_tcalloy), 1.0F);
GameRegistry.addSmelting(ModItems.powder_coal, new ItemStack(ModItems.coke), 1.0F);
GameRegistry.addSmelting(ModItems.briquette_lignite, new ItemStack(ModItems.coke), 1.0F);

View File

@ -1088,8 +1088,11 @@ public class MainRegistry {
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.particle_aschrab), new ItemStack(ModItems.particle_empty), FluidType.ASCHRAB, 1000));
for(int i = 1; i < FluidType.values().length; i++) {
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, i), new ItemStack(ModItems.fluid_tank_empty), FluidType.getEnum(i), 1000));
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), FluidType.getEnum(i), 16000));
if(!FluidType.values()[i].hasNoContainer()) {
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, i), new ItemStack(ModItems.fluid_tank_empty), FluidType.getEnum(i), 1000));
FluidContainerRegistry.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), FluidType.getEnum(i), 16000));
}
}
TileEntityMachineReactorLarge.registerFuelEntry(1, ReactorFuelType.URANIUM, ModItems.nugget_uranium_fuel);

View File

@ -47,7 +47,9 @@ public abstract class ItemRenderBase implements IItemRenderer {
GL11.glScaled(1.5, 1.5, 1.5);
GL11.glScaled(0.25, 0.25, 0.25);
GL11.glRotated(90, 0, 1, 0);
if(type != ItemRenderType.EQUIPPED)
GL11.glRotated(90, 0, 1, 0);
renderNonInv();
}
renderCommon();

View File

@ -962,6 +962,22 @@ public class ItemRenderLibrary {
bindTexture(ResourceManager.waste_drum_tex);
ResourceManager.waste_drum.renderAll();
}});
renderers.put(Item.getItemFromBlock(ModBlocks.machine_chungus), new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0.5, 0, 0);
GL11.glScaled(2.5, 2.5, 2.5);
}
public void renderCommon() {
GL11.glScaled(0.5, 0.5, 0.5);
GL11.glRotated(90, 0, 1, 0);
bindTexture(ResourceManager.chungus_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.chungus.renderPart("Body");
ResourceManager.chungus.renderPart("Lever");
ResourceManager.chungus.renderPart("Blades");
GL11.glShadeModel(GL11.GL_FLAT);
}});
}
private static void bindTexture(ResourceLocation res) {

View File

@ -17,7 +17,7 @@ public class RenderChungus extends TileEntitySpecialRenderer {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glRotatef(90, 0F, 1F, 0F);
@ -36,24 +36,29 @@ public class RenderChungus extends TileEntitySpecialRenderer {
break;
}
TileEntityChungus turbine = (TileEntityChungus) tile;
GL11.glTranslated(0, 0, -3);
bindTexture(ResourceManager.chungus_tex);
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.chungus.renderPart("Body");
GL11.glPushMatrix();
GL11.glTranslated(0, 0, 4.5);
GL11.glRotatef(15 - (turbine.tanks[0].getTankType().ordinal() - 2) * 10, 1, 0, 0);
GL11.glTranslated(0, 0, -4.5);
ResourceManager.chungus.renderPart("Lever");
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
TileEntityChungus turbine = (TileEntityChungus) tile;
GL11.glTranslated(0, 1, 0);
GL11.glRotatef(turbine.lastRotor + (turbine.rotor - turbine.lastRotor) * f, 0, 0, 1);
GL11.glTranslated(0, -1, 0);
GL11.glTranslated(0, 2.5, 0);
GL11.glRotatef(turbine.lastRotor + (turbine.rotor - turbine.lastRotor) * f, 0, 0, -1);
GL11.glTranslated(0, -2.5, 0);
ResourceManager.chungus.renderPart("Blades");
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.ModBlocks;
import com.hbm.handler.FluidTypeHandler.FluidTrait;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidSource;
@ -60,7 +61,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
Block b = this.getBlockType();
//for when you fill antimatter into a matter tank
if(b != ModBlocks.barrel_antimatter && tank.getTankType().isAntimatter()) {
if(b != ModBlocks.barrel_antimatter && tank.getTankType().traits.contains(FluidTrait.AMAT)) {
worldObj.func_147480_a(xCoord, yCoord, zCoord, false);
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true);
}
@ -72,7 +73,8 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc
}
//for when you fill corrosive liquid into an iron tank
if(b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) {
if((b == ModBlocks.barrel_iron && tank.getTankType().isCorrosive()) ||
(b == ModBlocks.barrel_steel && tank.getTankType().traits.contains(FluidTrait.CORROSIVE_2))) {
ItemStack[] copy = this.slots.clone();
this.slots = new ItemStack[6];
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.barrel_corroded);

View File

@ -2,6 +2,7 @@ package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.hbm.blocks.BlockDummyable;
import com.hbm.handler.FluidTypeHandler.FluidType;
@ -29,7 +30,7 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl
public long power;
public static final long maxPower = 100000000000L;
private boolean shouldTurn;
private int turnTimer;
public float rotor;
public float lastRotor;
@ -69,25 +70,44 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl
if(power > maxPower)
power = maxPower;
shouldTurn = cycles > 0;
turnTimer--;
if(cycles > 0)
turnTimer = 25;
this.fillFluidInit(tanks[1].getTankType());
this.ffgeuaInit();
NBTTagCompound data = new NBTTagCompound();
data.setLong("power", power);
data.setBoolean("operational", shouldTurn);
data.setInteger("type", tanks[0].getTankType().ordinal());
data.setInteger("operational", turnTimer);
this.networkPack(data, 150);
} else {
this.lastRotor = this.rotor;
if(shouldTurn) {
if(turnTimer > 0) {
this.rotor += 30F;
this.rotor += 25F;
if(this.rotor >= 360) {
this.rotor -= 360;
this.lastRotor -= 360;
}
Random rand = worldObj.rand;
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
ForgeDirection side = dir.getRotation(ForgeDirection.UP);
for(int i = 0; i < 10; i++) {
worldObj.spawnParticle("cloud",
xCoord + 0.5 + dir.offsetX * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetX * 0.65,
yCoord + 2.5 + rand.nextGaussian() * 0.65,
zCoord + 0.5 + dir.offsetZ * (rand.nextDouble() + 1.25) + rand.nextGaussian() * side.offsetZ * 0.65,
-dir.offsetX * 0.2, 0, -dir.offsetZ * 0.2);
}
}
}
}
@ -99,7 +119,8 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl
@Override
public void networkUnpack(NBTTagCompound data) {
this.power = data.getLong("power");
this.shouldTurn = data.getBoolean("operational");
this.turnTimer = data.getInteger("operational");
this.tanks[0].setTankType(FluidType.values()[data.getInteger("type")]);
}
@Override
@ -126,7 +147,7 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl
@Override
public void ffgeuaInit() {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
ffgeua(xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, getTact());
ffgeua(xCoord - dir.offsetX * 11, yCoord, zCoord - dir.offsetZ * 11, getTact());
}
@Override
@ -135,8 +156,8 @@ public class TileEntityChungus extends TileEntity implements IFluidAcceptor, IFl
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
dir = dir.getRotation(ForgeDirection.UP);
fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, getTact(), type);
fillFluid(xCoord + dir.offsetX * -2, yCoord, zCoord + dir.offsetZ * -2, getTact(), type);
fillFluid(xCoord + dir.offsetX * 3, yCoord, zCoord + dir.offsetZ * 3, getTact(), type);
fillFluid(xCoord + dir.offsetX * -3, yCoord, zCoord + dir.offsetZ * -3, getTact(), type);
}
@Override

View File

@ -17,6 +17,7 @@ public class RBMKDials {
public static final String KEY_REACTIVITY_MOD = "dialReactivityMod";
public static final String KEY_SAVE_DIALS = "dialSaveDials";
public static final String KEY_OUTGASSER_MOD = "dialOutgasserSpeedMod";
public static final String KEV_SURGE_MOD = "dialControlSurgeMod";
public static void createDials(World world) {
GameRules rules = world.getGameRules();
@ -27,19 +28,20 @@ public class RBMKDials {
rules.setOrCreateGameRule(KEY_FUEL_DIFFUSION_MOD, "1.0");
rules.setOrCreateGameRule(KEY_HEAT_PROVISION, "0.2");
rules.setOrCreateGameRule(KEY_COLUMN_HEIGHT, "4");
rules.setOrCreateGameRule(KEY_PERMANENT_SCRAP, "false");
rules.setOrCreateGameRule(KEY_PERMANENT_SCRAP, "true");
rules.setOrCreateGameRule(KEY_BOILER_HEAT_CONSUMPTION, "0.1");
rules.setOrCreateGameRule(KEY_CONTROL_SPEED_MOD, "1.0");
rules.setOrCreateGameRule(KEY_REACTIVITY_MOD, "1.0");
rules.setOrCreateGameRule(KEY_SAVE_DIALS, "true");
rules.setOrCreateGameRule(KEY_OUTGASSER_MOD, "1.0");
rules.setOrCreateGameRule(KEV_SURGE_MOD, "1.0");
}
}
/**
* Returns the amount of heat per tick removed from components passively
* @param world
* @return
* @return >0
*/
public static double getPassiveCooling(World world) {
return Math.max(shittyWorkaroundParseDouble(world.getGameRules().getGameRuleStringValue(KEY_PASSIVE_COOLING), 5.0D), 0.0D);
@ -102,7 +104,7 @@ public class RBMKDials {
/**
* A multiplier for how quickly the control rods move.
* @param world
* @return
* @return >0
*/
public static double getControlSpeed(World world) {
return Math.max(shittyWorkaroundParseDouble(world.getGameRules().getGameRuleStringValue(KEY_CONTROL_SPEED_MOD), 1.0D), 0.0D);
@ -111,7 +113,7 @@ public class RBMKDials {
/**
* A multiplier for how much flux the rods give out.
* @param world
* @return
* @return >0
*/
public static double getReactivityMod(World world) {
return Math.max(shittyWorkaroundParseDouble(world.getGameRules().getGameRuleStringValue(KEY_REACTIVITY_MOD), 1.0D), 0.0D);
@ -120,12 +122,21 @@ public class RBMKDials {
/**
* A multiplier for how much flux the rods give out.
* @param world
* @return
* @return >0
*/
public static double getOutgasserMod(World world) {
return Math.max(shittyWorkaroundParseDouble(world.getGameRules().getGameRuleStringValue(KEY_OUTGASSER_MOD), 1.0D), 0.0D);
}
/**
* A multiplier for how high the power surge goes when inserting control rods
* @param world
* @return >0
*/
public static double getSurgeMod(World world) {
return Math.max(shittyWorkaroundParseDouble(world.getGameRules().getGameRuleStringValue(KEV_SURGE_MOD), 1.0D), 0.0D);
}
//why make the double representation accessible in a game rule when you can just force me to add a second pointless parsing operation?
public static double shittyWorkaroundParseDouble(String s, double def) {

View File

@ -46,8 +46,16 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
public double heat;
public boolean hasLid() {
if(!isLidRemovable())
return true;
return this.getBlockMetadata() != RBMKBase.DIR_NO_LID.ordinal() + RBMKBase.offset;
}
public boolean isLidRemovable() {
return true;
}
/**
* Approx melting point of steel
@ -125,8 +133,9 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke
for(TileEntityRBMKBase rbmk : rec) {
double delta = targetHeat - rbmk.heat;
rbmk.heat += delta * stepSize;
rbmk.markDirty();
}
this.markDirty();
}
}

View File

@ -123,7 +123,9 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon
TileEntity te = worldObj.getTileEntity(targetX + x, targetY, targetZ + z);
if(te instanceof TileEntityRBMKControlManual) {
((TileEntityRBMKControlManual)te).targetLevel = MathHelper.clamp_double(data.getDouble("level"), 0, 1);
TileEntityRBMKControlManual rod = (TileEntityRBMKControlManual) te;
rod.startingLevel = rod.level;
rod.setTarget(MathHelper.clamp_double(data.getDouble("level"), 0, 1));
te.markDirty();
}
}

View File

@ -1,6 +1,7 @@
package com.hbm.tileentity.machine.rbmk;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.rbmk.RBMKBase;
import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType;
import cpw.mods.fml.relauncher.Side;
@ -20,9 +21,10 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
public TileEntityRBMKControl() {
super(0);
}
public boolean hasLid() {
return true;
@Override
public boolean isLidRemovable() {
return false;
}
@Override
@ -54,6 +56,14 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
super.updateEntity();
}
public void setTarget(double target) {
this.targetLevel = target;
}
public double getMult() {
return this.level;
}
@Override
public int trackingRange() {
return 150;
@ -83,6 +93,8 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
@Override
public void onMelt(int reduce) {
RBMKBase.dropLids = false;
reduce = MathHelper.clamp_int(reduce, 1, 3);
@ -111,6 +123,8 @@ public abstract class TileEntityRBMKControl extends TileEntityRBMKSlottedBase {
spawnDebris(DebrisType.ROD);
}
RBMKBase.dropLids = true;
//control rods will not spawn lid projectiles since the lid is already part of the rod projectiles
//super.onMelt(reduce);
}

View File

@ -10,12 +10,30 @@ import net.minecraft.util.Vec3;
public class TileEntityRBMKControlManual extends TileEntityRBMKControl implements IControlReceiver {
public RBMKColor color;
public double startingLevel;
@Override
public String getName() {
return "container.rbmkControl";
}
@Override
public void setTarget(double target) {
this.targetLevel = target;
this.startingLevel = this.level;
}
public double getMult() {
double surge = 0;
if(this.targetLevel < this.startingLevel && this.level != this.targetLevel) {
surge = Math.sin(Math.pow(this.level, 15) * Math.PI) * (this.startingLevel - this.targetLevel) * RBMKDials.getSurgeMod(worldObj);
}
return this.level + surge;
}
@Override
public boolean hasPermission(EntityPlayer player) {
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
@ -25,7 +43,7 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement
public void receiveControl(NBTTagCompound data) {
if(data.hasKey("level")) {
this.targetLevel = data.getDouble("level");
this.setTarget(data.getDouble("level"));
}
if(data.hasKey("color")) {

View File

@ -142,10 +142,10 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
if(te instanceof TileEntityRBMKControl) {
TileEntityRBMKControl control = (TileEntityRBMKControl)te;
if(control.level == 0.0D)
if(control.getMult() == 0.0D)
break;
flux *= control.level;
flux *= control.getMult();
continue;
}

View File

@ -704,6 +704,7 @@ item.billet_pu238.name=Plutonium-238-Billet
item.billet_pu238be.name=Pu238Be-Billet
item.billet_pu239.name=Plutonium-239-Billet
item.billet_pu240.name=Plutonium-240-Billet
item.billet_pu241.name=Plutonium-241-Billet
item.billet_plutonium.name=Plutoniumbillet
item.billet_plutonium_fuel.name=Plutoniumkernbrennstoffbillet
item.billet_schrabidium.name=Schrabidiumbillet
@ -1118,6 +1119,7 @@ item.fluid_identifier.name=Flüssigkeits-Kennzeichnung
item.fluid_tank_empty.name=Leere universelle Flüssigkeitszelle
item.fluid_tank_full.name=Universelle Flüssigkeitszelle:
item.fluorite.name=Fluorit
item.flywheel_beryllium.name=Berylliumschwungscheibe
item.fmn.name=Flunitrazepamtablette
item.folly_bullet.name=12,8cm Sternenmetall-Hochenergiegeschoss
item.folly_bullet_du.name=12,8cm DU-Geschoss
@ -1415,6 +1417,7 @@ item.ingot_solinium.name=Soliniumbarren
item.ingot_starmetal.name=§9Sternenmetallbarren§r
item.ingot_steel.name=Stahlbarren
item.ingot_steel_dusted.name=Bestäubter Stahlbarren
item.ingot_tcalloy.name=Technetiumstahlbarren
item.ingot_technetium.name=Technetium-99-Barren
item.ingot_th232.name=Thorium-232-Barren
item.ingot_thorium_fuel.name=Thoriumkernbrennstoffbarren
@ -1935,6 +1938,7 @@ item.powder_spark_mix.name=Sparkmischung
item.powder_steel.name=Stahlstaub
item.powder_steel_tiny.name=Kleiner Haufen Stahlstaub
item.powder_strontium.name=Strontiumstaub
item.powder_tcalloy.name=Technetiumstahlstaub
item.powder_tennessine.name=Tennessinstaub
item.powder_thermite.name=Thermit
item.powder_thorium.name=Thoriumstaub
@ -1966,11 +1970,13 @@ item.rbmk_fuel_drx.name=§cDigamma-RBMK-Kernbrennstoff
item.rbmk_fuel_empty.name=Leere RBMK Kernbrennstoffstäbe
item.rbmk_fuel_heaus.name=HEAus-RBMK-Kernbrennstoff
item.rbmk_fuel_hes.name=HES-RBMK-Kernbrennstoff
item.rbmk_fuel_hep.name=HEP-239-RBMK-Kernbrennstoff
item.rbmk_fuel_hep241.name=HEP-241-RBMK-Kernbrennstoff
item.rbmk_fuel_leaus.name=LEAus-RBMK-Kernbrennstoff
item.rbmk_fuel_lep.name=LEP-RBMK-Kernbrennstoff
item.rbmk_fuel_lep.name=LEP-239-RBMK-Kernbrennstoff
item.rbmk_fuel_les.name=LES-RBMK-Kernbrennstoff
item.rbmk_fuel_men.name=MEN-RBMK-Kernbrennstoff
item.rbmk_fuel_mep.name=MEP-RBMK-Kernbrennstoff
item.rbmk_fuel_mep.name=MEP-239-RBMK-Kernbrennstoff
item.rbmk_fuel_mes.name=MES-RBMK-Kernbrennstoff
item.rbmk_fuel_meu.name=MEU-RBMK-Kernbrennstoff
item.rbmk_fuel_mox.name=MOX-RBMK-Kernbrennstoff
@ -2464,6 +2470,7 @@ tile.barrel_corroded.name=Verrostetes Fass
tile.barrel_iron.name=Eisenfass
tile.barrel_plastic.name=Sicheres Fass™
tile.barrel_steel.name=Stahlfass
tile.barrel_tcalloy.name=Technetiumstahlfass
tile.barricade.name=Sandsäcke
tile.blast_door.name=Abschluss-Sprengtür
tile.block_actinium.name=Actiniumblock
@ -2769,6 +2776,7 @@ tile.machine_boiler_off.name=Dampfkessel
tile.machine_boiler_on.name=Dampfkessel
tile.machine_centrifuge.name=Zentrifuge
tile.machine_chemplant.name=Chemiefabrik
tile.machine_chungus.name=Leviathan-Dampfturbine
tile.machine_coal_off.name=Verbrennungsgenerator
tile.machine_coal_on.name=Verbrennungsgenerator
tile.machine_combine_factory.name=CMB-Stahl Hochofen
@ -3120,7 +3128,7 @@ trait.rbmx.skinTemp=Außenentropie: %s
trait.rbmx.source=Selbstverbrennend
trait.rbmx.splitsInto=Verlässt nach: %s
trait.rbmx.splitsWith=Kommt von: %s
trait.rbmx.xenon=Belivergiftung: %s
trait.rbmx.xenon=Bleivergiftung: %s
trait.rbmx.xenonBurn=Blei-Verbr.-Funkion: %s
trait.rbmx.xenonGen=Blei-Erzg.-Funktion: %s

View File

@ -772,6 +772,7 @@ item.billet_pu238.name=Plutonium-238 Billet
item.billet_pu238be.name=Pu238Be Billet
item.billet_pu239.name=Plutonium-239 Billet
item.billet_pu240.name=Plutonium-240 Billet
item.billet_pu241.name=Plutonium-241 Billet
item.billet_plutonium.name=Plutonium Billet
item.billet_plutonium_fuel.name=Plutonium Fuel Billet
item.billet_schrabidium.name=Schrabidium Billet
@ -1186,6 +1187,7 @@ item.fluid_identifier.name=Fluid Identifier
item.fluid_tank_empty.name=Empty Universal Fluid Tank
item.fluid_tank_full.name=Universal Fluid Tank:
item.fluorite.name=Fluorite
item.flywheel_beryllium.name=Beryllium Flywheel
item.fmn.name=Flunitrazepam Tablet
item.folly_bullet.name=12.8cm Starmetal High-Energy Shell
item.folly_bullet_du.name=12.8cm DU-Shell
@ -1483,6 +1485,7 @@ item.ingot_solinium.name=Solinium Ingot
item.ingot_starmetal.name=§9Starmetal Ingot§r
item.ingot_steel.name=Steel Ingot
item.ingot_steel_dusted.name=Dusted Steel Ingot
item.ingot_tcalloy.name=Technetium Steel Ingot
item.ingot_technetium.name=Technetium-99 Ingot
item.ingot_th232.name=Thorium-232 Ingot
item.ingot_thorium_fuel.name=Ingot of Thorium Fuel
@ -2003,6 +2006,7 @@ item.powder_spark_mix.name=Spark Blend
item.powder_steel.name=Steel Powder
item.powder_steel_tiny.name=Tiny Pile of Steel Powder
item.powder_strontium.name=Strontium Powder
item.powder_tcalloy.name=Technetium Steel Powder
item.powder_tennessine.name=Tennessine Powder
item.powder_thermite.name=Thermite
item.powder_thorium.name=Thorium Powder
@ -2034,11 +2038,13 @@ item.rbmk_fuel_drx.name=§cDigamma RBMK Fuel Rod§r
item.rbmk_fuel_empty.name=Empty RBMK Fuel Rod
item.rbmk_fuel_heaus.name=HEAus RBMK Fuel Rod
item.rbmk_fuel_hes.name=HES RBMK Fuel Rod
item.rbmk_fuel_hep.name=HEP-239 RBMK Fuel Rod
item.rbmk_fuel_hep241.name=HEP-241 RBMK Fuel Rod
item.rbmk_fuel_leaus.name=LEAus RBMK Fuel Rod
item.rbmk_fuel_lep.name=LEP RBMK Fuel Rod
item.rbmk_fuel_lep.name=LEP-239 RBMK Fuel Rod
item.rbmk_fuel_les.name=LES RBMK Fuel Rod
item.rbmk_fuel_men.name=MEN RBMK Fuel Rod
item.rbmk_fuel_mep.name=MEP RBMK Fuel Rod
item.rbmk_fuel_mep.name=MEP-239 RBMK Fuel Rod
item.rbmk_fuel_mes.name=MES RBMK Fuel Rod
item.rbmk_fuel_meu.name=MEU RBMK Fuel Rod
item.rbmk_fuel_mox.name=MOX RBMK Fuel Rod
@ -2532,6 +2538,7 @@ tile.barrel_corroded.name=Corroded Barrel
tile.barrel_iron.name=Iron Barrel
tile.barrel_plastic.name=Safe Barrel™
tile.barrel_steel.name=Steel Barrel
tile.barrel_tcalloy.name=Technetium Steel Barrel
tile.barricade.name=Sand Bags
tile.blast_door.name=Sliding Blast Door
tile.block_actinium.name=Block of Actinium
@ -2853,6 +2860,7 @@ tile.machine_boiler_off.name=Boiler
tile.machine_boiler_on.name=Boiler
tile.machine_centrifuge.name=Centrifuge
tile.machine_chemplant.name=Chemical Plant
tile.machine_chungus.name=Leviathan Steam Turbine
tile.machine_coal_off.name=Combustion Generator
tile.machine_coal_on.name=Combustion Generator
tile.machine_combine_factory.name=CMB Steel Furnace

File diff suppressed because it is too large Load Diff

View File

@ -36,6 +36,7 @@
"block.screm": {"category": "block", "sounds": ["screm/scream1", "screm/scream01", "screm/scream2", "screm/scream02", "screm/scream3", "screm/scream03", "screm/scream4", "screm/scream04", "screm/scream5", "screm/scream05", "screm/scream6", "screm/scream06", "screm/scream7", "screm/scream07", "screm/scream08", "screm/scream09", "screm/scream10", "screm/scream11", "screm/scream12", "screm/scream13", "screm/scream14", "screm/scream15", "screm/scream16", "screm/scream17", "screm/scream18", "screm/scream19", "screm/scream20", "screm/scream21", "screm/scream22", "screm/scream23", "screm/scream24", "screm/scream25"]},
"block.rbmk_explosion": {"category": "block", "sounds": [{"name": "block/rbmk_explosion", "stream": false}]},
"block.rbmk_az5_cover": {"category": "block", "sounds": [{"name": "block/rbmk_az5_cover", "stream": false}]},
"block.chungusLever": {"category": "block", "sounds": [{"name": "block/chungusLever", "stream": false}]},
"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: 877 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -3,7 +3,7 @@
"modid": "hbm",
"name": "Hbm's Nuclear Tech",
"description": "A mod that adds weapons, nuclear themed stuff and machines",
"version":"1.0.27-3894",
"version":"1.0.27-3899",
"mcversion": "1.7.10",
"url": "",
"updateUrl": "",