diff --git a/changelog b/changelog index a05f15deed..ad05a57f2f 100644 --- a/changelog +++ b/changelog @@ -6,18 +6,22 @@ * Spills fluid, allowing to void up to 1.000mB per tick * Might slightly alter the landscape, depending on whether the fluid was poisonous * Viscous, flammable liquids cause oil spill blocks to appear + * Not all liquids have the appropriate pollution stats yet, the system is still subject to change ## Changed * After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. * And this is why we can't ever have anything nice * Rebalanced glyphids * We'll see how it goes + * Still prone to changes, there's still a few inconsistencies and some behavior has barely been tested it all, but I have consulted the almighty spreadsheet and it said "yeah it ok" * Did some spring cleaning * Removed cloud residue (looked horrible, allowed for weird dupes and made no sense overall) * Bottlecap blocks now use a single block ID and metadata instead of using one ID per type. This change however will delete all existing bottlecap blocks in the world * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) - * Finally removed the deaerator + * Finally removed the deaerator and the large shredder * Removed some of the ancient test blocks that haven't been needed in about 8 years + * Removed all the siege blocks, since siege mode will never be finished anyway + * Removed reinforced niter * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway * Retextured the laser detonator to look more like the old detonator, but keeping the 3D model * Bedrock ores can now be customized in creative mode. Using a drillbit sets the tier, a fluid container sets the borefluid requirement and any other item sets the resource. @@ -41,6 +45,9 @@ * The cable model has been simplified, being only a single face instead of three faces stuck inside each other at weird angles * Cables now sag slightly more at long ranges * There are now configs for toggling the startup message as well as the guidebook +* Cybercrab spawners will only start spawning as soon as a player is within 25 blocks of the spawner +* Improved inventory shift-clicking for the FEL, assembler, chemplant, large mining drill, gas centrifuge, shredder and turbofan +* Updated chinese localization ## Fixed * WarTec should now be compatible again @@ -55,3 +62,5 @@ * Fixed fog caching causing weird behavior with the sky color change in response to crater biomes (or lack thereof) * Fixed "F1 for help" keybind not working on non-standard inventories such as the NEI item list * Fixed pylon wire rendering having incorrect corrdinates for brightness checks +* Fixed dupe caused by shift clicking certain slots in the fusion reactor +* Fixed snowglobe rendering lighting setup leak causing blocks rendered after them in inventory to not have correct lighting diff --git a/gradle.properties b/gradle.properties index 6cf1c03a57..fc5237b73f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4895 +mod_build_number=4914 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f1cbc04caa..ff23931473 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -12,10 +12,6 @@ import com.hbm.blocks.machine.rbmk.*; import com.hbm.blocks.network.*; import com.hbm.blocks.rail.*; -import com.hbm.blocks.siege.SiegeCircuit; -import com.hbm.blocks.siege.SiegeHole; -import com.hbm.blocks.siege.SiegeInternal; -import com.hbm.blocks.siege.SiegeShield; import com.hbm.blocks.test.*; import com.hbm.blocks.turret.*; import com.hbm.items.block.*; @@ -190,7 +186,6 @@ public static void mainRegistry() public static Block block_titanium; public static Block block_sulfur; public static Block block_niter; - public static Block block_niter_reinforced; public static Block block_copper; public static Block block_red_copper; public static Block block_tungsten; @@ -386,12 +381,6 @@ public static void mainRegistry() public static Block tile_lab_cracked; public static Block tile_lab_broken; - public static Block siege_shield; - public static Block siege_internal; - public static Block siege_circuit; - public static Block siege_emergency; - public static Block siege_hole; - public static Block block_meteor; public static Block block_meteor_cobble; public static Block block_meteor_broken; @@ -955,9 +944,6 @@ public static void mainRegistry() public static Block machine_shredder; - public static Block machine_shredder_large; - public static final int guiID_machine_shredder_large = 76; - public static Block machine_teleporter; public static Block teleanchor; public static Block field_disturber; @@ -1414,7 +1400,6 @@ private static void initializeBlock() { block_titanium = new BlockBeaconable(Material.iron).setBlockName("block_titanium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(50.0F).setBlockTextureName(RefStrings.MODID + ":block_titanium"); block_sulfur = new BlockBeaconable(Material.iron).setBlockName("block_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_sulfur"); block_niter = new BlockBeaconable(Material.iron).setBlockName("block_niter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_niter"); - block_niter_reinforced = new BlockBeaconable(Material.iron).setBlockName("block_niter_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":block_niter_reinforced"); block_copper = new BlockBeaconable(Material.iron).setBlockName("block_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_copper"); block_red_copper = new BlockBeaconable(Material.iron).setBlockName("block_red_copper").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(25.0F).setBlockTextureName(RefStrings.MODID + ":block_red_copper"); block_tungsten = new BlockBeaconable(Material.iron).setBlockName("block_tungsten").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":block_tungsten"); @@ -1608,12 +1593,6 @@ private static void initializeBlock() { tile_lab_cracked = new BlockOutgas(Material.rock, false, 5, true).setBlockName("tile_lab_cracked").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_cracked"); tile_lab_broken = new BlockOutgas(Material.rock, true, 5, true).setBlockName("tile_lab_broken").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(1.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":tile_lab_broken"); - siege_shield = new SiegeShield(Material.iron).setBlockName("siege_shield").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F); - siege_internal = new SiegeInternal(Material.iron).setBlockName("siege_internal").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(60.0F); - siege_circuit = new SiegeCircuit(Material.iron).setBlockName("siege_circuit").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(10.0F); - siege_emergency = new BlockBase(Material.iron).setBlockName("siege_emergency").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(20000.0F).setBlockTextureName(RefStrings.MODID + ":siege_emergency"); - siege_hole = new SiegeHole(Material.iron).setBlockName("siege_hole").setCreativeTab(MainRegistry.blockTab).setBlockUnbreakable().setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":siege_hole"); - block_meteor = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor"); block_meteor_cobble = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_cobble"); block_meteor_broken = new BlockOre(Material.rock).noFortune().setBlockName("block_meteor_broken").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(360.0F).setBlockTextureName(RefStrings.MODID + ":meteor_crushed"); @@ -1922,7 +1901,6 @@ private static void initializeBlock() { machine_combustion_engine = new MachineCombustionEngine().setBlockName("machine_combustion_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_shredder = new MachineShredder(Material.iron).setBlockName("machine_shredder").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); - machine_shredder_large = new MachineShredderLarge(Material.iron).setBlockName("machine_shredder_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":code"); machine_teleporter = new MachineTeleporter(Material.iron).setBlockName("machine_teleporter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); teleanchor = new MachineTeleanchor().setBlockName("teleanchor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -2276,7 +2254,7 @@ private static void initializeBlock() { machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium"); reactor_research = new ReactorResearch(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null); machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off"); @@ -2600,7 +2578,6 @@ private static void registerBlock() { GameRegistry.registerBlock(block_titanium, block_titanium.getUnlocalizedName()); GameRegistry.registerBlock(block_sulfur, block_sulfur.getUnlocalizedName()); GameRegistry.registerBlock(block_niter, block_niter.getUnlocalizedName()); - GameRegistry.registerBlock(block_niter_reinforced, block_niter_reinforced.getUnlocalizedName()); GameRegistry.registerBlock(block_copper, block_copper.getUnlocalizedName()); GameRegistry.registerBlock(block_red_copper, block_red_copper.getUnlocalizedName()); GameRegistry.registerBlock(block_advanced_alloy, block_advanced_alloy.getUnlocalizedName()); @@ -2809,13 +2786,6 @@ private static void registerBlock() { //Charger GameRegistry.registerBlock(charger, charger.getUnlocalizedName()); - //Siege blocks - GameRegistry.registerBlock(siege_shield, ItemBlockLore.class, siege_shield.getUnlocalizedName()); - GameRegistry.registerBlock(siege_internal, ItemBlockLore.class, siege_internal.getUnlocalizedName()); - GameRegistry.registerBlock(siege_circuit, ItemBlockLore.class, siege_circuit.getUnlocalizedName()); - GameRegistry.registerBlock(siege_emergency, siege_emergency.getUnlocalizedName()); - GameRegistry.registerBlock(siege_hole, siege_hole.getUnlocalizedName()); - //Decoration Blocks GameRegistry.registerBlock(block_meteor, block_meteor.getUnlocalizedName()); GameRegistry.registerBlock(block_meteor_cobble, block_meteor_cobble.getUnlocalizedName()); @@ -3338,7 +3308,6 @@ private static void registerBlock() { GameRegistry.registerBlock(machine_waste_drum, machine_waste_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_storage_drum, machine_storage_drum.getUnlocalizedName()); GameRegistry.registerBlock(machine_shredder, machine_shredder.getUnlocalizedName()); - GameRegistry.registerBlock(machine_shredder_large, machine_shredder_large.getUnlocalizedName()); register(machine_well); register(machine_pumpjack); register(machine_fracking_tower); diff --git a/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java b/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java deleted file mode 100644 index d66055dd3b..0000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineShredderLarge.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.tileentity.machine.TileEntityMachineShredderLarge; - -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class MachineShredderLarge extends BlockContainer { - - public MachineShredderLarge(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineShredderLarge(); - } - - @Override - public int getRenderType(){ - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeBase.java b/src/main/java/com/hbm/blocks/siege/SiegeBase.java deleted file mode 100644 index 6a4d4fa23e..0000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeBase.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.hbm.blocks.siege; - -import com.hbm.blocks.BlockBase; -import com.hbm.blocks.ModBlocks; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public abstract class SiegeBase extends BlockBase { - - private IIcon[] icons; - - public SiegeBase(Material material, int icons) { - super(material); - this.setTickRandomly(true); - this.icons = new IIcon[icons]; - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - - int h = x; - h *= 433 + y; - h *= 1709 + z; - h = Math.abs(h); - - h = (h >> 6); - - return this.getIcon(h % this.icons.length, 0); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta) { - return icons[side % this.icons.length]; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister reg) { - - for(int i = 0; i < icons.length; i++) { - icons[i] = reg.registerIcon(this.getTextureName() + "_" + i); - } - } - - protected boolean solidNeighbors(World world, int x, int y, int z) { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - if(b.getMaterial() == Material.air || !b.isNormalCube()) - return false; - } - - return true; - } - - protected boolean shouldReplace(Block b) { - return b != ModBlocks.siege_circuit && b != ModBlocks.siege_internal && b != ModBlocks.siege_shield; - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java b/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java deleted file mode 100644 index 5b6db18d0d..0000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeCircuit.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class SiegeCircuit extends SiegeBase { - - public SiegeCircuit(Material material) { - super(material, 2); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - if(!this.solidNeighbors(world, x, y, z)) { - world.setBlock(x, y, z, ModBlocks.siege_emergency); - } - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeHole.java b/src/main/java/com/hbm/blocks/siege/SiegeHole.java deleted file mode 100644 index e4edcbe7a3..0000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeHole.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.List; -import java.util.Random; - -import com.hbm.blocks.BlockBase; -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.handler.SiegeOrchestrator; - -import net.minecraft.block.material.Material; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -public class SiegeHole extends BlockBase { - - public SiegeHole(Material material) { - super(material); - } - - @Override - public void onBlockAdded(World world, int x, int y, int z) { - super.onBlockAdded(world, x, y, z); - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - } - - @Override - public int tickRate(World world) { - return 90 + world.rand.nextInt(20); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - - if(SiegeOrchestrator.spawnThresholdEnabled(world) && SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getSpawnThreshold(world)) - return; - - List list = world.getEntitiesWithinAABB(EntitySiegeZombie.class, AxisAlignedBB.getBoundingBox(x - 5, y - 2, z - 5, x + 6, y + 3, z + 6)); - - if(list.size() < 2) { - EntitySiegeZombie zomb = new EntitySiegeZombie(world); - zomb.setPositionAndRotation(x + 0.5, y + 1, z + 0.5, 0.0F, 0.0F); - zomb.onSpawnWithEgg(null); - world.spawnEntityInWorld(zomb); - } - } -} diff --git a/src/main/java/com/hbm/blocks/siege/SiegeInternal.java b/src/main/java/com/hbm/blocks/siege/SiegeInternal.java deleted file mode 100644 index 669d42497f..0000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeInternal.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class SiegeInternal extends SiegeBase { - - public SiegeInternal(Material material) { - super(material, 2); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - //if exposed to air, harden - if(!this.solidNeighbors(world, x, y, z)) { - world.setBlock(x, y, z, ModBlocks.siege_emergency); - return; - } - - int succ = 0; - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - //if the bordering block is either an internal or a circuit, increment - if(b == this || b == ModBlocks.siege_circuit) { - succ++; - } - } - - //all neighbors are internals or circuits? turn into a circuit - if(succ == 6) - world.setBlock(x, y, z, ModBlocks.siege_circuit); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/siege/SiegeShield.java b/src/main/java/com/hbm/blocks/siege/SiegeShield.java deleted file mode 100644 index 3080671bb0..0000000000 --- a/src/main/java/com/hbm/blocks/siege/SiegeShield.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hbm.blocks.siege; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.handler.SiegeOrchestrator; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class SiegeShield extends SiegeBase { - - public SiegeShield(Material material) { - super(material, 4); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - - if(SiegeOrchestrator.siegeMobCount > SiegeOrchestrator.getExpansionThreshold(world) || !SiegeOrchestrator.enableBaseSpawning(world) || !SiegeOrchestrator.siegeEnabled(world)) - return; - - int succ = 0; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - Block b = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - - //if the block is already a siege block, do nothing and increment the success counter - if(!this.shouldReplace(b)) { - succ++; - - //...if not, check if a new shield can be placed, and try to do so - } else if(this.solidNeighbors(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ)) { - succ++; - world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, this); - } - } - - //if all the blocks are siege blocks now, replace with an internal - if(succ == 6) { - world.setBlock(x, y, z, ModBlocks.siege_internal); - - if(rand.nextInt(10) == 0) { - Block above = world.getBlock(x, y + 2, z); - Block surface = world.getBlock(x, y + 3, z); - - //if the block above the upper shield is solid and *above that* is air, place a hole - if(above.getMaterial() != Material.air && above.isNormalCube() && (surface.getMaterial() == Material.air || !surface.isNormalCube())) { - world.setBlock(x, y + 2, z, ModBlocks.siege_hole); - } - } - } - } -} diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 35c6b17631..e16688bdea 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -197,7 +197,6 @@ public static void writeMappings() { addEntity(EntityGhost.class, "entity_ntm_ghost", 1000); addEntity(EntityGrenadeDynamite.class, "entity_grenade_dynamite", 250); addEntity(EntitySiegeLaser.class, "entity_ntm_siege_laser", 1000); - addEntity(EntitySiegeDropship.class, "entity_ntm_siege_dropship", 1000); addEntity(EntityTNTPrimedBase.class, "entity_ntm_tnt_primed", 1000); addEntity(EntityGrenadeBouncyGeneric.class, "entity_grenade_bouncy_generic", 250); addEntity(EntityGrenadeImpactGeneric.class, "entity_grenade_impact_generic", 250); diff --git a/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java b/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java deleted file mode 100644 index 567d5c04fe..0000000000 --- a/src/main/java/com/hbm/entity/missile/EntitySiegeDropship.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.hbm.entity.missile; - -import com.hbm.blocks.ModBlocks; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.explosion.ExplosionLarge; -import com.hbm.handler.SiegeOrchestrator; -import com.hbm.packet.AuxParticlePacketNT; -import com.hbm.packet.PacketDispatcher; - -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.MovingObjectPosition.MovingObjectType; -import net.minecraft.world.World; - -public class EntitySiegeDropship extends EntityThrowable { - - public int health = 20; - - public EntitySiegeDropship(World world) { - super(world); - this.health *= Math.pow((SiegeOrchestrator.level + 1), 2); - this.setSize(0.5F, 1F); - } - - public EntitySiegeDropship(World world, double x, double y, double z) { - super(world, x, y, z); - this.health *= Math.pow((SiegeOrchestrator.level + 1), 2); - this.setSize(0.5F, 1F); - } - - @Override - public boolean canBeCollidedWith() { - return true; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(this.isEntityInvulnerable()) { - return false; - - } else { - - if(!this.isDead && !this.worldObj.isRemote) { - health -= amount; - - if(this.health <= 0) { - this.setDead(); - SiegeOrchestrator.levelCounter += SiegeOrchestrator.getTierAddDrop(worldObj); - - SiegeTier tier = SiegeTier.tiers[SiegeOrchestrator.level]; - if(tier == null) - tier = SiegeTier.DNT; - - for(ItemStack drop : tier.dropItem) { - this.entityDropItem(drop.copy(), 0F); - } - - ExplosionLarge.spawnParticles(worldObj, posX, posY + 1, posZ, 10); - - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 1F); - data.setFloat("g", 0F); - data.setFloat("b", 0F); - data.setFloat("scale", 20F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 100)); - } - } - - return true; - } - } - - @Override - public void onUpdate() { - - this.motionX = 0; - this.motionY = -0.5; - this.motionZ = 0; - - if(!worldObj.isRemote && this.ticksExisted % 2 == 0) { - NBTTagCompound data = new NBTTagCompound(); - data.setString("type", "plasmablast"); - data.setFloat("r", 0.1F); - data.setFloat("g", 0.75F); - data.setFloat("b", 1.0F); - data.setFloat("scale", 3F); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY, posZ), - new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 100)); - } - - super.onUpdate(); - } - - @Override - protected void onImpact(MovingObjectPosition mop) { - - if(mop.typeOfHit == MovingObjectType.BLOCK) { - this.setDead(); - - if(SiegeOrchestrator.enableBaseSpawning(worldObj)) { - worldObj.setBlock(mop.blockX, mop.blockY, mop.blockZ, ModBlocks.siege_shield); - } else if(SiegeOrchestrator.enableMobSpawning(worldObj)) { - SiegeOrchestrator.spawnRandomMob(worldObj, mop.blockX + 0.5, mop.blockY + 1, mop.blockZ + 0.5, null); - } - - ExplosionLarge.spawnParticles(worldObj, posX, posY + 1, posZ, 10); - } - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("health", this.health); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - - this.health = nbt.getInteger("health"); - } -} diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java index aba873b3ba..72c0e29de7 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java @@ -4,7 +4,6 @@ import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.lib.ModDamageSource; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; @@ -45,9 +44,6 @@ public boolean attackEntityFrom(DamageSource source, float damage) { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java index c81c0ef479..46e685a524 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.ModItems; import api.hbm.entity.IRadiationImmune; @@ -45,9 +44,6 @@ public boolean attackEntityFrom(DamageSource source, float damage) { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java index da940e4b84..ff64a84763 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java @@ -1,7 +1,6 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.mob.EntityBurrowingSwingingBase; -import com.hbm.handler.SiegeOrchestrator; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -37,9 +36,6 @@ public boolean attackEntityFrom(DamageSource source, float damage) { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java index 30670edc80..12551252a9 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java @@ -2,7 +2,6 @@ import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.handler.SiegeOrchestrator; import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -48,9 +47,6 @@ public boolean attackEntityFrom(DamageSource source, float damage) { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java index 49dac097ba..82ac62ce8d 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java @@ -1,6 +1,5 @@ package com.hbm.entity.mob.siege; -import com.hbm.handler.SiegeOrchestrator; import api.hbm.entity.IRadiationImmune; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; @@ -43,9 +42,6 @@ public boolean attackEntityFrom(DamageSource source, float damage) { if(this.isEntityInvulnerable()) return false; - if(SiegeOrchestrator.isSiegeMob(source.getEntity())) - return false; - SiegeTier tier = this.getTier(); if(tier.fireProof && source.isFireDamage()) { diff --git a/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java b/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java index ff3ac94c6b..8949121c91 100644 --- a/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java +++ b/src/main/java/com/hbm/entity/mob/siege/SiegeTier.java @@ -7,10 +7,7 @@ import com.hbm.items.ModItems; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionEffect; public class SiegeTier { @@ -113,49 +110,12 @@ private SiegeTier setLaser(float breaking, float explosive, boolean incendiary) return this; } - private SiegeTier addDrop(Item drop) { - return addDrop(new ItemStack(drop)); - } - private SiegeTier addDrop(ItemStack drop) { this.dropItem.add(drop); return this; } - private SiegeTier setAura(int range, PotionEffect... effects) { - this.daisyChain(x -> SiegeTier.doAura(x, range, effects)); //HOLY SHIT THAT ACTUALLY WORKS!! - return this; - } - - private SiegeTier daisyChain(Consumer link) { - - if(this.delegate == null) - this.delegate = link; - else - this.delegate.andThen(link); //HOLY FUCK! - - return this; - } - public void runDelegate(EntityLivingBase entity) { if(this.delegate != null) this.delegate.accept(entity); } - - /* - * DELEGATIONS - */ - private static void doAura(EntityLivingBase entity, int range, PotionEffect... effects) { - - List players = entity.worldObj.getEntitiesWithinAABB(EntityPlayer.class, entity.boundingBox.expand(range, range, range)); - - for(EntityPlayer player : players) { - - if(player.getDistanceSqToEntity(entity) < range * range) { - - for(PotionEffect e : effects) { - player.addPotionEffect(new PotionEffect(e)); - } - } - } - } } diff --git a/src/main/java/com/hbm/handler/SiegeOrchestrator.java b/src/main/java/com/hbm/handler/SiegeOrchestrator.java deleted file mode 100644 index d1c7fd7257..0000000000 --- a/src/main/java/com/hbm/handler/SiegeOrchestrator.java +++ /dev/null @@ -1,293 +0,0 @@ -package com.hbm.handler; - -import com.hbm.entity.missile.EntitySiegeDropship; -import com.hbm.entity.mob.siege.EntitySiegeCraft; -import com.hbm.entity.mob.siege.EntitySiegeSkeleton; -import com.hbm.entity.mob.siege.EntitySiegeTunneler; -import com.hbm.entity.mob.siege.EntitySiegeUFO; -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.util.ChatBuilder; -import com.hbm.util.GameRuleHelper; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.Vec3; -import net.minecraft.world.GameRules; -import net.minecraft.world.World; - -public class SiegeOrchestrator { - - public static boolean lastWave = false; - - public static int level = 0; - public static int levelCounter = 0; - - public static int siegeMobCount = 0; - - public static void update(World world) { - - //abort loop if sieges are disabled - if(world.isRemote || !siegeEnabled(world)) - return; - - int waveTime = getWaveDuration(world); - int pauseTime = getPauseDuration(world); - int interval = waveTime + pauseTime; - //whether we're in a wave or pause, pauses apply first in an interval - boolean wave = (int)(world.getTotalWorldTime() % interval) >= pauseTime; - - //send a server-wide message when the wave starts and ends - if(!lastWave && wave) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] A new wave is starting!").color(EnumChatFormatting.RED).flush()); - } else if(lastWave && !wave) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] The wave has ended!").color(EnumChatFormatting.RED).flush()); - } - - lastWave = wave; - - //if we're on pause, do nothing - if(!wave) - return; - - int spawnDelay = getSpawnDelay(world); - boolean threshold = spawnThresholdEnabled(world); - int thresholdSize = getSpawnThreshold(world); - - //if threshold is enabled, don't go into the spawn loop if the entity count exceeds the threshold - if(!(threshold && siegeMobCount > thresholdSize)) { - for(Object o : world.playerEntities) { - EntityPlayer player = (EntityPlayer) o; - - if((world.getTotalWorldTime() + player.getEntityId()) % spawnDelay == 0) { - perPlayerSpawn(player); - } - } - } - - int countCap = getTierDelay(world); - int prevLevel = level; - levelCounter++; - - //if the counter has reached the cap, tick up the tier and reset the counter - while(levelCounter >= countCap) { - levelCounter -= countCap; - level++; - } - - //if the counter is below 0, bring up the counter and deduct a tier - while(levelCounter < 0) { - levelCounter += countCap; - level--; - } - - //if the tier has changed, send a broadcast - if(prevLevel != level) { - MinecraftServer.getServer().getConfigurationManager().sendChatMsg(ChatBuilder.start("[SIEGE MODE] The siege tier is now " + (level + 1) + "!").color(EnumChatFormatting.RED).flush()); - } - - //every 10s we recount the loaded siege mobs - if(world.getTotalWorldTime() % 200 == 0) { - refreshMobCount(world); - } - } - - public static void perPlayerSpawn(EntityPlayer player) { - - Vec3 vec = Vec3.createVectorHelper(getSpawnDist(player.worldObj), 0, 0); - vec.rotateAroundY((float)(player.getRNG().nextFloat() * Math.PI)); - - double x = player.posX + vec.xCoord; - double z = player.posZ + vec.zCoord; - - if(enableMissileSpawn(player.worldObj)) { - EntitySiegeDropship ship = new EntitySiegeDropship(player.worldObj, x, 300, z); - player.worldObj.spawnEntityInWorld(ship); - } - } - - public static void playerDeathHook(EntityPlayer player, DamageSource source) { - - if(!player.worldObj.isRemote) { - if(isSiegeMob(source.getEntity())) { - levelCounter -= getTierSubDeath(player.worldObj); - } - } - } - - public static void mobDeathHook(EntityLivingBase entity, DamageSource source) { - - if(!entity.worldObj.isRemote) { - if(isSiegeMob(entity)) { - levelCounter += getTierAddKill(entity.worldObj); - } - } - } - - public static void spawnRandomMob(World world, double x, double y, double z, EntityPlayer target) { - - if(world.isRemote) - return; - - SiegeTier tier = SiegeTier.tiers[level]; - if(tier == null) - tier = SiegeTier.DNT; - - EntityLiving entity; - - float f = world.rand.nextFloat(); - - if(target != null && f < 0.25F && target.posY + 15 < y) { - entity = new EntitySiegeTunneler(world); - ((EntitySiegeTunneler)entity).setTier(tier); - } else if(f < 0.1F) { - entity = new EntitySiegeUFO(world); - ((EntitySiegeUFO)entity).setTier(tier); - } else if(f < 0.4F) { - entity = new EntitySiegeSkeleton(world); - ((EntitySiegeSkeleton)entity).setTier(tier); - } else { - entity = new EntitySiegeZombie(world); - ((EntitySiegeZombie)entity).setTier(tier); - } - - entity.setPositionAndRotation(x, y, z, (float)Math.PI * 2F, 0F); - - if(target != null) { - entity.setAttackTarget(target); - } - - world.spawnEntityInWorld(entity); - } - - private static void refreshMobCount(World world) { - - siegeMobCount = 0; - - for(Object o : world.loadedEntityList) { - Entity entity = (Entity) o; - - if(isSiegeMob(entity)) { - siegeMobCount++; - } - } - } - - public static boolean isSiegeMob(Entity entity) { - - if(entity instanceof EntitySiegeZombie) return true; - if(entity instanceof EntitySiegeSkeleton) return true; - if(entity instanceof EntitySiegeUFO) return true; - if(entity instanceof EntitySiegeTunneler) return true; - if(entity instanceof EntitySiegeCraft) return true; - - return false; - } - - public static final String KEY_SAVE_RULES = "siegeSaveRules"; - public static final String KEY_ENABLE_SIEGES = "siegeEnable"; - public static final String KEY_WAVE_DURATION = "siegeWaveDuration"; - public static final String KEY_PAUSE_DURATION = "siegePauseDuration"; - public static final String KEY_ENABLE_DROPS = "siegeEnableDropships"; - public static final String KEY_ENABLE_SPAWNS = "siegeEnableMobSpawning"; - public static final String KEY_ENABLE_BASES = "siegeEnableBases"; - public static final String KEY_ENABLE_MISSILES = "siegeEnableMissiles"; - public static final String KEY_SPAWN_DIST = "siegeSpawnDist"; - public static final String KEY_SPAWN_DELAY = "siegeSpawnDelay"; - public static final String KEY_TIER_DELAY = "siegeTierDuration"; - public static final String KEY_TIER_ADD_KILL = "siegeTierAddKill"; - public static final String KEY_TIER_ADD_DROP = "siegeTierAddDrop"; - public static final String KEY_TIER_SUB_DEATH = "siegeTierSubDeath"; - public static final String KEY_SPAWN_THRESHOLD = "siegeEnableSpawnThreshold"; - public static final String KEY_SPAWN_THRESHOLD_COUNT = "siegeSpawnThreshold"; - public static final String KEY_EXPANSION_THRESHOLD_COUNT = "siegeExpansionThreshold"; - - public static void createGameRules(World world) { - - GameRules rules = world.getGameRules(); - - if(!rules.getGameRuleBooleanValue(KEY_SAVE_RULES)) { - rules.setOrCreateGameRule(KEY_SAVE_RULES, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_SIEGES, "false"); - rules.setOrCreateGameRule(KEY_WAVE_DURATION, "" + (20 * 60 * 20)); - rules.setOrCreateGameRule(KEY_PAUSE_DURATION, "" + (10 * 60 * 20)); - rules.setOrCreateGameRule(KEY_ENABLE_DROPS, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_SPAWNS, "false"); - rules.setOrCreateGameRule(KEY_ENABLE_BASES, "true"); - rules.setOrCreateGameRule(KEY_ENABLE_MISSILES, "true"); - rules.setOrCreateGameRule(KEY_SPAWN_DIST, "64"); - rules.setOrCreateGameRule(KEY_SPAWN_DELAY, "" + (10 * 20)); - rules.setOrCreateGameRule(KEY_TIER_DELAY, "" + (15 * 60 * 20)); - rules.setOrCreateGameRule(KEY_TIER_ADD_KILL, "" + (1 * 20)); - rules.setOrCreateGameRule(KEY_TIER_SUB_DEATH, "" + (15 * 20)); - rules.setOrCreateGameRule(KEY_SPAWN_THRESHOLD, "true"); - rules.setOrCreateGameRule(KEY_SPAWN_THRESHOLD_COUNT, "50"); - rules.setOrCreateGameRule(KEY_EXPANSION_THRESHOLD_COUNT, "20"); - } - } - - public static boolean siegeEnabled(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_SIEGES); - } - - public static int getWaveDuration(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_WAVE_DURATION, 20 * 60 * 10, 1); - } - - public static int getPauseDuration(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_PAUSE_DURATION, 10 * 60 * 10, 0); - } - - public static double getSpawnDist(World world) { - return GameRuleHelper.getDoubleMinimum(world, KEY_SPAWN_DIST, 64, 0); - } - - public static int getSpawnDelay(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_SPAWN_DELAY, 10 * 20, 1); - } - - public static int getTierDelay(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_DELAY, 15 * 60 * 20, 1); - } - - public static int getTierAddKill(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_ADD_KILL, 1 * 20, 0); - } - - public static int getTierAddDrop(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_ADD_DROP, 5 * 20, 0); - } - - public static int getTierSubDeath(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_TIER_SUB_DEATH, 15 * 20, 0); - } - - public static boolean spawnThresholdEnabled(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_SPAWN_THRESHOLD); - } - - public static int getSpawnThreshold(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_SPAWN_THRESHOLD_COUNT, 50, 1); - } - - public static int getExpansionThreshold(World world) { - return GameRuleHelper.getIntegerMinimum(world, KEY_EXPANSION_THRESHOLD_COUNT, 20, 1); - } - - public static boolean enableBaseSpawning(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_BASES); - } - - public static boolean enableMobSpawning(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_SPAWNS); - } - - public static boolean enableMissileSpawn(World world) { - return world.getGameRules().getGameRuleBooleanValue(KEY_ENABLE_MISSILES); - } -} diff --git a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java index 30066a91eb..a1b85d2426 100644 --- a/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java +++ b/src/main/java/com/hbm/handler/radiation/ChunkRadiationHandler3D.java @@ -97,7 +97,6 @@ public void updateSystem() { if(buff.containsKey(newCoord)) { int newY = MathHelper.clamp_int(y + j, 0, 15); Float[] vals = radiation.get(newCoord); - float rad = vals[newY]; float newRad = vals[newY] + chunk.getValue()[newY] * percent; vals[newY] = Math.max(0F, newRad * 0.999F - 0.05F); } diff --git a/src/main/java/com/hbm/inventory/container/ContainerITER.java b/src/main/java/com/hbm/inventory/container/ContainerITER.java index 1bf4e1bddb..e4285bc51d 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerITER.java +++ b/src/main/java/com/hbm/inventory/container/ContainerITER.java @@ -43,37 +43,31 @@ public ContainerITER(InventoryPlayer invPlayer, TileEntityITER tedf) { } @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) { ItemStack var3 = null; Slot var4 = (Slot) this.inventorySlots.get(par2); - if (var4 != null && var4.getHasStack()) - { + if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) - { + if(par2 <= 4) { + if(!this.mergeItemStack(var5, 5, this.inventorySlots.size(), true)) { return null; } } else { return null; } - - if (var5.stackSize == 0) - { + + if(var5.stackSize == 0) { var4.putStack((ItemStack) null); - } - else - { + } else { var4.onSlotChanged(); } } return var3; - } + } @Override public boolean canInteractWith(EntityPlayer player) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java index 329f6a7182..5fb979fe96 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbofan.java @@ -1,7 +1,6 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotTakeOnly; -import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.tileentity.machine.TileEntityMachineTurbofan; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java index 987b5caa6b..0b81a0bd8a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineGasCent.java @@ -56,9 +56,6 @@ public void drawScreen(int mouseX, int mouseY, float f) { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.gasCent.hasCustomInventoryName() ? this.gasCent.getInventoryName() : I18n.format(this.gasCent.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); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java index 4646f4e88c..e691bffc98 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineTurbineGas.java @@ -202,8 +202,6 @@ protected void drawGuiContainerBackgroundLayer(float iinterpolation, int x, int public void displayStartup() { - boolean displayOn = true; - if(numberToDisplay < 888888 && turbinegas.counter < 60) { //48 frames needed to complete digitNumber++; diff --git a/src/main/java/com/hbm/items/tool/ItemTurretControl.java b/src/main/java/com/hbm/items/tool/ItemTurretControl.java index 44fcfafef9..bf976410dc 100644 --- a/src/main/java/com/hbm/items/tool/ItemTurretControl.java +++ b/src/main/java/com/hbm/items/tool/ItemTurretControl.java @@ -168,10 +168,6 @@ public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer play j = event.charge; if(stack.hasTagCompound()) { - int x = stack.getTagCompound().getInteger("xCoord"); - int y = stack.getTagCompound().getInteger("yCoord"); - int z = stack.getTagCompound().getInteger("zCoord"); - /// /// } } @@ -204,8 +200,6 @@ public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { if(world.getBlock(x, y, z) instanceof TurretBase) { - TileEntity te = world.getTileEntity(x, y, z); - /// /// } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 1002a2191d..088c4391d7 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4895)"; + public static final String VERSION = "1.0.27 BETA (4914)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index f3a2bece4a..d0beabbc73 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -249,7 +249,6 @@ public void registerTileEntitySpecialRenderer() { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadarScreen.class, new RenderRadarScreen()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineSeleniumEngine.class, new RenderSelenium()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorResearch.class, new RenderSmallReactor()); - ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineShredderLarge.class, new RenderMachineShredder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBarrel.class, new RenderFluidBarrel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCrystallizer.class, new RenderCrystallizer()); @@ -631,7 +630,6 @@ public void registerEntityRenderer() { RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, new RenderFallingNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerRocket.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityBobmazon.class, new RenderMinerRocket()); - RenderingRegistry.registerEntityRenderingHandler(EntitySiegeDropship.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityTom.class, new RenderTom()); RenderingRegistry.registerEntityRenderingHandler(EntityAAShell.class, new RenderMirv()); RenderingRegistry.registerEntityRenderingHandler(EntityRocketHoming.class, new RenderSRocket()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 43d45ebf4e..2d04a92fe7 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -420,7 +420,6 @@ public static void AddCraftingRec() { addRecipeAuto(new ItemStack(ModBlocks.tile_lab_broken, 6), new Object[] { " C " , "C C", " C ", 'C', ModBlocks.tile_lab_cracked }); addShapelessAuto(new ItemStack(ModBlocks.asphalt_light, 1), new Object[] { ModBlocks.asphalt, Items.glowstone_dust }); addShapelessAuto(new ItemStack(ModBlocks.asphalt, 1), new Object[] { ModBlocks.asphalt_light }); - addRecipeAuto(new ItemStack(ModBlocks.block_niter_reinforced, 1), new Object[] { "TCT", "CNC", "TCT", 'T', ANY_RESISTANTALLOY.ingot(), 'C', ModBlocks.concrete, 'N', KNO.block() }); String[] dyes = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange", "White" }; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 001c12aa4f..33710f98f0 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -932,7 +932,6 @@ public void preInit(FMLPreInitializationEvent event) { public void serverStart(FMLServerStartingEvent event) { World world = event.getServer().getEntityWorld(); RBMKDials.createDials(world); - SiegeOrchestrator.createGameRules(world); event.registerServerCommand(new CommandReloadRecipes()); event.registerServerCommand(new CommandDebugChunkLoad()); event.registerServerCommand(new CommandSatellites()); @@ -1248,6 +1247,13 @@ public void handleMissingMappings(FMLMissingMappingsEvent event) { ignoreMappings.add("hbm:tile.test_pipe"); ignoreMappings.add("hbm:tile.test_ct"); ignoreMappings.add("hbm:tile.test_rail"); + ignoreMappings.add("hbm:tile.block_niter_reinforced"); + ignoreMappings.add("hbm:tile.siege_shield"); + ignoreMappings.add("hbm:tile.siege_internal"); + ignoreMappings.add("hbm:tile.siege_circuit"); + ignoreMappings.add("hbm:tile.siege_emergency"); + ignoreMappings.add("hbm:tile.siege_hole"); + ignoreMappings.add("hbm:tile.machine_shredder_large"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 7edafe4801..69b79f7b53 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -44,7 +44,6 @@ import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.pollution.PollutionHandler; import com.hbm.handler.pollution.PollutionHandler.PollutionType; -import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.IEquipReceiver; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; @@ -389,11 +388,6 @@ public void onEntityDeathLast(LivingDeathEvent event) { } } } - - SiegeOrchestrator.playerDeathHook(player, event.source); - - } else { - SiegeOrchestrator.mobDeathHook(entity, event.source); } } @@ -716,7 +710,6 @@ public void worldTick(WorldTickEvent event) { if(event.phase == Phase.START) { BossSpawnHandler.rollTheDice(event.world); TimedGenerator.automaton(event.world, 100); - SiegeOrchestrator.update(event.world); } } diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java b/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java index 1031f515d9..b3c89b5f3f 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMinerRocket.java @@ -3,7 +3,6 @@ import org.lwjgl.opengl.GL11; import com.hbm.entity.missile.EntityMinerRocket; -import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -22,12 +21,7 @@ public void doRender(Entity entity, double x, double y, double z, float p_76986_ if(entity instanceof EntityMinerRocket) { bindTexture(ResourceManager.minerRocket_tex); } else { - - if(entity instanceof EntitySiegeDropship) { - bindTexture(ResourceManager.siege_dropship_tex); - } else { - bindTexture(ResourceManager.bobmazon_tex); - } + bindTexture(ResourceManager.bobmazon_tex); GL11.glRotatef(180, 1, 0, 0); } diff --git a/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java b/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java deleted file mode 100644 index fbcc4b08c6..0000000000 --- a/src/main/java/com/hbm/render/tileentity/RenderMachineShredder.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.hbm.render.tileentity; - -import org.lwjgl.opengl.GL11; - -import com.hbm.main.ResourceManager; -import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; -import net.minecraft.tileentity.TileEntity; - -public class RenderMachineShredder extends TileEntitySpecialRenderer { - - @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { - GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5D, y, z + 0.5D); - GL11.glEnable(GL11.GL_LIGHTING); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glRotatef(180, 0F, 1F, 0F); - - bindTexture(ResourceManager.shredder_tex); - ResourceManager.shredder.renderPart("Base"); - - double side = 0.3D; - double height = 2.75D; - float rot = (System.currentTimeMillis() / 5) % 360; - - GL11.glPushMatrix(); - GL11.glTranslated(side, height, 0); - GL11.glRotatef(rot, 0F, 0F, 1F); - ResourceManager.shredder.renderPart("Blades1"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(-side, height, 0); - GL11.glRotatef(rot, 0F, 0F, -1F); - ResourceManager.shredder.renderPart("Blades2"); - GL11.glPopMatrix(); - - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java index 3fe08895d1..76f23bc5ae 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSnowglobe.java @@ -105,6 +105,7 @@ public void renderCommonWithStack(ItemStack item) { GL11.glScaled(3, 3, 3); SnowglobeType type = EnumUtil.grabEnumSafely(SnowglobeType.class, item.getItemDamage()); renderSnowglobe(type); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); }}; } } diff --git a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java index 0fd88f3c74..512eb41af8 100644 --- a/src/main/java/com/hbm/render/util/RenderScreenOverlay.java +++ b/src/main/java/com/hbm/render/util/RenderScreenOverlay.java @@ -230,11 +230,10 @@ public static void renderDashBar(ScaledResolution resolution, Gui gui, HbmPlayer int bar = barID; if(stamina % 30 >= 25) bar++; - int yPos = y; if(bar / 3 != y) y++; bar = bar % 3; - gui.drawTexturedModalRect(posX + (width+2)*bar, posY - 12*y, 76, 58, width, 10); + gui.drawTexturedModalRect(posX + (width + 2) * bar, posY - 12 * y, 76, 58, width, 10); fadeOut -= 0.04F; GL11.glColor4f(1F, 1F, 1F, 1F); } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index a950f5f87a..89db6f2f38 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -133,7 +133,6 @@ public static void writeMappings() { put(TileEntityGeiger.class, "tileentity_geiger"); put(TileEntityFF.class, "tileentity_forcefield"); put(TileEntityForceField.class, "tileentity_machine_field"); - put(TileEntityMachineShredderLarge.class, "tileentity_machine_big_shredder"); put(TileEntityReactorControl.class, "tileentity_reactor_remote_control"); put(TileEntityWasteDrum.class, "tileentity_waste_drum"); put(TileEntityDecon.class, "tileentity_decon"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java index df1c3f7740..9cdfd6e3d1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCyberCrab.java @@ -20,7 +20,7 @@ public void updateEntity() { if (!this.worldObj.isRemote) { age++; - if(age > 200 && worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.air) { + if(age > 200 && worldObj.getBlock(xCoord, yCoord + 1, zCoord) == Blocks.air && worldObj.getClosestPlayer(xCoord + 0.5, yCoord + 1, zCoord + 0.5, 25) != null) { List entities = this.worldObj.getEntitiesWithinAABB(EntityCyberCrab.class, AxisAlignedBB.getBoundingBox(this.xCoord - 5, this.yCoord - 2, this.zCoord - 5, this.xCoord + 6, this.yCoord + 4, this.zCoord + 6)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java deleted file mode 100644 index 66454362c4..0000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredderLarge.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.hbm.tileentity.machine; - -import java.util.Random; - -import com.hbm.packet.AuxElectricityPacket; -import com.hbm.packet.PacketDispatcher; - -import api.hbm.energy.IBatteryItem; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; -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 TileEntityMachineShredderLarge extends TileEntity implements ISidedInventory { - - private ItemStack slots[]; - - public long power; - public static final long maxPower = 100000; - public int progress; - public int maxProgress = 100; - - Random rand = new Random(); - - private String customName; - - public TileEntityMachineShredderLarge() { - slots = new ItemStack[31]; - } - - @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.assembler"; - } - - @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) <=128; - } - } - - //You scrubs aren't needed for anything (right now) - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemStack) { - if(i == 0) - if(itemStack.getItem() instanceof IBatteryItem) - return true; - - if(i == 1) - 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); - - this.power = nbt.getLong("powerTime"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return new int[] { 0 }; - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); - } - - @Override - public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (progress * i) / maxProgress; - } - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); - } - - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() - { - return 65536.0D; - } - -} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 48b8ea59f9..452b33eb94 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -9,7 +9,6 @@ import com.hbm.entity.logic.EntityBomber; import com.hbm.entity.missile.EntityMissileBaseNT; import com.hbm.entity.missile.EntityMissileCustom; -import com.hbm.entity.missile.EntitySiegeDropship; import com.hbm.entity.projectile.EntityBulletBaseNT; import com.hbm.entity.train.EntityRailCarBase; import com.hbm.handler.BulletConfigSyncingUtil; @@ -650,7 +649,6 @@ public boolean entityAcceptableTarget(Entity e) { if(e instanceof EntityMinecart) return true; if(e instanceof EntityRailCarBase) return true; if(e instanceof EntityBomber) return true; - if(e instanceof EntitySiegeDropship) return true; for(Class c : CompatExternal.turretTargetMachine) if(c.isAssignableFrom(e.getClass())) return true; } diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index 31ff44c48e..555afa11d9 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -94,8 +94,6 @@ achievement.RBMK.desc=他有妄想症,带他去医务室。 achievement.RBMK=3.6伦琴? achievement.redBalloons.desc=“这就是我们一直在等待的。就是这样,孩子们,这就是战争。” achievement.redBalloons=99个红气球 -achievement.redRoom.desc=? -achievement.redRoom=The Other Side achievement.sacrifice.desc=直面火海并存活 achievement.sacrifice=牺牲 achievement.schrab.desc=不管怎样,我不会看太久。 @@ -383,16 +381,12 @@ book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The exist 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_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_4.name=私人笔记 @@ -543,7 +537,6 @@ chem.GASOLINE_LEADED=含铅汽油混合 chem.HEAVY_ELECTROLYSIS=低温电解重水 chem.HELIUM3=使用月球草皮提取氦-3 chem.KEVLAR=凯夫拉生产 -chem.LAMINATE=强化夹层玻璃生产 chem.LPG=石油天然气液化 chem.LUBRICANT=润滑剂混合 chem.MEAT_PROCESSING=异虫肉矿物提取 @@ -552,14 +545,12 @@ 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=PVC合成 chem.RUBBER=橡胶生产 chem.SAS3=三硫化Sa生产 chem.SATURN=土星锭生产 @@ -653,7 +644,6 @@ container.fluidtank=储罐 container.fileCabinet=文件柜 container.forceField=力场发生器 container.frackingTower=水力压裂塔 -container.furnaceBrick=砖砌熔炉 container.furnaceCombination=复式炼焦炉 container.furnaceIron=铁炉 container.furnaceSteel=钢炉 @@ -671,11 +661,9 @@ container.hydrotreater=加氢装置 container.iGenerator=工业发电机 container.keyForge=锁匠桌 container.launchPad=导弹发射台 -container.launchPadRusted=导弹发射台 tile.launch_pad_large.name=发射台 container.launchTable=大型发射台 container.leadBox=安全盒 -container.machineArcWelder=电弧焊机 container.machineBoiler=锅炉 container.machineCMB=CMB炼钢炉 container.machineCoal=火力发电机 @@ -686,7 +674,6 @@ container.machineDiesel=柴油发电机 container.machineElectricBoiler=电锅炉 container.machineElectrolyser=电解机 container.machineFEL=FEL -container.machineFunnel=Combinator Funnel container.machineITER=聚变反应堆 container.machineLargeTurbine=工业汽轮机 container.machineLiquefactor=液化机 @@ -696,7 +683,7 @@ container.machineSelenium=星型发动机 container.machineShredder=粉碎机 container.machineSILEX=激光同位素分离室 container.machineSolidifier=固化机 -container.machineStrandCaster=连铸机 +container.machineStrandCaster=连续铸造机 container.machineTurbine=汽轮机 container.machineTurbofan=涡扇发动机 container.machine_schrabidium_transmutator=Sa326嬗变装置 @@ -1024,7 +1011,6 @@ 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=猎人直升机 @@ -1053,7 +1039,6 @@ flare.ignition=点火装置 flare.valve=流量阀 fluid.acid_fluid=酸 fluid.corium_fluid=堆芯熔融物 -fluid.rad_lava_fluid=火山熔岩 fluid.mud_fluid=毒泥 fluid.schrabidic_fluid=Sa酸 fluid.toxic_fluid=绿色软泥 @@ -1207,9 +1192,8 @@ 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.hopper0=§e正常模式:$将使用所有项目 hadron.hopper1=§e料斗模式:$ 将始终保留一个项目 -hadron.hopper2=§e单一模式:$ 每个插槽只允许一个物品 hadron.idle=空闲 hadron.modeCircular=§e环形加速器模式:$磁铁必须环绕核心$解锁更多配方 hadron.modeLine=§e直线加速器模式:$加速器末端有分析室$更少的配方 @@ -1442,7 +1426,6 @@ hbmmat.magnetizedtungsten=磁化钨 hbmmat.malachite=孔雀石 hbmmat.meteoriciron=陨铁 hbmmat.mingrade=紫铜 -hbmmat.neodymium=钕 hbmmat.neptunium237=镎-237 hbmmat.niobium=铌 hbmmat.obsidian=黑曜岩 @@ -1934,7 +1917,6 @@ item.boltgun.name=气动射钉枪 item.bomb_caller.name=空袭指示器 item.bomb_waffle.name=大规模杀伤性华夫饼 item.book_guide.name=HBM指导书 -item.book_lemegeton.name=所罗门之钥 item.book_of_.name=车厢书 item.book_secret.name=3-596-50802-9 item.bottle2_empty.name=空瓶 @@ -2136,7 +2118,6 @@ 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_aluminium.name=基础电路 @@ -2151,12 +2132,10 @@ item.circuit_red_copper.name=高级电路 item.circuit_schrabidium.name=高性能电路 item.circuit_star.name=星控制 电路板 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-总线 @@ -2165,8 +2144,6 @@ 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-砷半导体外延片 @@ -2416,7 +2393,6 @@ 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动力球[带电] @@ -2517,8 +2493,6 @@ 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=小型燃料罐 @@ -2564,7 +2538,7 @@ item.glitch.name=故障 item.glowing_stew.name=发光真菌煲 item.glyphid_meat.name=异虫肉 item.glyphid_meat_grilled.name=熟异虫肉 -item.glyphid_gland.name=异虫腺体 +item.glyphid_gland.name=囊腺 item.glyphid_gland_empty.name=异虫腺体 item.goggles.name=护目镜 item.grenade_aschrab.name=可抛反Sa326 @@ -2813,7 +2787,6 @@ 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=钴锭 @@ -2937,7 +2910,6 @@ item.key_red.desc=探索另一边。 item.key_red.desc.P11=§4e§r item.key_red_cracked.name=破碎的钥匙 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=铋-钐-铀-钍晶体基质 @@ -2949,9 +2921,6 @@ 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=快捷邮件 @@ -3034,7 +3003,6 @@ 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导弹 @@ -3224,8 +3192,6 @@ 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=Small Pile of Nitra item.no9.name=矿工头盔 item.nossy_hat.name=华丽的帽子 item.nothing.name=没有东西 @@ -3327,14 +3293,10 @@ 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.thorium232=钍 item.ore.thorium=钍 item.ore.uranium=铀 item.ore_bedrock.name=基岩%s矿 @@ -3375,14 +3337,6 @@ 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=碳粉盒 @@ -3535,7 +3489,6 @@ 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=锕粉 @@ -3546,7 +3499,6 @@ 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=木灰 @@ -3613,7 +3565,6 @@ 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=镎粉 @@ -4096,14 +4047,6 @@ 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板锻模 @@ -4162,7 +4105,6 @@ item.stick_dynamite_fishing.name=捕鱼炸药棒 item.stick_semtex.name=塞姆汀塑胶炸药棒 item.stick_tnt.name=TNT棒 item.stopsign.name=停车标志战斧 -item.structure_custommachine.name=自定义机器结构输出魔杖 item.sulfur.name=硫粉 item.survey_scanner.name=勘测扫描仪 item.syringe_antidote.name=解毒剂 @@ -4265,7 +4207,6 @@ 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=二级超速传动机器升级 @@ -4363,7 +4304,6 @@ item.wings_murk.name=暗黑之翼 item.wire_advanced_alloy.name=超导体 item.wire_aluminium.name=铝线 item.wire_copper.name=铜线 -item.wire_dense.name=致密%s线 item.wire_gold.name=金线 item.wire_magnetized_tungsten.name=4000K高温超导体 item.wire_red_copper.name=紫铜线 @@ -4385,7 +4325,7 @@ itemGroup.tabMissile=HBM 导弹和卫星 itemGroup.tabNuke=HBM 炸弹 itemGroup.tabParts=HBM 资源和零件 itemGroup.tabTemplate=HBM 模板 -itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、nukesteve联合汉化] +itemGroup.tabTest=HBM的核科技mod测试项[S166、Bismarck、Nukesteve、牛牛联合汉化] itemGroup.tabWeapon=HBM 武器和炮塔 potion.hbm_bang=! ! ! potion.hbm_death=重度突变 @@ -4399,27 +4339,10 @@ potion.hbm_radx=抗辐射 potion.hbm_stability=稳定 potion.hbm_taint=污染 potion.hbm_telekinesis=! ! ! -radar.clearMap=清除地图缓存 radar.detectMissiles=探测导弹 radar.detectPlayers=探测玩家 -radar.detectShells=探测炮弹 radar.redMode=红石控制模式$开启: 基于导弹距离输出红石信号$关闭: 基于导弹级别输出红石信号 radar.smartMode=智能模式$有红石信号时忽略上升段的导弹 -radar.showMap=显示地图 -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级导弹 -radar.toggleGui=切换界面 rbmk.heat=柱体温度: %s rbmk.boiler.water=供水速率: %s / %s rbmk.boiler.steam=蒸汽产生速率: %s / %s @@ -4463,8 +4386,6 @@ shape.plate=板材 shape.plateTriple=铸造板 shape.stamp=锻压模具 shape.wire=线材 -shape.wireDense=致密线材 -shape.wiresDense=致密线材 soundCategory.ntmMachines=NTM机器 tile.absorber.name=辐射吸收器 tile.absorber_green.name=高级辐射吸收器 @@ -4503,13 +4424,13 @@ tile.barrel_steel.name=钢桶 tile.barrel_tcalloy.name=锝-钢合金桶 tile.barricade.name=沙袋 tile.basalt.name=玄武岩 -tile.basalt_asbestos.name=富含石棉的玄武岩 +tile.ore_basalt_asbestos.name=富含石棉的玄武岩 tile.basalt_brick.name=玄武岩砖 -tile.basalt_fluorite.name=富含氟石的玄武岩 -tile.basalt_gem.name=富含宝石的玄武岩 +tile.ore_basalt_fluorite.name=富含氟石的玄武岩 +tile.ore_basalt_gem.name=富含宝石的玄武岩 tile.basalt_polished.name=抛光玄武岩 tile.basalt_smooth.name=平滑玄武岩 -tile.basalt_sulfur.name=富含硫的玄武岩 +tile.ore_basalt_sulfur.name=富含硫的玄武岩 tile.basalt_tiles.name=玄武岩砖 tile.blast_door.name=防爆闸门 tile.block_actinium.name=锕块 @@ -4664,7 +4585,6 @@ tile.brick_light.name=轻质砖块 tile.brick_light_stairs.name=轻质砖楼梯 tile.brick_obsidian.name=黑曜石砖块 tile.brick_obsidian_stairs.name=黑曜石砖楼梯 -tile.brick_red.name=红屋砖 tile.brick_slab.brick_asbestos.name=石棉砖板 tile.brick_slab.brick_compound.name=复合网格板 tile.brick_slab.brick_fire.name=耐火砖板 @@ -4683,7 +4603,7 @@ tile.capacitor_bus.desc=电容器的输出方块$可以连成一条直线 tile.capacitor_copper.name=铜电容 tile.capacitor_gold.name=金电容 tile.capacitor_niobium.name=铌电容 -tile.capacitor_schrabidate.name=Sa酸铁电容器 +tile.capacitor_schrabidate.name=Sa酸铁电容 tile.capacitor_tantalium.name=钽电容 tile.capacitor.desc=输入:顶部$输出:底部,通过电容总线 tile.charge_c4.name=炸药包 @@ -4705,7 +4625,6 @@ 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=钢制机器外壳 @@ -4718,8 +4637,6 @@ tile.cm_circuit.schrabidium.name=五级电路块 tile.cm_engine.bismuth.name=铋电机组 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=钢制端口 @@ -4824,7 +4741,6 @@ tile.deco_aluminium.name=铝装饰块 tile.deco_asbestos.name=石棉瓦 tile.deco_beryllium.name=铍装饰块 tile.deco_computer.ibm_300pl.name=IBM个人电脑300PL -tile.deco_crt.name=老旧的CRT屏幕 tile.deco_emitter.name=Deco发光体 tile.deco_lead.name=铅装饰块 tile.deco_rbmk.name=RBMK装饰块 @@ -4856,7 +4772,6 @@ 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=深层岩石砖 @@ -5048,8 +4963,8 @@ tile.lamp_tritium_blue_off.name=蓝色氚灯 tile.lamp_tritium_blue_on.name=蓝色氚灯 tile.lamp_tritium_green_off.name=绿色氚灯 tile.lamp_tritium_green_on.name=绿色氚灯 -tile.lantern.name=灯笼 -tile.lantern_behemoth.name=旧灯笼 +tile.lantern.name=路灯 +tile.lantern_behemoth.name=旧路灯 tile.launch_pad.name=导弹发射台 tile.launch_table.name=大型发射台 tile.leaves_layer.name=落叶 @@ -5057,7 +4972,6 @@ tile.lox_barrel.name=液氧桶 tile.machine_amgen.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=收集来自燃烧室和加热炉的灰烬 @@ -5123,10 +5037,6 @@ tile.machine_fluidtank.name=储罐 tile.machine_forcefield.name=力场发生器 tile.machine_fraction_tower.name=分馏塔 tile.machine_fracking_tower.name=水力压裂塔 -tile.machine_furnace_brick_off.name=砖砌熔炉 -tile.machine_furnace_brick_on.name=砖砌熔炉 -tile.machine_funnel.name=Combinator Funnel -tile.machine_funnel.desc=Automatically compresses items in a 2x2 or 3x3 crafting grid$Top: Input$Bottom: Output$Side: Output for clearing ingredients tile.machine_gascent.name=气体离心机 tile.machine_generator.name=核反应堆[旧] tile.machine_geo.name=地热发电机 @@ -5193,7 +5103,7 @@ tile.machine_stirling_creative.desc=将热量转化为能量。需要外部热 tile.machine_stirling_steel.name=重型斯特林发电机 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_strand_caster.name=连续铸造机 tile.machine_telelinker.name=炮塔ID管理器 tile.machine_teleporter.name=传送机 tile.machine_tower_large.name=冷却塔 @@ -5251,11 +5161,6 @@ 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=基岩油层 @@ -5330,7 +5235,6 @@ tile.ore_verticium.name=韦德赛矿石 tile.ore_volcano.name=地热裂缝 tile.ore_weidanium.name=魏丹矿石 tile.part_emitter.name=Deco粒子发射器 -tile.pedestal.name=基座 tile.pink_barrel.name=煤油桶 tile.pink_log.name=粉色原木 tile.pink_planks.name=粉色木板 @@ -5497,7 +5401,6 @@ 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=卤素泛光灯 @@ -5569,7 +5472,6 @@ 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=真空 @@ -5603,7 +5505,6 @@ tile.watz_hatch.name=Watz反应堆端口 tile.watz_pump.name=Watz压力泵 tile.yellow_barrel.name=核废料桶 tile.zirnox_destroyed.name=损毁的ZINROX - tile.large_vehicle_door.name=大型机械门 tile.water_door.name=水闸门 tile.qe_containment.name=QE安全门 @@ -5611,7 +5512,6 @@ 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=煤尘 @@ -5683,23 +5583,6 @@ turret.none=无 turret.off=关 turret.on=开 turret.players=以玩家为目标:%s - -upgrade.acid=Acid required %s -upgrade.burn=Burn %smb/t for %sHE -upgrade.consumption=Consumption %s -upgrade.coolantConsumption=Coolant Consumption %s -upgrade.delay=Process time %s -upgrade.efficiency=Efficiency %s -upgrade.fortune=Fortune %s -upgrade.overheatChance=Overheat chance %s -upgrade.range=Range %s -upgrade.gui.title=§lAcceptable Upgrades:§r -upgrade.gui.afterburner= * §dAfterburner§r: Stacks to level %s -upgrade.gui.effectiveness= * §aEffectiveness§r: Stacks to level %s -upgrade.gui.overdrive= * §7Overdrive§r: Stacks to level %s -upgrade.gui.power= * §9Power-Saving§r: Stacks to level %s -upgrade.gui.speed= * §4Speed§r: Stacks to level %s - wavelengths.name.ir=红外线 wavelengths.name.visible=可见光 wavelengths.name.uv=紫外线 @@ -5729,3 +5612,41 @@ 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=坏掉的烤面包机 +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