sure, why not

This commit is contained in:
Bob 2025-04-12 16:37:40 +02:00
parent d3e29bf5da
commit 624bb35b72
42 changed files with 124 additions and 1308 deletions

View File

@ -20,6 +20,7 @@
* Also looks really cool to have on the roof of factories
## Changed
* Updated russian and chinese localizations
* .75 bolts now work as advertised
* Updated lead pipe texture
* Removed recipes from a few ancient melee weapons, as well as the creative tab listing
@ -41,6 +42,15 @@
* The xenon chemical plant recipes as well as biogas now require compressed air instead of no fluid at all
* Removed old unused radar configs
* The .22 SMG no longer comes with a silencer, instead a silencer can be attached as a weapon mod
* Updated RT generator's GUI
* Armor resistance stats are now configurable using `hbmArmor.json`
* The config's format is a bit fragile, check the log when making changes to see if it fails loading
* If the config fails to load, it will default to standard values
* Also works with `/ntmreload`
* Removed the unused transition hatch block
* Removed the nuclear furnace (it was already deprecated months ago)
* The diesel generator now uses a much more pleasant sound loop instead of the deafening vanilla fireworks pop noise
* Renamed "heavy infinite water barrel" to "large infinite water barrel" because somehow people found that confusing
## Fixed
* Fixed taint destroying bedrock
@ -56,4 +66,6 @@
* Fixed top left column not being selectable in the RBMK console
* Fixed CIWS hitrate config being read wrong
* Fixed DANI having broken equip animations
* Fixed break-action revolver cockking sound not syncing up with the animation
* Fixed break-action revolver cocking sound not syncing up with the animation
* Fixed NBT name collision between ReaSim steam/water values and non-ReaSim steam/water tanks, causing incorrect data to be loaded when using non-ReaSim boilers with ReaSim enabled
* Fixed gun equip animation not playing in certain circumstances

View File

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

View File

@ -696,8 +696,6 @@ public class ModBlocks {
public static Block machine_furnace_brick_off;
public static Block machine_furnace_brick_on;
public static Block machine_nuke_furnace_off;
public static Block machine_nuke_furnace_on;
public static Block machine_rtg_furnace_off;
public static Block machine_rtg_furnace_on;
@ -1173,7 +1171,6 @@ public class ModBlocks {
public static Block absorber_green;
public static Block absorber_pink;
public static Block decon;
public static Block transission_hatch;
public static Block mud_block;
public static Fluid mud_fluid;
@ -1816,8 +1813,6 @@ public class ModBlocks {
machine_furnace_brick_off = new MachineBrickFurnace(false).setBlockName("machine_furnace_brick_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_furnace_brick_on = new MachineBrickFurnace(true).setBlockName("machine_furnace_brick_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
machine_nuke_furnace_off = new MachineNukeFurnace(false).setBlockName("machine_nuke_furnace_off").setHardness(5.0F).setResistance(10.0F);
machine_nuke_furnace_on = new MachineNukeFurnace(true).setBlockName("machine_nuke_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
machine_rtg_furnace_off = new MachineRtgFurnace(false).setBlockName("machine_rtg_furnace_off").setHardness(5.0F).setResistance(10.0F);
machine_rtg_furnace_on = new MachineRtgFurnace(true).setBlockName("machine_rtg_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
@ -2325,7 +2320,6 @@ public class ModBlocks {
absorber_green = new BlockAbsorber(Material.iron, 100F).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_green");
absorber_pink = new BlockAbsorber(Material.iron, 10000F).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink");
decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side");
transission_hatch = new BlockTransission(Material.iron).setBlockName("transission_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transission_hatch");
volcano_core = new BlockVolcano().setBlockName("volcano_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_core");
volcano_rad_core = new BlockVolcano().setBlockName("volcano_rad_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_rad_core");
@ -3079,8 +3073,6 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_uf6_tank, machine_uf6_tank.getUnlocalizedName());
GameRegistry.registerBlock(machine_puf6_tank, machine_puf6_tank.getUnlocalizedName());
GameRegistry.registerBlock(machine_reactor_breeding, machine_reactor_breeding.getUnlocalizedName());
GameRegistry.registerBlock(machine_nuke_furnace_off, machine_nuke_furnace_off.getUnlocalizedName());
GameRegistry.registerBlock(machine_nuke_furnace_on, machine_nuke_furnace_on.getUnlocalizedName());
GameRegistry.registerBlock(machine_rtg_furnace_off, machine_rtg_furnace_off.getUnlocalizedName());
GameRegistry.registerBlock(machine_rtg_furnace_on, machine_rtg_furnace_on.getUnlocalizedName());
register(machine_wood_burner);
@ -3344,7 +3336,6 @@ public class ModBlocks {
GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName());
GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName());
GameRegistry.registerBlock(decon, decon.getUnlocalizedName());
GameRegistry.registerBlock(transission_hatch, transission_hatch.getUnlocalizedName());
//Solar Tower Blocks
GameRegistry.registerBlock(machine_solar_boiler, machine_solar_boiler.getUnlocalizedName());

View File

@ -103,7 +103,6 @@ public class BlockCrate extends BlockFalling {
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_press), 10);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 9);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_reactor_breeding), 6);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 7);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_wood_burner), 10);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4);

View File

@ -1,32 +0,0 @@
package com.hbm.blocks.generic;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
public class BlockTransission extends Block {
public BlockTransission(Material mat) {
super(mat);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) {
return true;
} else if(!player.isSneaking()) {
if(side == 0) {
player.setPositionAndUpdate(x + 0.5, y + 1, z + 0.5);
}
if(side == 1) {
player.setPositionAndUpdate(x + 0.5, y - 2, z + 0.5);
}
return true;
} else {
return false;
}
}
}

View File

@ -1,268 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityNukeFurnace;
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.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import java.util.Random;
public class MachineNukeFurnace extends BlockContainer {
private final Random field_149933_a = new Random();
private final boolean isActive;
private static boolean keepInventory;
@SideOnly(Side.CLIENT)
private IIcon iconTop;
@SideOnly(Side.CLIENT)
private IIcon iconFront;
public MachineNukeFurnace(boolean blockState) {
super(Material.iron);
isActive = blockState;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_nuke_furnace_base_alt");
this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_nuke_furnace_front_on_alt" : ":machine_nuke_furnace_front_off_alt"));
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_nuke_furnace_side_alt");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : (side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon)));
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
{
return Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off);
}
@Override
public void onBlockAdded(World world, int x, int y, int z) {
super.onBlockAdded(world, x, y, z);
this.setDefaultDirection(world, x, y, z);
}
private void setDefaultDirection(World world, int x, int y, int z) {
if(!world.isRemote)
{
Block block1 = world.getBlock(x, y, z - 1);
Block block2 = world.getBlock(x, y, z + 1);
Block block3 = world.getBlock(x - 1, y, z);
Block block4 = world.getBlock(x + 1, y, z);
byte b0 = 3;
if(block1.func_149730_j() && !block2.func_149730_j())
{
b0 = 3;
}
if(block2.func_149730_j() && !block1.func_149730_j())
{
b0 = 2;
}
if(block3.func_149730_j() && !block4.func_149730_j())
{
b0 = 5;
}
if(block4.func_149730_j() && !block3.func_149730_j())
{
b0 = 4;
}
world.setBlockMetadataWithNotify(x, y, z, b0, 2);
}
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0)
{
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
}
if(i == 1)
{
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
}
if(i == 2)
{
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
}
if(i == 3)
{
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
}
if(itemStack.hasDisplayName())
{
((TileEntityNukeFurnace)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName());
}
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
TileEntityNukeFurnace entity = (TileEntityNukeFurnace) world.getTileEntity(x, y, z);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
}
return true;
} else {
return false;
}
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityNukeFurnace();
}
public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) {
int i = world.getBlockMetadata(x, y, z);
TileEntity entity = world.getTileEntity(x, y, z);
keepInventory = true;
if(isProcessing)
{
world.setBlock(x, y, z, ModBlocks.machine_nuke_furnace_on);
}else{
world.setBlock(x, y, z, ModBlocks.machine_nuke_furnace_off);
}
keepInventory = false;
world.setBlockMetadataWithNotify(x, y, z, i, 2);
if(entity != null) {
entity.validate();
world.setTileEntity(x, y, z, entity);
}
}
@Override
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
{
if (!keepInventory)
{
TileEntityNukeFurnace tileentityfurnace = (TileEntityNukeFurnace)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
if (tileentityfurnace != null)
{
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
{
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if (itemstack != null)
{
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
while (itemstack.stackSize > 0)
{
int j1 = this.field_149933_a.nextInt(21) + 10;
if (j1 > itemstack.stackSize)
{
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound())
{
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
}
float f3 = 0.05F;
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem);
}
}
}
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
}
}
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand)
{
if (isActive)
{
int l = p_149734_1_.getBlockMetadata(x, y, z);
float f = x + 0.5F;
float f1 = y + 0.25F + rand.nextFloat() * 6.0F / 16.0F;
float f2 = z + 0.5F;
float f3 = 0.52F;
float f4 = rand.nextFloat() * 0.6F - 0.3F;
rand.nextFloat();
rand.nextFloat();
if (l == 4)
{
p_149734_1_.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D);
p_149734_1_.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D);
}
else if (l == 5)
{
p_149734_1_.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D);
p_149734_1_.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D);
}
else if (l == 2)
{
p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D);
p_149734_1_.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D);
}
else if (l == 3)
{
p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D);
p_149734_1_.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D);
}
}
}
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_)
{
return Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off);
}
}

View File

@ -119,7 +119,7 @@ public class WeaponRecipes {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.weapon_mod_generic, 1, EnumModGeneric.BRONZE_DURA.ordinal()), new Object[] { BIGMT.plate(), ANY_BISMOIDBRONZE.plateCast(), ModItems.ducttape });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SILENCER.ordinal()), new Object[] { "P", "B", "P", 'P', ANY_PLASTIC.ingot(), 'B', STEEL.lightBarrel() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SCOPE.ordinal()), new Object[] { "SPS", "G G", "SPS", 'P', ANY_PLASTIC.ingot(), 'S', STEEL.plate(), 'G', KEY_ANYPANE });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SAW.ordinal()), new Object[] { "BBS", "BHB", 'B', STEEL.bolt(), 'S', KEY_STICK, 'H', DURA.plate() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SAW.ordinal()), new Object[] { "BBS", "BHS", 'B', STEEL.bolt(), 'S', KEY_STICK, 'H', DURA.plate() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SPEEDLOADER.ordinal()), new Object[] { " B ", "BSB", " B ", 'B', STEEL.bolt(), 'S', WEAPONSTEEL.plate() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SLOWDOWN.ordinal()), new Object[] { " I ", " M ", "I I", 'I', WEAPONSTEEL.ingot(), 'M', WEAPONSTEEL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SPEEDUP.ordinal()), new Object[] { "PIP", "WWW", "PIP", 'P', WEAPONSTEEL.plate(), 'I', GUNMETAL.ingot(), 'W', GOLD.wireDense() });

View File

@ -1,122 +0,0 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotCraftingOutput;
import com.hbm.tileentity.machine.TileEntityNukeFurnace;
import com.hbm.util.InventoryUtil;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerNukeFurnace extends Container {
private TileEntityNukeFurnace diFurnace;
private int dualCookTime;
private int dualPower;
public ContainerNukeFurnace(InventoryPlayer invPlayer, TileEntityNukeFurnace tedf) {
dualCookTime = 0;
dualPower = 0;
diFurnace = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 56, 53) {
@Override
public int getSlotStackLimit() {
return 1;
}
});
this.addSlotToContainer(new Slot(tedf, 1, 56, 17));
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 2, 116, 35));
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142));
}
}
@Override
public void addCraftingToCrafters(ICrafting crafting) {
super.addCraftingToCrafters(crafting);
crafting.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime);
crafting.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) {
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if(var4 != null && var4.getHasStack()) {
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if(par2 <= 2) {
if(!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) {
return null;
}
} else {
if(TileEntityNukeFurnace.getFuelValue(var5) > 0) {
if(!InventoryUtil.mergeItemStack(this.inventorySlots, var5, 0, 1, false))
return null;
} else {
if(!this.mergeItemStack(var5, 1, 2, false))
return null;
}
}
if(var5.stackSize == 0) {
var4.putStack((ItemStack) null);
} else {
var4.onSlotChanged();
}
}
return var3;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return diFurnace.isUseableByPlayer(player);
}
@Override
public void detectAndSendChanges() {
super.detectAndSendChanges();
for(int i = 0; i < this.crafters.size(); i++) {
ICrafting par1 = (ICrafting) this.crafters.get(i);
if(this.dualCookTime != this.diFurnace.dualCookTime) {
par1.sendProgressBarUpdate(this, 0, this.diFurnace.dualCookTime);
}
if(this.dualPower != this.diFurnace.dualPower) {
par1.sendProgressBarUpdate(this, 1, this.diFurnace.dualPower);
}
}
this.dualCookTime = this.diFurnace.dualCookTime;
this.dualPower = this.diFurnace.dualPower;
}
@Override
public void updateProgressBar(int i, int j) {
if(i == 0) {
diFurnace.dualCookTime = j;
}
if(i == 1) {
diFurnace.dualPower = j;
}
}
}

View File

@ -1,54 +0,0 @@
package com.hbm.inventory.gui;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerNukeFurnace;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityNukeFurnace;
public class GUINukeFurnace extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_nuke_furnace.png");
private TileEntityNukeFurnace furnace;
public GUINukeFurnace(InventoryPlayer invPlayer, TileEntityNukeFurnace tedf) {
super(new ContainerNukeFurnace(invPlayer, tedf));
furnace = tedf;
this.xSize = 176;
this.ySize = 166;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 55, guiTop + 34, 18, 18, mouseX, mouseY, new String[] { furnace.dualPower + " operation(s) left" });
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.furnace.hasCustomInventoryName() ? this.furnace.getInventoryName() : I18n.format(this.furnace.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(furnace.hasPower())
drawTexturedModalRect(guiLeft + 55, guiTop + 35, 176, 0, 18, 16);
int i = furnace.getDiFurnaceProgressScaled(24);
drawTexturedModalRect(guiLeft + 80, guiTop + 34, 176, 16, i, 17);
}
}

View File

@ -834,7 +834,6 @@ public class ModItems {
public static Item particle_lutece;
public static Item pellet_antimatter;
public static Item singularity_micro;
public static Item singularity;
public static Item singularity_counter_resonant;
public static Item singularity_super_heated;
@ -2907,7 +2906,6 @@ public class ModItems {
particle_sparkticle = new Item().setUnlocalizedName("particle_sparkticle").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_sparkticle");
particle_digamma = new ItemDigamma(60).setUnlocalizedName("particle_digamma").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_digamma");
particle_lutece = new Item().setUnlocalizedName("particle_lutece").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.particle_empty).setTextureName(RefStrings.MODID + ":particle_lutece");
singularity_micro = new ItemDrop().setUnlocalizedName("singularity_micro").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_micro");
singularity = new ItemDrop().setUnlocalizedName("singularity").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity");
singularity_counter_resonant = new ItemDrop().setUnlocalizedName("singularity_counter_resonant").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.nuclear_waste).setTextureName(RefStrings.MODID + ":singularity_alt");
@ -5745,7 +5743,6 @@ public class ModItems {
GameRegistry.registerItem(particle_lutece, particle_lutece.getUnlocalizedName());
//Singularities, black holes and other cosmic horrors
GameRegistry.registerItem(singularity_micro, singularity_micro.getUnlocalizedName());
GameRegistry.registerItem(singularity, singularity.getUnlocalizedName());
GameRegistry.registerItem(singularity_counter_resonant, singularity_counter_resonant.getUnlocalizedName());
GameRegistry.registerItem(singularity_super_heated, singularity_super_heated.getUnlocalizedName());

View File

@ -74,9 +74,7 @@ public class ItemStarterKit extends Item {
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_press, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_difurnace_off, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_gascent, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_puf6_tank, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_reactor_breeding, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_nuke_furnace_off, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_assembler, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.machine_chemplant, 1));
player.inventory.addItemStackToInventory(new ItemStack(ModBlocks.reactor_research, 1));

View File

@ -14,6 +14,7 @@ import com.hbm.handler.HbmKeybinds.EnumKeybind;
import com.hbm.interfaces.IItemHUD;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.gui.GUIWeaponTable;
import com.hbm.items.IEquipReceiver;
import com.hbm.items.IKeybindReceiver;
import com.hbm.items.weapon.sedna.hud.IHUDComponent;
import com.hbm.items.weapon.sedna.mags.IMagazine;
@ -47,7 +48,7 @@ import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD {
public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD, IEquipReceiver {
/** Timestamp for rendering smoke nodes and muzzle flashes */
public long[] lastShot;
@ -230,8 +231,10 @@ public class ItemGunBaseNT extends Item implements IKeybindReceiver, IItemHUD {
}
}
@Override
public void onEquip(EntityPlayer player, ItemStack stack) {
for(int i = 0; i < this.configs_DNA.length; i++) {
if(this.getLastAnim(stack, i) == AnimType.EQUIP && this.getAnimTimer(stack, i) < 5) continue;
playAnimation(player, stack, AnimType.EQUIP, i);
this.setPrimary(stack, i, false);
this.setSecondary(stack, i, false);

View File

@ -95,10 +95,10 @@ public class XFactory357 {
case CYCLE: return new BusAnimation()
.addBus("RECOIL", new BusAnimationSequence().addPos(0, 0, 0, 50).addPos(0, 0, -3, 50).addPos(0, 0, 0, 250))
.addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 300).addPos(0, 0, 0, 200))
.addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, 0, 1, 200));
.addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, 1, 200));
case CYCLE_DRY: return new BusAnimation()
.addBus("HAMMER", new BusAnimationSequence().addPos(0, 0, 1, 50).addPos(0, 0, 1, 200).addPos(0, 0, 0, 200))
.addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 350).addPos(0, 0, 1, 200));
.addBus("DRUM", new BusAnimationSequence().addPos(0, 0, 0, 250).addPos(0, 0, 1, 200));
case RELOAD: return new BusAnimation()
.addBus("LATCH", new BusAnimationSequence().addPos(0, 0, 90, 300).addPos(0, 0, 90, 2000).addPos(0, 0, 0, 150))
.addBus("FRONT", new BusAnimationSequence().addPos(0, 0, 0, 200).addPos(0, 0, 45, 150).addPos(0, 0, 45, 2000).addPos(0, 0, 0, 75))

View File

@ -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 (5279)";
public static final String VERSION = "1.0.27 BETA (5298)";
//HBM's Beta Naming Convention:
//V T (X)
//V -> next release version

View File

@ -1673,13 +1673,16 @@ public class MainRegistry {
ignoreMappings.add("hbm:item.mechanism_launcher_1");
ignoreMappings.add("hbm:item.mechanism_launcher_2");
ignoreMappings.add("hbm:item.mechanism_special");
ignoreMappings.add("hbm:tile.transission_hatch");
ignoreMappings.add("hbm:tile.machine_nuke_furnace_off");
ignoreMappings.add("hbm:tile.machine_nuke_furnace_on");
ignoreMappings.add("hbm:item.singularity_micro");
/// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);
remapItems.put("hbm:item.man_explosive8", ModItems.explosive_lenses);
remapItems.put("hbm:item.briquette_lignite", ModItems.briquette);
remapItems.put("hbm:item.antiknock", ModItems.fuel_additive);
remapItems.put("hbm:item.kit_toolbox_empty", ModItems.toolbox);
remapItems.put("hbm:item.kit_toolbox", ModItems.legacy_toolbox);
@ -1697,7 +1700,6 @@ public class MainRegistry {
}
if(mapping.type == GameRegistry.Type.ITEM) {
if(remapItems.get(mapping.name) != null) {
mapping.remap(remapItems.get(mapping.name));
continue;

View File

@ -58,7 +58,6 @@ import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound;
import com.hbm.tileentity.bomb.TileEntityNukeCustom;
import com.hbm.tileentity.bomb.TileEntityNukeCustom.CustomNukeEntry;
import com.hbm.tileentity.bomb.TileEntityNukeCustom.EnumEntryType;
import com.hbm.tileentity.machine.TileEntityNukeFurnace;
import com.hbm.util.*;
import com.hbm.util.ArmorRegistry.HazardClass;
import com.hbm.wiaj.GuiWorldInAJar;
@ -781,13 +780,6 @@ public class ModEventHandlerClient {
}
}
/// NUCLEAR FURNACE FUELS ///
int breeder = TileEntityNukeFurnace.getFuelValue(stack);
if(breeder != 0) {
list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.furnace", breeder));
}
/// CUSTOM NUKE ///
ComparableStack comp = new ComparableStack(stack).makeSingular();

View File

@ -49,13 +49,11 @@ public class NEIConfig implements IConfigureNEI {
for(int i = 0; i < EnumSecretType.values().length; i++) API.hideItem(new ItemStack(ModItems.item_secret, 1, i));
API.hideItem(new ItemStack(ModBlocks.machine_electric_furnace_on));
API.hideItem(new ItemStack(ModBlocks.machine_difurnace_on));
API.hideItem(new ItemStack(ModBlocks.machine_nuke_furnace_on));
API.hideItem(new ItemStack(ModBlocks.machine_rtg_furnace_on));
API.hideItem(new ItemStack(ModBlocks.reinforced_lamp_on));
API.hideItem(new ItemStack(ModBlocks.statue_elb_f));
API.hideItem(new ItemStack(ModBlocks.cheater_virus));
API.hideItem(new ItemStack(ModBlocks.cheater_virus_seed));
API.hideItem(new ItemStack(ModBlocks.transission_hatch));
API.hideItem(new ItemStack(ModItems.euphemium_kit));
API.hideItem(new ItemStack(ModItems.bobmazon_hidden));
API.hideItem(new ItemStack(ModItems.book_lore)); //the broken nbt-less one shouldn't show up in normal play anyway

View File

@ -260,6 +260,7 @@ public abstract class ItemRenderWeaponBase implements IItemRenderer {
public void setupEntity(ItemStack stack) {
double scale = 0.125D;
GL11.glScaled(scale, scale, scale);
GL11.glRotated(-90, 0, 1, 0);
}
public void setupModTable(ItemStack stack) {

View File

@ -3,7 +3,6 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.generic.BlockSkeletonHolder.TileEntitySkeletonHolder;
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
import com.hbm.main.ResourceManager;
import net.minecraft.block.Block;
@ -46,10 +45,6 @@ public class RenderSkeletonHolder extends TileEntitySpecialRenderer {
GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
if(stack.getItem() instanceof ItemGunBaseNT) {
GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F);
}
if(!(stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType()))) {
GL11.glScaled(1.5, 1.5, 1.5);
}

View File

@ -62,7 +62,6 @@ public class TileMappings {
put(TileEntityMachineUF6Tank.class, "tileentity_uf6_tank");
put(TileEntityMachinePuF6Tank.class, "tileentity_puf6_tank");
put(TileEntityMachineReactorBreeding.class, "tileentity_reactor");
put(TileEntityNukeFurnace.class, "tileentity_nukefurnace");
put(TileEntityRtgFurnace.class, "tileentity_rtgfurnace");
put(TileEntityMachineElectricFurnace.class, "tileentity_electric_furnace");
put(TileEntityDecoTapeRecorder.class, "tileentity_taperecorder");

View File

@ -17,6 +17,8 @@ import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType;
import com.hbm.inventory.gui.GUIMachineDiesel;
import com.hbm.items.ModItems;
import com.hbm.lib.Library;
import com.hbm.main.MainRegistry;
import com.hbm.sound.AudioWrapper;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.IFluidCopiable;
import com.hbm.tileentity.IGUIProvider;
@ -40,10 +42,12 @@ import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC, IFluidCopiable {
public long power;
public int soundCycle = 0;
public long powerCap = maxPower;
public FluidTank tank;
public boolean wasOn = false;
private AudioWrapper audio;
/* CONFIGURABLE CONSTANTS */
public static long maxPower = 50000;
public static int fluidCap = 16000;
@ -53,7 +57,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
fuelEfficiency.put(FuelGrade.HIGH, 0.75D);
fuelEfficiency.put(FuelGrade.AERO, 0.1D);
}
public static boolean shutUp = false;
private static final int[] slots_top = new int[] { 0 };
private static final int[] slots_bottom = new int[] { 1, 2 };
@ -71,13 +74,8 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
@Override
public boolean isItemValidForSlot(int i, ItemStack stack) {
if (i == 0)
if (FluidContainerRegistry.getFluidContent(stack, tank.getTankType()) > 0)
return true;
if (i == 2)
if (stack.getItem() instanceof IBatteryItem)
return true;
if(i == 0) return FluidContainerRegistry.getFluidContent(stack, tank.getTankType()) > 0;
if(i == 2) return stack.getItem() instanceof IBatteryItem;
return false;
}
@ -106,17 +104,8 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
@Override
public boolean canExtractItem(int i, ItemStack stack, int j) {
if(i == 1) {
if(stack.getItem() == ModItems.canister_empty || stack.getItem() == ModItems.tank_steel) {
return true;
}
}
if(i == 2) {
if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge(stack)) {
return true;
}
}
if(i == 1) return stack.getItem() == ModItems.canister_empty || stack.getItem() == ModItems.tank_steel;
if(i == 2) return stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == ((IBatteryItem) stack.getItem()).getMaxCharge(stack);
return false;
}
@ -129,6 +118,8 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
if(!worldObj.isRemote) {
this.wasOn = false;
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
this.sendSmoke(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir);
@ -153,6 +144,49 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
generate();
this.networkPackNT(50);
} else {
if(wasOn) {
if(audio == null) {
audio = createAudioLoop();
audio.startSound();
} else if(!audio.isPlaying()) {
audio = rebootAudio(audio);
}
audio.keepAlive();
audio.updateVolume(this.getVolume(1F));
} else {
if(audio != null) {
audio.stopSound();
audio = null;
}
}
}
}
@Override
public AudioWrapper createAudioLoop() {
return MainRegistry.proxy.getLoopedSound("hbm:block.engine", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F, 10);
}
@Override
public void onChunkUnload() {
if(audio != null) {
audio.stopSound();
audio = null;
}
}
@Override
public void invalidate() {
super.invalidate();
if(audio != null) {
audio.stopSound();
audio = null;
}
}
@ -161,6 +195,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
super.serialize(buf);
buf.writeInt((int) power);
buf.writeInt((int) powerCap);
buf.writeBoolean(wasOn);
tank.serialize(buf);
}
@ -169,6 +204,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
super.deserialize(buf);
this.power = buf.readInt();
this.powerCap = buf.readInt();
this.wasOn = buf.readBoolean();
tank.deserialize(buf);
}
@ -200,15 +236,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
if(hasAcceptableFuel()) {
if (tank.getFill() > 0) {
if(!shutUp) {
if (soundCycle == 0) {
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(0.75F), 0.5F);
}
soundCycle++;
}
if(soundCycle >= 3)
soundCycle = 0;
this.wasOn = true;
tank.setFill(tank.getFill() - 1);
if(tank.getFill() < 0)
@ -227,30 +255,12 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
}
}
@Override
public long getPower() {
return power;
}
@Override public long getPower() { return power; }
@Override public void setPower(long i) { this.power = i; }
@Override public long getMaxPower() { return this.maxPower; }
@Override
public void setPower(long i) {
this.power = i;
}
@Override
public long getMaxPower() {
return this.maxPower;
}
@Override
public FluidTank[] getReceivingTanks() {
return new FluidTank[] {tank};
}
@Override
public FluidTank[] getAllTanks() {
return new FluidTank[] { tank };
}
@Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tank}; }
@Override public FluidTank[] getAllTanks() { return new FluidTank[] { tank }; }
@Override
public String getConfigName() {
@ -268,7 +278,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
fuelEfficiency.put(grade, array.get(grade.ordinal()).getAsDouble());
}
}
shutUp = IConfigurableMachine.grab(obj, "B:shutUp", shutUp);
}
@Override
@ -287,7 +296,6 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen
writer.value(d);
}
writer.endArray().setIndent(" ");
writer.name("B:shutUp").value(shutUp);
}
@Override

View File

@ -1,386 +0,0 @@
package com.hbm.tileentity.machine;
import java.util.HashMap;
import com.hbm.blocks.machine.MachineNukeFurnace;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.container.ContainerNukeFurnace;
import com.hbm.inventory.gui.GUINukeFurnace;
import com.hbm.items.ItemCustomLore;
import com.hbm.items.ModItems;
import com.hbm.tileentity.IGUIProvider;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class TileEntityNukeFurnace extends TileEntity implements ISidedInventory, IGUIProvider {
private ItemStack slots[];
public int dualCookTime;
public int dualPower;
public static final int maxPower = 1000;
public static final int processingSpeed = 25;
private static final int[] slots_top = new int[] {1};
private static final int[] slots_bottom = new int[] {2, 0};
private static final int[] slots_side = new int[] {0};
private String customName;
public TileEntityNukeFurnace() {
slots = new ItemStack[3];
}
@Override
public int getSizeInventory() {
return slots.length;
}
@Override
public ItemStack getStackInSlot(int i) {
return slots[i];
}
@Override
public ItemStack getStackInSlotOnClosing(int i) {
if(slots[i] != null)
{
ItemStack itemStack = slots[i];
slots[i] = null;
return itemStack;
} else {
return null;
}
}
@Override
public void setInventorySlotContents(int i, ItemStack itemStack) {
slots[i] = itemStack;
if(itemStack != null && itemStack.stackSize > getInventoryStackLimit())
{
itemStack.stackSize = getInventoryStackLimit();
}
}
@Override
public String getInventoryName() {
return this.hasCustomInventoryName() ? this.customName : "container.nukeFurnace";
}
@Override
public boolean hasCustomInventoryName() {
return this.customName != null && this.customName.length() > 0;
}
public void setCustomName(String name) {
this.customName = name;
}
@Override
public int getInventoryStackLimit() {
return 64;
}
@Override
public boolean isUseableByPlayer(EntityPlayer player) {
if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this)
{
return false;
}else{
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64;
}
}
//You scrubs aren't needed for anything (right now)
@Override
public void openInventory() {}
@Override
public void closeInventory() {}
@Override
public boolean isItemValidForSlot(int i, ItemStack itemStack) {
return true;
}
public boolean hasItemPower(ItemStack itemStack) {
return getItemPower(itemStack) > 0;
}
private static int getItemPower(ItemStack stack) {
if(stack == null) {
return 0;
} else {
int power = getFuelValue(stack);
return power;
}
}
@Override
public ItemStack decrStackSize(int i, int j) {
if(slots[i] != null)
{
if(slots[i].stackSize <= j)
{
ItemStack itemStack = slots[i];
slots[i] = null;
return itemStack;
}
ItemStack itemStack1 = slots[i].splitStack(j);
if (slots[i].stackSize == 0)
{
slots[i] = null;
}
return itemStack1;
} else {
return null;
}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
NBTTagList list = nbt.getTagList("items", 10);
dualPower = nbt.getShort("powerTime");
dualCookTime = nbt.getShort("CookTime");
slots = new ItemStack[getSizeInventory()];
for(int i = 0; i < list.tagCount(); i++)
{
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot");
if(b0 >= 0 && b0 < slots.length)
{
slots[b0] = ItemStack.loadItemStackFromNBT(nbt1);
}
}
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setShort("powerTime", (short) dualPower);
nbt.setShort("cookTime", (short) dualCookTime);
NBTTagList list = new NBTTagList();
for(int i = 0; i < slots.length; i++)
{
if(slots[i] != null)
{
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte)i);
slots[i].writeToNBT(nbt1);
list.appendTag(nbt1);
}
}
nbt.setTag("items", list);
}
@Override
public int[] getAccessibleSlotsFromSide(int p_94128_1_)
{
return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side);
}
@Override
public boolean canInsertItem(int i, ItemStack itemStack, int j) {
if(i == 0)
{
if(itemStack.getItem() instanceof ItemCustomLore)
{
return true;
}
return false;
}
return true;
}
@Override
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
if(i == 0)
{
if(itemStack.getItem() == ModItems.rod_empty || itemStack.getItem() == ModItems.rod_dual_empty || itemStack.getItem() == ModItems.rod_quad_empty)
{
return true;
}
return false;
}
return true;
}
public int getDiFurnaceProgressScaled(int i) {
return (dualCookTime * i) / processingSpeed;
}
public int getPowerRemainingScaled(int i) {
return (dualPower * i) / maxPower;
}
public boolean canProcess() {
if(slots[1] == null)
{
return false;
}
ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]);
if(itemStack == null)
{
return false;
}
if(slots[2] == null)
{
return true;
}
if(!slots[2].isItemEqual(itemStack)) {
return false;
}
if(slots[2].stackSize < getInventoryStackLimit() && slots[2].stackSize < slots[2].getMaxStackSize()) {
return true;
}else{
return slots[2].stackSize < itemStack.getMaxStackSize();
}
}
private void processItem() {
if(canProcess()) {
ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]);
if(slots[2] == null)
{
slots[2] = itemStack.copy();
}else if(slots[2].isItemEqual(itemStack)) {
slots[2].stackSize += itemStack.stackSize;
}
for(int i = 1; i < 2; i++)
{
if(slots[i].stackSize <= 0)
{
slots[i] = new ItemStack(slots[i].getItem().setFull3D());
}else{
slots[i].stackSize--;
}
if(slots[i].stackSize <= 0)
{
slots[i] = null;
}
}
{
dualPower--;
}
}
}
public boolean hasPower() {
return dualPower > 0;
}
public boolean isProcessing() {
return this.dualCookTime > 0;
}
@Override
public void updateEntity() {
this.hasPower();
boolean flag1 = false;
if(!worldObj.isRemote)
{
if(this.hasItemPower(this.slots[0]) && this.dualPower == 0)
{
this.dualPower += getItemPower(this.slots[0]);
if(this.slots[0] != null)
{
flag1 = true;
this.slots[0].stackSize--;
if(this.slots[0].stackSize == 0)
{
this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]);
}
}
}
if(hasPower() && canProcess())
{
dualCookTime++;
if(this.dualCookTime == TileEntityNukeFurnace.processingSpeed)
{
this.dualCookTime = 0;
this.processItem();
flag1 = true;
}
}else{
dualCookTime = 0;
}
boolean trigger = true;
if(hasPower() && canProcess() && this.dualCookTime == 0)
{
trigger = false;
}
if(trigger)
{
flag1 = true;
MachineNukeFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
}
}
if(flag1)
{
this.markDirty();
}
}
private static HashMap<ComparableStack, Integer> fuels = new HashMap();
/**
* Returns an integer array of the fuel value of a certain stack
* @param stack
* @return an integer array (possibly null) with two fields, the HEAT value and the amount of operations
*/
public static int getFuelValue(ItemStack stack) {
if(stack == null)
return 0;
ComparableStack sta = new ComparableStack(stack).makeSingular();
if(fuels.get(sta) != null)
return fuels.get(sta);
return 0;
}
@Override
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new ContainerNukeFurnace(player.inventory, this);
}
@Override
@SideOnly(Side.CLIENT)
public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
return new GUINukeFurnace(player.inventory, this);
}
}

View File

@ -56,9 +56,9 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
public double heat;
public int water;
public int reasimWater;
public static final int maxWater = 16000;
public int steam;
public int reasimSteam;
public static final int maxSteam = 16000;
public boolean hasLid() {
@ -130,15 +130,15 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
double heatConsumption = RBMKDials.getBoilerHeatConsumption(worldObj);
double availableHeat = (this.heat - 100) / heatConsumption;
double availableWater = this.water;
double availableSpace = maxSteam - this.steam;
double availableWater = this.reasimWater;
double availableSpace = maxSteam - this.reasimSteam;
int processedWater = (int) Math.floor(BobMathUtil.min(availableHeat, availableWater, availableSpace) * MathHelper.clamp_double(RBMKDials.getReaSimBoilerSpeed(worldObj), 0D, 1D));
if(processedWater <= 0) return;
this.water -= processedWater;
this.steam += processedWater;
this.reasimWater -= processedWater;
this.reasimSteam += processedWater;
this.heat -= processedWater * heatConsumption;
}
@ -162,8 +162,8 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
List<TileEntityRBMKBase> rec = new ArrayList<>();
rec.add(this);
double heatTot = this.heat;
int waterTot = this.water;
int steamTot = this.steam;
int waterTot = this.reasimWater;
int steamTot = this.reasimSteam;
int index = 0;
for(ForgeDirection dir : neighborDirs) {
@ -188,8 +188,8 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
if(base != null) {
rec.add(base);
heatTot += base.heat;
waterTot += base.water;
steamTot += base.steam;
waterTot += base.reasimWater;
steamTot += base.reasimSteam;
}
}
@ -210,13 +210,13 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
rbmk.heat += delta * stepSize;
//set to the averages, rounded down
rbmk.water = tWater;
rbmk.steam = tSteam;
rbmk.reasimWater = tWater;
rbmk.reasimSteam = tSteam;
}
//add the modulo to make up for the losses coming from rounding
this.water += rWater;
this.steam += rSteam;
this.reasimWater += rWater;
this.reasimSteam += rSteam;
this.markDirty();
}
@ -271,8 +271,8 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
}
this.heat = nbt.getDouble("heat");
this.water = nbt.getInteger("water");
this.steam = nbt.getInteger("steam");
this.reasimWater = nbt.getInteger("reasimWater");
this.reasimSteam = nbt.getInteger("reasimSteam");
}
@Override
@ -283,22 +283,22 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
}
nbt.setDouble("heat", this.heat);
nbt.setInteger("water", this.water);
nbt.setInteger("steam", this.steam);
nbt.setInteger("reasimWater", this.reasimWater);
nbt.setInteger("reasimSteam", this.reasimSteam);
}
@Override
public void serialize(ByteBuf buf) {
buf.writeDouble(this.heat);
buf.writeInt(this.water);
buf.writeInt(this.steam);
buf.writeInt(this.reasimWater);
buf.writeInt(this.reasimSteam);
}
@Override
public void deserialize(ByteBuf buf) {
this.heat = buf.readDouble();
this.water = buf.readInt();
this.steam = buf.readInt();
this.reasimWater = buf.readInt();
this.reasimSteam = buf.readInt();
}
public void getDiagData(NBTTagCompound nbt) {

View File

@ -41,8 +41,8 @@ public class TileEntityRBMKInlet extends TileEntityLoadedBase implements IFluidS
if(te instanceof TileEntityRBMKBase) {
TileEntityRBMKBase rbmk = (TileEntityRBMKBase) te;
int prov = Math.min(rbmk.maxWater - rbmk.water, water.getFill());
rbmk.water += prov;
int prov = Math.min(rbmk.maxWater - rbmk.reasimWater, water.getFill());
rbmk.reasimWater += prov;
water.setFill(water.getFill() - prov);
}
}

View File

@ -39,8 +39,8 @@ public class TileEntityRBMKOutlet extends TileEntityLoadedBase implements IFluid
if(te instanceof TileEntityRBMKBase) {
TileEntityRBMKBase rbmk = (TileEntityRBMKBase) te;
int prov = Math.min(steam.getMaxFill() - steam.getFill(), rbmk.steam);
rbmk.steam -= prov;
int prov = Math.min(steam.getMaxFill() - steam.getFill(), rbmk.reasimSteam);
rbmk.reasimSteam -= prov;
steam.setFill(steam.getFill() + prov);
}
}

View File

@ -27,7 +27,7 @@ public class DesertAtom001 extends WorldGenerator
Block Block7 = ModBlocks.deco_tungsten;
Block Block8 = ModBlocks.steel_poles;
Block Block9 = ModBlocks.tape_recorder;
Block Block10 = ModBlocks.machine_nuke_furnace_off;
Block Block10 = ModBlocks.machine_rtg_furnace_off;
Block Block11 = ModBlocks.reinforced_glass;
Block Block12 = ModBlocks.reinforced_lamp_off;
Block Block13 = ModBlocks.pole_satellite_receiver;

View File

@ -27,7 +27,7 @@ public class DesertAtom002
Block Block7 = ModBlocks.deco_tungsten;
Block Block8 = ModBlocks.steel_poles;
Block Block9 = ModBlocks.tape_recorder;
Block Block10 = ModBlocks.machine_nuke_furnace_off;
Block Block10 = ModBlocks.machine_rtg_furnace_off;
Block Block11 = ModBlocks.reinforced_glass;
Block Block12 = ModBlocks.reinforced_lamp_off;
Block Block13 = ModBlocks.pole_satellite_receiver;

View File

@ -30,7 +30,7 @@ public class DesertAtom003
Block Block7 = ModBlocks.deco_tungsten;
Block Block8 = ModBlocks.steel_poles;
Block Block9 = ModBlocks.tape_recorder;
Block Block10 = ModBlocks.machine_nuke_furnace_off;
Block Block10 = ModBlocks.machine_rtg_furnace_off;
Block Block11 = ModBlocks.reinforced_glass;
Block Block12 = ModBlocks.reinforced_lamp_off;
Block Block13 = ModBlocks.pole_satellite_receiver;

View File

@ -1017,105 +1017,6 @@ item.alloy_pickaxe.name=Legierungsspitzhacke
item.alloy_plate.name=Legierungsbrustpanzer
item.alloy_shovel.name=Legierungsschaufel
item.alloy_sword.name=Legierungsschwert
item.ammo_12gauge.name=Kaliber 12 Schrot
item.ammo_12gauge_du.name=Kaliber 12 Schrot (Uranbeschichtung)
item.ammo_12gauge_incendiary.name=Kaliber 12 Schrot (Brand)
item.ammo_12gauge_marauder.name=Kaliber 12 Taktische Anti-Marauder Schrotpatrone
item.ammo_12gauge_percussion.name=Kaliber 12 Sprengkapsel
item.ammo_12gauge_shrapnel.name=Kaliber 12 Schrot (Schrapnell)
item.ammo_12gauge_sleek.name=Kaliber 12 Schrot (IF-F&E)
item.ammo_20gauge.name=Kaliber 20 Schrot
item.ammo_20gauge_caustic.name=Kaliber 20 Schrot (Ätzend)
item.ammo_20gauge_explosive.name=Kaliber 20 Schrot (Explosiv)
item.ammo_20gauge_flechette.name=Kaliber 20 Flechet
item.ammo_20gauge_incendiary.name=Kaliber 20 Schrot (Brand)
item.ammo_20gauge_shock.name=Kaliber 20 Schrot (Schock)
item.ammo_20gauge_shrapnel.name=Kaliber 20 Schrot (Schrapnell)
item.ammo_20gauge_sleek.name=Kaliber 20 Schrot (IF-F&E)
item.ammo_20gauge_slug.name=Kaliber 20 Brenneke
item.ammo_20gauge_wither.name=Kaliber 20 Schrot (Wither)
item.ammo_22lr.name=.22 lfB Patrone
item.ammo_22lr_ap.name=.22 lfB Patrone (Panzerbrechend)
item.ammo_22lr_chlorophyte.name=.22 lfB Patrone (Grünalgen)
item.ammo_357_desh.name=.357 Magnum Deshkugel
item.ammo_44.name=.44 Magnum Patrone
item.ammo_44_ap.name=.44 Magnum Patrone (Panzerbrechend)
item.ammo_44_bj.name=.44 Magnum Patrone (Boot)
item.ammo_44_chlorophyte.name=.44 Magnum Patrone (Grünalgen)
item.ammo_44_du.name=.44 Magnum Patrone (DU)
item.ammo_44_phosphorus.name=.44 Magnum Patrone (WP)
item.ammo_44_pip.name=.44 Magnum Patrone (Güterwagon)
item.ammo_44_rocket.name=.44 Magnum Rakete
item.ammo_44_silver.name=.44 Magnum Patrone (Gebäude)
item.ammo_44_star.name=.44 Magnum Patrone (Sternenmetall)
item.ammo_45.name=.45 ACP Patrone
item.ammo_45_ap.name=.45 ACP Patrone (AP)
item.ammo_45_du.name=.45 ACP Patrone (DU)
item.ammo_4gauge.name=Kaliber 20 Schrot
item.ammo_4gauge_balefire.name=23mm Balefire-Granate
item.ammo_4gauge_canister.name=23mm Rakete (Katusche)
item.ammo_4gauge_claw.name=Kaliber 4 Shrot (Krallen)
item.ammo_4gauge_explosive.name=23mm Granate
item.ammo_4gauge_flechette.name=Kaliber 4 Flechet
item.ammo_4gauge_flechette_phosphorus.name=Kaliber 4 Flechet (WP)
item.ammo_4gauge_kampf.name=23mm Rakete
item.ammo_4gauge_semtex.name=23mm Bergbauladung
item.ammo_4gauge_sleek.name=Kaliber 4 Schrot (IF-F&E)
item.ammo_4gauge_slug.name=Kaliber 4 Brenneke
item.ammo_4gauge_titan.name=Kaliber 4 Quak-Geschoss
item.ammo_4gauge_vampire.name=Kaliber 4 Schrot (Holzpflöcke)
item.ammo_4gauge_void.name=Kaliber 4 Schrot (Leere)
item.ammo_50ae.name=.50 AE Patrone
item.ammo_50ae_ap.name=.50 AE Patrone (Panzerbrechend)
item.ammo_50ae_chlorophyte.name=.50 AE Patrone (Grünalgen)
item.ammo_50ae_du.name=.50 AE Patrone (DU)
item.ammo_50ae_star.name=.50 AE Patrone (Sternenmetall)
item.ammo_50bmg.name=.50 BMG Patrone
item.ammo_50bmg_ap.name=.50 BMG Patrone (Panzerbrechend)
item.ammo_50bmg_chlorophyte.name=.50 BMG Patrone (Grünalgen)
item.ammo_50bmg_du.name=.50 BMG Patrone (DU)
item.ammo_50bmg_explosive.name=.50 BMG Patrone (Explosiv)
item.ammo_50bmg_flechette.name=.50 BMG Flechetpatrone
item.ammo_50bmg_flechette_am.name=.50 BMG Flechetpatrone (Americium)
item.ammo_50bmg_flechette_po.name=.50 BMG Flechetpatrone (Polonium)
item.ammo_50bmg_incendiary.name=.50 BMG Patrone (Brand)
item.ammo_50bmg_phosphorus.name=.50 BMG Patrone (WP)
item.ammo_50bmg_sleek.name=.50 BMG Patrone (IF-F&E)
item.ammo_50bmg_star.name=.50 BMG Patrone (Sternenmetall)
item.ammo_556.name=5.56mm Patrone
item.ammo_556_ap.name=5.56mm Patrone (Panzerbrechend)
item.ammo_556_chlorophyte.name=5.56mm Patrone (Grünalgen)
item.ammo_556_du.name=5.56mm Patrone (DU)
item.ammo_556_flechette.name=5.56mm Flechetpatrone
item.ammo_556_flechette_chlorophyte.name=5.56mm Flechetpatrone (Grünalgen)
item.ammo_556_flechette_du.name=5.56mm Flechetpatrone (Uran-Penetrator)
item.ammo_556_flechette_incendiary.name=5.56mm Flechetpatrone (Brand)
item.ammo_556_flechette_phosphorus.name=5.56mm Flechetpatrone (Phosphorspitze)
item.ammo_556_flechette_sleek.name=5.56mm Flechetpatrone (IF-F&E)
item.ammo_556_k.name=5.56mm K-Patrone
item.ammo_556_phosphorus.name=5.56mm Patrone (WP)
item.ammo_556_sleek.name=5.56mm Patrone (IF-F&E)
item.ammo_556_star.name=5.56mm Patrone (Sternenmetall)
item.ammo_556_tracer.name=5.56mm Patrone (Leuchtspur)
item.ammo_5mm.name=5mm Patrone
item.ammo_5mm_chlorophyte.name=5mm Patrone (Grünalgen)
item.ammo_5mm_du.name=5mm Patrone (DU)
item.ammo_5mm_explosive.name=5mm Patrone (Explosiv)
item.ammo_5mm_star.name=5mm Patrone (Sternenmetall)
item.ammo_762.name=7.62mm Patrone
item.ammo_762_ap.name=7.62mm Patrone (AP)
item.ammo_762_du.name=7.62mm Patrone (DU)
item.ammo_762_k.name=7.62mm K-Patrone
item.ammo_762_phosphorus.name=7.62mm Patrone (WP)
item.ammo_762_tracer.name=7.62mm Patrone (Leuchtspur)
item.ammo_75bolt.name=30er .75 Bolzenmagazin
item.ammo_75bolt_incendiary.name=30er .75 Bolzenmagazin (Brand)
item.ammo_75bolt_he.name=30er .75 Bolzenmagazin (Explosiv)
item.ammo_9mm.name=9mm Patrone
item.ammo_9mm_ap.name=9mm Patrone (Panzerbrechend)
item.ammo_9mm_chlorophyte.name=9mm Patrone (Grünalgen)
item.ammo_9mm_du.name=9mm Patrone (DU)
item.ammo_9mm_rocket.name=9mm Rakete
item.ammo_arty.name=16" Artilleriegranate
item.ammo_arty_cargo.name=16" Artilleriegranate (Expresslieferung)
item.ammo_arty_chlorine.name=16" Artilleriegranate (Chlorgas)
@ -1128,38 +1029,10 @@ item.ammo_arty_nuke.name=16" Atomare Artilleriegranate
item.ammo_arty_phosgene.name=16" Artilleriegranate (Phosgen)
item.ammo_arty_phosphorus.name=16" Phosphor-Artilleriegranate
item.ammo_arty_phosphorus_multi.name=16" Mehrfach-Phosphor-Artilleriegranate
item.ammo_cell.name=Energiezelle
item.ammo_coilgun.name=Wolframkugel
item.ammo_coilgun_du.name=Ferrourankugel
item.ammo_coilgun_rubber.name=Gummikugel
item.ammo_container.name=Munitionsbehälter
item.ammo_dart.name=Plastikdart (Withernd)
item.ammo_dart_nerf.name=NERF-Dart
item.ammo_dart_nuclear.name=Plastikdart (Zeitbombe)
item.ammo_dgk.name=Goalkeeper-Zwilling CIWS 200er Gürtel
item.ammo_fireext.name=Feuerlöscher-Wassertank
item.ammo_fireext_foam.name=Feuerlöscher-Schaumtank
item.ammo_fireext_sand.name=Feuerlöscher-Sandtank
item.ammo_folly.name=Silbernes Geschoss (Original)
item.ammo_folly_du.name=Silbernes Geschoss (DU, Nicht-Explosiv)
item.ammo_folly_nuclear.name=Silbernes Geschoss (Atomar)
item.ammo_fuel.name=Dieselkatusche
item.ammo_fuel_gas.name=Gaskatusche
item.ammo_fuel_napalm.name=Napalmkatusche
item.ammo_fuel_phosphorus.name=WP-Katusche
item.ammo_fuel_vaporizer.name=Vaporisierer-Katusche
item.ammo_grenade.name=40mm Granate
item.ammo_grenade_concussion.name=40mm Granate (Erschütterung)
item.ammo_grenade_finned.name=40mm Granate (Geflügelt)
item.ammo_grenade_he.name=40mm Granate (HE)
item.ammo_grenade_incendiary.name=40mm Granate (Brand)
item.ammo_grenade_kampf.name=40mm Rakete
item.ammo_grenade_leadburster.name=40mm Leadburster
item.ammo_grenade_nuclear.name=40mm Granate (Привет)
item.ammo_grenade_phosphorus.name=40mm Granate (WP)
item.ammo_grenade_sleek.name=40mm Granate (IF-F&E)
item.ammo_grenade_toxic.name=40mm Granate (Chemisch)
item.ammo_grenade_tracer.name=40mm Übungsgranate
item.ammo_himars_standard.name=227mm gelenkte Artillerierakete
item.ammo_himars_standard_he.name=227mm Artillerielenkrakete (HE)
item.ammo_himars_standard_lava.name=227mm Artillerielenkrakete (Lava)
@ -1168,34 +1041,6 @@ item.ammo_himars_standard_tb.name=227mm Artillerielenkrakete (Thermobarisch)
item.ammo_himars_standard_wp.name=227mm Artillerielenkrakete (WP)
item.ammo_himars_single.name=610mm Artillerielenkrakete
item.ammo_himars_single_tb.name=610mm Artillerielenkrakete (Thermobarisch)
item.ammo_luna.name=Lunatic Sniper Sabot
item.ammo_luna_explosive.name=Lunatic Sniper Explosivgeschoss
item.ammo_luna_incendiary.name=Lunatic Sniper Brandgeschoss
item.ammo_mirv.name=Mini-MIRV
item.ammo_mirv_high.name=Mini-MIRV (Stark)
item.ammo_mirv_low.name=Mini-MIRV (Schwach)
item.ammo_mirv_safe.name=Mini-MIRV (Sicher)
item.ammo_mirv_special.name=Mini-MILV
item.ammo_nuke.name=Miniatombombe
item.ammo_nuke_barrel.name=Mini-Atommüllfass
item.ammo_nuke_high.name=Miniatombombe (Stark)
item.ammo_nuke_low.name=Miniatombombe (Schwach)
item.ammo_nuke_pumpkin.name=Kürbisbombe
item.ammo_nuke_safe.name=Miniatombombe (Sicher)
item.ammo_nuke_tots.name=Miniatombombe (Kleine Knirpse)
item.ammo_rocket.name=84mm Rakete
item.ammo_rocket_canister.name=84mm Rakete (Katusche)
item.ammo_rocket_digamma.name=null
item.ammo_rocket_emp.name=84mm Rakete (Impuls)
item.ammo_rocket_glare.name=84mm Rakete (Roter Schein)
item.ammo_rocket_he.name=84mm Rakete (HE)
item.ammo_rocket_incendiary.name=84mm Rakete (Brand)
item.ammo_rocket_nuclear.name=84mm Rakete (Привет)
item.ammo_rocket_phosphorus.name=84mm Rakete (WP)
item.ammo_rocket_rpc.name=84mm Raketengetriebene Kettensäge
item.ammo_rocket_shrapnel.name=84mm Rakete (Schrapnell)
item.ammo_rocket_sleek.name=84mm Rakete (IF-R&D)
item.ammo_rocket_toxic.name=84mm Rakete (Chemisch)
item.ammo_shell.name=240mm Geschoss
item.ammo_shell_apfsds_du.name=240mm APFSDS-DU
item.ammo_shell_apfsds_t.name=240mm APFSDS-T
@ -1298,12 +1143,6 @@ item.ammo_standard.stone_ap.name=Feuerstein und Pulver
item.ammo_standard.stone_iron.name=Eisenkugel und Pulver
item.ammo_standard.stone_shot.name=Schrot und Pulver
item.ammo_standard.tau_uranium.name=Erschöpfte Uran-235-Kiste
item.ammo_stinger_rocket.name=Stinger-Rakete
item.ammo_stinger_rocket_he.name=Stinger-Rakete (HE)
item.ammo_stinger_rocket_incendiary.name=Stinger-Rakete (Brand)
item.ammo_stinger_rocket_nuclear.name=Stinger-Rakete (Привет)
item.ammo_stinger_rocket_bones.name=Stinger-Rakete (Knochensuchend)
item.ammo_shell_w9.name=240mm W9 Atomares Geschoss
item.ams_catalyst_aluminium.name=Aluminium-Reaktionskatalysator
item.ams_catalyst_beryllium.name=Beryllium-Reaktionskatalysator
item.ams_catalyst_blank.name=Blanker Reaktionskatalysator
@ -2335,7 +2174,7 @@ item.inf_diesel.name=Unendlicher Dieseltank
item.inf_sulfur.name=Unendlicher Schwefeltank
item.inf_tritium.name=Unendlicher Tritiumtank
item.inf_water.name=Unendlicher Wassertank
item.inf_water_mk2.name=Schwerer unendlicher Wassertank
item.inf_water_mk2.name=Großer unendlicher Wassertank
item.ingot_actinium.name=Semistabiler Actiniumbarren
item.ingot_advanced_alloy.name=Fortgeschrittene Legierung
item.ingot_aluminium.name=Aluminiumbarren
@ -4174,7 +4013,7 @@ tile.crane_partitioner.name=Erzauflöser-Partitionierer
tile.crane_partitioner.desc=Speichert Input für den Erzazflöser$und gibt sie in der benötigten Itemanzahl aus.$Ungültige Items werden auch gespeichert, und müssen seitlich entfernt werden.
tile.crane_router.name=Förderband-Sortierer
tile.crane_router.desc=Sortiert Items basierend auf eingestellte Kriterien$Seiten können als Blacklist, Whitelist oder Wildcard eingestellt werden$Widlcard-Seiten werden nur verwendet, wenn kein anderer Filter zutrifft
tile.crate_splitter.name=Förderband-Teiler
tile.crane_splitter.name=Förderband-Teiler
tile.crane_splitter.desc=Teilt Items und Stacks gleichmäßig auf zwei Förderbänder$Zählt selbst als Förderband, kann also direkt in Einsetzer und Sortierer führen
tile.crane_unboxer.name=Förderband-Entpacker
tile.crane_unboxer.desc=Öffnet boxen$Rechstclick mit Schraubenzieher um Ausgang zu definieren$Shiftclick mit Schraubenzieher um Eingang zu definieren$Zweimal clicken, um gegenüberliegende Seite zu definieren
@ -4189,6 +4028,7 @@ tile.crate_lead.name=Gefahrenstoffkiste
tile.crate_metal.name=Maschinenkiste
tile.crate_red.name=Rote Kiste
tile.crate_steel.name=Stahlkiste
tile.crate_supply.name=Vorratskiste
tile.crate_template.name=Vorlagenkiste
tile.crate_tungsten.name=Wolframkiste
tile.crate_weapon.name=Waffenkiste

View File

@ -1742,105 +1742,6 @@ item.alloy_pickaxe.name=Advanced Alloy Pickaxe
item.alloy_plate.name=Advanced Alloy Chestplate
item.alloy_shovel.name=Advanced Alloy Shovel
item.alloy_sword.name=Advanced Alloy Sword
item.ammo_12gauge.name=12 Gauge Buckshot
item.ammo_12gauge_du.name=12 Gauge Buckshot (Uranium Coated)
item.ammo_12gauge_incendiary.name=12 Gauge Buckshot (Incendiary)
item.ammo_12gauge_marauder.name=12 Gauge Tactical Anti-Marauder Shell
item.ammo_12gauge_percussion.name=12 Gauge Percussion Cap
item.ammo_12gauge_shrapnel.name=12 Gauge Buckshot (Shrapnel)
item.ammo_12gauge_sleek.name=12 Gauge Buckshot (IF-R&D)
item.ammo_20gauge.name=20 Gauge Buckshot
item.ammo_20gauge_caustic.name=20 Gauge Buckshot (Caustic)
item.ammo_20gauge_explosive.name=20 Gauge Buckshot (Explosive)
item.ammo_20gauge_flechette.name=20 Gauge Flechette Shell
item.ammo_20gauge_incendiary.name=20 Gauge Buckshot (Incendiary)
item.ammo_20gauge_shock.name=20 Gauge Buckshot (Shock)
item.ammo_20gauge_shrapnel.name=20 Gauge Buckshot (Shrapnel)
item.ammo_20gauge_sleek.name=20 Gauge Buckshot (IF-R&D)
item.ammo_20gauge_slug.name=20 Gauge Brenneke Slug
item.ammo_20gauge_wither.name=20 Gauge Buckshot (Withering)
item.ammo_22lr.name=.22 LR Round
item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing)
item.ammo_22lr_chlorophyte.name=.22 LR Round (Chlorophyte)
item.ammo_357_desh.name=.357 Magnum Desh Bullet
item.ammo_44.name=.44 Magnum Bullet
item.ammo_44_ap.name=.44 Magnum Bullet (Armor Piercing)
item.ammo_44_bj.name=.44 Magnum Bullet (Boat)
item.ammo_44_chlorophyte.name=.44 Magnum Bullet (Chlorophyte)
item.ammo_44_du.name=.44 Magnum Bullet (DU)
item.ammo_44_phosphorus.name=.44 Magnum Bullet (WP)
item.ammo_44_pip.name=.44 Magnum Bullet (Boxcar)
item.ammo_44_rocket.name=.44 Magnum Rocket
item.ammo_44_silver.name=.44 Magnum Bullet (Building)
item.ammo_44_star.name=.44 Magnum Bullet (Starmetal)
item.ammo_45.name=.45 ACP Bullet
item.ammo_45_ap.name=.45 ACP Bullet (AP)
item.ammo_45_du.name=.45 ACP Bullet (DU)
item.ammo_4gauge.name=4 Gauge Buckshot
item.ammo_4gauge_balefire.name=23mm Balefire Grenade
item.ammo_4gauge_canister.name=23mm Rocket (Canister Shot)
item.ammo_4gauge_claw.name=4 Gauge Claw Shell
item.ammo_4gauge_explosive.name=23mm Grenade
item.ammo_4gauge_flechette.name=4 Gauge Flechette Shell
item.ammo_4gauge_flechette_phosphorus.name=4 Gauge Flechette Shell (WP)
item.ammo_4gauge_kampf.name=23mm Rocket
item.ammo_4gauge_semtex.name=23mm Mining Charge
item.ammo_4gauge_sleek.name=4 Gauge Buckshot (IF-R&D)
item.ammo_4gauge_slug.name=4 Gauge Solid Steel Slug
item.ammo_4gauge_titan.name=4 Gauge Quacker Round
item.ammo_4gauge_vampire.name=4 Gauge Wooden Stake Shell
item.ammo_4gauge_void.name=4 Gauge Void Shell
item.ammo_50ae.name=.50 AE Round
item.ammo_50ae_ap.name=.50 AE Round (Armor Piercing)
item.ammo_50ae_chlorophyte.name=.50 AE Round (Chlorophyte)
item.ammo_50ae_du.name=.50 AE Round (DU)
item.ammo_50ae_star.name=.50 AE Round (Starmetal)
item.ammo_50bmg.name=.50 BMG Round
item.ammo_50bmg_ap.name=.50 BMG Round (Armor Piercing)
item.ammo_50bmg_chlorophyte.name=.50 BMG Round (Chlorophyte)
item.ammo_50bmg_du.name=.50 BMG Round (DU)
item.ammo_50bmg_explosive.name=.50 BMG Round (Explosive)
item.ammo_50bmg_flechette.name=.50 BMG Flechette Round
item.ammo_50bmg_flechette_am.name=.50 BMG Flechette Round (Americium)
item.ammo_50bmg_flechette_po.name=.50 BMG Flechette Round (Polonium)
item.ammo_50bmg_incendiary.name=.50 BMG Round (Incendiary)
item.ammo_50bmg_phosphorus.name=.50 BMG Round (WP)
item.ammo_50bmg_sleek.name=.50 BMG Round (IF-R&D)
item.ammo_50bmg_star.name=.50 BMG Round (Starmetal)
item.ammo_556.name=5.56mm Round
item.ammo_556_ap.name=5.56mm Round (Armor Piercing)
item.ammo_556_chlorophyte.name=5.56mm Round (Chlorophyte)
item.ammo_556_du.name=5.56mm Round (DU)
item.ammo_556_flechette.name=5.56mm Flechette Round
item.ammo_556_flechette_chlorophyte.name=5.56mm Flechette Round (Chlorophyte)
item.ammo_556_flechette_du.name=5.56mm Flechette Round (Uranium Penetrator)
item.ammo_556_flechette_incendiary.name=5.56mm Flechette Round (Incendiary)
item.ammo_556_flechette_phosphorus.name=5.56mm Flechette Round (Phosphorus-Tipped)
item.ammo_556_flechette_sleek.name=5.56mm Flechette Round (IF-R&D)
item.ammo_556_k.name=5.56mm K-Round
item.ammo_556_phosphorus.name=5.56mm Round (WP)
item.ammo_556_sleek.name=5.56mm Round (IF-R&D)
item.ammo_556_star.name=5.56mm Round (Starmetal)
item.ammo_556_tracer.name=5.56mm Round (Tracer)
item.ammo_5mm.name=5mm Round
item.ammo_5mm_chlorophyte.name=5mm Round (Chlorophyte)
item.ammo_5mm_du.name=5mm Round (DU)
item.ammo_5mm_explosive.name=5mm Round (Explosive)
item.ammo_5mm_star.name=5mm Round (Starmetal)
item.ammo_75bolt.name=.75 Bolt Magazine (30rnd)
item.ammo_75bolt_incendiary.name=.75 Incendiary Bolt Magazine (30rnd)
item.ammo_75bolt_he.name=.75 Bolt High-Explosive Magazine (30rnd)
item.ammo_762.name=7.62mm Round
item.ammo_762_ap.name=7.62mm Round (AP)
item.ammo_762_du.name=7.62mm Round (DU)
item.ammo_762_k.name=7.62mm K-Round
item.ammo_762_phosphorus.name=7.62mm Round (WP)
item.ammo_762_tracer.name=7.62mm Round (Tracer)
item.ammo_9mm.name=9mm Round
item.ammo_9mm_ap.name=9mm Round (Armor Piercing)
item.ammo_9mm_chlorophyte.name=9mm Round (Chlorophyte)
item.ammo_9mm_du.name=9mm Round (DU)
item.ammo_9mm_rocket.name=9mm Rocket
item.ammo_arty.name=16" Artillery Shell
item.ammo_arty_cargo.name=16" Express Delivery Artillery Shell
item.ammo_arty_chlorine.name=16" Chlorine Gas Artillery Shell
@ -1853,38 +1754,11 @@ item.ammo_arty_nuke.name=16" Nuclear Artillery Shell
item.ammo_arty_phosgene.name=16" Phosgene Artillery Shell
item.ammo_arty_phosphorus.name=16" Phosphorus Shell
item.ammo_arty_phosphorus_multi.name=16" Multi Phosphorus Shell
item.ammo_cell.name=Energy Cell
item.ammo_coilgun.name=Coilgun Tungsten Ball
item.ammo_coilgun_du.name=Coilgun Ferrouranium Ball
item.ammo_coilgun_rubber.name=Coilgun Rubber Ball
item.ammo_container.name=Ammo Container
item.ammo_dart.name=Plastic Dart (Withering)
item.ammo_dart_nerf.name=NERF Dart
item.ammo_dart_nuclear.name=Plastic Dart (Timed Explosive)
item.ammo_dgk.name=Goalkeeper Twin CIWS 200 Round Belt
item.ammo_fireext.name=Fire Extinguisher Water Tank
item.ammo_fireext_foam.name=Fire Extinguisher Foam Tank
item.ammo_fireext_sand.name=Fire Extinguisher Sand Tank
item.ammo_folly.name=Silver Bullet (Original)
item.ammo_folly_du.name=Silver Bullet (DU, Non-Explosive)
item.ammo_folly_nuclear.name=Silver Bullet (Nuclear)
item.ammo_fuel.name=Diesel Tank
item.ammo_fuel_gas.name=Gas Tank
item.ammo_fuel_napalm.name=Napalm Tank
item.ammo_fuel_phosphorus.name=WP Tank
item.ammo_fuel_vaporizer.name=Vaporizer Tank
item.ammo_grenade.name=40mm Grenade
item.ammo_grenade_concussion.name=40mm Grenade (Concussion)
item.ammo_grenade_finned.name=40mm Grenade (Finned)
item.ammo_grenade_he.name=40mm Grenade (HE)
item.ammo_grenade_incendiary.name=40mm Grenade (Incendiary)
item.ammo_grenade_kampf.name=40mm Rocket
item.ammo_grenade_leadburster.name=40mm Leadburster
item.ammo_grenade_nuclear.name=40mm Grenade (Привет)
item.ammo_grenade_phosphorus.name=40mm Grenade (WP)
item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D)
item.ammo_grenade_toxic.name=40mm Grenade (Chemical)
item.ammo_grenade_tracer.name=40mm Training Grenade
item.ammo_himars_standard.name=227mm Guided Artillery Rocket Pod
item.ammo_himars_standard_he.name=227mm Guided Artillery Rocket Pod (HE)
item.ammo_himars_standard_lava.name=227mm Guided Artillery Rocket Pod (Lava)
@ -1893,34 +1767,6 @@ item.ammo_himars_standard_tb.name=227mm Guided Artillery Rocket Pod (Thermobaric
item.ammo_himars_standard_wp.name=227mm Guided Artillery Rocket Pod (WP)
item.ammo_himars_single.name=610mm Guided Artillery Rocket Pod
item.ammo_himars_single_tb.name=610mm Guided Artillery Rocket Pod (Thermobaric)
item.ammo_luna.name=Lunatic Sniper Sabot Round
item.ammo_luna_explosive.name=Lunatic Sniper Explosive Round
item.ammo_luna_incendiary.name=Lunatic Sniper Incendiary Round
item.ammo_mirv.name=Mini MIRV
item.ammo_mirv_high.name=Mini MIRV (High Yield)
item.ammo_mirv_low.name=Mini MIRV (Low Yield)
item.ammo_mirv_safe.name=Mini MIRV (Safe)
item.ammo_mirv_special.name=Mini MILV
item.ammo_nuke.name=Mini Nuke
item.ammo_nuke_barrel.name=Mini Nuclear Waste Barrel
item.ammo_nuke_high.name=Mini Nuke (High Yield)
item.ammo_nuke_low.name=Mini Nuke (Low Yield)
item.ammo_nuke_pumpkin.name=Pumpkin Bomb
item.ammo_nuke_safe.name=Mini Nuke (Safe)
item.ammo_nuke_tots.name=Mini Nuke (Tiny Tots)
item.ammo_rocket.name=84mm Rocket
item.ammo_rocket_canister.name=84mm Rocket (Canister Shot)
item.ammo_rocket_digamma.name=null
item.ammo_rocket_emp.name=84mm Rocket (Pulse)
item.ammo_rocket_glare.name=84mm Rocket (Red Glare)
item.ammo_rocket_he.name=84mm Rocket (HE)
item.ammo_rocket_incendiary.name=84mm Rocket (Incendiary)
item.ammo_rocket_nuclear.name=84mm Rocket (Привет)
item.ammo_rocket_phosphorus.name=84mm Rocket (WP)
item.ammo_rocket_rpc.name=84mm Rocket Propelled Chainsaw
item.ammo_rocket_shrapnel.name=84mm Rocket (Shrapnel)
item.ammo_rocket_sleek.name=84mm Rocket (IF-R&D)
item.ammo_rocket_toxic.name=84mm Rocket (Chemical)
item.ammo_shell.name=240mm Shell
item.ammo_shell_apfsds_du.name=240mm APFSDS-DU
item.ammo_shell_apfsds_t.name=240mm APFSDS-T
@ -2023,11 +1869,6 @@ item.ammo_standard.stone_ap.name=Flint and Powder
item.ammo_standard.stone_iron.name=Iron Ball and Powder
item.ammo_standard.stone_shot.name=Shot and Powder
item.ammo_standard.tau_uranium.name=Depleted Uranium-235 Box
item.ammo_stinger_rocket.name=Stinger Rocket
item.ammo_stinger_rocket_he.name=Stinger Rocket (HE)
item.ammo_stinger_rocket_incendiary.name=Stinger Rocket (Incendiary)
item.ammo_stinger_rocket_nuclear.name=Stinger Rocket (Привет)
item.ammo_stinger_rocket_bones.name=Stinger Rocket (Bone-Seeking)
item.ams_catalyst_aluminium.name=Aluminium Reaction Catalyst
item.ams_catalyst_beryllium.name=Beryllium Reaction Catalyst
item.ams_catalyst_blank.name=Blank Reaction Catalyst
@ -3148,7 +2989,7 @@ item.inf_diesel.name=Infinite Diesel Tank
item.inf_sulfur.name=Infinite Sulfur Tank
item.inf_tritium.name=Infinite Tritium Tank
item.inf_water.name=Infinite Water Tank
item.inf_water_mk2.name=Heavy Infinite Water Tank
item.inf_water_mk2.name=Large Infinite Water Tank
item.ingot_actinium.name=Actinium-227 Ingot
item.ingot_advanced_alloy.name=Advanced Alloy Ingot
item.ingot_aluminium.name=Aluminium Ingot
@ -5304,6 +5145,7 @@ tile.crate_lead.name=Hazmat Crate
tile.crate_metal.name=Machine Crate
tile.crate_red.name=Red Crate
tile.crate_steel.name=Steel Crate
tile.crate_supply.name=Supply Crate
tile.crate_template.name=Template Crate
tile.crate_tungsten.name=Tungsten Crate
tile.crate_weapon.name=Weapon Crate

View File

@ -66,6 +66,7 @@
"block.squeakyToy": {"category": "block", "sounds": [{"name": "block/squeakyToy", "stream": false}]},
"block.pyroOperate": {"category": "block", "sounds": [{"name": "block/pyroOperate", "stream": false}]},
"block.motor": {"category": "block", "sounds": [{"name": "block/motor", "stream": false}]},
"block.engine": {"category": "block", "sounds": [{"name": "block/engine", "stream": false}]},
"door.TransitionSealOpen": {"category": "block", "sounds": [{"name": "block/door/transition_seal_open", "stream": true}]},
"door.wghStart": {"category": "block", "sounds": [{"name": "block/door/wgh_start", "stream": true}]},

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB