a whole lot of nothing

This commit is contained in:
Bob 2025-02-16 23:16:26 +01:00
parent 4444038f35
commit fd04bf9b3f
22 changed files with 130 additions and 48 deletions

View File

@ -3,6 +3,7 @@
* Like a charging station, but for fluids * Like a charging station, but for fluids
## Changed ## Changed
* Updated chinese localization
* Particle detectors now print an error for when the recipe could not be completed * Particle detectors now print an error for when the recipe could not be completed
* Night Vision Goggles toggles with armor HUD * Night Vision Goggles toggles with armor HUD
* Removed "no ore dict data" line from tooltips with extended view enabled * 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 * 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 * 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 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 * 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
* Fixed items being annihilated when shift clicking them into the particle source * Fixed items being annihilated when shift clicking them into the particle source
@ -29,3 +39,6 @@
* Fixed rotary furnace voiding low pressure steam when dealing with input numbers not divisible by 100 * 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 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 * 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

View File

@ -1,6 +1,6 @@
mod_version=1.0.27 mod_version=1.0.27
# Empty build number makes a release type # Empty build number makes a release type
mod_build_number=5230 mod_build_number=5243
credits=HbMinecraft,\ credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\ \ rodolphito (explosion algorithms),\

View File

@ -2,21 +2,28 @@ package com.hbm.blocks.generic;
import java.util.Random; import java.util.Random;
import api.hbm.fluid.IFluidStandardSender;
import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.IBlockMultiPass;
import com.hbm.blocks.ModBlocks; 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.lib.RefStrings;
import com.hbm.render.block.RenderBlockMultipass; import com.hbm.render.block.RenderBlockMultipass;
import com.hbm.tileentity.TileEntityLoadedBase;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; 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.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; 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; private IIcon overlay;
@ -65,4 +72,31 @@ public class BlockFissure extends Block implements IBlockMultiPass {
public int getRenderType(){ public int getRenderType(){
return IBlockMultiPass.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}; }
}
} }

View File

@ -1,8 +1,11 @@
package com.hbm.blocks.generic; package com.hbm.blocks.generic;
import java.util.List;
import com.hbm.inventory.recipes.PedestalRecipes; import com.hbm.inventory.recipes.PedestalRecipes;
import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe; import com.hbm.inventory.recipes.PedestalRecipes.PedestalRecipe;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.particle.helper.ExplosionSmallCreator; import com.hbm.particle.helper.ExplosionSmallCreator;
import com.hbm.util.Compat; import com.hbm.util.Compat;
@ -21,6 +24,7 @@ import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -169,6 +173,9 @@ public class BlockPedestal extends BlockContainer {
world.markBlockForUpdate(x, y, z); world.markBlockForUpdate(x, y, z);
ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 1.5, z + 0.5, 10, 2.5F, 1F); ExplosionSmallCreator.composeEffect(world, x + 0.5, y + 1.5, z + 0.5, 10, 2.5F, 1F);
List<EntityPlayer> 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; return;
} }
} }

View File

@ -1417,7 +1417,6 @@ public class ModItems {
public static Item missile_custom; public static Item missile_custom;
public static Item missile_carrier;
public static Item missile_soyuz; public static Item missile_soyuz;
public static Item missile_soyuz_lander; public static Item missile_soyuz_lander;
public static Item sat_mapper; 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_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"); 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_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"); 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_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_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_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 = 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_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"); 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, missile_doomsday.getUnlocalizedName());
GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName()); GameRegistry.registerItem(missile_doomsday_rusted, missile_doomsday_rusted.getUnlocalizedName());
//Rockets //Rockets
GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName());
GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName());
GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName());
GameRegistry.registerItem(missile_custom, missile_custom.getUnlocalizedName()); GameRegistry.registerItem(missile_custom, missile_custom.getUnlocalizedName());

View File

@ -168,14 +168,11 @@ public class ItemAssemblyTemplate extends Item {
return; return;
} }
boolean nbtType = true;
//NEW //NEW
ComparableStack out = readType(stack); ComparableStack out = readType(stack);
//LEGACY //LEGACY
if(out == null) { if(out == null) {
out = AssemblerRecipes.recipeList.get(i); out = AssemblerRecipes.recipeList.get(i);
nbtType = false;
} }
AssemblerRecipe recipe = AssemblerRecipes.recipes.get(out); 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))); 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(""); list.add("");
if(out == null) { if(out == null) {

View File

@ -6,6 +6,7 @@ import com.hbm.inventory.gui.GUIScreenTemplateFolder;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IGUIProvider;
import com.hbm.util.BobMathUtil;
import com.hbm.util.I18nUtil; import com.hbm.util.I18nUtil;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -14,6 +15,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World; import net.minecraft.world.World;
public class ItemTemplateFolder extends Item implements IGUIProvider { 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) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
String[] lang = I18nUtil.resolveKeyArray(ModItems.template_folder.getUnlocalizedName() + ".desc"); String[] lang = I18nUtil.resolveKeyArray(ModItems.template_folder.getUnlocalizedName() + ".desc");
EnumChatFormatting color = BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.YELLOW;
for(String line : lang) { for(String line : lang) {
list.add(line); list.add(color + line);
} }
} }

View File

@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory;
import java.util.Locale; import java.util.Locale;
import com.hbm.entity.mob.*;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.particle.helper.AshesCreator; 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 cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.EntityLivingBase; 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.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
@ -39,6 +42,12 @@ public class ConfettiUtil {
} }
public static void gib(EntityLivingBase entity) { 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(); NBTTagCompound vdat = new NBTTagCompound();
vdat.setString("type", "giblets"); vdat.setString("type", "giblets");
vdat.setInteger("ent", entity.getEntityId()); vdat.setInteger("ent", entity.getEntityId());

View File

@ -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.ItemGunBaseNT.SmokeNode;
import com.hbm.items.weapon.sedna.Receiver; import com.hbm.items.weapon.sedna.Receiver;
import com.hbm.items.weapon.sedna.mags.IMagazine; import com.hbm.items.weapon.sedna.mags.IMagazine;
import com.hbm.main.MainRegistry;
import com.hbm.particle.helper.BlackPowderCreator; import com.hbm.particle.helper.BlackPowderCreator;
import com.hbm.render.anim.BusAnimation; import com.hbm.render.anim.BusAnimation;
import com.hbm.render.anim.BusAnimationSequence; 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); mag.useUpAmmo(stack, ctx.inventory, 1);
if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear, ctx.config.getDurability(stack))); if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index) + config.wear, ctx.config.getDurability(stack)));
} }

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings { public class RefStrings {
public static final String MODID = "hbm"; public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod"; 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: //HBM's Beta Naming Convention:
//V T (X) //V T (X)
//V -> next release version //V -> next release version

View File

@ -447,7 +447,7 @@ public class ClientProxy extends ServerProxy {
double[] sfp = new double[] {1.36, 1.36, 0.68}; double[] sfp = new double[] {1.36, 1.36, 0.68};
double[] rir = new double[] {0, 0, 0}; double[] rir = new double[] {0, 0, 0};
double[] tir = 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.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)); 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_volcano, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR));
MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday, 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_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)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN));
//templates //templates

View File

@ -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_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()); 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.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()); addRecipeAuto(new ItemStack(ModBlocks.plushie, 1, PlushieType.NUMBERNINE.ordinal()), " C ", "LCR", " C ", 'L', ModItems.cigarette, 'C', ModItems.rag, 'R', COAL.gem());
} }

View File

@ -73,7 +73,10 @@ import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.stats.Achievement; import net.minecraft.stats.Achievement;
import net.minecraft.stats.StatBase;
import net.minecraft.stats.StatBasic;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World; 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 weaponTab = new WeaponTab(CreativeTabs.getNextID(), "tabWeapon"); // turrets, weapons, ammo
public static CreativeTabs consumableTab = new ConsumableTab(CreativeTabs.getNextID(), "tabConsumable"); // drinks, kits, tools 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 // Achievements
public static Achievement achSacrifice; public static Achievement achSacrifice;
public static Achievement achImpossible; public static Achievement achImpossible;
@ -656,6 +664,10 @@ public class MainRegistry {
RodRecipes.registerInit(); 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(); 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(); 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(); 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(); 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(); 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(); 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(); 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(); 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(); 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_machines");
ignoreMappings.add("hbm:item.bobmazon_weapons"); ignoreMappings.add("hbm:item.bobmazon_weapons");
ignoreMappings.add("hbm:item.bobmazon_tools"); ignoreMappings.add("hbm:item.bobmazon_tools");
ignoreMappings.add("hbm:item.missile_carrier");
/// REMAP /// /// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -31,7 +31,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer {
TYPE_STEALTH, TYPE_STEALTH,
TYPE_ABM, TYPE_ABM,
TYPE_NUCLEAR, TYPE_NUCLEAR,
TYPE_CARRIER,
TYPE_ROBIN TYPE_ROBIN
} }
@ -75,7 +74,6 @@ public class ItemRenderMissileGeneric implements IItemRenderer {
case TYPE_STEALTH: guiScale = 1.75D; guiOffset = 4.75D; break; case TYPE_STEALTH: guiScale = 1.75D; guiOffset = 4.75D; break;
case TYPE_ABM: guiScale = 2.25D; guiOffset = 7D; break; case TYPE_ABM: guiScale = 2.25D; guiOffset = 7D; break;
case TYPE_NUCLEAR: guiScale = 1.375D; guiOffset = 1.5D; 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; case TYPE_ROBIN: guiScale = 1.25D; guiOffset = 2D; break;
} }

View File

@ -9,6 +9,7 @@ import com.hbm.blocks.generic.BlockBedrockOreTE.TileEntityBedrockOre;
import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag; import com.hbm.blocks.generic.BlockDynamicSlag.TileEntitySlag;
import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter; 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.BlockGlyphidSpawner.TileEntityGlpyhidSpawner;
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal;
@ -229,6 +230,7 @@ public class TileMappings {
put(TileEntityProxyConductor.class, "tileentity_proxy_conductor"); put(TileEntityProxyConductor.class, "tileentity_proxy_conductor");
put(TileEntityBedrockOre.class, "tileentity_bedrock_ore"); put(TileEntityBedrockOre.class, "tileentity_bedrock_ore");
put(TileEntityFissure.class, "tileentity_fissure");
put(TileEntityBlockPWR.class, "tileentity_block_pwr"); put(TileEntityBlockPWR.class, "tileentity_block_pwr");
put(TileEntityPWRController.class, "tileentity_pwr_controller"); put(TileEntityPWRController.class, "tileentity_pwr_controller");

View File

@ -3,6 +3,7 @@ package com.hbm.tileentity.bomb;
import java.util.List; import java.util.List;
import com.hbm.blocks.bomb.Landmine; import com.hbm.blocks.bomb.Landmine;
import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -57,6 +58,7 @@ public class TileEntityLandmine extends TileEntity {
if(isPrimed) { if(isPrimed) {
//the explosion is part of the mine block so that the IBomb interface works, i remember now //the explosion is part of the mine block so that the IBomb interface works, i remember now
landmine.explode(worldObj, xCoord, yCoord, zCoord); landmine.explode(worldObj, xCoord, yCoord, zCoord);
if(o instanceof EntityPlayer) ((EntityPlayer) o).addStat(MainRegistry.statMines, 1);
} }
return; return;

View File

@ -8,6 +8,7 @@ import com.hbm.packet.toclient.TEVaultPacket;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -289,7 +290,8 @@ public class TileEntityBlastDoor extends TileEntityLockableBase {
public boolean placeDummy(int x, int y, int z) { 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); worldObj.setBlock(x, y, z, ModBlocks.dummy_block_blast);

View File

@ -8,6 +8,7 @@ import com.hbm.packet.toclient.TEVaultPacket;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -195,7 +196,8 @@ public class TileEntityVaultDoor extends TileEntityLockableBase {
public boolean placeDummy(int x, int y, int z) { 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); worldObj.setBlock(x, y, z, ModBlocks.dummy_block_vault);

View File

@ -557,7 +557,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon
if(te instanceof TileEntityRBMKRod){ if(te instanceof TileEntityRBMKRod){
TileEntityRBMKRod fuelChannel = (TileEntityRBMKRod)te; TileEntityRBMKRod fuelChannel = (TileEntityRBMKRod)te;
data_table.put("fluxQuantity", fuelChannel.lastFluxQuantity); data_table.put("fluxQuantity", fuelChannel.lastFluxQuantity);
data_table.put("fluxRatio", fuelChannel.fluxRatio); data_table.put("fluxRatio", fuelChannel.fluxFastRatio);
} }
if(te instanceof TileEntityRBMKBoiler){ if(te instanceof TileEntityRBMKBoiler){

View File

@ -45,7 +45,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
// New system!! // New system!!
// Used for receiving flux (calculating outbound flux/burning rods) // Used for receiving flux (calculating outbound flux/burning rods)
public double fluxRatio; public double fluxFastRatio;
public double fluxQuantity; public double fluxQuantity;
public double lastFluxQuantity; public double lastFluxQuantity;
public double lastFluxRatio; public double lastFluxRatio;
@ -73,11 +73,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
@Override @Override
public void receiveFlux(NeutronStream stream) { public void receiveFlux(NeutronStream stream) {
double fastFlux = this.fluxQuantity * this.fluxRatio; double fastFlux = this.fluxQuantity * this.fluxFastRatio;
double fastFluxIn = stream.fluxQuantity * stream.fluxRatio; double fastFluxIn = stream.fluxQuantity * stream.fluxRatio;
this.fluxQuantity += stream.fluxQuantity; this.fluxQuantity += stream.fluxQuantity;
fluxRatio = (fastFlux + fastFluxIn) / fluxQuantity; fluxFastRatio = (fastFlux + fastFluxIn) / fluxQuantity;
} }
@Override @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. // Again, nothing really uses this so its just idle code at the moment.
if (rod.specialFluxCurve) { if (rod.specialFluxCurve) {
fluxRatioOut = rod.fluxRatioOut(this.fluxRatio, ItemRBMKRod.getEnrichment(slots[0])); fluxRatioOut = rod.fluxRatioOut(this.fluxFastRatio, ItemRBMKRod.getEnrichment(slots[0]));
double fluxIn; double fluxIn;
fluxIn = rod.fluxFromRatio(this.fluxQuantity, this.fluxRatio); fluxIn = rod.fluxFromRatio(this.fluxQuantity, this.fluxFastRatio);
fluxQuantityOut = rod.burn(worldObj, slots[0], fluxIn); fluxQuantityOut = rod.burn(worldObj, slots[0], fluxIn);
} else { } 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 //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.lastFluxQuantity = this.fluxQuantity;
this.lastFluxRatio = this.fluxRatio; this.lastFluxRatio = this.fluxFastRatio;
this.fluxQuantity = 0; this.fluxQuantity = 0;
this.fluxRatio = 0; this.fluxFastRatio = 0;
spreadFlux(fluxQuantityOut, fluxRatioOut); spreadFlux(fluxQuantityOut, fluxRatioOut);
@ -155,7 +155,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
this.lastFluxRatio = 0; this.lastFluxRatio = 0;
this.lastFluxQuantity = 0; this.lastFluxQuantity = 0;
this.fluxQuantity = 0; this.fluxQuantity = 0;
this.fluxRatio = 0; this.fluxFastRatio = 0;
hasRod = false; hasRod = false;
@ -166,9 +166,12 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
private double fluxFromType(NType type) { private double fluxFromType(NType type) {
double fastFlux = this.fluxQuantity * this.fluxFastRatio;
double slowFlux = this.fluxQuantity * (1 - this.fluxFastRatio);
switch(type) { switch(type) {
case SLOW: return (this.fluxQuantity * (1 - this.fluxRatio) + Math.min(this.fluxRatio * 0.5, 1)); case SLOW: return slowFlux + fastFlux * 0.5;
case FAST: return (this.fluxQuantity * (1 - this.fluxRatio) + Math.min(this.fluxRatio * 0.3, 1)); case FAST: return fastFlux + slowFlux * 0.3;
case ANY: return this.fluxQuantity; case ANY: return this.fluxQuantity;
} }
@ -219,12 +222,12 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
// recalculate new values to keep stable operations // recalculate new values to keep stable operations
this.fluxQuantity = nbt.getDouble("fluxFast") + nbt.getDouble("fluxSlow"); this.fluxQuantity = nbt.getDouble("fluxFast") + nbt.getDouble("fluxSlow");
if (this.fluxQuantity > 0) if (this.fluxQuantity > 0)
this.fluxRatio = nbt.getDouble("fluxFast") / fluxQuantity; this.fluxFastRatio = nbt.getDouble("fluxFast") / fluxQuantity;
else else
this.fluxRatio = 0; this.fluxFastRatio = 0;
} else { } else {
this.fluxQuantity = nbt.getDouble("fluxQuantity"); this.fluxQuantity = nbt.getDouble("fluxQuantity");
this.fluxRatio = nbt.getDouble("fluxMod"); this.fluxFastRatio = nbt.getDouble("fluxMod");
} }
this.hasRod = nbt.getBoolean("hasRod"); this.hasRod = nbt.getBoolean("hasRod");
} }
@ -237,8 +240,8 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
nbt.setDouble("fluxQuantity", this.lastFluxQuantity); nbt.setDouble("fluxQuantity", this.lastFluxQuantity);
nbt.setDouble("fluxMod", this.lastFluxRatio); nbt.setDouble("fluxMod", this.lastFluxRatio);
} else { } else {
nbt.setDouble("fluxSlow", this.fluxQuantity * (1 - fluxRatio)); nbt.setDouble("fluxSlow", this.fluxQuantity * (1 - fluxFastRatio));
nbt.setDouble("fluxFast", this.fluxQuantity * fluxRatio); nbt.setDouble("fluxFast", this.fluxQuantity * fluxFastRatio);
} }
nbt.setBoolean("hasRod", this.hasRod); nbt.setBoolean("hasRod", this.hasRod);
} }
@ -255,7 +258,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
public void deserialize(ByteBuf buf) { public void deserialize(ByteBuf buf) {
super.deserialize(buf); super.deserialize(buf);
this.fluxQuantity = buf.readDouble(); this.fluxQuantity = buf.readDouble();
this.fluxRatio = buf.readDouble(); this.fluxFastRatio = buf.readDouble();
this.hasRod = buf.readBoolean(); this.hasRod = buf.readBoolean();
} }
@ -398,7 +401,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
@Callback(direct = true) @Callback(direct = true)
@Optional.Method(modid = "OpenComputers") @Optional.Method(modid = "OpenComputers")
public Object[] getFluxRatio(Context context, Arguments args) { public Object[] getFluxRatio(Context context, Arguments args) {
return new Object[] {fluxRatio}; return new Object[] {fluxFastRatio};
} }
@Callback(direct = true) @Callback(direct = true)
@ -462,7 +465,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM
return new Object[] { return new Object[] {
heat, returnValues.get(0), returnValues.get(1), 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}; ((RBMKRod)this.getBlockType()).moderated, xCoord, yCoord, zCoord};
} }

View File

@ -3887,6 +3887,10 @@ shape.wiresDense=Dichte Drähte
soundCategory.ntmMachines=NTM Maschinen 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.name=Strahlungs-Absorber
tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber tile.absorber_green.name=Fortgeschrittener Strahlungs-Absorber
tile.absorber_pink.name=Elite Strahlungs-Absorber tile.absorber_pink.name=Elite Strahlungs-Absorber

View File

@ -4970,6 +4970,10 @@ shape.wiresDense=Dense Wires
soundCategory.ntmMachines=NTM Machines 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.name=Radiation Absorber
tile.absorber_green.name=Advanced Radiation Absorber tile.absorber_green.name=Advanced Radiation Absorber
tile.absorber_pink.name=Elite Radiation Absorber tile.absorber_pink.name=Elite Radiation Absorber