diff --git a/changelog b/changelog index 73108559d..20261ecff 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,7 @@ * Like a charging station, but for fluids ## Changed +* Updated chinese localization * Particle detectors now print an error for when the recipe could not be completed * Night Vision Goggles toggles with armor HUD * Removed "no ore dict data" line from tooltips with extended view enabled @@ -20,7 +21,16 @@ * Due to duping no longer being a concern, productivity rates for certain recipes can now be much higher * Things like sawdust to cordite have a 75% chance of not using the input at level 3 * Effectiveness no longer increases acid consumption (since many recipes now use the acidizer like a solid output "mixer") but instead adds +200% power consumption per level + * Effectiveness can be configured with the recipe and caps out at 99% (since 100% would just print free items) * Chemical dyes can now also be made with light oil +* There's now statistics for creating legendary weapons and ammo, stepping on landmines and firing guns +* Assembly templates no longer specify whether they are persistent and volatile, since volatile templates haven't existed in years +* Obliterated the HTR-01 item for good + * Idk why it still existed +* Skeletons, slimes and cybercrabs can no longer be gibbed, since they don't have flesh +* The template folder's description now uses flashing colors to make it harder to ignore +* Scaled swords no longer use 1.1 scale in the inventory, making them larger than the inventory slot +* Fissures can now be connected to fluid ducts, providing 1,000mB of lava per tick ## Fixed * Fixed items being annihilated when shift clicking them into the particle source @@ -28,4 +38,7 @@ * Fixed particle detectors not always using power when they should * Fixed rotary furnace voiding low pressure steam when dealing with input numbers not divisible by 100 * Fixed state leak causing smoke from the right akimbo weapon to glow when the first one is fired -* Fixed incorrect default values for new RBMK dials \ No newline at end of file +* Fixed incorrect default values for new RBMK dials +* Fixed blast doors self-destructing when closing +* Fixed PA coils being in the wrong creative tab +* Fixed flux calculation for RBMKs being wrong, mainly affecting reactors using fast flux diff --git a/gradle.properties b/gradle.properties index f1fef826d..4bf1e1291 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=5230 +mod_build_number=5243 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockFissure.java b/src/main/java/com/hbm/blocks/generic/BlockFissure.java index dac40abf0..0f1dea15a 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFissure.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFissure.java @@ -2,21 +2,28 @@ package com.hbm.blocks.generic; import java.util.Random; +import api.hbm.fluid.IFluidStandardSender; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; +import com.hbm.tileentity.TileEntityLoadedBase; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class BlockFissure extends Block implements IBlockMultiPass { +public class BlockFissure extends BlockContainer implements IBlockMultiPass { private IIcon overlay; @@ -65,4 +72,31 @@ public class BlockFissure extends Block implements IBlockMultiPass { public int getRenderType(){ return IBlockMultiPass.getRenderType(); } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityFissure(); + } + + public static class TileEntityFissure extends TileEntityLoadedBase implements IFluidStandardSender { + + public FluidTank lava = new FluidTank(Fluids.LAVA, 1_000); + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + lava.setFill(1_000); + this.sendFluid(lava, worldObj, xCoord, yCoord + 1, zCoord, ForgeDirection.UP); + } + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir == ForgeDirection.DOWN && type == Fluids.LAVA; + } + + @Override public FluidTank[] getAllTanks() { return new FluidTank[] {lava}; } + @Override public FluidTank[] getSendingTanks() { return new FluidTank[] {lava}; } + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java index 080881687..5e1774c52 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -1,8 +1,11 @@ package com.hbm.blocks.generic; +import java.util.List; + import com.hbm.inventory.recipes.PedestalRecipes; import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; import com.hbm.particle.helper.ExplosionSmallCreator; import com.hbm.util.Compat; @@ -21,6 +24,7 @@ import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -169,6 +173,9 @@ public class BlockPedestal extends BlockContainer { world.markBlockForUpdate(x, y, z); ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 1.5, z + 0.5, 10, 2.5F, 1F); + List players = world.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(x + 0.5, y, z + 0.5, x + 0.5, y, z + 0.5).expand(50, 50, 50)); + for(EntityPlayer player : players) player.addStat(MainRegistry.statLegendary, 1); + return; } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2682975d5..1bad96b92 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1417,7 +1417,6 @@ public class ModItems { public static Item missile_custom; - public static Item missile_carrier; public static Item missile_soyuz; public static Item missile_soyuz_lander; public static Item sat_mapper; @@ -2893,7 +2892,7 @@ public class ModItems { demon_core_open = new ItemDemonCore().setUnlocalizedName("demon_core_open").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_open"); demon_core_closed = new Item().setUnlocalizedName("demon_core_closed").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":demon_core_closed"); - pa_coil = new ItemPACoil().setUnlocalizedName("pa_coil").setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":pa_coil"); + pa_coil = new ItemPACoil().setUnlocalizedName("pa_coil").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pa_coil"); particle_empty = new Item().setUnlocalizedName("particle_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":particle_empty"); particle_hydrogen = new Item().setUnlocalizedName("particle_hydrogen").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_hydrogen"); @@ -3649,7 +3648,6 @@ public class ModItems { missile_shuttle = new ItemMissile(MissileFormFactor.OTHER, MissileTier.TIER3, MissileFuel.KEROSENE_PEROXIDE).setUnlocalizedName("missile_shuttle").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_shuttle"); missile_stealth = new ItemMissile(MissileFormFactor.STRONG, MissileTier.TIER1).setUnlocalizedName("missile_stealth").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_stealth"); missile_test = new ItemMissile(MissileFormFactor.MICRO, MissileTier.TIER0).setUnlocalizedName("missile_test").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_micro"); - missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_carrier"); missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); missile_soyuz_lander = new ItemCustomLore().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom"); @@ -6273,7 +6271,6 @@ public class ModItems { GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName()); //Rockets - GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); GameRegistry.registerItem(missile_custom, missile_custom.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java index d3e58e448..f7bad43dd 100644 --- a/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemAssemblyTemplate.java @@ -168,14 +168,11 @@ public class ItemAssemblyTemplate extends Item { return; } - boolean nbtType = true; - //NEW ComparableStack out = readType(stack); //LEGACY if(out == null) { out = AssemblerRecipes.recipeList.get(i); - nbtType = false; } AssemblerRecipe recipe = AssemblerRecipes.recipes.get(out); @@ -202,13 +199,6 @@ public class ItemAssemblyTemplate extends Item { } list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", String.join(" / ", names))); - - if(nbtType) { - list.add(EnumChatFormatting.GREEN + "Persistent template"); - } else { - list.add(EnumChatFormatting.RED + "Volatile template"); - } - list.add(""); if(out == null) { diff --git a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java index a459e3fee..be0883149 100644 --- a/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java +++ b/src/main/java/com/hbm/items/machine/ItemTemplateFolder.java @@ -6,6 +6,7 @@ import com.hbm.inventory.gui.GUIScreenTemplateFolder; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.tileentity.IGUIProvider; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import cpw.mods.fml.relauncher.Side; @@ -14,6 +15,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; public class ItemTemplateFolder extends Item implements IGUIProvider { @@ -31,8 +33,9 @@ public class ItemTemplateFolder extends Item implements IGUIProvider { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { String[] lang = I18nUtil.resolveKeyArray(ModItems.template_folder.getUnlocalizedName() + ".desc"); + EnumChatFormatting color = BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.YELLOW; for(String line : lang) { - list.add(line); + list.add(color + line); } } diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java index 7bf6381df..c61977a10 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/ConfettiUtil.java @@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory; import java.util.Locale; +import com.hbm.entity.mob.*; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.particle.helper.AshesCreator; @@ -10,6 +11,8 @@ import com.hbm.util.DamageResistanceHandler.DamageClass; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.EntitySkeleton; +import net.minecraft.entity.monster.EntitySlime; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; @@ -39,6 +42,12 @@ public class ConfettiUtil { } public static void gib(EntityLivingBase entity) { + if(entity instanceof EntityCyberCrab) return; + if(entity instanceof EntityTeslaCrab) return; + if(entity instanceof EntityTaintCrab) return; + if(entity instanceof EntitySkeleton) return; + if(entity instanceof EntitySlime) return; + NBTTagCompound vdat = new NBTTagCompound(); vdat.setString("type", "giblets"); vdat.setInteger("ent", entity.getEntityId()); diff --git a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java index 693180de3..d00796660 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java +++ b/src/main/java/com/hbm/items/weapon/sedna/factory/Lego.java @@ -22,6 +22,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext; import com.hbm.items.weapon.sedna.ItemGunBaseNT.SmokeNode; import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.mags.IMagazine; +import com.hbm.main.MainRegistry; import com.hbm.particle.helper.BlackPowderCreator; import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimationSequence; @@ -238,6 +239,7 @@ public class Lego { } } + if(player != null) player.addStat(MainRegistry.statBullets, 1); mag.useUpAmmo(stack, ctx.inventory, 1); if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear, ctx.config.getDurability(stack))); } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 1440e8237..b2b06e0a3 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 (5230)"; + public static final String VERSION = "1.0.27 BETA (5243)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ed344f1e7..1bc9c8d18 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -447,7 +447,7 @@ public class ClientProxy extends ServerProxy { double[] sfp = new double[] {1.36, 1.36, 0.68}; double[] rir = new double[] {0, 0, 0}; double[] tir = new double[] {0, 0, 0}; - double[] sir = new double[] {1.1, 1.1, 1.1}; + double[] sir = new double[] {1, 1, 1}; MinecraftForgeClient.registerItemRenderer(ModItems.titanium_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); MinecraftForgeClient.registerItemRenderer(ModItems.alloy_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir)); @@ -500,7 +500,6 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.missile_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday_rusted, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); - MinecraftForgeClient.registerItemRenderer(ModItems.missile_carrier, new ItemRenderMissileGeneric(RenderMissileType.TYPE_CARRIER)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN)); //templates diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 4ab6a5c79..13d95c8c7 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -1140,8 +1140,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.cm_flux, 1, 0), "NNN", "ZCZ", "NNN", 'Z', ZR.plateCast(), 'N', ModItems.neutron_reflector, 'C', ModItems.reactor_core); addRecipeAuto(new ItemStack(ModBlocks.cm_heat, 1, 0), "PCP", "PCP", "PCP", 'P', ModItems.plate_polymer, 'C', CU.ingot()); - addShapelessAuto(new ItemStack(ModItems.missile_soyuz), new ItemStack(ModItems.missile_carrier)); - addRecipeAuto(new ItemStack(ModBlocks.plushie, 1, PlushieType.YOMI.ordinal()), "LCR", 'L', "cropCarrot", 'C', ModItems.rag, 'R', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE)); addRecipeAuto(new ItemStack(ModBlocks.plushie, 1, PlushieType.NUMBERNINE.ordinal()), " C ", "LCR", " C ", 'L', ModItems.cigarette, 'C', ModItems.rag, 'R', COAL.gem()); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 091ac20de..235b7e2b4 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -73,7 +73,10 @@ import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; +import net.minecraft.stats.StatBase; +import net.minecraft.stats.StatBasic; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.EnumFacing; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; @@ -164,6 +167,11 @@ public class MainRegistry { public static CreativeTabs weaponTab = new WeaponTab(CreativeTabs.getNextID(), "tabWeapon"); // turrets, weapons, ammo public static CreativeTabs consumableTab = new ConsumableTab(CreativeTabs.getNextID(), "tabConsumable"); // drinks, kits, tools + // Statistics + public static StatBase statLegendary; + public static StatBase statMines; + public static StatBase statBullets; + // Achievements public static Achievement achSacrifice; public static Achievement achImpossible; @@ -656,6 +664,10 @@ public class MainRegistry { RodRecipes.registerInit(); + statLegendary = new StatBasic("stat.ntmLegendary", new ChatComponentTranslation("stat.ntmLegendary")).registerStat(); + statMines = new StatBasic("stat.ntmMines", new ChatComponentTranslation("stat.ntmMines")).registerStat(); + statBullets = new StatBasic("stat.ntmBullets", new ChatComponentTranslation("stat.ntmBullets")).registerStat(); + achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, Fluids.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); @@ -710,7 +722,7 @@ public class MainRegistry { achCentrifuge = new Achievement("achievement.centrifuge", "centrifuge", 12, -2, new ItemStack(ModBlocks.machine_centrifuge), achPolymer).initIndependentStat().registerStat(); achFOEQ = new Achievement("achievement.FOEQ", "FOEQ", 5, 5, ModItems.sat_foeq, achDesh).initIndependentStat().setSpecial().registerStat(); achSoyuz = new Achievement("achievement.soyuz", "soyuz", 7, 6, Items.baked_potato, achDesh).initIndependentStat().setSpecial().registerStat(); - achSpace = new Achievement("achievement.space", "space", 9, 7, ModItems.missile_carrier, achDesh).initIndependentStat().setSpecial().registerStat(); + achSpace = new Achievement("achievement.space", "space", 9, 7, ModItems.missile_soyuz, achDesh).initIndependentStat().setSpecial().registerStat(); achSchrab = new Achievement("achievement.schrab", "schrab", 11, 3, ModItems.ingot_schrabidium, achDesh).initIndependentStat().registerStat(); achAcidizer = new Achievement("achievement.acidizer", "acidizer", 11, 5, new ItemStack(ModBlocks.machine_crystallizer), achDesh).initIndependentStat().registerStat(); achRadium = new Achievement("achievement.radium", "radium", 13, -4, ModItems.coffee_radium, achCentrifuge).initIndependentStat().setSpecial().registerStat(); @@ -1647,6 +1659,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.bobmazon_machines"); ignoreMappings.add("hbm:item.bobmazon_weapons"); ignoreMappings.add("hbm:item.bobmazon_tools"); + ignoreMappings.add("hbm:item.missile_carrier"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java index 9985a4c4c..4ee9e835d 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java +++ b/src/main/java/com/hbm/render/item/ItemRenderMissileGeneric.java @@ -31,7 +31,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer { TYPE_STEALTH, TYPE_ABM, TYPE_NUCLEAR, - TYPE_CARRIER, TYPE_ROBIN } @@ -75,7 +74,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer { case TYPE_STEALTH: guiScale = 1.75D; guiOffset = 4.75D; break; case TYPE_ABM: guiScale = 2.25D; guiOffset = 7D; break; case TYPE_NUCLEAR: guiScale = 1.375D; guiOffset = 1.5D; break; - case TYPE_CARRIER: guiScale = 0.625D; guiOffset = -17D; break; case TYPE_ROBIN: guiScale = 1.25D; guiOffset = 2D; break; } diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index d1cc8eaf6..d383cdd29 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -9,6 +9,7 @@ import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; +import com.hbm.blocks.generic.BlockFissure.TileEntityFissure; import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; @@ -229,6 +230,7 @@ public class TileMappings { put(TileEntityProxyConductor.class, "tileentity_proxy_conductor"); put(TileEntityBedrockOre.class, "tileentity_bedrock_ore"); + put(TileEntityFissure.class, "tileentity_fissure"); put(TileEntityBlockPWR.class, "tileentity_block_pwr"); put(TileEntityPWRController.class, "tileentity_pwr_controller"); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java index e9320c85d..8481849e4 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLandmine.java @@ -3,6 +3,7 @@ package com.hbm.tileentity.bomb; import java.util.List; import com.hbm.blocks.bomb.Landmine; +import com.hbm.main.MainRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -57,6 +58,7 @@ public class TileEntityLandmine extends TileEntity { if(isPrimed) { //the explosion is part of the mine block so that the IBomb interface works, i remember now landmine.explode(worldObj, xCoord, yCoord, zCoord); + if(o instanceof EntityPlayer) ((EntityPlayer) o).addStat(MainRegistry.statMines, 1); } return; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java index d3d78294e..dbf1d785d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityBlastDoor.java @@ -8,6 +8,7 @@ import com.hbm.packet.toclient.TEVaultPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -289,7 +290,8 @@ public class TileEntityBlastDoor extends TileEntityLockableBase { public boolean placeDummy(int x, int y, int z) { - if(!worldObj.getBlock(x, y, z).isReplaceable(worldObj, x, y, z)) worldObj.func_147480_a(x, y, z, false); + Block present = worldObj.getBlock(x, y, z); + if(!present.isReplaceable(worldObj, x, y, z) && present != ModBlocks.dummy_block_blast) worldObj.func_147480_a(x, y, z, false); worldObj.setBlock(x, y, z, ModBlocks.dummy_block_blast); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java index 90ce287aa..910f89b17 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityVaultDoor.java @@ -8,6 +8,7 @@ import com.hbm.packet.toclient.TEVaultPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -195,7 +196,8 @@ public class TileEntityVaultDoor extends TileEntityLockableBase { public boolean placeDummy(int x, int y, int z) { - if(!worldObj.getBlock(x, y, z).isReplaceable(worldObj, x, y, z)) worldObj.func_147480_a(x, y, z, false); + Block present = worldObj.getBlock(x, y, z); + if(!present.isReplaceable(worldObj, x, y, z) && present != ModBlocks.dummy_block_vault) worldObj.func_147480_a(x, y, z, false); worldObj.setBlock(x, y, z, ModBlocks.dummy_block_vault); diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java index f41643047..dfb753de3 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKConsole.java @@ -557,7 +557,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon if(te instanceof TileEntityRBMKRod){ TileEntityRBMKRod fuelChannel = (TileEntityRBMKRod)te; data_table.put("fluxQuantity", fuelChannel.lastFluxQuantity); - data_table.put("fluxRatio", fuelChannel.fluxRatio); + data_table.put("fluxRatio", fuelChannel.fluxFastRatio); } if(te instanceof TileEntityRBMKBoiler){ diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index 6a7acf1bf..b32166fcf 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -45,7 +45,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM // New system!! // Used for receiving flux (calculating outbound flux/burning rods) - public double fluxRatio; + public double fluxFastRatio; public double fluxQuantity; public double lastFluxQuantity; public double lastFluxRatio; @@ -73,11 +73,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM @Override public void receiveFlux(NeutronStream stream) { - double fastFlux = this.fluxQuantity * this.fluxRatio; + double fastFlux = this.fluxQuantity * this.fluxFastRatio; double fastFluxIn = stream.fluxQuantity * stream.fluxRatio; this.fluxQuantity += stream.fluxQuantity; - fluxRatio = (fastFlux + fastFluxIn) / fluxQuantity; + fluxFastRatio = (fastFlux + fastFluxIn) / fluxQuantity; } @Override @@ -96,11 +96,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM // Again, nothing really uses this so its just idle code at the moment. if (rod.specialFluxCurve) { - fluxRatioOut = rod.fluxRatioOut(this.fluxRatio, ItemRBMKRod.getEnrichment(slots[0])); + fluxRatioOut = rod.fluxRatioOut(this.fluxFastRatio, ItemRBMKRod.getEnrichment(slots[0])); double fluxIn; - fluxIn = rod.fluxFromRatio(this.fluxQuantity, this.fluxRatio); + fluxIn = rod.fluxFromRatio(this.fluxQuantity, this.fluxFastRatio); fluxQuantityOut = rod.burn(worldObj, slots[0], fluxIn); } else { @@ -141,10 +141,10 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back this.lastFluxQuantity = this.fluxQuantity; - this.lastFluxRatio = this.fluxRatio; + this.lastFluxRatio = this.fluxFastRatio; this.fluxQuantity = 0; - this.fluxRatio = 0; + this.fluxFastRatio = 0; spreadFlux(fluxQuantityOut, fluxRatioOut); @@ -155,7 +155,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM this.lastFluxRatio = 0; this.lastFluxQuantity = 0; this.fluxQuantity = 0; - this.fluxRatio = 0; + this.fluxFastRatio = 0; hasRod = false; @@ -166,9 +166,12 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM private double fluxFromType(NType type) { + double fastFlux = this.fluxQuantity * this.fluxFastRatio; + double slowFlux = this.fluxQuantity * (1 - this.fluxFastRatio); + switch(type) { - case SLOW: return (this.fluxQuantity * (1 - this.fluxRatio) + Math.min(this.fluxRatio * 0.5, 1)); - case FAST: return (this.fluxQuantity * (1 - this.fluxRatio) + Math.min(this.fluxRatio * 0.3, 1)); + case SLOW: return slowFlux + fastFlux * 0.5; + case FAST: return fastFlux + slowFlux * 0.3; case ANY: return this.fluxQuantity; } @@ -219,12 +222,12 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM // recalculate new values to keep stable operations this.fluxQuantity = nbt.getDouble("fluxFast") + nbt.getDouble("fluxSlow"); if (this.fluxQuantity > 0) - this.fluxRatio = nbt.getDouble("fluxFast") / fluxQuantity; + this.fluxFastRatio = nbt.getDouble("fluxFast") / fluxQuantity; else - this.fluxRatio = 0; + this.fluxFastRatio = 0; } else { this.fluxQuantity = nbt.getDouble("fluxQuantity"); - this.fluxRatio = nbt.getDouble("fluxMod"); + this.fluxFastRatio = nbt.getDouble("fluxMod"); } this.hasRod = nbt.getBoolean("hasRod"); } @@ -237,8 +240,8 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM nbt.setDouble("fluxQuantity", this.lastFluxQuantity); nbt.setDouble("fluxMod", this.lastFluxRatio); } else { - nbt.setDouble("fluxSlow", this.fluxQuantity * (1 - fluxRatio)); - nbt.setDouble("fluxFast", this.fluxQuantity * fluxRatio); + nbt.setDouble("fluxSlow", this.fluxQuantity * (1 - fluxFastRatio)); + nbt.setDouble("fluxFast", this.fluxQuantity * fluxFastRatio); } nbt.setBoolean("hasRod", this.hasRod); } @@ -255,7 +258,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM public void deserialize(ByteBuf buf) { super.deserialize(buf); this.fluxQuantity = buf.readDouble(); - this.fluxRatio = buf.readDouble(); + this.fluxFastRatio = buf.readDouble(); this.hasRod = buf.readBoolean(); } @@ -398,7 +401,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM @Callback(direct = true) @Optional.Method(modid = "OpenComputers") public Object[] getFluxRatio(Context context, Arguments args) { - return new Object[] {fluxRatio}; + return new Object[] {fluxFastRatio}; } @Callback(direct = true) @@ -462,7 +465,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM return new Object[] { heat, returnValues.get(0), returnValues.get(1), - fluxQuantity, fluxRatio, returnValues.get(2), returnValues.get(3), returnValues.get(4), + fluxQuantity, fluxFastRatio, returnValues.get(2), returnValues.get(3), returnValues.get(4), ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord}; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 62ddc6373..ff7196362 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3887,6 +3887,10 @@ shape.wiresDense=Dichte Drähte soundCategory.ntmMachines=NTM Maschinen +stat.ntmBullets=Schüsse gefeuert +stat.ntmLegendary=Legendäre Gegenstände hergestellt +stat.ntmMines=Auf Minen getreten + tile.absorber.name=Strahlungs-Absorber tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber tile.absorber_pink.name=Elite Strahlungs-Absorber diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index b0920c16b..f5d88f252 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -4970,6 +4970,10 @@ shape.wiresDense=Dense Wires soundCategory.ntmMachines=NTM Machines +stat.ntmBullets=Rounds Fired +stat.ntmLegendary=Legendary Items Created +stat.ntmMines=Mines Stepped on + tile.absorber.name=Radiation Absorber tile.absorber_green.name=Advanced Radiation Absorber tile.absorber_pink.name=Elite Radiation Absorber