diff --git a/changelog b/changelog index 771c4585a..71781d6b4 100644 --- a/changelog +++ b/changelog @@ -1,8 +1,32 @@ +## Added +* Plushies + ## Changed * The fluid burner, heat exchanging heater and cooling tower now use the single steel pipe items instead of the larger steel pipes * Reduced the amount of condensers needed for crafting the cooling towers +* Liquefactors and solidifiers now have a base processing time of 5 seconds per operation (instead of 10) +* Added some info to the coltass about how the coltan deposit works +* Moved some NEI handlers around, fluid containers are now listed last and radiolysis is now listed right after cracking, since they have the same recipes +* The autocrafter's inputs are now limited to 4 items per slot +* Autocrafters can now receive stacked items again (except for items with containers), if they do not exceed the 4 item threshold +* Bedrock ores now produce bedrock ore fragments instead of straight outputs, one fragment is equivalent to a nugget + * Fragments also differ in stack size when produced, most primary fractions yield 9 (equal to the previous full powder), but things with lower demands/higher value like bismuth now yield substantially less +* The base speed of the large mining drill when mining bedrock has been reduced by 80%, it is now advisable to either invest in upgrades early on or use multiple drills +* The bedrock ore processor now has a base speed of 30 seconds +* Standard, special, HE artillery shells and most missiles now use updated explosion animations +* Decreased hardness of slag blocks +* Removed legacy circuits +* Removed a bunch of random unused items ## Fixed * Fixed crash caused by decontaminating items with the radiolysis machine * Fixed ICFs not forming correctly depending on the orientation -* Fixed electrolyzer metal recipe config not working \ No newline at end of file +* Fixed electrolyzer metal recipe config not working +* Fixed the meteor charms not working when used on helmets +* Fixed NEI handler for the ICF's consturction showing inconsistent values +* Fixed radiolysis recipes not showing up in NEI unless the usage recipes are loaded first +* Fixed autocrafter's grid not properly updating when using NEI drag and drop for the filter +* Fixed all carbon-based crucible materials having the wrong ID, this fix will shift IDs but prevent collisions with silicon +* Fixed primary bedrock ore fraction roasing yielding one extra pile of crumbs +* Fixed filing cabinets being unreasonably laggy due to the old packet code +* Fixed the secure access door taking way longer to craft than any other door \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/BlockMulti.java b/src/main/java/com/hbm/blocks/BlockMulti.java index 1741d9316..21930f6ff 100644 --- a/src/main/java/com/hbm/blocks/BlockMulti.java +++ b/src/main/java/com/hbm/blocks/BlockMulti.java @@ -31,8 +31,4 @@ public abstract class BlockMulti extends BlockBase implements IBlockMulti { list.add(new ItemStack(item, 1, i)); } } - - public String getUnlocalizedName(ItemStack stack) { - return this.getUnlocalizedName(); - } } diff --git a/src/main/java/com/hbm/blocks/IBlockMulti.java b/src/main/java/com/hbm/blocks/IBlockMulti.java index b0bf10ba6..067b2759e 100644 --- a/src/main/java/com/hbm/blocks/IBlockMulti.java +++ b/src/main/java/com/hbm/blocks/IBlockMulti.java @@ -1,9 +1,20 @@ package com.hbm.blocks; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; + public interface IBlockMulti { public int getSubCount(); + public default String getUnlocalizedName(ItemStack stack) { + return ((Block)this).getUnlocalizedName(); + } + + public default String getOverrideDisplayName(ItemStack stack) { + return null; + } + public default int rectify(int meta) { return Math.abs(meta % getSubCount()); } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ca511e9e3..51c055603 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -271,6 +271,7 @@ public class ModBlocks { public static Block pedestal; public static Block bobblehead; public static Block snowglobe; + public static Block plushie; public static Block hazmat; @@ -762,8 +763,6 @@ public class ModBlocks { public static Block cable_detector; public static Block cable_diode; public static Block machine_detector; - public static Block fluid_duct; - public static Block fluid_duct_solid; public static Block fluid_duct_neo; public static Block fluid_duct_box; public static Block fluid_duct_paintable; @@ -1426,7 +1425,7 @@ public class ModBlocks { block_semtex = new BlockPlasticExplosive(Material.tnt).setBlockName("block_semtex").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_semtex"); block_c4 = new BlockPlasticExplosive(Material.tnt).setBlockName("block_c4").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(2.0F).setBlockTextureName(RefStrings.MODID + ":block_c4"); block_smore = new BlockPillar(Material.rock, RefStrings.MODID + ":block_smore_top").setBlockName("block_smore").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_smore_side"); - block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); + block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(2.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); block_weidanium = new BlockBeaconable(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_weidanium"); @@ -1454,6 +1453,7 @@ public class ModBlocks { pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); + plushie = new BlockPlushie().setBlockName("plushie").setStepSound(Block.soundTypeCloth).setResistance(50_0000.0F).setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":hazmat"); gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(240.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); @@ -1879,8 +1879,6 @@ public class ModBlocks { cable_detector = new CableDetector(Material.iron).setBlockName("cable_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); cable_diode = new CableDiode(Material.iron).setBlockName("cable_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_diode"); machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); - fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); - fluid_duct_solid = new BlockFluidDuctSolid(Material.iron).setBlockName("fluid_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fluid_duct_solid"); fluid_duct_neo = new FluidDuctStandard(Material.iron).setBlockName("fluid_duct_neo").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pipe_neo"); fluid_duct_box = new FluidDuctBox(Material.iron).setBlockName("fluid_duct_box").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); fluid_duct_exhaust = new FluidDuctBoxExhaust(Material.iron).setBlockName("fluid_duct_exhaust").setStepSound(ModSoundTypes.pipe).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_box"); @@ -2600,6 +2598,7 @@ public class ModBlocks { GameRegistry.registerBlock(pedestal, pedestal.getUnlocalizedName()); GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); + GameRegistry.registerBlock(plushie, ItemBlockBase.class, plushie.getUnlocalizedName()); GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName()); GameRegistry.registerBlock(deco_rbmk, deco_rbmk.getUnlocalizedName()); GameRegistry.registerBlock(deco_rbmk_smooth, deco_rbmk_smooth.getUnlocalizedName()); @@ -3128,13 +3127,11 @@ public class ModBlocks { GameRegistry.registerBlock(cable_detector, cable_detector.getUnlocalizedName()); GameRegistry.registerBlock(cable_diode, ItemBlockBase.class, cable_diode.getUnlocalizedName()); GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); - GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); register(fluid_duct_neo); register(fluid_duct_box); register(fluid_duct_exhaust); register(fluid_duct_paintable); register(fluid_duct_gauge); - GameRegistry.registerBlock(fluid_duct_solid, fluid_duct_solid.getUnlocalizedName()); register(fluid_valve); register(fluid_switch); register(machine_drain); diff --git a/src/main/java/com/hbm/blocks/generic/BlockPlushie.java b/src/main/java/com/hbm/blocks/generic/BlockPlushie.java new file mode 100644 index 000000000..80a739a0b --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockPlushie.java @@ -0,0 +1,172 @@ +package com.hbm.blocks.generic; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.IBlockMulti; +import com.hbm.blocks.ITooltipProvider; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +public class BlockPlushie extends BlockContainer implements IBlockMulti, ITooltipProvider { + + public BlockPlushie() { + super(Material.cloth); + } + + @Override public int getRenderType() { return -1; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + @Override public Item getItemDropped(int i, Random rand, int j) { return null; } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + TileEntityPlushie entity = (TileEntityPlushie) world.getTileEntity(x, y, z); + if(entity != null) return new ItemStack(this, 1, entity.type.ordinal()); + return super.getPickBlock(target, world, x, y, z, player); + } + + @Override + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { + + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + if(!world.isRemote) { + TileEntityPlushie entity = (TileEntityPlushie) world.getTileEntity(x, y, z); + if(entity != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); + item.motionX = 0; + item.motionY = 0; + item.motionZ = 0; + world.spawnEntityInWorld(item); + } + } + harvesters.set(null); + } + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 1; i < PlushieType.values().length; i++) list.add(new ItemStack(item, 1, i)); + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + int meta = MathHelper.floor_double((double)((player.rotationYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15; + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + + TileEntityPlushie plushie = (TileEntityPlushie) world.getTileEntity(x, y, z); + plushie.type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length]; + plushie.markDirty(); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityPlushie(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(world.isRemote) { + TileEntityPlushie plushie = (TileEntityPlushie) world.getTileEntity(x, y, z); + plushie.squishTimer = 11; + return true; + } else { + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.squeakyToy", 0.25F, 1F); + return true; + } + } + + public static class TileEntityPlushie extends TileEntity { + + public PlushieType type = PlushieType.NONE; + public int squishTimer; + + @Override + public void updateEntity() { + if(squishTimer > 0) squishTimer--; + } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.type = PlushieType.values()[Math.abs(nbt.getByte("type")) % PlushieType.values().length]; + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setByte("type", (byte) type.ordinal()); + } + } + + public static enum PlushieType { + NONE( "NONE", null), + YOMI( "Yomi", "Hi! Can I be your rabbit friend?"), + NUMBERNINE( "Number Nine", "None of y'all deserve coal."); + + public String label; + public String inscription; + + private PlushieType(String label, String inscription) { + this.label = label; + this.inscription = inscription; + } + } + + @Override + public int getSubCount() { + return PlushieType.values().length; + } + + @Override + public String getOverrideDisplayName(ItemStack stack) { + PlushieType type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length]; + return StatCollector.translateToLocalFormatted(this.getUnlocalizedName() + ".name", type == PlushieType.NONE ? "" : type.label).trim(); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + PlushieType type = PlushieType.values()[Math.abs(stack.getItemDamage()) % PlushieType.values().length]; + if(type.inscription != null) list.add(type.inscription); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java index 4826057f4..e26b9d810 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java @@ -12,44 +12,38 @@ import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class MachinePuF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; public MachinePuF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,101 +56,41 @@ public class MachinePuF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_puf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(ModBlocks.machine_puf6_tank); + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_puf6); - + } else world.func_147480_a(x, y, z, true); } - - @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) - { - TileEntityMachinePuF6Tank tileentityfurnace = (TileEntityMachinePuF6Tank)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 (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; - - 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())); - - 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); - } - } - } - - 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_); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityMachinePuF6Tank entity = (TileEntityMachinePuF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; diff --git a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java index 5f8e45d39..e4ce120f8 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java @@ -12,44 +12,38 @@ import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class MachineUF6Tank extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; public MachineUF6Tank(Material p_i45386_1_) { super(p_i45386_1_); } - + @Override - public int getRenderType(){ + public int getRenderType() { return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - + @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconregister) { @@ -62,101 +56,41 @@ public class MachineUF6Tank extends BlockContainer implements IMultiblock { } @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_uf6_tank); - } - + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { + return Item.getItemFromBlock(ModBlocks.machine_uf6_tank); + } + @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { + + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } - if(i == 1) - { + if(i == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } - if(i == 2) - { + if(i == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } - if(i == 3) - { + if(i == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - + if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.uf6Dimension)) { MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.uf6Dimension, ModBlocks.dummy_block_uf6); - + } else world.func_147480_a(x, y, z, true); } - - @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) - { - TileEntityMachineUF6Tank tileentityfurnace = (TileEntityMachineUF6Tank)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 (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; - - 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())); - - 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); - } - } - } - - 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_); - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { + } else if(!player.isSneaking()) { TileEntityMachineUF6Tank entity = (TileEntityMachineUF6Tank) world.getTileEntity(x, y, z); - if(entity != null) - { + if(entity != null) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); } return true; diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java deleted file mode 100644 index 88e054bfd..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuct.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.ILookOverlay; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuct extends BlockContainer implements ILookOverlay { - - public BlockFluidDuct(Material p_i45386_1_) { - super(p_i45386_1_); - float p = 1F/16F; - this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); - this.useNeighborBrightness = true; - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - if(world.getTileEntity(x, y, z) instanceof TileEntityFluidDuct) { - TileEntityFluidDuct cable = (TileEntityFluidDuct)world.getTileEntity(x, y, z); - - if(cable != null) - { - float p = 1F/16F; - float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); - float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); - float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); - float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); - float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); - float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); - - this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); - } - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityFluidDuct(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java b/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java deleted file mode 100644 index 3674da7d1..000000000 --- a/src/main/java/com/hbm/blocks/network/BlockFluidDuctSolid.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.blocks.network; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.blocks.IBlockMultiPass; -import com.hbm.blocks.ILookOverlay; -import com.hbm.render.block.RenderBlockMultipass; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; -import com.hbm.util.I18nUtil; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; - -public class BlockFluidDuctSolid extends BlockContainer implements IBlockMultiPass, ILookOverlay { - - public BlockFluidDuctSolid(Material mat) { - super(mat); - } - - @Override - public TileEntity createNewTileEntity(World world, int meta) { - return new TileEntityFluidDuctSimple(); - } - - @SideOnly(Side.CLIENT) - private IIcon overlay; - - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister p_149651_1_) { - this.blockIcon = p_149651_1_.registerIcon(this.getTextureName()); - this.overlay = p_149651_1_.registerIcon(this.getTextureName() + "_overlay"); - } - - @Override - public int getPasses() { - return 2; - } - - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return RenderBlockMultipass.currentPass == 0 ? this.blockIcon : this.overlay; - } - - @Override - public int getRenderType(){ - return IBlockMultiPass.getRenderType(); - } - - @Override - @SideOnly(Side.CLIENT) - public int colorMultiplier(IBlockAccess world, int x, int y, int z) { - - if(RenderBlockMultipass.currentPass == 0) - return 0xffffff; - - TileEntityFluidDuctSimple te = (TileEntityFluidDuctSimple) world.getTileEntity(x, y, z); - - if(te != null) { - return te.getType().getColor(); - } - - return 0xffffff; - } - - @Override - public void printHook(Pre event, World world, int x, int y, int z) { - - TileEntity te = world.getTileEntity(x, y, z); - - if(!(te instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - List text = new ArrayList(); - text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName()); - ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); - } -} diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 6321aebff..5632a9dd6 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -535,6 +535,10 @@ public class MineralRecipes { addBillet(billet, ingot, nugget); } + public static void addBilletFragment(ItemStack billet, ItemStack nugget) { + GameRegistry.addRecipe(billet.copy(), new Object[] { "###", "###", '#', nugget }); + } + public static void addBillet(Item billet, Item nugget) { GameRegistry.addRecipe(new ItemStack(billet), new Object[] { "###", "###", '#', nugget }); GameRegistry.addShapelessRecipe(new ItemStack(nugget, 6), new Object[] { billet }); diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index 0c4af1770..d190636e0 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -95,7 +95,6 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(ItemToolAbilityFueled.getEmptyTool(ModItems.chainsaw), new Object[] { "CCH", "BBP", "CCE", 'H', STEEL.shell(), 'B', ModItems.blades_steel, 'P', ModItems.piston_selenium, 'C', ModBlocks.chain, 'E', ModItems.canister_empty }); //Misc - CraftingManager.addRecipeAuto(new ItemStack(ModItems.euphemium_stopper, 1), new Object[] { "I", "S", "S", 'I', EUPH.ingot(), 'S', KEY_STICK }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.crowbar, 1), new Object[] { "II", " I", " I", 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.bottle_opener, 1), new Object[] { "S", "P", 'S', STEEL.plate(), 'P', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(Items.saddle, 1), new Object[] { "LLL", "LRL", " S ", 'S', STEEL.ingot(), 'L', Items.leather, 'R', DictFrame.fromOne(ModItems.plant_item, EnumPlantType.ROPE) }); @@ -147,7 +146,7 @@ public class ToolRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_su }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_generic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.kit_toolbox_empty), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 6654eb051..d6a7a34d2 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -73,13 +73,11 @@ public class EntityMappings { addEntity(EntityMissileDrill.class, "entity_missile_drill", 1000); addEntity(EntityMissileMirv.class, "entity_missile_mirv", 1000); addEntity(EntityMIRV.class, "entity_mirvlet", 1000); - addEntity(EntitySmokeFX.class, "entity_smoke_fx", 1000); addEntity(EntityGrenadeNuclear.class, "entity_grenade_nuclear", 1000); addEntity(EntityBSmokeFX.class, "entity_b_smoke_fx", 1000); addEntity(EntityGrenadePlasma.class, "entity_grenade_plasma", 500); addEntity(EntityGrenadeTau.class, "entity_grenade_tau", 500); addEntity(EntityChopperMine.class, "entity_chopper_mine", 1000); - addEntity(EntityCombineBall.class, "entity_combine_ball", 1000); addEntity(EntityRainbow.class, "entity_rainbow", 1000); addEntity(EntityGrenadeLemon.class, "entity_grenade_lemon", 500); addEntity(EntityCloudFleija.class, "entity_cloud_fleija", 500); @@ -96,8 +94,6 @@ public class EntityMappings { addEntity(EntityLaserBeam.class, "entity_laser_beam", 1000); addEntity(EntityMinerBeam.class, "entity_miner_beam", 1000); addEntity(EntityRubble.class, "entity_rubble", 1000); - addEntity(EntityDSmokeFX.class, "entity_d_smoke_fx", 1000); - addEntity(EntitySSmokeFX.class, "entity_s_smoke_fx", 1000); addEntity(EntityShrapnel.class, "entity_shrapnel", 1000); addEntity(EntityGrenadeShrapnel.class, "entity_grenade_shrapnel", 250); addEntity(EntityBlackHole.class, "entity_black_hole", 250); @@ -109,7 +105,6 @@ public class EntityMappings { addEntity(EntitySparkBeam.class, "entity_spark_beam", 1000); addEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 1000); addEntity(EntityMissileDoomsdayRusted.class, "entity_missile_doomsday_rusted", 1000); - addEntity(EntityTSmokeFX.class, "entity_t_smoke_fx", 1000); addEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 1000); addEntity(EntityVortex.class, "entity_vortex", 250); addEntity(EntityMeteor.class, "entity_meteor", 250); diff --git a/src/main/java/com/hbm/entity/item/EntityMovingItem.java b/src/main/java/com/hbm/entity/item/EntityMovingItem.java index 50d39e160..56c291373 100644 --- a/src/main/java/com/hbm/entity/item/EntityMovingItem.java +++ b/src/main/java/com/hbm/entity/item/EntityMovingItem.java @@ -35,6 +35,7 @@ public class EntityMovingItem extends EntityMovingConveyorObject implements ICon public boolean interactFirst(EntityPlayer player) { if(!worldObj.isRemote && player.inventory.addItemStackToInventory(this.getItemStack().copy())) { + player.inventoryContainer.detectAndSendChanges(); this.setDead(); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMIRV.java b/src/main/java/com/hbm/entity/missile/EntityMIRV.java index e5a4054f6..0985e3e54 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMIRV.java +++ b/src/main/java/com/hbm/entity/missile/EntityMIRV.java @@ -3,7 +3,6 @@ package com.hbm.entity.missile; import com.hbm.config.BombConfig; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.entity.logic.EntityNukeExplosionMK5; -import com.hbm.entity.particle.EntitySmokeFX; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -41,8 +40,6 @@ public class EntityMIRV extends EntityThrowable { } this.setDead(); } - - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0)); } protected void rotation() { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java index 3605e17ad..c0e51f619 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileBaseNT.java @@ -11,7 +11,6 @@ import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorFire; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.items.weapon.ItemMissile; import com.hbm.main.MainRegistry; @@ -355,14 +354,12 @@ public abstract class EntityMissileBaseNT extends EntityThrowableInterp implemen } } - public void explodeStandard(float strength, int resolution, boolean fire, boolean largeSmoke) { + public void explodeStandard(float strength, int resolution, boolean fire) { ExplosionVNT xnt = new ExplosionVNT(worldObj, posX, posY, posZ, strength); xnt.setBlockAllocator(new BlockAllocatorStandard(resolution)); xnt.setBlockProcessor(new BlockProcessorStandard().setNoDrop().withBlockEffect(fire ? new BlockMutatorFire() : null)); xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(2)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); - xnt.setSFX(new ExplosionEffectStandard()); - if(largeSmoke) ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction((int) strength)); xnt.explode(); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java index 71f6541b7..0dc2528aa 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileStealth.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.material.Mats; import com.hbm.items.ItemEnums.EnumAshType; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.items.ModItems; import net.minecraft.item.ItemStack; @@ -26,7 +27,7 @@ public class EntityMissileStealth extends EntityMissileBaseNT { @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_stealth); } @Override public boolean canBeSeenBy(Object radar) { return false; } - @Override public void onImpact() { this.explodeStandard(20F, 24, false, true); } + @Override public void onImpact() { this.explodeStandard(20F, 24, false); ExplosionCreator.composeEffectStandard(worldObj, posX, posY, posZ); } @Override public ItemStack getDebrisRareDrop() { return DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index a67ccfe7f..538eb439e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -6,6 +6,7 @@ import java.util.List; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import com.hbm.particle.helper.ExplosionCreator; import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; @@ -32,7 +33,7 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { public static class EntityMissileGeneric extends EntityMissileTier1 { public EntityMissileGeneric(World world) { super(world); } public EntityMissileGeneric(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { this.explodeStandard(15F, 24, false, true); } + @Override public void onImpact() { this.explodeStandard(15F, 24, false); ExplosionCreator.composeEffectSmall(worldObj, posX, posY, posZ); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_generic); } } @@ -50,7 +51,7 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { public static class EntityMissileIncendiary extends EntityMissileTier1 { public EntityMissileIncendiary(World world) { super(world); } public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { this.explodeStandard(15F, 24, true, true); } + @Override public void onImpact() { this.explodeStandard(15F, 24, true); ExplosionCreator.composeEffectSmall(worldObj, posX, posY, posZ); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_small); } @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_incendiary); } } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java index 202db1851..c2b752e5d 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier2.java @@ -7,6 +7,7 @@ import com.hbm.entity.logic.EntityEMP; import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import com.hbm.particle.helper.ExplosionCreator; import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; @@ -41,7 +42,7 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { public static class EntityMissileStrong extends EntityMissileTier2 { public EntityMissileStrong(World world) { super(world); } public EntityMissileStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } - @Override public void onImpact() { this.explodeStandard(30F, 32, false, true); } + @Override public void onImpact() { this.explodeStandard(30F, 32, false); ExplosionCreator.composeEffectStandard(worldObj, posX, posY, posZ); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_medium); } @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_strong); } } @@ -50,7 +51,8 @@ public abstract class EntityMissileTier2 extends EntityMissileBaseNT { public EntityMissileIncendiaryStrong(World world) { super(world); } public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { - this.explodeStandard(30F, 32, true, true); + this.explodeStandard(30F, 32, true); + ExplosionCreator.composeEffectStandard(worldObj, posX, posY, posZ); ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_medium); } diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java index d145a5a9e..de02e1aa2 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier3.java @@ -8,6 +8,7 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.items.ModItems; +import com.hbm.particle.helper.ExplosionCreator; import api.hbm.entity.IRadarDetectableNT; import net.minecraft.item.ItemStack; @@ -58,7 +59,8 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { public EntityMissileBurst(World world) { super(world); } public EntityMissileBurst(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { - this.explodeStandard(50F, 48, false, true); + this.explodeStandard(50F, 48, false); + ExplosionCreator.composeEffectLarge(worldObj, posX, posY, posZ); } @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } @Override public ItemStack getMissileItemForInfo() { return new ItemStack(ModItems.missile_burst); } @@ -68,7 +70,8 @@ public abstract class EntityMissileTier3 extends EntityMissileBaseNT { public EntityMissileInferno(World world) { super(world); } public EntityMissileInferno(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } @Override public void onImpact() { - this.explodeStandard(50F, 48, true, true); + this.explodeStandard(50F, 48, true); + ExplosionCreator.composeEffectLarge(worldObj, posX, posY, posZ); ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10); ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25); } diff --git a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java deleted file mode 100644 index 64889f204..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityDSmokeFX.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityDSmokeFX extends EntityModFX { - public EntityDSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityDSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, - double p_i1225_10_, double p_i1225_12_) { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityDSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, - double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float) (Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - // this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - // this.particleMaxAge = (int)((float)this.particleMaxAge * - // p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if (maxAge < 100) { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java deleted file mode 100644 index 699821ba1..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySSmokeFX.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySSmokeFX extends EntityModFX -{ - public EntitySSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java b/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java deleted file mode 100644 index 8281443d9..000000000 --- a/src/main/java/com/hbm/entity/particle/EntitySmokeFX.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.hbm.entity.particle; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.world.World; - -public class EntitySmokeFX extends EntityModFX -{ - public EntitySmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntitySmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntitySmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 100) - { - maxAge = rand.nextInt(21) + 65; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.9599999785423279D; - this.motionY *= 0.9599999785423279D; - this.motionZ *= 0.9599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } -} diff --git a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java b/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java deleted file mode 100644 index e5723cf0c..000000000 --- a/src/main/java/com/hbm/entity/particle/EntityTSmokeFX.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.entity.particle; - -import net.minecraft.world.World; - -public class EntityTSmokeFX extends EntityModFX -{ - public EntityTSmokeFX(World world) { - super(world, 0, 0, 0); - } - - public EntityTSmokeFX(World p_i1225_1_, double p_i1225_2_, double p_i1225_4_, double p_i1225_6_, double p_i1225_8_, double p_i1225_10_, double p_i1225_12_) - { - this(p_i1225_1_, p_i1225_2_, p_i1225_4_, p_i1225_6_, p_i1225_8_, p_i1225_10_, p_i1225_12_, 1.0F); - } - - public EntityTSmokeFX(World p_i1226_1_, double p_i1226_2_, double p_i1226_4_, double p_i1226_6_, double p_i1226_8_, double p_i1226_10_, double p_i1226_12_, float p_i1226_14_) - { - super(p_i1226_1_, p_i1226_2_, p_i1226_4_, p_i1226_6_, 0.0D, 0.0D, 0.0D); - this.motionX *= 0.10000000149011612D; - this.motionY *= 0.10000000149011612D; - this.motionZ *= 0.10000000149011612D; - this.motionX += p_i1226_8_; - this.motionY += p_i1226_10_; - this.motionZ += p_i1226_12_; - this.particleRed = this.particleGreen = this.particleBlue = (float)(Math.random() * 0.30000001192092896D); - this.particleScale *= 0.75F; - this.particleScale *= p_i1226_14_; - this.smokeParticleScale = this.particleScale; - //this.particleMaxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)); - //this.particleMaxAge = (int)((float)this.particleMaxAge * p_i1226_14_); - this.noClip = false; - } - - /** - * Called to update the entity's position/logic. - */ - - @Override - public void onUpdate() - { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - if(maxAge < 25) - { - maxAge = rand.nextInt(6) + 25; - } - - this.particleAge++; - - if (this.particleAge >= maxAge) - { - this.setDead(); - } - - this.motionX *= 0.7599999785423279D; - this.motionY *= 0.7599999785423279D; - this.motionZ *= 0.7599999785423279D; - - if (this.onGround) - { - this.motionX *= 0.699999988079071D; - this.motionZ *= 0.699999988079071D; - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - } -} diff --git a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java b/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java deleted file mode 100644 index fe59e30f2..000000000 --- a/src/main/java/com/hbm/entity/projectile/EntityCombineBall.java +++ /dev/null @@ -1,571 +0,0 @@ -package com.hbm.entity.projectile; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import java.util.List; - -import com.hbm.lib.ModDamageSource; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IProjectile; -import net.minecraft.entity.monster.EntityEnderman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.play.server.S2BPacketChangeGameState; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntityCombineBall extends Entity implements IProjectile -{ - private int field_145791_d = -1; - private int field_145792_e = -1; - private int field_145789_f = -1; - public double gravity = 0.0D; - private Block field_145790_g; - private int inData; - private boolean inGround; - /** 1 if the player can pick up the arrow */ - public int canBePickedUp; - /** Seems to be some sort of timer for animating an arrow. */ - public int arrowShake; - /** The owner of this arrow. */ - public Entity shootingEntity; - private int ticksInGround; - private int ticksInAir; - private double damage = 2.0D; - /** The amount of knockback an arrow applies when it hits a mob. */ - private int knockbackStrength; - public EntityCombineBall(World p_i1753_1_) - { - super(p_i1753_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - } - - public EntityCombineBall(World p_i1754_1_, double p_i1754_2_, double p_i1754_4_, double p_i1754_6_) - { - super(p_i1754_1_); - this.renderDistanceWeight = 10.0D; - this.setSize(0.5F, 0.5F); - this.setPosition(p_i1754_2_, p_i1754_4_, p_i1754_6_); - this.yOffset = 0.0F; - } - - public EntityCombineBall(World p_i1755_1_, EntityLivingBase p_i1755_2_, EntityLivingBase p_i1755_3_, float p_i1755_4_, float p_i1755_5_) - { - super(p_i1755_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1755_2_; - - if (p_i1755_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.posY = p_i1755_2_.posY + p_i1755_2_.getEyeHeight() - 0.10000000149011612D; - double d0 = p_i1755_3_.posX - p_i1755_2_.posX; - double d1 = p_i1755_3_.boundingBox.minY + p_i1755_3_.height / 3.0F - this.posY; - double d2 = p_i1755_3_.posZ - p_i1755_2_.posZ; - double d3 = MathHelper.sqrt_double(d0 * d0 + d2 * d2); - - if (d3 >= 1.0E-7D) - { - float f2 = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F; - float f3 = (float)(-(Math.atan2(d1, d3) * 180.0D / Math.PI)); - double d4 = d0 / d3; - double d5 = d2 / d3; - this.setLocationAndAngles(p_i1755_2_.posX + d4, this.posY, p_i1755_2_.posZ + d5, f2, f3); - this.yOffset = 0.0F; - float f4 = (float)d3 * 0.2F; - this.setThrowableHeading(d0, d1 + f4, d2, p_i1755_4_, p_i1755_5_); - } - } - - public EntityCombineBall(World p_i1756_1_, EntityLivingBase p_i1756_2_, float p_i1756_3_) - { - super(p_i1756_1_); - this.renderDistanceWeight = 10.0D; - this.shootingEntity = p_i1756_2_; - - if (p_i1756_2_ instanceof EntityPlayer) - { - this.canBePickedUp = 1; - } - - this.setSize(0.5F, 0.5F); - this.setLocationAndAngles(p_i1756_2_.posX, p_i1756_2_.posY + p_i1756_2_.getEyeHeight(), p_i1756_2_.posZ, p_i1756_2_.rotationYaw, p_i1756_2_.rotationPitch); - this.posX -= MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.posY -= 0.10000000149011612D; - this.posZ -= MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F; - this.setPosition(this.posX, this.posY, this.posZ); - this.yOffset = 0.0F; - this.motionX = -MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionZ = MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI); - this.motionY = (-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, p_i1756_3_ * 1.5F, 1.0F); - } - - public EntityCombineBall(World world, int x, int y, int z, double mx, double my, double mz, double grav) { - super(world); - this.posX = x + 0.5F; - this.posY = y + 0.5F; - this.posZ = z + 0.5F; - - this.motionX = mx; - this.motionY = my; - this.motionZ = mz; - - this.gravity = grav; - } - - @Override - protected void entityInit() - { - this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); - } - - /** - * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. - */ - @Override - public void setThrowableHeading(double p_70186_1_, double p_70186_3_, double p_70186_5_, float p_70186_7_, float p_70186_8_) - { - float f2 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_3_ * p_70186_3_ + p_70186_5_ * p_70186_5_); - p_70186_1_ /= f2; - p_70186_3_ /= f2; - p_70186_5_ /= f2; - p_70186_1_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_3_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_5_ += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.007499999832361937D * p_70186_8_; - p_70186_1_ *= p_70186_7_; - p_70186_3_ *= p_70186_7_; - p_70186_5_ *= p_70186_7_; - this.motionX = p_70186_1_; - this.motionY = p_70186_3_; - this.motionZ = p_70186_5_; - float f3 = MathHelper.sqrt_double(p_70186_1_ * p_70186_1_ + p_70186_5_ * p_70186_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70186_1_, p_70186_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70186_3_, f3) * 180.0D / Math.PI); - this.ticksInGround = 0; - } - - /** - * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, - * posY, posZ, yaw, pitch - */ - @Override - @SideOnly(Side.CLIENT) - public void setPositionAndRotation2(double p_70056_1_, double p_70056_3_, double p_70056_5_, float p_70056_7_, float p_70056_8_, int p_70056_9_) - { - this.setPosition(p_70056_1_, p_70056_3_, p_70056_5_); - this.setRotation(p_70056_7_, p_70056_8_); - } - - /** - * Sets the velocity to the args. Args: x, y, z - */ - @Override - @SideOnly(Side.CLIENT) - public void setVelocity(double p_70016_1_, double p_70016_3_, double p_70016_5_) - { - this.motionX = p_70016_1_; - this.motionY = p_70016_3_; - this.motionZ = p_70016_5_; - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - float f = MathHelper.sqrt_double(p_70016_1_ * p_70016_1_ + p_70016_5_ * p_70016_5_); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(p_70016_1_, p_70016_5_) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(p_70016_3_, f) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch; - this.prevRotationYaw = this.rotationYaw; - this.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, this.rotationPitch); - this.ticksInGround = 0; - } - } - - /** - * Called to update the entity's position/logic. - */ - //@Override - @Override - public void onUpdate() - { - super.onUpdate(); - - if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) - { - MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - //this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f) * 180.0D / Math.PI); - } - - Block block = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (block.getMaterial() != Material.air) - { - block.setBlockBoundsBasedOnState(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - AxisAlignedBB axisalignedbb = block.getCollisionBoundingBoxFromPool(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f); - - if (axisalignedbb != null && axisalignedbb.isVecInside(Vec3.createVectorHelper(this.posX, this.posY, this.posZ))) - { - this.inGround = true; - } - } - - if (this.arrowShake > 0) - { - --this.arrowShake; - } - - if (this.inGround) - { - this.setDead(); - } - else - { - ++this.ticksInAir; - Vec3 vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - Vec3 vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - MovingObjectPosition movingobjectposition = this.worldObj.func_147447_a(vec31, vec3, false, true, false); - vec31 = Vec3.createVectorHelper(this.posX, this.posY, this.posZ); - vec3 = Vec3.createVectorHelper(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); - - if (movingobjectposition != null) - { - vec3 = Vec3.createVectorHelper(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); - } - - Entity entity = null; - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); - double d0 = 0.0D; - int i; - float f1; - - for (i = 0; i < list.size(); ++i) - { - Entity entity1 = (Entity)list.get(i); - - if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) - { - f1 = 0.3F; - AxisAlignedBB axisalignedbb1 = entity1.boundingBox.expand(f1, f1, f1); - MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3); - - if (movingobjectposition1 != null) - { - double d1 = vec31.distanceTo(movingobjectposition1.hitVec); - - if (d1 < d0 || d0 == 0.0D) - { - entity = entity1; - d0 = d1; - } - } - } - } - - if (entity != null) - { - movingobjectposition = new MovingObjectPosition(entity); - } - - if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) - { - EntityPlayer entityplayer = (EntityPlayer)movingobjectposition.entityHit; - - if (entityplayer.capabilities.disableDamage || this.shootingEntity instanceof EntityPlayer && !((EntityPlayer)this.shootingEntity).canAttackPlayer(entityplayer)) - { - movingobjectposition = null; - } - } - - float f2; - float f4; - - if (movingobjectposition != null) - { - if (movingobjectposition.entityHit != null) - { - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - int k = MathHelper.ceiling_double_int(f2 * this.damage); - - if (this.getIsCritical()) - { - k += this.rand.nextInt(k / 2 + 2); - } - - DamageSource damagesource = null; - - if (this.shootingEntity == null) - { - damagesource = DamageSource.generic; - } - else - { - damagesource = ModDamageSource.causeCombineDamage(this, this); - } - - if (this.isBurning() && !(movingobjectposition.entityHit instanceof EntityEnderman)) - { - movingobjectposition.entityHit.setFire(5); - } - - if (movingobjectposition.entityHit.attackEntityFrom(damagesource, k)) - { - if (movingobjectposition.entityHit instanceof EntityLivingBase) - { - EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; - - if (this.knockbackStrength > 0) - { - f4 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - - if (f4 > 0.0F) - { - movingobjectposition.entityHit.addVelocity(this.motionX * this.knockbackStrength * 0.6000000238418579D / f4, 0.1D, this.motionZ * this.knockbackStrength * 0.6000000238418579D / f4); - } - } - - if (this.shootingEntity != null && this.shootingEntity instanceof EntityLivingBase) - { - EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); - EnchantmentHelper.func_151385_b((EntityLivingBase)this.shootingEntity, entitylivingbase); - } - - if (this.shootingEntity != null && movingobjectposition.entityHit != this.shootingEntity && movingobjectposition.entityHit instanceof EntityPlayer && this.shootingEntity instanceof EntityPlayerMP) - { - ((EntityPlayerMP)this.shootingEntity).playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(6, 0.0F)); - } - } - - if (!(movingobjectposition.entityHit instanceof EntityEnderman)) - { - if (!this.worldObj.isRemote && movingobjectposition.entityHit instanceof EntityLivingBase) - { - movingobjectposition.entityHit.attackEntityFrom(damagesource, 1000F); - } - } - } - } - else - { - this.field_145791_d = movingobjectposition.blockX; - this.field_145792_e = movingobjectposition.blockY; - this.field_145789_f = movingobjectposition.blockZ; - this.field_145790_g = this.worldObj.getBlock(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.inData = this.worldObj.getBlockMetadata(this.field_145791_d, this.field_145792_e, this.field_145789_f); - this.motionX = ((float)(movingobjectposition.hitVec.xCoord - this.posX)); - this.motionY = ((float)(movingobjectposition.hitVec.yCoord - this.posY)); - this.motionZ = ((float)(movingobjectposition.hitVec.zCoord - this.posZ)); - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); - this.posX -= this.motionX / f2 * 0.05000000074505806D; - this.posY -= this.motionY / f2 * 0.05000000074505806D; - this.posZ -= this.motionZ / f2 * 0.05000000074505806D; - this.inGround = true; - this.arrowShake = 7; - this.setIsCritical(false); - - if (this.field_145790_g.getMaterial() != Material.air) - { - this.field_145790_g.onEntityCollidedWithBlock(this.worldObj, this.field_145791_d, this.field_145792_e, this.field_145789_f, this); - } - } - } - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; - f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); - this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - - float f3 = 0.99F; - f1 = 0.05F; - - if (this.isInWater()) - { - for (int l = 0; l < 4; ++l) - { - f4 = 0.25F; - this.worldObj.spawnParticle("bubble", this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ); - } - - f3 = 0.8F; - } - - if (this.isWet()) - { - this.extinguish(); - } - - this.motionX *= f3; - this.motionY *= f3; - this.motionZ *= f3; - this.motionY -= gravity; - this.setPosition(this.posX, this.posY, this.posZ); - this.func_145775_I(); - } - - if (this.ticksExisted > 250) - this.setDead(); - } - - /** - * (abstract) Protected helper method to write subclass entity data to NBT. - */ - @Override - public void writeEntityToNBT(NBTTagCompound p_70014_1_) - { - p_70014_1_.setShort("xTile", (short)this.field_145791_d); - p_70014_1_.setShort("yTile", (short)this.field_145792_e); - p_70014_1_.setShort("zTile", (short)this.field_145789_f); - p_70014_1_.setShort("life", (short)this.ticksInGround); - p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145790_g)); - p_70014_1_.setByte("inData", (byte)this.inData); - p_70014_1_.setByte("shake", (byte)this.arrowShake); - p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); - p_70014_1_.setByte("pickup", (byte)this.canBePickedUp); - p_70014_1_.setDouble("damage", this.damage); - } - - /** - * (abstract) Protected helper method to read subclass entity data from NBT. - */ - @Override - public void readEntityFromNBT(NBTTagCompound p_70037_1_) - { - this.field_145791_d = p_70037_1_.getShort("xTile"); - this.field_145792_e = p_70037_1_.getShort("yTile"); - this.field_145789_f = p_70037_1_.getShort("zTile"); - this.ticksInGround = p_70037_1_.getShort("life"); - this.field_145790_g = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); - this.inData = p_70037_1_.getByte("inData") & 255; - this.arrowShake = p_70037_1_.getByte("shake") & 255; - this.inGround = p_70037_1_.getByte("inGround") == 1; - - if (p_70037_1_.hasKey("damage", 99)) - { - this.damage = p_70037_1_.getDouble("damage"); - } - - if (p_70037_1_.hasKey("pickup", 99)) - { - this.canBePickedUp = p_70037_1_.getByte("pickup"); - } - else if (p_70037_1_.hasKey("player", 99)) - { - this.canBePickedUp = p_70037_1_.getBoolean("player") ? 1 : 0; - } - } - - /** - * Called by a player entity when they collide with an entity - */ - @Override - public void onCollideWithPlayer(EntityPlayer p_70100_1_) - { - if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) - { - boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; - - if (flag) - { - p_70100_1_.onItemPickup(this, 1); - this.setDead(); - } - } - } - - /** - * returns if this entity triggers Block.onEntityWalking on the blocks they walk on. used for spiders and wolves to - * prevent them from trampling crops - */ - @Override - protected boolean canTriggerWalking() - { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public float getShadowSize() - { - return 0.0F; - } - - public void setDamage(double p_70239_1_) - { - this.damage = p_70239_1_; - } - - public double getDamage() - { - return this.damage; - } - - /** - * Sets the amount of knockback the arrow applies when it hits a mob. - */ - public void setKnockbackStrength(int p_70240_1_) - { - this.knockbackStrength = p_70240_1_; - } - - /** - * If returns false, the item will not inflict any damage against entities. - */ - @Override - public boolean canAttackWithItem() - { - return false; - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public void setIsCritical(boolean p_70243_1_) - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - - if (p_70243_1_) - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 | 1))); - } - else - { - this.dataWatcher.updateObject(16, Byte.valueOf((byte)(b0 & -2))); - } - } - - /** - * Whether the arrow has a stream of critical hit particles flying behind it. - */ - public boolean getIsCritical() - { - byte b0 = this.dataWatcher.getWatchableObjectByte(16); - return (b0 & 1) != 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float p_70070_1_) - { - return 15728880; - } - - @Override - public float getBrightness(float p_70013_1_) - { - return 1.0F; - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java index b3a1ca7da..c035c0833 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java @@ -7,7 +7,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNukeSmall; import com.hbm.handler.radiation.ChunkRadiationManager; @@ -448,16 +447,6 @@ public class EntityRocketHoming extends Entity implements IProjectile } } - if (true) - { - //for (i = 0; i < 4; ++i) - { - //this.worldObj.spawnParticle("cloud", this.posX, this.posY, this.posZ, /*0, 0, 0 this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D,*/ -this.motionX/4, -this.motionY/4, -this.motionZ/4); - if(!worldObj.isRemote && this.ticksExisted > 1) - this.worldObj.spawnEntityInWorld(new EntityTSmokeFX(worldObj, this.posX, this.posY, this.posZ, 0, 0, 0)); - } - } - this.posX += this.motionX; this.posY += this.motionY; this.posZ += this.motionZ; diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index 5c3a206c7..485de324f 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -202,15 +202,17 @@ public class BossSpawnHandler { boolean repell = false; boolean strike = true; - if(p.getCurrentArmor(2) != null && ArmorModHandler.hasMods(p.getCurrentArmor(2))) { - ItemStack mod = ArmorModHandler.pryMods(p.getCurrentArmor(2))[ArmorModHandler.helmet_only]; - - if(mod != null) { - if(mod.getItem() == ModItems.protection_charm) { - repell = true; - } - if(mod.getItem() == ModItems.meteor_charm) { - strike = false; + for(int i = 0; i < 4; i++) { + ItemStack armor = p.getCurrentArmor(i); + if(armor != null && ArmorModHandler.hasMods(armor)) { + + for(int j = 0; j < 8; j++) { + ItemStack mod = ArmorModHandler.pryMods(armor)[j]; + + if(mod != null) { + if(mod.getItem() == ModItems.protection_charm) repell = true; + if(mod.getItem() == ModItems.meteor_charm) strike = false; + } } } } diff --git a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java index aff8c64c0..05105f579 100644 --- a/src/main/java/com/hbm/handler/nei/ConstructionHandler.java +++ b/src/main/java/com/hbm/handler/nei/ConstructionHandler.java @@ -105,7 +105,7 @@ public class ConstructionHandler extends NEIUniversalHandler { ItemStack[] icf = new ItemStack[] { new ItemStack(ModBlocks.icf_component, 50, 0), ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 240, 3), EnumChatFormatting.RED + "3x64 + 48"), - ItemStackUtil.addTooltipToStack(Mats.MAT_DURA.make(ModItems.bolt, 960), EnumChatFormatting.RED + "9x64"), + ItemStackUtil.addTooltipToStack(Mats.MAT_DURA.make(ModItems.bolt, 960), EnumChatFormatting.RED + "15x64"), ItemStackUtil.addTooltipToStack(Mats.MAT_STEEL.make(ModItems.plate_cast, 240), EnumChatFormatting.RED + "3x64 + 48"), ItemStackUtil.addTooltipToStack(new ItemStack(ModBlocks.icf_component, 117, 1), EnumChatFormatting.RED + "64 + 53"), ItemStackUtil.addTooltipToStack(Mats.MAT_BBRONZE.make(ModItems.plate_cast, 117), EnumChatFormatting.RED + "64 + 53"), diff --git a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java index 84cd78979..1b4707586 100644 --- a/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/RadiolysisRecipeHandler.java @@ -14,7 +14,6 @@ import com.hbm.inventory.gui.GUIRadiolysis; import com.hbm.inventory.recipes.RadiolysisRecipes; import com.hbm.lib.RefStrings; -import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; import net.minecraft.client.gui.inventory.GuiContainer; @@ -95,7 +94,7 @@ public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements IC HashMap recipes = (HashMap) RadiolysisRecipes.getRecipesForNEI(); for(Entry recipe : recipes.entrySet()) { - if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[1], result)) + if(compareFluidStacks((ItemStack)recipe.getValue()[0], result) || compareFluidStacks((ItemStack)recipe.getValue()[1], result)) this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1])); } } @@ -115,10 +114,14 @@ public class RadiolysisRecipeHandler extends TemplateRecipeHandler implements IC HashMap recipes = (HashMap) RadiolysisRecipes.getRecipesForNEI(); for(Entry recipe : recipes.entrySet()) { - if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getKey(), ingredient)) + if(compareFluidStacks((ItemStack)recipe.getKey(), ingredient)) this.arecipes.add(new RecipeSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1])); } } + + private boolean compareFluidStacks(ItemStack sta1, ItemStack sta2) { + return sta1.getItem() == sta2.getItem() && sta1.getItemDamage() == sta2.getItemDamage(); + } @Override public void drawExtras(int recipe) { diff --git a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java b/src/main/java/com/hbm/interfaces/IFluidAcceptor.java deleted file mode 100644 index b24f0cd3f..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidAcceptor.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidAcceptor extends IFluidContainer { - - @Deprecated int getMaxFluidFill(FluidType type); - - @Deprecated - public default void setFluidFillForReceive(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForReceive(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default int getMaxFluidFillForReceive(FluidType type) { - return this.getMaxFluidFill(type); - } - - @Deprecated - public default void receiveFluid(int amount, FluidType type) { - this.setFluidFill(this.getFluidFill(type) + amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IFluidContainer.java b/src/main/java/com/hbm/interfaces/IFluidContainer.java index 6e8b45284..817e280e7 100644 --- a/src/main/java/com/hbm/interfaces/IFluidContainer.java +++ b/src/main/java/com/hbm/interfaces/IFluidContainer.java @@ -2,19 +2,12 @@ package com.hbm.interfaces; import com.hbm.inventory.fluid.FluidType; -@Deprecated +@Deprecated //legacy crap we can't get rid of because some ancient machines still use this for sync public interface IFluidContainer { //Args: fill, what the fill should be set to; index, index for array if there are multiple tanks public void setFillForSync(int fill, int index); - - //Args: fill: what the fill should be set to; type, what type the tank in question has - void setFluidFill(int fill, FluidType type); //Args: type, what the type should be set to; index, index for array if there are multiple tanks public void setTypeForSync(FluidType type, int index); - - //Args: type, what type the tank in question has - int getFluidFill(FluidType type); - } diff --git a/src/main/java/com/hbm/interfaces/IFluidDuct.java b/src/main/java/com/hbm/interfaces/IFluidDuct.java deleted file mode 100644 index 101013ef9..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidDuct.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.hbm.interfaces; - -import com.hbm.inventory.fluid.FluidType; - -public interface IFluidDuct { - - public FluidType getType(); - public boolean setType(FluidType type); - -} diff --git a/src/main/java/com/hbm/interfaces/IFluidSource.java b/src/main/java/com/hbm/interfaces/IFluidSource.java deleted file mode 100644 index 195e0d71b..000000000 --- a/src/main/java/com/hbm/interfaces/IFluidSource.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -import com.hbm.inventory.fluid.FluidType; - -@Deprecated -public interface IFluidSource extends IFluidContainer { - - @Deprecated void fillFluidInit(FluidType type); - - @Deprecated void fillFluid(int x, int y, int z, boolean newTact, FluidType type); - - @Deprecated boolean getTact(); - @Deprecated List getFluidList(FluidType type); - @Deprecated void clearFluidList(FluidType type); - - @Deprecated - public default void setFluidFillForTransfer(int fill, FluidType type) { - this.setFluidFill(fill, type); - } - - @Deprecated - public default int getFluidFillForTransfer(FluidType type) { - return this.getFluidFill(type); - } - - @Deprecated - public default void transferFluid(int amount, FluidType type) { - this.setFluidFillForTransfer(this.getFluidFillForTransfer(type) - amount, type); - } -} diff --git a/src/main/java/com/hbm/interfaces/IGasAcceptor.java b/src/main/java/com/hbm/interfaces/IGasAcceptor.java deleted file mode 100644 index 4cf182acd..000000000 --- a/src/main/java/com/hbm/interfaces/IGasAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasAcceptor { - - void setGasFill(int i); - - int getGasFill(); - - int getMaxGasFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IGasDuct.java b/src/main/java/com/hbm/interfaces/IGasDuct.java deleted file mode 100644 index 13a0452b9..000000000 --- a/src/main/java/com/hbm/interfaces/IGasDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IGasDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IGasSource.java b/src/main/java/com/hbm/interfaces/IGasSource.java deleted file mode 100644 index 87e3a5e2d..000000000 --- a/src/main/java/com/hbm/interfaces/IGasSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IGasSource { - - void fillGasInit(); - - void fillGas(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getGasFill(); - void setGasFill(int i); - List getGasList(); - void clearGasList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOilAcceptor.java b/src/main/java/com/hbm/interfaces/IOilAcceptor.java deleted file mode 100644 index b8af2606e..000000000 --- a/src/main/java/com/hbm/interfaces/IOilAcceptor.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilAcceptor { - - void setFill(int i); - - int getFill(); - - int getMaxFill(); - -} diff --git a/src/main/java/com/hbm/interfaces/IOilDuct.java b/src/main/java/com/hbm/interfaces/IOilDuct.java deleted file mode 100644 index 9db089044..000000000 --- a/src/main/java/com/hbm/interfaces/IOilDuct.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.hbm.interfaces; - -public interface IOilDuct { - -} diff --git a/src/main/java/com/hbm/interfaces/IOilSource.java b/src/main/java/com/hbm/interfaces/IOilSource.java deleted file mode 100644 index 31fd4879a..000000000 --- a/src/main/java/com/hbm/interfaces/IOilSource.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hbm.interfaces; - -import java.util.List; - -public interface IOilSource { - - void fillInit(); - - void fill(int x, int y, int z, boolean newTact); - - boolean getTact(); - int getSFill(); - void setSFill(int i); - List getList(); - void clearList(); - -} diff --git a/src/main/java/com/hbm/interfaces/IReactor.java b/src/main/java/com/hbm/interfaces/IReactor.java deleted file mode 100644 index c0da0b7fd..000000000 --- a/src/main/java/com/hbm/interfaces/IReactor.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hbm.interfaces; - -import net.minecraft.world.World; - -public interface IReactor { - - boolean isStructureValid(World world); - - boolean isCoatingValid(World world); - - boolean hasFuse(); - - int getWaterScaled(int i); - - int getCoolantScaled(int i); - - long getPowerScaled(long i); - - int getHeatScaled(int i); - -} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index e7cb21db8..973bf8000 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -15,6 +15,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockOreBasalt.EnumBasaltOreType; import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.config.GeneralConfig; +import com.hbm.crafting.MineralRecipes; import com.hbm.hazard.HazardData; import com.hbm.hazard.HazardEntry; import com.hbm.hazard.HazardRegistry; @@ -27,6 +28,7 @@ import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; import com.hbm.items.ModItems; import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumBriquetteType; +import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; @@ -257,6 +259,7 @@ public class OreDictManager { /* * RARE EARTHS */ + public static final DictFrame RAREEARTH = new DictFrame("RareEarth"); /** LANTHANUM */ public static final DictFrame LA = new DictFrame("Lanthanum"); /** ZIRCONIUM */ @@ -460,6 +463,7 @@ public class OreDictManager { /* * RARE EARTHS */ + RAREEARTH.ingot(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE)).ore(ore_rare, ore_gneiss_rare); LA .nugget(fragment_lanthanium) .ingot(ingot_lanthanium) .dustSmall(powder_lanthanium_tiny) .dust(powder_lanthanium) .block(block_lanthanium); ZR .nugget(nugget_zirconium) .ingot(ingot_zirconium) .billet(billet_zirconium) .dust(powder_zirconium) .block(block_zirconium) .ore(ore_depth_zirconium); ND .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium) .oreNether(ore_depth_nether_neodymium); @@ -542,6 +546,7 @@ public class OreDictManager { if(mat.shapes.contains(MaterialShapes.SHELL)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.SHELL.name() + name, new ItemStack(ModItems.shell, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.PIPE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.PIPE.name() + name, new ItemStack(ModItems.pipe, 1, mat.id)); } + if(mat.shapes.contains(MaterialShapes.FRAGMENT)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.FRAGMENT.name() + name, new ItemStack(ModItems.bedrock_ore_fragment, 1, mat.id)); if(mat.shapes.contains(MaterialShapes.WIRE)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.WIRE.name() + name, new ItemStack(ModItems.wire_fine, 1, mat.id)); } @@ -564,8 +569,6 @@ public class OreDictManager { OreDictionary.registerOre("briquetteWood", fromOne(briquette, EnumBriquetteType.WOOD)); OreDictionary.registerOre(getReflector(), neutron_reflector); - OreDictionary.registerOre("oreRareEarth", ore_rare); - OreDictionary.registerOre("oreRareEarth", ore_gneiss_rare); OreDictionary.registerOre("logWood", pink_log); OreDictionary.registerOre("logWoodPink", pink_log); @@ -642,6 +645,18 @@ public class OreDictManager { OreDictionary.registerOre(MAGTUNG.wireFine(), wire_magnetized_tungsten); OreDictionary.registerOre(SA326.wireFine(), wire_schrabidium); + for(NTMMaterial mat : Mats.orderedList) { + if(mat.shapes.contains(MaterialShapes.FRAGMENT)) { + String name = mat.names[0]; + if(!OreDictionary.getOres(MaterialShapes.DUST.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.DUST.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.GEM.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.GEM.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.CRYSTAL.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.CRYSTAL.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.INGOT.name() + name).isEmpty()) MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), OreDictionary.getOres(MaterialShapes.INGOT.name() + name).get(0)); + else if(!OreDictionary.getOres(MaterialShapes.BILLET.name() + name).isEmpty()) MineralRecipes.addBilletFragment(OreDictionary.getOres(MaterialShapes.BILLET.name() + name).get(0), mat.make(ModItems.bedrock_ore_fragment)); + else MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), new ItemStack(ModItems.nothing)); + } + } + MaterialShapes.registerCompatShapes(); compensateMojangSpaghettiBullshit(); } @@ -742,6 +757,7 @@ public class OreDictManager { public String billet() { return BILLET + mats[0]; } public String block() { return BLOCK + mats[0]; } public String ore() { return ORE + mats[0]; } + public String fragment() { return FRAGMENT + mats[0]; } public String[] anys() { return appendToAll(ANY); } public String[] nuggets() { return appendToAll(NUGGET); } public String[] tinys() { return appendToAll(TINY); } @@ -758,6 +774,7 @@ public class OreDictManager { public String[] billets() { return appendToAll(BILLET); } public String[] blocks() { return appendToAll(BLOCK); } public String[] ores() { return appendToAll(ORE); } + public String[] fragments() { return appendToAll(FRAGMENT); } /** Returns cast (triple) plates if 528 mode is enabled or normal plates if not */ public String plate528() { return GeneralConfig.enable528 ? plateCast() : plate(); } diff --git a/src/main/java/com/hbm/inventory/OreNames.java b/src/main/java/com/hbm/inventory/OreNames.java index 7e7b9b178..036d82ead 100644 --- a/src/main/java/com/hbm/inventory/OreNames.java +++ b/src/main/java/com/hbm/inventory/OreNames.java @@ -8,6 +8,7 @@ public class OreNames { public static final String ANY = "any"; public static final String NUGGET = "nugget"; public static final String TINY = "tiny"; + public static final String FRAGMENT = "bedrockorefragment"; public static final String BOLT = "bolt"; public static final String INGOT = "ingot"; public static final String DUSTTINY = "dustTiny"; @@ -28,6 +29,6 @@ public class OreNames { public static final String HEAVY_COMPONENT = "componentHeavy"; public static final String[] prefixes = new String[] { - ANY, NUGGET, TINY, BOLT, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT, WIRE, WIREDENSE + ANY, NUGGET, TINY, FRAGMENT, BOLT, INGOT, DUSTTINY, DUST, GEM, CRYSTAL, PLATE, PLATECAST, BILLET, BLOCK, ORE, ORENETHER, HEAVY_COMPONENT, WIRE, WIREDENSE }; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java index a84b3f81c..0c5c3ff51 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java +++ b/src/main/java/com/hbm/inventory/container/ContainerAutocrafter.java @@ -1,8 +1,10 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotPattern; +import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntityMachineAutocrafter; +import api.hbm.energymk2.IBatteryItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; @@ -88,6 +90,33 @@ public class ContainerAutocrafter extends ContainerBase { @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { - return null; + ItemStack rStack = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + rStack = stack.copy(); + + if(index <= 20 && index >= 10) { + if(!this.mergeItemStack(stack, 21, this.inventorySlots.size(), true)) { + return null; + } + } else if(index > 20){ + + if(rStack.getItem() instanceof IBatteryItem || rStack.getItem() == ModItems.battery_creative) { + if(!this.mergeItemStack(stack, 20, 21, false)) return null; + } else { + return null; + } + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return rStack; } } diff --git a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java deleted file mode 100644 index 53b263511..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerPuF6Tank extends Container { - - private TileEntityMachinePuF6Tank testNuke; - - public ContainerPuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java deleted file mode 100644 index 06e591a4a..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotTakeOnly; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerUF6Tank extends Container { - - private TileEntityMachineUF6Tank testNuke; - - public ContainerUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - testNuke = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 44, 53)); - this.addSlotToContainer(new Slot(tedf, 2, 116, 17)); - this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 116, 53)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); - } - } - - @Override - public void addCraftingToCrafters(ICrafting crafting) { - super.addCraftingToCrafters(crafting); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return testNuke.isUseableByPlayer(player); - } - -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java deleted file mode 100644 index 4ec995798..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachinePuF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/puf6Tank.png"); - private TileEntityMachinePuF6Tank tank; - - public GUIMachinePuF6Tank(InventoryPlayer invPlayer, TileEntityMachinePuF6Tank tedf) { - super(new ContainerPuF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java deleted file mode 100644 index a7c838c52..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineUF6Tank extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/uf6Tank.png"); - private TileEntityMachineUF6Tank tank; - - public GUIMachineUF6Tank(InventoryPlayer invPlayer, TileEntityMachineUF6Tank tedf) { - super(new ContainerUF6Tank(invPlayer, tedf)); - tank = tedf; - - this.xSize = 176; - this.ySize = 166; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - tank.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - } - - @Override - protected void drawGuiContainerForegroundLayer( int i, int j) { - String name = this.tank.hasCustomInventoryName() ? this.tank.getInventoryName() : I18n.format(this.tank.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - tank.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); - } -} diff --git a/src/main/java/com/hbm/inventory/material/MaterialShapes.java b/src/main/java/com/hbm/inventory/material/MaterialShapes.java index 87b966a47..a7cd59f3d 100644 --- a/src/main/java/com/hbm/inventory/material/MaterialShapes.java +++ b/src/main/java/com/hbm/inventory/material/MaterialShapes.java @@ -11,6 +11,7 @@ public class MaterialShapes { public static final MaterialShapes QUANTUM = new MaterialShapes(1); // 1/72 of an ingot, allows the ingot to be divisible through 2, 4, 6, 8, 9, 12, 24 and 36 public static final MaterialShapes NUGGET = new MaterialShapes(8, "nugget"); + public static final MaterialShapes FRAGMENT = new MaterialShapes(8, "bedrockorefragment"); public static final MaterialShapes DUSTTINY = new MaterialShapes(NUGGET.quantity, "dustTiny"); public static final MaterialShapes WIRE = new MaterialShapes(9, "wireFine"); public static final MaterialShapes BOLT = new MaterialShapes(9, "bolt"); diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index d294972a9..8879a622e 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -44,50 +44,51 @@ public class Mats { public static final int _VS = 0; /* Alloy Space, up to 70 materials. Use >20_000 as an extension.*/ public static final int _AS = 30; + public static final int _ES = 20_000; //Vanilla and vanilla-like - public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); - public static final NTMMaterial MAT_CARBON = makeAdditive( 1499, CARBON, 0x363636, 0x030303, 0x404040).setShapes(WIRE, INGOT, BLOCK).n(); - public static final NTMMaterial MAT_COAL = make( 1400, COAL) .setConversion(MAT_CARBON, 2, 1).n(); - public static final NTMMaterial MAT_LIGNITE = make( 1401, LIGNITE) .setConversion(MAT_CARBON, 3, 1).n(); - public static final NTMMaterial MAT_COALCOKE = make( 1410, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); - public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); - public static final NTMMaterial MAT_DIAMOND = make( 1430, DIAMOND) .setConversion(MAT_CARBON, 1, 1).n(); - public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(INGOT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(WIRE, NUGGET, INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); - public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).n(); - public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); - public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); + public static final NTMMaterial MAT_STONE = makeSmeltable(_VS + 00, df("Stone"), 0x7F7F7F, 0x353535, 0x4D2F23).n(); + public static final NTMMaterial MAT_CARBON = makeAdditive( 699, CARBON, 0x363636, 0x030303, 0x404040).setShapes(WIRE, INGOT, BLOCK).n(); + public static final NTMMaterial MAT_COAL = makeNonSmeltable(600, COAL, 0x363636, 0x030303, 0x404040).setConversion(MAT_CARBON, 2, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_LIGNITE = makeNonSmeltable(601, LIGNITE, 0x542D0F, 0x261508, 0x472913).setConversion(MAT_CARBON, 3, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_COALCOKE = make( 610, COALCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_PETCOKE = make( 611, PETCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_LIGCOKE = make( 612, LIGCOKE) .setConversion(MAT_CARBON, 4, 3).n(); + public static final NTMMaterial MAT_GRAPHITE = make( 620, GRAPHITE) .setConversion(MAT_CARBON, 1, 1).n(); + public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(FRAGMENT, INGOT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(FRAGMENT, WIRE, NUGGET, INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); + public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setShapes(FRAGMENT).n(); + public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n(); + public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m(); public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89).m(); public static final NTMMaterial MAT_PIGIRON = makeSmeltable(2603, df("PigIron"), 0xFF8B59).m(); public static final NTMMaterial MAT_METEORICIRON = makeSmeltable(2604, df("MeteoricIron"), 0x715347).m(); - public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); + public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); //Radioactive - public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_U233 = makeSmeltable(9233, U233, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_U235 = makeSmeltable(9235, U235, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_U238 = makeSmeltable(9238, U238, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_THORIUM = makeSmeltable(9032, TH232, 0xBF825F, 0x1C0000, 0xBF825F).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_U238 = makeSmeltable(9238, U238, 0xC1C7BD, 0x2B3227, 0x9AA196).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_THORIUM = makeSmeltable(9032, TH232, 0xBF825F, 0x1C0000, 0xBF825F).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_PLUTONIUM = makeSmeltable(9400, PU, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); public static final NTMMaterial MAT_RGP = makeSmeltable(9401, PURG, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU238 = makeSmeltable(9438, PU238, 0xFFBC59, 0xFF8E2B, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU239 = makeSmeltable(9439, PU239, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU240 = makeSmeltable(9440, PU240, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_PU241 = makeSmeltable(9441, PU241, 0x9AA3A0, 0x111A17, 0x78817E).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0x647064).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x563A26).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_TECHNIETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); - public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xE9FAF6).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0x958989).setShapes(NUGGET, BILLET, INGOT).m(); + public static final NTMMaterial MAT_RGA = makeSmeltable(9501, AMRG, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_AM241 = makeSmeltable(9541, AM241, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_AM242 = makeSmeltable(9542, AM242, 0xCEB3B9, 0x3A1C21, 0x93767B).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_NEPTUNIUM = makeSmeltable(9337, NP237, 0xA6B2A6, 0x030F03, 0x647064).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_POLONIUM = makeSmeltable(8410, PO210, 0x968779, 0x3D1509, 0x715E4A).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_TECHNETIUM = makeSmeltable(4399, TC99, 0xFAFFFF, 0x576C6C, 0xCADFDF).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_RADIUM = makeSmeltable(8826, RA226, 0xFCFCFC, 0xADBFBA, 0xE9FAF6).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ACTINIUM = makeSmeltable(8927, AC227, 0xECE0E0, 0x221616, 0x958989).setShapes(NUGGET, BILLET, INGOT).m(); public static final NTMMaterial MAT_CO60 = makeSmeltable(2760, CO60, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, BILLET, INGOT, DUST).m(); public static final NTMMaterial MAT_AU198 = makeSmeltable(7998, AU198, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(NUGGET, BILLET, INGOT, DUST).m(); - public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST).m(); + public static final NTMMaterial MAT_PB209 = makeSmeltable(8209, PB209, 0xB38A94, 0x12020E, 0x7B535D).setShapes(NUGGET, BILLET, INGOT, DUST).m(); public static final NTMMaterial MAT_SCHRABIDIUM = makeSmeltable(12626, SA326, 0x32FFFF, 0x005C5C, 0x32FFFF).setShapes(NUGGET, WIRE, BILLET, INGOT, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m(); public static final NTMMaterial MAT_SOLINIUM = makeSmeltable(12627, SA327, 0xA2E6E0, 0x00433D, 0x72B6B0).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); public static final NTMMaterial MAT_SCHRABIDATE = makeSmeltable(12600, SBD, 0x77C0D7, 0x39005E, 0x6589B4).setShapes(INGOT, DUST, DENSEWIRE, CASTPLATE, BLOCK).m(); @@ -95,28 +96,39 @@ public class Mats { public static final NTMMaterial MAT_GHIORSIUM = makeSmeltable(12836, GH336, 0xF4EFE1, 0x2A3306, 0xC6C6A1).setShapes(NUGGET, BILLET, INGOT, BLOCK).m(); //Base metals - public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(NUGGET, WIRE, INGOT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); - public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF).setShapes(NUGGET, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT).m(); - public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_EMERALD = make( 401, EMERALD) .setConversion(MAT_BERYLLIUM, 4, 3).n(); - public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, WIRE, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); - public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setShapes(DUST).m(); - public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setShapes(DUST).m(); - public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setShapes(INGOT, DUST).m(); - public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(INGOT, DUST, BLOCK).m(); - public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST).m(); - public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setShapes(NUGGET, BILLET, INGOT).m(); - public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE).m(); + public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setShapes(FRAGMENT, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setShapes(FRAGMENT, WIRE, BOLT, INGOT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setShapes(FRAGMENT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setShapes(FRAGMENT, NUGGET, WIRE, INGOT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); + public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setShapes(FRAGMENT, NUGGET, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setShapes(NUGGET, INGOT).m(); + public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setShapes(NUGGET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); + public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(FRAGMENT, NUGGET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_EMERALD = makeNonSmeltable(401, EMERALD, 0xBAFFD4, 0x003900, 0x17DD62).setConversion(MAT_BERYLLIUM, 4, 3).setShapes(FRAGMENT, DUST, GEM, BLOCK).n(); + public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(FRAGMENT, NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(FRAGMENT, DUSTTINY, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_BORAX = makeSmeltable(501, BORAX, 0xFFFFFF, 0x946E23, 0xFFECC6).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_LANTHANIUM = makeSmeltable(5700, LA, 0xC8E0E0, 0x3B5353, 0xA1B9B9).setShapes(FRAGMENT, INGOT, BLOCK).m(); + public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(FRAGMENT, NUGGET, WIRE, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK).m(); + public static final NTMMaterial MAT_SODIUM = makeSmeltable(1100, NA, 0xD3BF9E, 0x3A5A6B, 0x7E9493).setShapes(FRAGMENT, DUST).m(); + public static final NTMMaterial MAT_SODALITE = makeNonSmeltable(1101, SODALITE, 0xDCE5F6, 0x4927B4, 0x96A7E6).setShapes(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_STRONTIUM = makeSmeltable(3800, SR, 0xF1E8BA, 0x271E00, 0xCAC193).setShapes(FRAGMENT, DUST).m(); + public static final NTMMaterial MAT_CALCIUM = makeSmeltable(2000, CA, 0xCFCFA6, 0x747F6E, 0xB7B784).setShapes(INGOT, DUST).m(); + public static final NTMMaterial MAT_LITHIUM = makeSmeltable(300, LI, 0xFFFFFF, 0x818181, 0xD6D6D6).setShapes(FRAGMENT, INGOT, DUST, BLOCK).m(); + public static final NTMMaterial MAT_SULFUR = makeNonSmeltable(1600, S, 0xFCEE80, 0xBDA022, 0xF1DF68).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_KNO = makeNonSmeltable(700, KNO, 0xD4D4D4, 0x969696, 0xC9C9C9).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_FLUORITE = makeNonSmeltable(900, F, 0xFFFFFF, 0xB0A192, 0xE1DBD4).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_PHOSPHORUS = makeNonSmeltable(1500, P_RED, 0xCB0213, 0x600006, 0xBA0615).setShapes(FRAGMENT, DUST, BLOCK).n(); + public static final NTMMaterial MAT_CHLOROCALCITE = makeNonSmeltable(1701, CHLOROCALCITE, 0xF7E761, 0x475B46, 0xB8B963).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_MOLYSITE = makeNonSmeltable(1702, MOLYSITE, 0xF9E97B, 0x216E00, 0xD0D264).setShapes(FRAGMENT, DUST).n(); + public static final NTMMaterial MAT_CINNABAR = makeNonSmeltable(8001, CINNABAR, 0xD87070, 0x993030, 0xBF4E4E).setShapes(FRAGMENT, GEM).n(); + public static final NTMMaterial MAT_CADMIUM = makeSmeltable(4800, CD, 0xFFFADE, 0x350000, 0xA85600).setShapes(INGOT, DUST).m(); + public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setShapes(FRAGMENT, NUGGET, BILLET, INGOT).m(); + public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setShapes(FRAGMENT, INGOT, BLOCK).n(); + public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setShapes(NUGGET, INGOT, CASTPLATE, WELDEDPLATE).m(); //Alloys public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setShapes(DUSTTINY, BOLT, WIRE, INGOT, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); @@ -139,8 +151,10 @@ public class Mats { public static final NTMMaterial MAT_SLAG = makeSmeltable(_AS + 11, SLAG, 0x554940, 0x34281F, 0x6C6562).setShapes(BLOCK).n(); public static final NTMMaterial MAT_MUD = makeSmeltable(_AS + 14, MUD, 0xBCB5A9, 0x481213, 0x96783B).setShapes(INGOT).n(); - @Deprecated public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } - @Deprecated public static NTMMaterial makeAdditive(int id, DictFrame dict, int color) { return makeAdditive(id, dict, color, color, color); } + //Extension + public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setShapes(FRAGMENT, INGOT).n(); + + public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } public static NTMMaterial make(int id, DictFrame dict) { return new NTMMaterial(id, dict); @@ -154,6 +168,10 @@ public class Mats { return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.ADDITIVE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor); } + public static NTMMaterial makeNonSmeltable(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) { + return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.NOT_SMELTABLE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor); + } + public static DictFrame df(String string) { return new DictFrame(string); } @@ -227,9 +245,7 @@ public class Mats { public static String formatAmount(int amount, boolean showInMb) { - if(showInMb) { - return (amount * 2) + "mB"; - } + if(showInMb) return (amount * 2) + "mB"; String format = ""; diff --git a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java index dcbd4f018..bd5c8cedc 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcFurnaceRecipes.java @@ -64,11 +64,11 @@ public class ArcFurnaceRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 2))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type)), new ArcFurnaceRecipe().solid(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ARC, type, 4))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(5)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(2)))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(2)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(5)))); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, MaterialShapes.INGOT.q(1)), ItemBedrockOreNew.toFluid(type.primary2, MaterialShapes.INGOT.q(1)))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 5), ItemBedrockOreNew.toFluid(type.primary2, 2))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 2), ItemBedrockOreNew.toFluid(type.primary2, 5))); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.primary1, 1), ItemBedrockOreNew.toFluid(type.primary2, 1))); - int i3 = MaterialShapes.INGOT.q(3); + int i3 = 3; recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductAcid1, i3), ItemBedrockOreNew.toFluid(type.byproductAcid2, i3), ItemBedrockOreNew.toFluid(type.byproductAcid3, i3))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductSolvent1, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent2, i3), ItemBedrockOreNew.toFluid(type.byproductSolvent3, i3))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ArcFurnaceRecipe().fluidNull(ItemBedrockOreNew.toFluid(type.byproductRad1, i3), ItemBedrockOreNew.toFluid(type.byproductRad2, i3), ItemBedrockOreNew.toFluid(type.byproductRad3, i3))); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index c2fdad08d..39fff4c81 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -557,14 +557,6 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_chlorophyte, 1), new OreDictStack(PB.nugget(), 12), }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_mercury, 2), new AStack[] { - new ComparableStack(ModItems.ingot_mercury, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); - makeRecipe(new ComparableStack(ModItems.pellet_meteorite, 2), new AStack[] { - new ComparableStack(ModItems.powder_meteorite, 1), - new OreDictStack(PB.nugget(), 12), - }, 50); makeRecipe(new ComparableStack(ModItems.pellet_canister, 2), new AStack[] { new OreDictStack(IRON.ingot(), 3), }, 50); @@ -1261,7 +1253,7 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.qe_containment, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeBlack", 4)}, 400); makeRecipe(new ComparableStack(ModBlocks.qe_sliding_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 4), new ComparableStack(Blocks.glass, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.round_airlock_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 16), new OreDictStack("dyeGreen", 4)}, 400); - makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 4000); + makeRecipe(new ComparableStack(ModBlocks.secure_access_door, 1), new AStack[]{new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ALLOY.plate(), 16), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 4), new OreDictStack(DURA.bolt(), 32), new OreDictStack("dyeRed", 8)}, 400); makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 7464c71b4..2c91e4e4a 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -522,13 +522,13 @@ public class CentrifugeRecipes extends SerializableRecipe { recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SOLVENT, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type, 2)}); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_BYPRODUCT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_BYPRODUCT, type, 2), ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type, 2)}); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2)}); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 2)}); - recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.extract(type.primary2), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 2)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSULFURIC, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 2)}); + recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.primary1, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.extract(type.primary2, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type, 2)}); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SULFURIC_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductAcid1, 1), ItemBedrockOreNew.extract(type.byproductAcid2, 1), ItemBedrockOreNew.extract(type.byproductAcid3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1, 1), ItemBedrockOreNew.extract(type.byproductSolvent2, 1), ItemBedrockOreNew.extract(type.byproductSolvent3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); diff --git a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java index 8f7c5e107..919efab4f 100644 --- a/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CrucibleRecipes.java @@ -89,7 +89,7 @@ public class CrucibleRecipes extends SerializableRecipe { .outputs(new MaterialStack(Mats.MAT_FERRO, n * 3))); recipes.add(new CrucibleRecipe(5, "crucible.tcalloy", 9, new ItemStack(ModItems.ingot_tcalloy)) - .inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_TECHNIETIUM, n)) + .inputs(new MaterialStack(Mats.MAT_STEEL, n * 8), new MaterialStack(Mats.MAT_TECHNETIUM, n)) .outputs(new MaterialStack(Mats.MAT_TCALLOY, i))); recipes.add(new CrucibleRecipe(12, "crucible.cdalloy", 9, new ItemStack(ModItems.ingot_cdalloy)) @@ -256,7 +256,7 @@ public class CrucibleRecipes extends SerializableRecipe { int in = material.convIn; int out = material.convOut; NTMMaterial convert = material.smeltsInto; - for(MaterialShapes shape : MaterialShapes.allShapes) { + if(convert.smeltable == SmeltingBehavior.SMELTABLE || convert.smeltable == SmeltingBehavior.ADDITIVE) for(MaterialShapes shape : MaterialShapes.allShapes) { //TODO: buffer these String name = shape.name() + material.names[0]; diff --git a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java index 4c16b03be..5d3559f34 100644 --- a/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ElectrolyserMetalRecipes.java @@ -21,6 +21,7 @@ import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemScraps; import com.hbm.items.special.ItemBedrockOreNew; import com.hbm.items.special.ItemBedrockOreNew.BedrockOreGrade; +import com.hbm.items.special.ItemBedrockOreNew.BedrockOreOutput; import com.hbm.items.special.ItemBedrockOreNew.BedrockOreType; import com.hbm.util.ItemStackUtil; @@ -133,42 +134,43 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { for(BedrockOreType type : BedrockOreType.values()) { ArrayList> productsF = new ArrayList<>(); - productsF.add(new Pair<>(type.primary1,12)); - productsF.add(new Pair<>(type.primary2,6)); - productsF.add(new Pair<>(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type), 3)); + productsF.add(new Pair(type.primary1, 8)); + productsF.add(new Pair(type.primary2, 4)); + productsF.add(new Pair(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type), 3)); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_FIRST, type)), makeBedrockOreProduct(productsF)); ArrayList> productsS = new ArrayList<>(); - productsS.add(new Pair<>(type.primary1,6)); - productsS.add(new Pair<>(type.primary2,12)); - productsS.add(new Pair<>(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type),3)); + productsS.add(new Pair(type.primary1, 4)); + productsS.add(new Pair(type.primary2, 8)); + productsS.add(new Pair(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type),3)); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type)), makeBedrockOreProduct(productsS)); ArrayList> productsC = new ArrayList<>(); - productsC.add(new Pair<>(type.primary1,2)); - productsC.add(new Pair<>(type.primary2,2)); + productsC.add(new Pair(type.primary1, 2)); + productsC.add(new Pair(type.primary2, 2)); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), makeBedrockOreProduct(productsC)); } } public static ElectrolysisMetalRecipe makeBedrockOreProduct(ArrayList> products){ - ArrayList moltenProducts = new ArrayList<>(); - ArrayList solidProducts = new ArrayList<>(); + ArrayList moltenProducts = new ArrayList(); + ArrayList solidProducts = new ArrayList(); for(Pair product : products){ - if(moltenProducts.size() < 2) { - MaterialStack melt = ItemBedrockOreNew.toFluid(product.getKey(), MaterialShapes.INGOT.q(product.getValue())); + if(moltenProducts.size() < 2 && product.getKey() instanceof BedrockOreOutput) { + MaterialStack melt = ItemBedrockOreNew.toFluid((BedrockOreOutput) product.getKey(), product.getValue()); if (melt != null) { moltenProducts.add(melt); continue; } } - solidProducts.add(ItemBedrockOreNew.extract(product.getKey(), product.getValue())); + + if(product.getKey() instanceof BedrockOreOutput) solidProducts.add(ItemBedrockOreNew.extract((BedrockOreOutput) product.getKey(), product.getValue())); + if(product.getKey() instanceof ItemStack) solidProducts.add(((ItemStack) product.getKey()).copy()); } - if(moltenProducts.size() == 0) - moltenProducts.add(new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(2))); + if(moltenProducts.size() == 0) moltenProducts.add(new MaterialStack(Mats.MAT_SLAG, MaterialShapes.INGOT.q(2))); return new ElectrolysisMetalRecipe( moltenProducts.get(0), @@ -178,9 +180,7 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe { } public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) { - if(stack == null || stack.getItem() == null) - return null; - + if(stack == null || stack.getItem() == null) return null; ComparableStack comp = new ComparableStack(stack).makeSingular(); if(recipes.containsKey(comp)) return recipes.get(comp); diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 571777acd..c1e1e55c6 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -59,8 +59,6 @@ public class MachineRecipes { ArrayList fuels = new ArrayList(); fuels.add(new ItemStack(ModItems.battery_potato)); fuels.add(new ItemStack(ModItems.battery_potatos)); - fuels.add(new ItemStack(ModItems.battery_su)); - fuels.add(new ItemStack(ModItems.battery_su_l)); fuels.add(new ItemStack(ModItems.battery_generic)); fuels.add(new ItemStack(ModItems.battery_red_cell)); fuels.add(new ItemStack(ModItems.battery_red_cell_6)); diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index e4ce81e41..67470d1da 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -425,12 +425,9 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { - new ComparableStack(ModItems.sulfur, 8), - new OreDictStack(STEEL.plate528(), 4), - new OreDictStack(AL.plate528(), 2), + new ComparableStack(ModItems.sulfur, 12), new OreDictStack(STEEL.shell(), 4), - new OreDictStack(CU.plateCast(), 4), - new ComparableStack(ModItems.turbine_titanium, 1), + new OreDictStack(CU.plateCast(), 6), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()) }, new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); @@ -1098,18 +1095,6 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(Items.bone, 1), 0.75F), new AnvilOutput(new ItemStack(Items.experience_bottle, 1), 0.5F) }).setTier(1)); - - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_aluminium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_copper), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.ANALOG.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_red_copper), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_gold), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_schrabidium), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.BISMOID.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier1), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier2), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier3), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.BASIC.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier5), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()))}).setTier(1)); - constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.circuit_targeting_tier6), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.circuit, 2, EnumCircuitType.BISMOID.ordinal()))}).setTier(1)); } public static void pullFromAssembler(ComparableStack result, int tier) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 084b6d5bc..263e83d90 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -218,6 +218,7 @@ public class ModItems { public static Item ore_enriched; //final stage public static Item bedrock_ore_base; public static Item bedrock_ore; + public static Item bedrock_ore_fragment; public static Item billet_uranium; public static Item billet_u233; @@ -501,7 +502,6 @@ public class ModItems { public static Item powder_lithium; public static Item powder_zirconium; public static Item powder_sodium; - public static Item redstone_depleted; public static Item powder_australium; public static Item powder_weidanium; @@ -605,26 +605,6 @@ public class ModItems { public static Item circuit; - public static Item circuit_raw; - public static Item circuit_aluminium; - public static Item circuit_copper; - public static Item circuit_red_copper; - public static Item circuit_gold; - public static Item circuit_schrabidium; - public static Item circuit_bismuth_raw; - public static Item circuit_bismuth; - public static Item circuit_arsenic_raw; - public static Item circuit_arsenic; - public static Item circuit_tantalium_raw; - public static Item circuit_tantalium; - - public static Item circuit_targeting_tier1; - public static Item circuit_targeting_tier2; - public static Item circuit_targeting_tier3; - public static Item circuit_targeting_tier4; - public static Item circuit_targeting_tier5; - public static Item circuit_targeting_tier6; - public static Item crt_display; public static ItemEnumMulti circuit_star_piece; public static ItemEnumMulti circuit_star_component; @@ -1249,8 +1229,6 @@ public class ModItems { public static Item pellet_buckshot; public static Item pellet_flechette; public static Item pellet_chlorophyte; - public static Item pellet_mercury; - public static Item pellet_meteorite; public static Item pellet_canister; public static Item pellet_claws; public static Item pellet_charged; @@ -1819,8 +1797,6 @@ public class ModItems { public static Item battery_sc_lead; public static Item battery_sc_americium; - public static Item battery_su; - public static Item battery_su_l; public static Item battery_potato; public static Item battery_potatos; public static Item hev_battery; @@ -1891,7 +1867,6 @@ public class ModItems { public static Item euphemium_boots; public static Item apple_euphemium; public static Item watch; - public static Item euphemium_stopper; public static Item goggles; public static Item ashglasses; @@ -2383,14 +2358,6 @@ public class ModItems { public static Item book_lemegeton; public static Item burnt_bark; - public static Item smoke1; - public static Item smoke2; - public static Item smoke3; - public static Item smoke4; - public static Item smoke5; - public static Item smoke6; - public static Item smoke7; - public static Item smoke8; public static Item b_smoke1; public static Item b_smoke2; public static Item b_smoke3; @@ -2399,14 +2366,6 @@ public class ModItems { public static Item b_smoke6; public static Item b_smoke7; public static Item b_smoke8; - public static Item d_smoke1; - public static Item d_smoke2; - public static Item d_smoke3; - public static Item d_smoke4; - public static Item d_smoke5; - public static Item d_smoke6; - public static Item d_smoke7; - public static Item d_smoke8; public static Item spill1; public static Item spill2; public static Item spill3; @@ -2463,9 +2422,6 @@ public class ModItems { public static Item gasflame6; public static Item gasflame7; public static Item gasflame8;*/ - public static Item energy_ball; - public static Item discharge; - public static Item empblast; public static Item flame_1; public static Item flame_2; public static Item flame_3; @@ -2487,7 +2443,6 @@ public class ModItems { public static Item ln2_9; public static Item ln2_10; public static Item nothing; - public static Item void_anim; public static Item achievement_icon; public static Item bob_metalworks; @@ -2726,10 +2681,10 @@ public class ModItems { ore_nitrocrystalline = new ItemBedrockOre().setUnlocalizedName("ore_nitrocrystalline").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_nitrocrystalline"); ore_deepcleaned = new ItemBedrockOre().setUnlocalizedName("ore_deepcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_deepcleaned"); ore_seared = new ItemBedrockOre().setUnlocalizedName("ore_seared").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_seared"); - //ore_radcleaned = new ItemBedrockOre().setUnlocalizedName("ore_radcleaned").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_radcleaned"); ore_enriched = new ItemBedrockOre().setUnlocalizedName("ore_enriched").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ore_enriched"); bedrock_ore_base = new ItemBedrockOreBase().setUnlocalizedName("bedrock_ore_base").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); bedrock_ore = new ItemBedrockOreNew().setUnlocalizedName("bedrock_ore").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_new"); + bedrock_ore_fragment = new ItemAutogen(MaterialShapes.FRAGMENT).aot(Mats.MAT_BISMUTH, "bedrock_ore_fragment_bismuth").setUnlocalizedName("bedrock_ore_fragment").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bedrock_ore_fragment"); ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -2922,7 +2877,6 @@ public class ModItems { powder_lithium = new Item().setUnlocalizedName("powder_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lithium"); powder_zirconium = new Item().setUnlocalizedName("powder_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_zirconium"); powder_sodium = new Item().setUnlocalizedName("powder_sodium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_sodium"); - redstone_depleted = new Item().setUnlocalizedName("redstone_depleted").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":redstone_depleted"); powder_power = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_energy_alt"); powder_iodine = new ItemCustomLore().setRarity(EnumRarity.epic).setUnlocalizedName("powder_iodine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_iodine"); powder_thorium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("powder_thorium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_thorium"); @@ -3098,28 +3052,10 @@ public class ModItems { entanglement_kit = new ItemCustomLore().setUnlocalizedName("entanglement_kit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":entanglement_kit"); circuit = new ItemCircuit().setUnlocalizedName("circuit").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":circuit"); - circuit_raw = new Item().setUnlocalizedName("circuit_raw").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_raw"); - circuit_aluminium = new Item().setUnlocalizedName("circuit_aluminium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_aluminium"); - circuit_copper = new Item().setUnlocalizedName("circuit_copper").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_copper"); - circuit_red_copper = new Item().setUnlocalizedName("circuit_red_copper").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_red_copper"); - circuit_gold = new Item().setUnlocalizedName("circuit_gold").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_gold"); - circuit_schrabidium = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("circuit_schrabidium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_schrabidium"); - circuit_bismuth_raw = new Item().setUnlocalizedName("circuit_bismuth_raw").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_bismuth_raw"); - circuit_bismuth = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_bismuth").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_bismuth"); - circuit_arsenic_raw = new Item().setUnlocalizedName("circuit_arsenic_raw").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_arsenic_raw"); - circuit_arsenic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_arsenic").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_arsenic"); - circuit_tantalium_raw = new Item().setUnlocalizedName("circuit_tantalium_raw").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_tantalium_raw"); - circuit_tantalium = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_tantalium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_tantalium"); crt_display = new Item().setUnlocalizedName("crt_display").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crt_display"); circuit_star_piece = (ItemEnumMulti) new ItemEnumMulti(ScrapType.class, true, true).setUnlocalizedName("circuit_star_piece").setCreativeTab(null); circuit_star_component = (ItemEnumMulti) new ItemCircuitStarComponent().setUnlocalizedName("circuit_star_component").setCreativeTab(null); circuit_star = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_star").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_star"); - circuit_targeting_tier1 = new Item().setUnlocalizedName("circuit_targeting_tier1").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_targeting_tier1"); - circuit_targeting_tier2 = new Item().setUnlocalizedName("circuit_targeting_tier2").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_targeting_tier2"); - circuit_targeting_tier3 = new Item().setUnlocalizedName("circuit_targeting_tier3").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_targeting_tier3"); - circuit_targeting_tier4 = new Item().setUnlocalizedName("circuit_targeting_tier4").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_targeting_tier4"); - circuit_targeting_tier5 = new Item().setUnlocalizedName("circuit_targeting_tier5").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_targeting_tier5"); - circuit_targeting_tier6 = new Item().setUnlocalizedName("circuit_targeting_tier6").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_targeting_tier6"); mechanism_revolver_1 = new Item().setUnlocalizedName("mechanism_revolver_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_1"); mechanism_revolver_2 = new Item().setUnlocalizedName("mechanism_revolver_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_3"); mechanism_rifle_1 = new Item().setUnlocalizedName("mechanism_rifle_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_2"); @@ -3906,8 +3842,6 @@ public class ModItems { pellet_buckshot = new Item().setUnlocalizedName("pellet_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_lead"); pellet_flechette = new Item().setUnlocalizedName("pellet_flechette").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_flechette"); pellet_chlorophyte = new Item().setUnlocalizedName("pellet_chlorophyte").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_chlorophyte"); - pellet_mercury = new Item().setUnlocalizedName("pellet_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_mercury"); - pellet_meteorite = new Item().setUnlocalizedName("pellet_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_meteorite"); pellet_canister = new Item().setUnlocalizedName("pellet_canister").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_canister"); pellet_claws = new Item().setUnlocalizedName("pellet_claws").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_claws"); pellet_charged = new Item().setUnlocalizedName("pellet_charged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellets_charged"); @@ -4435,8 +4369,6 @@ public class ModItems { battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); - battery_su = new ItemBattery(50000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); - battery_su_l = new ItemBattery(150000, 0, 1000).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su_l"); hev_battery = new ItemFusionCore(150000).setUnlocalizedName("hev_battery").setMaxStackSize(4).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":hev_battery"); fusion_core = new ItemFusionCore(2500000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core"); fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); @@ -5413,7 +5345,6 @@ public class ModItems { shimmer_axe = new WeaponSpecial(MainRegistry.enumToolMaterialSledge).setUnlocalizedName("shimmer_axe").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":shimmer_axe"); bottle_opener = new WeaponSpecial(MainRegistry.enumToolMaterialBottleOpener).setUnlocalizedName("bottle_opener").setCreativeTab(MainRegistry.consumableTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":bottle_opener"); pch = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("pch").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":schrabidium_hammer"); - euphemium_stopper = new ItemSyringe().setUnlocalizedName("euphemium_stopper").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":euphemium_stopper"); matchstick = new ItemMatch().setUnlocalizedName("matchstick").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":matchstick"); balefire_and_steel = new ItemBalefireMatch().setUnlocalizedName("balefire_and_steel").setCreativeTab(CreativeTabs.tabTools).setFull3D().setTextureName(RefStrings.MODID + ":balefire_and_steel"); crowbar = new ModSword(MainRegistry.tMatSteel).setUnlocalizedName("crowbar").setFull3D().setTextureName(RefStrings.MODID + ":crowbar"); @@ -5488,14 +5419,6 @@ public class ModItems { book_lemegeton = new ItemBookLemegeton().setUnlocalizedName("book_lemegeton").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":book_lemegeton"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); - smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); - smoke2 = new Item().setUnlocalizedName("smoke2").setTextureName(RefStrings.MODID + ":smoke2"); - smoke3 = new Item().setUnlocalizedName("smoke3").setTextureName(RefStrings.MODID + ":smoke3"); - smoke4 = new Item().setUnlocalizedName("smoke4").setTextureName(RefStrings.MODID + ":smoke4"); - smoke5 = new Item().setUnlocalizedName("smoke5").setTextureName(RefStrings.MODID + ":smoke5"); - smoke6 = new Item().setUnlocalizedName("smoke6").setTextureName(RefStrings.MODID + ":smoke6"); - smoke7 = new Item().setUnlocalizedName("smoke7").setTextureName(RefStrings.MODID + ":smoke7"); - smoke8 = new Item().setUnlocalizedName("smoke8").setTextureName(RefStrings.MODID + ":smoke8"); b_smoke1 = new Item().setUnlocalizedName("b_smoke1").setTextureName(RefStrings.MODID + ":b_smoke1"); b_smoke2 = new Item().setUnlocalizedName("b_smoke2").setTextureName(RefStrings.MODID + ":b_smoke2"); b_smoke3 = new Item().setUnlocalizedName("b_smoke3").setTextureName(RefStrings.MODID + ":b_smoke3"); @@ -5504,14 +5427,6 @@ public class ModItems { b_smoke6 = new Item().setUnlocalizedName("b_smoke6").setTextureName(RefStrings.MODID + ":b_smoke6"); b_smoke7 = new Item().setUnlocalizedName("b_smoke7").setTextureName(RefStrings.MODID + ":b_smoke7"); b_smoke8 = new Item().setUnlocalizedName("b_smoke8").setTextureName(RefStrings.MODID + ":b_smoke8"); - d_smoke1 = new Item().setUnlocalizedName("d_smoke1").setTextureName(RefStrings.MODID + ":d_smoke1"); - d_smoke2 = new Item().setUnlocalizedName("d_smoke2").setTextureName(RefStrings.MODID + ":d_smoke2"); - d_smoke3 = new Item().setUnlocalizedName("d_smoke3").setTextureName(RefStrings.MODID + ":d_smoke3"); - d_smoke4 = new Item().setUnlocalizedName("d_smoke4").setTextureName(RefStrings.MODID + ":d_smoke4"); - d_smoke5 = new Item().setUnlocalizedName("d_smoke5").setTextureName(RefStrings.MODID + ":d_smoke5"); - d_smoke6 = new Item().setUnlocalizedName("d_smoke6").setTextureName(RefStrings.MODID + ":d_smoke6"); - d_smoke7 = new Item().setUnlocalizedName("d_smoke7").setTextureName(RefStrings.MODID + ":d_smoke7"); - d_smoke8 = new Item().setUnlocalizedName("d_smoke8").setTextureName(RefStrings.MODID + ":d_smoke8"); spill1 = new Item().setUnlocalizedName("spill1").setTextureName(RefStrings.MODID + ":spill1"); spill2 = new Item().setUnlocalizedName("spill2").setTextureName(RefStrings.MODID + ":spill2"); spill3 = new Item().setUnlocalizedName("spill3").setTextureName(RefStrings.MODID + ":spill3"); @@ -5560,9 +5475,6 @@ public class ModItems { orange6 = new Item().setUnlocalizedName("orange6").setTextureName(RefStrings.MODID + ":orange6"); orange7 = new Item().setUnlocalizedName("orange7").setTextureName(RefStrings.MODID + ":orange7"); orange8 = new Item().setUnlocalizedName("orange8").setTextureName(RefStrings.MODID + ":orange8"); - energy_ball = new Item().setUnlocalizedName("energy_ball").setTextureName(RefStrings.MODID + ":energy_ball"); - discharge = new Item().setUnlocalizedName("discharge").setTextureName(RefStrings.MODID + ":discharge"); - empblast = new Item().setUnlocalizedName("empblast").setTextureName(RefStrings.MODID + ":empblast"); flame_1 = new Item().setUnlocalizedName("flame_1").setTextureName(RefStrings.MODID + ":flame_1"); flame_2 = new Item().setUnlocalizedName("flame_2").setTextureName(RefStrings.MODID + ":flame_2"); flame_3 = new Item().setUnlocalizedName("flame_3").setTextureName(RefStrings.MODID + ":flame_3"); @@ -5584,7 +5496,6 @@ public class ModItems { ln2_9 = new Item().setUnlocalizedName("ln2_9").setTextureName(RefStrings.MODID + ":ln2_9"); ln2_10 = new Item().setUnlocalizedName("ln2_10").setTextureName(RefStrings.MODID + ":ln2_10"); nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); - void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); achievement_icon = new ItemEnumMulti(ItemEnums.EnumAchievementType.class, true, true).setUnlocalizedName("achievement_icon"); @@ -5922,7 +5833,6 @@ public class ModItems { GameRegistry.registerItem(powder_meteorite_tiny, powder_meteorite_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_euphemium, powder_euphemium.getUnlocalizedName()); GameRegistry.registerItem(powder_dineutronium, powder_dineutronium.getUnlocalizedName()); - GameRegistry.registerItem(redstone_depleted, redstone_depleted.getUnlocalizedName()); GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(dust_tiny, dust_tiny.getUnlocalizedName()); GameRegistry.registerItem(fallout, fallout.getUnlocalizedName()); @@ -5958,6 +5868,7 @@ public class ModItems { GameRegistry.registerItem(ore_byproduct, ore_byproduct.getUnlocalizedName()); GameRegistry.registerItem(bedrock_ore_base, bedrock_ore_base.getUnlocalizedName()); GameRegistry.registerItem(bedrock_ore, bedrock_ore.getUnlocalizedName()); + GameRegistry.registerItem(bedrock_ore_fragment, bedrock_ore_fragment.getUnlocalizedName()); //Crystals GameRegistry.registerItem(crystal_coal, crystal_coal.getUnlocalizedName()); @@ -6251,31 +6162,11 @@ public class ModItems { //Circuits GameRegistry.registerItem(circuit, circuit.getUnlocalizedName()); - GameRegistry.registerItem(circuit_raw, circuit_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_aluminium, circuit_aluminium.getUnlocalizedName()); - GameRegistry.registerItem(circuit_copper, circuit_copper.getUnlocalizedName()); - GameRegistry.registerItem(circuit_red_copper, circuit_red_copper.getUnlocalizedName()); - GameRegistry.registerItem(circuit_gold, circuit_gold.getUnlocalizedName()); - GameRegistry.registerItem(circuit_schrabidium, circuit_schrabidium.getUnlocalizedName()); - GameRegistry.registerItem(circuit_bismuth_raw, circuit_bismuth_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_bismuth, circuit_bismuth.getUnlocalizedName()); - GameRegistry.registerItem(circuit_arsenic_raw, circuit_arsenic_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_arsenic, circuit_arsenic.getUnlocalizedName()); - GameRegistry.registerItem(circuit_tantalium_raw, circuit_tantalium_raw.getUnlocalizedName()); - GameRegistry.registerItem(circuit_tantalium, circuit_tantalium.getUnlocalizedName()); GameRegistry.registerItem(crt_display, crt_display.getUnlocalizedName()); GameRegistry.registerItem(circuit_star_piece, circuit_star_piece.getUnlocalizedName()); GameRegistry.registerItem(circuit_star_component, circuit_star_component.getUnlocalizedName()); GameRegistry.registerItem(circuit_star, circuit_star.getUnlocalizedName()); - //Military Circuits - GameRegistry.registerItem(circuit_targeting_tier1, circuit_targeting_tier1.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier2, circuit_targeting_tier2.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier3, circuit_targeting_tier3.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier4, circuit_targeting_tier4.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier5, circuit_targeting_tier5.getUnlocalizedName()); - GameRegistry.registerItem(circuit_targeting_tier6, circuit_targeting_tier6.getUnlocalizedName()); - //Gun Mechanisms GameRegistry.registerItem(mechanism_revolver_1, mechanism_revolver_1.getUnlocalizedName()); GameRegistry.registerItem(mechanism_revolver_2, mechanism_revolver_2.getUnlocalizedName()); @@ -6300,7 +6191,6 @@ public class ModItems { GameRegistry.registerItem(assembly_schrabidium, assembly_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(assembly_nightmare, assembly_nightmare.getUnlocalizedName()); GameRegistry.registerItem(assembly_desh, assembly_desh.getUnlocalizedName()); - //GameRegistry.registerItem(assembly_pip, assembly_pip.getUnlocalizedName()); GameRegistry.registerItem(assembly_nopip, assembly_nopip.getUnlocalizedName()); GameRegistry.registerItem(assembly_smg, assembly_smg.getUnlocalizedName()); GameRegistry.registerItem(assembly_556, assembly_556.getUnlocalizedName()); @@ -6346,8 +6236,6 @@ public class ModItems { GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName()); GameRegistry.registerItem(pellet_flechette, pellet_flechette.getUnlocalizedName()); GameRegistry.registerItem(pellet_chlorophyte, pellet_chlorophyte.getUnlocalizedName()); - GameRegistry.registerItem(pellet_mercury, pellet_mercury.getUnlocalizedName()); - GameRegistry.registerItem(pellet_meteorite, pellet_meteorite.getUnlocalizedName()); GameRegistry.registerItem(pellet_canister, pellet_canister.getUnlocalizedName()); GameRegistry.registerItem(pellet_claws, pellet_claws.getUnlocalizedName()); GameRegistry.registerItem(pellet_charged, pellet_charged.getUnlocalizedName()); @@ -6469,8 +6357,6 @@ public class ModItems { GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); - GameRegistry.registerItem(battery_su, battery_su.getUnlocalizedName()); - GameRegistry.registerItem(battery_su_l, battery_su_l.getUnlocalizedName()); GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); @@ -7876,9 +7762,6 @@ public class ModItems { GameRegistry.registerItem(structure_randomly, structure_randomly.getUnlocalizedName()); GameRegistry.registerItem(structure_custommachine, structure_custommachine.getUnlocalizedName()); GameRegistry.registerItem(rod_of_discord, rod_of_discord.getUnlocalizedName()); - //GameRegistry.registerItem(analyzer, analyzer.getUnlocalizedName()); - //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); - GameRegistry.registerItem(euphemium_stopper, euphemium_stopper.getUnlocalizedName()); GameRegistry.registerItem(polaroid, polaroid.getUnlocalizedName()); GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); @@ -7946,14 +7829,6 @@ public class ModItems { GameRegistry.registerItem(holotape_damaged, holotape_damaged.getUnlocalizedName()); //Technical Items - GameRegistry.registerItem(smoke1, smoke1.getUnlocalizedName()); - GameRegistry.registerItem(smoke2, smoke2.getUnlocalizedName()); - GameRegistry.registerItem(smoke3, smoke3.getUnlocalizedName()); - GameRegistry.registerItem(smoke4, smoke4.getUnlocalizedName()); - GameRegistry.registerItem(smoke5, smoke5.getUnlocalizedName()); - GameRegistry.registerItem(smoke6, smoke6.getUnlocalizedName()); - GameRegistry.registerItem(smoke7, smoke7.getUnlocalizedName()); - GameRegistry.registerItem(smoke8, smoke8.getUnlocalizedName()); GameRegistry.registerItem(b_smoke1, b_smoke1.getUnlocalizedName()); GameRegistry.registerItem(b_smoke2, b_smoke2.getUnlocalizedName()); GameRegistry.registerItem(b_smoke3, b_smoke3.getUnlocalizedName()); @@ -7962,14 +7837,6 @@ public class ModItems { GameRegistry.registerItem(b_smoke6, b_smoke6.getUnlocalizedName()); GameRegistry.registerItem(b_smoke7, b_smoke7.getUnlocalizedName()); GameRegistry.registerItem(b_smoke8, b_smoke8.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke1, d_smoke1.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke2, d_smoke2.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke3, d_smoke3.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke4, d_smoke4.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke5, d_smoke5.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke6, d_smoke6.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke7, d_smoke7.getUnlocalizedName()); - GameRegistry.registerItem(d_smoke8, d_smoke8.getUnlocalizedName()); GameRegistry.registerItem(spill1, spill1.getUnlocalizedName()); GameRegistry.registerItem(spill2, spill2.getUnlocalizedName()); GameRegistry.registerItem(spill3, spill3.getUnlocalizedName()); @@ -8018,9 +7885,6 @@ public class ModItems { GameRegistry.registerItem(orange6, orange6.getUnlocalizedName()); GameRegistry.registerItem(orange7, orange7.getUnlocalizedName()); GameRegistry.registerItem(orange8, orange8.getUnlocalizedName()); - GameRegistry.registerItem(energy_ball, energy_ball.getUnlocalizedName()); - GameRegistry.registerItem(discharge, discharge.getUnlocalizedName()); - GameRegistry.registerItem(empblast, empblast.getUnlocalizedName()); GameRegistry.registerItem(flame_1, flame_1.getUnlocalizedName()); GameRegistry.registerItem(flame_2, flame_2.getUnlocalizedName()); GameRegistry.registerItem(flame_3, flame_3.getUnlocalizedName()); @@ -8042,7 +7906,6 @@ public class ModItems { GameRegistry.registerItem(ln2_9, ln2_9.getUnlocalizedName()); GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); - GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); GameRegistry.registerItem(achievement_icon, achievement_icon.getUnlocalizedName()); GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/block/ItemBlockBase.java b/src/main/java/com/hbm/items/block/ItemBlockBase.java index d4976b1ab..97286b3a2 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBase.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBase.java @@ -2,7 +2,6 @@ package com.hbm.items.block; import java.util.List; -import com.hbm.blocks.BlockMulti; import com.hbm.blocks.IBlockMulti; import com.hbm.blocks.IPersistentInfoProvider; import com.hbm.blocks.ITooltipProvider; @@ -18,6 +17,7 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.IIcon; +import net.minecraft.util.StatCollector; public class ItemBlockBase extends ItemBlock { @@ -41,14 +41,25 @@ public class ItemBlockBase extends ItemBlock { @Override public String getUnlocalizedName(ItemStack stack) { - if(field_150939_a instanceof BlockMulti) { - return ((BlockMulti)field_150939_a).getUnlocalizedName(stack); + if(field_150939_a instanceof IBlockMulti) { + return ((IBlockMulti) field_150939_a).getUnlocalizedName(stack); } else if(field_150939_a instanceof BlockMetalFence) { - return ((BlockMetalFence)field_150939_a).getUnlocalizedName(stack); // I considered reworking IBlockMulti instead but there are like a bajillion implementers + return ((BlockMetalFence) field_150939_a).getUnlocalizedName(stack); // I considered reworking IBlockMulti instead but there are like a bajillion implementers } else { return super.getUnlocalizedName(stack); } } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + if(field_150939_a instanceof IBlockMulti) { + String override = ((IBlockMulti) field_150939_a).getOverrideDisplayName(stack); + if(override != null) { + return override; + } + } + return ("" + StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim(); + } @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java index e8f44cfa4..612eb8442 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIDMulti.java @@ -1,8 +1,6 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -12,7 +10,6 @@ import com.hbm.main.MainRegistry; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.ChatBuilder; import com.hbm.util.I18nUtil; @@ -26,10 +23,8 @@ import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IItemControlReceiver, IGUIProvider { @@ -147,80 +142,6 @@ public class ItemFluidIDMulti extends Item implements IItemFluidIdentifier, IIte int type = stack.stackTagCompound.getInteger("fluid" + (primary ? 1 : 2)); return Fluids.fromID(type); } - - /* - * CRAPPY COMPAT SECTION - */ - - @Override - 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 instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = getType(world, x, y ,z, stack); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - return true; - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index d68a24f24..5abea5f30 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -1,13 +1,10 @@ package com.hbm.items.machine; -import java.util.Arrays; import java.util.List; -import java.util.Objects; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; -import com.hbm.tileentity.conductor.TileEntityFluidDuctSimple; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -17,11 +14,9 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { @@ -88,75 +83,6 @@ public class ItemFluidIdentifier extends Item implements IItemFluidIdentifier { return true; } - @Override - 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 instanceof TileEntityFluidDuctSimple) { - - TileEntityFluidDuctSimple duct = (TileEntityFluidDuctSimple) te; - - if(!world.isRemote) { - FluidType type = Fluids.fromID(stack.getItemDamage()); - - if (player.isSneaking()) { - markDuctsRecursively(world, x, y, z, type); - } else { - duct.setType(type); - } - } - - world.markBlockForUpdate(x, y, z); - - player.swingItem(); - } - return false; - } - - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type) { - markDuctsRecursively(world, x, y, z, type, 64); - } - - @Deprecated - private void markDuctsRecursively(World world, int x, int y, int z, FluidType type, int maxRecursion) { - TileEntity start = world.getTileEntity(x, y, z); - - if (!(start instanceof TileEntityFluidDuctSimple)) - return; - - TileEntityFluidDuctSimple startDuct = (TileEntityFluidDuctSimple) start; - FluidType oldType = startDuct.getType(); - - if (oldType == type) - return; // prevent infinite loops - - startDuct.setType(type); - - directionLoop: for (ForgeDirection direction : ForgeDirection.values()) { - for (int currentRecursion = 1; currentRecursion <= maxRecursion; currentRecursion++) { - - int nextX = x + direction.offsetX * currentRecursion; - int nextY = y + direction.offsetY * currentRecursion; - int nextZ = z + direction.offsetZ * currentRecursion; - - TileEntity te = world.getTileEntity(nextX, nextY, nextZ); - if (te instanceof TileEntityFluidDuctSimple && ((TileEntityFluidDuctSimple) te).getType() == oldType) { - - TileEntityFluidDuctSimple nextDuct = (TileEntityFluidDuctSimple) te; - long connectionsCount = Arrays.stream(nextDuct.connections).filter(Objects::nonNull).count(); // (o -> Objects.nonNull(o)) - - if (connectionsCount > 1) { - markDuctsRecursively(world, nextX, nextY, nextZ, type, maxRecursion - currentRecursion); - continue directionLoop; - } else { - nextDuct.setType(type); - } - } else { - break; - } - } - } - } - @Override @SideOnly(Side.CLIENT) public boolean requiresMultipleRenderPasses() { diff --git a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java index 4aaedb620..dd46758f1 100644 --- a/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java +++ b/src/main/java/com/hbm/items/special/ItemBedrockOreNew.java @@ -1,6 +1,6 @@ package com.hbm.items.special; -import static com.hbm.inventory.OreDictManager.*; +import static com.hbm.inventory.material.Mats.*; import static com.hbm.items.special.ItemBedrockOreNew.ProcessingTrait.*; import java.util.List; @@ -13,11 +13,10 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats.MaterialStack; +import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.NTMMaterial; import com.hbm.inventory.material.NTMMaterial.SmeltingBehavior; -import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.lib.RefStrings; import com.hbm.render.icon.RGBMutatorInterpolatedComponentRemap; import com.hbm.render.icon.TextureAtlasSpriteMutatable; @@ -30,7 +29,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; -import net.minecraftforge.oredict.OreDictionary; public class ItemBedrockOreNew extends Item { @@ -115,26 +113,39 @@ public class ItemBedrockOreNew extends Item { list.add(I18nUtil.resolveKey(this.getUnlocalizedNameInefficiently(stack) + ".trait." + trait.name().toLowerCase(Locale.US))); } } + + public static class BedrockOreOutput { + public NTMMaterial mat; + public int amount; + public BedrockOreOutput(NTMMaterial mat, int amount) { + this.mat = mat; + this.amount = amount; + } + } + + public static BedrockOreOutput o(NTMMaterial mat, int amount) { + return new BedrockOreOutput(mat, amount); + } public static enum BedrockOreType { - // primary sulfuric solvent radsolvent - LIGHT_METAL( 0xFFFFFF, 0x353535, "light", IRON, CU, TI, AL, AL, CHLOROCALCITE, LI, NA, CHLOROCALCITE, LI, NA), - HEAVY_METAL( 0x868686, 0x000000, "heavy", W, PB, GOLD, GOLD, BE, W, PB, GOLD, BI, BI, GOLD), - RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", CO, EnumChunkType.RARE, B, LA, NB, ND, SR, ZR, NB, ND, SR), - ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", U, TH232, RA226, RA226, PO210, RA226, RA226, PO210, TC99, TC99, U238), - NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", COAL, S, LIGNITE, KNO, F, P_RED, F, S, CHLOROCALCITE, SI, SI), - CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", REDSTONE, CINNABAR, SODALITE, ASBESTOS, DIAMOND, CINNABAR, ASBESTOS, EMERALD, BORAX, MOLYSITE, SODALITE); + // primary sulfuric solvent radsolvent + LIGHT_METAL( 0xFFFFFF, 0x353535, "light", o(MAT_IRON, 9), o(MAT_COPPER, 9), o(MAT_TITANIUM, 9), o(MAT_ALUMINIUM, 5), o(MAT_ALUMINIUM, 4), o(MAT_CHLOROCALCITE, 5), o(MAT_LITHIUM, 5), o(MAT_SODIUM, 3), o(MAT_CHLOROCALCITE, 6), o(MAT_LITHIUM, 6), o(MAT_SODIUM, 6)), + HEAVY_METAL( 0x868686, 0x000000, "heavy", o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 2), o(MAT_GOLD, 2), o(MAT_BERYLLIUM, 3), o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 5), o(MAT_BISMUTH, 1), o(MAT_BISMUTH, 1), o(MAT_GOLD, 6)), + RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", o(MAT_COBALT, 5), o(MAT_RAREEARTH, 5),o(MAT_BORON, 5), o(MAT_LANTHANIUM, 3), o(MAT_NIOBIUM, 4), o(MAT_NEODYMIUM, 3), o(MAT_STRONTIUM, 3), o(MAT_ZIRCONIUM, 3), o(MAT_NIOBIUM, 5), o(MAT_NEODYMIUM, 5), o(MAT_STRONTIUM, 3)), + ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", o(MAT_URANIUM, 4), o(MAT_THORIUM, 4), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_TECHNETIUM, 1), o(MAT_TECHNETIUM, 1), o(MAT_U238, 1)), + NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", o(MAT_COAL, 9), o(MAT_SULFUR, 9), o(MAT_LIGNITE, 9), o(MAT_KNO, 6), o(MAT_FLUORITE, 6), o(MAT_PHOSPHORUS, 5), o(MAT_FLUORITE, 6), o(MAT_SULFUR, 6), o(MAT_CHLOROCALCITE, 6), o(MAT_SILICON, 2), o(MAT_SILICON, 2)), + CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", o(MAT_REDSTONE, 9), o(MAT_CINNABAR, 4), o(MAT_SODALITE, 9), o(MAT_ASBESTOS, 6), o(MAT_DIAMOND, 3), o(MAT_CINNABAR, 3), o(MAT_ASBESTOS, 5), o(MAT_EMERALD, 3), o(MAT_BORAX, 3), o(MAT_MOLYSITE, 3), o(MAT_SODALITE, 9)); //sediment public int light; public int dark; public String suffix; - public Object primary1, primary2; - public Object byproductAcid1, byproductAcid2, byproductAcid3; - public Object byproductSolvent1, byproductSolvent2, byproductSolvent3; - public Object byproductRad1, byproductRad2, byproductRad3; + public BedrockOreOutput primary1, primary2; + public BedrockOreOutput byproductAcid1, byproductAcid2, byproductAcid3; + public BedrockOreOutput byproductSolvent1, byproductSolvent2, byproductSolvent3; + public BedrockOreOutput byproductRad1, byproductRad2, byproductRad3; - private BedrockOreType(int light, int dark, String suffix, Object p1, Object p2, Object bA1, Object bA2, Object bA3, Object bS1, Object bS2, Object bS3, Object bR1, Object bR2, Object bR3) { + private BedrockOreType(int light, int dark, String suffix, BedrockOreOutput p1, BedrockOreOutput p2, BedrockOreOutput bA1, BedrockOreOutput bA2, BedrockOreOutput bA3, BedrockOreOutput bS1, BedrockOreOutput bS2, BedrockOreOutput bS3, BedrockOreOutput bR1, BedrockOreOutput bR2, BedrockOreOutput bR3) { this.light = light; this.dark = dark; this.suffix = suffix; @@ -145,43 +156,15 @@ public class ItemBedrockOreNew extends Item { } } - public static MaterialStack toFluid(Object o, int amount) { - if(o instanceof DictFrame) { - NTMMaterial mat = Mats.matByName.get(((DictFrame) o).mats[0]); - if(mat != null && mat.smeltable == SmeltingBehavior.SMELTABLE) { - return new MaterialStack(mat, amount); - } + public static MaterialStack toFluid(BedrockOreOutput o, double amount) { + if(o.mat != null && o.mat.smeltable == SmeltingBehavior.SMELTABLE) { + return new MaterialStack(o.mat, (int) Math.ceil(MaterialShapes.FRAGMENT.q(o.amount) * amount)); } return null; } - - public static ItemStack extract(Object o) { - return extract(o, 1); - } - public static ItemStack extract(Object o, int amount) { - if(o instanceof EnumChunkType) return new ItemStack(ModItems.chunk_ore, amount, ((EnumChunkType) o).ordinal()); - if(o instanceof DictFrame) { - DictFrame frame = (DictFrame) o; - List gems = OreDictionary.getOres(frame.gem(), false); if(!gems.isEmpty()) return fromList(gems, amount); - List dusts = OreDictionary.getOres(frame.dust(), false); if(!dusts.isEmpty()) return fromList(dusts, amount); - List crystals = OreDictionary.getOres(frame.crystal(), false); if(!crystals.isEmpty()) return fromList(crystals, amount); - List billets = OreDictionary.getOres(frame.billet(), false); if(!billets.isEmpty()) return fromList(billets, amount); - List ingots = OreDictionary.getOres(frame.ingot(), false); if(!ingots.isEmpty()) return fromList(ingots, amount); - } - //Solely for recipe handling, to make the code more compact - if(o instanceof ItemStack){ - ItemStack stack = (ItemStack) o; - stack.stackSize = amount; - return stack; - } - return new ItemStack(ModItems.nothing); - } - - private static ItemStack fromList(List list, int amount) { - ItemStack first = list.get(0).copy(); - first.stackSize = amount; - return first; + public static ItemStack extract(BedrockOreOutput o, double amount) { + return new ItemStack(ModItems.bedrock_ore_fragment, Math.min((int) Math.ceil(o.amount * amount), 64), o.mat.id); } @Override diff --git a/src/main/java/com/hbm/items/special/ItemSyringe.java b/src/main/java/com/hbm/items/special/ItemSyringe.java index d50a57074..48b6e928b 100644 --- a/src/main/java/com/hbm/items/special/ItemSyringe.java +++ b/src/main/java/com/hbm/items/special/ItemSyringe.java @@ -360,10 +360,6 @@ public class ItemSyringe extends Item { if(this == ModItems.syringe_awesome) { return EnumRarity.uncommon; } - if(this == ModItems.euphemium_stopper) { - return EnumRarity.epic; - } - return EnumRarity.common; } @@ -527,14 +523,6 @@ public class ItemSyringe extends Item { } } - if(this == ModItems.euphemium_stopper) { - if(!world.isRemote) { - entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 30 * 20, 9)); - entity.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 30 * 20, 9)); - } - } - if(this == ModItems.syringe_mkunicorn) { if(!world.isRemote) { HbmLivingProps.setContagion(entity, 3 * 60 * 60 * 20); diff --git a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java index 0d2739cf9..b8cbe6b8e 100644 --- a/src/main/java/com/hbm/items/tool/ItemColtanCompass.java +++ b/src/main/java/com/hbm/items/tool/ItemColtanCompass.java @@ -1,5 +1,6 @@ package com.hbm.items.tool; +import java.util.List; import java.util.Random; import com.hbm.main.MainRegistry; @@ -12,6 +13,7 @@ import net.minecraft.client.renderer.texture.TextureCompass; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.texture.TextureUtil; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -24,6 +26,14 @@ public class ItemColtanCompass extends Item { public int lastZ = 0; public long lease = 0; + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + list.add("Points towards the coltan deposit."); + list.add("The deposit is a large area where coltan ore spawns like standard ore,"); + list.add("it's not one large blob of ore on that exact location, dipshit."); + } + @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean inhand) { diff --git a/src/main/java/com/hbm/items/weapon/GunFolly.java b/src/main/java/com/hbm/items/weapon/GunFolly.java index b796d477a..c4bb2506f 100644 --- a/src/main/java/com/hbm/items/weapon/GunFolly.java +++ b/src/main/java/com/hbm/items/weapon/GunFolly.java @@ -1,6 +1,5 @@ package com.hbm.items.weapon; -import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.interfaces.IHoldableWeapon; @@ -65,20 +64,6 @@ public class GunFolly extends Item implements IHoldableWeapon { if (!world.isRemote) { EntityBulletBaseNT bullet = new EntityBulletBaseNT(world, BulletConfigSyncingUtil.TEST_CONFIG, player); world.spawnEntityInWorld(bullet); - - for(int i = 0; i < 25; i++) { - EntitySSmokeFX flame = new EntitySSmokeFX(world); - - flame.motionX = player.getLookVec().xCoord; - flame.motionY = player.getLookVec().yCoord; - flame.motionZ = player.getLookVec().zCoord; - - flame.posX = player.posX + flame.motionX + world.rand.nextGaussian() * 0.35; - flame.posY = player.posY + flame.motionY + world.rand.nextGaussian() * 0.35 + player.eyeHeight; - flame.posZ = player.posZ + flame.motionZ + world.rand.nextGaussian() * 0.35; - - world.spawnEntityInWorld(flame); - } } } } diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java index 30b1fdeab..d6482e22f 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoArty.java @@ -17,7 +17,6 @@ import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; @@ -28,6 +27,7 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.particle.SpentCasing; import com.hbm.particle.SpentCasing.CasingType; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.potion.HbmPotion; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -201,7 +201,6 @@ public class ItemAmmoArty extends Item { } public static void standardExplosion(EntityArtilleryShell shell, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks) { - shell.worldObj.playSoundEffect(shell.posX, shell.posY, shell.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rand.nextFloat() * 0.2F); Vec3 vec = Vec3.createVectorHelper(shell.motionX, shell.motionY, shell.motionZ).normalize(); ExplosionVNT xnt = new ExplosionVNT(shell.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { @@ -210,7 +209,7 @@ public class ItemAmmoArty extends Item { } xnt.setEntityProcessor(new EntityProcessorCross(7.5D).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); - xnt.setSFX(new ExplosionEffectStandard()); + //xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); shell.killAndClear(); } @@ -246,9 +245,9 @@ public class ItemAmmoArty extends Item { private void init() { /* STANDARD SHELLS */ - this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); }}; - this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); }}; - this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); }}; + this.itemTypes[NORMAL] = new ArtilleryShell("ammo_arty", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 10F, 3F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 10, 2F, 0.5F, 25F, 5, 0, 20, 0.75F, 1F, -2F, 150); }}; + this.itemTypes[CLASSIC] = new ArtilleryShell("ammo_arty_classic", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 5F, false); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 0, 50, 1F, 3F, -2F, 200); }}; + this.itemTypes[EXPLOSIVE] = new ArtilleryShell("ammo_arty_he", SpentCasing.COLOR_CASE_16INCH) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { standardExplosion(shell, mop, 15F, 3F, true); ExplosionCreator.composeEffect(shell.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 16, 50, 1F, 3F, -2F, 200); }}; /* MINI NUKE */ this.itemTypes[MINI_NUKE] = new ArtilleryShell("ammo_arty_mini_nuke", SpentCasing.COLOR_CASE_16INCH_NUKE) { @@ -271,6 +270,7 @@ public class ItemAmmoArty extends Item { /* PHOSPHORUS */ this.itemTypes[PHOSPHORUS] = new ArtilleryShell("ammo_arty_phosphorus", SpentCasing.COLOR_CASE_16INCH_PHOS) { public void onImpact(EntityArtilleryShell shell, MovingObjectPosition mop) { + shell.worldObj.playSoundEffect(shell.posX, shell.posY, shell.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rand.nextFloat() * 0.2F); standardExplosion(shell, mop, 10F, 3F, false); //shell.worldObj.playSoundEffect(shell.posX, shell.posY, shell.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + shell.worldObj.rand.nextFloat() * 0.2F); ExplosionLarge.spawnShrapnels(shell.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 15); diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java index a5784742f..61ad4299d 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmoHIMARS.java @@ -12,12 +12,12 @@ import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.BlockMutatorDebris; import com.hbm.explosion.vanillant.standard.BlockProcessorStandard; import com.hbm.explosion.vanillant.standard.EntityProcessorCross; -import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.particle.helper.ExplosionCreator; import com.hbm.potion.HbmPotion; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -148,7 +148,6 @@ public class ItemAmmoHIMARS extends Item { } public static void standardExplosion(EntityArtilleryRocket rocket, MovingObjectPosition mop, float size, float rangeMod, boolean breaksBlocks, Block slag, int slagMeta) { - rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); Vec3 vec = Vec3.createVectorHelper(rocket.motionX, rocket.motionY, rocket.motionZ).normalize(); ExplosionVNT xnt = new ExplosionVNT(rocket.worldObj, mop.hitVec.xCoord - vec.xCoord, mop.hitVec.yCoord - vec.yCoord, mop.hitVec.zCoord - vec.zCoord, size); if(breaksBlocks) { @@ -157,7 +156,6 @@ public class ItemAmmoHIMARS extends Item { } xnt.setEntityProcessor(new EntityProcessorCross(7.5).withRangeMod(rangeMod)); xnt.setPlayerProcessor(new PlayerProcessorStandard()); - xnt.setSFX(new ExplosionEffectStandard()); xnt.explode(); rocket.killAndClear(); } @@ -171,10 +169,10 @@ public class ItemAmmoHIMARS extends Item { private void init() { /* STANDARD ROCKETS */ - this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); }}; - this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.block_slag, 1); }}; + this.itemTypes[SMALL] = new HIMARSRocket("standard", "himars_standard", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); ExplosionCreator.composeEffect(rocket.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 0, 50, 1F, 3F, -2F, 200); }}; + this.itemTypes[SMALL_HE] = new HIMARSRocket("standard_he", "himars_standard_he", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.block_slag, 1); ExplosionCreator.composeEffect(rocket.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 15, 5F, 1F, 45F, 10, 16, 50, 1F, 3F, -2F, 200); }}; this.itemTypes[SMALL_LAVA] = new HIMARSRocket("standard_lava", "himars_standard_lava", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 20F, 3F, true, ModBlocks.volcanic_lava_block, 0); }}; - this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.block_slag, 1); }}; + this.itemTypes[LARGE] = new HIMARSRocket("single", "himars_single", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { standardExplosion(rocket, mop, 50F, 5F, true, ModBlocks.block_slag, 1); ExplosionCreator.composeEffect(rocket.worldObj, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 30, 6.5F, 2F, 65F, 25, 16, 50, 1.25F, 3F, -2F, 350); }}; this.itemTypes[SMALL_MINI_NUKE] = new HIMARSRocket("standard_mini_nuke", "himars_standard_mini_nuke", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { @@ -186,6 +184,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_WP] = new HIMARSRocket("standard_wp", "himars_standard_wp", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { + rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); standardExplosion(rocket, mop, 20F, 3F, false, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); ExplosionChaos.burn(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 20); @@ -209,6 +208,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[SMALL_TB] = new HIMARSRocket("standard_tb", "himars_standard_tb", 0) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { + rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); standardExplosion(rocket, mop, 20F, 10F, true, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 20); @@ -216,6 +216,7 @@ public class ItemAmmoHIMARS extends Item { this.itemTypes[LARGE_TB] = new HIMARSRocket("single_tb", "himars_single_tb", 1) { public void onImpact(EntityArtilleryRocket rocket, MovingObjectPosition mop) { + rocket.worldObj.playSoundEffect(rocket.posX, rocket.posY, rocket.posZ, "hbm:weapon.explosionMedium", 20.0F, 0.9F + rocket.worldObj.rand.nextFloat() * 0.2F); standardExplosion(rocket, mop, 50F, 12F, true, ModBlocks.block_slag, 1); ExplosionLarge.spawnShrapnels(rocket.worldObj, (int) mop.hitVec.xCoord, (int) mop.hitVec.yCoord, (int) mop.hitVec.zCoord, 30); standardMush(rocket, mop, 35); diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index cc24f3dd0..8df03c941 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -7,13 +7,9 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.mob.EntityHunterChopper; import com.hbm.entity.projectile.EntityChopperMine; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.ModItems; -import com.hbm.tileentity.TileEntityProxyInventory; import api.hbm.energymk2.IBatteryItem; import api.hbm.energymk2.IEnergyConnectorBlock; @@ -109,26 +105,6 @@ public class Library { return false; } - - public static boolean checkFluidConnectables(World world, int x, int y, int z, FluidType type) - { - TileEntity tileentity = world.getTileEntity(x, y, z); - if(tileentity != null && tileentity instanceof IFluidDuct && ((IFluidDuct)tileentity).getType() == type) - return true; - if((tileentity != null && (tileentity instanceof IFluidAcceptor || - tileentity instanceof IFluidSource)) || - world.getBlock(x, y, z) == ModBlocks.fusion_hatch || - world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher || - world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table || - world.getBlock(x, y, z) == ModBlocks.rbmk_loader) { - return true; - } - - if(world.getBlock(x, y, z) == ModBlocks.machine_mining_laser && tileentity instanceof TileEntityProxyInventory) - return true; - - return false; - } public static EntityLivingBase getClosestEntityForChopper(World world, double x, double y, double z, double radius) { double d4 = -1.0D; @@ -319,8 +295,6 @@ public class Library { */ } - public static void transmitFluid(int x, int y, int z, boolean newTact, IFluidSource that, World worldObj, FluidType type) { } - public static boolean isArrayEmpty(Object[] array) { if(array == null) return true; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 48bec929b..6f3b52609 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -53,6 +53,7 @@ import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight; import com.hbm.blocks.machine.MachineFan.TileEntityFan; @@ -115,7 +116,6 @@ import com.hbm.sound.AudioWrapper; import com.hbm.sound.AudioWrapperClient; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -192,6 +192,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPedestal.class, new RenderPedestalTile()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlushie.class, new RenderPlushie()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEmitter.class, new RenderEmitter()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLantern.class, new RenderLantern()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLanternBehemoth.class, new RenderLanternBehemoth()); @@ -347,7 +348,6 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzLauncher.class, new RenderSoyuzLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzCapsule.class, new RenderCapsule()); //network - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylon.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityConnector.class, new RenderConnector()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonMedium.class, new RenderPylonMedium()); @@ -627,7 +627,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityBulletBaseNT.class, new RenderBullet()); RenderingRegistry.registerEntityRenderingHandler(EntityRainbow.class, new RenderRainbow()); RenderingRegistry.registerEntityRenderingHandler(EntityNightmareBlast.class, new RenderOminousBullet()); - RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.energy_ball)); + RenderingRegistry.registerEntityRenderingHandler(EntityFire.class, new RenderFireball(ModItems.nothing)); RenderingRegistry.registerEntityRenderingHandler(EntityPlasmaBeam.class, new RenderBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityLaserBeam.class, new RenderBeam2()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerBeam.class, new RenderBeam3()); @@ -635,7 +635,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityExplosiveBeam.class, new RenderBeam5()); RenderingRegistry.registerEntityRenderingHandler(EntityModBeam.class, new RenderBeam6()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeLaser.class, new RenderSiegeLaser()); - RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.energy_ball)); + RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.nothing)); RenderingRegistry.registerEntityRenderingHandler(EntityLaser.class, new RenderLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityBombletZeta.class, new RenderBombletTheta()); RenderingRegistry.registerEntityRenderingHandler(EntityMeteor.class, new RenderMeteor()); @@ -818,20 +818,15 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityPlasticBag.class, new RenderPlasticBag()); RenderingRegistry.registerEntityRenderingHandler(EntityPigeon.class, new RenderPigeon(new ModelPigeon(), 0.3F)); //"particles" - RenderingRegistry.registerEntityRenderingHandler(EntitySmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.smoke1, ModItems.smoke2, ModItems.smoke3, ModItems.smoke4, ModItems.smoke5, ModItems.smoke6, ModItems.smoke7, ModItems.smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityBSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.b_smoke1, ModItems.b_smoke2, ModItems.b_smoke3, ModItems.b_smoke4, ModItems.b_smoke5, ModItems.b_smoke6, ModItems.b_smoke7, ModItems.b_smoke8 })); - RenderingRegistry.registerEntityRenderingHandler(EntityDSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.d_smoke1, ModItems.d_smoke2, ModItems.d_smoke3, ModItems.d_smoke4, ModItems.d_smoke5, ModItems.d_smoke6, ModItems.d_smoke7, ModItems.d_smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityChlorineFX.class, new MultiCloudRenderer(new Item[] { ModItems.chlorine1, ModItems.chlorine2, ModItems.chlorine3, ModItems.chlorine4, ModItems.chlorine5, ModItems.chlorine6, ModItems.chlorine7, ModItems.chlorine8 })); RenderingRegistry.registerEntityRenderingHandler(EntityPinkCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.pc1, ModItems.pc2, ModItems.pc3, ModItems.pc4, ModItems.pc5, ModItems.pc6, ModItems.pc7, ModItems.pc8 })); RenderingRegistry.registerEntityRenderingHandler(com.hbm.entity.particle.EntityCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8 })); RenderingRegistry.registerEntityRenderingHandler(EntityOrangeFX.class, new MultiCloudRenderer(new Item[] { ModItems.orange1, ModItems.orange2, ModItems.orange3, ModItems.orange4, ModItems.orange5, ModItems.orange6, ModItems.orange7, ModItems.orange8 })); RenderingRegistry.registerEntityRenderingHandler(EntityFogFX.class, new FogRenderer()); - RenderingRegistry.registerEntityRenderingHandler(EntitySSmokeFX.class, new SSmokeRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityOilSpillFX.class, new SpillRenderer(ModItems.nuclear_waste)); RenderingRegistry.registerEntityRenderingHandler(EntityGasFX.class, new GasRenderer(ModItems.nuclear_waste)); - RenderingRegistry.registerEntityRenderingHandler(EntityCombineBall.class, new RenderSnowball(ModItems.energy_ball)); RenderingRegistry.registerEntityRenderingHandler(EntityEMPBlast.class, new RenderEMPBlast()); - RenderingRegistry.registerEntityRenderingHandler(EntityTSmokeFX.class, new TSmokeRenderer(ModItems.nuclear_waste)); } @Override diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index d7836ade0..4ece7c653 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -9,6 +9,7 @@ import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType; import com.hbm.blocks.generic.BlockGenericStairs; import com.hbm.blocks.generic.BlockMultiSlab; import com.hbm.blocks.generic.BlockNTMFlower.EnumFlowerType; +import com.hbm.blocks.generic.BlockPlushie.PlushieType; import com.hbm.config.GeneralConfig; import com.hbm.crafting.*; import com.hbm.crafting.handlers.*; @@ -446,9 +447,9 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.lamp_tritium_green_off, 1), new Object[] { KEY_ANYGLASS, P_RED.dust(), Fluids.TRITIUM.getDict(1_000), S.dust() }); addShapelessAuto(new ItemStack(ModBlocks.lamp_tritium_blue_off, 1), new Object[] { KEY_ANYGLASS, P_RED.dust(), Fluids.TRITIUM.getDict(1_000), AL.dust() }); addRecipeAuto(new ItemStack(ModBlocks.lantern, 1), new Object[] { "PGP", " S ", " S ", 'P', KEY_ANYPANE, 'G', Items.glowstone_dust, 'S', ModBlocks.steel_beam }); - addRecipeAuto(new ItemStack(ModBlocks.spotlight_incandescent, 8), new Object[] { " G ", " T ", " I ", 'G', KEY_ANYPANE, 'T', W.wireFine(), 'I', IRON.ingot() }); - addRecipeAuto(new ItemStack(ModBlocks.spotlight_fluoro, 8), new Object[] { " G ", " M ", " A ", 'G', KEY_ANYPANE, 'M', ModItems.ingot_mercury, 'A', ModItems.plate_aluminium }); - addRecipeAuto(new ItemStack(ModBlocks.spotlight_halogen, 8), new Object[] { " G ", " B ", " S ", 'G', KEY_ANYPANE, 'B', ModItems.powder_bromine, 'S', STEEL.plate() }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_incandescent, 8), new Object[] { "G", "T", "I", 'G', KEY_ANYPANE, 'T', W.wireFine(), 'I', IRON.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_fluoro, 8), new Object[] { "G", "M", "A", 'G', KEY_ANYPANE, 'M', ModItems.ingot_mercury, 'A', ModItems.plate_aluminium }); + addRecipeAuto(new ItemStack(ModBlocks.spotlight_halogen, 8), new Object[] { "G", "B", "S", 'G', KEY_ANYPANE, 'B', ModItems.powder_bromine, 'S', STEEL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.floodlight, 2), new Object[] { "CSC", "TST", "G G", 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CAPACITOR), 'S', STEEL.plate(), 'T', ModItems.coil_tungsten, 'G', KEY_ANYPANE }); addRecipeAuto(new ItemStack(ModBlocks.barbed_wire, 16), new Object[] { "AIA", "I I", "AIA", 'A', STEEL.wireFine(), 'I', IRON.ingot() }); @@ -580,12 +581,6 @@ public class CraftingManager { addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), new Object[] { "OSO", "SVS", "OSO", 'S', ModItems.singularity_spark, 'V', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_2500), 'O', ModItems.ingot_osmiridium }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_power), new Object[] { "YSY", "SCS", "YSY", 'S', ModItems.singularity_spark, 'C', ItemBattery.getEmptyBattery(ModItems.battery_spark_cell_10000), 'Y', ModItems.billet_yharonite }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "R", "C", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su), new Object[] { "P", "C", "R", 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', AL.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', AL.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "CPC", "RPR", 'W', CU.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); - addRecipeAuto(ItemBattery.getFullBattery(ModItems.battery_su_l), new Object[] { " W ", "RPR", "CPC", 'W', CU.wireFine(), 'P', Items.paper, 'R', REDSTONE.dust(), 'C', COAL.dust() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, AL.wireFine(), CU.wireFine() }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); @@ -631,9 +626,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_neo, 8, 2), new Object[] { "ASA", " ", "ASA", 'S', STEEL.plate(), 'A', AL.plate() }); addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_paintable, 8), new Object[] { "SAS", "A A", "SAS", 'S', STEEL.ingot(), 'A', AL.plate() }); addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_gauge), new Object[] { ModBlocks.fluid_duct_paintable, STEEL.ingot(), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC) }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " D ", "SAS", 'S', STEEL.plate(), 'A', AL.plate(), 'D', ModItems.ducttape }); - addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1, 0), new Object[] { ModBlocks.fluid_duct }); - addRecipeAuto(new ItemStack(ModBlocks.fluid_duct_solid, 8), new Object[] { "SAS", "ADA", "SAS", 'S', STEEL.ingot(), 'A', AL.plate(), 'D', ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.fluid_valve, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModBlocks.fluid_switch, 1), new Object[] { "S", "W", 'S', REDSTONE.dust(), 'W', ModBlocks.fluid_duct_paintable }); addRecipeAuto(new ItemStack(ModItems.template_folder, 1), new Object[] { "LPL", "BPB", "LPL", 'P', Items.paper, 'L', "dye", 'B', "dye" }); @@ -723,10 +715,6 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModBlocks.fluid_duct_neo, 1), new Object[] { new ItemStack(ModItems.fluid_duct, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 1), new Object[] { new ItemStack(ModItems.battery_su, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(ModItems.redstone_depleted, 2), new Object[] { new ItemStack(ModItems.battery_su_l, 1, OreDictionary.WILDCARD_VALUE) }); - addShapelessAuto(new ItemStack(Items.redstone, 1), new Object[] { ModItems.redstone_depleted, ModItems.redstone_depleted }); - addRecipeAuto(new ItemStack(Blocks.torch, 3), new Object[] { "L", "S", 'L', LIGNITE.gem(), 'S', KEY_STICK }); addRecipeAuto(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ANY_COKE.gem(), 'S', KEY_STICK }); @@ -1174,6 +1162,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PCP", "PCP", 'P', ModItems.plate_polymer, 'C', CU.ingot()); addShapelessAuto(new ItemStack(ModItems.missile_soyuz), new ItemStack(ModItems.missile_carrier)); + + addRecipeAuto(new ItemStack(ModBlocks.plushie, 1, PlushieType.YOMI.ordinal()), "LCR", 'L', "cropCarrot", 'C', ModItems.rag, 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE)); + addRecipeAuto(new ItemStack(ModBlocks.plushie, 1, PlushieType.NUMBERNINE.ordinal()), " C ", "LCR", " C ", 'L', ModItems.cigarette, 'C', ModItems.rag, 'R', COAL.gem()); } public static void crumple() { @@ -1214,13 +1205,11 @@ public class CraftingManager { if(Loader.isModLoaded("Mekanism")) { Item disassembler = (Item) Item.itemRegistry.getObject("Mekanism:AtomicDisassembler"); - if(disassembler != null) addRecipeAuto(new ItemStack(disassembler, 1), "GAG", "EIE", " I ", 'G', GOLD.plateCast(), 'A', "alloyUltimate", 'E', "battery", 'I', "ingotRefinedObsidian"); } if(Loader.isModLoaded("MekanismGenerators")) { Block generator = (Block) Block.blockRegistry.getObject("MekanismGenerators:Generator"); - if(generator != null) addRecipeAuto(new ItemStack(generator, 1, 6), " T ", "TAT", "BCB", 'T', TI.plateCast(), 'A', "alloyAdvanced", 'B', "battery", 'C', ANY_PLASTIC.ingot()); } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 4dde96ef6..27e0248d4 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1346,6 +1346,52 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.machine_boiler_electric_off"); ignoreMappings.add("hbm:tile.machine_boiler_electric_on"); ignoreMappings.add("hbm:tile.watz_control"); + ignoreMappings.add("hbm:item.circuit_raw"); + ignoreMappings.add("hbm:item.circuit_aluminium"); + ignoreMappings.add("hbm:item.circuit_copper"); + ignoreMappings.add("hbm:item.circuit_red_copper"); + ignoreMappings.add("hbm:item.circuit_gold"); + ignoreMappings.add("hbm:item.circuit_schrabidium"); + ignoreMappings.add("hbm:item.circuit_bismuth_raw"); + ignoreMappings.add("hbm:item.circuit_bismuth"); + ignoreMappings.add("hbm:item.circuit_arsenic_raw"); + ignoreMappings.add("hbm:item.circuit_arsenic"); + ignoreMappings.add("hbm:item.circuit_tantalium_raw"); + ignoreMappings.add("hbm:item.circuit_tantalium"); + ignoreMappings.add("hbm:item.circuit_targeting_tier1"); + ignoreMappings.add("hbm:item.circuit_targeting_tier2"); + ignoreMappings.add("hbm:item.circuit_targeting_tier3"); + ignoreMappings.add("hbm:item.circuit_targeting_tier4"); + ignoreMappings.add("hbm:item.circuit_targeting_tier5"); + ignoreMappings.add("hbm:item.circuit_targeting_tier6"); + ignoreMappings.add("hbm:tile.fluid_duct"); + ignoreMappings.add("hbm:tile.fluid_duct_solid"); + ignoreMappings.add("hbm:item.void_anim"); + ignoreMappings.add("hbm:item.pellet_mercury"); + ignoreMappings.add("hbm:item.pellet_meteorite"); + ignoreMappings.add("hbm:item.d_smoke1"); + ignoreMappings.add("hbm:item.d_smoke2"); + ignoreMappings.add("hbm:item.d_smoke3"); + ignoreMappings.add("hbm:item.d_smoke4"); + ignoreMappings.add("hbm:item.d_smoke5"); + ignoreMappings.add("hbm:item.d_smoke6"); + ignoreMappings.add("hbm:item.d_smoke7"); + ignoreMappings.add("hbm:item.d_smoke8"); + ignoreMappings.add("hbm:item.smoke1"); + ignoreMappings.add("hbm:item.smoke2"); + ignoreMappings.add("hbm:item.smoke3"); + ignoreMappings.add("hbm:item.smoke4"); + ignoreMappings.add("hbm:item.smoke5"); + ignoreMappings.add("hbm:item.smoke6"); + ignoreMappings.add("hbm:item.smoke7"); + ignoreMappings.add("hbm:item.smoke8"); + ignoreMappings.add("hbm:item.battery_su"); + ignoreMappings.add("hbm:item.battery_su_l"); + ignoreMappings.add("hbm:item.redstone_depleted"); + ignoreMappings.add("hbm:item.euphemium_stopper"); + ignoreMappings.add("hbm:item.energy_ball"); + ignoreMappings.add("hbm:item.discharge"); + ignoreMappings.add("hbm:item.empblast"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index a2b9b5215..394c4feab 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -5,6 +5,7 @@ import java.util.List; import codechicken.nei.recipe.*; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; +import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; import com.hbm.config.CustomMachineConfigJSON; import com.hbm.handler.nei.CustomMachineHandler; import com.hbm.items.ModItems; @@ -104,6 +105,21 @@ public class NEIConfig implements IConfigureNEI { } }); + + API.registerHighlightIdentifier(ModBlocks.plushie, new IHighlightHandler() { + @Override public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) { + int x = mop.blockX; + int y = mop.blockY; + int z = mop.blockZ; + TileEntity te = world.getTileEntity(x, y, z); + if(te instanceof TileEntityPlushie) { + TileEntityPlushie plush = (TileEntityPlushie) te; + return new ItemStack(ModBlocks.plushie, 1, plush.type.ordinal()); + } + return null; + } + @Override public List handleTextData(ItemStack itemStack, World world, EntityPlayer player, MovingObjectPosition mop, List currenttip, Layout layout) { return currenttip; } + }); } public static void registerHandler(Object o) { diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index c17abb8a5..ee7d42e5f 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -16,6 +16,8 @@ public class NEIRegistry { if(!handlers.isEmpty()) return handlers; + handlers.add(new AnvilRecipeHandler()); + handlers.add(new SmithingRecipeHandler()); handlers.add(new AlloyFurnaceRecipeHandler()); handlers.add(new ShredderRecipeHandler()); handlers.add(new PressRecipeHandler()); @@ -27,6 +29,7 @@ public class NEIRegistry { handlers.add(new RefineryRecipeHandler()); handlers.add(new VacuumRecipeHandler()); handlers.add(new CrackingHandler()); + handlers.add(new RadiolysisRecipeHandler()); handlers.add(new ReformingHandler()); handlers.add(new HydrotreatingHandler()); handlers.add(new ChemplantRecipeHandler()); @@ -35,11 +38,7 @@ public class NEIRegistry { handlers.add(new FusionRecipeHandler()); handlers.add(new HadronRecipeHandler()); handlers.add(new SILEXRecipeHandler()); - handlers.add(new SmithingRecipeHandler()); - handlers.add(new AnvilRecipeHandler()); handlers.add(new FuelPoolHandler()); - handlers.add(new FluidRecipeHandler()); - handlers.add(new RadiolysisRecipeHandler()); handlers.add(new CrucibleSmeltingHandler()); handlers.add(new CrucibleAlloyingHandler()); handlers.add(new CrucibleCastingHandler()); @@ -66,6 +65,9 @@ public class NEIRegistry { handlers.add(new ExposureChamberHandler()); handlers.add(new ArcFurnaceSolidHandler()); handlers.add(new ArcFurnaceFluidHandler()); + + //this shit comes last + handlers.add(new FluidRecipeHandler()); return handlers; } diff --git a/src/main/java/com/hbm/particle/ParticleDebris.java b/src/main/java/com/hbm/particle/ParticleDebris.java index 07da0515e..fe6c93aa7 100644 --- a/src/main/java/com/hbm/particle/ParticleDebris.java +++ b/src/main/java/com/hbm/particle/ParticleDebris.java @@ -58,7 +58,7 @@ public class ParticleDebris extends EntityFX { if(this.getEntityId() % 3 == 0) { TextureManager man = Minecraft.getMinecraft().renderEngine; - ParticleRocketFlame fx = new ParticleRocketFlame(man, worldObj, posX, posY, posZ).setScale(1F * world.sizeY / 16F); + ParticleRocketFlame fx = new ParticleRocketFlame(man, worldObj, posX, posY, posZ).setScale(1F * Math.max(world.sizeY, 6) / 16F); fx.prevPosX = fx.posX; fx.prevPosY = fx.posY; fx.prevPosZ = fx.posZ; diff --git a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java deleted file mode 100644 index 9daadd21f..000000000 --- a/src/main/java/com/hbm/render/entity/effect/DSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityDSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class DSmokeRenderer extends Render { - private Item field_94151_a; - public DSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public DSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityDSmokeFX) { - EntityDSmokeFX fx = (EntityDSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java b/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java deleted file mode 100644 index 39f136324..000000000 --- a/src/main/java/com/hbm/render/entity/effect/ModEffectRenderer.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class ModEffectRenderer extends Render { - private Item field_94151_a; - public ModEffectRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public ModEffectRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java deleted file mode 100644 index 5a4d6c3fa..000000000 --- a/src/main/java/com/hbm/render/entity/effect/SSmokeRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntitySSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class SSmokeRenderer extends Render { - private Item field_94151_a; - public SSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public SSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - /** - * Actually renders the given argument. This is a synthetic bridge method, - * always casting down its argument and then handing it off to a worker - * function which does the actual work. In all probabilty, the class Render - * is generic (Render= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(7.5F, 7.5F, 7.5F); - // - GL11.glScalef(0.25F, 0.25F, 0.25F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java b/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java deleted file mode 100644 index 263869a51..000000000 --- a/src/main/java/com/hbm/render/entity/effect/TSmokeRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.hbm.render.entity.effect; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import com.hbm.entity.particle.EntityTSmokeFX; -import com.hbm.items.ModItems; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.util.ResourceLocation; - -public class TSmokeRenderer extends Render { - private Item field_94151_a; - public TSmokeRenderer(Item p_i1259_1_, int p_i1259_2_) { - this.field_94151_a = p_i1259_1_; - } - - public TSmokeRenderer(Item p_i1260_1_) { - this(p_i1260_1_, 0); - } - - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, - float p_76986_9_) { - - if (p_76986_1_ instanceof EntityTSmokeFX) { - EntityTSmokeFX fx = (EntityTSmokeFX) p_76986_1_; - - if (fx.particleAge <= fx.maxAge && fx.particleAge >= fx.maxAge / 8 * 7) { - field_94151_a = ModItems.d_smoke8; - } - - if (fx.particleAge < fx.maxAge / 8 * 7 && fx.particleAge >= fx.maxAge / 8 * 6) { - field_94151_a = ModItems.d_smoke7; - } - - if (fx.particleAge < fx.maxAge / 8 * 6 && fx.particleAge >= fx.maxAge / 8 * 5) { - field_94151_a = ModItems.d_smoke6; - } - - if (fx.particleAge < fx.maxAge / 8 * 5 && fx.particleAge >= fx.maxAge / 8 * 4) { - field_94151_a = ModItems.d_smoke5; - } - - if (fx.particleAge < fx.maxAge / 8 * 4 && fx.particleAge >= fx.maxAge / 8 * 3) { - field_94151_a = ModItems.d_smoke4; - } - - if (fx.particleAge < fx.maxAge / 8 * 3 && fx.particleAge >= fx.maxAge / 8 * 2) { - field_94151_a = ModItems.d_smoke3; - } - - if (fx.particleAge < fx.maxAge / 8 * 2 && fx.particleAge >= fx.maxAge / 8 * 1) { - field_94151_a = ModItems.d_smoke2; - } - - if (fx.particleAge < fx.maxAge / 8 && fx.particleAge >= 0) { - field_94151_a = ModItems.d_smoke1; - } - - IIcon iicon = field_94151_a.getIconFromDamage(0); - - if (iicon != null) { - GL11.glPushMatrix(); - GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glScalef(1.5F, 1.5F, 1.5F); - // - //GL11.glScalef(0.5F, 0.5F, 0.5F); - // - this.bindEntityTexture(p_76986_1_); - Tessellator tessellator = Tessellator.instance; - - this.func_77026_a(tessellator, iicon); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - GL11.glPopMatrix(); - } - } - } - - /** - * Returns the location of an entity's texture. Doesn't seem to be called - * unless you call Render.bindEntityTexture. - */ - @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return TextureMap.locationItemsTexture; - } - - private void func_77026_a(Tessellator p_77026_1_, IIcon p_77026_2_) { - float f = p_77026_2_.getMinU(); - float f1 = p_77026_2_.getMaxU(); - float f2 = p_77026_2_.getMinV(); - float f3 = p_77026_2_.getMaxV(); - float f4 = 1.0F; - float f5 = 0.5F; - float f6 = 0.25F; - GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); - p_77026_1_.startDrawingQuads(); - p_77026_1_.setNormal(0.0F, 1.0F, 0.0F); - p_77026_1_.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3); - p_77026_1_.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3); - p_77026_1_.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2); - p_77026_1_.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2); - p_77026_1_.draw(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java b/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java deleted file mode 100644 index afa01d9ee..000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidDuct.java +++ /dev/null @@ -1,194 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.conductor.TileEntityFluidDuct; - -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.util.ForgeDirection; - -public class RenderFluidDuct extends TileEntitySpecialRenderer { - - public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/fluid_duct.png"); - float pixel = 1F/16F; - float textureP = 1F / 32F; - - @Override - public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { - GL11.glTranslated(offsetX, offsetY, offsetZ); - GL11.glDisable(GL11.GL_LIGHTING); - this.bindTexture(texture); - drawCore(tileentity); - TileEntityFluidDuct cable = (TileEntityFluidDuct) tileentity; - for(int i = 0; i < cable.connections.length; i++) - { - if(cable.connections[i] != null) - { - drawConnection(cable.connections[i], cable.getType().getColor()); - } - } - GL11.glTranslated(-offsetX, -offsetY, -offsetZ); - GL11.glEnable(GL11.GL_LIGHTING); - - } - - public void drawCore(TileEntity tileentity) { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); - tesseract.draw(); - } - - public void drawConnection(ForgeDirection direction, int hex) - { - Tessellator tesseract = Tessellator.instance; - tesseract.startDrawingQuads(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); - - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); - tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); - tesseract.draw(); - - GL11.glDisable(GL11.GL_TEXTURE_2D); - GL11.glDisable(GL11.GL_CULL_FACE); - float p = 0.01F; - float n = -0.01F; - int r = (hex & 0xFF0000) >> 16; - int g = (hex & 0xFF00) >> 8; - int b = (hex & 0xFF); - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(1 - 11 * pixel / 2 + n, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - - tesseract.startDrawing(5); - tesseract.setColorRGBA(r, g, b, 255); - tesseract.addVertex(11 * pixel / 2 + p, 1, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 11 * pixel / 2 + p); - tesseract.addVertex(11 * pixel / 2 + p, 1, 1 - 11 * pixel / 2 + n); - tesseract.addVertex(11 * pixel / 2 + p, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2 + n); - tesseract.draw(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glEnable(GL11.GL_TEXTURE_2D); - - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if(direction.equals(ForgeDirection.UP)) - { - - } - if(direction.equals(ForgeDirection.DOWN)) - { - GL11.glRotatef(-180, 1, 0, 0); - } - if(direction.equals(ForgeDirection.NORTH)) - { - GL11.glRotatef(-270, 1, 0, 0); - } - if(direction.equals(ForgeDirection.SOUTH)) - { - GL11.glRotatef(-90, 1, 0, 0); - } - if(direction.equals(ForgeDirection.EAST)) - { - GL11.glRotatef(-270, 0, 0, 1); - } - if(direction.equals(ForgeDirection.WEST)) - { - GL11.glRotatef(-90, 0, 0, 1); - } - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPlushie.java b/src/main/java/com/hbm/render/tileentity/RenderPlushie.java new file mode 100644 index 000000000..c5d3ae829 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPlushie.java @@ -0,0 +1,138 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockPlushie.PlushieType; +import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.loader.HFRWavefrontObject; +import com.hbm.render.util.HorsePronter; +import com.hbm.util.EnumUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderPlushie extends TileEntitySpecialRenderer implements IItemRendererProvider { + + public static final IModelCustom yomiModel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/trinkets/yomi.obj"), false).asVBO(); + public static final ResourceLocation yomiTex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/yomi.png"); + public static final ResourceLocation numbernineTex = new ResourceLocation(RefStrings.MODID, "textures/models/horse/numbernine.png"); + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glRotated(22.5D * tile.getBlockMetadata() + 90, 0, -1, 0); + TileEntityPlushie te = (TileEntityPlushie) tile; + + if(te.squishTimer > 0) { + double squish = te.squishTimer - interp; + GL11.glScaled(1, 1 + (-(Math.sin(squish)) * squish) * 0.025, 1); + } + + switch(te.type) { + case NONE: break; + case YOMI: GL11.glScaled(0.5, 0.5, 0.5); break; + case NUMBERNINE: GL11.glScaled(0.75, 0.75, 0.75); break; + } + renderPlushie(te.type); + + GL11.glPopMatrix(); + } + + public static void renderPlushie(PlushieType type) { + + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + + switch(type) { + case NONE: break; + case YOMI: + Minecraft.getMinecraft().getTextureManager().bindTexture(yomiTex); + yomiModel.renderAll(); + break; + case NUMBERNINE: + GL11.glRotated(90, 0, 1, 0); + GL11.glRotated(15, -1, 0, 0); + GL11.glTranslated(0, -0.25, 0.75); + Minecraft.getMinecraft().getTextureManager().bindTexture(numbernineTex); + HorsePronter.reset(); + double r = 45; + HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); + HorsePronter.pose(HorsePronter.id_tail, 0, 60, 90); + HorsePronter.pose(HorsePronter.id_lbl, 0, -75 + r, 35); + HorsePronter.pose(HorsePronter.id_rbl, 0, -75 + r, -35); + HorsePronter.pose(HorsePronter.id_lfl, 0, r - 25, 5); + HorsePronter.pose(HorsePronter.id_rfl, 0, r - 25, -5); + HorsePronter.pose(HorsePronter.id_head, 0, r + 15, 0); + HorsePronter.pront(); + GL11.glRotated(15, 1, 0, 0); + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glTranslated(0, 1, -0.6875); + double s = 1.125D; + GL11.glScaled(0.0625 * s, 0.0625 * s, 0.0625 * s); + GL11.glRotated(180, 1, 0, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.no9); + ResourceManager.armor_no9.renderPart("Helmet"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.no9_insignia); + ResourceManager.armor_no9.renderPart("Insignia"); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + ItemStack stack = new ItemStack(ModItems.cigarette); + double scale = 0.25; + GL11.glTranslated(-0.06, 1.13, -0.42); + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(60, 0, 0, -1); + Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.locationItemsTexture); + IIcon icon = stack.getIconIndex(); + ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + break; + } + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.plushie); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -6, 0); + GL11.glScaled(6, 6, 6); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glTranslated(0, 0.25, 0); + GL11.glEnable(GL11.GL_CULL_FACE); + PlushieType type = EnumUtil.grabEnumSafely(PlushieType.class, item.getItemDamage()); + + switch(type) { + case NONE: break; + case YOMI: GL11.glScaled(1.25, 1.25, 1.25); break; + case NUMBERNINE: GL11.glTranslated(0, 0.25, 0.25); GL11.glScaled(1.25, 1.25, 1.25); break; + } + renderPlushie(type); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index 5a87ce681..852329df1 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -13,7 +13,6 @@ import com.hbm.util.EnumUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -28,7 +27,6 @@ public class RenderSnowglobe extends TileEntitySpecialRenderer implements IItemR public static final ResourceLocation socket = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe.png"); public static final ResourceLocation glass = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_glass.png"); public static final ResourceLocation features = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/snowglobe_features.png"); - public static RenderBlocks renderer = new RenderBlocks(); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java index 99536327f..5bc5939dd 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurretBase.java @@ -37,7 +37,7 @@ public abstract class RenderTurretBase extends TileEntitySpecialRenderer { private void checkPlug(World world, int x, int y, int z, boolean power, boolean fluid, FluidType type, int ox, int oz, int rot, ForgeDirection dir) { - if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.checkFluidConnectables(world, x, y, z, type)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { + if((power && Library.canConnect(world, x, y, z, dir)) || (fluid && Library.canConnectFluid(world, x, y, z, dir, type))) { GL11.glPushMatrix(); GL11.glRotated(rot, 0, 1, 0); diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index a2ac9ba74..0f5a8e29b 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -1,10 +1,7 @@ package com.hbm.tileentity; - import api.hbm.block.ICrucibleAcceptor; import com.hbm.handler.CompatHandler.OCComponent; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; import api.hbm.energymk2.IEnergyReceiverMK2; @@ -27,7 +24,7 @@ import net.minecraftforge.common.util.ForgeDirection; @Optional.Interface(iface = "com.hbm.handler.CompatHandler.OCComponent", modid = "opencomputers"), @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers") }) -public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, IFluidAcceptor, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent { +public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, ISidedInventory, IFluidConnector, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent { TileEntity tile; boolean inventory; @@ -77,101 +74,6 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy return tile; } - @Override - public void setFillForSync(int fill, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFillForSync(fill, index); - } - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setFluidFill(fill, type); - } - } - - @Override - public int getFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getFluidFillForReceive(type); - } - return 0; - } - - @Override - public int getMaxFluidFillForReceive(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFillForReceive(type); - } - - return 0; - } - - @Override - public void receiveFluid(int amount, FluidType type) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidAcceptor) { - ((IFluidAcceptor)getTile()).receiveFluid(amount, type); - } - } - - @Override - public void setTypeForSync(FluidType type, int index) { - - if(!fluid) - return; - - if(getTile() instanceof IFluidContainer) { - ((IFluidContainer)getTile()).setTypeForSync(type, index); - } - } - - @Override - public int getFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidContainer) { - return ((IFluidContainer)getTile()).getFluidFill(type); - } - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(!fluid) - return 0; - - if(getTile() instanceof IFluidAcceptor) { - return ((IFluidAcceptor)getTile()).getMaxFluidFill(type); - } - - return 0; - } - @Override public void setPower(long i) { diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 5d3552835..d61e10560 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -13,6 +13,7 @@ import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; +import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter; import com.hbm.blocks.machine.BlockICF.TileEntityBlockICF; @@ -30,10 +31,7 @@ import com.hbm.blocks.network.CranePartitioner.TileEntityCranePartitioner; import com.hbm.blocks.network.FluidDuctGauge.TileEntityPipeGauge; import com.hbm.blocks.network.FluidDuctPaintable.TileEntityPipePaintable; import com.hbm.blocks.rail.RailStandardSwitch.TileEntityRailSwitch; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.tileentity.bomb.*; -import com.hbm.tileentity.conductor.*; import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; @@ -42,9 +40,7 @@ import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; -import com.hbm.util.LoggingUtil; -import api.hbm.fluid.IFluidConnector; import net.minecraft.tileentity.TileEntity; public class TileMappings { @@ -95,8 +91,6 @@ public class TileMappings { put(TileEntityMachineRTG.class, "tileentity_machine_rtg"); put(TileEntityMachineExcavator.class, "tileentity_ntm_excavator"); put(TileEntityMachineOreSlopper.class, "tileentity_ore_slopper"); - put(TileEntityFluidDuctSimple.class, "tileentity_universal_duct_simple"); - put(TileEntityFluidDuct.class, "tileentity_universal_duct"); put(TileEntityMachineDrain.class, "tileentity_fluid_drain"); put(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); put(TileEntityMachineTurbofan.class, "tileentity_machine_turbofan"); @@ -206,6 +200,7 @@ public class TileMappings { put(TileEntityPedestal.class, "tileentity_ntm_pedestal"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); put(TileEntitySnowglobe.class, "tileentity_ntm_snowglobe"); + put(TileEntityPlushie.class, "tileentity_ntm_plushie"); put(TileEntityEmitter.class, "tileentity_ntm_emitter"); put(TileEntityDoorGeneric.class, "tileentity_ntm_door"); @@ -422,9 +417,9 @@ public class TileMappings { private static void put(Class clazz, String... names) { map.put(clazz, names); - if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { + /*if((IFluidSource.class.isAssignableFrom(clazz) || IFluidAcceptor.class.isAssignableFrom(clazz)) && !IFluidConnector.class.isAssignableFrom(clazz)) { LoggingUtil.errorWithHighlight(clazz.getCanonicalName() + " implements the old interfaces but not IFluidConnector!"); - } + }*/ if(IConfigurableMachine.class.isAssignableFrom(clazz)) { configurables.add((Class) clazz); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java index 9567f3bff..5c8058961 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCompactLauncher; import com.hbm.inventory.fluid.FluidType; @@ -48,7 +47,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { +public class TileEntityCompactLauncher extends TileEntityLoadedBase implements ISidedInventory, IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver { private ItemStack slots[]; @@ -547,45 +546,17 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I return false; } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index a3dfea4ae..d0003c702 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntityMissileCustom; import com.hbm.handler.CompatHandler; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerLaunchTable; import com.hbm.inventory.fluid.FluidType; @@ -54,7 +53,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver, CompatHandler.OCComponent { +public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, SimpleComponent, IRadarCommandReceiver, CompatHandler.OCComponent { private ItemStack slots[]; @@ -545,45 +544,17 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide return false; } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java deleted file mode 100644 index f169b7647..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuct.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hbm.tileentity.conductor; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class TileEntityFluidDuct extends TileEntityFluidDuctSimple { - - public TileEntityFluidDuct() { } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } -} diff --git a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java b/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java deleted file mode 100644 index 87b407eba..000000000 --- a/src/main/java/com/hbm/tileentity/conductor/TileEntityFluidDuctSimple.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.hbm.tileentity.conductor; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidDuct; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.lib.Library; -import com.hbm.tileentity.network.TileEntityPipeBaseNT; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityFluidDuctSimple extends TileEntity implements IFluidDuct { - - protected FluidType type = Fluids.NONE; - - - public ForgeDirection[] connections = new ForgeDirection[6]; - - @Override - public Packet getDescriptionPacket() { - NBTTagCompound nbt = new NBTTagCompound(); - this.writeToNBT(nbt); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); - } - - @Override - public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { - this.readFromNBT(pkt.func_148857_g()); - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - type = Fluids.fromID(nbt.getInteger("fluid")); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setInteger("fluid", type.getID()); - } - - public boolean setType(FluidType type) { - - if(this.type == type) - return true; - - this.type = type; - this.markDirty(); - - if(worldObj instanceof WorldServer) { - WorldServer world = (WorldServer) worldObj; - world.getPlayerManager().markBlockForUpdate(xCoord, yCoord, zCoord); - } - - return true; - } - - @Override - public FluidType getType() { - return type; - } - - @Override - public void updateEntity() { - /*this.updateConnections(); - - if(lastType != type) { - worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); - lastType = type; - }*/ - - if(this.getBlockType() == ModBlocks.fluid_duct) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_neo); - if(this.getBlockType() == ModBlocks.fluid_duct_solid) worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.fluid_duct_paintable); - - TileEntity tile = worldObj.getTileEntity(xCoord, yCoord, zCoord); - if(tile instanceof TileEntityPipeBaseNT) { - ((TileEntityPipeBaseNT) tile).setType(this.type); - } - } - - public void updateConnections() { - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord + 1, zCoord, type)) connections[0] = ForgeDirection.UP; - else connections[0] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord - 1, zCoord, type)) connections[1] = ForgeDirection.DOWN; - else connections[1] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord - 1, type)) connections[2] = ForgeDirection.NORTH; - else connections[2] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord + 1, yCoord, zCoord, type)) connections[3] = ForgeDirection.EAST; - else connections[3] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord, yCoord, zCoord + 1, type)) connections[4] = ForgeDirection.SOUTH; - else connections[4] = null; - if(Library.checkFluidConnectables(this.worldObj, xCoord - 1, yCoord, zCoord, type)) connections[5] = ForgeDirection.WEST; - else connections[5] = null; - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java index d993b0ce5..0d1d9d6a8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityChungus.java @@ -1,19 +1,14 @@ 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.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Coolable; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.packet.NBTPacket; import com.hbm.packet.PacketDispatcher; @@ -41,7 +36,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public long power; public static final long maxPower = 100000000000L; @@ -50,8 +45,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public float lastRotor; public float fanAcceleration = 0F; - public List list2 = new ArrayList(); - public FluidTank[] tanks; protected double[] info = new double[3]; @@ -60,8 +53,8 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc public TileEntityChungus() { tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.STEAM, 1000000000, 0); - tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 1000000000, 1); + tanks[0] = new FluidTank(Fluids.STEAM, 1_000_000_000); + tanks[1] = new FluidTank(Fluids.SPENTSTEAM, 1_000_000_000); Random rand = new Random(); audioDesync = rand.nextFloat() * 0.05F; @@ -112,10 +105,7 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc turnTimer--; - if(operational) - turnTimer = 25; - - this.fillFluidInit(tanks[1].getTankType()); + if(operational) turnTimer = 25; NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); @@ -217,74 +207,6 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IFluidAcc tanks[1].writeToNBT(nbt, "steam"); nbt.setLong("power", power); } - - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - dir = dir.getRotation(ForgeDirection.UP); - - 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 - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getMaxFill(); - - return 0; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 2 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index ea5cd0b5b..5b5277eec 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCoreInjector; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -28,7 +28,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { +public class TileEntityCoreInjector extends TileEntityMachineBase implements IFluidContainer, IFluidStandardReceiver, SimpleComponent, IGUIProvider, CompatHandler.OCComponent { public FluidTank[] tanks; public static final int range = 15; @@ -117,34 +117,6 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl beam = data.getInteger("beam"); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index 4096dc271..36b50517a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerCoreReceiver; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -33,7 +33,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, ILaserable, IFluidStandardReceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public long power; public long joules; @@ -105,28 +105,6 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn return this.power; } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tank.getTankType().name())) - return tank.getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { tank.setFill(fill); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index 312210f98..c1c830cf5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -1,8 +1,6 @@ package com.hbm.tileentity.machine; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; @@ -11,9 +9,6 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.standard.EntityProcessorStandard; import com.hbm.explosion.vanillant.standard.ExplosionEffectStandard; import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Heatable; @@ -38,11 +33,10 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.EnumSkyBlock; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluidSource, IFluidAcceptor, INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { +public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine { public int heat; public FluidTank[] tanks; - public List list = new ArrayList(); public boolean isOn; public boolean hasExploded = false; @@ -88,7 +82,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid if(this.tanks[1].getFill() > 0) { this.sendFluid(); - fillFluidInit(tanks[1].getTankType()); } } @@ -289,62 +282,6 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid nbt.setBoolean("exploded", hasExploded); } - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - return; - } - } - } - - @Override public void setFillForSync(int fill, int index) { } - @Override public void setTypeForSync(FluidType type, int index) { } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[0].getTankType() ? tanks[0].getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getRotation(ForgeDirection.UP); - this.fillFluid(xCoord + dir.offsetX * 2, yCoord, zCoord + dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, this.getTact(), type); - this.fillFluid(xCoord, yCoord + 4, zCoord, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } - @Override public FluidTank[] getAllTanks() { return tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index fde17186d..3b78b1168 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -9,8 +9,7 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerITER; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -53,13 +52,11 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent { public long power; public static final long maxPower = 10000000; public static final int powerReq = 100000; - public int age = 0; - public List list = new ArrayList(); public FluidTank[] tanks; public FluidTank plasma; @@ -96,14 +93,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece if(!worldObj.isRemote) { - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tanks[1].getTankType()); - this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -419,16 +408,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece plasma.setFill(fill); } - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) @@ -438,60 +417,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece plasma.setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 3, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 3, zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; - } - @Override public void onChunkUnload() { super.onChunkUnload(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index ffcab97e6..0945b4ba8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -197,9 +197,8 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { - //automatically prohibit any stacked item, items can only be added one by one - if(stack.stackSize > 1) - return false; + //automatically prohibit stacked container items + if(stack.stackSize > 1 && stack.getItem().hasContainerItem(stack)) return false; //only allow insertion for the nine recipe slots if(slot < 10 || slot > 18) @@ -209,6 +208,10 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen if(slots[slot - 10] == null) return false; + //do not permit total stacking beyond 4 items + if(slots[slot] != null && slots[slot].stackSize + stack.stackSize > 4) return false; + if(stack.stackSize > 4) return false; + //let's find all slots that this item could potentially go in List validSlots = new ArrayList(); for(int i = 0; i < 9; i++) { @@ -357,6 +360,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen updateTemplateGrid(); nextMode(slot); tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + updateTemplateGrid(); } @Override public int[] getFilterSlots() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index ed7993281..430bca4db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -1,7 +1,10 @@ package com.hbm.tileentity.machine; +import java.io.IOException; import java.util.List; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerCentrifuge; @@ -11,6 +14,7 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IUpgradeInfoProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -34,17 +38,37 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IConfigurableMachine{ public int progress; public long power; public boolean isProgressing; - public static final int maxPower = 100000; - public static final int processingSpeed = 200; private int audioDuration = 0; private AudioWrapper audio; + //configurable values + public static int maxPower = 100000; + public static int processingSpeed = 200; + public static int baseConsumption = 200; + + public String getConfigName() { + return "centrifuge"; + } + /* reads the JSON object and sets the machine's parameters, use defaults and ignore if a value is not yet present */ + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "I:powerCap", maxPower); + processingSpeed = IConfigurableMachine.grab(obj, "I:timeToProcess", processingSpeed); + baseConsumption = IConfigurableMachine.grab(obj, "I:consumption", baseConsumption); + } + /* writes the entire config for this machine using the relevant values */ + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:powerCap").value(maxPower); + writer.name("I:timeToProcess").value(processingSpeed); + writer.name("I:consumption").value(baseConsumption); + } + + /* * So why do we do this now? You have a funny mekanism/thermal/whatever pipe and you want to output stuff from a side * that isn't the bottom, what do? Answer: make all slots accessible from all sides and regulate in/output in the @@ -162,15 +186,15 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement power = Library.chargeTEFromItems(slots, 1, power, maxPower); - int consumption = 200; + int consumption = baseConsumption; int speed = 1; UpgradeManager.eval(slots, 6, 7); speed += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); - consumption += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * 200; + consumption += Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3) * baseConsumption; speed *= (1 + Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 5); - consumption += Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10000; + consumption += Math.min(UpgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * baseConsumption * 50; consumption /= (1 + Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 87a66617c..9cedc72c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -6,7 +6,6 @@ import java.util.HashMap; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerMachineDiesel; @@ -38,7 +37,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC { public long power; public int soundCycle = 0; @@ -248,22 +247,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen tank.setTankType(type); } - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 2f9414039..3ac1df89a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -263,7 +263,7 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements Block b = worldObj.getBlock(x, y, z); if(b == ModBlocks.ore_bedrock) { - combinedHardness = 60 * 20; + combinedHardness = 5 * 60 * 20; bedrockOre = new BlockPos(x, y, z); bedrockDrilling = true; enableCrusher = false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java deleted file mode 100644 index 3d2756304..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineInserter.java +++ /dev/null @@ -1,351 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; - -public class TileEntityMachineInserter extends TileEntity implements ISidedInventory, IFluidContainer, IFluidSource, IFluidAcceptor { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tanks[]; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {0}; - private static final int[] slots_side = new int[] {0}; - public int age = 0; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); - public List list3 = new ArrayList(); - - private String customName; - - public TileEntityMachineInserter() { - slots = new ItemStack[9]; - tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[1] = new FluidTank(Fluids.NONE, 32000, 0); - tanks[2] = new FluidTank(Fluids.NONE, 32000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.inserter"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tanks[0].readFromNBT(nbt, "content1"); - tanks[1].readFromNBT(nbt, "content2"); - tanks[2].readFromNBT(nbt, "content3"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tanks[0].writeToNBT(nbt, "content1"); - tanks[1].writeToNBT(nbt, "content2"); - tanks[2].writeToNBT(nbt, "content3"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - age++; - if(age >= 20) - { - age = 0; - } - - if(age == 9 || age == 19) { - if(dna1()) - fillFluidInit(tanks[0].getTankType()); - if(dna2()) - fillFluidInit(tanks[1].getTankType()); - if(dna3()) - fillFluidInit(tanks[2].getTankType()); - } - - tanks[0].setType(1, 2, slots); - tanks[1].setType(4, 5, slots); - tanks[2].setType(7, 8, slots); - tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - tanks[2].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - public boolean dna1() { - if(slots[0] != null && (slots[0].getItem() == ModItems.fuse || slots[0].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna2() { - if(slots[3] != null && (slots[3].getItem() == ModItems.fuse || slots[3].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - public boolean dna3() { - if(slots[6] != null && (slots[6].getItem() == ModItems.fuse || slots[6].getItem() == ModItems.screwdriver)) - return true; - return false; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < 3 && tanks[index] != null) - tanks[index].setTankType(type); - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else - return 0; - } - - @Override - public List getFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return list1; - if(type.name().equals(tanks[1].getTankType().name())) - return list2; - if(type.name().equals(tanks[2].getTankType().name())) - return list3; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[1].getTankType().name())) - list2.clear(); - if(type.name().equals(tanks[2].getTankType().name())) - list3.clear(); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index 6cb9024f0..e18ad96fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -1,14 +1,10 @@ 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.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.container.ContainerMachineLargeTurbine; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -44,12 +40,10 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IFluidContainer, IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public long power; public static final long maxPower = 100000000; - public int age = 0; - public List list2 = new ArrayList(); public FluidTank[] tanks; protected double[] info = new double[3]; @@ -84,13 +78,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme this.info = new double[3]; - age++; - if(age >= 2) { - age = 0; - } - - fillFluidInit(tanks[1].getTankType()); - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); this.tryProvide(worldObj, xCoord + dir.offsetX * -4, yCoord, zCoord + dir.offsetZ * -4, dir.getOpposite()); for(DirPos pos : getConPos()) this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -210,57 +197,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme nbt.setLong("power", power); } - @Override - public void fillFluidInit(FluidType type) { - - 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); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if(age == 0) - { - return true; - } - - return false; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) @@ -272,16 +208,6 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme if(index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - - @Override - public List getFluidList(FluidType type) { - return list2; - } - - @Override - public void clearFluidList(FluidType type) { - list2.clear(); - } @Override public long getPower() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 6f97159d8..e56e47119 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -1,13 +1,11 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import java.util.Set; import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMiningLaser; import com.hbm.inventory.fluid.FluidType; @@ -54,14 +52,13 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { +public class TileEntityMachineMiningLaser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IMiningDrill, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider { public long power; public int age = 0; public static final long maxPower = 100000000; public static final int consumption = 10000; public FluidTank tank; - public List list = new ArrayList(); public boolean isOn; public int targetX; @@ -95,14 +92,6 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen this.updateConnections(); - age++; - if (age >= 20) { - age = 0; - } - - if (age == 9 || age == 19) - fillFluidInit(tank.getTankType()); - this.sendFluid(tank, worldObj, xCoord + 2, yCoord, zCoord, Library.POS_X); this.sendFluid(tank, worldObj, xCoord - 2, yCoord, zCoord, Library.NEG_X); this.sendFluid(tank, worldObj, xCoord, yCoord + 2, zCoord, Library.POS_Z); @@ -622,57 +611,11 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen tank.setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.OIL) - tank.setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.OIL) - return tank.getFill(); - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(xCoord + 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord - 2, yCoord, zCoord, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord + 2, this.getTact(), type); - fillFluid(xCoord, yCoord, zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java index 3abaaaabb..90e1ec36e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOreSlopper.java @@ -118,7 +118,7 @@ public class TileEntityMachineOreSlopper extends TileEntityMachineBase implement if(canSlop()) { this.power -= this.consumption; - this.progress += 1F / (200 - speed * 50); + this.progress += 1F / (600 - speed * 150); this.processing = true; boolean markDirty = false; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 175e11a68..fde99d15e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -6,7 +6,7 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachineITER; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerPlasmaHeater; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidAcceptor, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { +public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IFluidContainer, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 100000000; @@ -212,40 +212,6 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme plasma.writeToNBT(nbt, "plasma"); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getMaxFill(); - else - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if (type.name().equals(plasma.getTankType().name())) - plasma.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if (type.name().equals(plasma.getTankType().name())) - return plasma.getFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index e311a05d0..3667aef4b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -1,11 +1,6 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; -import java.util.List; - -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.container.ContainerRadiolysis; import com.hbm.inventory.fluid.FluidType; @@ -39,15 +34,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidAcceptor, IFluidSource, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { +public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC { public long power; public static final int maxPower = 1000000; public int heat; public FluidTank[] tanks; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); private static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13 }; private static final int[] slot_rtg = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; @@ -138,11 +131,6 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement sterilize(); } - if(worldObj.getTotalWorldTime() % 10 == 0) { - fillFluidInit(tanks[1].getTankType()); - fillFluidInit(tanks[2].getTankType()); - } - for(DirPos pos : getConPos()) { this.tryProvide(worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(),pos.getZ(), pos.getDir()); @@ -268,73 +256,11 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - tank.setFill(fill); - } - } - } - @Override public void setTypeForSync(FluidType type, int index) { this.tanks[index].setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(tank.getTankType() == type) { - return tank.getFill(); - } - } - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(tanks[0].getTankType() == type) { - return tanks[0].getMaxFill(); - } - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, this.getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, this.getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - return list1; - if(type == tanks[2].getTankType()) - return list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[1].getTankType()) - list1.clear(); - if(type == tanks[2].getTankType()) - list2.clear(); - } - @Override public FluidTank[] getAllTanks() { return tanks; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 94cf03e3b..fb7374282 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -279,24 +279,6 @@ public class TileEntityMachineTurbine extends TileEntityLoadedBase implements IS } } - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 60d29fe9a..d0e1306bc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -5,11 +5,8 @@ import java.util.List; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineTurbofan; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.trait.FT_Combustible; @@ -50,7 +47,7 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 1_000_000; @@ -438,32 +435,6 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem public void setPower(long i) { this.power = i; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(i); - } @Override public AxisAlignedBB getRenderBoundingBox() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index aa989ec85..34382b3e0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -13,19 +13,14 @@ import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.handler.CompatHandler; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerReactorZirnox; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIReactorZirnox; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; -import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; @@ -53,7 +48,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityReactorZirnox extends TileEntityMachineBase implements IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IGUIProvider, IInfoProviderEC, CompatHandler.OCComponent { public int heat; public static final int maxHeat = 100000; @@ -61,9 +56,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public static final int maxPressure = 100000; public boolean isOn = false; - public List list = new ArrayList(); - public byte age; - public FluidTank steam; public FluidTank carbonDioxide; public FluidTank water; @@ -88,9 +80,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public TileEntityReactorZirnox() { super(28); - steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000, 0); - carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000, 1); - water = new FluidTank(Fluids.WATER, 32000, 2); + steam = new FluidTank(Fluids.SUPERHOTSTEAM, 8000); + carbonDioxide = new FluidTank(Fluids.CARBONDIOXIDE, 16000); + water = new FluidTank(Fluids.WATER, 32000); } @Override @@ -193,15 +185,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF if(!worldObj.isRemote) { this.output = 0; - age++; - - if (age >= 20) { - age = 0; - } - - if(age == 9 || age == 19) { - fillFluidInit(steam.getTankType()); - } if(worldObj.getTotalWorldTime() % 20 == 0) { this.updateConnections(); @@ -395,23 +378,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } } - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public void fillFluidInit(FluidType type) { - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.UP); - - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 1, this.zCoord + rot.offsetZ * 3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 3, this.zCoord + rot.offsetZ * 3, getTact(), type); - - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 1, this.zCoord + rot.offsetZ * -3, getTact(), type); - fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 3, this.zCoord + rot.offsetZ * -3, getTact(), type); - } - private void updateConnections() { for(DirPos pos : getConPos()) { this.trySubscribe(water.getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -431,59 +397,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF }; } - public boolean getTact() { - if(age >= 0 && age < 10) { - return true; - } - - return false; - } - - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return 0; - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getMaxFill(); - if(type == Fluids.WATER) return water.getMaxFill(); - - return 0; - } - - public void setFluidFill(int i, FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) steam.setFill(i); - if(type == Fluids.CARBONDIOXIDE) carbonDioxide.setFill(i); - if(type == Fluids.WATER) water.setFill(i); - } - - public int getFluidFill(FluidType type) { - if(type == Fluids.SUPERHOTSTEAM) return steam.getFill(); - if(type == Fluids.CARBONDIOXIDE) return carbonDioxide.getFill(); - if(type == Fluids.WATER) return water.getFill(); - return 0; - } - - public void setFillForSync(int fill, int index) { - switch (index) { - case 0: steam.setFill(fill); - break; - case 1: carbonDioxide.setFill(fill); - break; - case 2: water.setFill(fill); - break; - default: break; - } - } - - public void setTypeForSync(FluidType type, int index) { - switch (index) { - case 0: steam.setTankType(type); - break; - case 1: carbonDioxide.setTankType(type); - break; - case 2: water.setTankType(type); - break; - default: break; - } - } - public List getTanks() { List list = new ArrayList(); list.add(steam); @@ -493,14 +406,6 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF return list; } - public List getFluidList(FluidType type) { - return list; - } - - public void clearFluidList(FluidType type) { - list.clear(); - } - public AxisAlignedBB getRenderBoundingBox() { return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 5, zCoord + 3); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index d2c9c04ea..ec233595f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -2,7 +2,6 @@ package com.hbm.tileentity.machine; import java.util.HashMap; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerSILEX; import com.hbm.inventory.fluid.FluidType; @@ -35,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { +public class TileEntitySILEX extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IInfoProviderEC { public EnumWavelengths mode = EnumWavelengths.NULL; public boolean hasLaser; @@ -54,7 +53,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce public TileEntitySILEX() { super(11); - tank = new FluidTank(Fluids.PEROXIDE, 16000, 0); + tank = new FluidTank(Fluids.PEROXIDE, 16000); } @Override @@ -345,41 +344,6 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce return 65536.0D; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - - if(type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == tank.getTankType()) - return tank.getMaxFill(); - - return 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[] {tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index da652915c..c2803d6c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -1,12 +1,7 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; @@ -24,19 +19,18 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; -public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, IBufPacketReceiver { +public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver { private FluidTank water; private FluidTank steam; - public List list = new ArrayList(); public int heat; public HashSet primary = new HashSet(); public HashSet secondary = new HashSet(); public TileEntitySolarBoiler() { - water = new FluidTank(Fluids.WATER, 100, 0); - steam = new FluidTank(Fluids.STEAM, 10_000, 1); + water = new FluidTank(Fluids.WATER, 100); + steam = new FluidTank(Fluids.STEAM, 10_000); } @Override @@ -72,76 +66,6 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui } } - @Override - public void setFillForSync(int fill, int index) { - if(index == 0) - water.setFill(fill); - if(index == 1) - steam.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == Fluids.WATER) - water.setFill(fill); - if(type == Fluids.STEAM) - steam.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index == 0) - water.setTankType(type); - if(index == 1) - steam.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getFill(); - if(type == Fluids.STEAM) - return steam.getFill(); - - return 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord, this.yCoord + 3, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 2 == 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - if(type == Fluids.WATER) - return water.getMaxFill(); - if(type == Fluids.STEAM) - return steam.getMaxFill(); - - return 0; - } - - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index bcba180ec..5b09fa69d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -5,7 +5,6 @@ import java.util.List; import com.hbm.entity.missile.EntitySoyuz; import com.hbm.handler.MissileStruct; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerSoyuzLauncher; import com.hbm.inventory.fluid.FluidType; @@ -38,7 +37,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider { +public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider { public long power; public static final long maxPower = 1000000; @@ -400,46 +399,18 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS nbt.setTag("items", list); } - @Override - public int getMaxFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getMaxFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getMaxFill(); - else - return 0; - } - @Override public void setFillForSync(int fill, int index) { if (index < 2 && tanks[index] != null) tanks[index].setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(fill); - else if (type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { if (index < 2 && tanks[index] != null) tanks[index].setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - if (type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if (type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else - return 0; - } - @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 151c61c12..70d060e0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -1,13 +1,11 @@ package com.hbm.tileentity.machine; -import java.util.ArrayList; import java.util.List; import com.hbm.config.VersatileConfig; import com.hbm.hazard.HazardRegistry; import com.hbm.hazard.HazardSystem; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerStorageDrum; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -16,7 +14,6 @@ import com.hbm.inventory.gui.GUIStorageDrum; import com.hbm.items.ModItems; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; -import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -37,12 +34,10 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource, IFluidStandardSender, IGUIProvider { +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidContainer, IFluidStandardSender, IGUIProvider { public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; - public List list = new ArrayList(); - public List list2 = new ArrayList(); public int age = 0; public TileEntityStorageDrum() { @@ -148,13 +143,6 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu if(age >= 20) age -= 20; - if(age == 9 || age == 19) { - fillFluidInit(tanks[0].getTankType()); - } - if(age == 8 || age == 18) { - fillFluidInit(tanks[1].getTankType()); - } - this.sendFluidToAll(tanks[0], this); this.sendFluidToAll(tanks[1], this); @@ -246,62 +234,6 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu return slots_arr; } - @Override - public boolean getTact() { - return age < 10; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - if(type == tanks[0].getTankType()) - return tanks[0].getFill(); - else if(type == tanks[1].getTankType()) - return tanks[1].getFill(); - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tanks[0].getTankType()) - tanks[0].setFill(i); - else if(type == tanks[1].getTankType()) - tanks[1].setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - return list; - if(type == tanks[1].getTankType()) - return list2; - - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) - this.list.clear(); - if(type == tanks[1].getTankType()) - this.list2.clear(); - } - @Override public void setFillForSync(int fill, int index) { if(index < 2 && tanks[index] != null) diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 06911f404..3ad671ca9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -6,9 +6,7 @@ import java.util.List; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineOilWell; @@ -30,7 +28,7 @@ import net.minecraft.inventory.Container; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { +public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase { protected static int maxPower = 5_000_000; protected static int consumption = 5000; @@ -48,9 +46,9 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple public TileEntityMachineFrackingTower() { super(); tanks = new FluidTank[3]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); - tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000, 2); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); + tanks[2] = new FluidTank(Fluids.FRACKSOL, 64_000); } @Override @@ -134,19 +132,6 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple OilSpot.generateOilSpot(worldObj, xCoord, zCoord, destructionRange, 10, false); } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tanks[2].getTankType() ? tanks[2].getMaxFill() : 0; - } - @Override public FluidTank[] getSendingTanks() { return new FluidTank[] { tanks[0], tanks[1] }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index e8f5928f0..6e4ef2791 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -4,7 +4,6 @@ import java.util.List; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerMachineGasFlare; @@ -44,7 +43,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidAcceptor, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidContainer, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; @@ -289,22 +288,6 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements tank.setTankType(type); } - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 531bebb18..04f78fad3 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -1,11 +1,9 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidStack; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerLiquefactor; @@ -37,14 +35,14 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; public static final int usageBase = 500; public int usage; public int progress; - public static final int processTimeBase = 200; + public static final int processTimeBase = 100; public int processTime; public FluidTank tank; @@ -80,10 +78,6 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen else this.progress = 0; - if(worldObj.getTotalWorldTime() % 10 == 0) { - this.fillFluidInit(tank.getTankType()); - } - this.sendFluid(); NBTTagCompound data = new NBTTagCompound(); @@ -211,54 +205,11 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen tank.setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(xCoord, yCoord - 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 4, zCoord, getTact(), type); - fillFluid(xCoord + 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord - 2, yCoord + 1, zCoord, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord + 2, getTact(), type); - fillFluid(xCoord, yCoord + 1, zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - return worldObj.getTotalWorldTime() % 20 < 10; - } - - private List consumers = new ArrayList(); - - @Override - public List getFluidList(FluidType type) { - return consumers; - } - - @Override - public void clearFluidList(FluidType type) { - consumers.clear(); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 798d41873..8adb629b7 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -8,7 +8,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; @@ -105,14 +104,6 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { worldObj.setBlock(x, y, z, ModBlocks.ore_oil_empty); } } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, getTact(), type); - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index 9788943a9..dd804d1ca 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -8,7 +8,6 @@ import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerMachineOilWell; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.gui.GUIMachineOilWell; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.tileentity.IConfigurableMachine; @@ -141,25 +140,6 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { } } - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - int pX2 = xCoord + rot.offsetX * 2; - int pZ2 = zCoord + rot.offsetZ * 2; - int pX4 = xCoord + rot.offsetX * 4; - int pZ4 = zCoord + rot.offsetZ * 4; - int oX = Math.abs(dir.offsetX) * 2; - int oZ = Math.abs(dir.offsetZ) * 2; - - fillFluid(pX2 + oX, this.yCoord, pZ2 + oZ, getTact(), type); - fillFluid(pX2 - oX, this.yCoord, pZ2 - oZ, getTact(), type); - fillFluid(pX4 + oX, this.yCoord, pZ4 + oZ, getTact(), type); - fillFluid(pX4 - oX, this.yCoord, pZ4 - oZ, getTact(), type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index ae595e10d..c6fd09ecc 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -3,7 +3,7 @@ package com.hbm.tileentity.machine.oil; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.container.ContainerSolidifier; import com.hbm.inventory.fluid.FluidType; @@ -35,14 +35,14 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidAcceptor, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { +public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidContainer, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC { public long power; public static final long maxPower = 100000; public static final int usageBase = 500; public int usage; public int progress; - public static final int processTimeBase = 200; + public static final int processTimeBase = 100; public int processTime; public FluidTank tank; @@ -214,26 +214,10 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement tank.setFill(fill); } - @Override - public void setFluidFill(int fill, FluidType type) { - if(type == tank.getTankType()) - tank.setFill(fill); - } - @Override public void setTypeForSync(FluidType type, int index) { tank.setTankType(type); } - - @Override - public int getFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return tank.getTankType() == type ? tank.getMaxFill() : 0; - } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index b61115d65..65ee56d44 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -1,14 +1,9 @@ package com.hbm.tileentity.machine.oil; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.UpgradeManager; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.machine.ItemMachineUpgrade; @@ -35,21 +30,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider { public int indicator = 0; public long power; - public List list1 = new ArrayList(); - public List list2 = new ArrayList(); public FluidTank[] tanks; public TileEntityOilDrillBase() { super(8); tanks = new FluidTank[2]; - tanks[0] = new FluidTank(Fluids.OIL, 64_000, 0); - tanks[1] = new FluidTank(Fluids.GAS, 64_000, 1); + tanks[0] = new FluidTank(Fluids.OIL, 64_000); + tanks[1] = new FluidTank(Fluids.GAS, 64_000); } @Override @@ -127,11 +120,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple power = Library.chargeTEFromItems(slots, 0, power, this.getMaxPower()); - if(this.worldObj.getTotalWorldTime() % 10 == 0) - this.fillFluidInit(tanks[0].getTankType()); - if(this.worldObj.getTotalWorldTime() % 10 == 5) - this.fillFluidInit(tanks[1].getTankType()); - for(DirPos pos : getConPos()) { if(tanks[0].getFill() > 0) this.sendFluid(tanks[0], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); if(tanks[1].getFill() > 0) this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -286,62 +274,6 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple public abstract void onSuck(int x, int y, int z); - @Override - public boolean getTact() { - return this.worldObj.getTotalWorldTime() % 20 < 10; - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public int getFluidFill(FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - return tank.getFill(); - } - } - - return 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - for(FluidTank tank : tanks) { - if(type == tank.getTankType()) { - tank.setFill(i); - return; - } - } - } - - @Override - public List getFluidList(FluidType type) { - if(type == tanks[0].getTankType()) return this.list1; - if(type == tanks[1].getTankType()) return this.list2; - return new ArrayList(); - } - - @Override - public void clearFluidList(FluidType type) { - if(type == tanks[0].getTankType()) list1.clear(); - if(type == tanks[1].getTankType()) list2.clear(); - } - - @Override - public void setFillForSync(int fill, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - if(index < tanks.length && tanks[index] != null) - tanks[index].setTankType(type); - } - @Override public void setPower(long i) { this.power = i; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 2bff133d6..7e735a4a9 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -9,8 +9,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; import com.hbm.interfaces.IControlReceiver; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerRBMKGeneric; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -34,15 +33,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { +public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements IFluidContainer, IControlReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); protected int consumption; protected int output; @@ -103,8 +98,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I this.heat -= waterUsed * HEAT_PER_MB_WATER; } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -129,31 +122,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I if(type == Fluids.ULTRAHOTSTEAM) return 1000D; return 0D; } - - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } protected DirPos[] getOutputPos() { @@ -182,46 +150,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I } } - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { @@ -240,16 +168,6 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I steam.setTankType(type); } - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java index 5a7550a2f..fffdc99a2 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKCooler.java @@ -2,8 +2,6 @@ package com.hbm.tileentity.machine.rbmk; import api.hbm.fluid.IFluidStandardReceiver; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; @@ -21,7 +19,7 @@ import net.minecraft.util.DamageSource; import java.util.List; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAcceptor, IFluidStandardReceiver, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidStandardReceiver, SimpleComponent, CompatHandler.OCComponent { private FluidTank tank; private int lastCooled; @@ -108,32 +106,6 @@ public class TileEntityRBMKCooler extends TileEntityRBMKBase implements IFluidAc return ColumnType.COOLER; } - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setFluidFill(int fill, FluidType type) { - if (type == tank.getTankType()) - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - return type == tank.getTankType() ? tank.getMaxFill() : 0; - } - @Override public FluidTank[] getAllTanks() { return new FluidTank[]{tank}; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java index 45c1fa47c..909e30a82 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKHeater.java @@ -4,8 +4,7 @@ import api.hbm.fluid.IFluidStandardTransceiver; import com.hbm.blocks.ModBlocks; import com.hbm.entity.projectile.EntityRBMKDebris.DebrisType; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.container.ContainerRBMKHeater; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -30,15 +29,11 @@ import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import java.util.ArrayList; -import java.util.List; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidAcceptor, IFluidSource, IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { +public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements IFluidContainer, IFluidStandardTransceiver, SimpleComponent, CompatHandler.OCComponent { public FluidTank feed; public FluidTank steam; - public List list = new ArrayList(); public TileEntityRBMKHeater() { super(1); @@ -84,8 +79,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I steam.setTankType(Fluids.NONE); } - fillFluidInit(steam.getTankType()); - this.trySubscribe(feed.getTankType(), worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); for(DirPos pos : getOutputPos()) { if(this.steam.getFill() > 0) this.sendFluid(steam, worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); @@ -122,71 +115,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I } } - @Override - public void fillFluidInit(FluidType type) { - - fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); - - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); - } - - if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { - - fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); - } - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - @Deprecated //why are we still doing this? - public boolean getTact() { return worldObj.getTotalWorldTime() % 2 == 0; } - - @Override - public void setFluidFill(int i, FluidType type) { - - if(type == feed.getTankType()) - feed.setFill(i); - else if(type == steam.getTankType()) - steam.setFill(i); - } - - @Override - public int getFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getFill(); - else if(type == steam.getTankType()) - return steam.getFill(); - - return 0; - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(type == feed.getTankType()) - return feed.getMaxFill(); - else if(type == steam.getTankType()) - return steam.getMaxFill(); - - return 0; - } - @Override public void setFillForSync(int fill, int index) { @@ -205,16 +133,6 @@ public class TileEntityRBMKHeater extends TileEntityRBMKSlottedBase implements I steam.setTankType(type); } - @Override - public List getFluidList(FluidType type) { - return list; - } - - @Override - public void clearFluidList(FluidType type) { - list.clear(); - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index efc97e3a2..afd7bdf96 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -3,8 +3,6 @@ package com.hbm.tileentity.machine.storage; import api.hbm.fluid.*; import com.hbm.blocks.ModBlocks; import com.hbm.handler.CompatHandler; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.container.ContainerBarrel; import com.hbm.inventory.fluid.FluidType; @@ -46,24 +44,23 @@ import java.util.List; import java.util.Set; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcceptor, IFluidSource, SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent, IFluidCopiable { +public class TileEntityBarrel extends TileEntityMachineBase implements SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent, IFluidCopiable { public FluidTank tank; public short mode = 0; public static final short modes = 4; public int age = 0; - public List list = new ArrayList(); protected boolean sendingBrake = false; public byte lastRedstone = 0; public TileEntityBarrel() { super(6); - tank = new FluidTank(Fluids.NONE, 0, 0); + tank = new FluidTank(Fluids.NONE, 0); } public TileEntityBarrel(int capacity) { super(6); - tank = new FluidTank(Fluids.NONE, capacity, 0); + tank = new FluidTank(Fluids.NONE, capacity); } @Override @@ -116,9 +113,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc tank.setFill(transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - if(tank.getFill() > 0) { checkFluidInteraction(); } @@ -279,69 +273,6 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } } } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3) - return 0; - - return type == this.tank.getTankType() ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type == this.tank.getTankType() ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type == tank.getTankType()) tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java index 2d8782bcc..fc1451df5 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityFileCabinet.java @@ -2,24 +2,24 @@ package com.hbm.tileentity.machine.storage; import com.hbm.inventory.container.ContainerFileCabinet; import com.hbm.inventory.gui.GUIFileCabinet; -import com.hbm.packet.NBTPacket; +import com.hbm.packet.BufPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.IBufPacketReceiver; import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.INBTPacketReceiver; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, INBTPacketReceiver { +public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIProvider, IBufPacketReceiver { private int timer = 0; private int playersUsing = 0; @@ -47,6 +47,16 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr public void closeInventory() { if(!worldObj.isRemote) this.playersUsing--; } + + @Override public void serialize(ByteBuf buf) { + buf.writeInt(timer); + buf.writeInt(playersUsing); + } + + @Override public void deserialize(ByteBuf buf) { + timer = buf.readInt(); + playersUsing = buf.readInt(); + } @Override public void updateEntity() { @@ -60,10 +70,7 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr } else timer = 0; - NBTTagCompound data = new NBTTagCompound(); - data.setInteger("timer", timer); - data.setInteger("playersUsing", this.playersUsing); - PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(data, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); + PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 25)); } else { this.prevLowerExtent = lowerExtent; this.prevUpperExtent = upperExtent; @@ -103,12 +110,6 @@ public class TileEntityFileCabinet extends TileEntityCrateBase implements IGUIPr this.upperExtent = MathHelper.clamp_float(upperExtent, 0F, maxExtent); } - @Override - public void networkUnpack(NBTTagCompound nbt) { - this.timer = nbt.getInteger("timer"); - this.playersUsing = nbt.getInteger("playersUsing"); - } - @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerFileCabinet(player.inventory, this); diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 353573073..9ab3106a6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -1,6 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.Library; import com.hbm.util.fauxpointtwelve.DirPos; @@ -42,18 +41,6 @@ public class TileEntityMachineBAT9000 extends TileEntityBarrel { }; } - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 3, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 3, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord + 3, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 3, this.yCoord, this.zCoord - 1, getTact(), type); - } - AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 75a004532..d89f7e63a 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -7,9 +7,6 @@ import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.CompatHandler.OCComponent; import com.hbm.handler.MultiblockHandlerXR; -import com.hbm.interfaces.IFluidAcceptor; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -52,7 +49,7 @@ import java.util.List; import java.util.Random; @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")}) -public class TileEntityMachineFluidTank extends TileEntityMachineBase implements IFluidContainer, SimpleComponent, OCComponent, IFluidSource, IFluidAcceptor, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable, IFluidCopiable { +public class TileEntityMachineFluidTank extends TileEntityMachineBase implements SimpleComponent, OCComponent, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable, IFluidCopiable{ public FluidTank tank; public short mode = 0; @@ -64,7 +61,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public Explosion lastExplosion = null; public int age = 0; - public List list = new ArrayList(); public TileEntityMachineFluidTank() { super(6); @@ -115,9 +111,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements tank.setFill(TileEntityBarrel.transmitFluidFairly(worldObj, tank, this, tank.getFill(), this.mode == 0 || this.mode == 1, this.mode == 1 || this.mode == 2, getConPos())); this.sendingBrake = false; - if((mode == 1 || mode == 2) && (age == 9 || age == 19)) - fillFluidInit(tank.getTankType()); - tank.loadTank(2, 3, slots); tank.setType(0, 1, slots); } else { @@ -308,72 +301,6 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getMaxFluidFill(FluidType type) { - - if(mode == 2 || mode == 3 || this.sendingBrake) - return 0; - - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public void fillFluidInit(FluidType type) { - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 1, getTact(), type); - fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type); - fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type); - fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 2, getTact(), type); - } - - @Override - public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { - Library.transmitFluid(x, y, z, newTact, this, worldObj, type); - } - - @Override - public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public List getFluidList(FluidType type) { - return this.list; - } - - @Override - public void clearFluidList(FluidType type) { - this.list.clear(); - } @Override public void readFromNBT(NBTTagCompound nbt) { diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java index daade6ad6..395b8a9c6 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java @@ -1,7 +1,6 @@ package com.hbm.tileentity.machine.storage; import com.hbm.blocks.BlockDummyable; -import com.hbm.inventory.fluid.FluidType; import com.hbm.util.fauxpointtwelve.DirPos; import cpw.mods.fml.relauncher.Side; @@ -23,20 +22,6 @@ public class TileEntityMachineOrbus extends TileEntityBarrel { @Override public void checkFluidInteraction() { } //NO! - @Override - public void fillFluidInit(FluidType type) { - - ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset).getOpposite(); - ForgeDirection rot = dir.getRotation(ForgeDirection.DOWN); - - for(int i = -1; i < 6; i += 6) { - this.fillFluid(xCoord, yCoord + i, zCoord, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX, yCoord + i, zCoord + dir.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + rot.offsetX, yCoord + i, zCoord + rot.offsetZ, this.getTact(), this.tank.getTankType()); - this.fillFluid(xCoord + dir.offsetX + rot.offsetX, yCoord + i, zCoord + dir.offsetZ + rot.offsetZ, this.getTact(), this.tank.getTankType()); - } - } - protected DirPos[] conPos; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 4241ac5cc..454abb188 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -1,248 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerPuF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachinePuF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachinePuF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachinePuF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.PUF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.puf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_puf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerPuF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachinePuF6Tank(player.inventory, this); - } -} +public class TileEntityMachinePuF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 8cde23b50..2b84ce208 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -1,250 +1,5 @@ package com.hbm.tileentity.machine.storage; -import com.hbm.interfaces.IFluidContainer; -import com.hbm.inventory.container.ContainerUF6Tank; -import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.Fluids; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.inventory.gui.GUIMachineUF6Tank; -import com.hbm.items.ModItems; -import com.hbm.tileentity.IGUIProvider; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInventory, IFluidContainer, IGUIProvider { - - private ItemStack slots[]; - - //public static final int maxFill = 64 * 3; - public FluidTank tank; - - private static final int[] slots_top = new int[] {0}; - private static final int[] slots_bottom = new int[] {1, 3}; - private static final int[] slots_side = new int[] {2}; - - private String customName; - - public TileEntityMachineUF6Tank() { - slots = new ItemStack[4]; - tank = new FluidTank(Fluids.UF6, 64000, 0); - } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.uf6_tank"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - if(i == 0 && stack.getItem() == ModItems.cell_uf6) - return true; - if(i == 2 && stack.getItem() == ModItems.cell_empty) - return true; - - return false; - } - - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - slots = new ItemStack[getSizeInventory()]; - - tank.readFromNBT(nbt, "content"); - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - NBTTagList list = new NBTTagList(); - - tank.writeToNBT(nbt, "content"); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return true; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) - { - tank.loadTank(0, 1, slots); - tank.unloadTank(2, 3, slots); - tank.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); - } - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - - @Override - public void setFillForSync(int fill, int index) { - tank.setFill(fill); - } - - @Override - public void setTypeForSync(FluidType type, int index) { - tank.setTankType(type); - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerUF6Tank(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineUF6Tank(player.inventory, this); - } -} +public class TileEntityMachineUF6Tank extends TileEntity { } diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java index 01a63ffab..0b6a4b8d7 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretFritz.java @@ -7,7 +7,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; -import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; @@ -31,7 +31,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidAcceptor, IFluidStandardReceiver { +public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidContainer, IFluidStandardReceiver { public FluidTank tank; @@ -207,22 +207,6 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl tank.setTankType(type); } - @Override - public int getMaxFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; - } - - @Override - public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; - } - - @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); - } - @Override public FluidTank[] getReceivingTanks() { return new FluidTank[] { tank }; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index be7ab91b2..788962d18 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -817,6 +817,7 @@ hbmmat.cadmium=Cadmium hbmmat.calcium=Kalzium hbmmat.carbon=Kohlenstoff hbmmat.cdalloy=Cadmiumstahl +hbmmat.chlorocalcite=Chlorokalzit hbmmat.cinnabar=Zinnober hbmmat.cmbsteel=Combinestahl hbmmat.coal=Kohle @@ -826,8 +827,10 @@ hbmmat.cobalt60=Kobalt-60 hbmmat.coltan=Coltan hbmmat.copper=Kupfer hbmmat.desh=Desh +hbmmat.diamond=Diamant hbmmat.dineutronium=Dineutronium hbmmat.durasteel=Schnellarbeitsstahl +hbmmat.emerald=Smaragd hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouran hbmmat.fiberglass=Fiberglas @@ -840,6 +843,7 @@ hbmmat.graphene=Graphen hbmmat.graphite=Graphit hbmmat.hematite=Hämatit hbmmat.iron=Eisen +hbmmat.lanthanum=Lanthan hbmmat.lapis=Lapis Lazuli hbmmat.lead=Blei hbmmat.lead209=Blei-209 @@ -850,6 +854,7 @@ hbmmat.magnetizedtungsten=Magnetisierter Wolfram hbmmat.malachite=Malachit hbmmat.meteoriciron=Meteoriteneisen hbmmat.mingrade=Minecraft-Kupfer +hbmmat.molysite=Molysit hbmmat.neodymium=Neodym hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niob @@ -866,6 +871,7 @@ hbmmat.plutoniumrg=Reaktorfähiges Plutonium hbmmat.polonium210=Polonium-210 hbmmat.polymer=Polymer hbmmat.radium226=Radium-226 +hbmmat.rareearth=Seltenerden hbmmat.redphosphorus=Roter Phosphor hbmmat.redstone=Redstone hbmmat.rubber=Gummi @@ -876,6 +882,7 @@ hbmmat.schrabidium=Schrabidium hbmmat.schraranium=Schraranium hbmmat.silicon=Silizium hbmmat.slag=Schlacke +hbmmat.sodalite=Sodalit hbmmat.sodium=Natrium hbmmat.solinium=Solinium hbmmat.starmetal=Sternenmetall @@ -1300,6 +1307,7 @@ item.bedrock_ore.type.light.name=Leichtmetall item.bedrock_ore.type.nonmetal.name=Nichtmetall item.bedrock_ore.type.rare.name=Seltenerden item.bedrock_ore_base.name=Rohes Bedrockerz +item.bedrock_ore_fragment.name=%s-Bedrockerzfragment item.beta.name=Beta-Features item.big_sword.name=Großes Schwert item.billet_am_mix.name=Reaktorfähiges Americiumbillet @@ -4535,6 +4543,7 @@ tile.plant_tall.cd4.name=Senf-Weide (Reif) tile.plant_tall.weed.name=Hanf tile.plasma.name=Plasma tile.plasma_heater.name=Plasmaerhitzer +tile.plushie.name=%s Plüschfigur tile.pole_satellite_receiver.name=Satellitenschüssel tile.pole_top.name=Antennenspitze tile.press_preheater.name=Presse-Vorheizer diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index edca0d83b..ffab06692 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1525,6 +1525,7 @@ hbmmat.cadmium=Cadmium hbmmat.calcium=Calcium hbmmat.carbon=Carbon hbmmat.cdalloy=Cadmium Steel +hbmmat.chlorocalcite=Chlorocalcite hbmmat.cinnabar=Cinnabar hbmmat.cmbsteel=Combine Steel hbmmat.coal=Coal @@ -1534,8 +1535,10 @@ hbmmat.cobalt60=Cobalt-60 hbmmat.coltan=Coltan hbmmat.copper=Copper hbmmat.desh=Desh +hbmmat.diamond=Diamond hbmmat.dineutronium=Dineutronium hbmmat.durasteel=High-Speed Steel +hbmmat.emerald=Emerald hbmmat.euphemium=Euphemium hbmmat.ferrouranium=Ferrouranium hbmmat.fiberglass=Fiberglass @@ -1548,6 +1551,7 @@ hbmmat.graphene=Graphene hbmmat.graphite=Graphite hbmmat.hematite=Hematite hbmmat.iron=Iron +hbmmat.lanthanum=Lanthanium hbmmat.lapis=Lapis Lazuli hbmmat.lead=Lead hbmmat.lead209=Lead-209 @@ -1558,6 +1562,7 @@ hbmmat.magnetizedtungsten=Magnetized Tungsten hbmmat.malachite=Malachite hbmmat.meteoriciron=Meteoric Iron hbmmat.mingrade=Minecraft Grade Copper +hbmmat.molysite=Molysite hbmmat.neodymium=Neodymium hbmmat.neptunium237=Neptunium-237 hbmmat.niobium=Niobium @@ -1574,6 +1579,7 @@ hbmmat.plutoniumrg=Reactor-Grade Plutonium hbmmat.polonium210=Polonium-210 hbmmat.polymer=Polymer hbmmat.radium226=Radium-226 +hbmmat.rareearth=Rare Earth hbmmat.redphosphorus=Red Phosphorus hbmmat.redstone=Redstone hbmmat.rubber=Rubber @@ -1584,6 +1590,7 @@ hbmmat.schrabidium=Schrabidium hbmmat.schraranium=Schraranium hbmmat.silicon=Silicon hbmmat.slag=Slag +hbmmat.sodalite=Sodalite hbmmat.sodium=Sodium hbmmat.solinium=Solinium hbmmat.starmetal=Starmetal @@ -2019,6 +2026,7 @@ item.bedrock_ore.type.light.name=Light Metal item.bedrock_ore.type.nonmetal.name=Non-Metal item.bedrock_ore.type.rare.name=Rare Earth item.bedrock_ore_base.name=Raw Bedrock Ore +item.bedrock_ore_fragment.name=%s Bedrock Ore Fragment item.beta.name=Beta Features item.big_sword.name=Great Sword item.billet_actinium.name=Actinium-227 Billet @@ -5614,6 +5622,7 @@ tile.plant_tall.cd4.name=Mustard Willow (Mature) tile.plant_tall.weed.name=Hemp tile.plasma.name=Plasma tile.plasma_heater.name=Plasma Heater +tile.plushie.name=%s Plushie tile.pole_satellite_receiver.name=Satellite Dish tile.pole_top.name=Antenna Top tile.press_preheater.name=Burner Press Preheater diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 523c767be..055b7077e 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -1,49 +1,49 @@ achievement.acidizer.desc=噢,我的皮肤 achievement.acidizer=酸 -achievement.assembly.desc=Bobmazon 2级 (装配机) -achievement.assembly=制作 +achievement.assembly.desc=等等,已经凌晨1点了? +achievement.assembly=这家工厂正在成长 achievement.FOEQ.desc=向火星传送信号!...其实我是说Duna achievement.FOEQ=飞马座运载火箭和发射架 achievement.breeding.desc=谢谢你们,上帝保佑你们,上帝保佑美利坚合众国。 achievement.breeding=反话 -achievement.bismuth.desc=还记得有人抱怨了一个月吗?我愿意。 +achievement.bismuth.desc=还记得那时候有人为这个抱怨了一个月吗?我还记得。 achievement.bismuth=铋 achievement.blastFurnace.desc=他们为制造探险者1号去打捞了一艘沉没的无畏舰。 achievement.blastFurnace=煤和铁 achievement.bossCreeper.desc=核爆爬行者? 那是个什么玩意?! achievement.bossCreeper=四条腿的行走核弹 achievement.bossMaskman.desc=大男孩邦克 -achievement.bossMaskman=6个月的强制服务,我只得到一件糟糕的t恤 +achievement.bossMaskman=6个月的强制服务,我只得到一件糟糕的T恤 achievement.bossMeltdown.desc=比伟大更可怕,但我会竭尽所能 achievement.bossMeltdown=3.6伦琴 -achievement.bossWorm.desc=法布斯塔夫。我的屁股。你算算吧。 +achievement.bossWorm.desc=“绝学法杖”。什么鬼啊。你自己看看吧。 achievement.bossWorm=拆掉机械蠕虫 -achievement.bossUFO.desc=哟,我们这儿有什么?一艘巨大的宇宙飞船正开向我们的星球? +achievement.bossUFO.desc=哟,那是啥东西?一艘正接近我们工事的巨大飞船? achievement.bossUFO=呀哈哈哈,笑死我了 achievement.burnerPress.desc=压力压在你我身上 achievement.burnerPress=压力之下 achievement.c20_5.desc=??? -achievement.c20_5=第20.5章 +achievement.c20_5=第[二十点五]章 achievement.c44.desc=镀锌!我是说,锌! achievement.c44=第四十四章 -achievement.centrifuge.desc=离心力是假的,不要再@我了 +achievement.centrifuge.desc=离心力是真的 别@我 achievement.centrifuge=向心力 achievement.chemplant.desc=现在你在考虑化学物质! -achievement.chemplant=这家工厂正在成长。Pt.2 -achievement.chicagoPile.desc=“当地人怎么样?”“非常友好。” +achievement.chemplant=这家工厂正在成长 Pt.2 +achievement.chicagoPile.desc=“当地人怎么样?” / “非常友好。” achievement.chicagoPile=领航员在新大陆着陆 achievement.concrete.desc=布尔什维克的最爱。 achievement.concrete=老当益壮 achievement.desh.desc=“来吧,你们这群人。有地方可去!” achievement.desh=勒威耶 -achievement.digammaFeel.desc=内心的空虚 -achievement.digammaFeel=感觉的恐惧 +achievement.digammaFeel.desc=我的眼睛在流血 +achievement.digammaFeel=废水侵袭的废土世界 achievement.digammaKauaiMoho.desc=一切都糟透了,这里有些热巧克力 -achievement.digammaKauaiMoho=歌唱,为我歌唱《Kauai Moho》 +achievement.digammaKauaiMoho=唱吧,为我唱出奥亚吸蜜鸟的歌声吧 achievement.digammaKnow.desc=关于这个世界 achievement.digammaKnow=知晓的恐惧 -achievement.digammaSee.desc=坠入深渊 -achievement.digammaSee=可见的恐惧 +achievement.digammaSee.desc=里面有点黑,带个手电筒。 +achievement.digammaSee=踏入深渊 achievement.digammaUpOnTop.desc=仰慕我的儿子,他是我的克隆人. achievement.digammaUpOnTop=仰慕我,仰慕我的家 achievement.fiend.desc=卑鄙 @@ -51,11 +51,11 @@ achievement.fiend2.desc=更卑鄙 achievement.fiend2=残忍2:更残忍 achievement.fiend=残忍 achievement.freytag.desc=英勇的救生员 -achievement.freytag=弗雷塔格 -achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 +achievement.freytag=弗赖塔格 +achievement.fusion.desc=氘核、氚核与能量的舞蹈。 achievement.fusion=聚合 -achievement.gasCent.desc=贫铀讨厌他! -achievement.gasCent=链式 +achievement.gasCent.desc=未浓缩铀讨厌他! +achievement.gasCent=齐佩式离心 achievement.goFish.desc=航海十字架 achievement.goFish=去钓鱼 achievement.hidden.desc=使用一节坠落的车厢杀死一只污染苦力怕 @@ -67,7 +67,7 @@ achievement.horizonsEnd=地平线。 achievement.horizonsStart.desc=将一个小伙子送上月球 achievement.horizonsStart=地平线? achievement.impossible.desc=你不可能取得该成就 -achievement.impossible=简直不可能 +achievement.impossible=字面上的不可能 achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸弹!” achievement.inferno=食人行动 achievement.manhattan.desc=1945年8月6日 8:15 @@ -77,12 +77,12 @@ achievement.meltdown=快速非计划拆卸 achievement.no9.desc=“我希望我开采的铅能被用在你的油漆里” achievement.no9=旧数字9 achievement.omega12.desc=解决在这个可怜的星球上继续生存的问题 -achievement.omega12=欧米茄-12粒子加速器 +achievement.omega12=欧米伽-12粒子加速器 achievement.polymer.desc=美味、美味的微塑料。 achievement.polymer=特氟隆 achievement.potato.desc=你居然捅我!你怎—喔哦哦哦哦哦! achievement.potato=流氓AI -achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。。。。 +achievement.radDeath.desc=居里夫人开创了放射性理论、放射性治疗和放射性死亡。 achievement.radDeath=噢, 辐射! achievement.radium.desc=你 因 为 往 我 的 咖 啡 里 倒 镭 而 被 解 雇 了 ! achievement.radium=不可思议先生 @@ -94,24 +94,26 @@ achievement.RBMK.desc=他有妄想症,带他去医务室。 achievement.RBMK=3.6伦琴? achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” achievement.redBalloons=99个红气球 +achievement.redRoom.desc=? +achievement.redRoom=另一边 achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 achievement.schrab.desc=不管怎样,我不会看太久。 achievement.schrab=稳定岛 achievement.selenium.desc=耶! achievement.selenium=XVIII 月亮女神 -achievement.SILEX.desc=我保证,它会比它听起来的要更酷 +achievement.SILEX.desc=我保证这比听起来更酷。 achievement.SILEX=激光激发法分离同位素 achievement.slimeball.desc=粘液球 achievement.slimeball=我应该把蛋蛋浸在硫酸里。 -achievement.stratum.desc=快刹车, Mitts! +achievement.stratum.desc=快刹车,Mitts! achievement.stratum=岩层 achievement.someWounds.desc=准备好 achievement.someWounds=有些伤口永远无法愈合 achievement.soyuz.desc=变得松脆 achievement.soyuz=土豆烹饪 achievement.space.desc=屡试屡败,浪费了价值9000万美元的资金 -achievement.space=最后战线—呃,算了吧 +achievement.space=最后的边疆——呃,算了吧 achievement.sulfuric.desc=硫酸 achievement.sulfuric=我不应该把蛋蛋浸在硫酸里的。 achievement.tantalum.desc=一个难以捉摸但却永远需要的元素。 @@ -126,12 +128,21 @@ achievement.watz.desc=可能包括Fólkvangr弗尔克范格场 achievement.watz=126号元素的力量 achievement.witchtaunter.desc=那些古怪的生物对你毫无兴趣! achievement.witchtaunter=巫婆陶恩特 -achievement.ZIRNOXBoom.desc=处理, 看,满地是残骸碎片 -achievement.ZIRNOXBoom=锆诺克斯 +achievement.ZIRNOXBoom.desc=生气了吗? +achievement.ZIRNOXBoom=CIRNOX + +analyze.basic1=========NTM组件======== +analyze.basic2=更多信息请参阅Wiki。 +analyze.basic3=========附加信息======== +analyze.dummy=类型:Dummy Block +analyze.error=此方块的兼容性未正确设定。请将此问题作为Bug反馈! +analyze.name=名称:%s +analyze.noInfo=无附加信息。 + armor.blastProtection=修正 %s 的爆炸伤害 armor.cap=伤害上限 %s armor.damageModifier=修正 %s 对 %s 的伤害 -armor.dash=给予 %s 冲刺 +armor.dash=给予 %s 次冲刺 armor.electricJetpack=离子喷射背包 armor.explosionImmune=免疫除爆炸伤害外的一切伤害 armor.fasterReload=快速装填 @@ -155,6 +166,7 @@ armor.thermal=热成像 armor.threshold=伤害阈值 %s armor.vats=敌对生物HUD armor.yield=抵御低于%s的伤害 + armorMod.all=所有 armorMod.applicableTo=适用于: armorMod.boots=靴子 @@ -170,9 +182,10 @@ armorMod.type.insert=插板 armorMod.type.leggings=护腿 armorMod.type.servo=伺服电机 armorMod.type.special=特殊 + battery.mode.buffer=输入/输出模式 battery.mode.input=输入模式 -battery.mode.off=关闭W +battery.mode.off=关闭 battery.mode.output=输出模式 battery.priority.high=充电优先级:高 battery.priority.high.desc=总是需要优先装满的紧急缓冲区 @@ -183,14 +196,17 @@ battery.priority.normal.desc=较小的电网,其优先级无关紧要 battery.priority.recommended=推荐用于: battery.redstone.off=红石 关 battery.redstone.on=红石 开 + bomb.detonated=成功引爆! bomb.incompatible=设备无法触发! bomb.launched=发射成功! bomb.missingComponent=组件丢失! bomb.nobomb=链接位置不兼容或已断开! bomb.triggered=触发成功! + book.test.cover=停车坐爱枫林晚 book.test.page1=测试页面1 + book.error.cover=粒子对撞机:$故障排除 book.error.title1=错误 0x01 [能量不足] book.error.page1=§l错误类型:§r "错误_能量不足" §l描述:§r 粒子到达了能量不足的部分。 §l修复方式:§r 用更高级的电源接口替换粒子成功通过的 其中一个电源接口,或者在粒子终止的段之前额外添加多一个电源接口。 @@ -210,6 +226,7 @@ book.error.title8=错误 0x08 [二极管方向错误] book.error.page8=§l错误类型:§r "错误_二极管方向错误" §l描述:§r 该粒子与肖特基粒子二极管的非输入侧碰撞。§l修复方式:§r 检查二极管的配置是否正确。 粒子只能从带有绿色向内箭头的侧面进入二极管。 book.error.title9=错误 0x09 [多处分支] book.error.page9=§l错误类型:§r "错误_多处分支" §l描述:§r 粒子到达具有多个出口的转弯处。§l修复方式:§r 如果你的对撞机是正常的,检查所有需要的线圈是否都存在(即线圈中没有缺漏)。如果转弯处打算进行分支,则需要正确放置的肖特基粒子二极管。 + book.rbmk.cover=$我的第一个$RBMK石墨式反应堆:$建造一个$反应堆$的基础知识 book.rbmk.title1=介绍 book.rbmk.page1=§lRBMK石墨式反应堆§r是一个完全模块化的核反应堆. 与大多数其他反应堆不同的是, 该反应堆没有"多方块结构核心"和尺寸上的限制, 而反应堆的性能和效率仅取决于你是如何建造它的, 以及各个组件如何相互作用. @@ -243,6 +260,7 @@ book.rbmk.title15=核燃料 book.rbmk.page15= §l核燃料§r 的反应取决于许多因素. 主要是 §l核燃料强度§r, §l氙中毒程度§r 和接收到的 §l中子数量§r. 氙元素会在核燃料的中子含量较低时积聚起来, 并在正常运行时燃烧殆尽. 中子的效率取决于其类型, 大多数核燃料 §l用慢中子轰击来裂变效果最好§r. book.rbmk.title16=熔毁 book.rbmk.page16=§4§l尽量避免发生, 你不会想让这样一场核灾难发生在你的存档或服务器里的. + book.starter.cover=重建$社会的实业家$指南 book.starter.title1=介绍 book.starter.page1=如果你正在读这篇文章,很可能社会已经因这样或 那样的方式完全崩溃了。政府、国家和权威是过去的概念, 以及文明生活的所有便利设施。因此,本指南将 告诉您如何通过重新创造过去的行业和技术 来改善自己的生活,从而改变这种状况。 @@ -255,10 +273,10 @@ book.starter.page4=为了将金属冲压成有用的 形状、组装机械和执 book.starter.title5=废墟探索 book.starter.page5=根据最初的世界末日事件对世界现有结构的影响程度, 有可能直接从中抢救出许多有用的材料和机器。 钢铁等金属合金、电路等部件,甚至核电站的 裂变材料都可能在等着你。 然而,要小心某些废墟,因为那里可能潜伏着过度的危险, 就像草丛中的蛇一样; 等待着用辐射、陷阱或无法形容的恐怖袭击你... book.starter.title6=早期机械 -book.starter.page6a=您应首先装配的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. -book.starter.page6b=汇编程序将用于创建本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. +book.starter.page6a=您应首先制造的两台机器是§l高炉§r和§l装配机§r. 前者允许您制造合金,如§L钢§r、§l工业级铜§r和§l高级合金§r; 你需要将这些金属用于机器的机身、 电路的布线、高级电磁铁等. +book.starter.page6b=装配机将用于制造本指南中描述的几乎所有其他机器. 您需要一个电源,如§L火力§r§L发电机§r或§L太阳能锅炉§r. book.starter.page7a=§l粉碎机§r以及一对粉碎机刀片将会非常有用, 能将大多数矿石粉碎成可熔炼的粉末,使其产量提高一倍. 这些粉末对于开始为各种机器制作电路也至关重要, 例如§l增强电路§r和§l超频电路§r。 -book.starter.page7b=使用您的新机器,您可以创建§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 +book.starter.page7b=使用您的新机器,您可以制造§L化工厂§r, 用于合成更好的电路、混凝土或进行石化产品加工等。 book.starter.title8=黑金 book.starter.page8a=使用§l石油§l储层§r§l探测仪§r, 您可以通过测量一个区域 来发现地下的油岩以 放置§l石油钻机§r或 §l钻油塔§r来开采 记住,石油储备会随着时间 的推移而耗尽 book.starter.page8b=在§l炼油厂§r中提炼和分离石油 成分之前,你必须在§l锅炉§r中将 石油加热至300°C. @@ -267,7 +285,7 @@ book.starter.page9=使用§l化工厂§r, §l分馏§r§l塔§r和§l催化裂 book.starter.title10=先进的机械 book.starter.page10=通过一套成熟的石油加工系统,您可以制造§l离心机§r, 这将使矿石的产量增加三倍; §l矿物§l结晶机§r将 矿石结晶后,产量将进一步提高; 以及§lSILEX同位素激光分离室+§lFEL§r, 这两个现代工程的奇迹可以轻松地分离材料的同位素. 你需要更多的能量来驱动这些; 可通过§l柴油发电机§r,§l工业发电机§r, 甚至核反应堆等来源获取更多的能量。 book.starter.title11=特殊地层 -book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深板岩层§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 +book.starter.page11=在你行走的地面之下,有几个 自然形成的§l岩层§r,或者说特殊的 矿层和岩层。 §l片岩地层§r是蓝色的含锂层, 其中有铀、铁、铜、石棉和其他矿石 可供你使用。 §l深层岩石§r含有大量稀有矿物, 如§l锆§r、§l硼§r和§l朱砂§r等, 但你需要炸药才能采集 book.starter.title12=辐射 book.starter.page12a=本书其余部分将讨论与辐射有关的问题。 为了您和他人的安全,我将提供一些建议以说明如何缓解和处理暴露于此的风险。 book.starter.page12b=充分暴露在辐射中会导致身体伤害. 第一步是预防; 一定要限制接触,并穿戴防护装备,如§l防辐射套装§r, 或在衣服或盔甲上加装§l防辐射覆层/涂料§r; 你也可以服用§lRad-X防辐射药§r来限制你的辐射量. 多亏了现代医学,第二步可以在必要时移除; 例如,§l玩家§l去污器§r将缓慢减少身体吸收的辐射. §l消辐宁§r还可以用作暴露后预防,快速有效地逆转 电离辐射对身体造成的损害。 @@ -281,6 +299,7 @@ book.starter.title16=结论 book.starter.page16=如果你已经走到了这一步,你已经走在重建文明大道上了. 你已经成功地用核能, 石油化工等重新制造了世界末日前的那些先进机器. 我不知道你将如何利用这些新发现的科技, 但我个人希望你利用这些优势是为了自己和他人的利益 - 或者至少是为了自卫. 再见! book.starter.title18=关于作者 book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次》§r中的 灰色虚空中太久的人. 有一次, 他发现了一扇工作室的门, 但令他沮丧的是, 他发现那是一个纸板剪出来的 + #book.rbmk.cover=HOW 2 RBMK:$The Basics$of Reactor$Construction #book.rbmk.title1=Introduction #book.rbmk.page1=The §lRBMK§r is a fully modular nuclear reactor. Unlike most other reactors, there is no "core", and no size limitations, rather, the behavior and efficiency of the reactor comes from how it is built and how the different pieces interact with each other. @@ -313,115 +332,135 @@ book.starter.page18=v?r只是一个被困在"传声头像"的§o《一生一次 #book.rbmk.page15=The §lfuel§r's reactivity is based on multiple factors. The main ones are the §lenrichment§r, §lxenon poison§r and the amount of incoming §lneutrons§r. Xenon builds up when the fuel receives few neutrons and burns away during normal operation. The effectivity of neutrons depends on the type, most fuels §lsplit best with slow neutrons§r. #book.rbmk.title16=Meltdown #book.rbmk.page16=§4§lAvoid. -book_lore.author=由%s + +book_lore.author=%s 著 book_lore.test.name=测试 book_lore.test.author=那个家伙 -book_lore.test.page.0=>hello anons before i begin let me clarify that i'm not gay. >Be me >This night >18 > At hanging out with my best friend with my parents gone for a few days >We've been best friends for a year now >Been drinking a bit and playing lots of video games and ordered a pizza >We were having a blast >At a certain point in the night like around 9:00 he makes a really funny joke that I don't remember but I know that it made us both laugh really hard > With out thinking I brush my right hand through his semi-curly black hair and call him a funny boy >He blushes >I realize I'm feeling flustered >We're kinda close >All of the sudden he kisses me and for some reason I kiss him back >We make love >Cuddle together and fall asleep >Wake up in the middle of the night with his head snuggled up on my chest and neck area >It feels nice but I'm not a homosexual -book_lore.test.page.1=>你好,在我开始之前,让我澄清我不是同性恋。>做我>今天晚上>18>和我最好的朋友和我的父母出去玩了几天>我们已经是最好的朋友一年了>喝了点酒,玩了很多电子游戏,还点了一份披萨>我们玩得很开心>在晚上的某个时候,比如9点左右,他开了一个非常有趣的玩笑,我不记得了,但我知道这让我们俩都笑得很厉害>没有我想我用右手摸了摸他那半卷曲的黑发,然后叫他一个有趣的男孩>他脸红了>我意识到我很慌张>我们有点亲密>突然他吻了我,出于某种原因我又吻了他>我们做爱>拥抱在一起睡着了>半夜醒来时,他的头贴在我的胸部和颈部>感觉很好,但我不是同性恋 -book_lore.test.page.2=他在我怀里睡着时,我正在打字。我怎么才能让我最好的朋友失望呢?我不想成为[编辑]/b/ -book_lore.test.page.3=3 -book_lore.test.page.4=4 +book_lore.test.page.0=>哈喽 在我开始之前 我得先澄清一下 我不是同性恋 >做我 >今天晚上 >六点 >趁爸妈出去几天 我和铁哥们去外面玩 >我们成了铁哥们已经有一年了 >喝了点酒 打了很多游戏 还点了个披萨 >我们玩得正高兴 >晚上 在一个什么时候 大概九点吧 他讲了个很好笑的笑话 我记不清了 但是我记着 那笑话让我俩笑疯了 >没来得及细想 我拿手捋了捋他的头发 黑色的微卷的头发 还说他真有意思 >他脸红了 >我意识到自己慌了 >我们有点太亲密了 >突然他亲了我 不知道为什么 我亲回去了 >我们做爱了 >抱在一起睡着了 >半夜我醒了 发现他脑袋贴着我的胸和脖子 >这种感觉很奇妙 但我真的不是同性恋 +book_lore.test.page.1=我打这些字的时候他正在我 怀里睡觉。我怎么就这样让 我哥们失望了?我不想变成 [数据删除] /b/ +book_lore.test.page.2=3 +book_lore.test.page.3=4 +book_lore.test.page.4=5 + book_lore.book_iodine.name=笔记 book_lore.book_iodine.author=戴夫 -book_lore.book_iodine.page.0=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.1=alright you will not believe this, but old man weathervane finally managed to show up again since he left two weeks ago and what's more surprising is the fact that he actually decided to spill the beans on what they were doing in the canyon: -book_lore.book_iodine.page.2=apparently the morons from R&D discovered a compound that is mostly inorganic, pretty much like a toxin in nature, but get this: the dying cells will reproduce said toxin and excrete it through the skin, creating an aerosol that is highly contagious. +book_lore.book_iodine.page.0=说起来你肯定不信:“风向 标”那老家伙在离开两个月 之后又重新出现了。而且更 惊人的是,他打算把那伙人 在峡谷里干的秘密勾当泄露 出去。 +book_lore.book_iodine.page.1=搞研发的那群白痴们偶然发 现了一种化合物:大部分是 无机的,很像自然界中的 毒素。但是注意:被这种毒素 杀死的细胞会产生更多的同 种毒素,并将其释放到皮肤 外面,这就产生了传染性极 强的气溶胶。 +book_lore.book_iodine.page.2=这东西像病毒但又不是病毒。 这种物质非常奇怪,你在家 随便找一个瓶子就能混合 出来,但是必须要搞对顺序。 博士告诉我,第一种原料是 粉末状碘晶体,放在 第%d格。 + book_lore.book_phosphorous.name=笔记 book_lore.book_phosphorous.author=戴夫 -book_lore.book_phosphorous.page.0=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second -book_lore.book_phosphorous.page.1=heyo, it's me again. i assume you got my last memo, the doc wasn't too happy about it. i'll have to do this quick, the dunderheads from R&D are currently moaning again, probably over money. again. anyway, doc weathervane found that the second +book_lore.book_phosphorous.page.0=哈喽,又是我。你应该看到 我的上一篇备忘录了吧。 博士对我写备忘录这件事有 点生气,所以我得快点写完。 那群搞研发的傻帽又开始一 个劲地抱怨,估计还是什 么钱的事。 +book_lore.book_phosphorous.page.1=对了,“风向标”博士发现了 第二种原料是红磷,应该 放在第%d格。 + book_lore.book_dust.name=笔记 book_lore.book_dust.author=戴夫 -book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.1=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not -book_lore.book_dust.page.2=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most +book_lore.book_dust.page.0=博士发现搞研发的那群呆子 还留了个样品之后气得要命, 大喊大叫了一通“总体过失” 和“世界末日”什么的。 我告诉他先冷静一下, +book_lore.book_dust.page.1=太激动对血压不好,而且他 本身就没有那么多血。那群 呆子里面的一个在上周的通 报里说漏了嘴。他们管他们 调出来的那玩意儿叫“MKU” ——管他是什么意思,而且 那玩意儿里面还有家里的 绒毛。 +book_lore.book_dust.page.2=你肯定不信,那群呆子最危 险的发明之一里面还有灰尘 ——奇怪的是,他们甚至提到 这东西应该放在第%d格。 + book_lore.book_mercury.name=笔记 book_lore.book_mercury.author=戴夫 -book_lore.book_mercury.page.0=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being -book_lore.book_mercury.page.1=well that settles that. not counting the vomitting blood part, the toxicological report mostly resembles that of mercury poisoning. why? because our little mix also contains mercury! i just wonder where all that stuff comes from when being +book_lore.book_mercury.page.0=就是这么回事。不算吐血的 部分,毒理学报告很大程度 上呈现了汞中毒的特征。 为什么?因为那堆混合物里 也含有水银! +book_lore.book_mercury.page.1=我很好奇,这东西被细胞复 制的时候,复制出来的物质 是从哪来的? 扯远了。水银应该放到 第%d格。 + book_lore.book_flower.name=笔记 book_lore.book_flower.author=戴夫 -book_lore.book_flower.page.0=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, -book_lore.book_flower.page.1=remember when i mentioned in my first memo that the compound is mostly anorganic? well guess what, the old man shared the fourth ingredient: ipomoea nil, a genus of flower. morning glory! it might be due to its low sulfur content, whatever might be the case, +book_lore.book_flower.page.0=还记得我在第一篇备忘录里 提到了“这东西大部分是无 机的”吗?你猜怎么着, 老“风向标”跟我分享了第 四样原料:一种花,学名叫 “ipomoea nil”。是牵牛花! +book_lore.book_flower.page.1=可能是由于牵牛花较低的硫 含量,用别的花都不行。 牵牛花应该放在第%d格。 + book_lore.book_syringe.name=笔记 book_lore.book_syringe.author=戴夫 -book_lore.book_syringe.page.0=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal -book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously you have to store this MKU stuff in a container. the R&D nuts used regular metal syringes that they got from medical. surplus ware i presume, they got thousands of needles just lying around. the metal +book_lore.book_syringe.page.0=对我第五篇备忘录的一点 补充:很显然你应该找个容 器把这些MKU装进去。搞 研发的那帮疯子用的是从医 疗机构弄到的普通金属注射 器——我推测还有不少多余 的。他们弄了几千个,然后 扔的到处都是。 +book_lore.book_syringe.page.1=金属注射器 应该放在第%d格。 + book_lore.resignation_note.name=辞职信 book_lore.resignation_note.author=科斯马 -book_lore.resignation_note.page.0=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and -book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息? -book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。 +book_lore.resignation_note.page.0=管理层昨天又对我们的部门 进行裁员了。那群白痴要怪 只能怪他们自己,我都不知 道他们在那场惨败后还在期 待什么。到底是谁他妈泄露 了那种程度的信息? +book_lore.resignation_note.page.1=我们损失了几百万,而且现 在失业的还是爷。老子希望 你们这帮混蛋最后能从你们 的一堆问题中学到点教训然 后给爷滚去自闭。 +book_lore.resignation_note.page.2=我周五不回来了。 记得把工资发我。 + book_lore.memo_stocks.name=公司内部备忘录 -book_lore.memo_stocks.page.0=投资者关系 - $ $ 最新季度报告提供的数据存在一些明显差异。财务部门做出一些调整是谨慎的,所以不必有任何担忧。 +book_lore.memo_stocks.page.0=投资人相关 - $ $ 上季度报告提供的数字中已 经出现了明显差异。财政部 门即使做出一些调整也是相 当谨慎的,因此无需担心。 + book_lore.memo_schrab_gsa.name=内部备忘录 -book_lore.memo_schrab_gsa.page.0=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum -book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。 +book_lore.memo_schrab_gsa.page.0=合同管理记录 - $ $ 法务部在与DLA的谈判中 取得了突破。他们批准了 450亿的联邦采购服务 总署投资资金用于异变金属 的采购与研究。 +book_lore.memo_schrab_gsa.page.1=就目前的预期,相关事项能 够带来至少40%%的利润, 以及获得未来合同的更大可 能。由于此事件的保密性质, 所有财政证据都将保持机密。 + book_lore.memo_schrab_rd.name=内部备忘录 -book_lore.memo_schrab_rd.page.0=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. -book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。 -book_lore.memo_schrab_rd.page.2=然而,Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程,提供的电子被一种奇特的“魔力”转化为极高能量的光子。 -book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。 +book_lore.memo_schrab_rd.page.0=研发 - $ $ 目前我们生产异变金属的 主要方法是使用新型粒子加 速器。然而,与产出量相比, 能源成本高得惊人。 +book_lore.memo_schrab_rd.page.1=然而,施拉鲍尔博士发现了 一种全新的相互作用—— 暂称为“奇异轻子振荡”—— 该作用可以显著降低生产 成本。通过一个目前未被完 全理解的的过程,提供的电子 被一种奇特的“魔力”转化 为极高能量的光子。 +book_lore.memo_schrab_rd.page.2=这是许多已明确的粒子转换 定律的极端例外。但初步实 验证明,这些质子先转变为 上下夸克,最终形成了异变 金属。 +book_lore.memo_schrab_rd.page.3=奇怪的是,原型机中需要钨与 少量异变金属形成的合金。 另外,原型机中也需要一个 特殊的电容器,用于消除多 余的正电荷。 + book_lore.memo_schrab_nuke.name=研究报告 -book_lore.memo_schrab_nuke.author=Schrabauer博士 -book_lore.memo_schrab_nuke.page.0=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. -book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。 -book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次,我们在对Everwerpen的地下拍摄中,在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。 +book_lore.memo_schrab_nuke.author=施拉鲍尔博士 +book_lore.memo_schrab_nuke.page.0=最近的研究将我们引至了核 爆对材料的影响。多亏了外 界的拨款,我们“意外地” 测试了我们的铀定向合成异 变金属理论。 +book_lore.memo_schrab_nuke.page.1=而此前我们只在回旋加速器 中制作出异变金属。然而, 我们在埃弗韦彭的地下实验 室的铀矿石中发现了微量的 异变金属,附近所有的纯 金属铀则都发生了裂变。 +book_lore.memo_schrab_nuke.page.2=既然如此,那么使用浓缩到 临界质量附近的铀矿石,或 者是含有大量可裂变核废料 的脏弹,都有可能在理论上 创造足以人工收集的量的 异变金属。 + book_lore.bf_bomb_1.name=私人笔记 book_lore.bf_bomb_1.author=M. 波特 -book_lore.bf_bomb_1.page.0=Took long enough, but my transfer was accepted. Those new grads were already hard to handle, let alone all the unprofessionalism of the lead. $ Not all good news - this lab was withholding further detail, and I didn't need more chaos over another magic new discovery. -book_lore.bf_bomb_1.page.1=Of course that was the case. The alumni had their doubts (surprising, considering how bright-eyed they were), but my only... competent? colleague actually got his hands on the primer hand-out. Must have more connections than I thought. His memo is discouraging: -book_lore.bf_bomb_1.page.2=apparently, there's yet ANOTHER miracle material that they prodded out of some concoction of antimatter and a fringe isotope. The brochure calls it "SWIRLMAT" - hell if I know - and that's it. No wonder they wanted a theoretical physicist, -book_lore.bf_bomb_1.page.3=they don't even know what it is yet. Either way, practically any job would be better than my old position, so I can't complain much about sketchiness. +book_lore.bf_bomb_1.page.0=虽然过了很久,但我的工作 调动申请终于批下来了。那 些刚升级的毕业生已经够难 对付了,更别提上边那些人 ——他们一点专业素质 都没有。 $ 换工作地点也不全是好事—— 现在这个实验室拒绝提供进 一步的细节,而且我已经被 另外一个魔法般的新发现 搞得够乱了。 +book_lore.bf_bomb_1.page.1=就是这样。那些学生们各有 各的疑惑 (想想他们多有 精神就知道这有多让人奇怪), 而我唯一的……同事 (竞争 对手?) 只是在做发小册 子的工作。这些事之间的联 系绝对比我想的要复杂。他 的笔记很打击人: +book_lore.bf_bomb_1.page.2=“又有一种奇异物质被偶然 发现;这种物质被指明是反 物质和一种边缘同位素的复 合物。小册子上说它叫‘旋素’ ——鬼知道这名字什么意思, 然后就没了。 +book_lore.bf_bomb_1.page.3=“怪不得他们想找个理论物 理学家,还不是因为他们连 这东西是什么都不知道。但 另一方面,基本上随便什么 工作都比我的旧职位强, 所以我也别抱怨这上面基本 什么都没有了。” + book_lore.bf_bomb_2.name=私人笔记 book_lore.bf_bomb_2.author=M. 波特 -book_lore.bf_bomb_2.page.0=Despite the absence of information in that primer, I still had some hope they knew a bit more. Not at all. Every other senior researcher has a blind faith in this material; their propositions were practically biblical. I was near speechless. -book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no goddamn sense - it is completely unlike any other substance I've seen before. Its appearance was near frightening, a literal mass of swirling colors, with darker lines permeating through the neon green surface. -book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. -book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy -book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be -book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. +book_lore.bf_bomb_2.page.0=即使那本小册子上缺少大量 信息,我还是希望他们知道 的比我更多一点。但是他们 也不知道别的了。其他年长 一些的研究员都对这种物质 有一种盲目的信念:他们的 命题都是完全合理的。 我压根无话可说! +book_lore.bf_bomb_2.page.1=而且我甚至没法责备他们。 “旋素”没个屁的合理性! 这东西和我见过的其他物质 完全不一样。它的外表令人 毛骨悚然:它的颜色不停变 换着,霓虹绿色的表面上弥 漫着颜色略深的线条。 +book_lore.bf_bomb_2.page.2=更糟的是这东西还是个能量 源。我们样品的存在本身 就是对“ALARA”规则的 违背:当样本到达实验室时, 我们都撤离了实验室,唯一 一个够勇敢的人 (叫“梅菲因博士”) 也只穿着A级防护服移动了 样品20米。 +book_lore.bf_bomb_2.page.3=实验上的数据也没有好多少。 这东西辐射的能量非常强, 强到好像热力学第一定律都 要被打破一样;在这东西附 近的任何地方待着——甚至隔 着一米厚的铅——都十分恐怖。 我们做了光谱学方面的推断 就冲出了实验室,但什么新 发现都没有。 +book_lore.bf_bomb_2.page.4=但在这些事之后,科研团队 里的那群白痴竟然一点都没 有动摇!在那么些“讨论” 的时候干坐着够难受了; 一个带头人还胡乱说对这项 试验的禁令会被取消,也就 是说接下来几周我们可以逃 脱这些烂摊子来好好造炸弹。 +book_lore.bf_bomb_2.page.5=他们心里到底觉得谁会来干 这件事?麻烦得要命。最后, 一个理智的助手 (叫安德鲁) 给这种物质起了个外号叫 “野火”——因为和这东西比 起来,在火葬堆上被活活烧 死的痛苦都不算什么。 + book_lore.bf_bomb_3.name=私人笔记 book_lore.bf_bomb_3.author=M. 波特 -book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze -book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some -book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into -book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. -book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through -book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... +book_lore.bf_bomb_3.page.0=我和我的团队取得了一些突 破。谈一下我的“分离” ——我把自己从那些更“虔诚” 的人里面分离出来之后,在 那工作变得好受多了。虽然 我们仍然对野火的具体性质 不甚了解 (因为研究一个 会毁了设备的东西非常难) , +book_lore.bf_bomb_3.page.1=但对野火与其他物质相互作 用的研究取得了丰硕成果。 值得注意的是,野火会与其 他物质形成“气态”;所有人 里面,只有安德鲁提醒我: 那其实是悬浮在稀有气体中 的微小野火粒子形成的胶体, +book_lore.bf_bomb_3.page.2=每个野火粒子都被带正电的 “气体泡”包裹着,这样这些 粒子就不会沉降。谁能想到 这东西的致命伽马辐射会有 好处?反正不是我。 +book_lore.bf_bomb_3.page.3=我尽量不去想他们是怎么把 样品转化成微粒的,但我并 不能把这些气态野火的实用 性一笔带过——气态野火使得 对野火的研究更加安全了。 $ 说到安全,带头人 (冷酷无情事不关己地) 做了一项差点让他掉脑袋的 发现。 +book_lore.bf_bomb_3.page.4=他决定把自己“弄脏”: 让一单元量的野火胶体和极 其昂贵的反物质直接反应。 产生的爆炸把它们所在的桌 子化成了一块被大量辐照过 的废渣,并在桌面上刻出了 一个几乎完美的半球, +book_lore.bf_bomb_3.page.5=还让领头人的脑袋吸收了足 以引起急性放射综合征的辐 射。我觉得我们现在知道了 怎么引爆野火, 但是某些人…… + book_lore.bf_bomb_4.name=私人笔记 book_lore.bf_bomb_4.author=M. 波特 -book_lore.bf_bomb_4.page.0=I just can't escape my old work. They're the only place that's hiring despite all this godforsaken turmoil, but I'm not going back into that hole. $ They only tempted me because I need out, fast. Remember that atmospheric testing treaty we withdrew from a week ago? -book_lore.bf_bomb_4.page.1=Well, the dipshit in charge of our lab got something right for once. The denunciation came with a flurry of new "scientists" joining, just so we could weaponize balefire. The lack of critical thought here is honestly baffling - bless him, Andrew even jumped ship the -book_lore.bf_bomb_4.page.2=second the first fucking BOMB DESIGN was drafted. That ass Melfyn looked so happy with his little mechanism - perhaps he got brainworms from carrying that sample? - which involved some stupid shit using the solidified, base balefire and an HV -book_lore.bf_bomb_4.page.3=battery. $ Apparently, the form matters for energy output and activation method or whatever, kind of like uranium versus plutonium in regular nukes, but the end result is an initial shock starting the explosion. I find it funny, hilarious even. -book_lore.bf_bomb_4.page.4=All of them place such emphasis on the activation; they ignore the actual mechanism of it all because they don't have a single clue how it works! It may as well be magic at this point, and yet they're still trying to twist and bend it - just for more weapons of war. +book_lore.bf_bomb_4.page.0=我没办法逃脱我的旧工作。 现在这种死气沉沉的动荡 时代,只有这个地方在招人 了;但我不会再回我那个坑 里了。 $ 他们只是在诱惑我,因为我 需要出去,需要挣快钱。 还记得我们一周前退出的空 中试验协定吗? +book_lore.bf_bomb_4.page.1=那些掌管我们实验室的烂人 终于做对了一次。谴责与我 们将野火武器化需要的一大 批科学家一同到来。这里缺 少的批判性思维真是令人费 解——安德鲁甚至在第一份 该死的野火炸弹设计开始草 拟的那一刻突然不干了。 +book_lore.bf_bomb_4.page.2=那个梅菲因看上去打小算盘 打得很高兴,难道他搬野火 样品的时候脑子坏掉了? ——他还提出了使用固化的野 火以及高压电池的傻逼设计。 +book_lore.bf_bomb_4.page.3=很显然,这种形式的物质输 出的能量和激活途径或者别 的什么玩意和传统核弹比, 就像钚跟铀在传统核弹里面 比一样;但最终的结果是初 始的震荡引发了爆炸。 这倒是挺有意思。 +book_lore.bf_bomb_4.page.4=他们这些人都把注意力集中 在了激活上,而完全忽略了 具体机制——因为他们连点头 绪都摸不着!现在看来或许 就是魔法,然而那些人还在 尝试参透整个过程——也只是 为了制造更多战争用的武器 而已。 + book_lore.bf_bomb_5.name=私人笔记 book_lore.bf_bomb_5.author=M. 波特 -book_lore.bf_bomb_5.page.0=I just... can't come to grips with it, even days after. It was a foregone conclusion, really, with how flippant the science team was with safety. $ $ Doctor Melfyn, M.S., is gone. Dead, maybe. I saw it happen before my own eyes, in their test chamber. -book_lore.bf_bomb_5.page.1=We had just gotten another batch of pure balefire, and he had recovered electrical equipment and an energy source to test his proposal. I don't know what caused it (was the power on? had he begun too soon?), but it seemingly progressed in agonizingly slow motion, -book_lore.bf_bomb_5.page.2=as the green-tinted light consumed the table, the battery, and Dr. Melfyn standing only a meter away. Even when the table had degraded into a pool of broiling metal on the floor, he did not burn. I don't know what I saw in his eyes... $ $ Terror, or awe -book_lore.bf_bomb_5.page.3=over his continued survival, maybe? Whatever our "miracle" material was, it didn't care. With a bright blaze of light, he disappeared in the next moment. Was he evaporated? incinerated? annihilated? sent to fucking hell itself, I don't know anymore! -book_lore.bf_bomb_5.page.4=The head researcher sickens me. Said we could be more careful, keep trucking, whatever other morale-improving filth he spewed. That dipshit won't ever figure out that playing with fire will get you burned. $ I didn't bother -book_lore.bf_bomb_5.page.5=resigning, I just grabbed my shit and ran for the hills. Not like it matters, anyway; considering the lack of calls, and the mushroom cloud that rose over my (now former) workplace, they've either blown everything up or entered full-on military jurisdiction. -book_lore.bf_bomb_5.page.6=There's a vital distinction to be made between dissection and VIVISECTION, one which was clearly lost on them. They can dissect metal or atoms as much as they like, but tearing into, vivisecting reality itself is only going to end in more Dr. Melfyns. Who knows! -book_lore.bf_bomb_5.page.7=The government wants to put this shit into bombs after all, maybe we'll see a couple more wars, couple more million resigned to a fate worse than death. They can't hide this forever. $ $ I don't care. Not anymore. Please, god, let me go back -book_lore.bf_bomb_5.page.8=to actual science. $ $ Goddamnit, Mae, get ahold of yourself... +book_lore.bf_bomb_5.page.0=就算过了很多天,我…… 还是理解不了这些。整个科 研团队对安全的轻率,似乎 让整个事情成了必然结局。 $ $ 梅菲因·M.S.博士,已经 离开了,或许已经离开这个 世界了。悲剧,就在我的眼皮 底下,就在他们的试验仓里, 发生了。 +book_lore.bf_bomb_5.page.1=那时候我们刚刚得到另外一 批野火纯品,而且他已经修 好了用来测试他的提案的电 子设备和能量源。我不知道 到底是什么导致的 (开机了吗?还是开始得 太早了?) ,但是悲剧貌似 已经痛苦地、缓慢地开始了。 +book_lore.bf_bomb_5.page.2=野火的绿色光芒逐渐吞噬了 桌子,吞噬了电池,吞噬了站 在一米之外的梅菲因博士, 甚至桌子都被降解成了地板 上一滩滚烫的金属,但梅菲 因还没有燃烧。我不知道他 从自己的眼里看到了什么…… $ $ 或许,恐惧,或者敬畏笼罩了 梅菲因最后的生存时间? +book_lore.bf_bomb_5.page.3=不管我们的“奇迹”物质是 什么,它都不在乎。突然间, 一束炽热的闪光出现,闪光 过后,梅菲因就消失了。他蒸 发了?被烧化了?还是湮灭 了?见鬼去吧,我没法知道 了! +book_lore.bf_bomb_5.page.4=领头人让我感觉很恶心。 “我们本来能更小心”“本来 能一直监控着”,还有其他 管它是什么的提高士气的污 物从他嘴里呕出来。这家伙 永远都不会明白“玩火自焚”! +book_lore.bf_bomb_5.page.5=我不嫌辞职麻烦,就立马卷 了铺盖,向山里跑去。但后 果并没有那么严重;考虑到 那边缺少电话,而且看到从 我的 (前) 工作地点升起 的蘑菇云,他们应该不是被 炸飞了,就是上了最高等级 的军事法庭了。 +book_lore.bf_bomb_5.page.6=在“死体解剖”和“活体解剖” 之间,我们必须要做出选择; 有一个选项已经在他们身上 明明白白地失败了。他们 想解剖多少金属或者原子就 能解剖多少;但是批判现实、 解剖现实这件事,只能在更 多的梅菲因身上走向终结。 谁知道呢! +book_lore.bf_bomb_5.page.7=到最后,政府还是想把这堆 烂摊子拿来研发炸弹。或许, 我们还会看到更多的战争, 看到更多的人被迫接受比死 亡更惨的命运。 他们不可能永远都藏着掖着。 +book_lore.bf_bomb_5.page.8=我不在乎了。再也不在乎了。 老天爷啊,让我回到真正的 科学之中吧! $ $ 该死,Mae,找找你自己…… + book_lore.beacon.name=信号信标说明书 book_lore.beacon.author=Flim Flam工业 -book_lore.beacon.page.0=感谢您购买Mk.2照明信号信标(版本1.3)!这本小册子将简要介绍信标的操作及其内部工作原理。 -book_lore.beacon.page.1=第1章:建筑$每个单元由四个主要部分组成:控制电路、灯笼、雾灯和容纳其他部分的外壳。有关主电路的详细说明,请 -book_lore.beacon.page.2=灯笼由聚碳酸酯外壳组成,外壳内有一个标准200mm的双色250瓦卤素灯泡,因此灯泡可以从我们的商店订购。 -book_lore.beacon.page.3=不建议使用第三方灯泡,因为我们无法确保安全操作。外壳由专门的镀锌不锈钢制成,具有耐用性。 -book_lore.beacon.page.4=第2章:灯笼$灯笼的主要用途是在恶劣的天气条件下提供照明,便于维护,以及状态指示器。如果开机自检(POST)失败,指示灯将 -book_lore.beacon.page.5=亮起红色,否则就会亮起绿色。请注意,颜色可能因更换灯泡的不同而有所不同。 -book_lore.beacon.page.6=第3章:雾灯$雾灯是信标的主要通信设备。该信标被设计用于对等(P2P)通信以及消息广播。 -book_lore.beacon.page.7=第4章:对等$有关通信的详细信息,请参阅通信手册。建立P2P连接的简要介绍如下:首先,信标必须给出“START connection”信号, -book_lore.beacon.page.8=是单一的长音。所有可用的对等端也应使用一个长音进行响应(由接近度指定的顺序,以及手册“响应连接”一节中概述的通信指南) -book_lore.beacon.page.9=一旦所需对等端做出响应,则给出“ACCEPT CONNECTION”信号,即两个长音,然后对等端也将用两个长音调进行响应。之后的所有通信都必须使用预先协商的信号来进行, -book_lore.beacon.page.10=最常用的是FAR-5M标准。如果没有协商标准,沟通将立即结束,起到“ping”的作用。如果通信继续,可以使用另一个长单音“END connection”结束连接。 -book_lore.beacon.page.11=第5章:保修$[页面故意留空] +book_lore.beacon.page.0=感谢您购买Mk.2照明信号信标 (版本1.3)! 这本小册子将简要介绍信标 的操作及其内部工作原理。 +book_lore.beacon.page.1=第1章:构成 $ 每个单元由四个主要部分 组成:控制电路、灯笼、雾号 和容纳其他部分的外壳。 有关主电路的详细说明,请 参考外壳维护盖内部的 电路图。 +book_lore.beacon.page.2=灯笼由聚碳酸酯外壳组成, 外壳内有一个标准200mm 的双色250瓦卤素灯泡, 替换用灯泡可以从我们的 商店订购。 +book_lore.beacon.page.3=不建议使用第三方灯泡,因为 我们无法确保安全操作。外壳 由专门的镀锌不锈钢制成, 具有耐用性。 +book_lore.beacon.page.4=第2章:灯笼 $ 灯笼的主要用途是在恶劣的 天气条件下提供照明以便 维护,同时指示信标的状态。 如果开机自检 (POST) 失败,灯将 +book_lore.beacon.page.5=亮起红色,否则就会亮起 绿色。请注意,颜色可能因 替换用灯泡的不同而有所 不同。 +book_lore.beacon.page.6=第3章:雾号 $ 雾号是信标的主要通信设备。 该信标被设计用于点对点 (P2P) 通信以及 消息广播。 +book_lore.beacon.page.7=第4章:P2P通信 $ 有关通信的详细信息,请参阅 通信手册。建立P2P连接的 简要介绍如下:首先,信标 必须给出“开始连接”信号, +book_lore.beacon.page.8=该信号是单一的长音。所有 可用的对等端也应使用一个 长音进行响应 (由接近度指定的顺序,以及 手册“响应连接”一节中 概述的通信指南) +book_lore.beacon.page.9=一旦所需对等端做出响应, 则给出“接受连接”信号, 即两个长音,然后对等端也 将用两个长音调进行响应。 之后的所有通信都必须使用 预先协商的信号来进行, +book_lore.beacon.page.10=最常用的是FAR-5M标准。 如果没有协商标准,通信将 立即结束,起到“ping” 的作用。如果通信继续, 可以使用另一个长单音 “结束连接”来结束连接。 +book_lore.beacon.page.11=第5章:保修 $ [页面故意留空] + cannery.f1=[按F1键获取帮助] + cannery.centrifuge=气体离心机 cannery.centrifuge.0=气体离心机可以使用通用流体管道传输流体。 cannery.centrifuge.1=大多数配方需要多台离心机。中间产品不能通过管道运输。 @@ -429,6 +468,7 @@ cannery.centrifuge.2=该侧用作将中间产品输出到相邻离心机的连 cannery.centrifuge.3=六氟化铀只需两台离心机即可加工,但这将只产出铀燃料和铀-238。 cannery.centrifuge.4=将其完全加工成铀-235和铀-238总共需要四台离心机。 cannery.centrifuge.5=一些配方还需要离心机超频升级。 + cannery.crucible=坩埚 cannery.crucible.0=坩埚用于熔炼矿石、铸锭或其他金属物品以进行合金化,并将其铸造成不同形状。 cannery.crucible.1=它需要一个外部热源连接到底部,例如燃烧室。 @@ -442,22 +482,26 @@ cannery.crucible.8=这些材料将慢慢结合成输出材料,从红色出口 cannery.crucible.9=请注意,只有这个缓冲区处理配方。如果更换模板,副产品缓冲区中的材料不会结合,也不会转移到配方缓冲区。 cannery.crucible.10=如果目标有效,例如铸造通道或模具,出口将自动输出材料。 cannery.crucible.11=与所有铸造块一样,可以使用铲子从坩埚中移除所有材料。 + cannery.fensu=FEnSU cannery.fensu.0=FEnSU能够存储超过9EHE(即9后18个零)的荒谬能量。 cannery.fensu.1=只有在其底部有一个电线接口。 cannery.fensu.2=这也是FEnSU唯一可以接收红石信号的地方。 + cannery.firebox=燃烧室 cannery.firebox.0=燃烧室通过燃烧可燃物品产生热量。 cannery.firebox.1=它可以燃烧任何可燃物品,但更高质量的燃料如煤、焦炭和固体燃料燃烧时间更长,温度更高。 cannery.firebox.2=燃烧室顶部的铜触点可以传导热量。底部具有相同触点的机器可以通过放置在燃烧室顶部来接收热量。 cannery.firebox.3=如果热量没有用完,且热量缓冲器变满,燃烧室将暂停运行,以防止燃料浪费。 cannery.firebox.4=一种这样的机器是斯特林发电机,它将热量直接转化为能量。 + cannery.foundryChannel=铸造通道 cannery.foundryChannel.0=铸造通道用于将熔融材料从坩埚或储罐输送到模具中。 cannery.foundryChannel.1=通道可以通过从顶部(通过出口或直接连接坩埚)或从其他通道的侧面倾倒来接收材料。 cannery.foundryChannel.2=运输材料时,渠道将优先考虑出口和浅铸造池等方块。 cannery.foundryChannel.3=当无法供应出口或模具时,材料将流入相邻通道。 cannery.foundryChannel.4=剩余材料可以用铲子清除。 + cannery.silex=FEL & SILEX cannery.silex.0=自由电子激光器(FEL)利用能量和激光晶体产生强大的激光束。 cannery.silex.1=小心,因为激光会烧毁或熔化较脆弱的方块… @@ -468,22 +512,59 @@ cannery.silex.5=侧面的开口可以使流体管道连接至SILEX上。 cannery.silex.6=除了侧面的两个连接口之外,底部还有第三个隐藏连接口,可以从中抽取产品。 cannery.silex.7=每个配方都需要特定的激光类型。使用比所需类型更强的激光将更快地处理项目。 cannery.silex.8=一台FEL最多可以为5台SILEX供能。每个SILEX之间必须间隔一个方块。 + cannery.stirling=斯特林发电机 cannery.stirling.0=斯特林发电机使用来自外部的热能来产生能量。 cannery.stirling.1=它需要放置在发热机器的顶部,如燃烧室。 cannery.stirling.2=然而,它可以利用的热量有限,过旋转可能导致灾难性故障。 cannery.stirling.3=升级版可以在不损坏的情况下承受更多热量。 + cannery.willow=芥子柳 cannery.willow.0=芥子柳是一种可以富集镉金属的植物。 -cannery.willow.1=芥子柳可以种植在泥土、草地上,甚至是死亡草地或油泥上,但它们需要水才能生长。 +cannery.willow.1=芥子柳可以种植在泥土、草地上,甚至是泥渣或油泥上,但它们需要水才能生长。 cannery.willow.2=芥子柳可以用骨粉或工业肥料催熟。它们不需要光就可以生长。 cannery.willow.3=在第二阶段的生长之后,它们将需要在上方有至少一个方块的空间才能进一步生长。 -cannery.willow.4=在生长的第四阶段之后,它们需要下面有死亡草地的或油泥。 -cannery.willow.5=这可以通过在死亡草地或油泥上手动种植芥子柳来实现,也可以通过在附近设置一个不断污染地面的水力压裂塔来实现。 -cannery.willow.6=到达最后阶段后,芥子柳将清除地面上的污染物,使死亡草地或油泥恢复为正常的泥土。 +cannery.willow.4=在生长的第四阶段之后,它们需要下面有泥渣或油泥。 +cannery.willow.5=这可以通过在泥渣或油泥上手动种植芥子柳来实现,也可以通过在附近设置一个不断污染地面的水力压裂塔来实现。 +cannery.willow.6=到达最后阶段后,芥子柳将清除地面上的污染物,使泥渣或油泥恢复为正常的泥土。 cannery.willow.7=现在芥子柳的叶子可以收割了。打破顶部的块状物会掉落一株3-6片叶子的小芥子柳,并保持植物底部的完整。 -cannery.willow.8=很快,这种植物就会重新开始生长,如果泥土被油泥取代,就会长出更多的叶子。叶子可以用酸化骑加工成镉粉。 +cannery.willow.8=很快,这种植物就会重新开始生长,如果泥土被油泥取代,就会长出更多的叶子。叶子可以用酸化机加工成镉粉。 cannery.willow.9=使用自动锯可以自动收割柳叶,它只会打碎准备收割的植物。 + +cannery.hadron=粒子加速器 +cannery.hadron.0=粒子加速器包含3个主要部分: 核心,粒子分析室以及一系列的超导线圈。 +cannery.hadron.1=画面上的方块为粒子加速器核心组件,会以相对论的速度沿线圈向粒子分析室发射粒子。 +cannery.hadron.2=粒子会从此面发射; +cannery.hadron.3=在环形加速器中,会回到此面。 +cannery.hadron.4=每个线圈区段由8个致密线圈构成,中间留空(或放置粒子加速器核心)。 +cannery.hadron.5=线圈区段本身也必须被粒子加速器镀层包裹。 +cannery.hadron.6=加速器中还需要添加一个或多个粒子加速器接入终端,以与核心组件交互。 +cannery.hadron.7=核心组件也需要电力运行,因此需要在边缘添加电源接口。 +cannery.hadron.8=粒子加速器需要足够的电源接口来供给至少10kHE每单位线圈强度的能量。 +cannery.hadron.9=注意:环绕核心组件的线圈区段不参与线圈强度计算, +cannery.hadron.10=而且完全的直线粒子加速器不需要此区段。 +cannery.hadron.11=环形加速器中,需要如下的转角结构来改变粒子的方向: +cannery.hadron.12=外侧转角的线圈可以被完全去除。 +cannery.hadron.13=粒子加速器的最终部分是粒子分析室,这是一个由分析室方块包围的3x3x3空间。 +cannery.hadron.14=搭建完成的粒子加速器的外观应该类似下面这样: + +cannery.hadron.math.0=致密钕线圈强度:50 +cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE +cannery.hadron.math.2=致密星辉线圈强度:1,000 +cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE + +cannery.schottky=肖基特二极管 +cannery.schottky.0=画面上的方块为肖基特二极管。此方块可用于更复杂的粒子加速器设计,也可用于节省电能。 +cannery.schottky.1=默认状态下,二极管会阻挡所有粒子,需要使用螺丝刀进行配置。 +cannery.schottky.2=此面会接受进入的粒子, +cannery.schottky.3=而此面会将进入的粒子发射出去。 +cannery.schottky.4=现在图中的二极管含有两个出口,会表现出“量子”行为:在每个出口创造一个“虚拟粒子”。 +cannery.schottky.5=一旦所有的“虚拟粒子”都达到了分析室,粒子加速器就会选择动量需求最低的配方执行。 +cannery.schottky.6=被选中的粒子会经历“波函数坍缩”,变成真实的粒子,并且加速器只会消耗“坍缩”的虚拟粒子需求的能量。 +cannery.schottky.7=如果某一个虚拟粒子进入了结构不正确的区段,所有的虚拟粒子都会被销毁,而且坍缩的将是出错的粒子而非其他到达分析室的粒子。 +cannery.schottky.8=注意:同一个虚拟粒子只会经过同一个二极管的同一出口一次。虚拟粒子不会进入死循环,但仍然可以进入另一个二极管。 +cannery.schottky.9=肖基特二极管周围应具有合适的结构,使得粒子在每个交叉点处都有路可走。 + chem.ARSENIC=砷提取 chem.ASPHALT=沥青生产 chem.BAKELITE=电木生产 @@ -537,6 +618,7 @@ chem.GASOLINE_LEADED=含铅汽油混合 chem.HEAVY_ELECTROLYSIS=低温电解重水 chem.HELIUM3=使用月球草皮提取氦-3 chem.KEVLAR=凯夫拉生产 +chem.LAMINATE=强化夹层玻璃生产 chem.LPG=石油天然气液化 chem.LUBRICANT=润滑剂混合 chem.MEAT_PROCESSING=异虫肉矿物提取 @@ -545,12 +627,14 @@ chem.NITAN=NITAN牌超级燃料混合 chem.NITRIC_ACID=硝酸生产 chem.OIL_SAND=沥青砂提取 chem.OSMIRIDIUM_DEATH=锇酸溶液生产 +chem.PC=聚碳酸酯合成 chem.PC_ELECTROLYSIS=氯化钾电解 chem.PEROXIDE=过氧化氢生产 chem.PET=PET合成 chem.PETROIL_LEADED=含铅石油混合 chem.POLYMER=聚合物合成 chem.PUF6=六氟化钚生产 +chem.PVC=聚氯乙烯合成 chem.RUBBER=橡胶生产 chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 @@ -589,15 +673,17 @@ chem.VIT_LIQUID=液态核废料玻璃化 chem.XENON=林德循环制氙 chem.XENON_OXY=增强林德循环制氙 chem.YELLOWCAKE=黄饼生产 + commands.satellite.no_satellite=未找到使用此频率的卫星! commands.satellite.not_a_satellite=持有的物品不是卫星! commands.satellite.satellite_descended=卫星成功降落。 commands.satellite.satellite_orbited=卫星发射。 commands.satellite.should_be_run_as_player=此命令应该由玩家运行! + container.amsBase=AMS基座(装饰) container.amsEmitter=AMS发射极(装饰) container.amsLimiter=AMS稳能器(装饰) -container.anvil=砧 +container.anvil=%s级砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 container.ashpit=储灰槽 @@ -632,9 +718,9 @@ container.dfcStabilizer=DFC稳定器 container.diFurnace=高炉 container.diFurnaceRTG=核高炉 container.droneCrate=运输无人机坞 -container.droneDock=船坞 -container.droneProvider=提供 -container.droneRequester=请求 +container.droneDock=物流无人机坞 +container.droneProvider=供应箱 +container.droneRequester=请求箱 container.electricFurnace=电炉 container.epress=电动锻压机 container.exposureChamber=曝光室 @@ -644,6 +730,7 @@ container.fluidtank=储罐 container.fileCabinet=文件柜 container.forceField=力场发生器 container.frackingTower=水力压裂塔 +container.furnaceBrick=砖砌炉 container.furnaceCombination=复式炼焦炉 container.furnaceIron=铁炉 container.furnaceSteel=钢炉 @@ -661,9 +748,11 @@ container.hydrotreater=加氢装置 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -tile.launch_pad_large.name=发射台 +container.launchPadRusted=导弹发射台 container.launchTable=大型发射台 container.leadBox=安全盒 +container.machineArcWelder=电弧焊机 +container.machineArcFurnaceLarge=电弧炉 container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 @@ -674,14 +763,19 @@ container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 container.machineElectrolyser=电解机 container.machineFEL=FEL +container.machineFunnel=组合漏斗 +container.machineICF=ICF反应堆 +container.machineICFPress=ICF燃料靶丸制造器 container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 container.machineMixer=工业搅拌机 +container.machineOreSlopper=B.O.P. container.machineRefinery=炼油厂 container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 +container.machineSolderingStation=焊接台 container.machineSolidifier=固化机 container.machineStrandCaster=连续铸造机 container.machineTurbine=汽轮机 @@ -714,7 +808,6 @@ container.puf6_tank=六氟化钚储罐 container.pumpjack=石油钻机 container.radGen=辐射能量发电机 container.radar=雷达 -tile.machine_radar_large.name=大型雷达 container.radiobox=FM发射机 container.radiolysis=RTG辐射裂解室 container.radiorec=FM收音机 @@ -733,9 +826,10 @@ container.reactorResearch=研究型反应堆 container.reix=Rei-X主机 container.rtg=放射性同位素发电机 container.rtgFurnace=放射性同位素热力炉[RTG] -container.rttyCounter=红石无线项目计数器 -container.rttyReceiver=无线红石接收器 -container.rttySender=无线红石发射器 +container.rttyCounter=无线红石物品计数器 +container.rttyLogic=无线红石逻辑接收器 +container.rttyReceiver=无线红石信号接收器 +container.rttySender=无线红石信号发射器 container.safe=保险箱 container.satDock=卸货平台 container.satLinker=卫星ID管理 @@ -763,19 +857,25 @@ container.vacuumDistill=真空炼油厂 container.wasteDrum=乏燃料池 container.watzPowerplant=Watz发电厂 container.zirnox=锆诺克斯核反应堆 + crucible.aa=高级合金生产 +crucible.abronze=砷青铜生产 +crucible.bbronze=铋青铜生产 +crucible.bscco=BSCCO生产 crucible.cdalloy=镉钢生产 crucible.cmb=CMB钢生产 crucible.ferro=铀铁合金生产 crucible.hematite=赤铁矿炼铁 crucible.hss=高速钢生产 crucible.malachite=孔雀石炼铜 +crucible.magtung=磁化钨生产 crucible.redcopper=紫铜生产 crucible.steel=钢铁生产 crucible.steelMeteoric=陨铁炼钢 crucible.steelPig=生铁炼钢 crucible.steelWrought=锻铁炼钢 crucible.tcalloy=锝钢合金生产 + death.attack.acid=%1$s 掉进了酸里 death.attack.acidPlayer=%1$s 被 %2$s 溶解 death.attack.ams=%1$s 沐浴在尚未被人类科学命名的致命粒子中 @@ -783,6 +883,7 @@ death.attack.amsCore=%1$s 在奇点之火中蒸发 death.attack.asbestos=%1$s现在有权获得经济补偿 death.attack.bang=%1$s 被炸成小块碎片 death.attack.blackhole=%1$s 粉身碎骨 +death.attack.blacklung=%1$s 死于尘肺病 death.attack.blender=%1$s 被切成小块 death.attack.boat=%1$s 被船撞了 death.attack.boil=%1$s被%2$s活活煮沸 @@ -832,6 +933,7 @@ death.attack.taint=%1$s 死于恶性肿瘤 death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 death.attack.tauBlast=%1$s 对XVL1456充能时间过长,被炸成碎片 death.attack.teleporter=%1$s 被传送到虚空 + desc.gui.assembler.warning=§c错误:§r此机器需要装配机模板! desc.gui.chemplant.warning=§c错误:§r此机器需要化工厂模板! desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 @@ -841,8 +943,18 @@ desc.gui.nukeGadget.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * desc.gui.nukeMan.desc=§1需要:§r$ * 4个 初代$ 炸药透镜阵列$ * 钚核心$ * 点火器 desc.gui.nukeMike.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$ * 氘冷却装置$ * 铀涂层氘罐 * 氘罐 desc.gui.nukeTsar.desc=§1需要:§r$ * 4个 炸药透镜阵列$ * 钚核心$§9可选:§r$ * 沙皇炸弹核心 -desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,并且$配备了一个用于$裂解和灭菌的辐解室。 -desc.gui.rtgBFurnace.desc=处理$金-198需要至少15热量。此外,热量越多,运行速度越快$金-198可能会衰变为水银 +desc.gui.rttyLogic.cond0=信号§6小于§r常量 +desc.gui.rttyLogic.cond1=信号§6小于等于§r常量 +desc.gui.rttyLogic.cond2=信号§6大于等于§r常量 +desc.gui.rttyLogic.cond3=信号§6大于§r常量 +desc.gui.rttyLogic.cond4=信号§6等于§r常量 +desc.gui.rttyLogic.cond5=信号§6不等于§r常量 +desc.gui.rttyLogic.cond6=信号与字符串§6匹配§r +desc.gui.rttyLogic.cond7=信号与字符串§6不匹配§r +desc.gui.rttyLogic.cond8=信号§6包含§r字符串 +desc.gui.rttyLogic.cond9=信号§6不包含§r字符串 +desc.gui.radiolysis.desc=§9说明§r$该RTG比其他RTG更高效,$并且配备了一个用于$裂解和灭菌的辐解室。 +desc.gui.rtgBFurnace.desc=处理裂解配方至少需要15热量,$热量越高,运行速度越快$超过最高处理速度的热量不起作用$短寿命靶丸可能会衰变 desc.gui.rtg.heat=§e当前热等级:%s desc.gui.rtg.pellets=接受的靶丸: desc.gui.rtg.pelletHeat=%s (%s 热量) @@ -861,6 +973,7 @@ desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这 desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! desc.gui.zirnox.warning1=§c错误:§r反应堆正常运行需要水! desc.gui.zirnox.warning2=§c错误:§r二氧化碳是反应堆正常运行所必需的! + desc.item.ammo.con_accuracy2=- 精度大幅降低 desc.item.ammo.con_damage=- 伤害大幅降低 desc.item.ammo.con_heavy_wear=- 大幅增加磨损 @@ -994,10 +1107,12 @@ desc.misc.posSet=位置已设置! desc.item.wasteCooling=在乏燃料池中冷却 desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻 desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻 + digamma.playerDigamma=玩家F-迪伽马辐照水平: digamma.playerHealth=玩家所受F-迪伽马辐照影响: digamma.playerRes=玩家F-迪伽马防护水平: digamma.title=玩家F-迪伽马辐射自检器 + entity.entity_cyber_crab.name=赛博螃蟹 entity.entity_elder_one.name=上古鸭神 entity.entity_fucc_a_ducc.name=鸭子 @@ -1011,6 +1126,7 @@ entity.entity_glyphid_digger.name=掘地异虫 entity.entity_glyphid_nuclear.name=大个子强森 entity.entity_glyphid_scout.name=侦察异虫 entity.entity_ntm_fbi.name=FBI探员 +entity.entity_ntm_fbi_drone.name=FBI无人机 entity.entity_ntm_radiation_blaze.name=核融元素 entity.hbm.entity_ntm_ufo.name=火星入侵者飞船 entity.entity_mob_hunter_chopper.name=猎人直升机 @@ -1030,29 +1146,36 @@ entity.hbm.entity_balls_o_tron_seg.name=机械蠕虫 entity.hbm.entity_bullet.name=子弹 entity.hbm.entity_rocket.name=火箭弹 entity.hbm.entity_schrabnel.name=Schrabnel + excavator.crusher=粉碎开关 excavator.drill=挖掘开关 excavator.silktouch=精准采集开关 excavator.veinminer=连锁挖矿开关 excavator.walling=填充开关 + flare.ignition=点火装置 flare.valve=流量阀 + fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 fluid.mud_fluid=毒泥 +fluid.rad_lava_fluid=放射性火山熔岩 fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 fluid.volcanic_lava_fluid=火山熔岩 + foundry.filter=筛选器:%s foundry.inverted=红石信号反转 foundry.invertFilter=过滤器反转 foundry.noCast=未安装模具! + geiger.chunkRad=当前区块辐射: geiger.envRad=环境总辐射量: geiger.playerRad=玩家辐射: geiger.playerRes=辐射抗性: geiger.title=盖革计数器 geiger.title.dosimeter=剂量计 + gun.make.ARMALITE=阿玛莱特公司 gun.make.AUTO_ORDINANCE=美国自动武器公司 gun.make.BAE=英国宇航系统公司 @@ -1098,6 +1221,7 @@ gun.make.WESTTEK=WestTek研究设施 gun.make.WGW=威廉·古斯特洛夫·维尔克 gun.make.WINCHESTER=温彻斯特速射武器公司 gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT + gun.name.ar15_50=AR-15 .50BMG型 gun.name.baeAR=英国制式突击步枪 gun.name.bel=野火蛋发射器 @@ -1179,6 +1303,7 @@ gun.name.win20Inox=温彻斯特20型Inox gun.name.win20Poly=温彻斯特20型聚合物 gun.name.win20Satur=温彻斯特20型 D-25A gun.name.zomg=EMC101棱镜负能量炮 + hadron.analysis=正在分析... hadron.buttonOn=分析室启动(如果存在) hadron.buttonOff=分析室关闭 @@ -1192,20 +1317,22 @@ hadron.error_analysis_too_long=错误 0x06 [分析室过长] hadron.error_analysis_too_short=错误 0x06 [分析室过长] hadron.error_diode_collision=错误 0x08 [二极管方向错误] hadron.error_branching_turn=错误 0x09 [多处分支] -hadron.hopper0=§e正常模式:$将使用所有项目 -hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 +hadron.hopper0=§e正常模式:$将使用所有物品 +hadron.hopper1=§e料斗模式:$将始终保留一个物品 +hadron.hopper2=§e单物品模式:$每个槽位只接受一个物品 hadron.idle=空闲 hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 hadron.noresult=无结果 -hadron.noresult_too_slow=推进力不足! +hadron.noresult_too_slow=动量不足! hadron.noresult_wrong_ingredient=无效配方! hadron.noresult_wrong_mode=错误模式! hadron.progress=正在进行中... hadron.stats=上一次结果: hadron.stats_coord=错误位置:%s/%s/%s -hadron.stats_momentum=推力: %s +hadron.stats_momentum=动量: %s hadron.success=已完成! + hazard.prot=防止危险: hazard.noprot=不能防止: hazard.bacteria=细菌/气溶胶 @@ -1215,10 +1342,11 @@ hazard.gasInert=惰性气体/沥青 hazard.gasMonoxide=一氧化碳 hazard.light=亮光 hazard.nerveAgent=神经毒剂 -hazard.neverProtects=它永远不能防止: +hazard.neverProtects=无法防护: hazard.particleCoarse=空气微粒 hazard.particleFine=微粒 hazard.sand=眼睛刺激物 + hbm.key=HBM的核科技mod 热键 hbm.key.calculator=计算器 hbm.key.craneLoad=装卸起重机 @@ -1230,6 +1358,7 @@ hbm.key.dash=冲刺 (在config中解绑) hbm.key.toggleBack=开关 喷气背包 hbm.key.toggleHUD=开关 HUD hbm.key.reload=装弹 + hbmfluid.amat=反物质 hbmfluid.aromatics=芳香烃 hbmfluid.aschrab=反Sa326 @@ -1340,6 +1469,7 @@ hbmfluid.salient=绿色液体 hbmfluid.sas3=三硫化Sa hbmfluid.schrabidic=Sa酸 hbmfluid.seedslurry=播种浆料 +hbmfluid.slop=洗矿废水 hbmfluid.smear=工业油 hbmfluid.smoke=烟雾 hbmfluid.smoke_leaded=含铅烟雾 @@ -1350,6 +1480,7 @@ hbmfluid.solvent=有机溶剂 hbmfluid.sourgas=高硫天然气 hbmfluid.spentsteam=低压蒸汽 hbmfluid.steam=蒸汽 +hbmfluid.stellar_flux=星流浆 hbmfluid.sulfuric_acid=硫酸 hbmfluid.sunfloweroil=葵花籽油 hbmfluid.superhotsteam=超热蒸汽 @@ -1361,6 +1492,7 @@ hbmfluid.tritium=氚 hbmfluid.uf6=六氟化铀 hbmfluid.ultrahotsteam=超浓密蒸汽 hbmfluid.unsaturateds=不饱和烃 +hbmfluid.vitriol=硫酸盐 hbmfluid.wastefluid=液态核废料 hbmfluid.wastegas=气态核废料 hbmfluid.water=水 @@ -1369,6 +1501,7 @@ hbmfluid.woodoil=木油 hbmfluid.xenon=氙气 hbmfluid.xpjuice=经验汁 hbmfluid.xylene=轻质芳烃(BTX) + hbmpseudofluid.none=空 hbmpseudofluid.heuf6=高浓缩六氟化铀 hbmpseudofluid.meuf6=中浓缩六氟化铀 @@ -1377,6 +1510,7 @@ hbmpseudofluid.nuf6=天然浓度六氟化铀 hbmpseudofluid.pf6=六氟化钚 hbmpseudofluid.mud_heavy=毒泥浆重馏分 hbmpseudofluid.mud=毒泥浆气态物 + hbmmat.actinium227=锕-227 hbmmat.advancedalloy=高级合金 hbmmat.aluminum=铝 @@ -1384,15 +1518,20 @@ hbmmat.americiumrg=反应堆级镅 hbmmat.americium241=镅-241 hbmmat.americium242=镅-242 hbmmat.arsenic=砷 +hbmmat.arsenicbronze=砷青铜 hbmmat.asbestos=石棉 hbmmat.bakelite=电木 hbmmat.beryllium=铍 hbmmat.bismuth=铋 +hbmmat.bismuthbronze=铋青铜 hbmmat.borax=硼砂 hbmmat.boron=硼 +hbmmat.bscco=BSCCO hbmmat.cadmium=镉 +hbmmat.calcium=钙 hbmmat.carbon=碳 hbmmat.cdalloy=镉钢 +hbmmat.chlorocalcite=氯方解石 hbmmat.cinnabar=朱砂 hbmmat.cmbsteel=CMB钢 hbmmat.coal=煤 @@ -1402,8 +1541,10 @@ hbmmat.cobalt60=钴-60 hbmmat.coltan=钶钽铁矿 hbmmat.copper=铜 hbmmat.desh=Desh +hbmmat.diamond=钻石 hbmmat.dineutronium=双聚中子态素 hbmmat.durasteel=高速钢 +hbmmat.emerald=绿宝石 hbmmat.euphemium=Ep hbmmat.ferrouranium=铀铁合金 hbmmat.fiberglass=玻璃纤维 @@ -1416,6 +1557,7 @@ hbmmat.graphene=石墨烯 hbmmat.graphite=石墨 hbmmat.hematite=赤铁矿 hbmmat.iron=铁 +hbmmat.lanthanum=镧 hbmmat.lapis=青金石 hbmmat.lead=铅 hbmmat.lead209=铅-209 @@ -1426,9 +1568,11 @@ hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 hbmmat.mingrade=紫铜 +hbmmat.molysite=氯化铁 +hbmmat.neodymium=钕 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 -hbmmat.obsidian=黑曜岩 +hbmmat.obsidian=黑曜石 hbmmat.osmiridium=铱锇合金 hbmmat.petcoke=石油焦炭 hbmmat.pigiron=生铁 @@ -1441,19 +1585,24 @@ hbmmat.plutoniumrg=反应堆级钚 hbmmat.polonium210=钋-210 hbmmat.polymer=聚合物 hbmmat.radium226=镭-226 +hbmmat.rareearth=稀土 hbmmat.redphosphorus=红磷 hbmmat.redstone=红石 hbmmat.rubber=橡胶 hbmmat.saltpeter=硝石 -hbmmat.saturnite=土星锭 +hbmmat.saturnite=土星 hbmmat.schrabidate=Sa酸铁 -hbmmat.schrabidium=低丰度Sa326 -hbmmat.schraranium=Sa326 +hbmmat.schrabidium=Sa326 +hbmmat.schraranium=低丰度Sa326 +hbmmat.silicon=硅 hbmmat.slag=炉渣 +hbmmat.sodalite=方钠石 +hbmmat.sodium=钠 hbmmat.solinium=Sa327 hbmmat.starmetal=星辉 hbmmat.steel=钢 hbmmat.stone=石头 +hbmmat.strontium=锶 hbmmat.sulfur=硫 hbmmat.tantalum=钽 hbmmat.tcalloy=锝钢 @@ -1470,6 +1619,7 @@ hbmmat.whitephosphorus=白磷 hbmmat.workersalloy=Desh hbmmat.wroughtiron=锻铁 hbmmat.zirconium=锆 + matshape.block=%s 块 matshape.blocks=%s 块 matshape.ingot=%s 锭 @@ -1478,16 +1628,32 @@ matshape.nugget=%s 粒 matshape.nuggets=%s 粒 matshape.quantum=%s 量子 matshape.quanta=%s 量子 + +icffuel.beryllium=铍 +icffuel.boron=硼 +icffuel.carbon=碳 +icffuel.calcium=钙 +icffuel.chlorine=氯 +icffuel.deuterium=氘 +icffuel.helium3=氦-3 +icffuel.helium4=氦-4 +icffuel.hydrogen=氢 +icffuel.lithium=锂 +icffuel.oxygen=氧 +icffuel.sodium=钠 +icffuel.tritium=氚 + info.asbestos=我感觉我的肺在燃烧。 info.coaldust=在这里很难呼吸。 info.coil=线圈强度 -info.templatefolder=需要使用机器模板文件夹创建 +info.templatefolder=需要使用%s创建 info.template_in=输入: info.template_in_p=输入: info.template_out=输出: info.template_out_p=输出: info.template_seconds=秒 info.template_time=生产耗时: + item.acetylene_torch.name=乙炔焊罐 item.ajr_boots.name=AJR 动力装甲靴子 item.ajr_helmet.name=AJR 动力装甲头盔 @@ -1628,7 +1794,7 @@ item.ammo_dart_nuclear.name=塑料镖[定时炸药] item.ammo_dgk.name=双联守门员近防系统200发弹药 item.ammo_fireext.name=灭火器 水罐 item.ammo_fireext_foam.name=灭火器 泡沫罐 -item.ammo_fireext_sand.name=灭火器 硼砂罐 +item.ammo_fireext_sand.name=灭火器 硼沙罐 item.ammo_folly.name=银弹 item.ammo_folly_du.name=银弹[贫铀, 不爆炸] item.ammo_folly_nuclear.name=银弹[核子] @@ -1716,7 +1882,7 @@ item.ams_core_sing.name=活跃奇点[AMS/DFC核心] item.ams_core_thingy.name=Thingy[AMS/DFC核心] item.ams_core_wormhole.name=微型虫洞[AMS/DFC核心] item.ams_focus_blank.name=空白稳定器焦点 -item.ams_focus_booster.name=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 +item.ams_focus_booster.name=增压型稳定器焦点 item.ams_focus_booster.desc=较弱的约束场和核心能量注入:$更多的热量产生,更多的能量。 item.ams_focus_limiter.name=限制稳定器焦点 item.ams_focus_limiter.desc=限制领域的最高性能:$标准冷却,无能源加成。 @@ -1731,7 +1897,15 @@ item.apple_euphemium.name=Ep苹果 item.apple_lead.name=铅苹果 item.apple_schrabidium.name=Sa326苹果 item.arc_electrode.name=石墨电极 +item.arc_electrode.desh.name=Desh电极 +item.arc_electrode.graphite.name=石墨电极 +item.arc_electrode.lanthanium.name=镧电极 +item.arc_electrode.saturnite.name=土星电极 item.arc_electrode_burnt.name=熔化电极 +item.arc_electrode_burnt.desh.name=熔化Desh电极 +item.arc_electrode_burnt.graphite.name=熔化石墨电极 +item.arc_electrode_burnt.lanthanium.name=熔化镧电极 +item.arc_electrode_burnt.saturnite.name=熔化土星电极 item.arc_electrode_desh.name=Desh电极 item.armor_polish.name=亮甲牌装甲抛光剂 item.asbestos_boots.name=防火靴 @@ -1819,7 +1993,48 @@ item.battery_su.name=SU-电池 item.battery_su_l.name=大型SU-电池 item.battery_trixite.name=杂牌Spark电池 item.bdcl.name=BDCL -item.beta.name=Bata测试版功能 +item.bedrock_ore.grade.base.name=%s基岩矿石 +item.bedrock_ore.grade.base_roasted.name=焙烧%s基岩矿石 +item.bedrock_ore.grade.base_washed.name=洗净%s基岩矿石 +item.bedrock_ore.grade.primary.name=%s基岩矿石主产物 +item.bedrock_ore.grade.primary_roasted.name=焙烧%s基岩矿石主产物 +item.bedrock_ore.grade.primary_sulfuric.name=酸浸%s基岩矿石主产物 +item.bedrock_ore.grade.primary_nosulfuric.name=离心酸浸%s基岩矿石主产物 +item.bedrock_ore.grade.primary_solvent.name=溶解%s基岩矿石主产物 +item.bedrock_ore.grade.primary_nosolvent.name=离心溶解%s基岩矿石主产物 +item.bedrock_ore.grade.primary_rad.name=清洁%s基岩矿石主产物 +item.bedrock_ore.grade.primary_norad.name=离心清洁%s基岩矿石主产物 +item.bedrock_ore.grade.primary_first.name=高重量%s基岩矿石主产物 +item.bedrock_ore.grade.primary_second.name=低重量%s基岩矿石主产物 +item.bedrock_ore.grade.crumbs.name=%s基岩矿石矿渣 +item.bedrock_ore.grade.sulfuric_byproduct.name=酸浸%s基岩矿石副产物 +item.bedrock_ore.grade.sulfuric_roasted.name=焙烧酸浸%s基岩矿石副产物 +item.bedrock_ore.grade.sulfuric_arc.name=灼热酸浸%s基岩矿石副产物 +item.bedrock_ore.grade.sulfuric_washed.name=洗净酸浸%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_byproduct.name=溶解%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_roasted.name=焙烧溶解%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_arc.name=灼热溶解%s基岩矿石副产物 +item.bedrock_ore.grade.solvent_washed.name=洗净溶解%s基岩矿石副产物 +item.bedrock_ore.grade.rad_byproduct.name=清洁%s基岩矿石副产物 +item.bedrock_ore.grade.rad_roasted.name=焙烧清洁%s基岩矿石副产物 +item.bedrock_ore.grade.rad_arc.name=灼热清洁%s基岩矿石副产物 +item.bedrock_ore.grade.rad_washed.name=洗净清洁%s基岩矿石副产物 +item.bedrock_ore.trait.arc=§6电弧炉煅烧 +item.bedrock_ore.trait.centrifuged=§9离心处理 +item.bedrock_ore.trait.rad=§a高性能溶剂处理 +item.bedrock_ore.trait.roasted=§e复式炼焦炉焙烧 +item.bedrock_ore.trait.solvent=§f有机溶剂处理 +item.bedrock_ore.trait.sulfuric=§6硫酸处理 +item.bedrock_ore.trait.washed=§b水洗 +item.bedrock_ore.type.actinide.name=锕系元素 +item.bedrock_ore.type.crystal.name=晶体 +item.bedrock_ore.type.heavy.name=重金属 +item.bedrock_ore.type.light.name=轻金属 +item.bedrock_ore.type.nonmetal.name=非金属 +item.bedrock_ore.type.rare.name=稀土 +item.bedrock_ore_base.name=基岩矿石原矿 +item.bedrock_ore_fragment.name=%s基岩矿石碎片 +item.beta.name=Beta测试版功能 item.big_sword.name=大剑 item.billet_actinium.name=锕-227坯料 item.billet_am_mix.name=反应堆级镅坯料 @@ -1861,6 +2076,7 @@ item.billet_ra226.name=镭-226坯料 item.billet_ra226be.name=镭226-铍坯料 item.billet_schrabidium.name=Sa326坯料 item.billet_schrabidium_fuel.name= Sa326燃料坯料 +item.billet_silicon.name=硅晶圆 item.billet_solinium.name=Sa327坯料 item.billet_sr90.name=锶-90坯料 item.billet_technetium.name=锝-99坯料 @@ -1872,7 +2088,7 @@ item.billet_u238.name=铀-238坯料 item.billet_uranium.name=铀坯料 item.billet_uranium_fuel.name=铀燃料坯料 item.billet_yharonite.name=犽戎龙素坯料 -item.billet_zfb_am_mix.name=反应器级镅 ZFB坯料 +item.billet_zfb_am_mix.name=反应堆级镅 ZFB坯料 item.billet_zfb_bismuth.name=铋 ZFB坯料 item.billet_zfb_pu241.name=钚-241 ZFB坯料 item.billet_zirconium.name=锆坯料 @@ -1882,6 +2098,7 @@ item.biomass_compressed.name=压缩生物质 item.bismuth_boots.name=铋凉鞋 item.bismuth_helmet.name=铋头饰 item.bismuth_legs.name=铋护膝 +item.bismuth_axe.name=铋斧 item.bismuth_pickaxe.name=铋镐 item.bismuth_plate.name=铋质护肩、项链和腰带 item.bismuth_tool.name=磁力提取器 @@ -1918,6 +2135,7 @@ item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 item.book_guide.name=HBM指导书 item.book_of_.name=车厢书 +item.book_lemegeton.name=所罗门之钥 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 item.bottle2_fritz.name=弗里茨可乐 @@ -1933,6 +2151,7 @@ item.bottle_opener.name=Hbm自制开瓶器 item.bottle_quantum.name=量子核子可乐 item.bottle_rad.name=辐射S~核子可乐 item.bottle_sparkle.name=S~核子可乐 +item.bottled_cloud.name=瓶中云 item.boy_bullet.name=铀-235弹头 item.boy_igniter.name=点火器 item.boy_kit.name=小男孩 套件 @@ -2025,7 +2244,7 @@ item.canned_pizza.desc=反人类罪 item.canned_recursion.name=循环罐头 item.canned_recursion.desc=封闭递归 item.canned_spam.name=SPAM斯帕姆午餐肉 -item.canned_spam.desc=这段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景。一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。女服务员也对这个要求很反感。本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。服务员拒绝了,因为烤豆子已经吃完了;当本先生要求替换午餐肉时,女服务员再次表示厌恶。有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。这时一名匈牙利游客来到柜台,试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。紧接着这名匈牙利游客就被一名警察迅速护送离开。然后这段幽默剧突然切换镜头,一位历史学家在电视演播室谈论维京人在咖啡馆的起源。他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。然后背景被抬高,露出背后的餐厅场景。那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 +item.canned_spam.desc=这段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景。$一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,$女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。$本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。$女服务员也对这个要求很反感。本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。$服务员拒绝了,因为烤豆子已经吃完了;当本先生要求替换午餐肉时,女服务员再次表示厌恶。$有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。$那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。$这时一名匈牙利游客来到柜台,试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。$紧接着这名匈牙利游客就被一名警察迅速护送离开。$然后这段幽默剧突然切换镜头,一位历史学家在电视演播室谈论维京人在咖啡馆的起源。$他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。$然后背景被抬高,露出背后的餐厅场景。$那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。$在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。 item.canned_stew.name=蘑菇煲罐头 item.canned_stew.desc=... item.canned_tomato.name=番茄汤罐头 @@ -2107,6 +2326,7 @@ item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) item.chemistry_template.name=化工厂模板: item.chernobylsign.name=辐射警告标志战斧 item.chlorine_pinwheel.name=氯气转轮 +item.chlorophyte_axe.name=叶绿斧 item.chlorophyte_pickaxe.name=叶绿镐 item.chocolate.name=“我是-镭牌”巧克力 item.chocolate.desc=镭巧克力?我很确定这是冰毒。 @@ -2118,8 +2338,28 @@ item.chopper_head.name=猎人直升机驾驶舱 item.chopper_tail.name=猎人直升机尾部 item.chopper_torso.name=猎人直升机主体 item.chopper_wing.name=猎人直升机翼片 +item.chunk_ore.rare.name=稀土矿石块 item.cigarette.name=FFI牌香烟 item.cinnebar.name=朱砂 +item.circuit.advanced.name=军用级电路板 +item.circuit.analog.name=模拟电路板 +item.circuit.atomic_clock.name=原子钟 +item.circuit.basic.name=集成电路板 +item.circuit.bismoid.name=多功能电路板 +item.circuit.capacitor.name=电容器 +item.circuit.capacitor_board.name=电容板 +item.circuit.capacitor_tantalium.name=钽电容器 +item.circuit.chip.name=微芯片 +item.circuit.chip_bismoid.name=多功能集成电路 +item.circuit.chip_quantum.name=固态量子处理器 +item.circuit.controller.name=控制单元 +item.circuit.controller_advanced.name=高级控制单元 +item.circuit.controller_chassis.name=控制单元外壳 +item.circuit.controller_quantum.name=量子计算机 +item.circuit.pcb.name=印刷电路板 +item.circuit.quantum.name=量子处理单元 +item.circuit.silicon.name=压印硅晶圆 +item.circuit.vacuum_tube.name=真空管 item.circuit_aluminium.name=基础电路 item.circuit_arsenic.name=自适应电路 item.circuit_arsenic_raw.name=自适应电路组件 @@ -2131,11 +2371,13 @@ item.circuit_raw.name=基本电路组件 item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 item.circuit_star.name=星控制 电路板 -item.circuit_star.desc=目前无效,因为它缺少操作系统。 +item.circuit_star.desc=目前未使用,因为它缺少操作系统。 +item.circuit_star_component.card.name=星控制 扩展卡 item.circuit_star_component.chipset.name=星控制 芯片组 item.circuit_star_component.cpu.name=星控制 CPU item.circuit_star_component.ram.name=星控制 RAM item.circuit_star_piece.board_blank.name=SC-印刷电路板 +item.circuit_star_piece.board_converter.name=SC-电压转换器 item.circuit_star_piece.board_transistor.name=SC-晶体管 item.circuit_star_piece.bridge_bios.name=SC-BIOS芯片 item.circuit_star_piece.bridge_bus.name=SC-总线 @@ -2144,6 +2386,8 @@ item.circuit_star_piece.bridge_cmos.name=SC-CMOS存储器 item.circuit_star_piece.bridge_io.name=SC-IO芯片 item.circuit_star_piece.bridge_north.name=SC-北桥 item.circuit_star_piece.bridge_south.name=SC-南桥 +item.circuit_star_piece.card_board.name=SC-扩展卡底板 +item.circuit_star_piece.card_processor.name=SC-扩展卡处理器 item.circuit_star_piece.cpu_cache.name=SC-CPU缓存 item.circuit_star_piece.cpu_clock.name=SC-CPU时钟 item.circuit_star_piece.cpu_ext.name=SC-砷半导体外延片 @@ -2383,16 +2627,22 @@ item.drillbit_tcalloy.name=锝钢钻头 item.drillbit_tcalloy_diamond.name=锝钢钻头(镶钻) item.drill_titanium.name=钛钻头 item.drone.patrol.name=运输无人机 +item.drone.patrol.desc=跟随航路点运动$到达运输无人机坞时会尝试装货/卸货$右键单击运输无人机坞顶面放置 item.drone.patrol_chunkloading.name=区块加载无人机 -item.drone.patrol_express.name=快递无人机 -item.drone.patrol_express_chunkloading.name=区块加载快递无人机 +item.drone.patrol_chunkloading.desc=跟随航路点运动$到达运输无人机坞时会尝试装货/卸货$右键单击运输无人机坞顶面放置$加载区块 +item.drone.patrol_express.name=快速无人机 +item.drone.patrol_express.desc=跟随航路点运动$到达运输无人机坞时会尝试装货/卸货$右键单击运输无人机坞顶面放置 +item.drone.patrol_express_chunkloading.name=区块加载快速无人机 +item.drone.patrol_express_chunkloading.desc=跟随航路点运动$到达运输无人机坞时会尝试装货/卸货$右键单击运输无人机坞顶面放置$加载区块 item.drone.request.name=物流无人机 +item.drone.request.desc=用于使物流无人机坞生成物流无人机$生成的物流无人机会跟随物流无人机航路点$完成一次物流任务后会回到无人机坞 item.drone_linker.name=运输无人机链接器 item.ducttape.name=胶带 item.dust.name=灰尘 item.dust.desc=我讨厌灰尘! item.dust.desc.P11=又一小撮灰尘! item.dust_tiny.name=一小撮灰尘 +item.dwarven_pickaxe.name=矮人镐 item.dynosphere_base.name=空白动力球 item.dynosphere_desh.name=Desh动力球 item.dynosphere_desh_charged.name=Desh动力球[带电] @@ -2416,10 +2666,10 @@ item.elec_sword.name=电棍 item.energy_core.name=临时能源核心 item.entanglement_kit.name=纠缠部件 item.entanglement_kit.desc=传送机制作零件$通过$铍增强型资源扫描仪实现尺寸转换。 -item.envsuit_boots.name=M1TTY环保套装靴子 -item.envsuit_helmet.name=M1TTY环保套装头盔 -item.envsuit_legs.name=M1TTY环保套装护腿 -item.envsuit_plate.name=M1TTY环保套装胸甲 +item.envsuit_boots.name=M1TTY环境套装靴子 +item.envsuit_helmet.name=M1TTY环境套装头盔 +item.envsuit_legs.name=M1TTY环境套装护腿 +item.envsuit_plate.name=M1TTY环境套装胸甲 item.euphemium_boots.name=Ep靴子 item.euphemium_capacitor.name=Ep电容 item.euphemium_capacitor.desc=允许被动分散累积的正能量。 @@ -2493,6 +2743,8 @@ item.fragment_lanthanium.name=镧碎片 item.fragment_meteorite.name=陨石碎片 item.fragment_neodymium.name=钕碎片 item.fragment_niobium.name=铌碎片 +item.fuel_additive.antiknock.name=四乙基铅抗爆剂 +item.fuel_additive.deicer.name=除冰剂 item.fuel_tank_large.name=大型燃料罐 item.fuel_tank_medium.name=中型燃料罐 item.fuel_tank_small.name=小型燃料罐 @@ -2575,7 +2827,7 @@ item.grenade_mirv.name=MIRV型破片手榴弹 item.grenade_mk2.name=Mk2手榴弹“菠萝大使” item.grenade_nuclear.name=核子手榴弹 item.grenade_nuke.name=MkVI钻地手榴弹 -item.grenade_pink_cloud.name=一罐粉色的云 +item.grenade_pink_cloud.name=一罐粉雾 item.grenade_plasma.name=等离子手榴弹 item.grenade_poison.name=剧毒手榴弹 item.grenade_pulse.name=脉冲手榴弹 @@ -2754,6 +3006,9 @@ item.hull_big_titanium.name=大型钛壳 item.hull_small_aluminium.name=小型铝壳 item.hull_small_aluminium.desc=可插入钻孔石墨中 item.hull_small_steel.name=小型钢壳 +item.icf_pellet.name=ICF燃料靶丸 +item.icf_pellet_depleted.name=枯竭ICF燃料靶丸 +item.icf_pellet_empty.name=空ICF燃料靶丸 item.igniter.name=点火器 item.igniter.desc=(鼠标右键点击原型)$这是一个绿色金属手柄,带有$亮红色按钮和一个小盖子$在底部,缩写N.E.刻着美元。不管N.E.是谁,他对绿色的色调很有品味。 item.industrial_magnet.name=工业磁铁 @@ -2774,6 +3029,7 @@ item.ingot_am241.name=镅-241锭 item.ingot_am242.name=镅-242锭 item.ingot_americium_fuel.name=镅燃料锭 item.ingot_arsenic.name=砷锭 +item.ingot_arsenic_bronze.name=砷青铜锭 item.ingot_asbestos.name=石棉板 item.ingot_asbestos.desc=§o\“充满了生命、自我怀疑和石棉。这是空气带来的。\”§r item.ingot_au198.name=金-198锭 @@ -2782,11 +3038,14 @@ item.ingot_bakelite.name=电木锭 item.ingot_beryllium.name=铍锭 item.ingot_biorubber.name=乳胶锭 item.ingot_bismuth.name=铋锭 +item.ingot_bismuth_bronze.name=铋青铜锭 item.ingot_boron.name=硼锭 +item.ingot_bscco.name=BSCCO锭 item.ingot_c4.name=一块C-4 item.ingot_cadmium.name=镉锭 item.ingot_calcium.name=钙锭 item.ingot_cdalloy.name=镉钢锭 +item.ingot_cft.name=晶化富勒烯 item.ingot_chainsteel.name=重链钢 item.ingot_co60.name=钴-60锭 item.ingot_cobalt.name=钴锭 @@ -2849,6 +3108,7 @@ item.ingot_schrabidium_fuel.name=Sa326燃料锭 item.ingot_schraranium.name=低丰度Sa326锭 item.ingot_schraranium.desc=在Sa326嬗变器中由铀制成 item.ingot_semtex.name=塞姆汀塑胶炸药块 +item.ingot_silicon.name=硅晶 item.ingot_smore.name=S'more 锭 item.ingot_solinium.name=Sa327锭 item.ingot_sr90.name=锶-90锭 @@ -2888,6 +3148,8 @@ item.insert_polonium.name=钋插板 item.insert_steel.name=重型钢插板 item.insert_xsapi.name=XSAPI插板 item.insert_yharonite.name=犽戎龙素插板 +item.item_secret.canister.name=SB-26成分 +item.item_secret.controller.name=专用控制单元 item.iv_blood.name=血袋 item.iv_empty.name=静脉输液袋 item.iv_xp.name=经验包 @@ -2909,7 +3171,8 @@ item.key_red.name=红色钥匙 item.key_red.desc=探索另一边。 item.key_red.desc.P11=§4e§r item.key_red_cracked.name=破碎的钥匙 -item.key_red_cracked.desc=??? +item.key_red_cracked.desc=??? +item.key_red.key_red_cracked.P11=§4???§r item.kit_toolbox.name=工具箱 item.kit_toolbox_empty.name=空工具箱 item.laser_crystal_bismuth.desc=铋-钐-铀-钍晶体基质 @@ -2921,6 +3184,9 @@ item.laser_crystal_co2.name=CO2-Desh激光晶体 item.laser_crystal_digamma.name=Digamma迪伽马激光晶体 item.laser_crystal_dnt.desc=双聚态中子-Spark费米子超晶体 item.laser_crystal_dnt.name=Spark激光晶体 +item.launch_code.name=发射井发射代码 +item.launch_code_piece.name=发射井发射代码碎片 +item.launch_key.name=发射井发射钥匙 item.lead_gavel.name=铅槌 item.lemon.name="柠檬" item.letter.name=快捷邮件 @@ -2969,6 +3235,7 @@ item.meltdown_tool.name=达洛夫快速熔毁装置 item.memespoon.name=§ee花园园丁 item.memory.name=item.null.name item.mese_gavel.name=Mese槌 +item.mese_axe.name=Mese斧 item.mese_pickaxe.name=Mese镐 item.meteor_charm.name=陨石项链 item.meteor_remote.name=陨石召唤器 @@ -3003,6 +3270,7 @@ item.missile_cluster_strong.name=强化型集束导弹 item.missile_custom.name=定制导弹 item.missile_decoy.name=诱饵弹 item.missile_doomsday.name=末日导弹 +item.missile_doomsday_rusted.name=损坏的末日导弹 item.missile_drill.name=掩体裂解者 item.missile_emp.name=EMP导弹 item.missile_emp_strong.name=强化型EMP导弹 @@ -3157,7 +3425,7 @@ item.mp_thruster_20_solid.name=20号固体燃料推进器 item.mp_thruster_20_solid_multi.name=20号三十喷管固体燃料推进器 item.mp_thruster_20_solid_multier.name=20号四十七喷管固体燃料推进器 item.mp_warhead_10_buster.name=10号掩体破坏弹头 -item.mp_warhead_10_cloud.name=10号粉色云弹头 +item.mp_warhead_10_cloud.name=10号粉雾弹头 item.mp_warhead_10_he.name=10号HE弹头 item.mp_warhead_10_incendiary.name=10号燃烧弹头 item.mp_warhead_10_nuclear.name=10号微型核弹头 @@ -3186,12 +3454,14 @@ item.multitool_silk.name=动力拳套[精准采集] item.multitool_sky.name=动力拳套[划破天际] item.mysteryshovel.name=易碎锹 item.n2_charge.name=大型炸药 -item.neutrino_lens.name=中子透镜 +item.neutrino_lens.name=中微子透镜 item.neutron_reflector.name=中子反射板 item.night_vision.name=夜视眼镜 item.night_vision.description.item=提供夜视功能(需要全套电动设备) item.night_vision.description.in_armor=%s(允许夜视) item.niter.name=硝石粉 +item.nitra.name=Nitra +item.nitra_small.name=小撮Nitra item.no9.name=矿工头盔 item.nossy_hat.name=华丽的帽子 item.nothing.name=没有东西 @@ -3239,6 +3509,7 @@ item.nugget_mox_fuel.name=MOX燃料粒 item.nugget_mox_fuel.desc=摩西说:§l逃税。§r item.nugget_neptunium.name=镎粒 item.nugget_neptunium_fuel.name=镎燃料粒 +item.nugget_niobium.name=铌粒 item.nugget_osmiridium.name=铱锇粒 item.nugget_pb209.name=铅-209粒 item.nugget_plutonium.name=钚粒 @@ -3250,9 +3521,10 @@ item.nugget_pu239.name=钚-239粒 item.nugget_pu240.name=钚-240粒 item.nugget_pu241.name=钚-241粒 item.nugget_ra226.name=镭-226粒 -item.nugget_reiium.name=魏丹粒 +item.nugget_reiium.name=雷恩粒 item.nugget_schrabidium.name=Sa326粒 item.nugget_schrabidium_fuel.name=Sa326燃料粒 +item.nugget_silicon.name=硅粒 item.nugget_solinium.name=Sa327粒 item.nugget_sr90.name=锶-90粒 item.nugget_tantalium.name=钽粒 @@ -3293,11 +3565,14 @@ item.ore.chlorocalcite=氯方解石 item.ore.copper=铜 item.ore.fluorite=氟石 item.ore.gold=金 +item.ore.hematite=赤铁矿 item.ore.iron=铁 +item.ore.malachite=孔雀石 +item.ore.neodymium=钕 item.ore.niobium=铌 item.ore.titanium=钛 item.ore.tungsten=钨 -item.ore.thorium=钍 +item.ore.thorium232=钍 item.ore.uranium=铀 item.ore_bedrock.name=基岩%s矿 item.ore_byproduct.b_aluminium.name=铝晶体碎片 @@ -3317,6 +3592,7 @@ item.ore_byproduct.b_uranium.name=铀晶体碎片 item.ore_centrifuged.name=离心%s矿 item.ore_cleaned.name=清洁%s矿 item.ore_deepcleaned.name=深清洁%s矿 +item.ore_density_scanner.name=基岩矿石丰度扫描仪 item.ore_enriched.name=富集%s矿 item.ore_nitrated.name=硝化%s矿 item.ore_nitrocrystalline.name=亚硝基结晶%s矿 @@ -3337,10 +3613,20 @@ item.padlock_unbreakable.name=牢不可破的挂锁 item.pads_rubber.name=橡胶垫 item.pads_slime.name=粘液垫 item.pads_static.name=静电垫 +item.page_of_.page1.name=书页之一 +item.page_of_.page2.name=书页之二 +item.page_of_.page3.name=书页之三 +item.page_of_.page4.name=书页之四 +item.page_of_.page5.name=书页之五 +item.page_of_.page6.name=书页之六 +item.page_of_.page7.name=书页之七 +item.page_of_.page8.name=书页之八 item.pancake.name=用废金属、螺栓和宝石粉做成的薄饼 item.part_beryllium.name=铍粉盒 item.part_carbon.name=碳粉盒 item.part_copper.name=铜粉盒 +item.part_generic.hde.name=重型元件 +item.part_generic.lde.name=低密度元件 item.part_generic.piston_electric.name=电动活塞 item.part_generic.piston_hydraulic.name=液压活塞 item.part_generic.piston_pneumatic.name=气动活塞 @@ -3358,9 +3644,9 @@ item.particle_higgs.name=希格斯玻色子胶囊 item.particle_hydrogen.name=氢离子胶囊 item.particle_lead.name=铅离子胶囊 item.particle_lutece.name=Lutece镥准粒子胶囊 -item.particle_muon.name=μ介子胶囊 +item.particle_muon.name=μ子胶囊 item.particle_sparkticle.name=Spark粒子胶囊 -item.particle_strange.name=奇夸克胶囊 +item.particle_strange.name=奇异夸克胶囊 item.particle_tachyon.name=超光速粒子密封胶囊 item.parts_legendary.name=传奇零件 item.peas.name=豌豆 @@ -3437,7 +3723,8 @@ item.pill_herbal.name=草药膏 item.pill_herbal.desc=有效治疗肺部疾病和轻度辐射中毒$有副作用 item.pill_red.name=红色药丸 item.pin.name=发夹 -item.pin.desc=“*未修改*撬开标准锁的成功率约为10%。 +item.pin.desc=撬开标准锁的成功率约为10%。 +item.pipentm.name=%s管 item.pipes_steel.name=钢管 item.pipes_steel.desc=为了避免合成冲突,所以造价如此高昂 item.pipette.name=移液管 @@ -3470,6 +3757,7 @@ item.plate_copper.name=铜板 item.plate_dalekanium.name=愤怒的金属 item.plate_desh.name=Desh复合板 item.plate_dineutronium.name=双聚中子态素复合板 +item.plate_dura_steel.name=高速钢板 item.plate_euphemium.name=Ep复合板 item.plate_fuel_mox.name=MOX 板状燃料 item.plate_fuel_pu238be.name=钚238-铍 板状燃料 @@ -3489,6 +3777,7 @@ item.plate_saturnite.name=土星板 item.plate_schrabidium.name=Sa326板 item.plate_steel.name=钢板 item.plate_titanium.name=钛板 +item.plate_welded.name=焊接%s板 item.polaroid.name=偏光片 item.pollution_detector.name=污染探测器 item.powder_actinium.name=锕粉 @@ -3499,6 +3788,7 @@ item.powder_asbestos.name=石棉粉 item.powder_asbestos.desc=§o\"Sniffffffff- MHHHHHHMHHHHHHHHH\"§r item.powder_ash.coal.name=煤灰 item.powder_ash.fly.name=飞尘 +item.powder_ash.fullerene.name=富勒烯 item.powder_ash.misc.name=灰尘 item.powder_ash.soot.name=细烟灰 item.powder_ash.wood.name=木灰 @@ -3517,6 +3807,7 @@ item.powder_bromine.name=溴粉 item.powder_cadmium.name=镉粉 item.powder_caesium.name=铯粉 item.powder_calcium.name=钙粉 +item.powder_cement.name=水泥 item.powder_cerium.name=铈粉 item.powder_cerium_tiny.name=小撮铈粉 item.powder_chlorocalcite.name=氯方解石 @@ -3559,12 +3850,14 @@ item.powder_lanthanium_tiny.name=小撮镧粉 item.powder_lapis.name=青金石粉 item.powder_lead.name=铅粉 item.powder_lignite.name=褐煤粉 +item.powder_limestone.name=石灰石粉 item.powder_lithium.name=锂粉 item.powder_lithium_tiny.name=小撮锂粉 item.powder_magic.name=粉碎的魔法 item.powder_magnetized_tungsten.name=磁化钨粉 item.powder_meteorite.name=陨石粉 item.powder_meteorite_tiny.name=小撮陨石粉 +item.powder_molysite.name=氯化铁 item.powder_neodymium.name=钕粉 item.powder_neodymium_tiny.name=小撮钕粉 item.powder_neptunium.name=镎粉 @@ -3587,7 +3880,7 @@ item.powder_sawdust.name=锯末 item.powder_schrabidate.name=Sa酸铁粉 item.powder_schrabidium.name=Sa326粉 item.powder_semtex_mix.name=塞姆汀塑胶炸药混合物 -item.powder_sodium.name=Sodium +item.powder_sodium.name=钠 item.powder_spark_mix.name=Spark闪闪奥术混合物 item.powder_sr90.name=锶-90粉 item.powder_sr90_tiny.name=小撮锶-90粉末 @@ -3784,7 +4077,7 @@ item.rod.lead.name=铅棒 item.rod.uranium.name=铀棒 item.rod_dual_empty.name=空双联燃料棒 item.rod_dual.lithium.name=双联锂棒 -item.rod_dual.tritium.name=氚双棒 +item.rod_dual.tritium.name=双联氚棒 item.rod_dual.co.name=双联钴棒 item.rod_dual.co60.name=双联钴-60棒 item.rod_dual.ra226.name=双联镭-226棒 @@ -4008,6 +4301,7 @@ item.serum.name=血清 item.servo_set.name=伺服装置 item.servo_set_desh.name=Desh伺服装置 item.shackles.name=枷锁 +item.shellntm.name=%s壳 item.shimmer_axe.name=闪耀斧 item.shimmer_axe_head.name=重型斧头 item.shimmer_handle.name=强化聚合物手柄 @@ -4047,6 +4341,14 @@ item.stamp_357.name=.357马格南锻模 item.stamp_44.name=.44马格南锻模 item.stamp_50.name=大口径弹壳锻模 item.stamp_9.name=小口径弹壳锻模 +item.stamp_book.printing1.name=书页锻模之一 +item.stamp_book.printing2.name=书页锻模之二 +item.stamp_book.printing3.name=书页锻模之三 +item.stamp_book.printing4.name=书页锻模之四 +item.stamp_book.printing5.name=书页锻模之五 +item.stamp_book.printing6.name=书页锻模之六 +item.stamp_book.printing7.name=书页锻模之七 +item.stamp_book.printing8.name=书页锻模之八 item.stamp_desh_circuit.name=Desh电路板锻模 item.stamp_desh_flat.name=Desh锻模 item.stamp_desh_plate.name=Desh板锻模 @@ -4207,6 +4509,7 @@ item.upgrade_fortune_2.name=二级紫色机器升级 item.upgrade_fortune_3.name=三级紫色机器升级 item.upgrade_gc_speed.name=气体离心机超频升级 item.upgrade_health.name=粉色力场发生器升级 +item.upgrade_muffler.name=消音器 item.upgrade_nullifier.name=采矿激光升级-自动销毁 item.upgrade_overdrive_1.name=一级超速传动机器升级 item.upgrade_overdrive_2.name=二级超速传动机器升级 @@ -4221,14 +4524,16 @@ item.upgrade_smelter.name=采矿激光升级-自动熔炼 item.upgrade_speed_1.name=一级红色机器升级 item.upgrade_speed_2.name=二级红色机器升级 item.upgrade_speed_3.name=三级红色机器升级 -item.upgrade_stack_1.name=一级堆栈弹出升级 -item.upgrade_stack_2.name=二级堆栈弹出升级 -item.upgrade_stack_3.name=三级堆栈弹出升级 +item.upgrade_stack_1.name=一级堆叠弹出升级 +item.upgrade_stack_2.name=二级堆叠弹出升级 +item.upgrade_stack_3.name=三级堆叠弹出升级 item.upgrade_template.name=机器升级模板 item.volcanic_pickaxe.name=熔岩镐 +item.volcanic_axe.name=熔岩斧 item.wand_d.name=调试魔杖 item.wand_k.name=建筑魔杖 item.wand_s.name=结构魔杖 +item.structure_custommachine.name=自定义机器结构输出杖 item.warhead_buster_large.name=大型掩体破坏弹头 item.warhead_buster_medium.name=中型掩体破坏弹头 item.warhead_buster_small.name=小型掩体破坏弹头 @@ -4273,8 +4578,8 @@ item.watz_pellet.les.name=LES Watz靶丸 item.watz_pellet.mes.name=MES Watz靶丸 item.watz_pellet.mep.name=MEP Watz靶丸 item.watz_pellet.meu.name=MEU Watz靶丸 -item.watz_pellet.nqd.name=富集硅岩金属 Watz靶丸 -item.watz_pellet.nqr.name=硅岩金属 Watz靶丸 +item.watz_pellet.nqd.name=浓缩硅岩金属 Watz靶丸 +item.watz_pellet.nqr.name=硅岩金属化合物 Watz靶丸 item.watz_pellet.hen.name=HEN Watz靶丸 item.watz_pellet.schrabidium.name=Sa326 Watz靶丸 item.watz_pellet_depleted.boron.name=硼吸收靶丸(枯竭) @@ -4285,8 +4590,8 @@ item.watz_pellet_depleted.les.name=LES Watz靶丸(枯竭) item.watz_pellet_depleted.mes.name=MES Watz靶丸(枯竭) item.watz_pellet_depleted.mep.name=MEP Watz靶丸(枯竭) item.watz_pellet_depleted.meu.name=MEU Watz靶丸(枯竭) -item.watz_pellet_depleted.nqd.name=富集硅岩金属 Watz靶丸(枯竭) -item.watz_pellet_depleted.nqr.name=硅岩金属 Watz靶丸(枯竭) +item.watz_pellet_depleted.nqd.name=浓缩硅岩金属 Watz靶丸(枯竭) +item.watz_pellet_depleted.nqr.name=硅岩金属化合物 Watz靶丸(枯竭) item.watz_pellet_depleted.hen.name=HEN Watz靶丸(枯竭) item.watz_pellet_depleted.schrabidium.name=Sa326 Watz靶丸(枯竭) item.weapon_bat.name=板球棒 @@ -4303,6 +4608,8 @@ item.wings_murk.name=暗黑之翼 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 +item.wire_dense.name=致密%s线 +item.wire_fine.name=%s线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高温超导体 item.wire_red_copper.name=紫铜线 @@ -4316,6 +4623,7 @@ item.wrench_flipped.name=刺刀扳手 item.xanax.name=NAXA 抗迪伽马药物 item.xanax.desc=移除500mDRX迪伽马辐射 item.zirconium_legs.name=锆质护腿 + itemGroup.tabBlocks=HBM 矿石和方块 itemGroup.tabConsumable=HBM 食物和装备 itemGroup.tabControl=HBM 机器项目和燃料 @@ -4326,6 +4634,7 @@ itemGroup.tabParts=HBM 资源和零件 itemGroup.tabTemplate=HBM 模板 itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、Nukesteve、牛牛联合汉化] itemGroup.tabWeapon=HBM 武器和炮塔 + potion.hbm_bang=! ! ! potion.hbm_death=重度突变 potion.hbm_lead=铅中毒 @@ -4338,10 +4647,30 @@ potion.hbm_radx=抗辐射 potion.hbm_stability=稳定 potion.hbm_taint=污染 potion.hbm_telekinesis=! ! ! + +radar.clearMap=清空地图 radar.detectMissiles=探测导弹 radar.detectPlayers=探测玩家 +radar.detectShells=探测炮弹 radar.redMode=红石控制模式$开启: 基于导弹距离输出红石信号$关闭: 基于导弹级别输出红石信号 +radar.showMap=显示地图 radar.smartMode=智能模式$有红石信号时忽略上升段的导弹 +radar.toggleGui=切换视图 + +radar.target.abm=反弹道导弹 +radar.target.custom10=10号定制导弹 +radar.target.custom1015=10/15号定制导弹 +radar.target.custom15=15号定制导弹 +radar.target.custom1520=15/20号定制导弹 +radar.target.custom20=20号定制导弹 +radar.target.doomsday=末日导弹 +radar.target.shuttle=万金罗宾航天飞机 +radar.target.tier0=0级导弹 +radar.target.tier1=1级导弹 +radar.target.tier2=2级导弹 +radar.target.tier3=3级导弹 +radar.target.tier4=4级导弹 + rbmk.heat=柱体温度: %s rbmk.boiler.water=供水速率: %s / %s rbmk.boiler.steam=蒸汽产生速率: %s / %s @@ -4369,23 +4698,30 @@ rbmk.screen.depletion=消耗: %s rbmk.screen.rod=控制:%s rbmk.screen.temp=温度:%s rbmk.screen.xenon=氙:%s -shape.billet=钢坯 -shape.blade=扇叶 -shape.blades=切碎机刀片 + +shape.billet=坯料 +shape.blade=扇片 +shape.blades=粉碎机刀片 shape.block=块 shape.dust=粉末 -shape.dusttiny=小搓粉末 +shape.dusttiny=小撮粉末 shape.hull_big=大型外壳 shape.hull_small=小型外壳 shape.ingot=锭 shape.nugget=粒 shape.quantum=量子 shape.quart=四分之一块 -shape.plate=板材 +shape.ntmpipe=管 +shape.plate=板 shape.plateTriple=铸造板 -shape.stamp=锻压模具 -shape.wire=线材 +shape.shell=外壳 +shape.stamp=锻模 +shape.wireFine=线 +shape.wireDense=致密线 +shape.wiresDense=致密线 + soundCategory.ntmMachines=NTM机器 + tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 tile.absorber_pink.name=精英辐射吸收器 @@ -4395,7 +4731,10 @@ tile.ams_base.name=AMS基座 [开发中] tile.ams_emitter.name=AMS发射极 [开发中] tile.ams_limiter.name=AMS稳能器 [开发中] tile.ancient_scrap.name=古代废金属 +tile.anvil_arsenic_bronze.name=砷青铜砧 tile.anvil_bismuth.name=铋砧 +tile.anvil_bismuth_bronze.name=铋青铜砧 +tile.anvil_desh.name=Desh砧 tile.anvil_dnt.name=双聚中子态素砧 tile.anvil_ferrouranium.name=铀铁合金砧 tile.anvil_iron.name=铁砧 @@ -4403,11 +4742,13 @@ tile.anvil_lead.name=铅砧 tile.anvil_meteorite.name=陨石砧 tile.anvil_murky.name=暗黑砧 tile.anvil_osmiridium.name=铱锇合金砧 -tile.anvil_schrabidate.name=Sa-铁合金砧 +tile.anvil_saturnite.name=土星砧 +tile.anvil_schrabidate.name=Sa酸铁砧 tile.anvil_starmetal.name=星辉金属砧 tile.anvil_steel.name=钢砧 tile.ash_digamma.name=灰烬 tile.asphalt.name=沥青 +tile.asphalt_stairs.name=沥青楼梯 tile.asphalt_light.name=发光沥青 tile.barbed_wire.name=带刺铁丝网 tile.barbed_wire_acid.name=腐蚀铁丝网 @@ -4423,13 +4764,9 @@ tile.barrel_steel.name=钢桶 tile.barrel_tcalloy.name=锝-钢合金桶 tile.barricade.name=沙袋 tile.basalt.name=玄武岩 -tile.ore_basalt_asbestos.name=富含石棉的玄武岩 tile.basalt_brick.name=玄武岩砖 -tile.ore_basalt_fluorite.name=富含氟石的玄武岩 -tile.ore_basalt_gem.name=富含宝石的玄武岩 tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.ore_basalt_sulfur.name=富含硫的玄武岩 tile.basalt_tiles.name=玄武岩砖 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 @@ -4456,7 +4793,7 @@ tile.block_cobalt.name=钴块 tile.block_coke.coal.name=煤焦炭块 tile.block_coke.lignite.name=褐煤焦炭块 tile.block_coke.petroleum.name=石油焦炭块 -tile.block_coltan.name=钽块 +tile.block_coltan.name=钶钽铁矿块 tile.block_combine_steel.name=CMB钢块 tile.block_copper.name=铜块 tile.block_corium.name=熔融堆芯冷凝物 @@ -4553,16 +4890,16 @@ tile.boxcar.name=车厢 tile.brick_asbestos.name=石棉砖块 tile.brick_asbestos_stairs.name=石棉砖楼梯 tile.brick_compound.name=复合网格砖块 -tile.brick_compound_stairs.name=复合网格楼梯 +tile.brick_compound_stairs.name=复合网格砖楼梯 tile.brick_concrete.name=混凝土砖块 tile.brick_concrete_stairs.name=混凝土砖楼梯 tile.brick_concrete_broken.name=破碎混凝土砖块 -tile.brick_concrete_broken_stairs.name=破碎的混凝土砖楼梯 +tile.brick_concrete_broken_stairs.name=破碎混凝土砖楼梯 tile.brick_concrete_cracked.name=开裂混凝土砖块 tile.brick_concrete_cracked_stairs.name=开裂混凝土砖楼梯 tile.brick_concrete_marked.name=标记混凝土砖 tile.brick_concrete_mossy.name=苔混凝土砖块 -tile.brick_concrete_mossy_stairs.name=苔藓混凝土砖楼梯 +tile.brick_concrete_mossy_stairs.name=苔混凝土砖楼梯 tile.brick_ducrete.name=高密度贫铀混凝土砖块 tile.brick_ducrete_stairs.name=高密度贫铀混凝土砖楼梯 tile.brick_dungeon.name=硒铜砖 @@ -4584,13 +4921,14 @@ tile.brick_light.name=轻质砖块 tile.brick_light_stairs.name=轻质砖楼梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楼梯 -tile.brick_slab.brick_asbestos.name=石棉砖板 -tile.brick_slab.brick_compound.name=复合网格板 -tile.brick_slab.brick_fire.name=耐火砖板 -tile.brick_slab.brick_light.name=轻质砖板 -tile.brick_slab.brick_obsidian.name=黑曜石砖板 -tile.brick_slab.reinforced_brick.name=钢筋石板 -tile.brick_slab.reinforced_stone.name=密实石板 +tile.brick_red.name=红房间砖块 +tile.brick_slab.brick_asbestos.name=石棉砖台阶 +tile.brick_slab.brick_compound.name=复合网格砖台阶 +tile.brick_slab.brick_fire.name=耐火砖台阶 +tile.brick_slab.brick_light.name=轻质砖台阶 +tile.brick_slab.brick_obsidian.name=黑曜石砖台阶 +tile.brick_slab.reinforced_brick.name=强化石头台阶 +tile.brick_slab.reinforced_stone.name=致密石头台阶 tile.broadcaster_pc.name=腐败广播 tile.burning_earth.name=燃烧草地 tile.c4.name=C-4 @@ -4624,6 +4962,7 @@ tile.cluster_depth_titanium.name=深层钛矿簇 tile.cluster_depth_tungsten.name=深层钨矿簇 tile.cluster_iron.name=铁矿簇 tile.cluster_titanium.name=钛矿簇 +tile.custom_machine_anchor.name=自定义机器结构定位锚 tile.cm_block.alloy.name=高级合金机器外壳 tile.cm_block.desh.name=Desh机器外壳 tile.cm_block.steel.name=钢制机器外壳 @@ -4634,8 +4973,10 @@ tile.cm_circuit.gold.name=四级电路块 tile.cm_circuit.red_copper.name=三级电路块 tile.cm_circuit.schrabidium.name=五级电路块 tile.cm_engine.bismuth.name=铋电机组 -tile.cm_engine.desh.name=DESH电机组 +tile.cm_engine.desh.name=Desh电机组 tile.cm_engine.standard.name=电机组 +tile.cm_flux.name=中子接收器 +tile.cm_heat.name=热量接收器 tile.cm_port.alloy.name=高级合金端口 tile.cm_port.desh.name=Desh端口 tile.cm_port.steel.name=钢制端口 @@ -4652,13 +4993,13 @@ tile.cmb_brick.name=CMB钢瓦块 tile.cmb_brick_reinforced.name=加固CMB钢砖块 tile.compact_launcher.name=紧凑型发射台 tile.concrete.name=混凝土瓦块 -tile.concrete_asbestos.name=黑色混凝土 +tile.concrete_asbestos.name=石棉混凝土 tile.concrete_asbestos_stairs.name=石棉混凝土楼梯 -tile.concrete_brick_slab.brick_concrete.name=混凝土砖板 -tile.concrete_brick_slab.brick_concrete_broken.name=破碎的混凝土砖板 -tile.concrete_brick_slab.brick_concrete_cracked.name=开裂的混凝土砖板 -tile.concrete_brick_slab.brick_concrete_mossy.name=苔藓混凝土砖板 -tile.concrete_brick_slab.brick_ducrete.name=高密度贫铀混凝土砖板 +tile.concrete_brick_slab.brick_concrete.name=混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_broken.name=破碎混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_cracked.name=开裂混凝土砖台阶 +tile.concrete_brick_slab.brick_concrete_mossy.name=苔混凝土砖台阶 +tile.concrete_brick_slab.brick_ducrete.name=高密度贫铀混凝土砖台阶 tile.concrete_colored.black.name=黑色混凝土 tile.concrete_colored.blue.name=蓝色混凝土 tile.concrete_colored.brown.name=棕色混凝土 @@ -4675,21 +5016,24 @@ tile.concrete_colored.red.name=红色混凝土 tile.concrete_colored.silver.name=淡灰色混凝土 tile.concrete_colored.white.name=白色混凝土 tile.concrete_colored.yellow.name=黄色混凝土 -tile.concrete_colored_ext.hazard.name=建筑商指定混凝土-危险地带 -tile.concrete_colored_ext.indigo.name=建筑商指定混凝土-深靛蓝 -tile.concrete_colored_ext.machine.name=建筑商指定混凝土-工业风 -tile.concrete_colored_ext.machine_stripe.name=建筑商指定混凝土-工业条纹 -tile.concrete_colored_ext.pink.name=建筑商指定混凝土-猛男粉 -tile.concrete_colored_ext.purple.name=建筑商指定混凝土-神秘紫 +tile.concrete_colored_ext.bronze.name=建筑工指定混凝土-青铜板材 +tile.concrete_colored_ext.hazard.name=建筑工指定混凝土-危险地带 +tile.concrete_colored_ext.indigo.name=建筑工指定混凝土-深靛蓝 +tile.concrete_colored_ext.machine.name=建筑工指定混凝土-工业风 +tile.concrete_colored_ext.machine_stripe.name=建筑工指定混凝土-工业条纹 +tile.concrete_colored_ext.pink.name=建筑工指定混凝土-猛男粉 +tile.concrete_colored_ext.purple.name=建筑工指定混凝土-神秘紫 +tile.concrete_colored_ext.sand.name=建筑工指定混凝土-沙漠风暴 tile.concrete_pillar.name=钢筋混凝土柱 -tile.concrete_slab.concrete.name=混凝土瓷砖板 -tile.concrete_slab.concrete_asbestos.name=石棉混凝土板 -tile.concrete_slab.concrete_smooth.name=混凝土板 -tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖板 -tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土板 +tile.concrete_slab.asphalt.name=沥青台阶 +tile.concrete_slab.concrete.name=混凝土瓦块台阶 +tile.concrete_slab.concrete_asbestos.name=石棉混凝土台阶 +tile.concrete_slab.concrete_smooth.name=混凝土台阶 +tile.concrete_slab.ducrete.name=高密度贫铀混凝土瓷砖台阶 +tile.concrete_slab.ducrete_smooth.name=高密度贫铀混凝土台阶 tile.concrete_smooth.name=混凝土 tile.concrete_smooth_stairs.name=混凝土楼梯 -tile.concrete_stairs.name=混凝土瓷砖楼梯 +tile.concrete_stairs.name=混凝土瓦块楼梯 tile.concrete_super.name=über混凝土 tile.concrete_super_broken.name=发霉的碎片 tile.conveyor.name=输送带 @@ -4712,6 +5056,8 @@ tile.crane_extractor.desc=从库存中取出物品并将其放置在传送带上 tile.crane_grabber.name=输送带抓斗 tile.crane_grabber.desc=从经过的输送带中取出物品并将其放入容器$将只从最近的通道中取出物品$最多有9个带黑白名单的过滤槽$用螺丝刀右键单击以设置输入侧$用螺丝起子平移单击以设置输出侧$单击两次以设置对侧 tile.crane_inserter.name=输送带导入器 +tile.crane_partitioner.name=酸化器输入分隔器 +tile.crane_partitioner.desc=接受并存储至多9种输入矿物酸化器的物品$并在物品数量达到配方要求时将其输出$无配方物品也会被存储,需要从侧面导出 tile.crane_inserter.desc=接受输送带上的物品并将其放入容器中$用螺丝刀右键单击以设置输入侧$用螺丝刀单击以设置输出侧$单击两次以设置相反侧 tile.crane_router.name=输送带分拣机 tile.crane_router.desc=根据定义的条件对项目排序$侧面可以定义为黑名单、白名单或通配符$只有在没有其他筛选器匹配的情况下才选择通配符侧面 @@ -4740,7 +5086,8 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_emitter.name=Deco发光体 +tile.deco_emitter.name=装饰性发光体 +tile.deco_crt.name=老CRT显示屏 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 tile.deco_rbmk_smooth.name=平滑RBMK装饰块 @@ -4771,6 +5118,7 @@ tile.deco_pipe_rim_red.name=红色钢制管道 (镶边) tile.deco_pipe_rim_marked.name=气体管道 (镶边) tile.deco_steel.name=钢装饰块 tile.deco_titanium.name=钛装饰块 +tile.deco_toaster.name=坏掉的烤面包机 tile.deco_tungsten.name=钨装饰块 tile.decon.name=玩家去污器 tile.depth_brick.name=深层岩石砖 @@ -4791,11 +5139,15 @@ tile.dirt_dead.name=泥渣 tile.dirt_oily.name=油泥 tile.drill_pipe.name=钻杆 tile.drone_crate.name=运输无人机坞 +tile.drone_crate.desc=运输无人机的装货点和卸货点$也作为航路点使用, 需要使用运输无人机链接器与其他航路点链接$无人机必须从较高角度接近此方块,否则会被卡住 tile.drone_crate_provider.name=物流供应箱 +tile.drone_crate_provider.desc=向物流网络提供物品$物流无人机会尝试将物品从物流供应箱移至物流请求箱 tile.drone_crate_requester.name=物流请求箱 -tile.drone_dock.name=物流无人机码头 +tile.drone_crate_requester.desc=从物流网络请求物品$若物品栏内没有标记的物品,则会请求该物品 +tile.drone_dock.name=物流无人机坞 +tile.drone_dock.desc=物流无人机的生成点$只能检测5区块半径内的物流供应箱和物流请求箱$每个连接中物流无人机最多跟随10个路径点 tile.drone_waypoint.name=运输无人机航路点 -tile.drone_waypoint.desc=运输无人机的航路点$使用运输无人机链接器设置路径$按顺序单击每个航路点和板条箱以创建路径,$然后平移单击以清除保存的位置$右键单击或平移单击航路点以更改航路点的偏移 +tile.drone_waypoint.desc=运输无人机的航路点$使用运输无人机链接器设置路径$按顺序单击每个航路点和坞即可创建路径$Shift+右键单击以清除保存的位置$右键单击或Shift+右键单击航路点以更改航路点的高度偏移 tile.drone_waypoint_request.name=物流无人机航路点 tile.door_bunker.name=仓门 tile.door_metal.name=金属门 @@ -4822,6 +5174,7 @@ tile.fallout.name=辐射尘 tile.fan.name=风扇 tile.fan.desc=使用红石激活$将实体推至最多10个方块外$用螺丝刀右键点击即可翻转 tile.fence_metal.name=铁丝网围栏 +tile.fence_metal_post.name=铁丝网围栏立柱 tile.field_disturber.name=高能场干扰机 tile.filing_cabinet.green.name=蒙尘的文件柜 tile.filing_cabinet.steel.name=钢制文件柜 @@ -4834,6 +5187,7 @@ tile.fireworks.color=颜色: %s tile.fissure_bomb.name=裂缝炸弹 tile.flame_war.name=盒中论战 tile.float_bomb.name=悬浮炸弹 +tile.floodlight.name=电力泛光灯 tile.fluid_duct.name=通用流体管道 tile.fluid_duct_box.name=通用流体管道(方形) tile.fluid_duct_exhaust.name=排气管 @@ -4856,12 +5210,14 @@ tile.frozen_dirt.name=冰冻土 tile.frozen_grass.name=冰冻草 tile.frozen_log.name=冰冻原木 tile.frozen_planks.name=冰冻木板 +tile.machine_furnace_brick_off.name=砖砌炉 +tile.machine_furnace_brick_on.name=砖砌炉 tile.furnace_combination.name=复式炼焦炉 tile.furnace_combination.desc=一种可以生产木炭和煤焦炭的大熔炉$产生流体副产品$传热速率:ΔT*0.25 TU/T tile.furnace_iron.name=铁炉 tile.furnace_iron.desc=更大、效率更高的炉子,在闲置时不会浪费燃料。 tile.furnace_steel.name=钢炉 -tile.furnace_steel.desc=非常大的熔炉,冶炼矿石时可提供加成。$这需要外部热源$传热率:ΔT*0.05tu/T$(Δ表示差值,T表示温度) +tile.furnace_steel.desc=非常大的熔炉,冶炼矿石时可提供加成。$需要外部热源$传热率:ΔT*0.05tu/T$(Δ表示差值,T表示温度) tile.fusion_center.name=中心磁铁 tile.fusion_conductor.name=超导磁体 tile.fusion_conductor_welded.name=超导磁体(焊接) @@ -4906,19 +5262,19 @@ tile.gravel_obsidian.name=碎黑曜石 tile.hadron_access.name=粒子加速器接入终端 tile.hadron_analysis.name=粒子加速器分析室壁 tile.hadron_analysis_glass.name=粒子加速器分析室窗口 -tile.hadron_coil_alloy.name=密集超导线圈 +tile.hadron_coil_alloy.name=致密超导线圈 tile.hadron_coil_chlorophyte.name=致密叶绿线圈 tile.hadron_coil_gold.name=致密金线圈 tile.hadron_coil_magtung.name=致密4000K超导线圈 -tile.hadron_coil_mese.name=密集Mese线圈 +tile.hadron_coil_mese.name=致密Mese线圈 tile.hadron_coil_neodymium.name=致密钕线圈 tile.hadron_coil_schrabidate.name=致密Sa酸铁线圈 -tile.hadron_coil_schrabidium.name=密集Sa326线圈 -tile.hadron_coil_starmetal.name=密集星辉线圈 +tile.hadron_coil_schrabidium.name=致密Sa326线圈 +tile.hadron_coil_starmetal.name=致密星辉线圈 tile.hadron_cooler.name=粒子加速器冷却装置 tile.hadron_cooler.desc=冷却功率:10$过冷阈值:10$冷却加成:+10%%$过冷惩罚:-25%% tile.hadron_cooler_mk2.name=粒子加速器冷却装置-回文特制 -tile.hadron_cooler_mk2.desc=冷却功率:5$效率功能:2-(冷却-15)2/225$最高惩罚:-90%% +tile.hadron_cooler_mk2.desc=冷却功率:5$效率功能:2-(冷却-15)²/225$最高惩罚:-90%% tile.hadron_core.name=粒子加速器核心组件 tile.hadron_diode.name=肖基特二极管 tile.hadron_plating.name=粒子加速器镀层 @@ -4946,6 +5302,20 @@ tile.heater_oven.name=加热炉 tile.heater_oven.desc=燃烧固体燃料以产生热量$以50%的效率接受来自底部的热量。 tile.hev_battery.name=盔甲电池 tile.impact_dirt.name=烧焦的泥土 +tile.icf.name=惯性约束聚变反应堆(ICF) +tile.icf_block.name=ICF激光器 +tile.icf_component.name=ICF稳定元件 +tile.icf_component.structure.name=ICF外壳 +tile.icf_component.structure_bolted.name=ICF外壳(铆接) +tile.icf_component.vessel.name=ICF密封容器壁 +tile.icf_component.vessel_welded.name=ICF密封容器壁(焊接) +tile.icf_controller.name=ICF激光器控制器 +tile.icf_laser_component.capacitor.name=ICF激光器电容 +tile.icf_laser_component.casing.name=ICF激光器外壳 +tile.icf_laser_component.cell.name=ICF激光器单元 +tile.icf_laser_component.emitter.name=ICF激光器闪光管 +tile.icf_laser_component.port.name=ICF激光器端口 +tile.icf_laser_component.turbo.name=ICF激光器涡轮增压器 tile.iter.name=聚变反应堆 tile.ladder_aluminium.name=铝制梯子 tile.ladder_cobalt.name=钴制梯子 @@ -4965,12 +5335,16 @@ tile.lamp_tritium_green_on.name=绿色氚灯 tile.lantern.name=路灯 tile.lantern_behemoth.name=旧路灯 tile.launch_pad.name=导弹发射台 +tile.launch_pad_large.name=发射台 tile.launch_table.name=大型发射台 +tile.launch_pad_rusted.name=锈迹斑斑的发射台 tile.leaves_layer.name=落叶 tile.lox_barrel.name=液氧桶 tile.machine_amgen.name=环境辐射发电机 +tile.machine_arc_furnace.name=大型电弧炉 tile.machine_arc_furnace_off.name=电弧炉 tile.machine_arc_furnace_on.name=电弧炉 +tile.machine_arc_welder.name=电弧焊机 tile.machine_armor_table.name=装甲改装台 tile.machine_ashpit.name=储灰槽 tile.machine_ashpit.desc=收集来自燃烧室和加热炉的灰烬 @@ -5022,6 +5396,7 @@ tile.machine_difurnace_on.name=高炉 tile.machine_difurnace_rtg_off.name=核高炉 tile.machine_difurnace_rtg_on.name=核高炉 tile.machine_dineutronium_battery.name=Spark蓄电池 +tile.machine_drain.name=排液管 tile.machine_drill.name=自动采矿钻机 tile.machine_electric_furnace_off.name=电炉 tile.machine_electric_furnace_on.name=电炉 @@ -5036,11 +5411,15 @@ tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 tile.machine_fracking_tower.name=水力压裂塔 +tile.machine_funnel.name=组合漏斗 +tile.machine_funnel.desc=自动在2x2或3x3的合成格中压缩内部物品$顶面:输入$底面:输出$侧面:输出内部原料 tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 tile.machine_hephaestus.name=地热换热器 tile.machine_hydrotreater.name=加氢装置 +tile.machine_icf_press.name=ICF燃料靶丸制造器 +tile.machine_icf_press.desc=用于装填ICF靶丸$左侧燃料槽接收顶面/底面输入,右侧燃料槽接收侧面输入$μ子胶囊和空靶丸可从任意面输入 tile.machine_industrial_boiler.name=工业锅炉 tile.machine_industrial_boiler.desc=可以烧水或加热油的大型锅炉$需要外部热源$传热率:ΔT*0.01 TU/T$不会爆炸 tile.machine_industrial_generator.name=工业发电机 @@ -5058,11 +5437,13 @@ tile.machine_mixer.name=工业搅拌机 tile.machine_nuke_furnace_off.name=核熔炉 tile.machine_nuke_furnace_on.name=核熔炉 tile.machine_orbus.name=重型磁约束储罐 +tile.machine_ore_slopper.name=基岩矿石处理机 tile.machine_powerrtg.name=PT同位素电池 tile.machine_press.name=火力锻压机 tile.machine_puf6_tank.name=六氟化钚储罐 tile.machine_pumpjack.name=石油钻机 tile.machine_radar.name=雷达 +tile.machine_radar_large.name=大型雷达 tile.machine_radgen.name=辐射能量发电机 tile.machine_radiolysis.name=放射性同位素热电机和辐射裂解室 tile.machine_reactor.name=增殖反应堆 @@ -5089,6 +5470,7 @@ tile.machine_shredder.name=粉碎机 tile.machine_silex.name=SILEX激光同位素分离室 tile.machine_siren.name=警报器 tile.machine_solar_boiler.name=太阳能锅炉 +tile.machine_soldering_station.name=焊接台 tile.machine_solidifier.name=工业固化机 tile.machine_solidifier.desc=配备冷却系统和其他多功能工具的通用机器,用于使用冷冻和石化聚合等多种工艺将流体转化为固体。 tile.machine_spp_bottom.name=ZPE电位发生器 [底部] @@ -5096,11 +5478,11 @@ tile.machine_spp_top.name=ZPE电位发生器 [顶部] tile.machine_steam_engine.name=蒸汽机 tile.machine_steam_engine.desc=效率:85% tile.machine_stirling.name=斯特林发电机 -tile.machine_stirling.desc=它将热量转化为能量。这需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% +tile.machine_stirling.desc=它将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$最大进气量:300 TU/T$效率:50% tile.machine_stirling_creative.name=创造斯特林发动机 tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热源$传热率:T*0.1 TU/T$无限吸热/T$效率:100% tile.machine_stirling_steel.name=重型斯特林发电机 -tile.machine_stirling_steel.desc=它将热量转化为能量。这需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% +tile.machine_stirling_steel.desc=它将热量转化为能量。需要外部热源$使用更重的齿轮来支持更高的温度$传热率:T*0.1 TU/T$最大进气量:1500 TU/T$效率:50% tile.machine_storage_drum.name=核废料处理桶 tile.machine_strand_caster.name=连续铸造机 tile.machine_telelinker.name=炮塔ID管理器 @@ -5144,7 +5526,7 @@ tile.ntm_dirt.name=泥土 tile.nuke_boy.name=小男孩 tile.nuke_custom.name=自定义核弹 tile.nuke_fleija.name=F.L.E.I.J.A. -tile.nuke_fstbmb.name=BF炸弹 +tile.nuke_fstbmb.name=野火炸弹 tile.nuke_gadget.name=小玩意 tile.nuke_man.name=胖子 tile.nuke_mike.name=常春藤迈克 @@ -5156,10 +5538,16 @@ tile.nuke_tsar.name=沙皇炸弹 tile.oil_duct.name=输油管 tile.oil_duct_solid.name=粗输油管 tile.oil_pipe.name=原油抽取管 +tile.oil_spill.name=泄漏的原油 tile.ore_alexandrite.name=亚历山大变石矿 tile.ore_aluminium.name=铝矿石 tile.ore_asbestos.name=石棉矿 tile.ore_australium.name=奥斯矿石 +tile.ore_basalt_asbestos.name=富含石棉的玄武岩 +tile.ore_basalt_fluorite.name=富含氟石的玄武岩 +tile.ore_basalt_gem.name=富含宝石的玄武岩 +tile.ore_basalt_molysite.name=富含氯化铁的玄武岩 +tile.ore_basalt_sulfur.name=富含硫的玄武岩 tile.ore_bedrock.name=基岩矿石 tile.ore_bedrock_coltan.name=基岩钶钽铁矿 tile.ore_bedrock_oil.name=基岩油层 @@ -5188,6 +5576,11 @@ tile.ore_gneiss_uranium.name=铀矿页岩 tile.ore_gneiss_uranium_scorched.name=烧焦的铀矿页岩 tile.ore_lead.name=铅矿石 tile.ore_lignite.name=褐煤矿石 +tile.ore_meteor.aluminium.name=铝矿陨石 +tile.ore_meteor.cobalt.name=钴矿陨石 +tile.ore_meteor.copper.name=铜矿陨石 +tile.ore_meteor.iron.name=铁矿陨石 +tile.ore_meteor.rareearth.name=稀土矿陨石 tile.ore_meteor_aluminium.name=铝矿陨石 tile.ore_meteor_copper.name=铜矿陨石 tile.ore_meteor_lead.name=铅矿陨石 @@ -5233,7 +5626,8 @@ tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 -tile.part_emitter.name=Deco粒子发射器 +tile.part_emitter.name=装饰性粒子发射器 +tile.pedestal.name=物品基座 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 @@ -5255,6 +5649,7 @@ tile.plant_tall.cd4.name=芥子柳(成熟) tile.plant_tall.weed.name=大麻 tile.plasma.name=等离子 tile.plasma_heater.name=等离子加热器 +tile.plushie.name=%s布娃娃 tile.pole_satellite_receiver.name=卫星天线 tile.pole_top.name=天线顶部 tile.press_preheater.name=锻压机压力预热器 @@ -5279,6 +5674,8 @@ tile.pwr_fuel.name=PWR燃料棒 tile.pwr_fuel.desc=增加压水堆燃料容量$位置:网格,用于增加反应效率 tile.pwr_heatex.name=PWR换热器 tile.pwr_heatex.desc=将核心热量转移到外壳$位置:任意 +tile.pwr_heatsink.name=PWR热容器 +tile.pwr_heatsink.desc=增加5%%的核心热容$略微降低冷却剂通道和换热器的效率$位置:任意 tile.pwr_neutron_source.name=PWR中子源 tile.pwr_neutron_source.desc=向堆芯添加20个中子通量$位置:任意$中子通量只有在连接打开时才能到达燃料棒 tile.pwr_port.name=PWR接入端口 @@ -5288,8 +5685,10 @@ tile.pwr_reflector.desc=将中子通量反射回燃料棒$位置:网格,用 tile.rad_lava_block.name=放射性火山熔岩 tile.radar_screen.name=雷达显示屏 tile.radio_telex.name=电报机 -tile.radio_torch_counter.name=红石无线项目计数器 -tile.radio_torch_counter.desc=平面或比较器兼容块上的标牌$根据匹配项目的数量发出信号 +tile.radio_torch_counter.name=无线红石物品计数器 +tile.radio_torch_counter.desc=可在平坦表面或与比较器兼容的方块上放置$根据匹配物品的数量发出信号 +tile.radio_torch_logic.name=无线红石逻辑接收器 +tile.radio_torch_logic.desc=可在平坦表面或与比较器兼容的方块上放置$将红石信号与条件一一对应,并按照设定的顺序检测$输入的数值或字符串会与常量进行比较 tile.radio_torch_receiver.name=无线红石信号接收器 tile.radio_torch_receiver.desc=可在平坦表面或与比较器兼容的方块上放置 tile.radio_torch_sender.name=无线红石信号发射器 @@ -5321,6 +5720,7 @@ tile.rbmk_crane_console.name=RBMK起重机控制台 tile.rbmk_heater.name=RBMK流体加热器 tile.rbmk_heatex.name=RBMK换热器 tile.rbmk_loader.name=RBMK反应堆蒸汽导出器 +tile.rbmk_loader.desc=让RBMK反应堆在底部同时拥有水接口和蒸汽接口$在RBMK蒸汽管道下方放置水管道,再在下面放置蒸汽导出器$最后将管道连接至蒸汽导出器即可 tile.rbmk_moderator.name=RBMK反应堆石墨慢化剂 tile.rbmk_outgasser.name=RBMK反应堆辐照通道 tile.rbmk_reflector.name=RBMK反应堆碳化钨中子反射器 @@ -5329,7 +5729,9 @@ tile.rbmk_rod_mod.name= RBMK反应堆慢化燃料棒 tile.rbmk_rod_reasim.name= RBMK反应堆燃料棒(ReaSim) tile.rbmk_rod_reasim_mod.name= RBMK反应堆慢化燃料棒(ReaSim) tile.rbmk_steam_inlet.name=RBMK ReaSim进水口 +tile.rbmk_steam_inlet.desc=当启用ReaSim锅炉时向反应堆内输入水$从侧面连接至反应堆结构 tile.rbmk_steam_outlet.name=RBMK ReaSim蒸汽出口 +tile.rbmk_steam_outlet.desc=当启用ReaSim锅炉时从反应堆内输出超热蒸汽$从侧面连接至反应堆结构 tile.rbmk_storage.name=RBMK燃料棒存储棒 tile.reactor_computer.name=反应堆控制器 tile.reactor_conductor.name=反应堆锅炉 @@ -5347,9 +5749,13 @@ tile.red_cable_paintable.name=可涂漆紫铜线 tile.red_connector.name=电力连接器 tile.red_pylon.name=电线杆 tile.red_pylon_large.name=大型输电塔 +tile.red_pylon_medium_steel.name=中型钢制电线杆 +tile.red_pylon_medium_steel_transformer.name=中型钢制电线杆(带变压器) +tile.red_pylon_medium_wood.name=中型木制电线杆 +tile.red_pylon_medium_wood_transformer.name=中型木制电线杆(带变压器) tile.red_wire_coated.name=密封紫铜电缆 tile.reinforced_brick.name=强化石头 -tile.reinforced_brick_stairs.name=钢筋石楼梯 +tile.reinforced_brick_stairs.name=强化石头楼梯 tile.reinforced_ducrete.name=加固高密度贫铀混凝土 tile.reinforced_glass.name=强化玻璃 tile.reinforced_glass_pane.name=强化玻璃窗 @@ -5364,15 +5770,15 @@ tile.reinforced_laminate_pane.name=强化夹层隔板 tile.rejuvinator.name=再生装置 tile.residue.name=云残留 tile.safe.name=保险箱 -tile.sand_boron.name=硼砂 -tile.sand_boron_layer.name=硼砂层 +tile.sand_boron.name=硼沙 +tile.sand_boron_layer.name=硼沙层 tile.sand_dirty.name=油砂 tile.sand_dirty_red.name=红色油砂 tile.sand_gold.name=金沙 tile.sand_gold198.name=金-198沙 tile.sand_lead.name=铅沙 tile.sand_polonium.name=钋沙 -tile.sand_quartz.name=石英砂 +tile.sand_quartz.name=石英沙 tile.sand_uranium.name=铀沙 tile.sat_dock.name=卸货平台 tile.sat_foeq.name=实验型核能PEAF-Mk.I FOEQ Duna探测器[装饰块] @@ -5400,6 +5806,7 @@ tile.solar_mirror.name=定日镜 tile.soyuz_capsule.name=货物着陆舱 tile.soyuz_launcher.name=联盟号发射平台 tile.spikes.name=地刺 +tile.snowglobe.name=雪景球 tile.spotlight_incandescent.name=罩灯 tile.spotlight_fluoro.name=荧光灯 tile.spotlight_halogen.name=卤素泛光灯 @@ -5428,6 +5835,7 @@ tile.stone_resource.hematite.name=赤铁矿 tile.stone_resource.limestone.name=石灰石 tile.stone_resource.malachite.name=孔雀石 tile.stone_resource.sulfur.name=硫磺石 +tile.struct_icf_core.name=ICF反应堆核心组件 tile.struct_iter_core.name=聚变反应堆核心组件 tile.struct_launcher.name=发射台部件 tile.struct_launcher_core.name=紧凑型发射台核心组件 @@ -5471,6 +5879,7 @@ tile.turret_rocket.name=火箭炮塔 tile.turret_richard.name=火箭炮塔“理查德” tile.turret_spitfire.name=目前没有名字[开发中] tile.turret_sentry.name=哨兵炮塔“布朗” +tile.turret_sentry_damaged.name=哨兵炮塔"埃德温" tile.turret_tau.name=陶子炮塔 tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" tile.vacuum.name=真空 @@ -5478,7 +5887,7 @@ tile.vault_door.name=避难所防爆门 tile.vent_chlorine.name=氯气排气口 tile.vent_chlorine_seal.name=氯气容器 tile.vent_cloud.name=云排气口 -tile.vent_pink_cloud.name=粉色云排气口 +tile.vent_pink_cloud.name=粉雾排气口 tile.vinyl_tile.large.name=大型乙烯基瓷砖 tile.vinyl_tile.small.name=小型乙烯基瓷砖 tile.vitrified_barrel.name=玻璃化核废料桶 @@ -5495,7 +5904,7 @@ tile.waste_trinitite_red.name=红色核融玻璃矿石 tile.watz.name=Watz发电厂 tile.watz_conductor.name=Watz电力端口 tile.watz_control.name=加强控制棒 -tile.watz_cooler.name=Watz反应堆过冷器 +tile.watz_cooler.name=Watz反应堆高效冷却器 tile.watz_core.name=Watz反应堆控制器 tile.watz_element.name=Watz反应室 tile.watz_end.name=Watz反应堆稳定元件 @@ -5503,7 +5912,8 @@ tile.watz_end_bolted.name=Watz反应堆稳定元件(铆接) tile.watz_hatch.name=Watz反应堆端口 tile.watz_pump.name=Watz压力泵 tile.yellow_barrel.name=核废料桶 -tile.zirnox_destroyed.name=损毁的ZINROX +tile.zirnox_destroyed.name=损毁的ZIRNOX + tile.large_vehicle_door.name=大型机械门 tile.water_door.name=水闸门 tile.qe_containment.name=QE安全门 @@ -5511,6 +5921,7 @@ tile.qe_sliding_door.name=QE滑动门 tile.round_airlock_door.name=圆形气闸门 tile.secure_access_door.name=安全检修门 tile.sliding_seal_door.name=滑动密封门 + trait.asbestos=石棉 trait.blinding=致盲 trait.coal=煤尘 @@ -5525,6 +5936,7 @@ trait.hot=自燃/高温 trait.hydro=与水反应 trait.radioactive=放射性 trait.radResistance=辐射抗性: %s + trait.rbmk.coreTemp=核心温度: %s trait.rbmk.depletion=燃料消耗: %s trait.rbmk.diffusion=扩散度: %s @@ -5542,6 +5954,7 @@ trait.rbmk.splitsWith=裂变需要: %s trait.rbmk.xenon=氙元素堆积程度: %s trait.rbmk.xenonBurn=氙元素燃烧函数: %s trait.rbmk.xenonGen=氙元素产生函数: %s + trait.rbmx.coreTemp=核心熵: %s trait.rbmx.depletion=衰变: %s trait.rbmx.diffusion=能量潮涌: %s @@ -5559,8 +5972,10 @@ trait.rbmx.splitsWith=接受: %s trait.rbmx.xenon=铅元素堆积程度: %s trait.rbmx.xenonBurn=铅元素寂灭函数: %s trait.rbmx.xenonGen=铅元素产生函数: %s + trait.tile.cluster=只有在被玩家破坏时才会掉落 trait.tile.depth=只能被爆炸破坏 + tool.ability.centrifuge=自动离心 tool.ability.crystallizer=自动结晶 tool.ability.explosion=爆破 @@ -5572,6 +5987,7 @@ tool.ability.recursion=连锁挖矿 tool.ability.shredder=自动粉碎 tool.ability.silktouch=精准采集 tool.ability.smelter=自动熔炼 + turret.animals=被动目标:%s turret.arty.artillery=§e火炮模式$最低射程: 250m$最大射程: 3,000m turret.arty.cannon=§e炮塔模式$最低射程: 32m$射程: 250m @@ -5582,6 +5998,24 @@ turret.none=无 turret.off=关 turret.on=开 turret.players=以玩家为目标:%s + +upgrade.acid=流体需求量 %s +upgrade.burn=燃烧内部天然气 %smB/t,产能 %sHE/t +upgrade.consumption=消耗 %s +upgrade.coolantConsumption=冷却剂消耗 %s +upgrade.delay=工作时间 %s +upgrade.efficiency=效率 %s +upgrade.fortune=时运 %s +upgrade.overheatChance=过热几率 %s +upgrade.range=范围 %s + +upgrade.gui.title=§l接受的升级:§r +upgrade.gui.afterburner= * §d加力燃烧§r:叠加至%s级 +upgrade.gui.effectiveness= * §a效率§r:叠加至%s级 +upgrade.gui.overdrive= * §7超速传动§r:叠加至%s级 +upgrade.gui.power= * §9节能§r:叠加至%s级 +upgrade.gui.speed= * §4速度§r:叠加至%s级 + wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 @@ -5592,8 +6026,10 @@ wavelengths.waveRange.visible=400nm-780nm wavelengths.waveRange.uv=100nm-400nm wavelengths.waveRange.gamma=<100pm wavelengths.waveRange.drx=1916169普朗克长度 + weapon.ability.beheader=斩首 weapon.ability.bobble=收藏家之运 +# Should rhyme with the translation for "chainsaw" weapon.ability.chainsaw=痛苦面"锯" weapon.ability.fire=燃烧 weapon.ability.radiation=辐射 @@ -5608,44 +6044,10 @@ weapon.elecGun.glass_cannon.visible=可见光 weapon.elecGun.glass_cannon.uv=紫外线 weapon.elecGun.glass_cannon.xray=X射线 weapon.elecGun.glass_cannon.gamma=伽马射线 -hadron.error=错误! -container.reactor=增殖反应堆 -death.attack.subAtomic=%1$s 的原子被 %2$s 摧毁 -item.launch_code.name=发射井发射代码 -item.nitra.name=Nitra -item.nitra_small.name=小撮Nitra -item.launch_key.name=发射井发射钥匙 -item.powder_molysite.name=钼铁矿 -tile.ore_basalt_molysite.name=富含钼铁矿的玄武岩 -item.upgrade_muffler.name=消音器 -item.chunk_ore.rare.name=稀土矿石块 -item.wire_dense.name=致密%s线 -item.launch_code_piece.name=发射井发射代码碎片 -tile.deco_crt.name=老CRT显示屏 -tile.deco_toaster.name=坏掉的烤面包机 + +#Stuffs that Bob doesn't provide translation for +item.gun_vortex.name=涡流 tile.crystal_power.name=能量水晶 tile.crystal_energy.name=能量水晶 tile.crystal_robust.name=坚固的水晶 -tile.crystal_trixite.name=赛瑞克水晶 -tile.machine_furnace_brick_off.name=砖砌炉 -tile.machine_furnace_brick_on.name=砖砌炉 -tile.cm_flux.name=中子接收器 -tile.cm_heat.name=热量接收器 -container.machineFunnel=组合漏斗 -tile.machine_funnel.name=组合漏斗 -container.machineArcWelder=电弧焊机 -tile.machine_arc_welder.name=电弧焊机 -tile.launch_pad_rusted.name=锈迹斑斑的发射台 -tile.turret_sentry_damaged.name=哨兵炮塔"埃德温" -item.powder_sodium.name=钠 -item.plate_welded.name=焊接%s板 -item.ingot_cft.name=晶化富勒烯 -item.powder_ash.fullerene.name=富勒烯 -item.fuel_additive.antiknock.name=四乙基铅抗爆剂 -item.fuel_additive.deicer.name=除冰剂 -radar.detectShells=探测炮弹 -radar.showMap=显示地图 -radar.toggleGui=切换视图 -radar.clearMap=清空地图 -item.missile_doomsday_rusted.name=损坏的末日导弹 -item.gun_vortex.name=涡流 \ No newline at end of file +tile.crystal_trixite.name=赛瑞克水晶 \ No newline at end of file diff --git a/src/main/resources/assets/hbm/models/trinkets/yomi.obj b/src/main/resources/assets/hbm/models/trinkets/yomi.obj new file mode 100644 index 000000000..44c0bdac0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/trinkets/yomi.obj @@ -0,0 +1,487 @@ +# Blender v2.79 (sub 0) OBJ File: 'yomi.blend' +# www.blender.org +o Plane +v -0.250000 1.187500 0.250000 +v 0.250000 1.187500 0.250000 +v -0.250000 1.187500 -0.250000 +v 0.250000 1.187500 -0.250000 +v 0.250000 1.000000 0.187500 +v 0.250000 1.000000 -0.187500 +v 0.125000 0.750000 0.187500 +v 0.125000 0.750000 -0.187500 +v 0.125000 1.000000 0.187500 +v 0.125000 1.000000 -0.187500 +v 0.156375 0.937500 -0.031250 +v 0.156375 0.937500 0.031250 +v 0.156375 1.000000 0.031250 +v 0.156375 1.000000 -0.031250 +v 0.125000 0.875000 -0.031250 +v 0.125000 0.875000 -0.187500 +v 0.125000 1.000000 -0.031250 +v 0.187500 1.000000 -0.031250 +v 0.187500 1.000000 -0.187500 +v 0.187500 0.875000 -0.187500 +v 0.187500 0.875000 -0.031250 +v 0.125000 1.000000 0.031250 +v 0.125000 0.875000 0.031250 +v 0.125000 0.875000 0.187500 +v 0.187500 0.875000 0.187500 +v 0.187500 0.875000 0.031250 +v 0.187500 1.000000 0.031250 +v 0.187500 1.000000 0.187500 +v -0.187500 0.750000 0.187500 +v -0.187500 0.750000 -0.187500 +v -0.250000 0.625000 -0.250000 +v -0.250000 0.625000 0.250000 +v 0.250000 0.625000 0.250000 +v 0.250000 0.625000 0.187500 +v 0.250000 0.625000 -0.250000 +v 0.250000 0.625000 -0.187500 +v -0.187500 0.625000 -0.187500 +v -0.187500 0.625000 0.187500 +v -0.218750 0.750000 -0.218750 +v -0.218750 0.750000 0.218750 +v 0.218750 0.750000 0.218750 +v 0.218750 0.750000 -0.218750 +v -0.218750 0.562500 0.218750 +v 0.218750 0.562500 0.218750 +v 0.218750 0.562500 -0.218750 +v -0.218750 0.562500 -0.218750 +v -0.187500 0.562500 -0.187500 +v -0.187500 0.562500 0.187500 +v 0.187500 0.562500 0.187500 +v 0.187500 0.562500 -0.187500 +v -0.187500 0.062500 0.250000 +v 0.187500 0.062500 0.250000 +v 0.187500 0.062500 -0.250000 +v -0.187500 0.062500 -0.250000 +v -0.031250 1.187500 0.218750 +v 0.031250 1.187500 0.218750 +v -0.031250 1.187500 0.031250 +v 0.031250 1.187500 0.031250 +v -0.031250 1.812500 0.031250 +v -0.031250 1.812500 0.218750 +v 0.031250 1.812500 0.218750 +v 0.031250 1.812500 0.031250 +v -0.031250 1.187500 -0.031250 +v 0.031250 1.187500 -0.031250 +v -0.031250 1.187500 -0.218750 +v 0.031250 1.187500 -0.218750 +v -0.031250 1.812500 -0.218750 +v -0.031250 1.812500 -0.031250 +v 0.031250 1.812500 -0.031250 +v 0.031250 1.812500 -0.218750 +v -0.062500 0.000000 -0.062500 +v 0.437500 0.000000 -0.062500 +v -0.062500 0.000000 -0.187500 +v 0.437500 0.000000 -0.187500 +v -0.062500 0.125000 -0.187500 +v -0.062500 0.125000 -0.062500 +v 0.437500 0.125000 -0.062500 +v 0.437500 0.125000 -0.187500 +v 0.562500 0.000000 -0.062500 +v 0.562500 0.000000 -0.187500 +v 0.562500 0.312500 -0.062500 +v 0.562500 0.312500 -0.187500 +v -0.062500 0.000000 0.187500 +v 0.437500 0.000000 0.187500 +v -0.062500 0.000000 0.062500 +v 0.437500 0.000000 0.062500 +v -0.062500 0.125000 0.062500 +v -0.062500 0.125000 0.187500 +v 0.437500 0.125000 0.187500 +v 0.437500 0.125000 0.062500 +v 0.562500 0.000000 0.187500 +v 0.562500 0.000000 0.062500 +v 0.562500 0.312500 0.187500 +v 0.562500 0.312500 0.062500 +v -0.062500 0.562500 -0.099112 +v -0.062500 0.650888 -0.187500 +v -0.062500 0.208947 -0.452665 +v -0.062500 0.297335 -0.541053 +v 0.062500 0.562500 -0.099112 +v 0.062500 0.650888 -0.187500 +v 0.062500 0.208947 -0.452665 +v 0.062500 0.297335 -0.541053 +v -0.062500 0.562500 0.099112 +v -0.062500 0.650888 0.187500 +v -0.062500 0.208947 0.452665 +v -0.062500 0.297335 0.541053 +v 0.062500 0.562500 0.099112 +v 0.062500 0.650888 0.187500 +v 0.062500 0.208947 0.452665 +v 0.062500 0.297335 0.541053 +v 0.135000 0.859375 0.078125 +v 0.135000 0.765625 0.078125 +v 0.135000 0.859375 -0.078125 +v 0.135000 0.765625 -0.078125 +vt 0.166667 0.809524 +vt 0.333333 1.000000 +vt 0.166667 1.000000 +vt 0.166667 0.595238 +vt 0.187500 0.738095 +vt 0.000000 0.595238 +vt 0.000000 0.809524 +vt 0.333333 0.595238 +vt 0.500000 0.809524 +vt 0.333333 0.809524 +vt 0.312500 0.690476 +vt 0.312500 0.738095 +vt 0.166667 0.809524 +vt 0.166667 0.857143 +vt 0.062500 0.857143 +vt 0.187500 0.595238 +vt 0.187500 0.690476 +vt 0.395833 0.523810 +vt 0.416667 0.547619 +vt 0.395833 0.547619 +vt 0.447917 0.547619 +vt 0.500000 0.523810 +vt 0.500000 0.547619 +vt 0.312500 0.428571 +vt 0.333333 0.404762 +vt 0.437500 0.595238 +vt 0.416667 0.547619 +vt 0.437500 0.547619 +vt 0.187500 0.476190 +vt 0.312500 0.595238 +vt 0.500000 0.595238 +vt 0.447917 0.595238 +vt 0.395833 0.547619 +vt 0.416667 0.595238 +vt 0.395833 0.595238 +vt 0.333333 0.547619 +vt 0.385417 0.523810 +vt 0.385417 0.547619 +vt 0.385417 0.595238 +vt 0.333333 0.595238 +vt 0.479167 0.809524 +vt 0.437500 0.857143 +vt 0.333333 0.809524 +vt 0.312500 0.476190 +vt 0.500000 0.595238 +vt 0.666667 0.809524 +vt 0.291667 0.238095 +vt 0.145833 0.404762 +vt 0.145833 0.238095 +vt 0.145833 0.000000 +vt 0.291667 0.166667 +vt 0.145833 0.166667 +vt -0.000000 0.238095 +vt 0.437500 0.166667 +vt 0.437500 0.238095 +vt 0.583333 0.166667 +vt 0.583333 0.238095 +vt 0.833333 0.333333 +vt 0.708333 0.476190 +vt 0.708333 0.333333 +vt 0.687500 0.000000 +vt 0.854167 0.142857 +vt 0.687500 0.142857 +vt 0.833333 0.476190 +vt 0.687500 0.666667 +vt 0.541667 0.333333 +vt 1.000000 0.476190 +vt 0.354167 0.476190 +vt 0.437500 0.500000 +vt 0.354167 0.500000 +vt 0.354167 0.476190 +vt 0.437500 0.500000 +vt 0.354167 0.500000 +vt 0.458333 0.238095 +vt 0.437500 0.476190 +vt 0.437500 0.238095 +vt 0.354167 0.238095 +vt 0.333333 0.476190 +vt 0.333333 0.238095 +vt 0.427083 0.238095 +vt 0.364583 0.476190 +vt 0.364583 0.238095 +vt 0.531250 0.238095 +vt 0.468750 0.476190 +vt 0.468750 0.238095 +vt 0.458333 0.238095 +vt 0.437500 0.476190 +vt 0.437500 0.238095 +vt 0.354167 0.238095 +vt 0.333333 0.476190 +vt 0.333333 0.238095 +vt 0.427083 0.238095 +vt 0.364583 0.476190 +vt 0.364583 0.238095 +vt 0.531250 0.238095 +vt 0.468750 0.476190 +vt 0.468750 0.238095 +vt 0.791667 0.857143 +vt 0.833333 0.666667 +vt 0.833333 0.857143 +vt 0.708333 0.666667 +vt 0.750000 0.857143 +vt 0.708333 0.857143 +vt 0.750000 0.666667 +vt 0.791667 0.666667 +vt 0.666667 0.666667 +vt 0.666667 0.857143 +vt 0.833333 0.714286 +vt 0.875000 0.666667 +vt 0.875000 0.785714 +vt 0.708333 0.904762 +vt 0.750000 0.904762 +vt 0.916667 0.666667 +vt 0.875000 0.857143 +vt 0.916667 0.785714 +vt 0.916667 0.857143 +vt 0.916667 0.619048 +vt 0.875000 0.619048 +vt 0.958333 0.714286 +vt 0.958333 0.666667 +vt 0.833333 0.857143 +vt 0.791667 0.666667 +vt 0.791667 0.857143 +vt 0.750000 0.666667 +vt 0.708333 0.857143 +vt 0.750000 0.857143 +vt 0.666667 0.857143 +vt 0.708333 0.666667 +vt 0.666667 0.666667 +vt 0.958333 0.714286 +vt 0.916667 0.666667 +vt 0.916667 0.785714 +vt 0.750000 0.904762 +vt 0.708333 0.904762 +vt 0.875000 0.666667 +vt 0.916667 0.857143 +vt 0.875000 0.785714 +vt 0.875000 0.857143 +vt 0.875000 0.619048 +vt 0.916667 0.619048 +vt 0.833333 0.714286 +vt 0.833333 0.666667 +vt 0.125000 0.595238 +vt 0.166667 0.404762 +vt 0.166667 0.595238 +vt 0.083333 0.357143 +vt 0.041667 0.404762 +vt 0.041667 0.357143 +vt 0.083333 0.404762 +vt 0.041667 0.595238 +vt -0.000000 0.595238 +vt -0.000000 0.404762 +vt 0.125000 0.404762 +vt 0.083333 0.595238 +vt 0.166667 0.404762 +vt 0.125000 0.595238 +vt 0.166667 0.595238 +vt 0.041667 0.404762 +vt 0.083333 0.357143 +vt 0.041667 0.357143 +vt 0.041667 0.595238 +vt 0.083333 0.404762 +vt -0.000000 0.595238 +vt -0.000000 0.404762 +vt 0.083333 0.595238 +vt 0.125000 0.404762 +vt 0.187500 0.428571 +vt 0.166667 0.404762 +vt 0.500000 0.523810 +vt 0.604167 0.595238 +vt 0.500000 0.595238 +vt 0.187500 0.595238 +vt 0.062500 0.952381 +vt 0.020833 0.952381 +vt 0.020833 0.809524 +vt 0.416667 0.523810 +vt 0.447917 0.523810 +vt 0.312500 0.595238 +vt 0.416667 0.595238 +vt 0.416667 0.547619 +vt 0.333333 0.523810 +vt 0.479167 0.952381 +vt 0.437500 0.952381 +vt 0.333333 0.857143 +vt 0.666667 0.595238 +vt 0.291667 0.404762 +vt 0.291667 0.000000 +vt 0.000000 0.166667 +vt 0.854167 0.000000 +vt 0.854167 0.666667 +vt 0.541667 0.476190 +vt 1.000000 0.333333 +vt 0.458333 0.476190 +vt 0.427083 0.476190 +vt 0.531250 0.476190 +vt 0.458333 0.476190 +vt 0.427083 0.476190 +vt 0.531250 0.476190 +vt 0.958333 0.666667 +vt 0.604167 0.523810 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.1240 0.9923 +vn 0.0000 0.1240 -0.9923 +vn -0.8321 0.5547 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +s off +f 2/1/1 3/2/1 1/3/1 +f 33/4/2 5/5/2 2/1/2 +f 32/6/3 2/1/3 1/7/3 +f 35/8/4 3/9/4 4/10/4 +f 5/5/5 10/11/5 6/12/5 +f 38/13/4 29/14/4 7/15/4 +f 7/16/2 10/11/2 9/17/2 +f 12/18/2 14/19/2 13/20/2 +f 21/21/5 16/22/5 20/23/5 +f 35/8/5 37/24/5 31/25/5 +f 18/26/3 15/27/3 21/28/3 +f 29/29/5 8/30/5 7/16/5 +f 21/21/2 19/31/2 18/32/2 +f 26/33/4 22/34/4 27/35/4 +f 25/36/5 23/37/5 26/38/5 +f 25/36/2 27/39/2 28/40/2 +f 36/41/3 8/42/3 37/43/3 +f 29/29/2 37/24/2 30/44/2 +f 31/45/6 1/46/6 3/9/6 +f 42/47/1 40/48/1 41/49/1 +f 43/50/5 45/51/5 44/52/5 +f 40/53/3 44/52/3 41/49/3 +f 41/49/2 45/51/2 42/47/2 +f 42/47/4 46/54/4 39/55/4 +f 39/55/6 43/56/6 40/57/6 +f 50/58/1 48/59/1 49/60/1 +f 51/61/5 53/62/5 52/63/5 +f 47/64/6 51/65/6 48/59/6 +f 48/59/7 52/66/7 49/60/7 +f 49/60/2 53/62/2 50/58/2 +f 50/58/8 54/67/8 47/64/8 +f 69/68/1 67/69/1 68/70/1 +f 61/71/1 59/72/1 60/73/1 +f 57/74/4 62/75/4 58/76/4 +f 56/77/3 60/78/3 55/79/3 +f 58/80/2 61/81/2 56/82/2 +f 55/83/6 59/84/6 57/85/6 +f 65/86/4 70/87/4 66/88/4 +f 64/89/3 68/90/3 63/91/3 +f 66/92/2 69/93/2 64/94/2 +f 63/95/6 67/96/6 65/97/6 +f 73/98/5 72/99/5 71/100/5 +f 77/101/1 75/102/1 76/103/1 +f 73/98/4 78/104/4 74/105/4 +f 72/106/3 76/103/3 71/107/3 +f 77/108/3 79/109/3 81/110/3 +f 71/111/6 75/102/6 73/112/6 +f 80/113/2 81/110/2 79/109/2 +f 77/114/9 82/115/9 78/116/9 +f 74/117/5 79/109/5 72/118/5 +f 78/119/4 80/113/4 74/120/4 +f 85/121/5 84/122/5 83/123/5 +f 89/124/1 87/125/1 88/126/1 +f 85/127/4 90/128/4 86/129/4 +f 84/122/3 88/126/3 83/123/3 +f 89/130/3 91/131/3 93/132/3 +f 83/133/6 87/125/6 85/134/6 +f 92/135/2 93/132/2 91/131/2 +f 89/136/9 94/137/9 90/138/9 +f 86/139/5 91/131/5 84/140/5 +f 90/141/4 92/135/4 86/142/4 +f 96/143/6 97/144/6 95/145/6 +f 98/146/10 101/147/10 97/148/10 +f 102/149/2 99/150/2 101/147/2 +f 101/147/11 95/151/11 97/152/11 +f 98/153/12 100/154/12 102/149/12 +f 105/155/6 104/156/6 103/157/6 +f 109/158/11 106/159/11 105/160/11 +f 107/161/2 110/162/2 109/158/2 +f 103/163/10 109/158/10 105/164/10 +f 108/165/13 106/166/13 110/162/13 +f 6/12/2 2/1/2 5/5/2 +f 6/12/2 35/8/2 4/10/2 +f 38/167/5 33/4/5 32/168/5 +f 38/167/5 31/25/5 37/24/5 +f 112/169/2 113/170/2 111/171/2 +f 2/1/1 4/10/1 3/2/1 +f 33/4/2 34/172/2 5/5/2 +f 32/6/3 33/4/3 2/1/3 +f 35/8/4 31/45/4 3/9/4 +f 5/5/5 9/17/5 10/11/5 +f 9/173/4 5/174/4 7/15/4 +f 5/174/4 34/175/4 7/15/4 +f 34/175/4 38/13/4 7/15/4 +f 7/16/2 8/30/2 10/11/2 +f 12/18/2 11/176/2 14/19/2 +f 21/21/5 15/177/5 16/22/5 +f 35/8/5 36/178/5 37/24/5 +f 18/26/3 17/179/3 15/27/3 +f 29/29/5 30/44/5 8/30/5 +f 21/21/2 20/23/2 19/31/2 +f 26/33/4 23/180/4 22/34/4 +f 25/36/5 24/181/5 23/37/5 +f 25/36/2 26/38/2 27/39/2 +f 36/41/3 6/182/3 8/42/3 +f 6/182/3 10/183/3 8/42/3 +f 8/42/3 30/184/3 37/43/3 +f 29/29/2 38/167/2 37/24/2 +f 31/45/6 32/185/6 1/46/6 +f 42/47/1 39/186/1 40/48/1 +f 43/50/5 46/187/5 45/51/5 +f 40/53/3 43/188/3 44/52/3 +f 41/49/2 44/52/2 45/51/2 +f 42/47/4 45/51/4 46/54/4 +f 39/55/6 46/54/6 43/56/6 +f 50/58/1 47/64/1 48/59/1 +f 51/61/5 54/189/5 53/62/5 +f 47/64/6 54/190/6 51/65/6 +f 48/59/7 51/191/7 52/66/7 +f 49/60/2 52/63/2 53/62/2 +f 50/58/8 53/192/8 54/67/8 +f 69/68/1 70/87/1 67/69/1 +f 61/71/1 62/75/1 59/72/1 +f 57/74/4 59/193/4 62/75/4 +f 56/77/3 61/71/3 60/78/3 +f 58/80/2 62/194/2 61/81/2 +f 55/83/6 60/195/6 59/84/6 +f 65/86/4 67/196/4 70/87/4 +f 64/89/3 69/68/3 68/90/3 +f 66/92/2 70/197/2 69/93/2 +f 63/95/6 68/198/6 67/96/6 +f 73/98/5 74/105/5 72/99/5 +f 77/101/1 78/104/1 75/102/1 +f 73/98/4 75/102/4 78/104/4 +f 72/106/3 77/101/3 76/103/3 +f 77/108/3 72/99/3 79/109/3 +f 71/111/6 76/103/6 75/102/6 +f 80/113/2 82/115/2 81/110/2 +f 77/114/9 81/110/9 82/115/9 +f 74/117/5 80/113/5 79/109/5 +f 78/119/4 82/115/4 80/113/4 +f 85/121/5 86/142/5 84/122/5 +f 89/124/1 90/128/1 87/125/1 +f 85/127/4 87/125/4 90/128/4 +f 84/122/3 89/124/3 88/126/3 +f 89/130/3 84/199/3 91/131/3 +f 83/133/6 88/126/6 87/125/6 +f 92/135/2 94/137/2 93/132/2 +f 89/136/9 93/132/9 94/137/9 +f 86/139/5 92/135/5 91/131/5 +f 90/141/4 94/137/4 92/135/4 +f 96/143/6 98/153/6 97/144/6 +f 98/146/10 102/149/10 101/147/10 +f 102/149/2 100/154/2 99/150/2 +f 101/147/11 99/150/11 95/151/11 +f 98/153/12 96/143/12 100/154/12 +f 105/155/6 106/166/6 104/156/6 +f 109/158/11 110/162/11 106/159/11 +f 107/161/2 108/165/2 110/162/2 +f 103/163/10 107/161/10 109/158/10 +f 108/165/13 104/156/13 106/166/13 +f 6/12/2 4/10/2 2/1/2 +f 6/12/2 36/178/2 35/8/2 +f 38/167/5 34/172/5 33/4/5 +f 38/167/5 32/168/5 31/25/5 +f 112/169/2 114/200/2 113/170/2 diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 001fbd52e..b9fe59269 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -64,6 +64,7 @@ "block.fusionReactorRunning": {"category": "block", "sounds": [{"name": "block/fusionReactorSpin", "stream": false}]}, "block.fel": {"category": "block", "sounds": [{"name": "block/fel", "stream": false}]}, "block.hephaestusRunning": {"category": "block", "sounds": [{"name": "block/hephaestusRunning", "stream": false}]}, + "block.squeakyToy": {"category": "block", "sounds": [{"name": "block/squeakyToy", "stream": false}]}, "door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]}, "door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]}, diff --git a/src/main/resources/assets/hbm/sounds/block/squeakyToy.ogg b/src/main/resources/assets/hbm/sounds/block/squeakyToy.ogg new file mode 100644 index 000000000..fe6105266 Binary files /dev/null and b/src/main/resources/assets/hbm/sounds/block/squeakyToy.ogg differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel.png deleted file mode 100644 index da38dd7e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png deleted file mode 100644 index 875ea1fba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_diesel.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png deleted file mode 100644 index 28d9805e7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_mines.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png deleted file mode 100644 index 54a3215ee..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_quake.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png b/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png deleted file mode 100644 index 019d2287b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_barrel_waste.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png deleted file mode 100644 index 7c97d5410..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_faultline.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png b/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png deleted file mode 100644 index 54b05ecbb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ammo_grenade_inferno.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_steam.png b/src/main/resources/assets/hbm/textures/items/battery_steam.png deleted file mode 100644 index 880f1e21e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_steam.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_steam_large.png b/src/main/resources/assets/hbm/textures/items/battery_steam_large.png deleted file mode 100644 index c275da4ef..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_steam_large.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_su.png b/src/main/resources/assets/hbm/textures/items/battery_su.png deleted file mode 100644 index 82440d819..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_su.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/battery_su_l.png b/src/main/resources/assets/hbm/textures/items/battery_su_l.png deleted file mode 100644 index e78387cf0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/battery_su_l.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment.png new file mode 100644 index 000000000..fd0c6f45d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png new file mode 100644 index 000000000..5449f0a71 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bedrock_ore_fragment_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit.png b/src/main/resources/assets/hbm/textures/items/circuit.png index a62713b28..abf761193 100644 Binary files a/src/main/resources/assets/hbm/textures/items/circuit.png and b/src/main/resources/assets/hbm/textures/items/circuit.png differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png b/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png deleted file mode 100644 index 9579bd9dd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_aluminium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png deleted file mode 100644 index 142a7f4a4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_arsenic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png deleted file mode 100644 index 55b308cf7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_arsenic_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png b/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png deleted file mode 100644 index 0af4c7d3c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_bismuth.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png deleted file mode 100644 index 07a458215..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_bismuth_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_copper.png deleted file mode 100644 index 67442c881..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_copper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_gold.png b/src/main/resources/assets/hbm/textures/items/circuit_gold.png deleted file mode 100644 index 1ea35bc0d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_gold.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_raw.png b/src/main/resources/assets/hbm/textures/items/circuit_raw.png deleted file mode 100644 index 88234e2e3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_raw.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png b/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png deleted file mode 100644 index 8a892099c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_red_copper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_reix.png b/src/main/resources/assets/hbm/textures/items/circuit_reix.png deleted file mode 100644 index 43f778ad5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_reix.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png b/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png deleted file mode 100644 index 27c3cbcf9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png b/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png deleted file mode 100644 index 799f5d83d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/circuit_simple_overlay.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/clay_ball.png b/src/main/resources/assets/hbm/textures/items/clay_ball.png deleted file mode 100644 index 5103d6cc4..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/clay_ball.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke1.png b/src/main/resources/assets/hbm/textures/items/d_smoke1.png deleted file mode 100644 index e7f3601e5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke2.png b/src/main/resources/assets/hbm/textures/items/d_smoke2.png deleted file mode 100644 index 7e01c301d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke3.png b/src/main/resources/assets/hbm/textures/items/d_smoke3.png deleted file mode 100644 index 7c36fd965..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke4.png b/src/main/resources/assets/hbm/textures/items/d_smoke4.png deleted file mode 100644 index bc74f9813..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke5.png b/src/main/resources/assets/hbm/textures/items/d_smoke5.png deleted file mode 100644 index cf71763f9..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke6.png b/src/main/resources/assets/hbm/textures/items/d_smoke6.png deleted file mode 100644 index 78d1a84b1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke7.png b/src/main/resources/assets/hbm/textures/items/d_smoke7.png deleted file mode 100644 index 6f0f6274a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/d_smoke8.png b/src/main/resources/assets/hbm/textures/items/d_smoke8.png deleted file mode 100644 index cd253ab4d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/d_smoke8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/designator_range.png b/src/main/resources/assets/hbm/textures/items/designator_range.png deleted file mode 100644 index 8521a8347..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/designator_range.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png b/src/main/resources/assets/hbm/textures/items/discharge.png deleted file mode 100644 index 0a222d2ec..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/discharge.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta b/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta deleted file mode 100644 index dd1bedb12..000000000 --- a/src/main/resources/assets/hbm/textures/items/discharge.png.mcmeta +++ /dev/null @@ -1,3 +0,0 @@ -{ - "animation": {} -} diff --git a/src/main/resources/assets/hbm/textures/items/empblast.png b/src/main/resources/assets/hbm/textures/items/empblast.png deleted file mode 100644 index 7db45b035..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/empblast.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/essence_unstable.png b/src/main/resources/assets/hbm/textures/items/essence_unstable.png deleted file mode 100644 index 5adb5f7f6..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/essence_unstable.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/essence_uv.png b/src/main/resources/assets/hbm/textures/items/essence_uv.png deleted file mode 100644 index 145752b3a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/essence_uv.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png b/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png deleted file mode 100644 index e50299a3e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/euphemium_stopper.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png b/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png deleted file mode 100644 index 0ae9ed3eb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/factory_core_advanced.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png b/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png deleted file mode 100644 index 40b868a01..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/factory_core_titanium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/grenade_cats.png b/src/main/resources/assets/hbm/textures/items/grenade_cats.png deleted file mode 100644 index e800e9e77..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/grenade_cats.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/lithium6.png b/src/main/resources/assets/hbm/textures/items/lithium6.png deleted file mode 100644 index cdc066bba..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/lithium6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png b/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png deleted file mode 100644 index edca5bc1e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_camo.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png b/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png deleted file mode 100644 index 1e0c7e19a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_desert.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png b/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png deleted file mode 100644 index 0fc31ee9a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_flames.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png b/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png deleted file mode 100644 index 373912caf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_manly_pink.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png b/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png deleted file mode 100644 index b83791df5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_metal.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png b/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png deleted file mode 100644 index 0b10d49d2..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_orange_insulation.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png b/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png deleted file mode 100644 index 8e5fc15c7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_sleek.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png deleted file mode 100644 index 86bb04eee..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_glory.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png b/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png deleted file mode 100644 index eede778a5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/missile_skin_soviet_stank.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_advanced.png b/src/main/resources/assets/hbm/textures/items/pellet_advanced.png deleted file mode 100644 index b73babcbf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_advanced.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png b/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png deleted file mode 100644 index a5e2f78a0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_beryllium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_hes.png b/src/main/resources/assets/hbm/textures/items/pellet_hes.png deleted file mode 100644 index 02f8ba8bc..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_hes.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_lead.png b/src/main/resources/assets/hbm/textures/items/pellet_lead.png deleted file mode 100644 index 1a647b6a3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_lead.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_les.png b/src/main/resources/assets/hbm/textures/items/pellet_les.png deleted file mode 100644 index a7cec73fd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_les.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_mes.png b/src/main/resources/assets/hbm/textures/items/pellet_mes.png deleted file mode 100644 index fae0a33ed..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_mes.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png b/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png deleted file mode 100644 index 9b5ac03ce..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_neptunium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png b/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png deleted file mode 100644 index 511125d6d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_schrabidium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellets_mercury.png b/src/main/resources/assets/hbm/textures/items/pellets_mercury.png deleted file mode 100644 index 939fcec48..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellets_mercury.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png b/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png deleted file mode 100644 index 99931efa5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/pellets_meteorite.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/redstone_depleted.png b/src/main/resources/assets/hbm/textures/items/redstone_depleted.png deleted file mode 100644 index 1cc99895c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/redstone_depleted.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_australium.png b/src/main/resources/assets/hbm/textures/items/rod_australium.png deleted file mode 100644 index 34e5dc5a5..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_australium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_coolant.png deleted file mode 100644 index aa4ae7e48..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_daffergon.png b/src/main/resources/assets/hbm/textures/items/rod_daffergon.png deleted file mode 100644 index 80e538b63..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_daffergon.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png deleted file mode 100644 index 9f5b38305..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_dual_water.png b/src/main/resources/assets/hbm/textures/items/rod_dual_water.png deleted file mode 100644 index e29b72035..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_dual_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png b/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png deleted file mode 100644 index e5ca3d6f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_coolant.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_quad_water.png b/src/main/resources/assets/hbm/textures/items/rod_quad_water.png deleted file mode 100644 index 10b021ebb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_quad_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_reiium.png b/src/main/resources/assets/hbm/textures/items/rod_reiium.png deleted file mode 100644 index a7a347814..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_reiium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png b/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png deleted file mode 100644 index 1afe4b705..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_unobtainium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_verticium.png b/src/main/resources/assets/hbm/textures/items/rod_verticium.png deleted file mode 100644 index a44e58b90..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_verticium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_water.png b/src/main/resources/assets/hbm/textures/items/rod_water.png deleted file mode 100644 index ebb15628a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_water.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/rod_weidanium.png b/src/main/resources/assets/hbm/textures/items/rod_weidanium.png deleted file mode 100644 index c691f25f3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/rod_weidanium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke1.png b/src/main/resources/assets/hbm/textures/items/smoke1.png deleted file mode 100644 index 880c3cd75..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke2.png b/src/main/resources/assets/hbm/textures/items/smoke2.png deleted file mode 100644 index 013941568..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke3.png b/src/main/resources/assets/hbm/textures/items/smoke3.png deleted file mode 100644 index 44045bc03..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke3.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke4.png b/src/main/resources/assets/hbm/textures/items/smoke4.png deleted file mode 100644 index 32b25061a..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke4.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke5.png b/src/main/resources/assets/hbm/textures/items/smoke5.png deleted file mode 100644 index c50e2955e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke5.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke6.png b/src/main/resources/assets/hbm/textures/items/smoke6.png deleted file mode 100644 index eed05375c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke6.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke7.png b/src/main/resources/assets/hbm/textures/items/smoke7.png deleted file mode 100644 index ffaa1c538..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke7.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/smoke8.png b/src/main/resources/assets/hbm/textures/items/smoke8.png deleted file mode 100644 index 95239d7d7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/smoke8.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png b/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png deleted file mode 100644 index 7521f2a9b..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/upgrade_template_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/void.png b/src/main/resources/assets/hbm/textures/items/void.png deleted file mode 100644 index ea2166761..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/void.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/void_anim.png b/src/main/resources/assets/hbm/textures/items/void_anim.png deleted file mode 100644 index da3efcedd..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/void_anim.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png b/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png deleted file mode 100644 index 48f8dfd97..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_advanced_alloy_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png b/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png deleted file mode 100644 index 3d2417498..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_aluminium_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_copper_new.png b/src/main/resources/assets/hbm/textures/items/wire_copper_new.png deleted file mode 100644 index 33dd16888..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_copper_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_gold_new.png b/src/main/resources/assets/hbm/textures/items/wire_gold_new.png deleted file mode 100644 index de76cb172..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_gold_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png b/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png deleted file mode 100644 index 0b8c87d4e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_magnetized_tungsten_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png b/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png deleted file mode 100644 index 19eecd75e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_red_copper_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png b/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png deleted file mode 100644 index 15558c3c8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_schrabidium_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png b/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png deleted file mode 100644 index 2c21fc45c..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/wire_tungsten_new.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/xanax.png b/src/main/resources/assets/hbm/textures/items/xanax.png deleted file mode 100644 index 4c3759188..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/xanax.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/horse/numbernine.png b/src/main/resources/assets/hbm/textures/models/horse/numbernine.png new file mode 100644 index 000000000..5f82142e0 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/horse/numbernine.png differ diff --git a/src/main/resources/assets/hbm/textures/models/trinkets/yomi.png b/src/main/resources/assets/hbm/textures/models/trinkets/yomi.png new file mode 100644 index 000000000..03acaa3ed Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/trinkets/yomi.png differ diff --git a/src/main/resources/assets/hbm/textures/models/weapons/uzi.png b/src/main/resources/assets/hbm/textures/models/weapons/uzi.png new file mode 100644 index 000000000..32c59127c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/weapons/uzi.png differ