Merge branch 'HbmMods:master' into zg
15
changelog
@ -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
|
||||
@ -40,6 +41,16 @@
|
||||
* Changed the optimized receiver generic gun mod to +15% damage
|
||||
* 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
|
||||
@ -54,3 +65,7 @@
|
||||
* Fixed infested glyphids spawning maggots also on the clientside, creating unkillable ghosts
|
||||
* 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 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
|
||||
|
||||
@ -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),\
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.BombConfig;
|
||||
import com.hbm.entity.logic.EntityBalefire;
|
||||
import com.hbm.handler.threading.PacketThreading;
|
||||
@ -14,78 +11,37 @@ import com.hbm.tileentity.bomb.TileEntityCrashedBomb;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
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.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlockCrashedBomb extends BlockContainer implements IBomb {
|
||||
|
||||
public BlockCrashedBomb(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
public BlockCrashedBomb(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityCrashedBomb();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
|
||||
return Item.getItemFromBlock(ModBlocks.crashed_balefire);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@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, 5, 2);
|
||||
}
|
||||
if(i == 1) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 2) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
if(i == 3) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
}
|
||||
@Override public int getRenderType() { return -1; }
|
||||
@Override public boolean isOpaqueCube() { return false; }
|
||||
@Override public boolean renderAsNormalBlock() { return false; }
|
||||
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float fx, float fy, float fz) {
|
||||
|
||||
if(world.isRemote)
|
||||
return true;
|
||||
if(world.isRemote) return true;
|
||||
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.defuser) {
|
||||
|
||||
world.func_147480_a(x, y, z, false);
|
||||
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.egg_balefire_shard)));
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_steel, 10 + world.rand.nextInt(15))));
|
||||
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.plate_titanium, 2 + world.rand.nextInt(7))));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -64,7 +64,7 @@ public class WeaponRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_maresleg, 1), new Object[] { "BRM", "BGS", 'B', STEEL.lightBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.bolt(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_maresleg_akimbo, 1), new Object[] { "SMS", 'S', ModItems.gun_maresleg, 'M', WEAPONSTEEL.mechanism() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flaregun, 1), new Object[] { "BRM", " G", 'B', STEEL.heavyBarrel(), 'R', STEEL.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', STEEL.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_am180, 1), new Object[] { "BBR", "GMS", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_am180, 1), new Object[] { "BRS", "GMG", 'B', DURA.lightBarrel(), 'R', DURA.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip(), 'S', WOOD.stock() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_liberator, 1), new Object[] { "BB ", "BBM", "G G", 'B', DURA.lightBarrel(), 'M', GUNMETAL.mechanism(), 'G', WOOD.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_congolake, 1), new Object[] { "BM ", "BRS", "G ", 'B', DURA.heavyBarrel(), 'M', GUNMETAL.mechanism(), 'R', DURA.lightReceiver(), 'S', WOOD.stock(), 'G', WOOD.grip() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_flamer, 1), new Object[] { " MG", "BBR", " GM", 'M', GUNMETAL.mechanism(), 'G', DURA.grip(), 'B', DURA.heavyBarrel(), 'R', DURA.heavyReceiver() });
|
||||
@ -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() });
|
||||
|
||||
@ -2,9 +2,6 @@ package com.hbm.inventory;
|
||||
|
||||
import com.hbm.interfaces.NotableComments;
|
||||
|
||||
import com.hbm.inventory.container.ContainerCrateBase;
|
||||
import com.hbm.items.block.ItemBlockStorageCrate;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -36,17 +33,4 @@ public class SlotNonRetarded extends Slot {
|
||||
public int getSlotStackLimit() {
|
||||
return Math.max(this.inventory.getInventoryStackLimit(), this.getHasStack() ? this.getStack().stackSize : 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* This prevents the player from moving containers that are being held *at all*, fixing a decently big dupe.
|
||||
* I hate that this has to be here but... It is what it is.
|
||||
*/
|
||||
@Override
|
||||
public boolean canTakeStack(EntityPlayer player) {
|
||||
if(player.inventory.currentItem == this.getSlotIndex() && // If this slot is the current held slot.
|
||||
this.getStack() != null && this.getStack().getItem() instanceof ItemBlockStorageCrate && // If the slot contains a storage crate.
|
||||
player.openContainer instanceof ContainerCrateBase) // If the player is currently inside a crate container.
|
||||
return false;
|
||||
return super.canTakeStack(player);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotNonRetarded;
|
||||
import com.hbm.items.block.ItemBlockStorageCrate;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class ContainerCrateBase extends ContainerBase {
|
||||
|
||||
@ -15,12 +17,25 @@ public class ContainerCrateBase extends ContainerBase {
|
||||
super(invPlayer, tedf);
|
||||
tile.openInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playerInv(InventoryPlayer invPlayer, int playerInvX, int playerInvY, int playerHotbarY) {
|
||||
for(int i = 0; i < 3; i++) {
|
||||
for(int j = 0; j < 9; j++) {
|
||||
this.addSlotToContainer(new SlotNonRetarded(invPlayer, j + i * 9 + 9, playerInvX + j * 18, playerInvY + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 9; i++) {
|
||||
this.addSlotToContainer(new SlotNonRetarded(invPlayer, i, playerInvX + i * 18, playerHotbarY));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) {
|
||||
// prevents the player from moving around the currently open box
|
||||
if(player.inventory.getStackInSlot(player.inventory.currentItem) != null &&
|
||||
player.inventory.getStackInSlot(player.inventory.currentItem).getItem() instanceof ItemBlockStorageCrate) {
|
||||
player.inventory.getStackInSlot(player.inventory.currentItem).getItem() instanceof ItemBlockStorageCrate && !(this.crate instanceof TileEntity)) {
|
||||
if (mode == 2 && button == player.inventory.currentItem) {
|
||||
return null;
|
||||
}
|
||||
@ -36,4 +51,24 @@ public class ContainerCrateBase extends ContainerBase {
|
||||
super.onContainerClosed(p_75134_1_);
|
||||
tile.closeInventory();
|
||||
}
|
||||
|
||||
public class SlotPlayerCrate extends SlotNonRetarded {
|
||||
|
||||
public SlotPlayerCrate(IInventory inventory, int id, int x, int y) {
|
||||
super(inventory, id, x, y);
|
||||
}
|
||||
|
||||
/**
|
||||
* This prevents the player from moving containers that are being held *at all*, fixing a decently big dupe.
|
||||
* I hate that this has to be here but... It is what it is.
|
||||
*/
|
||||
@Override
|
||||
public boolean canTakeStack(EntityPlayer player) {
|
||||
if(player.inventory.currentItem == this.getSlotIndex() && // If this slot is the current held slot.
|
||||
this.getStack() != null && this.getStack().getItem() instanceof ItemBlockStorageCrate && // If the slot contains a storage crate.
|
||||
player.openContainer instanceof ContainerCrateBase && !(ContainerCrateBase.this.crate instanceof TileEntity)) // If the player is currently inside a crate container.
|
||||
return false;
|
||||
return super.canTakeStack(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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());
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.hbm.items.machine;
|
||||
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
import com.hbm.util.CompatExternal;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@ -15,8 +15,8 @@ public class ItemMuffler extends Item {
|
||||
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) {
|
||||
TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z);
|
||||
|
||||
if(te != null && te instanceof TileEntityMachineBase) {
|
||||
TileEntityMachineBase tile = (TileEntityMachineBase) te;
|
||||
if(te != null && te instanceof TileEntityLoadedBase) {
|
||||
TileEntityLoadedBase tile = (TileEntityLoadedBase) te;
|
||||
if(!tile.muffled) {
|
||||
tile.muffled = true;
|
||||
world.playSoundAtEntity(player, "hbm:item.upgradePlug", 1.0F, 1.0F);
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -103,11 +103,11 @@ public class Orchestras {
|
||||
if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F);
|
||||
}
|
||||
if(type == AnimType.CYCLE) {
|
||||
if(timer == 14) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
}
|
||||
if(type == AnimType.CYCLE_DRY) {
|
||||
if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F);
|
||||
if(timer == 14) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
}
|
||||
if(type == AnimType.INSPECT) {
|
||||
if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F);
|
||||
@ -131,11 +131,11 @@ public class Orchestras {
|
||||
if(timer == 44) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverClose", 1F, 1F);
|
||||
}
|
||||
if(type == AnimType.CYCLE) {
|
||||
if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
}
|
||||
if(type == AnimType.CYCLE_DRY) {
|
||||
if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.dryFireClick", 1F, 1F);
|
||||
if(timer == 9) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
if(timer == 5) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.revolverCock", 1F, 0.9F);
|
||||
}
|
||||
if(type == AnimType.INSPECT) {
|
||||
if(timer == 2) entity.worldObj.playSoundAtEntity(entity, "hbm:weapon.reload.magSmallRemove", 1F, 1F);
|
||||
|
||||
@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.factory;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
import com.hbm.config.ClientConfig;
|
||||
import com.hbm.items.ModItems;
|
||||
@ -15,6 +16,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||
import com.hbm.items.weapon.sedna.mods.WeaponModManager;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.particle.SpentCasing;
|
||||
import com.hbm.particle.SpentCasing.CasingType;
|
||||
@ -46,15 +48,21 @@ public class XFactory22lr {
|
||||
ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||
.dura(177 * 25).draw(15).inspect(38).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||
.rec(new Receiver(0)
|
||||
.dmg(2F).delay(1).dry(10).auto(true).spread(0.02F).reload(66).jam(30).sound("hbm:weapon.fire.silenced", 1.0F, 1.0F)
|
||||
.dmg(2F).delay(1).dry(10).auto(true).spread(0.02F).reload(66).jam(30).sound("hbm:weapon.fire.greaseGun", 1.0F, 1.0F)
|
||||
.mag(new MagazineFullReload(0, 177).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
||||
.offset(1, -0.0625 * 1.5, -0.1875D)
|
||||
.setupStandardFire().recoil(LAMBDA_RECOIL_AM180))
|
||||
.setupStandardConfiguration()
|
||||
.anim(LAMBDA_AM180_ANIMS).orchestra(Orchestras.ORCHESTRA_AM180)
|
||||
).setUnlocalizedName("gun_am180");
|
||||
).setNameMutator(LAMBDA_NAME_AM180)
|
||||
.setUnlocalizedName("gun_am180");
|
||||
}
|
||||
|
||||
public static Function<ItemStack, String> LAMBDA_NAME_AM180 = (stack) -> {
|
||||
if(WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER)) return stack.getUnlocalizedName() + "_silenced";
|
||||
return null;
|
||||
};
|
||||
|
||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_SMOKE = (stack, ctx) -> {
|
||||
Lego.handleStandardSmoke(ctx.entity, stack, 3000, 0.05D, 1.1D, 0);
|
||||
};
|
||||
|
||||
@ -67,7 +67,7 @@ public class XFactory357 {
|
||||
.setupStandardFire().recoil(LAMBDA_RECOIL_DANI))
|
||||
.pp(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD)
|
||||
.decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
|
||||
.anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI),
|
||||
.anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI),
|
||||
new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||
.rec(new Receiver(0)
|
||||
.dmg(15F).spreadHipfire(0F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 0.9F)
|
||||
@ -76,7 +76,7 @@ public class XFactory357 {
|
||||
.setupStandardFire().recoil(LAMBDA_RECOIL_DANI))
|
||||
.ps(Lego.LAMBDA_STANDARD_CLICK_PRIMARY).pr(Lego.LAMBDA_STANDARD_RELOAD)
|
||||
.decider(GunStateDecider.LAMBDA_STANDARD_DECIDER)
|
||||
.anim(LAMBDA_ATLAS_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI)
|
||||
.anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI)
|
||||
).setUnlocalizedName("gun_light_revolver_dani");
|
||||
}
|
||||
|
||||
@ -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))
|
||||
@ -119,4 +119,12 @@ public class XFactory357 {
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
@SuppressWarnings("incomplete-switch") public static BiFunction<ItemStack, AnimType, BusAnimation> LAMBDA_DANI_ANIMS = (stack, type) -> {
|
||||
switch(type) {
|
||||
case EQUIP: return new BusAnimation().addBus("EQUIP", new BusAnimationSequence().addPos(360 * 3, 0, 0, 1000, IType.SIN_DOWN));
|
||||
}
|
||||
|
||||
return LAMBDA_ATLAS_ANIMS.apply(stack, type);
|
||||
};
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ public class WeaponModManager {
|
||||
new WeaponModDefinition(EnumModGeneric.BRONZE_DURA).addMod(bronzeGuns, new WeaponModGenericDurability(117));
|
||||
|
||||
new WeaponModDefinition(EnumModSpecial.SPEEDLOADER).addMod(ModItems.gun_liberator, new WeaponModLiberatorSpeedloader(200));
|
||||
new WeaponModDefinition(EnumModSpecial.SILENCER).addMod(new Item[] {ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_g3}, new WeaponModSilencer(ID_SILENCER));
|
||||
new WeaponModDefinition(EnumModSpecial.SILENCER).addMod(new Item[] {ModItems.gun_am180, ModItems.gun_uzi, ModItems.gun_uzi_akimbo, ModItems.gun_g3}, new WeaponModSilencer(ID_SILENCER));
|
||||
new WeaponModDefinition(EnumModSpecial.SCOPE).addMod(new Item[] {ModItems.gun_heavy_revolver, ModItems.gun_g3, ModItems.gun_mas36}, new WeaponModScope(ID_SCOPE));
|
||||
new WeaponModDefinition(EnumModSpecial.SAW)
|
||||
.addMod(new Item[] {ModItems.gun_maresleg, ModItems.gun_double_barrel}, new WeaponModSawedOff(ID_SAWED_OFF))
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -278,6 +278,7 @@ public class ResourceManager {
|
||||
public static final IModelCustom bomb_multi = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/BombGeneric.obj"));
|
||||
public static final IModelCustom fstbmb = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/fstbmb.obj")).asVBO();
|
||||
public static final IModelCustom dud = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/BalefireCrashed.obj")).asVBO();
|
||||
public static final IModelCustom dud_balefire = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/bombs/dud_balefire.obj")).asVBO();
|
||||
|
||||
//Satellites
|
||||
public static final IModelCustom sat_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sat_base.obj"));
|
||||
@ -728,6 +729,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/n45_chain.png");
|
||||
public static final ResourceLocation fstbmb_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/fstbmb.png");
|
||||
public static final ResourceLocation dud_tex = new ResourceLocation(RefStrings.MODID, "textures/models/BalefireCrashed.png");
|
||||
public static final ResourceLocation dud_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bombs/dud_balefire.png");
|
||||
|
||||
//Satellites
|
||||
public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_base.png");
|
||||
|
||||
@ -3,6 +3,7 @@ package com.hbm.render.item.weapon.sedna;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||
import com.hbm.items.weapon.sedna.mods.WeaponModManager;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.anim.HbmAnimations;
|
||||
@ -38,6 +39,8 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase {
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.am180_tex);
|
||||
double scale = 0.1875D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
|
||||
boolean silenced = this.hasSilencer(stack);
|
||||
|
||||
double[] equip = HbmAnimations.getRelevantTransformation("EQUIP");
|
||||
double[] recoil = HbmAnimations.getRelevantTransformation("RECOIL");
|
||||
@ -59,7 +62,7 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase {
|
||||
|
||||
HbmAnimations.applyRelevantTransformation("Gun");
|
||||
ResourceManager.am180.renderPart("Gun");
|
||||
ResourceManager.am180.renderPart("Silencer");
|
||||
if(silenced) ResourceManager.am180.renderPart("Silencer");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
HbmAnimations.applyRelevantTransformation("Trigger");
|
||||
@ -98,7 +101,7 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase {
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 1.875, 17);
|
||||
GL11.glTranslated(0, 1.875, silenced ? 17 : 13);
|
||||
GL11.glRotated(turn[2], 0, 0, -1);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
this.renderSmokeNodes(gun.getConfig(stack, 0).smokeNodes, 0.25D);
|
||||
@ -107,11 +110,12 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase {
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0, 1.875, 16.75);
|
||||
GL11.glTranslated(0, 1.875, silenced ? 16.75 : 12);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glRotated(90 * gun.shotRand, 1, 0, 0);
|
||||
GL11.glScaled(0.5, 0.5, 0.5);
|
||||
this.renderMuzzleFlash(gun.lastShot[0], 75, 5);
|
||||
double flashScale = silenced ? 0.5 : 0.75;
|
||||
GL11.glScaled(flashScale, flashScale, flashScale);
|
||||
this.renderMuzzleFlash(gun.lastShot[0], silenced ? 75 : 50, silenced ? 5 : 7.5);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@ -148,7 +152,16 @@ public class ItemRenderAm180 extends ItemRenderWeaponBase {
|
||||
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.am180_tex);
|
||||
ResourceManager.am180.renderAll();
|
||||
ResourceManager.am180.renderPart("Gun");
|
||||
if(this.hasSilencer(stack)) ResourceManager.am180.renderPart("Silencer");
|
||||
ResourceManager.am180.renderPart("Trigger");
|
||||
ResourceManager.am180.renderPart("Bolt");
|
||||
ResourceManager.am180.renderPart("Mag");
|
||||
ResourceManager.am180.renderPart("MagPlate");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}
|
||||
|
||||
public boolean hasSilencer(ItemStack stack) {
|
||||
return WeaponModManager.hasUpgrade(stack, 0, WeaponModManager.ID_SILENCER);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -1,38 +1,42 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderCrashedBomb extends TileEntitySpecialRenderer {
|
||||
|
||||
public static Random rand = new Random();
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
|
||||
{
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
switch(tileEntity.getBlockMetadata())
|
||||
{
|
||||
case 5:
|
||||
GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
case 2:
|
||||
GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||
case 4:
|
||||
GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
case 3:
|
||||
GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
}
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
rand.setSeed(BlockPos.getIdentity(tile.xCoord, tile.yCoord, tile.zCoord));
|
||||
double yaw = rand.nextDouble() * 360;
|
||||
double pitch = rand.nextDouble() * 45 + 45;
|
||||
double roll = rand.nextDouble() * 360;
|
||||
double offset = rand.nextDouble() * 2 - 1;
|
||||
|
||||
bindTexture(ResourceManager.dud_tex);
|
||||
ResourceManager.dud.renderAll();
|
||||
GL11.glRotated(yaw, 0, 1, 0);
|
||||
GL11.glRotated(pitch, 1, 0, 0);
|
||||
GL11.glRotated(roll, 0, 0, 1);
|
||||
GL11.glTranslated(0, 0, -offset);
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.dud_balefire_tex);
|
||||
ResourceManager.dud_balefire.renderAll();
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
@ -45,10 +44,6 @@ public class RenderSkeletonHolder extends TileEntitySpecialRenderer {
|
||||
ItemStack stack = pedestal.item.copy();
|
||||
|
||||
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);
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -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,9 +42,11 @@ 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;
|
||||
@ -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
|
||||
|
||||
@ -3,6 +3,8 @@ package com.hbm.tileentity.machine;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.sound.AudioWrapper;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
@ -21,6 +23,7 @@ public class TileEntityMachineIntake extends TileEntityLoadedBase implements IEn
|
||||
public long power;
|
||||
public float fan = 0;
|
||||
public float prevFan = 0;
|
||||
private AudioWrapper audio;
|
||||
|
||||
public TileEntityMachineIntake() {
|
||||
this.compair = new FluidTank(Fluids.AIR, 1_000);
|
||||
@ -54,6 +57,23 @@ public class TileEntityMachineIntake extends TileEntityLoadedBase implements IEn
|
||||
this.fan -= 360;
|
||||
this.prevFan -= 360;
|
||||
}
|
||||
|
||||
if(audio == null) {
|
||||
audio = createAudioLoop();
|
||||
audio.startSound();
|
||||
} else if(!audio.isPlaying()) {
|
||||
audio = rebootAudio(audio);
|
||||
}
|
||||
|
||||
audio.keepAlive();
|
||||
audio.updateVolume(this.getVolume(0.25F));
|
||||
|
||||
} else {
|
||||
|
||||
if(audio != null) {
|
||||
audio.stopSound();
|
||||
audio = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -76,6 +96,19 @@ public class TileEntityMachineIntake extends TileEntityLoadedBase implements IEn
|
||||
};
|
||||
}
|
||||
|
||||
@Override public AudioWrapper createAudioLoop() {
|
||||
return MainRegistry.proxy.getLoopedSound("hbm:block.motor", xCoord, yCoord, zCoord, 0.25F, 10F, 1.0F, 20);
|
||||
}
|
||||
|
||||
@Override public void onChunkUnload() {
|
||||
if(audio != null) { audio.stopSound(); audio = null; }
|
||||
}
|
||||
|
||||
@Override public void invalidate() {
|
||||
super.invalidate();
|
||||
if(audio != null) { audio.stopSound(); audio = null; }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(ByteBuf buf) {
|
||||
super.serialize(buf);
|
||||
|
||||
@ -143,7 +143,7 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i
|
||||
|
||||
speed = (float)(13 * Math.log10(speed) + 1);
|
||||
tanks[1].setFill((int) (tanks[1].getFill() - recipe.steam * speed));
|
||||
tanks[2].setFill((int) (tanks[2].getFill() + recipe.steam * speed / 100));
|
||||
steamUsed += recipe.steam * speed;
|
||||
this.isProgressing = true;
|
||||
|
||||
if(this.progress >= 1F) {
|
||||
@ -309,8 +309,10 @@ public class TileEntityMachineRotaryFurnace extends TileEntityMachinePolluting i
|
||||
if(this.tanks[0].getFill() < recipe.fluid.fill) return false;
|
||||
}
|
||||
|
||||
if(tanks[1].getFill() < recipe.steam) return false;
|
||||
if(tanks[2].getMaxFill() - tanks[2].getFill() < recipe.steam / 100) return false;
|
||||
float speed = Math.max((float) burnHeat, 1);
|
||||
|
||||
if(tanks[1].getFill() < recipe.steam * speed) return false;
|
||||
if(tanks[2].getMaxFill() - tanks[2].getFill() < recipe.steam * speed / 100) return false;
|
||||
if(this.steamUsed > 100) return false;
|
||||
|
||||
if(this.output != null) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -85,7 +85,11 @@ public class BlockPos implements Cloneable {
|
||||
/** modified 1.12 vanilla implementation */
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return (this.getY() + this.getZ() * 27644437) * 27644437 + this.getX();
|
||||
return getIdentity(this.getX(), this.getY(), this.getZ());
|
||||
}
|
||||
|
||||
public static int getIdentity(int x, int y, int z) {
|
||||
return (y + z * 27644437) * 27644437 + x;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
@ -2217,7 +2056,8 @@ item.grenade_tau.name=Taugranate
|
||||
item.grenade_zomg.name=Negativenergie-Paarvernichtungsgranate
|
||||
item.gun_aberrator.name=Aberrator
|
||||
item.gun_aberrator_eott.name=Eyes Of The Tempest
|
||||
item.gun_am180.name=Schallgedämpfte Maschinenpistole
|
||||
item.gun_am180.name=.22er Maschinenpistole
|
||||
item.gun_am180_silenced.name=Schallgedämpfte .22er Maschinenpistole
|
||||
item.gun_autoshotgun.name=Auto-Flinte
|
||||
item.gun_autoshotgun_sexy.name=Sexy
|
||||
item.gun_autoshotgun_shredder.name=Shredder
|
||||
@ -2334,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
|
||||
@ -4173,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
|
||||
@ -4188,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
|
||||
|
||||
@ -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
|
||||
@ -3027,7 +2868,8 @@ item.glyphid_gland.name= Gland
|
||||
item.glyphid_gland_empty.name= Glyphid's Fluid Gland
|
||||
item.gun_aberrator.name=Aberrator
|
||||
item.gun_aberrator_eott.name=Eyes Of The Tempest
|
||||
item.gun_am180.name=Silenced Submachine Gun
|
||||
item.gun_am180.name=.22 Submachine Gun
|
||||
item.gun_am180_silenced.name=Silenced .22 Submachine Gun
|
||||
item.gun_autoshotgun.name=Auto Shotgun
|
||||
item.gun_autoshotgun_sexy.name=Sexy
|
||||
item.gun_autoshotgun_shredder.name=Shredder
|
||||
@ -3147,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
|
||||
@ -5303,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
|
||||
|
||||
@ -2893,7 +2893,7 @@ item.grenade_tau.name=陶子手榴弹
|
||||
item.grenade_zomg.name=负能量湮灭手榴弹
|
||||
item.glyphid_gland.name=囊腺
|
||||
item.glyphid_gland_empty.name=异虫腺体
|
||||
item.gun_am180.name=消音冲锋枪
|
||||
item.gun_am180.name=.22口径冲锋枪
|
||||
item.gun_autoshotgun.name=自动霰弹枪
|
||||
item.gun_autoshotgun_sexy.name=Sexy
|
||||
item.gun_autoshotgun_shredder.name=粉碎者
|
||||
@ -2909,7 +2909,7 @@ item.gun_cryolator_ammo.name=急冻单元
|
||||
item.gun_detonator.name=激光引爆器
|
||||
item.gun_double_barrel.name=旧日经典
|
||||
item.gun_double_barrel_sacred_dragon.name=圣龙
|
||||
item.gun_fatman.name=Fat Man
|
||||
item.gun_fatman.name=M42核弹发射器 “胖子”
|
||||
item.gun_fireext.name=灭火器
|
||||
item.gun_flamer.name=火焰喷射器
|
||||
item.gun_flamer_daybreaker.name=破晓之时
|
||||
@ -5058,7 +5058,7 @@ tile.crane_grabber.name=输送带抓斗
|
||||
tile.crane_grabber.desc=从经过的输送带中取出物品并将其放入容器$将只从最近的通道中取出物品$最多有9个带黑白名单的过滤槽$用螺丝刀右键单击以设置输入侧$用螺丝起子平移单击以设置输出侧$单击两次以设置对侧
|
||||
tile.crane_inserter.name=输送带导入器
|
||||
tile.crane_inserter.desc=接受输送带上的物品并将其放入容器中$用螺丝刀右键单击以设置输入侧$用螺丝刀单击以设置输出侧$单击两次以设置相反侧
|
||||
tile.crane_partitioner.name=Acidizer Input Partitioner
|
||||
tile.crane_partitioner.name=酸化器输入分隔器
|
||||
tile.crane_partitioner.desc=接受并存储至多9种输入矿物酸化器的物品$并在物品数量达到配方要求时将其输出$无配方物品也会被存储,需要从侧面导出
|
||||
tile.crane_router.name=输送带分拣机
|
||||
tile.crane_router.desc=根据定义的条件对项目排序$侧面可以定义为黑名单、白名单或通配符$只有在没有其他筛选器匹配的情况下才选择通配符侧面
|
||||
@ -6068,13 +6068,13 @@ pa.pause_unloaded.desc=粒子进入了未加载的区块。$在粒子与粒子
|
||||
pa.crash_defocus.desc=粒子失焦。$请确保加速器含有足够数量的四极磁铁。
|
||||
pa.crash_derail.desc=粒子离开加速器。$请确保加速器未缺失部件,$且所有双极磁铁均正确配置。
|
||||
pa.crash_cannot_enter.desc=粒子尝试进入加速器某部件时失败。$请确保所有部件朝向正确。
|
||||
pa.crash_nocool.desc=The particle has entered an uncooled$part of the accelerator. Ensure all cooled$parts are connected and filled$with cold perfluoromethyl.
|
||||
pa.crash_nocool.desc=粒子进入了未冷却的加速器部件。$请确保所有需冷却的部件正常连接,且内部含有冷四氟甲烷。
|
||||
pa.crash_nopower.desc=粒子进入了未供能的加速器部件。$请确保所有部件均接受供电且供电充足。
|
||||
pa.crash_nocoil.desc=粒子进入了缺少线圈的双极磁铁或四极磁铁。$请安装线圈,以使上述部件正常工作。
|
||||
pa.crash_overspeed.desc=粒子进入某双极磁铁或四极磁铁时,$其速度超出了内部线圈接受的最大速度。$请安装更高等级的线圈,$或调整双极磁铁设定以使粒子提前离开加速区域。
|
||||
tile.pa_beamline.desc=可选部件,用于连接不同加速器部件$也可用于低成本地扩大粒子加速器尺寸,以达到双极磁铁的尺寸需求
|
||||
tile.pa_detector.desc=需要冷却!$接收粒子并进行配方$配方可能需要容器(粒子胶囊)$粒子的失焦程度需要为0才能被接收
|
||||
tile.pa_dipole.desc=Requires cooling!$Redirects particles based on momentum.$Has outputs for below threshold,$above threshold and above threshold$with redstone applied.$Requires large coils to work.
|
||||
tile.pa_dipole.desc=需要冷却!$根据粒子动量使其转向$具有“低于阈值”、“高于阈值”、$“高于阈值且收到红石信号”三种设置$需要大型线圈才能工作
|
||||
tile.pa_quadrupole.desc=需要冷却!$使粒子失焦程度减少100$需要大型线圈才能工作
|
||||
tile.pa_rfc.desc=需要冷却!$使粒子动量增加100,并使粒子失焦程度增加100$粒子失焦程度到达1000时会坍毁
|
||||
tile.pa_source.desc=需要冷却!$使用两个物品来创造一个粒子
|
||||
@ -6091,99 +6091,106 @@ tile.refueler.name=燃料装填站
|
||||
tile.wand_air.name=结构魔杖方块(空气)
|
||||
tile.wand_loot.name=结构魔杖方块(战利品)
|
||||
tile.wand_jigsaw.name=结构魔杖方块(拼图)
|
||||
container.toolBox=Toolbox
|
||||
container.weaponsTable=Weapon Modification Table
|
||||
item.ammo_standard.bmg50_he.name=.50 BMG Round (High-Explosive)
|
||||
item.ammo_standard.g10_explosive.name=10 Gauge Explosive Buckshot
|
||||
item.ammo_standard.p45_ap.name=.45 Round (Armor Piercing)
|
||||
item.ammo_standard.p45_du.name=.45 Round (Depleted Uranium)
|
||||
item.ammo_standard.p45_fmj.name=.45 Round (Full Metal Jacket)
|
||||
item.ammo_standard.p45_jhp.name=.45 Round (Jacketed Hollow Point)
|
||||
item.ammo_standard.p45_sp.name=.45 Round (Soft Point)
|
||||
item.ammo_standard.r762_he.name=7.62mm Round (High-Explosive)
|
||||
item.conveyor_wand.regular.name=Conveyor Belt
|
||||
item.conveyor_wand.express.name=Express Conveyor Belt
|
||||
item.conveyor_wand.double.name=Double-Lane Conveyor Belt
|
||||
item.conveyor_wand.triple.name=Triple-Lane Conveyor Belt
|
||||
item.conveyor_wand.desc=Moves items dropped on it$Click two points to create a conveyor$Crouch click to manually place$Click with a screwdriver to rotate$Crouch click with a screwdriver to change types
|
||||
item.conveyor_wand.vertical.desc=Is capable of placing lifts & chutes to move items vertically
|
||||
container.toolBox=工具箱
|
||||
container.weaponsTable=武器改装台
|
||||
item.ammo_standard.bmg50_he.name=.50BMG子弹 (高爆弹药)
|
||||
item.ammo_standard.g10_explosive.name=十号爆炸霰弹
|
||||
item.ammo_standard.p45_ap.name=.45口径子弹(穿甲弹)
|
||||
item.ammo_standard.p45_du.name=.45口径子弹(贫铀弹)
|
||||
item.ammo_standard.p45_fmj.name=.45口径子弹(金属被甲弹)
|
||||
item.ammo_standard.p45_jhp.name=.45口径子弹(被甲空尖弹)
|
||||
item.ammo_standard.p45_sp.name=.45口径子弹(普通弹)
|
||||
item.ammo_standard.r762_he.name=7.62mm子弹(高爆弹药)
|
||||
item.conveyor_wand.regular.name=输送带
|
||||
item.conveyor_wand.express.name=快速输送带
|
||||
item.conveyor_wand.double.name=双轨道输送带
|
||||
item.conveyor_wand.triple.name=三轨道输送带
|
||||
item.conveyor_wand.desc=运送掉落在上面的物品$右键单击任意两点创建传送带$蹲下单击右键单独放置传送带$使用螺丝刀可以改变方向$蹲下右键单击可以改变类型
|
||||
item.conveyor_wand.vertical.desc=能放置垂直输送带或者滑槽来垂直输送物品
|
||||
item.gun_g3_a3.name=G3A3
|
||||
item.gun_g3_infiltrator.name=Infiltrator
|
||||
item.gun_g3_infiltrator.name=渗透者
|
||||
item.gun_greasegun_m3.name=M3
|
||||
item.gun_heavy_revolver_scoped.name=Scoped .44 Magnum
|
||||
item.gun_henry_lincoln.name=Lincoln's Repeater
|
||||
item.gun_maresleg_short.name=Mare's Leg
|
||||
item.gun_mas36.name=South Star
|
||||
item.gun_uzi_richter.name=Richter
|
||||
item.item_secret.aberrator.name=Aberrator Part
|
||||
item.toolbox.name=Toolbox
|
||||
item.toolbox_legacy.name=Toolbox (LEGACY)
|
||||
item.weapon_mod_caliber.bmg50.name=.50 BMG Conversion Kit
|
||||
item.weapon_mod_caliber.m357.name=.357 Magnum Conversion Kit
|
||||
item.weapon_mod_caliber.m44.name=.44 Magnum Conversion Kit
|
||||
item.weapon_mod_caliber.p22.name=.22 LR Conversion Kit
|
||||
item.weapon_mod_caliber.p45.name=.45 Conversion Kit
|
||||
item.weapon_mod_caliber.p9.name=9mm Conversion Kit
|
||||
item.weapon_mod_caliber.r556.name=5.56mm Conversion Kit
|
||||
item.weapon_mod_caliber.r762.name=7.62mm Conversion Kit
|
||||
item.weapon_mod_generic.bigmt_damage.name=Optimized Saturnite Receiver
|
||||
item.weapon_mod_generic.bigmt_dura.name=High-Durability Saturnite Parts
|
||||
item.weapon_mod_generic.bronze_damage.name=Optimized Bronze Receiver
|
||||
item.weapon_mod_generic.bronze_dura.name=High-Durability Bronze Parts
|
||||
item.weapon_mod_generic.desh_damage.name=Optimized Desh Receiver
|
||||
item.weapon_mod_generic.desh_dura.name=High-Durability Desh Parts
|
||||
item.weapon_mod_generic.dura_damage.name=Optimized HSS Receiver
|
||||
item.weapon_mod_generic.dura_dura.name=High-Durability HSS Parts
|
||||
item.weapon_mod_generic.ferro_damage.name=Optimized Ferrouranium Receiver
|
||||
item.weapon_mod_generic.ferro_dura.name=High-Durability Ferrouranium Parts
|
||||
item.weapon_mod_generic.iron_damage.name=Optimized Iron Receiver
|
||||
item.weapon_mod_generic.iron_dura.name=High-Durability Iron Parts
|
||||
item.weapon_mod_generic.steel_damage.name=Optimized Steel Receiver
|
||||
item.weapon_mod_generic.steel_dura.name=High-Durability Steel Parts
|
||||
item.weapon_mod_generic.tcalloy_damage.name=Optimized Resistant Alloy Receiver
|
||||
item.weapon_mod_generic.tcalloy_dura.name=High-Durability Resistant Alloy Parts
|
||||
item.weapon_mod_generic.wsteel_damage.name=Optimized Weapon Steel Receiver
|
||||
item.weapon_mod_generic.wsteel_dura.name=High-Durability Weapon Steel Parts
|
||||
item.weapon_mod_special.bayonet.name=Bayonet
|
||||
item.weapon_mod_special.choke.name=Choke
|
||||
item.weapon_mod_special.furniture_black.name=Polymer Furniture (Black)
|
||||
item.weapon_mod_special.furniture_green.name=Polymer Furniture (Green)
|
||||
item.weapon_mod_special.greasegun.name=Grease Gun Modernization Kit
|
||||
item.weapon_mod_special.las_auto.name=Laser Rifle Automatic Receiver
|
||||
item.weapon_mod_special.las_capacitor.name=Laser Rifle Extended Capacitor
|
||||
item.weapon_mod_special.las_shotgun.name=Laser Rifle Beam Splitter
|
||||
item.weapon_mod_special.saw.name=Hacksaw
|
||||
item.weapon_mod_special.scope.name=Scope
|
||||
item.weapon_mod_special.silencer.name=Silencer
|
||||
item.weapon_mod_special.skin_saturnite.name=Saturnite Skin
|
||||
item.weapon_mod_special.slowdown.name=Gear Train
|
||||
item.weapon_mod_special.speedloader.name=Speedloader
|
||||
item.weapon_mod_special.speedup.name=Auxiliary Electric Engine
|
||||
item.weapon_mod_special.stack_mag.name=Double-Stacked Magazine
|
||||
item.weapon_mod_test.damage.name=DAMAGE UPGRADE
|
||||
item.weapon_mod_test.firerate.name=FIRE RATE UPGRADE
|
||||
item.weapon_mod_test.multi.name=MULTI SHOT UPGRADE
|
||||
item.weapon_mod_test.override_2_5.name=DAMAGE OVERRIDE (2.5)
|
||||
item.weapon_mod_test.override_5.name=DAMAGE OVERRIDE (5)
|
||||
item.weapon_mod_test.override_7_5.name=DAMAGE OVERRIDE (7.5)
|
||||
item.weapon_mod_test.override_10.name=DAMAGE OVERRIDE (10)
|
||||
item.weapon_mod_test.override_12_5.name=DAMAGE OVERRIDE (12.5)
|
||||
item.weapon_mod_test.override_15.name=DAMAGE OVERRIDE (15)
|
||||
item.weapon_mod_test.override_20.name=DAMAGE OVERRIDE (20)
|
||||
item.gun_heavy_revolver_scoped.name=带有准镜的.44马格南转轮手枪
|
||||
item.gun_henry_lincoln.name=林肯的中继器
|
||||
item.gun_maresleg_short.name=马腿
|
||||
item.gun_mas36.name=南方之星
|
||||
item.gun_uzi_richter.name=里氏
|
||||
item.item_secret.aberrator.name=畸变部件
|
||||
item.toolbox.name=工具箱
|
||||
item.toolbox_legacy.name=工具箱(遗留)
|
||||
item.weapon_mod_caliber.bmg50.name=.50BMG改装套件
|
||||
item.weapon_mod_caliber.m357.name=.357马格南改装套件
|
||||
item.weapon_mod_caliber.m44.name=.44马格南改装套件
|
||||
item.weapon_mod_caliber.p22.name=.22LR改装套件
|
||||
item.weapon_mod_caliber.p45.name=.45口径改装套件
|
||||
item.weapon_mod_caliber.p9.name=9毫米口径改装套件
|
||||
item.weapon_mod_caliber.r556.name=5.56mm改装套件
|
||||
item.weapon_mod_caliber.r762.name=7.62改装套件
|
||||
item.weapon_mod_generic.bigmt_damage.name=土星弹道优化器
|
||||
item.weapon_mod_generic.bigmt_dura.name=高耐用性土星部件
|
||||
item.weapon_mod_generic.bronze_damage.name=青铜弹道优化器
|
||||
item.weapon_mod_generic.bronze_dura.name=高耐用性青铜部件
|
||||
item.weapon_mod_generic.desh_damage.name=Desh弹道优化器
|
||||
item.weapon_mod_generic.desh_dura.name=高耐用性Desh部件
|
||||
item.weapon_mod_generic.dura_damage.name=高速钢弹道优化器
|
||||
item.weapon_mod_generic.dura_dura.name=高耐用性高速钢部件
|
||||
item.weapon_mod_generic.ferro_damage.name=铀铁合金弹道优化器
|
||||
item.weapon_mod_generic.ferro_dura.name=高耐用性铀铁合金部件
|
||||
item.weapon_mod_generic.iron_damage.name=铁制弹道优化器
|
||||
item.weapon_mod_generic.iron_dura.name=高耐用性铁制部件
|
||||
item.weapon_mod_generic.steel_damage.name=钢制弹道优化器
|
||||
item.weapon_mod_generic.steel_dura.name=高耐用性钢制部件
|
||||
item.weapon_mod_generic.tcalloy_damage.name=耐高温合金弹道优化
|
||||
item.weapon_mod_generic.tcalloy_dura.name=高耐用性耐高温合金部件
|
||||
item.weapon_mod_generic.wsteel_damage.name=武器级钢弹道优化器
|
||||
item.weapon_mod_generic.wsteel_dura.name=高耐用性武器级钢部件
|
||||
item.weapon_mod_special.bayonet.name=刺刀
|
||||
item.weapon_mod_special.choke.name=收束器
|
||||
item.weapon_mod_special.furniture_black.name=聚合物部件(黑色)
|
||||
item.weapon_mod_special.furniture_green.name=聚合物部件(绿色)
|
||||
item.weapon_mod_special.greasegun.name=M3黄油枪现代化改装套件
|
||||
item.weapon_mod_special.las_auto.name=激光步枪自动机构
|
||||
item.weapon_mod_special.las_capacitor.name=激光步枪额外电容器
|
||||
item.weapon_mod_special.las_shotgun.name=激光步枪光束散射器
|
||||
item.weapon_mod_special.saw.name=钢锯
|
||||
item.weapon_mod_special.scope.name=瞄准镜
|
||||
item.weapon_mod_special.silencer.name=消音器
|
||||
item.weapon_mod_special.skin_saturnite.name=土星外壳
|
||||
item.weapon_mod_special.slowdown.name=减速齿轮组
|
||||
item.weapon_mod_special.speedloader.name=快速装填器
|
||||
item.weapon_mod_special.speedup.name=辅助电动机
|
||||
item.weapon_mod_special.stack_mag.name=并联弹匣
|
||||
item.weapon_mod_test.damage.name=伤害升级
|
||||
item.weapon_mod_test.firerate.name=射速升级
|
||||
item.weapon_mod_test.multi.name=多重射击升级
|
||||
item.weapon_mod_test.override_2_5.name=伤害覆盖(2.5)
|
||||
item.weapon_mod_test.override_5.name=伤害覆盖(5)
|
||||
item.weapon_mod_test.override_7_5.name=伤害覆盖(7.5)
|
||||
item.weapon_mod_test.override_10.name=伤害覆盖(10)
|
||||
item.weapon_mod_test.override_12_5.name=伤害覆盖(12.5)
|
||||
item.weapon_mod_test.override_15.name=伤害覆盖(15)
|
||||
item.weapon_mod_test.override_20.name=伤害覆盖(20)
|
||||
stat.ntmBullets=Rounds Fired
|
||||
stat.ntmLegendary=Legendary Items Created
|
||||
stat.ntmMines=Mines Stepped on
|
||||
tile.deco_rusty_steel.name=Rusty Steel Deco Block
|
||||
tile.lightstone.unrefined.name=Raw Lightstone
|
||||
tile.lightstone.tile.name=Lightstone Tile
|
||||
tile.lightstone.bricks.name=Lightstone Bricks
|
||||
tile.lightstone.bricks_chiseled.name=Lightstone Chiseled Bricks
|
||||
tile.lightstone.chiseled.name=Chiseled Lightstone
|
||||
tile.lightstone_tile_stairs.name=Lightstone Tile Stairs
|
||||
tile.lightstone_bricks_stairs.name=Lightstone Brick Stairs
|
||||
tile.machine_weapon_table.name=Weapon Modification Table
|
||||
tile.mine_naval.name=Naval Mine
|
||||
tile.skeleton_holder.name=Oh, that's a dead guy
|
||||
tile.stones_slab.lightstone.1.name=Lightstone Tile Slab
|
||||
tile.stones_slab.lightstone.2.name=Lightstone Brick Slab
|
||||
upgrade.productivity=Productivity %s
|
||||
tile.deco_rusty_steel.name=锈蚀的钢装饰块
|
||||
tile.lightstone.unrefined.name=天然淡色石
|
||||
tile.lightstone.tile.name=淡色石瓷砖
|
||||
tile.lightstone.bricks.name=淡色石砖
|
||||
tile.lightstone.bricks_chiseled.name=錾制淡色石砖
|
||||
tile.lightstone.chiseled.name=錾制淡色石
|
||||
tile.lightstone_tile_stairs.name=淡色石瓷砖楼梯
|
||||
tile.lightstone_bricks_stairs.name=淡色石砖楼梯
|
||||
tile.machine_weapon_table.name=武器改装台
|
||||
tile.mine_naval.name=水雷
|
||||
tile.skeleton_holder.name=哦,那家伙已经死了
|
||||
tile.stones_slab.lightstone.1.name=淡色石瓷砖台阶
|
||||
tile.stones_slab.lightstone.2.name=淡色石砖块台阶
|
||||
upgrade.productivity=生产率 %s
|
||||
container.pneumoTube=气动物流管道
|
||||
hbmfluid.air=压缩空气
|
||||
tile.machine_compressor_compact.name=紧凑型压缩机
|
||||
tile.machine_intake.name=进气口
|
||||
tile.pneumatic_tube.name=气动物流管道
|
||||
tile.pneumatic_tube.desc=使用压缩空气来运输物品$使用螺丝刀右键切换为输入$潜行右键则切换为输出$可以配置输入类型并连接到压缩空气$每秒最多发送4组物品
|
||||
item.gun_am180_silenced.name=消音.22口径冲锋枪
|
||||
|
||||
2010
src/main/resources/assets/hbm/models/bombs/dud_balefire.obj
Normal file
@ -65,6 +65,8 @@
|
||||
"block.hephaestusRunning": {"category": "block", "sounds": [{"name": "block/hephaestusRunning", "stream": false}]},
|
||||
"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}]},
|
||||
|
||||
BIN
src/main/resources/assets/hbm/sounds/block/engine.ogg
Normal file
BIN
src/main/resources/assets/hbm/sounds/block/motor.ogg
Normal file
|
Before Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 452 B |
|
Before Width: | Height: | Size: 433 B |
|
Before Width: | Height: | Size: 410 B |
|
Before Width: | Height: | Size: 431 B |
|
Before Width: | Height: | Size: 455 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 415 B |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 32 KiB |