diff --git a/changelog b/changelog index 1abab46d5..ee9dd2d76 100644 --- a/changelog +++ b/changelog @@ -10,6 +10,8 @@ * Exposure chamber * Now performs the particle transmutation recipes that were previously done in the crafting table * Stylish as hell +* Decoy missile + * A cheap tier 1 missile that shows up on radar screens as tier 4 (eg. nuclear) missiles ## Changed * Reduced the blast resistance of the large doors from absurdly high to still very but not quite as high @@ -25,6 +27,8 @@ * Explosions now have a 2x larger entity damage radius * Updated the digiminer recipe for mekanism compat * Added config options to the ground water pumps +* Missile parts such as non-custom thrusters and fuselages are now made in the arc welder, recipe ingredients have been adjusted as well +* Null grenades now have a slightly larger radius, should no longer wipe playerdata and require UNDEFINED to make ## Fixed * Fixed ancient bug where custom missiles launched using the launch table would not use the accuracy calculation and always be pin-point accurate diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index aa58d5393..0ed6e8a9c 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -394,7 +394,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_mystery, 1), new Object[] { "A", "G", "A", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_magic }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_spark, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_spark_mix }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_hopwire, 1), new Object[] { " A ", "AGA", " A ", 'G', ModItems.grenade_if_generic, 'A', ModItems.powder_power }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', Blocks.obsidian, 'B', BIGMT.ingot() }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_if_null, 1), new Object[] { "BAB", "AGA", "BAB", 'G', ModItems.grenade_if_generic, 'A', ModItems.undefined, 'B', BIGMT.ingot() }); //Mines CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', ModItems.circuit_targeting_tier2, 'P', IRON.plate(), 'T', ANY_PLASTICEXPLOSIVE.ingot() }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 18d585624..16a452ba5 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -58,6 +58,7 @@ public class EntityMappings { addEntity(EntityGrenadeNuke.class, "entity_grenade_nuke", 500); addEntity(EntitySchrab.class, "entity_schrabnel", 500); addEntity(EntityMissileGeneric.class, "entity_missile_generic", 1000); + addEntity(EntityMissileDecoy.class, "entity_missile_decoy", 1000); addEntity(EntityMissileStrong.class, "entity_missile_strong", 1000); addEntity(EntityMissileNuclear.class, "entity_missile_nuclear", 1000); addEntity(EntityMissileCluster.class, "entity_missile_cluster", 1000); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java index 601381cee..98da6e84c 100644 --- a/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeIFNull.java @@ -8,52 +8,51 @@ import com.hbm.items.weapon.ItemGrenade; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; import net.minecraft.world.World; public class EntityGrenadeIFNull extends EntityGrenadeBouncyBase { - public EntityGrenadeIFNull(World p_i1773_1_) - { - super(p_i1773_1_); - } + public EntityGrenadeIFNull(World world) { + super(world); + } - public EntityGrenadeIFNull(World p_i1774_1_, EntityLivingBase p_i1774_2_) - { - super(p_i1774_1_, p_i1774_2_); - } + public EntityGrenadeIFNull(World world, EntityLivingBase thrower) { + super(world, thrower); + } - public EntityGrenadeIFNull(World p_i1775_1_, double p_i1775_2_, double p_i1775_4_, double p_i1775_6_) - { - super(p_i1775_1_, p_i1775_2_, p_i1775_4_, p_i1775_6_); - } + public EntityGrenadeIFNull(World world, double x, double y, double z) { + super(world, x, y, z); + } - @Override - public void explode() { - - if (!this.worldObj.isRemote) - { - this.setDead(); + @Override + public void explode() { - for(int a = -3; a <= 3; a++) - for(int b = -3; b <= 3; b++) - for(int c = -3; c <= 3; c++) - worldObj.setBlockToAir((int)posX + a, (int)posY + b, (int)posZ + c); - - List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox((int)posX + 0.5 - 3, (int)posY + 0.5 - 3, (int)posZ + 0.5 - 3, (int)posX + 0.5 + 3, (int)posY + 0.5 + 3, (int)posZ + 0.5 + 3)); - - for(Object o : list) { - if(o instanceof EntityLivingBase) { - EntityLivingBase e = (EntityLivingBase)o; - - e.setHealth(0); - } else if(o instanceof Entity) { - Entity e = (Entity)o; - - e.setDead(); - } - } - } - } + if(!this.worldObj.isRemote) { + this.setDead(); + + int range = 5; + + for(int a = -range; a <= range; a++) + for(int b = -range; b <= range; b++) + for(int c = -range; c <= range; c++) + worldObj.setBlockToAir((int) Math.floor(posX + a), (int) Math.floor(posY + b), (int) Math.floor(posZ + c)); + + List list = worldObj.getEntitiesWithinAABBExcludingEntity(this, + AxisAlignedBB.getBoundingBox((int) posX + 0.5 - 3, (int) posY + 0.5 - 3, (int) posZ + 0.5 - 3, (int) posX + 0.5 + 3, (int) posY + 0.5 + 3, (int) posZ + 0.5 + 3)); + + for(Object o : list) { + if(o instanceof EntityLivingBase) { + EntityLivingBase e = (EntityLivingBase) o; + e.setHealth(0); + e.onDeath(DamageSource.outOfWorld); + } else if(o instanceof Entity) { + Entity e = (Entity) o; + e.setDead(); + } + } + } + } @Override protected int getMaxTimer() { diff --git a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java index 92ebec3f2..6fb39039e 100644 --- a/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java +++ b/src/main/java/com/hbm/entity/missile/EntityMissileTier1.java @@ -47,6 +47,15 @@ public abstract class EntityMissileTier1 extends EntityMissileBaseNT { @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_small); } } + public static class EntityMissileDecoy extends EntityMissileTier1 { + public EntityMissileDecoy(World world) { super(world); } + public EntityMissileDecoy(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } + @Override public void onImpact() { worldObj.newExplosion(this, posX, posY, posZ, 4F, false, false); } + @Override public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.ingot_steel); } + @Override public String getUnlocalizedName() { return "radar.target.tier4"; } + @Override public int getBlipLevel() { return IRadarDetectableNT.TIER4; } + } + public static class EntityMissileIncendiary extends EntityMissileTier1 { public EntityMissileIncendiary(World world) { super(world); } public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) { super(world, x, y, z, a, b); } diff --git a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java index 3c3632c9c..180c6981d 100644 --- a/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ArcWelderRecipes.java @@ -13,6 +13,7 @@ import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager; import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; @@ -31,16 +32,19 @@ public class ArcWelderRecipes extends SerializableRecipe { @Override public void registerDefaults() { + //Parts recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 200L, new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L, new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus))); + //Dense Wires recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_ALLOY.id), 100, 10_000L, new ComparableStack(ModItems.wire_advanced_alloy, 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.wire_dense, 1, Mats.MAT_GOLD.id), 100, 10_000L, new ComparableStack(ModItems.wire_gold, 8))); + //Circuits recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_copper), 100, 1_000L, new FluidStack(Fluids.GAS, 100), new ComparableStack(ModItems.circuit_aluminium, 1), new OreDictStack(NETHERQUARTZ.dust()), new ComparableStack(ModItems.wire_copper, 8))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.circuit_red_copper), 100, 2_500L, new FluidStack(Fluids.PETROLEUM, 100), @@ -76,11 +80,21 @@ public class ArcWelderRecipes extends SerializableRecipe { recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000), new OreDictStack(OSMIRIDIUM.plateCast(), 2))); + //Missile Parts + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_small), 60, 1_000L, new OreDictStack(STEEL.plate(), 4), new ComparableStack(ModItems.wire_aluminium, 4), new OreDictStack(CU.plate(), 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_medium), 100, 2_000L, new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 1), new OreDictStack(GRAPHITE.ingot(), 8))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.thruster_large), 200, 5_000L, new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.motor, 2), new OreDictStack(OreDictManager.getReflector(), 16))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_small), 60, 1_000L, new OreDictStack(Fluids.ETHANOL.getDict(1_000), 6), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_medium), 100, 2_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 8), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.fuel_tank_large), 200, 5_000L, new OreDictStack(Fluids.KEROSENE.getDict(1_000), 12), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8))); + + //Missiles recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_generic), 100, 5_000L, new ComparableStack(ModItems.warhead_generic_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary), 100, 5_000L, new ComparableStack(ModItems.warhead_incendiary_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_cluster), 100, 5_000L, new ComparableStack(ModItems.warhead_cluster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_buster), 100, 5_000L, new ComparableStack(ModItems.warhead_buster_small), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); + recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_decoy), 60, 2_500L, new OreDictStack(STEEL.ingot()), new ComparableStack(ModItems.fuel_tank_small), new ComparableStack(ModItems.thruster_small))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_generic_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.missile_incendiary_strong), 200, 10_000L, new ComparableStack(ModItems.warhead_incendiary_medium), new ComparableStack(ModItems.fuel_tank_medium), new ComparableStack(ModItems.thruster_medium))); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index fb559fa5d..6e69849c6 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -197,12 +197,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModItems.warhead_volcano, 1), new AStack[] {new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit_tantalium, 5) }, 600); makeRecipe(new ComparableStack(ModItems.warhead_thermo_endo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_endo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); makeRecipe(new ComparableStack(ModItems.warhead_thermo_exo, 1), new AStack[] {new ComparableStack(ModBlocks.therm_exo, 2), new OreDictStack(TI.plate(), 12), new ComparableStack(ModItems.circuit_targeting_tier3, 1) },300); - makeRecipe(new ComparableStack(ModItems.fuel_tank_small, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 6, Fluids.ETHANOL.getID()), new OreDictStack(TI.plate(), 6), new OreDictStack(STEEL.plate(), 2), },100); - makeRecipe(new ComparableStack(ModItems.fuel_tank_medium, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 8, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 4), },150); - makeRecipe(new ComparableStack(ModItems.fuel_tank_large, 1), new AStack[] {new ComparableStack(ModItems.canister_full, 12, Fluids.KEROSENE.getID()), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 8), },200); - makeRecipe(new ComparableStack(ModItems.thruster_small, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new OreDictStack(W.ingot(), 4), new ComparableStack(ModItems.wire_aluminium, 4), },100); - makeRecipe(new ComparableStack(ModItems.thruster_medium, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(W.ingot(), 8), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.wire_copper, 16), },150); - makeRecipe(new ComparableStack(ModItems.thruster_large, 1), new AStack[] {new OreDictStack(DURA.ingot(), 16), new OreDictStack(W.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.wire_gold, 32), new ComparableStack(ModItems.circuit_red_copper, 1), },200); makeRecipe(new ComparableStack(ModItems.thruster_nuclear, 1), new AStack[] {new OreDictStack(DURA.ingot(), 32), new OreDictStack(B.ingot(), 8), new OreDictStack(PB.plate(), 16), new ComparableStack(ModItems.pipes_steel), new ComparableStack(ModItems.circuit_gold, 1) },600); makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {new ComparableStack(ModItems.thruster_large, 1), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.hull_big_titanium, 3), new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()), new ComparableStack(ModItems.photo_panel, 24), new ComparableStack(ModItems.board_copper, 12), new ComparableStack(ModItems.circuit_gold, 6), new ComparableStack(ModItems.battery_lithium_cell_6, 1), },500); 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 OreDictStack(RUBBER.ingot(), 12), new OreDictStack(REDSTONE.dust(), 6), new ComparableStack(Items.diamond, 1), new ComparableStack(Blocks.glass_pane, 6), },400); @@ -325,24 +319,6 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.therm_exo, 1), new AStack[] {new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit_gold, 1), new ComparableStack(ModItems.coil_gold, 4), },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(ModItems.missile_generic, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_incendiary, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_buster, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_small, 1), new ComparableStack(ModItems.fuel_tank_small, 1), new ComparableStack(ModItems.thruster_small, 1), new OreDictStack(TI.plate(), 6), new ComparableStack(ModItems.circuit_targeting_tier1, 1), },200); - //makeRecipe(new ComparableStack(ModItems.missile_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_incendiary_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_cluster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_buster_strong, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_medium, 1), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_emp_strong, 1), new AStack[] {new ComparableStack(ModBlocks.emp_bomb, 3), new ComparableStack(ModItems.fuel_tank_medium, 1), new ComparableStack(ModItems.thruster_medium, 1), new OreDictStack(TI.plate(), 10), new OreDictStack(STEEL.plate(), 14), new ComparableStack(ModItems.circuit_targeting_tier2, 1), },250); - //makeRecipe(new ComparableStack(ModItems.missile_burst, 1), new AStack[] {new ComparableStack(ModItems.warhead_generic_large, 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_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_inferno, 1), new AStack[] {new ComparableStack(ModItems.warhead_incendiary_large, 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_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_rain, 1), new AStack[] {new ComparableStack(ModItems.warhead_cluster_large, 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_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_drill, 1), new AStack[] {new ComparableStack(ModItems.warhead_buster_large, 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_tier3, 1), },350); - //makeRecipe(new ComparableStack(ModItems.missile_nuclear, 1), new AStack[] {new ComparableStack(ModItems.warhead_nuclear, 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_tier4, 1), },500); - //makeRecipe(new ComparableStack(ModItems.missile_nuclear_cluster, 1), new AStack[] {new ComparableStack(ModItems.warhead_mirv, 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_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(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); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 6f74b43d8..539beed9e 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1294,6 +1294,7 @@ public class ModItems { public static Item missile_incendiary; public static Item missile_cluster; public static Item missile_buster; + public static Item missile_decoy; public static Item missile_strong; public static Item missile_incendiary_strong; public static Item missile_cluster_strong; @@ -3909,6 +3910,7 @@ public class ModItems { missile_incendiary = new Item().setUnlocalizedName("missile_incendiary").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary"); missile_cluster = new Item().setUnlocalizedName("missile_cluster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster"); missile_buster = new Item().setUnlocalizedName("missile_buster").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_buster"); + missile_decoy = new Item().setUnlocalizedName("missile_decoy").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_decoy"); missile_strong = new Item().setUnlocalizedName("missile_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_strong"); missile_incendiary_strong = new Item().setUnlocalizedName("missile_incendiary_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_incendiary_strong"); missile_cluster_strong = new Item().setUnlocalizedName("missile_cluster_strong").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_cluster_strong"); @@ -6810,6 +6812,7 @@ public class ModItems { //Missiles GameRegistry.registerItem(missile_generic, missile_generic.getUnlocalizedName()); GameRegistry.registerItem(missile_anti_ballistic, missile_anti_ballistic.getUnlocalizedName()); + GameRegistry.registerItem(missile_decoy, missile_decoy.getUnlocalizedName()); GameRegistry.registerItem(missile_incendiary, missile_incendiary.getUnlocalizedName()); GameRegistry.registerItem(missile_cluster, missile_cluster.getUnlocalizedName()); GameRegistry.registerItem(missile_buster, missile_buster.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b970e1474..2a8e88ddb 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -664,6 +664,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileDecoy.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileAntiBallistic.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileIncendiary.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCluster.class, new RenderMissileGeneric()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 10f658ff5..9816aee87 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1185,6 +1185,7 @@ public class ResourceManager { public static final ResourceLocation missileV2_IN_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_inc.png"); public static final ResourceLocation missileV2_CL_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_cl.png"); public static final ResourceLocation missileV2_BU_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_bu.png"); + public static final ResourceLocation missileV2_decoy_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_v2_decoy.png"); public static final ResourceLocation missileAA_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_abm.png"); public static final ResourceLocation missileStrong_HE_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong.png"); public static final ResourceLocation missileStrong_EMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_strong_emp.png"); diff --git a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java index 64051609e..1dff79e27 100644 --- a/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -23,21 +23,24 @@ public class RenderMissileGeneric extends Render { GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * interp - 90.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * interp, 0.0F, 0.0F, 1.0F); - if(entity instanceof EntityMissileGeneric) - bindTexture(ResourceManager.missileV2_HE_tex); - if(entity instanceof EntityMissileIncendiary) - bindTexture(ResourceManager.missileV2_IN_tex); - if(entity instanceof EntityMissileCluster) - bindTexture(ResourceManager.missileV2_CL_tex); - if(entity instanceof EntityMissileBunkerBuster) - bindTexture(ResourceManager.missileV2_BU_tex); - if(entity instanceof EntityMissileAntiBallistic) { bindTexture(ResourceManager.missileAA_tex); GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileABM.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } else { + + if(entity instanceof EntityMissileGeneric) + bindTexture(ResourceManager.missileV2_HE_tex); + if(entity instanceof EntityMissileIncendiary) + bindTexture(ResourceManager.missileV2_IN_tex); + if(entity instanceof EntityMissileCluster) + bindTexture(ResourceManager.missileV2_CL_tex); + if(entity instanceof EntityMissileBunkerBuster) + bindTexture(ResourceManager.missileV2_BU_tex); + if(entity instanceof EntityMissileDecoy) + bindTexture(ResourceManager.missileV2_decoy_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); ResourceManager.missileV2.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java index b7159a7bb..8b6e245aa 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -38,6 +38,13 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { ResourceManager.missileV2.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } + if(toRender.getItem() == ModItems.missile_decoy) { + GL11.glScalef(1.0F, 1.0F, 1.0F); + bindTexture(ResourceManager.missileV2_decoy_tex); + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.missileV2.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } if(toRender.getItem() == ModItems.missile_strong) { GL11.glScalef(1.5F, 1.5F, 1.5F); bindTexture(ResourceManager.missileStrong_HE_tex); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java index eec19fae0..676409778 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchPad.java @@ -65,6 +65,7 @@ public class TileEntityLaunchPad extends TileEntityMachineBase implements IEnerg missiles.put(new ComparableStack(ModItems.missile_emp), EntityMissileEMP.class); //Tier 1 missiles.put(new ComparableStack(ModItems.missile_generic), EntityMissileGeneric.class); + missiles.put(new ComparableStack(ModItems.missile_decoy), EntityMissileDecoy.class); missiles.put(new ComparableStack(ModItems.missile_incendiary), EntityMissileIncendiary.class); missiles.put(new ComparableStack(ModItems.missile_cluster), EntityMissileCluster.class); missiles.put(new ComparableStack(ModItems.missile_buster), EntityMissileBunkerBuster.class); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 27b8e8d17..9cd2d7a8f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2292,6 +2292,7 @@ item.missile_carrier.name=HTR-01 Trägerrakete item.missile_cluster.name=Streurakete item.missile_cluster_strong.name=Starke Streurakete item.missile_custom.name=Spezialgefertigte Rakete +item.missile_decoy.name=Köderflugkörper item.missile_doomsday.name=Doomsday Rakete item.missile_drill.name=Der Betonbrecher item.missile_emp.name=EMP-Rakete diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f6aad2998..101515558 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3029,6 +3029,7 @@ item.missile_carrier.name=HTR-01 Carrier Rocket item.missile_cluster.name=Cluster Missile item.missile_cluster_strong.name=Strong Cluster Missile item.missile_custom.name=Custom Missile +item.missile_decoy.name=Decoy Missile item.missile_doomsday.name=Doomsday Missile item.missile_drill.name=The Concrete Cracker item.missile_emp.name=EMP Missile diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png index 1a6b4cb1b..afa1cbaf0 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png deleted file mode 100644 index 198a44430..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_large_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png index a7cd568d9..cd1ac2e15 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png deleted file mode 100644 index 9674e50ab..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_medium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png index d2ac3f1dc..d8c0c47d7 100644 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png and b/src/main/resources/assets/hbm/textures/items/fuel_tank_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png b/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png deleted file mode 100644 index 15f8dbacf..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuel_tank_small_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png b/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png deleted file mode 100644 index 4a2c066f0..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_arsenic.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_base.png b/src/main/resources/assets/hbm/textures/items/fuelcell_base.png deleted file mode 100644 index b74dc7b35..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png deleted file mode 100644 index 0acd3351e..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_euphemium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png deleted file mode 100644 index b4edaede1..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_neptunium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png deleted file mode 100644 index f05ccd94d..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_plutonium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png b/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png deleted file mode 100644 index 237092dbb..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_selenium.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png deleted file mode 100644 index 86ba25294..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_u235.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png b/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png deleted file mode 100644 index 9ce019f88..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/fuelcell_u238m2.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/missile_decoy.png b/src/main/resources/assets/hbm/textures/items/missile_decoy.png new file mode 100644 index 000000000..a3a736bb3 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/missile_decoy.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large.png b/src/main/resources/assets/hbm/textures/items/thruster_large.png index b93646e4f..669b2a68a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_large.png and b/src/main/resources/assets/hbm/textures/items/thruster_large.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png deleted file mode 100644 index ee64287d3..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_large_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_medium.png b/src/main/resources/assets/hbm/textures/items/thruster_medium.png index c880ffed8..3437a340a 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_medium.png and b/src/main/resources/assets/hbm/textures/items/thruster_medium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png deleted file mode 100644 index b480e5999..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_medium_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_small.png b/src/main/resources/assets/hbm/textures/items/thruster_small.png index f1881cd3c..192d0bd6e 100644 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_small.png and b/src/main/resources/assets/hbm/textures/items/thruster_small.png differ diff --git a/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png b/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png deleted file mode 100644 index 30c695f30..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/thruster_small_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png b/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png new file mode 100644 index 000000000..191b0c97f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/missile_v2_decoy.png differ