diff --git a/changelog b/changelog index 8fdd302be..b383432e0 100644 --- a/changelog +++ b/changelog @@ -17,6 +17,8 @@ * Cooling this reactor is exceedingly difficult due to the limitations of heat exchangers and the relatively low heat capacitor of most available coolants, there will most likely be more powerful ICF-exclusive coolants in the future (liquid lead? sodium compounds?) ## Changed +* Updated russian localization +* Added italian localization * The Souyz' recipe is now available in the standard template folder * Removed some unused crap * UV lamps (2 IDs) @@ -42,6 +44,7 @@ * Drainage pipes will now violently explode when voiding antimatter * Seeding slurry can now place grass over dead grass * Added an extra digit to the heat exchanger's configuration panel, allowing effective utilization of all 24,000mB per tick +* Biomass can now also be made from cactii ## Fixed * Fixed DFC receivers not outputting power @@ -52,4 +55,7 @@ * Hopefully fixed the immense lag caused by tom post impact mechanics, burning grass will now only spread 20% of the time (instead of 100) and the world destruction handler will only process half the blocks per chunk * Hopefully fixed an issue where substations would not reliably connect to cable blocks * Fixed assembler rendering bugging out with Angelica installed and a door template loaded -* Fixed medium pylon localizations \ No newline at end of file +* Fixed medium pylon localizations +* Fixed crash related to spotlights +* Fixed RBMK auto rod recycling yielding the wrong items +* Fixed the bobblehead and snowglobe breaking behavior being weird, causing them to drop in creative mode when broken and allowing shredded plastic to be duped using the auto shredder ability \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 3de92c873..b22563fd6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4942 +mod_build_number=4956 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ @@ -20,6 +20,7 @@ credits=HbMinecraft,\ \ Pashtet (russian localization),\ \ Bismarck (chinese localization),\ \ Maksymisio (polish localization)\ + \ el3ctro4ndre (italian localization),\ \ Pu-238 (Tom impact effects),\ \ UFFR (RTGs, guns, casings, euphemium capacitor),\ \ Frooz (models),\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index 334ef97bf..1eae64640 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.gui.GuiScreen; @@ -22,6 +21,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; @@ -71,20 +71,28 @@ public class BlockBobble extends BlockContainer implements IGUIProvider { } @Override - public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { - if(!world.isRemote) { - TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z); - if(entity != null) { - EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); - item.motionX = 0; - item.motionY = 0; - item.motionZ = 0; - world.spawnEntityInWorld(item); + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + if(!world.isRemote) { + TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z); + if(entity != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); + item.motionX = 0; + item.motionY = 0; + item.motionZ = 0; + world.spawnEntityInWorld(item); + } } + harvesters.set(null); } - - super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); } @Override diff --git a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java index 07d5179fa..68047bb3d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSnowglobe.java @@ -10,7 +10,6 @@ import com.hbm.tileentity.IGUIProvider; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.gui.GuiScreen; @@ -25,6 +24,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.stats.StatList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; @@ -66,20 +66,28 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider { } @Override - public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) { - if(!world.isRemote) { - TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z); - if(entity != null) { - EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); - item.motionX = 0; - item.motionY = 0; - item.motionZ = 0; - world.spawnEntityInWorld(item); + if(!player.capabilities.isCreativeMode) { + harvesters.set(player); + if(!world.isRemote) { + TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z); + if(entity != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal())); + item.motionX = 0; + item.motionY = 0; + item.motionZ = 0; + world.spawnEntityInWorld(item); + } } + harvesters.set(null); } - - super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) { + player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1); + player.addExhaustion(0.025F); } @Override 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 b224a5df0..25a70b398 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -1081,7 +1081,8 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_control_auto), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModBlocks.rbmk_control, 1)), - new AnvilOutput(new ItemStack(ModItems.circuit_targeting_tier1, 2)) + new AnvilOutput(new ItemStack(ModItems.circuit_targeting_tier1, 1)), + new AnvilOutput(new ItemStack(ModItems.crt_display, 1)) }).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe( new ComparableStack(ModBlocks.rbmk_rod_reasim), new AnvilOutput[] { diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 84e65898f..7a8f45668 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 (4942)"; + public static final String VERSION = "1.0.27 BETA (4956)"; //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 20840711d..6d6ccfd7e 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -153,28 +153,10 @@ public class CraftingManager { addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.pumpkin }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.melon_block }); + addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.cactus, Blocks.cactus, Blocks.cactus }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat }); addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED) }); - //addRecipeAuto(new ItemStack(ModItems.part_lithium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', LI.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_beryllium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', BE.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_carbon), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', COAL.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_copper), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', CU.dust() }); - //addRecipeAuto(new ItemStack(ModItems.part_plutonium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', "dustPlutonium" }); - - //addRecipeAuto(new ItemStack(ModItems.pellet_rtg, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', "tinyPu238" }); - //addRecipeAuto(new ItemStack(ModItems.pellet_rtg_weak, 1), new Object[] { "IUI", "UPU", "IUI", 'I', IRON.plate(), 'P', "tinyPu238", 'U', "tinyU238" }); - //addRecipeAuto(new ItemStack(ModItems.tritium_deuterium_cake, 1), new Object[] { "DLD", "LTL", "DLD", 'L', "ingotLithium", 'D', ModItems.cell_deuterium, 'T', ModItems.cell_tritium }); - - //addRecipeAuto(new ItemStack(ModItems.pellet_schrabidium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', SA326.ingot() }); - //addRecipeAuto(new ItemStack(ModItems.pellet_hes, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_hes }); - //addRecipeAuto(new ItemStack(ModItems.pellet_mes, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_schrabidium_fuel }); - //addRecipeAuto(new ItemStack(ModItems.pellet_les, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_les }); - //addRecipeAuto(new ItemStack(ModItems.pellet_beryllium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', BE.ingot() }); - //addRecipeAuto(new ItemStack(ModItems.pellet_neptunium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', "ingotNeptunium" }); - //addRecipeAuto(new ItemStack(ModItems.pellet_lead, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', PB.ingot() }); - //addRecipeAuto(new ItemStack(ModItems.pellet_advanced, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_advanced_alloy }); - addRecipeAuto(new ItemStack(ModItems.coil_copper, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_red_copper, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.coil_advanced_alloy, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_advanced_alloy, 'I', IRON.ingot() }); addRecipeAuto(new ItemStack(ModItems.coil_gold, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_gold, 'I', IRON.ingot() }); @@ -191,12 +173,6 @@ public class CraftingManager { 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', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor }); addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SDS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'D', DURA.ingot() }); - //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() }); - //addRecipeAuto(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "TIT", "PCP", "TIT", 'T', ModItems.thermo_element, 'I', PB.ingot(), 'P', ModItems.board_copper, 'C', ModItems.circuit_copper }); - //addRecipeAuto(new ItemStack(ModItems.thermo_unit_empty, 1), new Object[] { "TTT", " S ", "P P", 'S', STEEL.ingot(), 'P', TI.plate(), 'T', ModItems.coil_copper_torus }); - //addRecipeAuto(new ItemStack(ModItems.levitation_unit, 1), new Object[] { "CSC", "TAT", "PSP", 'C', ModItems.coil_copper, 'S', ModItems.nugget_schrabidium, 'T', ModItems.coil_tungsten, 'P', TI.plate(), 'A', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', ANY_RESISTANTALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay }); addRecipeAuto(new ItemStack(ModItems.fins_flat, 1), new Object[] { "IP", "PP", "IP", 'P', STEEL.plate(), 'I', STEEL.ingot() });