diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f35805a69..237cc40fb 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -76,6 +76,7 @@ public class ModBlocks { public static Block ore_cobalt; public static Block ore_cinnebar; public static Block ore_coltan; + public static Block ore_alexandrite; public static Block ore_bedrock_coltan; @@ -1309,6 +1310,7 @@ public class ModBlocks { cluster_depth_iron = new BlockDepthOre().setBlockName("cluster_depth_iron").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_iron"); cluster_depth_titanium = new BlockDepthOre().setBlockName("cluster_depth_titanium").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_titanium"); cluster_depth_tungsten = new BlockDepthOre().setBlockName("cluster_depth_tungsten").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":cluster_depth_tungsten"); + ore_alexandrite = new BlockDepthOre().setBlockName("ore_alexandrite").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":ore_alexandrite"); depth_brick = new BlockDepth().setBlockName("depth_brick").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_brick"); depth_tiles = new BlockDepth().setBlockName("depth_tiles").setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":depth_tiles"); @@ -2322,6 +2324,7 @@ public class ModBlocks { GameRegistry.registerBlock(cluster_depth_iron, ItemBlockBase.class, cluster_depth_iron.getUnlocalizedName()); GameRegistry.registerBlock(cluster_depth_titanium, ItemBlockBase.class, cluster_depth_titanium.getUnlocalizedName()); GameRegistry.registerBlock(cluster_depth_tungsten, ItemBlockBase.class, cluster_depth_tungsten.getUnlocalizedName()); + GameRegistry.registerBlock(ore_alexandrite, ItemBlockBase.class, ore_alexandrite.getUnlocalizedName()); //Nether depth ores GameRegistry.registerBlock(ore_depth_nether_neodymium, ItemBlockBase.class, ore_depth_nether_neodymium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java b/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java index df966575a..cfe4c8e4a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDepthOre.java @@ -33,6 +33,9 @@ public class BlockDepthOre extends BlockDepth { if(this == ModBlocks.ore_depth_borax) { return ModItems.powder_borax; } + if(this == ModBlocks.ore_alexandrite) { + return ModItems.gem_alexandrite; + } return super.getItemDropped(metadata, rand, fortune); } diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index a5bb5a257..6d5d55fdb 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -35,6 +35,7 @@ public class WorldConfig { public static int titaniumClusterSpawn = 2; public static int aluminiumClusterSpawn = 3; public static int copperClusterSpawn = 4; + public static int alexandriteSpawn = 100; public static int netherUraniumuSpawn = 8; public static int netherTungstenSpawn = 10; @@ -106,6 +107,7 @@ public class WorldConfig { cinnebarSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cinnebarSpawnRate", "Amount of cinnebar ore veins per chunk", 1); cobaltSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.18_cobaltSpawnRate", "Amount of cobalt ore veins per chunk", 2); explosivebubbleSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.19_explosiveBubbleSpawnRate", "Spawns an explosive gas bubble every nTH chunk", 8); + alexandriteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.20_alexandriteSpawnRate", "Spawns an alexandrite vein every nTH chunk", 100); ironClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C00_ironClusterSpawn", "Amount of iron cluster veins per chunk", 4); titaniumClusterSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.C01_titaniumClusterSpawn", "Amount of titanium cluster veins per chunk", 2); diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index ae62ef24b..2ae095577 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -1,6 +1,8 @@ package com.hbm.crafting; import static com.hbm.inventory.OreDictManager.*; + +import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.main.CraftingManager; @@ -19,7 +21,9 @@ public class PowderRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_power, 5), new Object[] { REDSTONE.dust(), "dustGlowstone", DIAMOND.dust(), NP237.dust(), MAGTUNG.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ballistite, 3), new Object[] { Items.gunpowder, KNO.dust(), Items.sugar }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_dynamite, 2), new Object[] { KNO.dust(), Items.sugar, Blocks.sand, KEY_TOOL_CHEMISTRYSET }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_tnt, 4), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.AROMATICS.getID()), KNO.dust(), KEY_TOOL_CHEMISTRYSET }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ingot_steel_dusted, 1), new Object[] { STEEL.ingot(), COAL.dust() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.powder_bakelite, 2), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.AROMATICS.getID()), new ItemStack(ModItems.fluid_tank_full, 1, Fluids.PETROLEUM.getID()), KEY_TOOL_CHEMISTRYSET }); //Gunpowder CraftingManager.addShapelessAuto(new ItemStack(Items.gunpowder, 3), new Object[] { S.dust(), KNO.dust(), COAL.gem() }); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 38cf7aeb8..6ee50f3be 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -77,12 +77,12 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_gold, 1), new Object[] { "SSM", " RW", 'S', GOLD.plate(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_revolver_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_lead, 1), new Object[] { "SSM", " RW", 'S', PB.plate(), 'W', W.ingot(), 'R', ModItems.wire_tungsten, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_schrabidium, 1), new Object[] { "SSM", " RW", 'S', SA326.block(), 'W', W.ingot(), 'R', ModItems.wire_schrabidium, 'M', ModItems.mechanism_special }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_pip, 1), new Object[] { " G ", "SSP", " TI", 'G', KEY_ANYPANE, 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', POLYMER.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nopip, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_pip, 1), new Object[] { " G ", "SSP", " TI", 'G', KEY_ANYPANE, 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', ANY_PLASTIC.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nopip, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_blackjack, 1), new Object[] { "SSP", " TI", 'S', STEEL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_silver, 1), new Object[] { "SSP", " TI", 'S', AL.plate(), 'P', ModItems.mechanism_revolver_2, 'T', ModItems.wire_tungsten, 'I', KEY_PLANKS }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_red, 1), new Object[] { "R ", " B", 'R', ModItems.key_red, 'B', ModItems.gun_revolver_blackjack }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', POLYMER.ingot(), 'M', ModItems.mechanism_rifle_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_deagle, 1), new Object[] { "PPM", " BI", 'P', STEEL.plate(), 'B', ModItems.bolt_tungsten, 'I', ANY_PLASTIC.ingot(), 'M', ModItems.mechanism_rifle_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'R', ModItems.wire_red_copper, 'T', TI.plate(), 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SEM", " RW", 'S', STEEL.plate(), 'W', KEY_PLANKS, 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_revolver_nightmare2, 1), new Object[] { "SSM", "RRW", 'S', OreDictManager.getReflector(), 'W', W.ingot(), 'R', ModItems.wire_gold, 'M', ModItems.mechanism_special }); @@ -92,7 +92,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bf_ammo, 1), new Object[] { " S ", "EBE", " S ", 'S', ModItems.hull_small_steel, 'E', ModItems.powder_power, 'B', ModItems.egg_balefire_shard }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_thompson, 1), new Object[] { "IIM", " SW", " S ", 'S', IRON.plate(), 'I', STEEL.plate(), 'W', KEY_PLANKS, 'M', ModItems.mechanism_rifle_2 }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', POLYMER.ingot(), 'G', ModItems.mechanism_launcher_1 }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', STEEL.ingot(), 'S', ANY_PLASTIC.ingot(), 'G', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', STEEL.plate(), 'I', STEEL.ingot(), 'W', KEY_PLANKS, 'S', KEY_STICK, 'M', ModItems.mechanism_revolver_2 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_supershotgun, 1), new Object[] { "BBM", "BBM", "AWL", 'B', ModItems.hull_small_steel, 'M', ModItems.mechanism_rifle_2, 'A', ModItems.plate_dalekanium, 'W', ModItems.wire_gold, 'L', KEY_LOG }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', STEEL.plate(), 'M', ModItems.mechanism_rifle_1, 'S', KEY_STICK, 'W', ModItems.wire_tungsten, 'L', KEY_LOG }); @@ -136,17 +136,17 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92_ammo, 1), new Object[] { "PSP", "ESE", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'E', ModItems.powder_spark_mix }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.weaponized_starblaster_cell, 1), new Object[] { new ItemStack(ModItems.fluid_tank_full, 1, Fluids.ACID.getID()), GunB92Cell.getFullCell(), ModItems.wire_copper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi, 1), new Object[] { "SMS", " PB", " P ", 'S', STEEL.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', STEEL.plate(), 'B', ModItems.bolt_dura_steel }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', POLYMER.ingot(), 'U', ModItems.gun_uzi }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite, 1), new Object[] { "SMS", " PB", " P ", 'S', BIGMT.ingot(), 'M', ModItems.mechanism_rifle_2, 'P', BIGMT.plate(), 'B', ModItems.bolt_tungsten }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', POLYMER.ingot(), 'U', ModItems.gun_uzi_saturnite }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', POLYMER.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_saturnite_silencer, 1), new Object[] { "P ", " P ", " U", 'P', ANY_PLASTIC.ingot(), 'U', ModItems.gun_uzi_saturnite }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_bolter, 1), new Object[] { "SSM", "PIP", " I ", 'S', BIGMT.plate(), 'I', BIGMT.ingot(), 'M', ModItems.mechanism_special, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity, 1), new Object[] { " PI", "BBM", " PI", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_calamity_dual, 1), new Object[] { "BBM", " PI", "BBM", 'P', IRON.plate(), 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', STEEL.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', POLYMER.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_minigun, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', STEEL.block(), 'I', ANY_PLASTIC.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_avenger, 1), new Object[] { "PIB", "PCM", "PIB", 'P', ModItems.pipes_steel, 'B', BE.block(), 'I', DESH.ingot(), 'C', ModItems.mechanism_rifle_2, 'M', ModItems.motor }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_lacunae, 1), new Object[] { "TIT", "ILI", "PRP", 'T', ModItems.syringe_taint, 'I', STAR.ingot(), 'L', ModItems.gun_minigun, 'P', ModItems.pellet_rtg, 'R', ModBlocks.machine_rtg_grey }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_mymy, 1), new Object[] { "PP ", " WP", 'P', ModItems.plate_polymer, 'W', ModItems.wire_aluminium }); - //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', POLYMER.ingot() }); + //CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_darter, 1), new Object[] { "SST", " P", 'S', STEEL.plate(), 'T', ModItems.gas_empty, 'P', ANY_PLASTIC.ingot() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_fireext, 1), new Object[] { "HB", " T", 'H', ModItems.hull_small_steel, 'B', ModItems.bolt_tungsten, 'T', ModItems.tank_steel }); //Legacy ammo recycling @@ -203,7 +203,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_explosive, 6), new Object[] { " I ", "GCL", " P ", 'I', ModItems.ingot_semtex, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_4gauge_semtex, 4), new Object[] { " I ", "GCL", " P ", 'I', ModBlocks.det_miner, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_4gauge_titan, 1), new Object[] { ModItems.ammo_4gauge, ModItems.peas }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.ammo_4gauge_titan, 1), new Object[] { ModItems.ammo_4gauge, ModItems.nugget_bismuth, ModItems.nugget_tantalium, ModItems.ball_dynamite }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.ammo_20gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', PB.ingot(), 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', CU.plate() }); diff --git a/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java b/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java index 93b9dd0d0..d2c5576b9 100644 --- a/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java @@ -1,8 +1,7 @@ package com.hbm.entity.mob; import net.minecraft.entity.EntityCreature; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; /** @@ -12,11 +11,17 @@ import net.minecraft.world.World; public abstract class EntityBurrowingBase extends EntityCreature { protected float airDrag; + protected float airDragY; protected float groundDrag; + protected float groundDragY; public EntityBurrowingBase(World world) { super(world); this.noClip = true; + this.airDrag = 0.995F; + this.airDragY = 0.997F; + this.groundDrag = 0.98F; + this.groundDragY = 0.995F; } /** @@ -28,6 +33,16 @@ public abstract class EntityBurrowingBase extends EntityCreature { return this.height * 0.5F; } + @Override + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(this.isEntityInvulnerable() || source == DamageSource.drown || source == DamageSource.inWall) { + return false; + } + + return super.attackEntityFrom(source, amount); + } + /** * No fall and fallstate functions */ @@ -50,9 +65,11 @@ public abstract class EntityBurrowingBase extends EntityCreature { public void moveEntityWithHeading(float strafe, float forward) { float drag = this.groundDrag; + float dragY = this.groundDragY; if(!isEntityInsideOpaqueBlock() && !isInWater() && !handleLavaMovement()) { drag = this.airDrag; + dragY = this.airDragY; } //misnomer, actually just sets the motion, the moving part happens the line after that @@ -60,7 +77,7 @@ public abstract class EntityBurrowingBase extends EntityCreature { moveEntity(this.motionX, this.motionY, this.motionZ); this.motionX *= drag; - this.motionY *= drag; + this.motionY *= dragY; this.motionZ *= drag; } diff --git a/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java b/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java index 3705ddb3c..eff3ae1a5 100644 --- a/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityBurrowingSwingingBase.java @@ -1,6 +1,21 @@ package com.hbm.entity.mob; +import java.util.List; + +import com.hbm.entity.mob.ai.EntityAINearestAttackableTargetNT; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IEntityLivingData; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; @@ -14,14 +29,26 @@ import net.minecraft.world.World; */ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { - protected Entity target = null; + protected Entity targetedEntity = null; + protected boolean wasNearGround = false; + public int courseChangeCooldown = 0; + public int aggroCooldown = 0; + public double waypointX; + public double waypointY; + public double waypointZ; + protected ChunkCoordinates spawnPoint = new ChunkCoordinates(); + public boolean lastInGround = false; public EntityBurrowingSwingingBase(World world) { super(world); + this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, null, 128.0D)); } @Override public void onUpdate() { + this.prevRotationYaw = this.rotationYaw; + this.prevRotationPitch = this.rotationPitch; super.onUpdate(); @@ -29,8 +56,26 @@ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { double dy = motionY; double dz = motionZ; float f3 = MathHelper.sqrt_double(dx * dx + dz * dz); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI); + this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI); + this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI); + + boolean inGround = isEntityInsideOpaqueBlock(); + + if(this.lastInGround != inGround) { + worldObj.playSoundAtEntity(this, "hbm:block.debris", 1.0F, 1.0F); + + double mod = 0.25D; + + if(inGround) + mod *= -1; + + for(int i = 0; i < 10; i++) { + double dev = 0.05D; + worldObj.spawnParticle("cloud", posX, posY, posZ, motionX * mod + rand.nextGaussian() * dev, motionY * mod + rand.nextGaussian() * dev, motionZ * mod + rand.nextGaussian() * dev); + } + } + + this.lastInGround = inGround; } @Override @@ -39,7 +84,7 @@ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { this.updateEntityActionState(); super.updateAITasks(); - swingingMovement(); + updateSwingingMovement(); } @Override @@ -48,17 +93,158 @@ public abstract class EntityBurrowingSwingingBase extends EntityBurrowingBase { if(!this.worldObj.isRemote && this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL) { setDead(); } - if((this.target != null) && (this.target.isDead)) { - this.target = null; + if((this.targetedEntity != null) && (this.targetedEntity.isDead)) { + this.targetedEntity = null; } if(this.posY < -10.0D) { this.motionY = 1D; } else if(this.posY < 3.0D) { this.motionY = 0.3D; } + + if(this.ticksExisted % 2 == 0) { + attackEntitiesInList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.5D, 0.5D, 0.5D))); + } + } + + protected void attackEntitiesInList(List targets) { + + for(Entity target : targets) { + if(target instanceof EntityLivingBase && canAttackClass(target.getClass())) { + attackEntityAsMob(target); + } + } + } + + @Override + public boolean attackEntityAsMob(Entity target) { + + boolean hit = target.attackEntityFrom(DamageSource.causeMobDamage(this), (float) getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue()); + + if(hit) { + this.entityAge = 0; + double tx = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + double tz = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + double ty = (this.boundingBox.minY + this.boundingBox.maxY) / 2.0D; + double deltaX = target.posX - tx; + double deltaZ = target.posZ - tz; + double deltaY = target.posY - ty; + double knockback = 0.5 * (deltaX * deltaX + deltaZ * deltaZ + deltaY * deltaY + 0.1D); + target.addVelocity(deltaX / knockback, deltaY / knockback, deltaZ / knockback); + } + + return hit; } - protected void swingingMovement() { + protected void updateSwingingMovement() { + + double deltaX = this.waypointX - this.posX; + double deltaY = this.waypointY - this.posY; + double deltaZ = this.waypointZ - this.posZ; + double delta = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + if(this.courseChangeCooldown-- <= 0) { + + this.courseChangeCooldown += this.getRNG().nextInt(5) + 5; + + double speed = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue(); + + if(!this.canSupportMovement()) { + speed /= 4D; + } + + this.motionX += deltaX / delta * speed; + this.motionY += deltaY / delta * speed; + this.motionZ += deltaZ / delta * speed; + } + + if(!this.canSupportMovement() && !this.wasNearGround) { + this.motionY -= this.getGravity(); + } + + this.aggroCooldown--; + + if(this.getAttackTarget() != null) { + + if(this.aggroCooldown <= 0) { + this.targetedEntity = this.getAttackTarget(); + this.aggroCooldown = getAggroCooldown(); + } + + } else if(this.targetedEntity == null) { + this.waypointX = this.spawnPoint.posX - 50 + this.getRNG().nextInt(100); + this.waypointY = this.spawnPoint.posY - 30 + this.getRNG().nextInt(60); + this.waypointZ = this.spawnPoint.posZ - 50 + this.getRNG().nextInt(100); + } + + this.rotationYaw = -(float) -(Math.atan2(this.motionX, this.motionZ) * 180.0F / Math.PI); + this.rotationPitch = (float) -(Math.atan2(this.motionY, MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI); + + double range = 100; + if(this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < range * range) { + + if(this.canSupportMovement() || this.wasNearGround) { + + this.waypointX = this.targetedEntity.posX; + this.waypointY = this.targetedEntity.posY + this.targetedEntity.height * 0.5; + this.waypointZ = this.targetedEntity.posZ; + + int surface = worldObj.getHeightValue(MathHelper.floor_double(this.waypointX), MathHelper.floor_double(this.waypointZ)); + + if(this.getRNG().nextInt(80) == 0 && this.posY > surface && !this.canSupportMovement()) { + this.wasNearGround = false; + } + + } else { + + this.waypointX = this.targetedEntity.posX; + this.waypointY = 10.0D; + this.waypointZ = this.targetedEntity.posZ; + + if(this.posY < 15.0D) { + this.wasNearGround = true; + } + } + } else { + this.waypointX = this.spawnPoint.posX - 20 + this.getRNG().nextInt(40); + this.waypointY = this.spawnPoint.posY - 5 + this.getRNG().nextInt(100); + this.waypointZ = this.spawnPoint.posZ - 20 + this.getRNG().nextInt(40); + } + } + + protected double getGravity() { + return 0.01; + } + + protected int getAggroCooldown() { + return 20; + } + + @Override + public void addVelocity(double x, double y, double z) { } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + super.writeEntityToNBT(nbt); + nbt.setInteger("spawnX", this.spawnPoint.posX); + nbt.setInteger("spawnY", this.spawnPoint.posY); + nbt.setInteger("spawnZ", this.spawnPoint.posZ); + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + super.readEntityFromNBT(nbt); + this.spawnPoint.set(nbt.getInteger("spawnX"), nbt.getInteger("spawnY"), nbt.getInteger("spawnZ")); + } + + public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) { + + int x = MathHelper.floor_double(this.posX); + int y = MathHelper.floor_double(this.posY); + int z = MathHelper.floor_double(this.posZ); + + this.spawnPoint.set(x, y, z); + + return super.onSpawnWithEgg(data); } } 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 9df56e2cf..7492c2a4c 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java @@ -4,8 +4,11 @@ import java.util.List; import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; +import com.hbm.explosion.ExplosionNukeSmall; +import com.hbm.handler.SiegeOrchestrator; import com.hbm.items.ModItems; import com.hbm.lib.ModDamageSource; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.util.ContaminationUtil; @@ -18,9 +21,12 @@ import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -35,6 +41,57 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData this.isImmuneToFire = true; this.ignoreFrustumCheck = true; } + + @Override + 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()) { + this.extinguish(); + return false; + } + + //noFF can't be harmed by other mobs + if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer)) + return false; + + damage -= tier.dt; + + if(damage < 0) { + worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F); + return false; + } + + damage *= (1F - tier.dr); + + return super.attackEntityFrom(source, damage); + } + + @Override + protected void onDeathUpdate() { + + this.beamCountdown = 200; + this.setBeam(false); + + this.motionY -= 0.05D; + + if(this.deathTime == 19 && !worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tinytot"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 0.5, posZ), new TargetPoint(this.dimension, posX, posY, posZ, 250)); + worldObj.playSoundEffect(posX, posY, posZ, "hbm:weapon.mukeExplosion", 15.0F, 1.0F); + } + + super.onDeathUpdate(); + } @Override protected void entityInit() { @@ -129,6 +186,10 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData double y = this.target.posY + this.target.height * 0.5; double z = this.target.posZ; this.setLockon(x, y, z); + + if(this.beamCountdown == 110) { + worldObj.playSoundAtEntity(this.target, "hbm:weapon.stingerLockOn", 2F, 0.75F); + } } if(this.beamCountdown >= 40 && this.beamCountdown < 100) { 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 98d004c4b..da940e4b8 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java @@ -1,14 +1,16 @@ package com.hbm.entity.mob.siege; import com.hbm.entity.mob.EntityBurrowingSwingingBase; +import com.hbm.handler.SiegeOrchestrator; -import net.minecraft.entity.EntityCreature; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAISwimming; import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; import net.minecraft.world.World; //cursed code ahead @@ -25,6 +27,40 @@ public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { public EntitySiegeTunneler(World world) { super(world); this.tasks.addTask(0, new EntityAISwimming(this)); + this.setSize(1F, 1F); + this.yOffset = 0.5F; + } + + @Override + 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()) { + this.extinguish(); + return false; + } + + //noFF can't be harmed by other mobs + if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer)) + return false; + + damage -= tier.dt; + + if(damage < 0) { + //worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F); + return false; + } + + damage *= (1F - tier.dr); + + return super.attackEntityFrom(source, damage); } @Override @@ -36,15 +72,17 @@ public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); + this.getAttributeMap().registerAttribute(SharedMonsterAttributes.attackDamage); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.15D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(1.0D); } public void setTier(SiegeTier tier) { this.getDataWatcher().updateObject(12, tier.id); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1)); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Tier Damage Mod", tier.damageMod, 1)); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health * 0.5); this.setHealth(this.getMaxHealth()); } diff --git a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java index b66d19177..908859d79 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRocketHoming.java @@ -303,8 +303,7 @@ public class EntityRocketHoming extends Entity implements IProjectile 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)); - System.out.println(list); - double d0 = 0.0D; + double d0 = 0.0D; int i; float f1; diff --git a/src/main/java/com/hbm/handler/SiegeOrchestrator.java b/src/main/java/com/hbm/handler/SiegeOrchestrator.java index 9cf5ce124..d1c7fd725 100644 --- a/src/main/java/com/hbm/handler/SiegeOrchestrator.java +++ b/src/main/java/com/hbm/handler/SiegeOrchestrator.java @@ -1,7 +1,9 @@ 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; @@ -140,12 +142,15 @@ public class SiegeOrchestrator { float f = world.rand.nextFloat(); - if(f < 0.1F) { + 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 EntitySiegeUFO(world); - ((EntitySiegeUFO)entity).setTier(tier); + entity = new EntitySiegeSkeleton(world); + ((EntitySiegeSkeleton)entity).setTier(tier); } else { entity = new EntitySiegeZombie(world); ((EntitySiegeZombie)entity).setTier(tier); @@ -178,6 +183,8 @@ public class SiegeOrchestrator { 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; } diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 711297671..54b95a577 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -169,6 +169,7 @@ public class HazardRegistry { HazardSystem.register(demon_core_open, makeData(RADIATION, 5F)); HazardSystem.register(demon_core_closed, makeData(RADIATION, 100_000F)); + HazardSystem.register(lamp_demon, makeData(RADIATION, 100_000F)); HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F)); HazardSystem.register(cell_sas3, makeData().addEntry(RADIATION, sas3).addEntry(BLINDING, 3F)); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 735d4c36d..ea9da8e23 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -223,6 +223,8 @@ public class OreDictManager { public static final DictFrame ANY_PLASTIC = new DictFrame("AnyPlastic"); //using the Any prefix means that it's jsut the secondary prefix, and that shape prefixes are applicable public static final DictFrame ANY_GUNPOWDER = new DictFrame("AnyPropellant"); public static final DictFrame ANY_SMOKELESS = new DictFrame("AnySmokeless"); + public static final DictFrame ANY_PLASTICEXPLOSIVE = new DictFrame("AnyPlasticexplosive"); + public static final DictFrame ANY_HIGHEXPLOSIVE = new DictFrame("AnyHighexplosive"); public static final DictFrame ANY_COKE = new DictFrame("AnyCoke", "Coke"); public static final DictFrame ANY_CONCRETE = new DictFrame("Concrete"); //no any prefix means that any has to be appended with the any() or anys() getters, registering works with the any (i.e. no shape) setter public static final DictFrame ANY_TAR = new DictFrame("Tar"); @@ -370,12 +372,14 @@ public class OreDictManager { /* * COLLECTIONS */ - ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer, powder_bakelite); - ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite); - ANY_SMOKELESS .dust(ballistite, cordite); - ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); - ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); - ANY_TAR .any(fromAll(oil_tar, EnumTarType.class)); + ANY_PLASTIC .ingot(ingot_polymer, ingot_bakelite).dust(powder_polymer, powder_bakelite); + ANY_GUNPOWDER .dust(Items.gunpowder, ballistite, cordite); + ANY_SMOKELESS .dust(ballistite, cordite); + ANY_PLASTICEXPLOSIVE .ingot(ingot_semtex); + ANY_HIGHEXPLOSIVE .ingot(ball_tnt); + ANY_CONCRETE .any(concrete, concrete_smooth, concrete_colored, concrete_asbestos, ducrete, ducrete_smooth); + ANY_COKE .gem(fromAll(coke, EnumCokeType.class)); + ANY_TAR .any(fromAll(oil_tar, EnumTarType.class)); OreDictionary.registerOre(KEY_OIL_TAR, fromOne(oil_tar, EnumTarType.CRUDE)); OreDictionary.registerOre(KEY_CRACK_TAR, fromOne(oil_tar, EnumTarType.CRACK)); diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 5968400e8..e857d5f15 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -45,6 +45,14 @@ public class FluidType { this.id = Fluids.registerSelf(this); } + public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) { + this(name, color, p, f, r, symbol); + + if(this.id != forcedId) { + throw new IllegalStateException("Howdy! I am a safeguard put into place by Bob to protect you, the player, from Bob's dementia. For whatever reason, Bob decided to either add or remove a fluid in a way that shifts the IDs, despite the entire system being built to prevent just that. Instead of people's fluids getting jumbled for the 500th time, I am here to prevent the game from starting entirely. The expected ID was " + forcedId + ", but turned out to be " + this.id + "."); + } + } + public FluidType setTemp(int temperature) { this.temperature = temperature; return this; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java index 493171e99..3f1702cd3 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java @@ -2,7 +2,6 @@ package com.hbm.inventory.fluid; import java.util.List; -import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.render.util.EnumSymbol; import com.hbm.util.BobMathUtil; @@ -31,7 +30,7 @@ public class FluidTypeCombustible extends FluidTypeFlammable { info.add(EnumChatFormatting.GOLD + "[Combustible]"); if(combustionEnergy > 0) { - info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket used in an engine"); + info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket"); info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade()); } } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java index 5ce3f8afb..fbd0aaf9a 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java @@ -2,7 +2,6 @@ package com.hbm.inventory.fluid; import java.util.List; -import com.hbm.inventory.fluid.FluidType.FluidTrait; import com.hbm.render.util.EnumSymbol; import com.hbm.util.BobMathUtil; @@ -30,6 +29,6 @@ public class FluidTypeFlammable extends FluidType { info.add(EnumChatFormatting.YELLOW + "[Flammable]"); if(energy > 0) - info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket burned"); + info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket"); } } diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index afee6285e..e60258b26 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -169,7 +169,7 @@ public class Fluids { DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); AROMATICS = new FluidTypeFlammable( "AROMATICS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); - SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); + SALIENT = new FluidType(69, "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); // ^ ^ ^ ^ ^ ^ ^ ^ diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 39ec3d7bb..54ec7ec31 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -153,14 +153,14 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.asbestos_cloth, 4), new AStack[] {new OreDictStack(ASBESTOS.ingot(), 2), new ComparableStack(Items.string, 6), new ComparableStack(Blocks.wool, 1), },50); makeRecipe(new ComparableStack(ModItems.filter_coal, 1), new AStack[] {new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 6), new ComparableStack(Items.paper, 1), },50); makeRecipe(new ComparableStack(ModItems.centrifuge_element, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.coil_tungsten, 1), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.motor, 1), },200); - makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },150); + makeRecipe(new ComparableStack(ModItems.centrifuge_tower, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },150); makeRecipe(new ComparableStack(ModItems.magnet_circular, 1), new AStack[] {new ComparableStack(ModBlocks.fusion_conductor, 5), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ALLOY.plate(), 6), },150); makeRecipe(new ComparableStack(ModItems.reactor_core, 1), new AStack[] {new OreDictStack(PB.ingot(), 8), new OreDictStack(BE.ingot(), 6), new OreDictStack(STEEL.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(FIBER.ingot(), 2) },100); makeRecipe(new ComparableStack(ModItems.rtg_unit, 1), new AStack[] {new ComparableStack(ModItems.thermo_element, 2), new ComparableStack(ModItems.board_copper, 1), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.circuit_copper, 1), },100); makeRecipe(new ComparableStack(ModItems.thermo_unit_empty, 1), new AStack[] {new ComparableStack(ModItems.coil_copper_torus, 3), new OreDictStack(STEEL.ingot(), 3), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.plate_polymer, 12), },100); makeRecipe(new ComparableStack(ModItems.levitation_unit, 1), new AStack[] {new ComparableStack(ModItems.coil_copper, 4), new ComparableStack(ModItems.coil_tungsten, 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.nugget_schrabidium, 2), },100); makeRecipe(new ComparableStack(ModItems.drill_titanium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new OreDictStack(TI.plate(), 6), },100); - makeRecipe(new ComparableStack(ModItems.telepad, 1), new AStack[] {new OreDictStack(POLYMER.ingot(), 12), new OreDictStack(SA326.plate(), 2), new OreDictStack(CMB.plate(), 4), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.wire_gold, 6), new ComparableStack(ModItems.circuit_schrabidium, 1), },300); + makeRecipe(new ComparableStack(ModItems.telepad, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(SA326.plate(), 2), new OreDictStack(CMB.plate(), 4), new OreDictStack(STEEL.plate(), 2), new ComparableStack(ModItems.wire_gold, 6), new ComparableStack(ModItems.circuit_schrabidium, 1), },300); makeRecipe(new ComparableStack(ModItems.entanglement_kit, 1), new AStack[] {new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(PB.plate(), 16), new OreDictStack(OreDictManager.getReflector(), 4), new ComparableStack(ModItems.singularity_counter_resonant, 1), new ComparableStack(ModItems.singularity_super_heated, 1), new ComparableStack(ModItems.powder_power, 4), },200); makeRecipe(new ComparableStack(ModItems.dysfunctional_reactor, 1), new AStack[] {new OreDictStack(STEEL.plate(), 15), new OreDictStack(PB.ingot(), 5), new ComparableStack(ModItems.rod_quad_empty, 10), new OreDictStack("dyeBrown", 3), },200); makeRecipe(new ComparableStack(ModItems.missile_assembly, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 1), new ComparableStack(ModItems.hull_small_aluminium, 4), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.wire_aluminium, 6), new ComparableStack(ModItems.canister_kerosene, 3), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); @@ -194,8 +194,8 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.hull_small_steel, 3), new ComparableStack(ModItems.plate_desh, 2), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.plate_polymer, 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); makeRecipe(new ComparableStack(ModItems.sat_head_scanner, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.magnetron, 6), new ComparableStack(ModItems.coil_advanced_torus, 2), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.plate_polymer, 6), new ComparableStack(Items.diamond, 1), },400); makeRecipe(new ComparableStack(ModItems.sat_head_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 32), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.wire_red_copper, 16), new ComparableStack(ModItems.coil_gold, 3), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(Items.diamond, 1), },400); - makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(POLYMER.ingot(), 6), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.board_copper, 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); - makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(POLYMER.ingot(), 48), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); + makeRecipe(new ComparableStack(ModItems.sat_head_laser, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(W.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 6), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModItems.board_copper, 24), new ComparableStack(ModItems.circuit_targeting_tier5, 2), new OreDictStack(REDSTONE.dust(), 16), new ComparableStack(Items.diamond, 5), new ComparableStack(Blocks.glass_pane, 16), },450); + makeRecipe(new ComparableStack(ModItems.sat_head_resonator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 48), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.crystal_xen, 1), new OreDictStack(STAR.ingot(), 7), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.circuit_targeting_tier6, 2), },1000); makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.ordinal()), new ComparableStack(ModItems.photo_panel, 16), new ComparableStack(ModItems.thruster_nuclear, 1), new ComparableStack(ModItems.ingot_uranium_fuel, 6), new ComparableStack(ModItems.circuit_targeting_tier5, 6), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },1200); makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {new OreDictStack(BIGMT.plate(), 24), new ComparableStack(ModItems.plate_desh, 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.centrifuge_element, 4), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {new ComparableStack(ModItems.ingot_meteorite, 4), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.drill_titanium, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 2), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.ordinal()), new ComparableStack(ModItems.thruster_small, 1), new ComparableStack(ModItems.photo_panel, 12), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.plate_polymer, 12), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },600); @@ -224,19 +224,19 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.pellet_advanced, 1), new AStack[] {new OreDictStack(DESH.ingot(), 5), new OreDictStack(IRON.plate(), 2), }, 200); makeRecipe(new ComparableStack(ModItems.upgrade_template, 1), new AStack[] {new OreDictStack(STEEL.plate(), 1), new OreDictStack(IRON.plate(), 4), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_copper, 6), },100); makeRecipe(new ComparableStack(ModItems.upgrade_speed_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(MINGRADE.dust(), 4), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_speed_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_1, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_speed_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_1, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_speed_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_speed_2, 1), new OreDictStack(MINGRADE.dust(), 2), new OreDictStack(REDSTONE.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_effect_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DURA.dust(), 4), new OreDictStack(STEEL.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_effect_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_1, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_effect_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_1, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_effect_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_effect_2, 1), new OreDictStack(DURA.dust(), 2), new OreDictStack(STEEL.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_power_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(LAPIS.dust(), 4), new ComparableStack(Items.glowstone_dust, 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_power_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_1, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_power_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_1, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_power_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_power_2, 1), new OreDictStack(LAPIS.dust(), 2), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(DIAMOND.dust(), 4), new OreDictStack(IRON.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_fortune_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_1, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_fortune_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_fortune_2, 1), new OreDictStack(DIAMOND.dust(), 2), new OreDictStack(IRON.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_1, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new OreDictStack(POLYMER.dust(), 4), new OreDictStack(W.dust(), 6), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 2), },300); + makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_2, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_1, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 4), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), },300); makeRecipe(new ComparableStack(ModItems.upgrade_afterburn_3, 1), new AStack[] {new ComparableStack(ModItems.upgrade_afterburn_2, 1), new OreDictStack(POLYMER.dust(), 2), new OreDictStack(W.dust(), 6), new OreDictStack(DESH.ingot(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_radius, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(DIAMOND.dust(), 4), },500); makeRecipe(new ComparableStack(ModItems.upgrade_health, 1), new AStack[] {new ComparableStack(ModItems.upgrade_template, 1), new ComparableStack(Items.glowstone_dust, 6), new OreDictStack(TI.dust(), 4), },500); @@ -258,15 +258,15 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.cmb_brick, 8), new AStack[] {new OreDictStack(CMB.ingot(), 1), new OreDictStack(CMB.plate(), 8), },100); makeRecipe(new ComparableStack(ModBlocks.cmb_brick_reinforced, 8), new AStack[] {new ComparableStack(ModBlocks.block_magnetized_tungsten, 4), new ComparableStack(ModBlocks.brick_concrete, 4), new ComparableStack(ModBlocks.cmb_brick, 1), new OreDictStack(STEEL.plate(), 4), },200); makeRecipe(new ComparableStack(ModBlocks.seal_frame, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(REDSTONE.dust(), 2), new ComparableStack(ModBlocks.steel_roof, 5), },50); - makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(POLYMER.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); + makeRecipe(new ComparableStack(ModBlocks.seal_controller, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(MINGRADE.ingot(), 1), new OreDictStack(REDSTONE.dust(), 4), new ComparableStack(ModBlocks.steel_roof, 5), },100); makeRecipe(new ComparableStack(ModBlocks.machine_centrifuge, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 4), new OreDictStack(IRON.ingot(), 4), new OreDictStack(STEEL.plate(), 2), new OreDictStack(CU.plate(), 2), new ComparableStack(ModItems.wire_red_copper, 8), },250); makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_tower, 1), new OreDictStack(STEEL.ingot(), 8), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.wire_red_copper, 32) },300); makeRecipe(new ComparableStack(ModBlocks.machine_rtg_furnace_off, 1), new AStack[] {new ComparableStack(Blocks.furnace, 1), new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(PB.plate(), 6), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(CU.plate(), 2), },150); makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new ComparableStack(ModItems.hull_small_steel, 4), new ComparableStack(Blocks.piston, 4), new OreDictStack(STEEL.ingot(), 6), new OreDictStack(MINGRADE.ingot(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 6), },200); makeRecipe(new ComparableStack(ModBlocks.machine_selenium, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(TI.plate(), 6), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_small_steel, 9), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.coil_copper, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(POLYMER.ingot(), 3), },200); + makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200); makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(POLYMER.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12), new OreDictStack(ALLOY.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 4), },400); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12), new OreDictStack(SA326.ingot(), 2), new ComparableStack(ModItems.wire_schrabidium, 4), },800); makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 8), },1600); makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_red_copper, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2), new ComparableStack(ModBlocks.red_wire_coated, 1), },200); @@ -281,11 +281,11 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(TCALLOY.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150); makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(TCALLOY.ingot(), 12), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.machine_drill, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(STEEL.ingot(), 4), new ComparableStack(ModItems.wire_red_copper, 4), new ComparableStack(ModItems.circuit_copper, 1), new ComparableStack(ModItems.motor, 1), new OreDictStack(DURA.ingot(), 2), new ComparableStack(ModItems.bolt_dura_steel, 2), new ComparableStack(ModItems.drill_titanium, 1), },200); - makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(POLYMER.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); + makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.bolt_dura_steel, 6), new ComparableStack(ModBlocks.machine_battery, 3), },400); makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {new ComparableStack(ModItems.hull_big_steel, 1), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.hull_small_steel, 2), new ComparableStack(ModItems.turbine_tungsten, 1), new ComparableStack(ModItems.turbine_titanium, 7), new ComparableStack(ModItems.bolt_compound, 8), new OreDictStack(MINGRADE.ingot(), 12), new ComparableStack(ModItems.wire_red_copper, 24), },500); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 6), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(CMB.plate(), 4), new ComparableStack(ModItems.telepad, 1), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), new OreDictStack(TI.ingot(), 24), new OreDictStack(ALLOY.plate(), 18), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_desh, 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit_gold, 5), },500); - makeRecipe(new ComparableStack(ModBlocks.machine_combine_factory, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(POLYMER.ingot(), 6), new OreDictStack(TI.plate(), 4), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.coil_advanced_alloy, 8), new ComparableStack(ModItems.coil_tungsten, 4), new OreDictStack(MAGTUNG.ingot(), 12), },150); + makeRecipe(new ComparableStack(ModBlocks.machine_combine_factory, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(TI.plate(), 4), new OreDictStack(CU.plate(), 6), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.coil_advanced_alloy, 8), new ComparableStack(ModItems.coil_tungsten, 4), new OreDictStack(MAGTUNG.ingot(), 12), },150); makeRecipe(new ComparableStack(ModBlocks.factory_advanced_hull, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.wire_advanced_alloy, 6), },50); makeRecipe(new ComparableStack(ModBlocks.factory_advanced_furnace, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_advanced_alloy, 2), },100); makeRecipe(new ComparableStack(ModBlocks.factory_advanced_core, 1), new AStack[] {new OreDictStack(ALLOY.ingot(), 6), new OreDictStack(ALLOY.plate(), 6), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_advanced_alloy, 2), new ComparableStack(ModItems.motor, 16), new ComparableStack(Blocks.piston, 6), },100); @@ -319,7 +319,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.float_bomb, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.levitation_unit, 1), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.wire_gold, 6), },250); makeRecipe(new ComparableStack(ModBlocks.therm_endo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_endo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.thermo_unit_exo, 1), new ComparableStack(ModItems.circuit_gold, 2), new ComparableStack(ModItems.wire_gold, 6), },250); - makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(POLYMER.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); + makeRecipe(new ComparableStack(ModBlocks.launch_pad, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.machine_battery, 1), new ComparableStack(ModItems.circuit_gold, 2), },250); makeRecipe(new ComparableStack(ModItems.spawn_chopper, 1), new AStack[] {new ComparableStack(ModItems.chopper_blades, 5), new ComparableStack(ModItems.chopper_gun, 1), new ComparableStack(ModItems.chopper_head, 1), new ComparableStack(ModItems.chopper_tail, 1), new ComparableStack(ModItems.chopper_torso, 1), new ComparableStack(ModItems.chopper_wing, 2), },300); //makeRecipe(new ComparableStack(ModBlocks.turret_light, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 6), new ComparableStack(ModItems.pipes_steel, 2), new OreDictStack(MINGRADE.ingot(), 2), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier2, 2), },200); //makeRecipe(new ComparableStack(ModBlocks.turret_heavy, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(AL.ingot(), 4), new ComparableStack(ModItems.pipes_steel, 2), new ComparableStack(ModItems.hull_small_steel, 1), new OreDictStack(MINGRADE.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier2, 3), },250); @@ -347,7 +347,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.missile_volcano, 1), new AStack[] {new ComparableStack(ModItems.warhead_volcano, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 20), new OreDictStack(STEEL.plate(), 24), new OreDictStack(AL.plate(), 16), new ComparableStack(ModItems.circuit_targeting_tier5, 1), },600); makeRecipe(new ComparableStack(ModItems.missile_endo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_endo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); makeRecipe(new ComparableStack(ModItems.missile_exo, 1), new AStack[] {new ComparableStack(ModItems.warhead_thermo_exo, 1), new ComparableStack(ModItems.fuel_tank_large, 1), new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(TI.plate(), 14), new OreDictStack(STEEL.plate(), 20), new OreDictStack(AL.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier4, 1), },350); - makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(POLYMER.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); + makeRecipe(new ComparableStack(ModItems.gun_defabricator, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(IRON.plate(), 5), new ComparableStack(ModItems.mechanism_special, 3), new ComparableStack(Items.diamond, 1), new ComparableStack(ModItems.plate_dalekanium, 3), },200); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo, 24), new AStack[] {new OreDictStack(STEEL.plate(), 2), new OreDictStack(REDSTONE.dust(), 1), new ComparableStack(Items.glowstone_dust, 1), },50); makeRecipe(new ComparableStack(ModItems.gun_osipr_ammo2, 1), new AStack[] {new OreDictStack(CMB.plate(), 4), new OreDictStack(REDSTONE.dust(), 7), new ComparableStack(ModItems.powder_power, 3), },200); makeRecipe(new ComparableStack(ModItems.grenade_fire, 1), new AStack[] {new ComparableStack(ModItems.grenade_frag, 1), new OreDictStack(P_RED.dust(), 1), new OreDictStack(CU.plate(), 2), },150); @@ -361,7 +361,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.grenade_schrabidium, 1), new AStack[] {new ComparableStack(ModItems.grenade_flare, 1), new OreDictStack(SA326.dust(), 1), new OreDictStack(OreDictManager.getReflector(), 2), },300); makeRecipe(new ComparableStack(ModItems.grenade_nuclear, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new OreDictStack(STEEL.plate(), 1), new OreDictStack(PU239.nugget(), 2), new ComparableStack(ModItems.wire_red_copper, 2), },200); makeRecipe(new ComparableStack(ModItems.grenade_zomg, 1), new AStack[] {new ComparableStack(ModItems.plate_paa, 3), new OreDictStack(OreDictManager.getReflector(), 1), new ComparableStack(ModItems.coil_magnetized_tungsten, 3), new ComparableStack(ModItems.powder_power, 3), },300); - makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(POLYMER.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); + makeRecipe(new ComparableStack(ModItems.grenade_black_hole, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1), },500); makeRecipe(new ComparableStack(ModItems.gadget_explosive, 1), new AStack[] {new ComparableStack(Blocks.tnt, 3), new OreDictStack(STEEL.plate(), 2), new OreDictStack(AL.plate(), 4), new ComparableStack(ModItems.wire_gold, 3), },200); makeRecipe(new ComparableStack(ModItems.gadget_wireing, 1), new AStack[] {new OreDictStack(IRON.plate(), 1), new ComparableStack(ModItems.wire_gold, 12), },100); makeRecipe(new ComparableStack(ModItems.gadget_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 7), new OreDictStack(U238.nugget(), 3), },200); @@ -388,7 +388,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.ams_limiter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 6), new OreDictStack(STEEL.plate(), 24), new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.crystal_diamond, 1)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_emitter, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 24), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModItems.crystal_redstone, 5), new ComparableStack(ModBlocks.machine_lithium_battery)}, 600); makeRecipe(new ComparableStack(ModBlocks.ams_base, 1), new AStack[] {new ComparableStack(ModItems.board_copper, 12), new OreDictStack(STEEL.plate(), 28), new ComparableStack(ModBlocks.steel_scaffold, 30), new ComparableStack(ModBlocks.steel_grate, 8), new ComparableStack(ModBlocks.barrel_steel, 2)}, 600); - makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 16), new OreDictStack(POLYMER.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); + makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.plate_polymer, 24), new ComparableStack(ModItems.magnetron, 10), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit_gold, 4), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit_targeting_tier5, 1), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModBlocks.deco_pipe_quad, 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); @@ -459,7 +459,7 @@ public class AssemblerRecipes { new OreDictStack(W.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), - new OreDictStack(POLYMER.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 8), new ComparableStack(ModItems.circuit_bismuth, 1) }, 600); @@ -508,7 +508,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), - new OreDictStack(POLYMER.ingot(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 24), new ComparableStack(ModItems.plate_polymer, 64), new ComparableStack(ModItems.board_copper, 8), new ComparableStack(ModItems.circuit_red_copper, 8), @@ -668,7 +668,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.turret_tauon, 1), new AStack[] { new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(POLYMER.ingot(), 4), + new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 1), new ComparableStack(ModItems.motor_desh, 1), @@ -683,7 +683,7 @@ public class AssemblerRecipes { new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit_targeting_tier4, 1), - new OreDictStack(POLYMER.ingot(), 2), + new OreDictStack(ANY_PLASTIC.ingot(), 2), new ComparableStack(ModItems.hull_small_steel, 8), new ComparableStack(ModItems.mechanism_launcher_2, 1), new ComparableStack(ModBlocks.crate_steel, 1), @@ -741,7 +741,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_lithium_battery, 2), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 24), - new OreDictStack(POLYMER.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 4), new ComparableStack(ModItems.wire_red_copper, 64), new ComparableStack(ModItems.coil_advanced_torus, 16), @@ -842,7 +842,7 @@ public class AssemblerRecipes { new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), - new OreDictStack(POLYMER.ingot(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 24), new ComparableStack(ModItems.plate_polymer, 64), new ComparableStack(ModItems.board_copper, 8), new ComparableStack(ModItems.circuit_red_copper, 8), @@ -862,7 +862,7 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.hadron_core, 1), new AStack[] { new ComparableStack(ModBlocks.hadron_coil_alloy, 24), new OreDictStack(STEEL.ingot(), 8), - new OreDictStack(POLYMER.ingot(), 16), + new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(TCALLOY.ingot(), 8), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_schrabidium, 5), @@ -874,7 +874,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_battery, 3), new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(POLYMER.ingot(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.circuit_red_copper, 5), new ComparableStack(ModItems.circuit_tantalium, 15), }, 200); @@ -883,7 +883,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModBlocks.steel_scaffold, 10), new OreDictStack(STEEL.ingot(), 24), - new OreDictStack(POLYMER.ingot(), 12), + new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_tantalium, 25), }, 200); @@ -892,7 +892,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.machine_lithium_battery, 5), new ComparableStack(ModBlocks.steel_scaffold, 24), new OreDictStack(STEEL.ingot(), 32), - new OreDictStack(POLYMER.ingot(), 24), + new OreDictStack(ANY_PLASTIC.ingot(), 24), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.upgrade_power_3, 3), new ComparableStack(ModItems.circuit_tantalium, 100), @@ -914,7 +914,7 @@ public class AssemblerRecipes { new ComparableStack(ModBlocks.steel_scaffold, 16), new ComparableStack(ModItems.hull_big_steel, 4), new ComparableStack(ModItems.tank_steel, 3), - new OreDictStack(POLYMER.ingot(), 4), + new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), new ComparableStack(ModItems.catalyst_clay, 12), }, 300); 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 cf49930bc..5dda19898 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -147,7 +147,7 @@ public class AnvilRecipes { new AStack[] {new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus)}, new AnvilOutput(new ItemStack(ModItems.motor, 2))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe( - new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(POLYMER.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, + new AStack[] {new ComparableStack(ModItems.motor), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(DESH.ingot(), 2), new ComparableStack(ModItems.coil_gold_torus)}, new AnvilOutput(new ItemStack(ModItems.motor_desh, 1))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe( @@ -173,7 +173,7 @@ public class AnvilRecipes { new AStack[] { new OreDictStack(STEEL.ingot(), 6), new OreDictStack(IRON.plate(), 8), - new OreDictStack(POLYMER.ingot(), 4), + new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.generator_steel, 2), new ComparableStack(ModItems.turbine_titanium, 1), new ComparableStack(ModItems.thermo_element, 3), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 8c481e882..25487dab4 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -371,6 +371,7 @@ public class ModItems { public static Item gem_tantalium; public static Item gem_volcanic; + public static Item gem_alexandrite; public static Item powder_lead; public static Item powder_tantalium; @@ -2837,6 +2838,7 @@ public class ModItems { crystal_osmiridium = new Item().setUnlocalizedName("crystal_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_osmiridium"); gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); + gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); powder_tantalium = new ItemCustomLore().setUnlocalizedName("powder_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_tantalium"); @@ -5889,6 +5891,7 @@ public class ModItems { GameRegistry.registerItem(crystal_osmiridium, crystal_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); + GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); //Fragments GameRegistry.registerItem(fragment_neodymium, fragment_neodymium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/special/ItemAlexandrite.java b/src/main/java/com/hbm/items/special/ItemAlexandrite.java new file mode 100644 index 000000000..73e55391a --- /dev/null +++ b/src/main/java/com/hbm/items/special/ItemAlexandrite.java @@ -0,0 +1,64 @@ +package com.hbm.items.special; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.texture.TextureUtil; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.world.EnumSkyBlock; + +public class ItemAlexandrite extends Item { + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister register) { + if(register instanceof TextureMap) { + TextureMap map = (TextureMap) register; + TextureAlexandrite gemTexture = new TextureAlexandrite(this.getIconString()); + map.setTextureEntry(this.getIconString(), gemTexture); + this.itemIcon = gemTexture; + } else { + this.itemIcon = register.registerIcon(this.getIconString()); + } + } + + @SideOnly(Side.CLIENT) + public class TextureAlexandrite extends TextureAtlasSprite { + + protected TextureAlexandrite(String texture) { + super(texture); + } + + private int lastLight = 0; + + @Override + public void updateAnimation() { + + if(Minecraft.getMinecraft().theWorld == null) + return; + + EntityPlayer player = MainRegistry.proxy.me(); + + if(player == null) + return; + + int x = (int) Math.floor(player.posX); + int y = (int) Math.floor(player.posY); + int z = (int) Math.floor(player.posZ); + + int light = player.worldObj.getSavedLightValue(EnumSkyBlock.Block, x, y, z); + + if(light != lastLight) { + lastLight = light; + + this.frameCounter = light; + TextureUtil.uploadTextureMipmap((int[][]) this.framesTextureData.get(this.frameCounter), this.width, this.height, this.originX, this.originY, false, false); + } + } + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index b8820fd55..dd61128ba 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -29,6 +29,7 @@ public class ItemWandD extends Item { EntitySiegeTunneler tunneler = new EntitySiegeTunneler(world); tunneler.setPosition(pos.blockX, pos.blockY + 1, pos.blockZ); + tunneler.onSpawnWithEgg(null); world.spawnEntityInWorld(tunneler); //CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 2662fea0a..a5442ede4 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -75,6 +75,9 @@ public class HbmWorldGen implements IWorldGenerator { if(WorldConfig.explosivebubbleSpawn > 0 && rand.nextInt(WorldConfig.explosivebubbleSpawn) == 0) DungeonToolbox.generateOre(world, rand, i, j, 1, 32, 30, 10, ModBlocks.gas_explosive, 1); + if(WorldConfig.alexandriteSpawn > 0 && rand.nextInt(WorldConfig.alexandriteSpawn) == 0) + DungeonToolbox.generateOre(world, rand, i, j, 1, 3, 10, 5, ModBlocks.ore_alexandrite); + DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_iron, rand, 24); DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_titanium, rand, 32); DepthDeposit.generateConditionOverworld(world, i, 0, 3, j, 5, 0.6D, ModBlocks.cluster_depth_tungsten, rand, 32); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 035718e67..ed3c39984 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4130H1)"; + public static final String VERSION = "1.0.27 BETA (4144)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index f23e51ec0..e8df39f6c 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -73,7 +73,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.bolt_tungsten, 4), new Object[] { "D", "D", 'D', W.ingot() }); addRecipeAuto(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', COAL.dust(), 'F', Items.flint, 'O', ModBlocks.gravel_obsidian }); - addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', FIBER.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ASBESTOS.ingot()}); addRecipeAuto(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.string, 'W', Blocks.wool }); @@ -83,7 +83,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.marker_structure, 1), new Object[] { "L", "G", "R", 'L', LAPIS.dust(), 'G', Items.glowstone_dust, 'R', Blocks.redstone_torch }); addRecipeAuto(new ItemStack(ModItems.circuit_raw, 1), new Object[] { "A", "R", "S", 'S', STEEL.plate(), 'R', REDSTONE.dust(), 'A', ModItems.wire_aluminium }); - addRecipeAuto(new ItemStack(ModItems.circuit_bismuth_raw, 1), new Object[] { "RPR", "ABA", "RPR", 'R', REDSTONE.dust(), 'P', POLYMER.ingot(), 'A', (GeneralConfig.enable528 ? ModItems.circuit_tantalium : ASBESTOS.ingot()), 'B', ModItems.ingot_bismuth }); + addRecipeAuto(new ItemStack(ModItems.circuit_bismuth_raw, 1), new Object[] { "RPR", "ABA", "RPR", 'R', REDSTONE.dust(), 'P', ANY_PLASTIC.ingot(), 'A', (GeneralConfig.enable528 ? ModItems.circuit_tantalium : ASBESTOS.ingot()), 'B', ModItems.ingot_bismuth }); addRecipeAuto(new ItemStack(ModItems.circuit_tantalium_raw, 1), new Object[] { "RWR", "PTP", "RWR", 'R', REDSTONE.dust(), 'W', ModItems.wire_gold, 'P', CU.plate(), 'T', TA.nugget() }); addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier1, 1), new Object[] { "CPC", 'C', ModItems.circuit_aluminium, 'P', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModItems.circuit_targeting_tier2, 1), new Object[] { "CPC", 'C', ModItems.circuit_copper, 'P', NETHERQUARTZ.dust() }); @@ -171,7 +171,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.tank_steel, 2), new Object[] { "STS", "S S", "STS", 'S', STEEL.plate(), 'T', TI.plate() }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper }); - addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', POLYMER.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); + addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten }); //addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE }); //addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() }); @@ -202,7 +202,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.generator_steel, 1), new Object[] { "RRR", "CCC", "SSS", 'C', ModItems.coil_gold_torus, 'S', STEEL.ingot(), 'R', ModItems.rotor_steel }); addRecipeAuto(new ItemStack(ModItems.shimmer_head, 1), new Object[] { "SSS", "DTD", "SSS", 'S', STEEL.ingot(), 'D', DESH.block(), 'T', W.block() }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe_head, 1), new Object[] { "PII", "PBB", "PII", 'P', STEEL.plate(), 'B', DESH.block(), 'I', W.ingot() }); - addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', GOLD.plate(), 'P', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.shimmer_sledge, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_head }); addRecipeAuto(new ItemStack(ModItems.shimmer_axe, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_axe_head }); addRecipeAuto(new ItemStack(ModItems.definitelyfood, 1), new Object[] { "DDD", "SDS", "DDD", 'D', Blocks.dirt, 'S', STEEL.plate() }); @@ -342,7 +342,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_1, 1), new Object[] { "ICI", "CMA", "IAM", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot(), 'M', ModItems.mechanism_revolver_1 }); addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ICI", "CMA", "IAM", 'I', ALLOY.plate(), 'C', DURA.ingot(), 'A', W.ingot(), 'M', ModItems.mechanism_revolver_2 }); addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', ModItems.bolt_tungsten, 'I', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', POLYMER.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); + addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', ModItems.bolt_dura_steel, 'I', DESH.ingot() }); addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', ModItems.circuit_targeting_tier3 }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.fwatz_cooler), 1), new Object[] { "IPI", "IPI", "IPI", 'I', TI.ingot(), 'P', TI.plate() }); @@ -438,7 +438,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.stamp_9, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_9 }); addRecipeAuto(new ItemStack(ModItems.stamp_50, 1), new Object[] { "RSR", "III", " C ", 'R', REDSTONE.dust(), 'S', ModItems.stamp_iron_flat, 'I', ModItems.plate_polymer, 'C', ModItems.casing_50 }); - addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', POLYMER.ingot(), 'C', ModBlocks.crate_iron }); + addRecipeAuto(new ItemStack(ModBlocks.sat_dock, 1), new Object[] { "SSS", "PCP", 'S', STEEL.ingot(), 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.crate_iron }); addRecipeAuto(new ItemStack(ModBlocks.book_guide, 1), new Object[] { "IBI", "LBL", "IBI", 'B', Items.book, 'I', KEY_BLACK, 'L', KEY_BLUE }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.rail_highspeed), 16), new Object[] { "S S", "SIS", "S S", 'S', STEEL.ingot(), 'I', IRON.plate() }); @@ -519,15 +519,15 @@ public class CraftingManager { addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potato), new Object[] { Items.potato, ModItems.wire_aluminium, ModItems.wire_copper }); addShapelessAuto(ItemBattery.getFullBattery(ModItems.battery_potatos), new Object[] { ItemBattery.getFullBattery(ModItems.battery_potato), ModItems.turret_chip, REDSTONE.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam), new Object[] { "PMP", "ISI", "PCP", 'P', CU.plate(), 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_tank_full, 1, Fluids.WATER.getID()), 'I', ModItems.plate_polymer }); - addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam_large), new Object[] { "MPM", "ISI", "CPC", 'P', ModItems.board_copper, 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.WATER.getID()), 'I', POLYMER.ingot() }); + addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_steam_large), new Object[] { "MPM", "ISI", "CPC", 'P', ModItems.board_copper, 'M', ModItems.motor, 'C', ModItems.coil_tungsten, 'S', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.WATER.getID()), 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.battery_sc_uranium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', U238.billet(), 'P', PB.plate(), 'C', ModItems.thermo_element }); addRecipeAuto(new ItemStack(ModItems.battery_sc_technetium), new Object[] { "NBN", "PCP", "NBN", 'N', GOLD.nugget(), 'B', TC99.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_uranium }); addRecipeAuto(new ItemStack(ModItems.battery_sc_plutonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PU238.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_technetium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_polonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PO210.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_plutonium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_polonium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_gold }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_lead }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_polonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PO210.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_plutonium }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_polonium }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_gold }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', ANY_PLASTIC.ingot(), 'C', ModItems.battery_sc_lead }); addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.tank_waste, 1), new Object[] { "PTP", "PTP", "PTP", 'T', ModItems.tank_steel, 'P', STEEL.plate() }); @@ -548,9 +548,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.padlock_reinforced, 1), new Object[] { " P ", "PBP", "PDP", 'P', ALLOY.plate(), 'D', ModItems.plate_desh, 'B', ModItems.bolt_dura_steel }); addRecipeAuto(new ItemStack(ModItems.padlock_unbreakable, 1), new Object[] { " P ", "PBP", "PDP", 'P', BIGMT.plate(), 'D', DIAMOND.gem(), 'B', ModItems.bolt_dura_steel }); - addRecipeAuto(new ItemStack(ModItems.record_lc, 1), new Object[] { " S ", "SDS", " S ", 'S', POLYMER.ingot(), 'D', LAPIS.dust() }); - addRecipeAuto(new ItemStack(ModItems.record_ss, 1), new Object[] { " S ", "SDS", " S ", 'S', POLYMER.ingot(), 'D', ALLOY.dust() }); - addRecipeAuto(new ItemStack(ModItems.record_vc, 1), new Object[] { " S ", "SDS", " S ", 'S', POLYMER.ingot(), 'D', CMB.dust() }); + addRecipeAuto(new ItemStack(ModItems.record_lc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', LAPIS.dust() }); + addRecipeAuto(new ItemStack(ModItems.record_ss, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', ALLOY.dust() }); + addRecipeAuto(new ItemStack(ModItems.record_vc, 1), new Object[] { " S ", "SDS", " S ", 'S', ANY_PLASTIC.ingot(), 'D', CMB.dust() }); addRecipeAuto(new ItemStack(ModItems.polaroid, 1), new Object[] { " C ", "RPY", " B ", 'B', LAPIS.dust(), 'C', COAL.dust(), 'R', ALLOY.dust(), 'Y', GOLD.dust(), 'P', Items.paper }); @@ -591,7 +591,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_satlinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', STAR.ingot(), 'C', ModItems.sat_chip }); addRecipeAuto(new ItemStack(ModBlocks.machine_telelinker), new Object[] { "PSP", "SCS", "PSP", 'P', STEEL.plate(), 'S', ALLOY.ingot(), 'C', ModItems.turret_biometry }); addRecipeAuto(new ItemStack(ModBlocks.machine_keyforge), new Object[] { "PCP", "WSW", "WSW", 'P', STEEL.plate(), 'S', W.ingot(), 'C', ModItems.padlock, 'W', KEY_PLANKS }); - addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModItems.sat_chip), new Object[] { "WWW", "CIC", "WWW", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.sat_mapper), new Object[] { "H", "B", 'H', ModItems.sat_head_mapper, 'B', ModItems.sat_base }); addRecipeAuto(new ItemStack(ModItems.sat_scanner), new Object[] { "H", "B", 'H', ModItems.sat_head_scanner, 'B', ModItems.sat_base }); addRecipeAuto(new ItemStack(ModItems.sat_radar), new Object[] { "H", "B", 'H', ModItems.sat_head_radar, 'B', ModItems.sat_base }); @@ -621,7 +621,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fwatz_conductor, 'C', ModItems.circuit_targeting_tier6 }); addRecipeAuto(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', STAR.ingot(), 'D', DESH.ingot(), 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 }); addRecipeAuto(new ItemStack(ModBlocks.radiobox), new Object[] { "PLP", "PSP", "PLP", 'P', STEEL.plate(), 'S', ModItems.ring_starmetal, 'C', ModItems.fusion_core, 'L', getReflector() }); - addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', POLYMER.ingot() }); + addRecipeAuto(new ItemStack(ModBlocks.radiorec), new Object[] { " W", "PCP", "PIP", 'W', ModItems.wire_copper, 'P', STEEL.plate(), 'C', ModItems.circuit_red_copper, 'I', ANY_PLASTIC.ingot() }); addRecipeAuto(new ItemStack(ModItems.jackt), new Object[] { "S S", "LIL", "LIL", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); addRecipeAuto(new ItemStack(ModItems.jackt2), new Object[] { "S S", "LIL", "III", 'S', STEEL.plate(), 'L', Items.leather, 'I', ModItems.plate_polymer }); addRecipeAuto(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', IRON.plate(), 'G', Blocks.iron_bars, 'C', ModItems.pellet_gas, 'D', Blocks.dispenser }); @@ -635,7 +635,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); addRecipeAuto(new ItemStack(ModBlocks.absorber_red, 1), new Object[] { "ICI", "CPC", "ICI", 'I', TI.ingot(), 'C', COAL.dust(), 'P', ModBlocks.absorber }); - addRecipeAuto(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', POLYMER.ingot(), 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }); + addRecipeAuto(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', ANY_PLASTIC.ingot(), 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }); addRecipeAuto(new ItemStack(ModBlocks.absorber_pink, 1), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix, 'P', ModBlocks.absorber_green }); addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', ModBlocks.absorber }); addRecipeAuto(new ItemStack(ModBlocks.machine_amgen, 1), new Object[] { "ITI", "TAT", "ITI", 'I', ALLOY.ingot(), 'T', ModItems.thermo_element, 'A', ModBlocks.absorber }); @@ -653,6 +653,7 @@ public class CraftingManager { addShapelessAuto(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.assembly_template, 1, OreDictionary.WILDCARD_VALUE) }); addShapelessAuto(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.chemistry_template, 1, OreDictionary.WILDCARD_VALUE) }); + addShapelessAuto(new ItemStack(ModItems.plate_iron, 1), new Object[] { new ItemStack(ModItems.fluid_identifier, 1, OreDictionary.WILDCARD_VALUE) }); for(int i = 1; i < Fluids.getAll().length; ++i) { addShapelessAuto(new ItemStack(ModItems.fluid_duct, 1, i), new Object[] { new ItemStack(ModBlocks.fluid_duct, 1), new ItemStack(ModItems.fluid_identifier, 1, i) }); @@ -735,7 +736,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "ITI", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot(), 'T', ANY_TAR.any() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); - addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', POLYMER.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); + addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); addRecipeAuto(new ItemStack(ModBlocks.struct_plasma_core, 1), new Object[] { "CBC", "BHB", "CBC", 'C', ModItems.circuit_gold, 'B', ModBlocks.machine_lithium_battery, 'H', ModBlocks.fusion_heater }); addShapelessAuto(new ItemStack(ModItems.circuit_red_copper, 48), new Object[] { ModBlocks.fusion_core }); addShapelessAuto(new ItemStack(ModBlocks.fusion_heater), new Object[] { ModBlocks.fusion_hatch }); @@ -744,7 +745,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.upgrade_nullifier, 1), new Object[] { "SPS", "PUP", "SPS", 'S', STEEL.plate(), 'P', ModItems.powder_fire, 'U', ModItems.upgrade_template }); addRecipeAuto(new ItemStack(ModItems.upgrade_smelter, 1), new Object[] { "PHP", "CUC", "DTD", 'P', CU.plate(), 'H', Blocks.hopper, 'C', ModItems.coil_tungsten, 'U', ModItems.upgrade_template, 'D', ModItems.coil_copper, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_shredder, 1), new Object[] { "PHP", "CUC", "DTD", 'P', ModItems.motor, 'H', Blocks.hopper, 'C', ModItems.blades_advanced_alloy, 'U', ModItems.upgrade_smelter, 'D', TI.plate(), 'T', ModBlocks.machine_transformer }); - addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', POLYMER.ingot(), 'T', ModBlocks.machine_transformer }); + addRecipeAuto(new ItemStack(ModItems.upgrade_centrifuge, 1), new Object[] { "PHP", "PUP", "DTD", 'P', ModItems.centrifuge_element, 'H', Blocks.hopper, 'U', ModItems.upgrade_shredder, 'D', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_crystallizer, 1), new Object[] { "PHP", "CUC", "DTD", 'P', new ItemStack(ModItems.fluid_barrel_full, 1, Fluids.ACID.getID()), 'H', ModItems.circuit_targeting_tier4, 'C', ModBlocks.barrel_steel, 'U', ModItems.upgrade_centrifuge, 'D', ModItems.motor, 'T', ModBlocks.machine_transformer }); addRecipeAuto(new ItemStack(ModItems.upgrade_screm, 1), new Object[] { "SUS", "SCS", "SUS", 'S', STEEL.plate(), 'U', ModItems.upgrade_template, 'C', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModItems.upgrade_gc_speed, 1), new Object[] {"TCT", "HUH", "TCT", 'T', ModItems.nugget_bismuth, 'C', ModItems.coil_copper, 'H', ModItems.coil_tungsten, 'U', ModItems.upgrade_template}); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java index 7fb1b4339..1bd1ac83d 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java @@ -2,6 +2,8 @@ package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; +import com.hbm.entity.mob.siege.EntitySiegeTunneler; +import com.hbm.entity.mob.siege.SiegeTier; import com.hbm.lib.RefStrings; import com.hbm.render.loader.HFRWavefrontObject; @@ -17,7 +19,6 @@ public class RenderSiegeTunneler extends Render { } public static final IModelCustom body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/tunneler.obj")); - public static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/entity/siege_drill.png"); @Override public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { @@ -41,7 +42,12 @@ public class RenderSiegeTunneler extends Render { } @Override - protected ResourceLocation getEntityTexture(Entity p_110775_1_) { - return texture; + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntitySiegeTunneler) entity); + } + + protected ResourceLocation getEntityTexture(EntitySiegeTunneler entity) { + SiegeTier tier = entity.getTier(); + return new ResourceLocation(RefStrings.MODID + ":textures/entity/siege_drill_" + tier.name + ".png"); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java index 959d39a73..e6605700f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreAdvanced.java @@ -126,7 +126,7 @@ public class TileEntityCoreAdvanced extends TileEntity implements ISidedInventor @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; + return new int[0]; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java index d75c780ae..0c5ec6e28 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreTitanium.java @@ -127,7 +127,7 @@ public class TileEntityCoreTitanium extends TileEntity implements ISidedInventor @Override public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return null; + return new int[0]; } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java index d941a46f7..73769b3b3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineKeyForge.java @@ -185,43 +185,9 @@ public class TileEntityMachineKeyForge extends TileEntity implements ISidedInven } //DEBUG, remove later - if(slots[2] != null && slots[2].getItem() == Items.wheat_seeds) { - //slots[2] = new ItemStack(ModItems.nuke_starter_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); + if(slots[2] != null && slots[2].getItem() == ModItems.ammo_4gauge) { + slots[2] = new ItemStack(ModItems.ammo_4gauge_titan, slots[2].stackSize); } - if(slots[2] != null && slots[2].getItem() == Items.bone) { - //slots[2] = new ItemStack(ModItems.nuke_advanced_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.feather) { - //slots[2] = new ItemStack(ModItems.nuke_commercially_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.apple) { - //slots[2] = new ItemStack(ModItems.nuke_electric_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.clay_ball) { - //slots[2] = new ItemStack(ModItems.t45_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.stick) { - //slots[2] = new ItemStack(ModItems.missile_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.string) { - //slots[2] = new ItemStack(ModItems.grenade_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == Items.reeds) { - //slots[2] = new ItemStack(ModItems.man_kit); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - if(slots[2] != null && slots[2].getItem() == ModItems.battery_generic) { - //slots[2] = new ItemStack(ModItems.memory); - worldObj.createExplosion(null, xCoord, yCoord, zCoord, 10F, true); - } - // } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java index 0227a6e65..e8b89018a 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCableBaseNT.java @@ -21,7 +21,7 @@ public class TileEntityCableBaseNT extends TileEntity implements IEnergyConducto this.connect(); if(this.getPowerNet() == null) { - new PowerNet().joinLink(this); + this.setPowerNet(new PowerNet().joinLink(this)); } } } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java index df95c0dce..7d20f531b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConverterHeRf.java @@ -1,14 +1,10 @@ package com.hbm.tileentity.network; import com.hbm.calc.Location; -import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IEnergyConnector; -import api.hbm.energy.IEnergyUser; -import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyReceiver; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; @@ -73,7 +69,8 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec // we have to limit the transfer amount because otherwise FEnSUs would overflow the RF output, twice long out = Math.min(power, Long.MAX_VALUE / 4); int toRF = (int) Math.min(Integer.MAX_VALUE, out * 4); - int energyTransferred = 0; + int rfTransferred = 0; + int totalTransferred = 0; for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { @@ -81,16 +78,17 @@ public class TileEntityConverterHeRf extends TileEntity implements IEnergyConnec TileEntity entity = loc.getTileEntity(); if(entity != null && entity instanceof IEnergyReceiver) { - - IEnergyReceiver receiver = (IEnergyReceiver) entity; - energyTransferred = receiver.receiveEnergy(dir.getOpposite(), toRF, false); - toRF -= energyTransferred; //to prevent energy duping + IEnergyReceiver receiver = (IEnergyReceiver) entity; + rfTransferred = receiver.receiveEnergy(dir.getOpposite(), toRF, false); + totalTransferred += rfTransferred; + + toRF -= rfTransferred; //to prevent energy duping } } recursionBrake = false; - return power - (energyTransferred / 4); + return power - (totalTransferred / 4); } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 9f8f6ac4b..bdfdb065c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1364,6 +1364,7 @@ item.gas_mask_mono.name=Halbmaske item.gas_mask_olde.name=Ledergasmaske item.gas_petroleum.name=Petroleumgastank item.geiger_counter.name=Mobiler Geigerzähler +item.gem_alexandrite.name=Alexandrit item.gem_tantalium.name=Tantal-Polykristall item.gem_volcanic.name=Vulkanischer Edelstein item.generator_front.name=Generatorfront @@ -2464,6 +2465,10 @@ item.rod_zirnox_u233_fuel_depleted.name= Erschöpfte ZIRNOX Uran-233-Kernbrennst item.rod_zirnox_u235_fuel_depleted.name= Erschöpfte ZIRNOX Uran-235-Kernbrennstoffzelle item.rod_zirnox_les_fuel_depleted.name= Erschöpfte ZIRNOX LES-Kernbrennstoffzelle item.rotor_steel.name=Großer Stahlrotor +item.rpa_boots.name=Powerrüstung der Versprengten - Stiefel +item.rpa_helmet.name=Powerrüstung der Versprengten - Helm +item.rpa_legs.name=Powerrüstung der Versprengten - Beinschutz +item.rpa_plate.name=Powerrüstung der Versprengten - Brustpanzer item.rtg_unit.name=RTG Einheit item.rune_blank.name=Blank Catalyst Matrix item.rune_dagaz.name=Balanced Catalyst Matrix @@ -3340,6 +3345,7 @@ tile.nuke_tsar.name=Tsar Bombe tile.oil_duct.name=Ölrohr tile.oil_duct_solid.name=Verstärktes Ölrohr tile.oil_pipe.name=Rohölrohr +tile.ore_alexandrite.name=Alexandriterz tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz tile.ore_australium.name=Australisches Erz diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 89639ea87..aa9505381 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1547,6 +1547,7 @@ item.gas_mask_mono.name=Half Mask item.gas_mask_olde.name=Leather Gas Mask item.gas_petroleum.name=Petroleum Gas Tank item.geiger_counter.name=Handheld Geiger Counter +item.gem_alexandrite.name=Alexandrite item.gem_tantalium.name=Tantalium Polycrystal item.gem_tantalium.desc='Tantalum' item.gem_tantalium.desc.P11=AKA Tantalum. @@ -2777,6 +2778,10 @@ item.rod_zirnox_u233_fuel_depleted.name= Depleted ZIRNOX Uranium-233 Fuel Rod item.rod_zirnox_u235_fuel_depleted.name= Depleted ZIRNOX Uranium-235 Fuel Rod item.rod_zirnox_les_fuel_depleted.name= Depleted ZIRNOX LES Fuel Rod item.rotor_steel.name=Large Steel Rotor +item.rpa_boots.name=Remnants Power Armor Boots +item.rpa_helmet.name=Remnants Power Armor Helmet +item.rpa_legs.name=Remnants Power Armor Leggings +item.rpa_plate.name=Remnants Power Armor Chestplate item.rtg_unit.name=RTG Unit item.rubber_gloves.name=Thick Rubber Gloves item.rune_blank.name=Blank Catalyst Matrix @@ -3667,6 +3672,7 @@ tile.nuke_tsar.name=Tsar Bomba tile.oil_duct.name=Oil Pipe tile.oil_duct_solid.name=Coated Oil Pipe tile.oil_pipe.name=Crude Oil Extraction Pipe +tile.ore_alexandrite.name=Alexandrite Ore tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore tile.ore_australium.name=Australian Ore diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_arm.png b/src/main/resources/assets/hbm/textures/armor/rpa_arm.png index 7372622f2..cbaa90560 100644 Binary files a/src/main/resources/assets/hbm/textures/armor/rpa_arm.png and b/src/main/resources/assets/hbm/textures/armor/rpa_arm.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_chest.png b/src/main/resources/assets/hbm/textures/armor/rpa_chest.png index 778f284b2..d08fc73db 100644 Binary files a/src/main/resources/assets/hbm/textures/armor/rpa_chest.png and b/src/main/resources/assets/hbm/textures/armor/rpa_chest.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_helmet.png b/src/main/resources/assets/hbm/textures/armor/rpa_helmet.png index 6bef49e0d..f4aea0d05 100644 Binary files a/src/main/resources/assets/hbm/textures/armor/rpa_helmet.png and b/src/main/resources/assets/hbm/textures/armor/rpa_helmet.png differ diff --git a/src/main/resources/assets/hbm/textures/armor/rpa_leg.png b/src/main/resources/assets/hbm/textures/armor/rpa_leg.png index 7a5da8b34..b5aaf9b41 100644 Binary files a/src/main/resources/assets/hbm/textures/armor/rpa_leg.png and b/src/main/resources/assets/hbm/textures/armor/rpa_leg.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_alexandrite.png b/src/main/resources/assets/hbm/textures/blocks/ore_alexandrite.png new file mode 100644 index 000000000..f76de269e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_alexandrite.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/stone.png b/src/main/resources/assets/hbm/textures/blocks/stone.png new file mode 100755 index 000000000..87e19ff46 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/stone.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_buff.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_buff.png new file mode 100644 index 000000000..bf5c5145c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_buff.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png new file mode 100644 index 000000000..a62854104 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_desh.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_desh.png new file mode 100644 index 000000000..29386e3fb Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_desh.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_dnt.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_dnt.png new file mode 100644 index 000000000..922fcf854 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_dnt.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_gold.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_gold.png new file mode 100644 index 000000000..767ae055b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_gold.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png new file mode 100644 index 000000000..72ac3298e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_schrab.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_schrab.png new file mode 100644 index 000000000..5bf4346b8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_schrab.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png new file mode 100644 index 000000000..8584831ca Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png differ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png new file mode 100644 index 000000000..4cd317e2d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_SOLID_FUEL.png b/src/main/resources/assets/hbm/textures/items/chem_icon_SOLID_FUEL.png index 728cf986c..1414fb44b 100644 Binary files a/src/main/resources/assets/hbm/textures/items/chem_icon_SOLID_FUEL.png and b/src/main/resources/assets/hbm/textures/items/chem_icon_SOLID_FUEL.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chemistry_set_boron.png b/src/main/resources/assets/hbm/textures/items/chemistry_set_boron.png index 7bc9b9e97..586bf9fee 100644 Binary files a/src/main/resources/assets/hbm/textures/items/chemistry_set_boron.png and b/src/main/resources/assets/hbm/textures/items/chemistry_set_boron.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png b/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png new file mode 100644 index 000000000..b63298620 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png.mcmeta b/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png.mcmeta new file mode 100755 index 000000000..de3267f0d --- /dev/null +++ b/src/main/resources/assets/hbm/textures/items/gem_alexandrite.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": {} +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/items/gem_base2.png b/src/main/resources/assets/hbm/textures/items/gem_base2.png new file mode 100644 index 000000000..ca4a3f909 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gem_base2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_base3.png b/src/main/resources/assets/hbm/textures/items/gem_base3.png new file mode 100644 index 000000000..cfe51f457 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gem_base3.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 5f4b4f557..de29f6361 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27_X4130H1", + "version":"1.0.27_X4144", "mcversion": "1.7.10", "url": "", "updateUrl": "",