Merge branch 'HbmMods:master' into master

This commit is contained in:
BallOfEnergy 2023-04-18 20:41:17 -05:00 committed by GitHub
commit b2b8466f50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 4259 additions and 277 deletions

View File

@ -1,6 +1,6 @@
mod_version=1.0.27 mod_version=1.0.27
# Empty build number makes a release type # Empty build number makes a release type
mod_build_number=4551 mod_build_number=4562
credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\
\ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\

View File

@ -12,6 +12,7 @@ public interface IToolable {
HAND_DRILL, HAND_DRILL,
DEFUSER, DEFUSER,
WRENCH, WRENCH,
TORCH TORCH,
BOLT
} }
} }

View File

@ -293,6 +293,7 @@ public class ModBlocks {
public static Block deco_rbmk_smooth; public static Block deco_rbmk_smooth;
public static Block deco_emitter; public static Block deco_emitter;
public static Block part_emitter;
public static Block deco_loot; public static Block deco_loot;
public static Block bobblehead; public static Block bobblehead;
public static Block snowglobe; public static Block snowglobe;
@ -822,6 +823,7 @@ public class ModBlocks {
public static Block struct_soyuz_core; public static Block struct_soyuz_core;
public static Block struct_iter_core; public static Block struct_iter_core;
public static Block struct_plasma_core; public static Block struct_plasma_core;
public static Block struct_watz_core;
public static Block factory_titanium_hull; public static Block factory_titanium_hull;
@Deprecated public static Block factory_titanium_furnace; @Deprecated public static Block factory_titanium_furnace;
@ -1465,6 +1467,7 @@ public class ModBlocks {
deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top"); deco_rbmk_smooth = new BlockGeneric(Material.iron).setBlockName("deco_rbmk_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_top");
deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter"); deco_emitter = new BlockEmitter().setBlockName("deco_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":emitter");
part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top");
deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel");
snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron");
@ -1948,6 +1951,7 @@ public class ModBlocks {
struct_soyuz_core = new BlockSoyuzStruct(Material.iron).setBlockName("struct_soyuz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_soyuz_core"); struct_soyuz_core = new BlockSoyuzStruct(Material.iron).setBlockName("struct_soyuz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":struct_soyuz_core");
struct_iter_core = new BlockITERStruct(Material.iron).setBlockName("struct_iter_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_iter_core"); struct_iter_core = new BlockITERStruct(Material.iron).setBlockName("struct_iter_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_iter_core");
struct_plasma_core = new BlockPlasmaStruct(Material.iron).setBlockName("struct_plasma_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_plasma_core"); struct_plasma_core = new BlockPlasmaStruct(Material.iron).setBlockName("struct_plasma_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_plasma_core");
struct_watz_core = new BlockWatzStruct(Material.iron).setBlockName("struct_watz_core").setLightLevel(1F).setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":struct_watz_core");
factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull"); factory_titanium_hull = new BlockGeneric(Material.iron).setBlockName("factory_titanium_hull").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_hull");
factory_titanium_furnace = new FactoryHatch(Material.iron).setBlockName("factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_furnace"); factory_titanium_furnace = new FactoryHatch(Material.iron).setBlockName("factory_titanium_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":factory_titanium_furnace");
@ -1977,7 +1981,7 @@ public class ModBlocks {
watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side"); watz_element = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_element_top").setBlockName("watz_element").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_element_side");
watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side"); watz_control = new BlockPillar(Material.iron, RefStrings.MODID + ":watz_control_top").setBlockName("watz_control").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_control_side");
watz_cooler = new BlockGeneric(Material.iron).setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler"); watz_cooler = new BlockGeneric(Material.iron).setBlockName("watz_cooler").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_cooler");
watz_end = new BlockGeneric(Material.iron).setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing"); watz_end = new BlockBoltable(Material.iron).setBlockName("watz_end").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_casing");
watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_hatch"); watz_hatch = new WatzHatch(Material.iron).setBlockName("watz_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_hatch");
watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top"); watz_conductor = new BlockCableConnect(Material.iron).setBlockName("watz_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_conductor_top");
watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_computer"); watz_core = new WatzCore(Material.iron).setBlockName("watz_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":watz_computer");
@ -2589,6 +2593,7 @@ public class ModBlocks {
GameRegistry.registerBlock(deco_beryllium, deco_beryllium.getUnlocalizedName()); GameRegistry.registerBlock(deco_beryllium, deco_beryllium.getUnlocalizedName());
GameRegistry.registerBlock(deco_asbestos, deco_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(deco_asbestos, deco_asbestos.getUnlocalizedName());
GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName()); GameRegistry.registerBlock(deco_emitter, ItemBlockBase.class, deco_emitter.getUnlocalizedName());
GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName());
GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName()); GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName());
GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName());
GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName());
@ -3218,6 +3223,7 @@ public class ModBlocks {
GameRegistry.registerBlock(struct_soyuz_core, struct_soyuz_core.getUnlocalizedName()); GameRegistry.registerBlock(struct_soyuz_core, struct_soyuz_core.getUnlocalizedName());
GameRegistry.registerBlock(struct_iter_core, struct_iter_core.getUnlocalizedName()); GameRegistry.registerBlock(struct_iter_core, struct_iter_core.getUnlocalizedName());
GameRegistry.registerBlock(struct_plasma_core, struct_plasma_core.getUnlocalizedName()); GameRegistry.registerBlock(struct_plasma_core, struct_plasma_core.getUnlocalizedName());
GameRegistry.registerBlock(struct_watz_core, struct_watz_core.getUnlocalizedName());
//Absorbers //Absorbers
GameRegistry.registerBlock(absorber, absorber.getUnlocalizedName()); GameRegistry.registerBlock(absorber, absorber.getUnlocalizedName());
@ -3257,7 +3263,7 @@ public class ModBlocks {
GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName()); GameRegistry.registerBlock(watz_element, watz_element.getUnlocalizedName());
GameRegistry.registerBlock(watz_control, watz_control.getUnlocalizedName()); GameRegistry.registerBlock(watz_control, watz_control.getUnlocalizedName());
GameRegistry.registerBlock(watz_cooler, watz_cooler.getUnlocalizedName()); GameRegistry.registerBlock(watz_cooler, watz_cooler.getUnlocalizedName());
GameRegistry.registerBlock(watz_end, watz_end.getUnlocalizedName()); register(watz_end);
GameRegistry.registerBlock(watz_hatch, watz_hatch.getUnlocalizedName()); GameRegistry.registerBlock(watz_hatch, watz_hatch.getUnlocalizedName());
GameRegistry.registerBlock(watz_conductor, watz_conductor.getUnlocalizedName()); GameRegistry.registerBlock(watz_conductor, watz_conductor.getUnlocalizedName());
GameRegistry.registerBlock(watz_core, watz_core.getUnlocalizedName()); GameRegistry.registerBlock(watz_core, watz_core.getUnlocalizedName());

View File

@ -0,0 +1,72 @@
package com.hbm.blocks.generic;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockBase;
import com.hbm.blocks.IBlockMulti;
import com.hbm.blocks.ILookOverlay;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.items.ModItems;
import com.hbm.util.I18nUtil;
import api.hbm.block.IToolable;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
public class BlockBoltable extends BlockBase implements IToolable, ILookOverlay, IBlockMulti {
public BlockBoltable(Material mat) {
super(mat);
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
if(tool != ToolType.BOLT) return false;
return true;
}
public List<AStack> getMaterials(int meta) {
List<AStack> list = new ArrayList();
return list;
}
@Override
@SideOnly(Side.CLIENT)
public void printHook(Pre event, World world, int x, int y, int z) {
ItemStack held = Minecraft.getMinecraft().thePlayer.getHeldItem();
if(held == null || held.getItem() != ModItems.boltgun) return;
List<String> text = new ArrayList();
text.add(EnumChatFormatting.GOLD + "Requires:");
List<AStack> materials = getMaterials(world.getBlockMetadata(x, y, z));
for(AStack stack : materials) {
try {
ItemStack display = stack.extractForCyclingDisplay(20);
text.add("- " + display.getDisplayName() + " x" + display.stackSize);
} catch(Exception ex) {
text.add(EnumChatFormatting.RED + "- ERROR");
}
}
if(!materials.isEmpty()) {
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(this.getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
}
@Override
public int getSubCount() {
return 1;
}
}

View File

@ -46,6 +46,11 @@ public class BlockStalagmite extends BlockEnumMulti {
return null; return null;
} }
@Override
public int damageDropped(int meta) {
return 0;
}
public static int getMetaFromResource(int meta) { public static int getMetaFromResource(int meta) {
return meta; return meta;
} }

View File

@ -0,0 +1,124 @@
package com.hbm.blocks.generic;
import java.util.List;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.util.ParticleUtil;
import api.hbm.block.IToolable;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class PartEmitter extends BlockContainer implements IToolable, ITooltipProvider {
public PartEmitter() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityPartEmitter();
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
if(tool == ToolType.HAND_DRILL) {
TileEntityPartEmitter te = (TileEntityPartEmitter) world.getTileEntity(x, y, z);
te.effect = (te.effect + 1) % te.effectCount;
te.markDirty();
return true;
}
return false;
}
public static class TileEntityPartEmitter extends TileEntity {
public static final int range = 150;
public int effect = 0;
public static final int effectCount = 4;
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
double x = xCoord + 0.5;
double y = yCoord + 0.5;
double z = zCoord + 0.5;
NBTTagCompound data = new NBTTagCompound();
if(effect == 1) {
ParticleUtil.spawnGasFlame(worldObj, xCoord + worldObj.rand.nextDouble(), yCoord + 4.5 + worldObj.rand.nextDouble(), zCoord + worldObj.rand.nextDouble(), worldObj.rand.nextGaussian() * 0.2, 0.1, worldObj.rand.nextGaussian() * 0.2);
}
if(effect == 2) {
data.setString("type", "tower");
data.setFloat("lift", 5F);
data.setFloat("base", 0.25F);
data.setFloat("max", 5F);
data.setInteger("life", 560 + worldObj.rand.nextInt(20));
data.setInteger("color",0x404040);
}
if(effect == 3) {
data.setString("type", "tower");
data.setFloat("lift", 0.5F);
data.setFloat("base", 1F);
data.setFloat("max", 10F);
data.setInteger("life", 750 + worldObj.rand.nextInt(250));
x = xCoord + 0.5 + worldObj.rand.nextDouble() * 3 - 1.5;
y = yCoord + 1;
z = zCoord + 0.5 + worldObj.rand.nextDouble() * 3 - 1.5;
}
if(data.hasKey("type")) {
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range));
}
}
}
@Override
public Packet getDescriptionPacket() {
NBTTagCompound nbt = new NBTTagCompound();
this.writeToNBT(nbt);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt);
}
@Override
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
this.readFromNBT(pkt.func_148857_g());
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.effect = nbt.getInteger("effect");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setInteger("effect", this.effect);
}
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.GOLD + "Use hand drill to cycle special effects");
}
}

View File

@ -18,8 +18,8 @@ public class BlockITERStruct extends BlockContainer {
return new TileEntityITERStruct(); return new TileEntityITERStruct();
} }
@Override
public boolean isOpaqueCube() { public boolean isOpaqueCube() {
return false; return false;
} }
} }

View File

@ -0,0 +1,25 @@
package com.hbm.blocks.machine;
import com.hbm.tileentity.machine.TileEntityWatzStruct;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class BlockWatzStruct extends BlockContainer {
public BlockWatzStruct(Material mat) {
super(mat);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityWatzStruct();
}
@Override
public boolean isOpaqueCube() {
return false;
}
}

View File

@ -1,6 +1,7 @@
package com.hbm.blocks.machine; package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.handler.MultiblockHandlerXR;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityWatz; import com.hbm.tileentity.machine.TileEntityWatz;
@ -31,7 +32,7 @@ public class Watz extends BlockDummyable {
@Override @Override
public int[] getDimensions() { public int[] getDimensions() {
return new int[] {2, 0, 3, 3, 3, 3}; return new int[] {2, 0, 3, 3, 1, 1};
} }
@Override @Override
@ -41,13 +42,22 @@ public class Watz extends BlockDummyable {
@Override @Override
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
return super.checkRequirement(world, x, y, z, dir, o); //TODO return super.checkRequirement(world, x, y, z, dir, o) &&
MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 2, 2, 2, -2}, x, y, z, dir) &&
MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 2, 2, -2, 2}, x, y, z, dir) &&
MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 1, 1, 3, -3}, x, y, z, dir) &&
MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 1, 1, -3, 3}, x, y, z, dir);
} }
@Override @Override
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o); super.fillSpace(world, x, y, z, dir, o);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 2, 2, 2, -2}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 2, 2, -2, 2}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 1, 1, 3, -3}, this, dir);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[]{2, 0, 1, 1, -3, 3}, this, dir);
x += dir.offsetX * o; x += dir.offsetX * o;
z += dir.offsetZ * o; z += dir.offsetZ * o;
@ -59,5 +69,6 @@ public class Watz extends BlockDummyable {
this.makeExtra(world, x - 2, y + 2, z); this.makeExtra(world, x - 2, y + 2, z);
this.makeExtra(world, x, y + 2, z + 2); this.makeExtra(world, x, y + 2, z + 2);
this.makeExtra(world, x, y + 2, z - 2); this.makeExtra(world, x, y + 2, z - 2);
this.makeExtra(world, x, y + 2, z);
} }
} }

View File

@ -48,12 +48,12 @@ public class BlockCable extends BlockContainer {
@Override @Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
boolean posX = Library.canConnect(world, x + 1, y, z, Library.NEG_X); boolean posX = Library.canConnect(world, x + 1, y, z, Library.POS_X);
boolean negX = Library.canConnect(world, x - 1, y, z, Library.POS_X); boolean negX = Library.canConnect(world, x - 1, y, z, Library.NEG_X);
boolean posY = Library.canConnect(world, x, y + 1, z, Library.NEG_Y); boolean posY = Library.canConnect(world, x, y + 1, z, Library.POS_Y);
boolean negY = Library.canConnect(world, x, y - 1, z, Library.POS_Y); boolean negY = Library.canConnect(world, x, y - 1, z, Library.NEG_Y);
boolean posZ = Library.canConnect(world, x, y, z + 1, Library.NEG_Z); boolean posZ = Library.canConnect(world, x, y, z + 1, Library.POS_Z);
boolean negZ = Library.canConnect(world, x, y, z - 1, Library.POS_Z); boolean negZ = Library.canConnect(world, x, y, z - 1, Library.NEG_Z);
setBlockBounds(posX, negX, posY, negY, posZ, negZ); setBlockBounds(posX, negX, posY, negY, posZ, negZ);
@ -63,12 +63,12 @@ public class BlockCable extends BlockContainer {
@Override @Override
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
boolean posX = Library.canConnect(world, x + 1, y, z, Library.NEG_X); boolean posX = Library.canConnect(world, x + 1, y, z, Library.POS_X);
boolean negX = Library.canConnect(world, x - 1, y, z, Library.POS_X); boolean negX = Library.canConnect(world, x - 1, y, z, Library.NEG_X);
boolean posY = Library.canConnect(world, x, y + 1, z, Library.NEG_Y); boolean posY = Library.canConnect(world, x, y + 1, z, Library.POS_Y);
boolean negY = Library.canConnect(world, x, y - 1, z, Library.POS_Y); boolean negY = Library.canConnect(world, x, y - 1, z, Library.NEG_Y);
boolean posZ = Library.canConnect(world, x, y, z + 1, Library.NEG_Z); boolean posZ = Library.canConnect(world, x, y, z + 1, Library.POS_Z);
boolean negZ = Library.canConnect(world, x, y, z - 1, Library.POS_Z); boolean negZ = Library.canConnect(world, x, y, z - 1, Library.NEG_Z);
setBlockBounds(posX, negX, posY, negY, posZ, negZ); setBlockBounds(posX, negX, posY, negY, posZ, negZ);
} }

View File

@ -12,6 +12,7 @@ import com.hbm.util.I18nUtil;
import api.hbm.block.IToolable; import api.hbm.block.IToolable;
import api.hbm.energy.IEnergyUser; import api.hbm.energy.IEnergyUser;
import api.hbm.energy.IEnergyConnector.ConnectionPriority; import api.hbm.energy.IEnergyConnector.ConnectionPriority;
import api.hbm.energy.IEnergyConnectorBlock;
import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -32,7 +33,7 @@ import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class CableDiode extends BlockContainer implements ILookOverlay, IToolable, ITooltipProvider { public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, ILookOverlay, IToolable, ITooltipProvider {
public CableDiode(Material mat) { public CableDiode(Material mat) {
super(mat); super(mat);
@ -66,6 +67,11 @@ public class CableDiode extends BlockContainer implements ILookOverlay, IToolabl
world.setBlockMetadataWithNotify(x, y, z, l, 2); world.setBlockMetadataWithNotify(x, y, z, l, 2);
} }
@Override
public boolean canConnect(IBlockAccess world, int x, int y, int z, ForgeDirection dir) {
return true;
}
@Override @Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) { public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
@ -180,6 +186,11 @@ public class CableDiode extends BlockContainer implements ILookOverlay, IToolabl
} }
} }
@Override
public boolean canConnect(ForgeDirection dir) {
return dir != getDir();
}
private boolean recursionBrake = false; private boolean recursionBrake = false;
private long subBuffer; private long subBuffer;
private long contingent = 0; private long contingent = 0;

View File

@ -2,7 +2,6 @@ package com.hbm.blocks.network;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.tileentity.network.TileEntityCraneBoxer; import com.hbm.tileentity.network.TileEntityCraneBoxer;
import com.hbm.tileentity.network.TileEntityCraneInserter;
import api.hbm.conveyor.IConveyorItem; import api.hbm.conveyor.IConveyorItem;
import api.hbm.conveyor.IConveyorPackage; import api.hbm.conveyor.IConveyorPackage;
@ -81,7 +80,7 @@ public class CraneBoxer extends BlockCraneBase implements IEnterableBlock {
@Override @Override
public int getComparatorInputOverride(World world, int x, int y, int z, int side) { public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
return Container.calcRedstoneFromInventory((TileEntityCraneInserter)world.getTileEntity(x, y, z)); return Container.calcRedstoneFromInventory((TileEntityCraneBoxer)world.getTileEntity(x, y, z));
} }
@Override @Override

View File

@ -12,6 +12,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
@ -86,4 +87,14 @@ public class CraneUnboxer extends BlockCraneBase implements IEnterableBlock {
} }
} }
} }
@Override
public boolean hasComparatorInputOverride() {
return true;
}
@Override
public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
return Container.calcRedstoneFromInventory((TileEntityCraneUnboxer)world.getTileEntity(x, y, z));
}
} }

View File

@ -181,12 +181,12 @@ public class MineralRecipes {
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_pu238be, 6), new Object[] { ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_beryllium, ModItems.billet_beryllium, ModItems.billet_beryllium })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_pu238be, 6), new Object[] { ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_beryllium, ModItems.billet_beryllium, ModItems.billet_beryllium }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_ra226be, 6), new Object[] { ModItems.billet_ra226, ModItems.billet_ra226, ModItems.billet_ra226, ModItems.billet_beryllium, ModItems.billet_beryllium, ModItems.billet_beryllium })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_ra226be, 6), new Object[] { ModItems.billet_ra226, ModItems.billet_ra226, ModItems.billet_ra226, ModItems.billet_beryllium, ModItems.billet_beryllium, ModItems.billet_beryllium }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_bismuth, 1), new Object[] { "nuggetZirconium", "nuggetZirconium", "nuggetZirconium", "nuggetUranium", "nuggetPlutonium241", ModItems.nugget_bismuth })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_bismuth, 1), new Object[] { ZR.nugget(), ZR.nugget(), ZR.nugget(), U.nugget(), PU241.nugget(), BI.nugget() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_pu241, 1), new Object[] { "nuggetZirconium", "nuggetZirconium", "nuggetZirconium", "nuggetUranium235", "nuggetPlutonium240", "nuggetPlutonium241" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_pu241, 1), new Object[] { ZR.nugget(), ZR.nugget(), ZR.nugget(), U235.nugget(), PU240.nugget(), PU241.nugget() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_am_mix, 1), new Object[] { "nuggetZirconium", "nuggetZirconium", "nuggetZirconium", "nuggetPlutonium241", "nuggetPlutonium241", "nuggetAmericiumRG" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_am_mix, 1), new Object[] { ZR.nugget(), ZR.nugget(), ZR.nugget(), PU241.nugget(), PU241.nugget(), AMRG.nugget() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_bismuth, 6), new Object[] { ModItems.billet_zirconium, ModItems.billet_zirconium, ModItems.billet_zirconium, ModItems.billet_uranium, ModItems.billet_pu241, ModItems.billet_bismuth })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_bismuth, 6), new Object[] { ZR.billet(), ZR.billet(), ZR.billet(), U.billet(), PU241.billet(), BI.billet() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_pu241, 6), new Object[] { ModItems.billet_zirconium, ModItems.billet_zirconium, ModItems.billet_zirconium, ModItems.billet_u235, ModItems.billet_pu240, ModItems.billet_pu241 })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_pu241, 6), new Object[] { ZR.billet(), ZR.billet(), ZR.billet(), U235.billet(), PU240.billet(), PU241.billet() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_am_mix, 6), new Object[] { ModItems.billet_zirconium, ModItems.billet_zirconium, ModItems.billet_zirconium, ModItems.billet_pu241, ModItems.billet_pu241, ModItems.billet_am_mix })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_zfb_am_mix, 6), new Object[] { ZR.billet(), ZR.billet(), ZR.billet(), PU241.billet(), PU241.billet(), AMRG.billet() }));
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_uranium, 2), new Object[] { ModItems.billet_uranium_fuel, ModItems.billet_u238 }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_uranium, 2), new Object[] { ModItems.billet_uranium_fuel, ModItems.billet_u238 });
@ -224,16 +224,16 @@ public class MineralRecipes {
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_balefire_gold, 1), new Object[] { ModItems.billet_au198, ModItems.cell_antimatter, ModItems.pellet_charged }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_balefire_gold, 1), new Object[] { ModItems.billet_au198, ModItems.cell_antimatter, ModItems.pellet_charged });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_flashlead, 2), new Object[] { ModItems.billet_balefire_gold, ModItems.billet_pb209, ModItems.cell_antimatter }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_flashlead, 2), new Object[] { ModItems.billet_balefire_gold, ModItems.billet_pb209, ModItems.cell_antimatter });
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg), new Object[] { ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_pu238, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg), new Object[] { ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_pu238, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_radium), new Object[] { ModItems.billet_ra226, ModItems.billet_ra226, ModItems.billet_ra226, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_radium), new Object[] { ModItems.billet_ra226, ModItems.billet_ra226, ModItems.billet_ra226, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_weak), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_pu238, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_weak), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_pu238, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_strontium), new Object[] { ModItems.billet_sr90, ModItems.billet_sr90, ModItems.billet_sr90, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_strontium), new Object[] { ModItems.billet_sr90, ModItems.billet_sr90, ModItems.billet_sr90, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_cobalt), new Object[] { ModItems.billet_co60, ModItems.billet_co60, ModItems.billet_co60, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_cobalt), new Object[] { ModItems.billet_co60, ModItems.billet_co60, ModItems.billet_co60, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_actinium), new Object[] { ModItems.billet_actinium, ModItems.billet_actinium, ModItems.billet_actinium, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_actinium), new Object[] { ModItems.billet_actinium, ModItems.billet_actinium, ModItems.billet_actinium, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_polonium), new Object[] { ModItems.billet_polonium, ModItems.billet_polonium, ModItems.billet_polonium, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_polonium), new Object[] { ModItems.billet_polonium, ModItems.billet_polonium, ModItems.billet_polonium, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_lead), new Object[] { ModItems.billet_pb209, ModItems.billet_pb209, ModItems.billet_pb209, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_lead), new Object[] { ModItems.billet_pb209, ModItems.billet_pb209, ModItems.billet_pb209, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_gold), new Object[] { ModItems.billet_au198, ModItems.billet_au198, ModItems.billet_au198, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_gold), new Object[] { ModItems.billet_au198, ModItems.billet_au198, ModItems.billet_au198, IRON.plate() }));
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_americium), new Object[] { ModItems.billet_am241, ModItems.billet_am241, ModItems.billet_am241, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_americium), new Object[] { ModItems.billet_am241, ModItems.billet_am241, ModItems.billet_am241, IRON.plate() }));
//There's no need for anvil recycling recipes if you simply set the container item //There's no need for anvil recycling recipes if you simply set the container item
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_bismuth, 3), new Object[] { new ItemStack(ModItems.pellet_rtg_depleted, 1, DepletedRTGMaterial.BISMUTH.ordinal()) }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_bismuth, 3), new Object[] { new ItemStack(ModItems.pellet_rtg_depleted, 1, DepletedRTGMaterial.BISMUTH.ordinal()) });

View File

@ -0,0 +1,208 @@
package com.hbm.entity.effect;
import java.util.List;
import com.hbm.extprop.HbmLivingProps;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.trait.FT_Corrosive;
import com.hbm.inventory.fluid.trait.FT_Flammable;
import com.hbm.inventory.fluid.trait.FT_Poison;
import com.hbm.inventory.fluid.trait.FT_Toxin;
import com.hbm.inventory.fluid.trait.FT_VentRadiation;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous_ART;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous;
import com.hbm.lib.ModDamageSource;
import com.hbm.util.ArmorUtil;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.EntityDamageUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
public class EntityMist extends Entity {
public EntityMist(World world) {
super(world);
this.noClip = true;
this.setSize(10F, 3F);
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(10, new Integer(0));
}
public EntityMist setFluid(FluidType fluid) {
this.dataWatcher.updateObject(10, fluid.getID());
return this;
}
public FluidType getType() {
return Fluids.fromID(this.dataWatcher.getWatchableObjectInt(10));
}
@Override
public void onEntityUpdate() {
if(!worldObj.isRemote) {
if(this.ticksExisted > this.getMaxAge()) {
this.setDead();
}
FluidType type = this.getType();
if(type.hasTrait(FT_VentRadiation.class)) {
FT_VentRadiation trait = type.getTrait(FT_VentRadiation.class);
ChunkRadiationManager.proxy.incrementRad(worldObj, (int) Math.floor(posX), (int) Math.floor(posY), (int) Math.floor(posZ), trait.getRadPerMB() * 2);
}
double intensity = 1D - (double) this.ticksExisted / (double) this.getMaxAge();
if(type.hasTrait(FT_Flammable.class) && this.isBurning()) {
worldObj.createExplosion(this, posX, posY + height / 2, posZ, (float) intensity * 15F, true);
this.setDead();
return;
}
List<Entity> affected = worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox);
for(Entity e : affected) {
this.affect(e, intensity);
}
}
}
/* can't reuse EntityChemical here, while similar or identical in some places, the actual effects are often different */
protected void affect(Entity e, double intensity) {
FluidType type = this.getType();
EntityLivingBase living = e instanceof EntityLivingBase ? (EntityLivingBase) e : null;
if(type.temperature >= 100) {
EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_boil), 5F + (type.temperature - 100) * 0.02F);
if(type.temperature >= 500) {
e.setFire(10); //afterburn for 10 seconds
}
}
if(type.temperature < -20) {
if(living != null) { //only living things are affected
EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_cryolator), 5F + (type.temperature + 20) * -0.05F); //5 damage at -20°C with one extra damage every -20°C
living.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 100, 2));
living.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, 100, 4));
}
}
if(type.hasTrait(Fluids.DELICIOUS.getClass())) {
if(living != null && living.isEntityAlive()) {
living.heal(2F * (float) intensity);
}
}
if(type.hasTrait(FT_Flammable.class)) {
if(living != null) {
HbmLivingProps.setOil(living, 200); //doused in oil for 10 seconds
}
}
if(this.isExtinguishing(type)) {
e.extinguish();
}
if(type.hasTrait(FT_Corrosive.class)) {
FT_Corrosive trait = type.getTrait(FT_Corrosive.class);
EntityDamageUtil.attackEntityFromIgnoreIFrame(e, new DamageSource(ModDamageSource.s_acid), trait.getRating() / 20F);
if(living != null) {
for(int i = 0; i < 4; i++) {
ArmorUtil.damageSuit(living, i, trait.getRating() / 5);
}
}
}
if(type.hasTrait(FT_VentRadiation.class)) {
FT_VentRadiation trait = type.getTrait(FT_VentRadiation.class);
if(living != null) {
ContaminationUtil.contaminate(living, HazardType.RADIATION, ContaminationType.CREATIVE, trait.getRadPerMB() * 5);
}
}
if(type.hasTrait(FT_Poison.class)) {
FT_Poison trait = type.getTrait(FT_Poison.class);
if(living != null) {
living.addPotionEffect(new PotionEffect(trait.isWithering() ? Potion.wither.id : Potion.poison.id, (int) (5 * 20 * intensity)));
}
}
if(type.hasTrait(FT_Toxin.class)) {
FT_Toxin trait = type.getTrait(FT_Toxin.class);
if(living != null) {
trait.affect(living, intensity);
}
}
}
protected boolean isExtinguishing(FluidType type) {
return this.getStyleFromType(type) == SprayStyle.MIST && this.getType().temperature < 50 && !type.hasTrait(FT_Flammable.class);
}
public int getMaxAge() {
return getStyleFromType(this.getType()) == SprayStyle.GAS ? 600 : 150;
}
@Override
protected void readEntityFromNBT(NBTTagCompound nbt) {
this.setFluid(Fluids.fromID(nbt.getInteger("type")));
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbt) {
nbt.setInteger("type", this.getType().getID());
}
@Override
@SideOnly(Side.CLIENT)
public boolean canRenderOnFire() {
return false;
}
public static SprayStyle getStyleFromType(FluidType type) {
if(type.hasTrait(FT_Viscous.class)) {
return SprayStyle.NULL;
}
if(type.hasTrait(FT_Gaseous.class) || type.hasTrait(FT_Gaseous_ART.class)) {
return SprayStyle.GAS;
}
if(type.hasTrait(FT_Liquid.class)) {
return SprayStyle.MIST;
}
return SprayStyle.NULL;
}
public static enum SprayStyle {
MIST, //liquids that have been sprayed into a mist
GAS, //things that were already gaseous
NULL
}
}

View File

@ -12,6 +12,7 @@ import com.hbm.inventory.fluid.trait.FT_Combustible;
import com.hbm.inventory.fluid.trait.FT_Corrosive; import com.hbm.inventory.fluid.trait.FT_Corrosive;
import com.hbm.inventory.fluid.trait.FT_Flammable; import com.hbm.inventory.fluid.trait.FT_Flammable;
import com.hbm.inventory.fluid.trait.FT_Poison; import com.hbm.inventory.fluid.trait.FT_Poison;
import com.hbm.inventory.fluid.trait.FT_Toxin;
import com.hbm.inventory.fluid.trait.FT_VentRadiation; import com.hbm.inventory.fluid.trait.FT_VentRadiation;
import com.hbm.lib.ModDamageSource; import com.hbm.lib.ModDamageSource;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
@ -58,10 +59,6 @@ public class EntityChemical extends EntityThrowableNT {
* if CORROSIVE: apply extra acid damage, poison effect as well as armor degradation * if CORROSIVE: apply extra acid damage, poison effect as well as armor degradation
*/ */
public double lastClientPosX = -1;
public double lastClientPosY = -1;
public double lastClientPosZ = -1;
public EntityChemical(World world) { public EntityChemical(World world) {
super(world); super(world);
this.ignoreFrustumCheck = true; this.ignoreFrustumCheck = true;
@ -257,6 +254,14 @@ public class EntityChemical extends EntityThrowableNT {
} }
} }
if(type.hasTrait(FT_Toxin.class)) {
FT_Toxin trait = type.getTrait(FT_Toxin.class);
if(living != null) {
trait.affect(living, intensity);
}
}
if(type == Fluids.XPJUICE) { if(type == Fluids.XPJUICE) {
if(e instanceof EntityPlayer) { if(e instanceof EntityPlayer) {

View File

@ -177,7 +177,7 @@ public class HazardRegistry {
HazardSystem.register(lamp_demon, makeData(RADIATION, 100_000F)); HazardSystem.register(lamp_demon, makeData(RADIATION, 100_000F));
HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F)); HazardSystem.register(cell_tritium, makeData(RADIATION, 0.001F));
HazardSystem.register(cell_sas3, makeData().addEntry(RADIATION, sas3).addEntry(BLINDING, 10F)); HazardSystem.register(cell_sas3, makeData().addEntry(RADIATION, sas3).addEntry(BLINDING, 60F));
HazardSystem.register(cell_balefire, makeData(RADIATION, 50F)); HazardSystem.register(cell_balefire, makeData(RADIATION, 50F));
HazardSystem.register(powder_balefire, makeData(RADIATION, 500F)); HazardSystem.register(powder_balefire, makeData(RADIATION, 500F));
HazardSystem.register(egg_balefire_shard, makeData(RADIATION, bf * nugget)); HazardSystem.register(egg_balefire_shard, makeData(RADIATION, bf * nugget));

View File

@ -28,6 +28,7 @@ import com.hbm.items.ItemEnums.EnumCokeType;
import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ItemEnums.EnumTarType;
import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre; import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.util.Compat;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -110,7 +111,7 @@ public class OreDictManager {
/* /*
* RADIOACTIVE * RADIOACTIVE
*/ */
public static final DictFrame U = new DictFrame("Uranium"); public static final DictFrame U = new DictFrame(Compat.isModLoaded(Compat.MOD_GT6) ? "Uraninite" : "Uranium");
public static final DictFrame U233 = new DictFrame("Uranium233", "U233"); public static final DictFrame U233 = new DictFrame("Uranium233", "U233");
public static final DictFrame U235 = new DictFrame("Uranium235", "U235"); public static final DictFrame U235 = new DictFrame("Uranium235", "U235");
public static final DictFrame U238 = new DictFrame("Uranium238", "U238"); public static final DictFrame U238 = new DictFrame("Uranium238", "U238");
@ -871,6 +872,7 @@ public class OreDictManager {
public String gem() { return GEM + groupName; } public String gem() { return GEM + groupName; }
public String crystal() { return CRYSTAL + groupName; } public String crystal() { return CRYSTAL + groupName; }
public String plate() { return PLATE + groupName; } public String plate() { return PLATE + groupName; }
public String plateTriple() { return PLATECAST + groupName; }
public String billet() { return BILLET + groupName; } public String billet() { return BILLET + groupName; }
public String block() { return BLOCK + groupName; } public String block() { return BLOCK + groupName; }
public String ore() { return ORE + groupName; } public String ore() { return ORE + groupName; }

View File

@ -31,7 +31,7 @@ public class SlotCraftingOutput extends Slot {
if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant)) if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant))
player.triggerAchievement(MainRegistry.achChemplant); player.triggerAchievement(MainRegistry.achChemplant);
if(item == Item.getItemFromBlock(ModBlocks.concrete) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos)) if(item == Item.getItemFromBlock(ModBlocks.concrete_smooth) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos))
player.triggerAchievement(MainRegistry.achConcrete); player.triggerAchievement(MainRegistry.achConcrete);
if(item == ModItems.ingot_polymer) if(item == ModItems.ingot_polymer)
player.triggerAchievement(MainRegistry.achPolymer); player.triggerAchievement(MainRegistry.achPolymer);

View File

@ -6,10 +6,16 @@ import java.util.List;
import com.hbm.inventory.fluid.trait.*; import com.hbm.inventory.fluid.trait.*;
import com.hbm.inventory.fluid.trait.FluidTraitSimple.*; import com.hbm.inventory.fluid.trait.FluidTraitSimple.*;
import com.hbm.lib.ModDamageSource;
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade; import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType; import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType; import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
import com.hbm.inventory.fluid.trait.FT_Toxin.*;
import com.hbm.render.util.EnumSymbol; import com.hbm.render.util.EnumSymbol;
import com.hbm.util.ArmorRegistry.HazardClass;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
public class Fluids { public class Fluids {
@ -123,6 +129,7 @@ public class Fluids {
protected static final List<FluidType> metaOrder = new ArrayList(); protected static final List<FluidType> metaOrder = new ArrayList();
public static final FT_Liquid LIQUID = new FT_Liquid(); public static final FT_Liquid LIQUID = new FT_Liquid();
public static final FT_Viscous VISCOUS = new FT_Viscous();
public static final FT_Gaseous_ART EVAP = new FT_Gaseous_ART(); public static final FT_Gaseous_ART EVAP = new FT_Gaseous_ART();
public static final FT_Gaseous GASEOUS = new FT_Gaseous(); public static final FT_Gaseous GASEOUS = new FT_Gaseous();
public static final FT_Plasma PLASMA = new FT_Plasma(); public static final FT_Plasma PLASMA = new FT_Plasma();
@ -154,19 +161,19 @@ public class Fluids {
SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D).addTraits(GASEOUS); SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450).setCompression(1D).addTraits(GASEOUS);
ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D).addTraits(GASEOUS); ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600).setCompression(10D).addTraits(GASEOUS);
COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); COOLANT = new FluidType("COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID); LAVA = new FluidType("LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200).addTraits(LIQUID, VISCOUS);
DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS); DEUTERIUM = new FluidType("DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS);
TRITIUM = new FluidType("TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS, new FT_VentRadiation(0.001F)); TRITIUM = new FluidType("TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), GASEOUS, new FT_VentRadiation(0.001F));
OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID); OIL = new FluidType("OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(new FT_Flammable(10_000), LIQUID); HOTOIL = new FluidType("HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID); HEAVYOIL = new FluidType("HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x513F39)).addTraits(new FT_Flammable(50_000), new FT_Combustible(FuelGrade.LOW, 25_000), LIQUID, VISCOUS);
BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID); BITUMEN = new FluidType("BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5A5877)).addTraits(LIQUID, VISCOUS);
SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID); SMEAR = new FluidType("SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x624F3B)).addTraits(new FT_Flammable(50_000), LIQUID, VISCOUS);
HEATINGOIL = new FluidType("HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x694235)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.LOW, 100_000), LIQUID); HEATINGOIL = new FluidType("HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x694235)).addTraits(new FT_Flammable(150_000), new FT_Combustible(FuelGrade.LOW, 100_000), LIQUID, VISCOUS);
RECLAIMED = new FluidType("RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF65723)).addTraits(new FT_Flammable(100_000), new FT_Combustible(FuelGrade.LOW, 200_000), LIQUID); RECLAIMED = new FluidType("RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF65723)).addTraits(new FT_Flammable(100_000), new FT_Combustible(FuelGrade.LOW, 200_000), LIQUID, VISCOUS);
PETROIL = new FluidType("PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2369F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 300_000), LIQUID); PETROIL = new FluidType("PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2369F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 300_000), LIQUID);
LUBRICANT = new FluidType("LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF1CC05)).addTraits(LIQUID); LUBRICANT = new FluidType("LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xF1CC05)).addTraits(LIQUID);
NAPHTHA = new FluidType("NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID); NAPHTHA = new FluidType("NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS);
DIESEL = new FluidType("DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 500_000), LIQUID); DIESEL = new FluidType("DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 500_000), LIQUID);
LIGHTOIL = new FluidType("LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID); LIGHTOIL = new FluidType("LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID);
KEROSENE = new FluidType("KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF377D)).addTraits(new FT_Flammable(300_000), new FT_Combustible(FuelGrade.AERO, 1_250_000), LIQUID); KEROSENE = new FluidType("KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF377D)).addTraits(new FT_Flammable(300_000), new FT_Combustible(FuelGrade.AERO, 1_250_000), LIQUID);
@ -183,20 +190,20 @@ public class Fluids {
AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); AMAT = new FluidType("AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS);
ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS); ASCHRAB = new FluidType("ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(ANTI, GASEOUS);
ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID); ACID = new FluidType("ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(new FT_Corrosive(40), LIQUID);
WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID); WATZ = new FluidType("WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(60), new FT_VentRadiation(0.1F), LIQUID, VISCOUS);
CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID); CRYOGEL = new FluidType("CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170).addTraits(LIQUID, VISCOUS);
HYDROGEN = new FluidType("HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setTemp(-260).addContainers(new CD_Gastank(0x4286f4, 0xffffff)).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), LIQUID, EVAP); HYDROGEN = new FluidType("HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setTemp(-260).addContainers(new CD_Gastank(0x4286f4, 0xffffff)).addTraits(new FT_Flammable(5_000), new FT_Combustible(FuelGrade.HIGH, 10_000), LIQUID, EVAP);
OXYGEN = new FluidType("OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC).setTemp(-100).addContainers(new CD_Gastank(0x98bdf9, 0xffffff)).addTraits(LIQUID, EVAP); OXYGEN = new FluidType("OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC).setTemp(-100).addContainers(new CD_Gastank(0x98bdf9, 0xffffff)).addTraits(LIQUID, EVAP);
XENON = new FluidType("XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT).addContainers(new CD_Gastank(0x8C21FF, 0x303030)).addTraits(GASEOUS); XENON = new FluidType("XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT).addContainers(new CD_Gastank(0x8C21FF, 0x303030)).addTraits(GASEOUS);
BALEFIRE = new FluidType("BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(new FT_Corrosive(50), new FT_Flammable(1_000_000), new FT_Combustible(FuelGrade.HIGH, 2_500_000), LIQUID); BALEFIRE = new FluidType("BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(new FT_Corrosive(50), new FT_Flammable(1_000_000), new FT_Combustible(FuelGrade.HIGH, 2_500_000), LIQUID, VISCOUS);
MERCURY = new FluidType("MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Poison(false, 2)); MERCURY = new FluidType("MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, new FT_Poison(false, 2));
PAIN = new FluidType("PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(30), new FT_Poison(true, 2), LIQUID); PAIN = new FluidType("PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(30), new FT_Poison(true, 2), LIQUID, VISCOUS);
WASTEFLUID = new FluidType("WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, LIQUID); WASTEFLUID = new FluidType("WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, LIQUID, VISCOUS);
WASTEGAS = new FluidType("WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, GASEOUS); WASTEGAS = new FluidType("WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(new FT_VentRadiation(0.5F), NOCON, GASEOUS);
GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID); GASOLINE = new FluidType("GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F7747)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_000_000), LIQUID);
COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID); COALGAS = new FluidType("COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 150_000), LIQUID);
SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).setCompression(1D).addTraits(NOCON, GASEOUS); SPENTSTEAM = new FluidType("SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).setCompression(1D).addTraits(NOCON, GASEOUS);
FRACKSOL = new FluidType("FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addContainers(new CD_Canister(0x4F887F)).addTraits(new FT_Corrosive(15), new FT_Poison(false, 0), LIQUID); FRACKSOL = new FluidType("FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addContainers(new CD_Canister(0x4F887F)).addTraits(new FT_Corrosive(15), new FT_Poison(false, 0), LIQUID, VISCOUS);
PLASMA_DT = new FluidType("PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(NOCON, NOID, PLASMA); PLASMA_DT = new FluidType("PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(NOCON, NOID, PLASMA);
PLASMA_HD = new FluidType("PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(NOCON, NOID, PLASMA); PLASMA_HD = new FluidType("PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(NOCON, NOID, PLASMA);
PLASMA_HT = new FluidType("PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(NOCON, NOID, PLASMA); PLASMA_HT = new FluidType("PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(NOCON, NOID, PLASMA);
@ -205,20 +212,20 @@ public class Fluids {
CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); CARBONDIOXIDE = new FluidType("CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS);
PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA); PLASMA_DH3 = new FluidType("PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(NOCON, NOID, PLASMA);
HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS); HELIUM3 = new FluidType("HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT).addTraits(GASEOUS);
DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID); DEATH = new FluidType("DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(new FT_Corrosive(80), new FT_Poison(true, 4), LEADCON, LIQUID, VISCOUS);
ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID); ETHANOL = new FluidType("ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xEAFFF3)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.HIGH, 200_000), LIQUID);
HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); HEAVYWATER = new FluidType("HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID); CRACKOIL = new FluidType("CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID); COALOIL = new FluidType("COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID); HOTCRACKOIL = new FluidType("HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350).addContainers(new CD_Canister(0x424242)).addTraits(new FT_Flammable(10_000), LIQUID, VISCOUS);
NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID); NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x5F6D44)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 200_000), LIQUID, VISCOUS);
LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID); LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xB46B52)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.MEDIUM, 500_000), LIQUID);
DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID); DIESEL_CRACK = new FluidType("DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xFF2C2C)).addTraits(new FT_Flammable(200_000), new FT_Combustible(FuelGrade.HIGH, 450_000), LIQUID);
AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID); AROMATICS = new FluidType("AROMATICS", 0x68A09A, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(25_000), LIQUID, VISCOUS);
UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS); //acetylene burns as hot as satan's asshole UNSATURATEDS = new FluidType("UNSATURATEDS", 0x628FAE, 1, 4, 1, EnumSymbol.NONE).addTraits(new FT_Flammable(1_000_000), GASEOUS); //acetylene burns as hot as satan's asshole
SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID); SALIENT = new FluidType("SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID, VISCOUS);
XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); XPJUICE = new FluidType("XPJUICE", 0xBBFF09, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); ENDERJUICE = new FluidType("ENDERJUICE", 0x127766, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID); PETROIL_LEADED = new FluidType("PETROIL_LEADED", 0x44413d, 1, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2331F6)).addTraits(new FT_Flammable(125_000), new FT_Combustible(FuelGrade.MEDIUM, 450_000), LIQUID);
GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID); GASOLINE_LEADED = new FluidType("GASOLINE_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x2F775A)).addTraits(new FT_Flammable(400_000), new FT_Combustible(FuelGrade.HIGH, 1_500_000), LIQUID);
COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID); COALGAS_LEADED = new FluidType("COALGAS_LEADED", 0x445772, 1, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x1E155F)).addTraits(new FT_Flammable(75_000), new FT_Combustible(FuelGrade.MEDIUM, 250_000), LIQUID);
@ -226,32 +233,31 @@ public class Fluids {
COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID); COOLANT_HOT = new FluidType("COOLANT_HOT", 0x99525E, 1, 0, 0, EnumSymbol.NONE).setTemp(600).addTraits(LIQUID);
MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID); MUG = new FluidType("MUG", 0x4B2D28, 0, 0, 0, EnumSymbol.NONE).addTraits(DELICIOUS, LIQUID);
MUG_HOT = new FluidType("MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setTemp(500).addTraits(DELICIOUS, LIQUID); MUG_HOT = new FluidType("MUG_HOT", 0x6B2A20, 0, 0, 0, EnumSymbol.NONE).setTemp(500).addTraits(DELICIOUS, LIQUID);
WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID); WOODOIL = new FluidType("WOODOIL", 0x847D54, 2, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xBF7E4F)).addTraits(LIQUID, VISCOUS);
COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID); COALCREOSOTE = new FluidType("COALCREOSOTE", 0x51694F, 3, 2, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x285A3F)).addTraits(LIQUID, VISCOUS);
SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID); SEEDSLURRY = new FluidType("SEEDSLURRY", 0x7CC35E, 0, 0, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0x7CC35E)).addTraits(LIQUID, VISCOUS);
NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60)); NITRIC_ACID = new FluidType("NITRIC_ACID", 0xBB7A1E, 3, 0, 2, EnumSymbol.OXIDIZER).addTraits(LIQUID, new FT_Corrosive(60));
SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30)); SOLVENT = new FluidType("SOLVENT", 0xE4E3EF, 2, 3, 0, EnumSymbol.NONE).addContainers(new CD_Canister(0xE4E3EF)).addTraits(LIQUID, new FT_Corrosive(30));
BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); BLOOD = new FluidType("BLOOD", 0xB22424, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID).setTemp(666); //it's funny because it's the satan number BLOOD_HOT = new FluidType("BLOOD_HOT", 0xF22419, 3, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).setTemp(666); //it's funny because it's the satan number
SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS); SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addContainers(new CD_Gastank(0xFFFFFF, 0x131313)).addTraits(GASEOUS);
OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS);
RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F));
CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1)); CHLORINE = new FluidType("CHLORINE", 0xBAB572, 3, 0, 0, EnumSymbol.OXIDIZER).addContainers(new CD_Gastank(0xBAB572, 0x887B34)).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1));
HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0x513F39)); HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x513F39));
REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xD180D6)); REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xD180D6));
LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xB46B52)); LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xB46B52));
SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addContainers(new CD_Gastank(0xC9BE0D, 0x303030)).addTraits(GASEOUS, new FT_Corrosive(10), new FT_Poison(false, 1)); SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addContainers(new CD_Gastank(0xC9BE0D, 0x303030)).addTraits(GASEOUS, new FT_Corrosive(10), new FT_Poison(false, 1));
XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xA380D6)); XYLENE = new FluidType("XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0xA380D6));
HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0x694235)); HEATINGOIL_VACUUM = new FluidType("HEATINGOIL_VACUUM", 0x211D06, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS).addContainers(new CD_Canister(0x694235));
DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500)); DIESEL_REFORM = new FluidType("DIESEL_REFORM", 0xCDC3C6, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500));
DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500)); DIESEL_CRACK_REFORM = new FluidType("DIESEL_CRACK_REFORM",0xCDC3CC, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFFC500));
KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFF377D)); KEROSENE_REFORM = new FluidType("KEROSENE_REFORM", 0xFFA5F3, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID).addContainers(new CD_Canister(0xFF377D));
REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS); REFORMGAS = new FluidType("REFORMGAS", 0x6362AE, 1, 4, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0x9392FF, 0xFFB992)).addTraits(GASEOUS);
COLLOID = new FluidType("COLLOID", 0x787878, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID); COLLOID = new FluidType("COLLOID", 0x787878, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS); PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS);
MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS); MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS);
IONGEL = new FluidType(103, "IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID); IONGEL = new FluidType(103, "IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS);
// ^ ^ ^ ^ ^ ^ ^ ^ // ^ ^ ^ ^ ^ ^ ^ ^
//ADD NEW FLUIDS HERE //ADD NEW FLUIDS HERE
@ -376,6 +382,11 @@ public class Fluids {
metaOrder.add(PLASMA_XM); metaOrder.add(PLASMA_XM);
metaOrder.add(PLASMA_BF); metaOrder.add(PLASMA_BF);
CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false)));
PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_CHLORINE, false)));
MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false))
.addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0))));
double eff_steam_boil = 1.0D; double eff_steam_boil = 1.0D;
double eff_steam_heatex = 0.25D; double eff_steam_heatex = 0.25D;

View File

@ -4,6 +4,7 @@ import java.util.List;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
@Deprecated //use FT_Toxin instead
public class FT_Poison extends FluidTrait { public class FT_Poison extends FluidTrait {
protected boolean withering = false; protected boolean withering = false;

View File

@ -0,0 +1,130 @@
package com.hbm.inventory.fluid.trait;
import java.util.ArrayList;
import java.util.List;
import com.hbm.util.ArmorRegistry;
import com.hbm.util.ArmorUtil;
import com.hbm.util.I18nUtil;
import com.hbm.util.ArmorRegistry.HazardClass;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.util.StringUtils;
public class FT_Toxin extends FluidTrait {
public List<ToxinEntry> entries = new ArrayList();
public FT_Toxin addEntry(ToxinEntry entry) {
entries.add(entry);
return this;
}
@Override
public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.LIGHT_PURPLE + "[Toxin]");
for(ToxinEntry entry : entries) {
entry.addInfo(info);
}
}
public void affect(EntityLivingBase entity, double intensity) {
}
public static abstract class ToxinEntry {
public HazardClass clazz;
public boolean fullBody = false;
public ToxinEntry(HazardClass clazz, boolean fullBody) {
this.clazz = clazz;
this.fullBody = fullBody;
}
public boolean isProtected(EntityLivingBase entity) {
boolean hasMask = clazz == null;
boolean hasSuit = !fullBody;
if(clazz != null && ArmorRegistry.hasAllProtection(entity, 3, clazz)) {
ArmorUtil.damageGasMaskFilter(entity, 1);
hasMask = true;
}
if(fullBody && ArmorUtil.checkForHazmat(entity)) {
hasSuit = true;
}
return hasMask && hasSuit;
}
public abstract void poison(EntityLivingBase entity, double intensity);
public abstract void addInfo(List<String> info);
}
public static class ToxinDirectDamage extends ToxinEntry {
public DamageSource damage;
public float amount;
public int delay;
public ToxinDirectDamage(DamageSource damage, float amount, int delay, HazardClass clazz, boolean fullBody) {
super(clazz, fullBody);
this.damage = damage;
this.amount = amount;
this.delay = delay;
}
@Override
public void poison(EntityLivingBase entity, double intensity) {
if(isProtected(entity)) return;
if(delay == 0 || entity.worldObj.getTotalWorldTime() % delay == 0) {
entity.attackEntityFrom(damage, (float) (amount * intensity));
}
}
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" : "") + ": " + EnumChatFormatting.YELLOW + String.format("%,.1f", amount * 20 / delay) + " DPS");
}
}
public static class ToxinEffects extends ToxinEntry {
public List<PotionEffect> effects = new ArrayList();
public ToxinEffects(HazardClass clazz, boolean fullBody) {
super(clazz, fullBody);
}
public ToxinEffects add(PotionEffect... effs) {
for(PotionEffect eff : effs) this.effects.add(eff);
return this;
}
@Override
public void poison(EntityLivingBase entity, double intensity) {
for(PotionEffect eff : effects) {
entity.addPotionEffect(new PotionEffect(eff.getPotionID(), (int) (eff.getDuration() * intensity), eff.getAmplifier()));
}
}
@Override
public void addInfo(List<String> info) {
info.add(EnumChatFormatting.YELLOW + "- " + I18nUtil.resolveKey(clazz.lang) + (fullBody ? EnumChatFormatting.RED + " (requires hazmat suit)" + EnumChatFormatting.YELLOW : "") + ":");
for(PotionEffect eff : effects) {
info.add(EnumChatFormatting.YELLOW + " - " + I18nUtil.resolveKey(eff.getEffectName()) + (eff.getAmplifier() > 0 ? " " + StatCollector.translateToLocal("potion.potency." + eff.getAmplifier()).trim() : "") + " " + StringUtils.ticksToElapsedTime(eff.getDuration()));
}
}
}
}

View File

@ -12,7 +12,8 @@ public class FluidTraitSimple {
} }
} }
public static class FT_Gaseous_ART extends FluidTrait { //at room temperature, for cryogenic hydrogen for example /** gaseous at room temperature, for cryogenic hydrogen for example */
public static class FT_Gaseous_ART extends FluidTrait {
@Override public void addInfoHidden(List<String> info) { @Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[Gaseous at Room Temperature]"); info.add(EnumChatFormatting.BLUE + "[Gaseous at Room Temperature]");
} }
@ -24,6 +25,13 @@ public class FluidTraitSimple {
} }
} }
/** to viscous to be sprayed/turned into a mist */
public static class FT_Viscous extends FluidTrait {
@Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.BLUE + "[Viscous]");
}
}
public static class FT_Plasma extends FluidTrait { public static class FT_Plasma extends FluidTrait {
@Override public void addInfoHidden(List<String> info) { @Override public void addInfoHidden(List<String> info) {
info.add(EnumChatFormatting.LIGHT_PURPLE + "[Plasma]"); info.add(EnumChatFormatting.LIGHT_PURPLE + "[Plasma]");

View File

@ -4,11 +4,18 @@ import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerWatz; import com.hbm.inventory.container.ContainerWatz;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.packet.NBTControlPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.util.GaugeUtil;
import com.hbm.render.util.GaugeUtil.Gauge;
import com.hbm.tileentity.machine.TileEntityWatz; import com.hbm.tileentity.machine.TileEntityWatz;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
public class GUIWatz extends GuiInfoContainer { public class GUIWatz extends GuiInfoContainer {
@ -40,16 +47,31 @@ public class GUIWatz extends GuiInfoContainer {
protected void drawGuiContainerForegroundLayer(int i, int j) { protected void drawGuiContainerForegroundLayer(int i, int j) {
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 93, 4210752);
String flux = "" + ((int)(watz.fluxDisplay * 10)) / 10.0D; double scale = 1.25;
this.fontRendererObj.drawString(flux, 159 - this.fontRendererObj.getStringWidth(flux), 105, 0x00ff00); String flux = String.format("%,.1f", watz.fluxDisplay);
GL11.glScaled(1 / scale, 1 / scale, 1);
this.fontRendererObj.drawString(flux, (int) (161 * scale - this.fontRendererObj.getStringWidth(flux)), (int)(107 * scale), 0x00ff00);
GL11.glScaled(scale, scale, 1);
}
@Override
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
if(guiLeft + 142 <= x && guiLeft + 142 + 18 > x && guiTop + 70 < y && guiTop + 70 + 18 >= y) {
NBTTagCompound control = new NBTTagCompound();
control.setBoolean("lock", true);
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, watz.xCoord, watz.yCoord, watz.zCoord));
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1F));
}
} }
@Override @Override
protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) { protected void drawGuiContainerBackgroundLayer(float interp, int x, int y) {
Minecraft.getMinecraft().getTextureManager().bindTexture(texture); Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
//float col = (float) (Math.sin(System.currentTimeMillis() / 500D) * 0.5 + 0.5); float col = MathHelper.clamp_float(1 - (float) Math.log(watz.heat / 100_000D + 1) * 0.4F, 0F, 1F);
//GL11.glColor4f(1.0F, col, col, 1.0F); GL11.glColor4f(1.0F, col, col, 1.0F);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, 131, 122); drawTexturedModalRect(guiLeft, guiTop, 0, 0, 131, 122);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
@ -59,6 +81,11 @@ public class GUIWatz extends GuiInfoContainer {
drawTexturedModalRect(guiLeft + 105, guiTop + 96, 185, 26, 30, 26); drawTexturedModalRect(guiLeft + 105, guiTop + 96, 185, 26, 30, 26);
drawTexturedModalRect(guiLeft + 9, guiTop + 96, 184, 0, 26, 26); drawTexturedModalRect(guiLeft + 9, guiTop + 96, 184, 0, 26, 26);
if(watz.isOn) drawTexturedModalRect(guiLeft + 147, guiTop + 8, 176, 0, 8, 8);
if(watz.isLocked) drawTexturedModalRect(guiLeft + 142, guiTop + 70, 210, 0, 18, 18);
GaugeUtil.renderGauge(Gauge.ROUND_SMALL, guiLeft + 13, guiTop + 100, this.zLevel, 1 - col);
watz.tanks[0].renderTank(guiLeft + 143, guiTop + 69, this.zLevel, 4, 43); watz.tanks[0].renderTank(guiLeft + 143, guiTop + 69, this.zLevel, 4, 43);
watz.tanks[1].renderTank(guiLeft + 149, guiTop + 69, this.zLevel, 4, 43); watz.tanks[1].renderTank(guiLeft + 149, guiTop + 69, this.zLevel, 4, 43);
watz.tanks[2].renderTank(guiLeft + 155, guiTop + 69, this.zLevel, 4, 43); watz.tanks[2].renderTank(guiLeft + 155, guiTop + 69, this.zLevel, 4, 43);

View File

@ -304,11 +304,8 @@ public class AssemblerRecipes {
makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250);
makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150); makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate528(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.magnetron, 1), new ComparableStack(ModItems.wire_advanced_alloy, 4), },150);
makeRecipe(new ComparableStack(ModBlocks.watz_element, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.rod_empty, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 2), new ComparableStack(ModItems.wire_advanced_alloy, 4), },200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(ALLOY.plate(), 4), new ComparableStack(ModItems.rod_empty, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 2), new ComparableStack(ModItems.wire_advanced_alloy, 4), },200);
makeRecipe(new ComparableStack(ModBlocks.watz_control, 1), new AStack[] {new OreDictStack(W.ingot(), 4), new OreDictStack(ALLOY.ingot(), 4), new OreDictStack(PB.ingot(), 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 4), new ComparableStack(ModItems.wire_advanced_alloy, 2), },250);
makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 1), new AStack[] {new OreDictStack(W.ingot(), 2), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(KNO.dust(), 4), },300); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 1), new AStack[] {new OreDictStack(W.ingot(), 2), new OreDictStack(STEEL.ingot(), 2), new OreDictStack(KNO.dust(), 4), },300);
makeRecipe(new ComparableStack(ModBlocks.watz_end, 1), new AStack[] {new OreDictStack(W.ingot(), 2), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.ingot(), 3), },150); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateTriple()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plate(), 9), }, 100);
makeRecipe(new ComparableStack(ModBlocks.watz_hatch, 1), new AStack[] {new ComparableStack(ModBlocks.reinforced_brick, 1), new OreDictStack(TI.plate(), 6), },200);
makeRecipe(new ComparableStack(ModBlocks.watz_conductor, 1), new AStack[] {new OreDictStack(W.ingot(), 2), new OreDictStack(PB.ingot(), 2), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.wire_red_copper, 6), new ComparableStack(ModItems.wire_magnetized_tungsten, 2), new ComparableStack(ModItems.fuse, 4), },250);
makeRecipe(new ComparableStack(ModBlocks.watz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_schrabidium, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), },350); makeRecipe(new ComparableStack(ModBlocks.watz_core, 1), new AStack[] {new ComparableStack(ModBlocks.block_meteor, 1), new ComparableStack(ModItems.circuit_gold, 5), new ComparableStack(ModItems.circuit_schrabidium, 2), new ComparableStack(ModItems.wire_magnetized_tungsten, 12), },350);
makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_hatch, 1), new AStack[] {new OreDictStack(W.ingot(), 6), new OreDictStack(CMB.plate(), 4), },250);
makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250); makeRecipe(new ComparableStack(ModBlocks.fwatz_conductor, 1), new AStack[] {new OreDictStack(CMB.plate(), 2), new ComparableStack(ModItems.coil_magnetized_tungsten, 5), },250);

View File

@ -10,6 +10,7 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import static com.hbm.inventory.OreDictManager.*;
import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
@ -41,8 +42,8 @@ public class CyclotronRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustPolonium"), new ItemStack(ModItems.powder_astatine), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustPolonium"), new ItemStack(ModItems.powder_astatine), liA);
makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustLanthanium"), new ItemStack(ModItems.powder_cerium), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustLanthanium"), new ItemStack(ModItems.powder_cerium), liA);
makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustActinium"), new ItemStack(ModItems.powder_thorium), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustActinium"), new ItemStack(ModItems.powder_thorium), liA);
makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustUranium"), new ItemStack(ModItems.powder_neptunium), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack(U.dust()), new ItemStack(ModItems.powder_neptunium), liA);
makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack("dustNeptunium"), new ItemStack(ModItems.powder_plutonium), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new OreDictStack(NP237.dust()), new ItemStack(ModItems.powder_plutonium), liA);
makeRecipe(new ComparableStack(ModItems.part_lithium), new ComparableStack(ModItems.powder_reiium), new ItemStack(ModItems.powder_weidanium), liA); makeRecipe(new ComparableStack(ModItems.part_lithium), new ComparableStack(ModItems.powder_reiium), new ItemStack(ModItems.powder_weidanium), liA);
/// LITHIUM END /// /// LITHIUM END ///
@ -68,7 +69,7 @@ public class CyclotronRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_lanthanium), caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_lanthanium), caA);
makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_neodymium), new ItemStack(ModItems.powder_gold), caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_neodymium), new ItemStack(ModItems.powder_gold), caA);
makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.ingot_mercury), new ItemStack(ModItems.powder_polonium), caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.ingot_mercury), new ItemStack(ModItems.powder_polonium), caA);
makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_lead), new ItemStack(ModItems.powder_ra226),caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new OreDictStack(PB.dust()), new ItemStack(ModItems.powder_ra226),caA);
makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_astatine), new ItemStack(ModItems.powder_actinium), caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_astatine), new ItemStack(ModItems.powder_actinium), caA);
makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_australium), new ItemStack(ModItems.powder_verticium), caA); makeRecipe(new ComparableStack(ModItems.part_carbon), new ComparableStack(ModItems.powder_australium), new ItemStack(ModItems.powder_verticium), caA);
/// CARBON END /// /// CARBON END ///
@ -93,7 +94,7 @@ public class CyclotronRecipes extends SerializableRecipe {
int plA = 100; int plA = 100;
makeRecipe(new ComparableStack(ModItems.part_plutonium), new OreDictStack("dustPhosphorus"), new ItemStack(ModItems.powder_tennessine), plA); makeRecipe(new ComparableStack(ModItems.part_plutonium), new OreDictStack("dustPhosphorus"), new ItemStack(ModItems.powder_tennessine), plA);
makeRecipe(new ComparableStack(ModItems.part_plutonium), new OreDictStack("dustPlutonium"), new ItemStack(ModItems.powder_tennessine), plA); makeRecipe(new ComparableStack(ModItems.part_plutonium), new OreDictStack(PU.dust()), new ItemStack(ModItems.powder_tennessine), plA);
makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.powder_tennessine), new ItemStack(ModItems.powder_reiium), plA); makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.powder_tennessine), new ItemStack(ModItems.powder_reiium), plA);
makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.pellet_charged), new ItemStack(ModItems.nugget_schrabidium), 1000); makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.pellet_charged), new ItemStack(ModItems.nugget_schrabidium), 1000);
makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.powder_unobtainium), new ItemStack(ModItems.powder_daffergon), plA); makeRecipe(new ComparableStack(ModItems.part_plutonium), new ComparableStack(ModItems.powder_unobtainium), new ItemStack(ModItems.powder_daffergon), plA);

View File

@ -50,9 +50,9 @@ public class MixerRecipes extends SerializableRecipe {
recipes.put(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); recipes.put(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500)));
recipes.put(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500))); recipes.put(Fluids.OXYHYDROGEN, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.HYDROGEN, 500)).setStack2(new FluidStack(Fluids.OXYGEN, 500)));
recipes.put(Fluids.PETROIL_LEADED, new MixerRecipe(1_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 800)).setSolid(new ComparableStack(ModItems.antiknock))); recipes.put(Fluids.PETROIL_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.PETROIL, 10_000)).setSolid(new ComparableStack(ModItems.antiknock)));
recipes.put(Fluids.GASOLINE_LEADED, new MixerRecipe(1_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 800)).setSolid(new ComparableStack(ModItems.antiknock))); recipes.put(Fluids.GASOLINE_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.GASOLINE, 10_000)).setSolid(new ComparableStack(ModItems.antiknock)));
recipes.put(Fluids.COALGAS_LEADED, new MixerRecipe(1_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 800)).setSolid(new ComparableStack(ModItems.antiknock))); recipes.put(Fluids.COALGAS_LEADED, new MixerRecipe(12_000, 40).setStack1(new FluidStack(Fluids.COALGAS, 10_000)).setSolid(new ComparableStack(ModItems.antiknock)));
recipes.put(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); recipes.put(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100)));
recipes.put(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); recipes.put(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100)));

View File

@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import static com.hbm.inventory.OreDictManager.*;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
@ -29,8 +30,8 @@ public class SILEXRecipes {
public static void register() { public static void register() {
itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium)); itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium));
dictTranslation.put("dustUranium", "ingotUranium"); dictTranslation.put(U.dust(), U.ingot());
recipes.put("ingotUranium", new SILEXRecipe(900, 100, EnumWavelengths.UV) recipes.put(U.ingot(), new SILEXRecipe(900, 100, EnumWavelengths.UV)
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u235), 1))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 11)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_u238), 11))
); );
@ -46,8 +47,8 @@ public class SILEXRecipes {
); );
itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.PUF6.getID()), new ComparableStack(ModItems.ingot_plutonium)); itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.PUF6.getID()), new ComparableStack(ModItems.ingot_plutonium));
dictTranslation.put("dustPlutonium", "ingotPlutonium"); dictTranslation.put(PU.dust(), PU.ingot());
recipes.put("ingotPlutonium", new SILEXRecipe(900, 100, 2) recipes.put(PU.ingot(), new SILEXRecipe(900, 100, 2)
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 3)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu238), 3))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 4)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu239), 4))
.addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 2)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pu240), 2))

View File

@ -444,7 +444,7 @@ public class AnvilRecipes {
new AStack[] {new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1)}, new AStack[] {new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1)},
new AnvilOutput(new ItemStack(ModItems.plate_bismuth, 1))).setTier(4)); new AnvilOutput(new ItemStack(ModItems.plate_bismuth, 1))).setTier(4));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 2), new OreDictStack(VOLCANIC.gem(), 1)}, new AStack[] {new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new ComparableStack(ModItems.ingot_osmiridium)},
new AnvilOutput(new ItemStack(ModItems.plate_euphemium, 4))).setTier(6)); new AnvilOutput(new ItemStack(ModItems.plate_euphemium, 4))).setTier(6));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1)}, new AStack[] {new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1)},

View File

@ -0,0 +1,14 @@
package com.hbm.items;
import com.hbm.render.anim.BusAnimation;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@SideOnly(Side.CLIENT)
public interface IAnimatedItem {
public BusAnimation getAnimation(NBTTagCompound data, ItemStack stack);
}

View File

@ -1802,6 +1802,7 @@ public class ModItems {
public static Item chemistry_set_boron; public static Item chemistry_set_boron;
public static Item blowtorch; public static Item blowtorch;
public static Item acetylene_torch; public static Item acetylene_torch;
public static Item boltgun;
public static Item overfuse; public static Item overfuse;
public static Item arc_electrode; public static Item arc_electrode;
public static Item arc_electrode_burnt; public static Item arc_electrode_burnt;
@ -4408,6 +4409,7 @@ public class ModItems {
chemistry_set_boron = new ItemCraftingDegradation(0).setUnlocalizedName("chemistry_set_boron"); chemistry_set_boron = new ItemCraftingDegradation(0).setUnlocalizedName("chemistry_set_boron");
blowtorch = new ItemBlowtorch().setUnlocalizedName("blowtorch"); blowtorch = new ItemBlowtorch().setUnlocalizedName("blowtorch");
acetylene_torch = new ItemBlowtorch().setUnlocalizedName("acetylene_torch"); acetylene_torch = new ItemBlowtorch().setUnlocalizedName("acetylene_torch");
boltgun = new ItemBoltgun().setUnlocalizedName("boltgun");
overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse");
arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode"); arc_electrode = new ItemCustomLore().setUnlocalizedName("arc_electrode").setMaxDamage(250).setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode");
arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt"); arc_electrode_burnt = new Item().setUnlocalizedName("arc_electrode_burnt").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":arc_electrode_burnt");
@ -6431,15 +6433,12 @@ public class ModItems {
GameRegistry.registerItem(chemistry_set_boron, chemistry_set_boron.getUnlocalizedName()); GameRegistry.registerItem(chemistry_set_boron, chemistry_set_boron.getUnlocalizedName());
GameRegistry.registerItem(blowtorch, blowtorch.getUnlocalizedName()); GameRegistry.registerItem(blowtorch, blowtorch.getUnlocalizedName());
GameRegistry.registerItem(acetylene_torch, acetylene_torch.getUnlocalizedName()); GameRegistry.registerItem(acetylene_torch, acetylene_torch.getUnlocalizedName());
GameRegistry.registerItem(boltgun, boltgun.getUnlocalizedName());
GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName()); GameRegistry.registerItem(overfuse, overfuse.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode, arc_electrode.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode_burnt, arc_electrode_burnt.getUnlocalizedName());
GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName()); GameRegistry.registerItem(arc_electrode_desh, arc_electrode_desh.getUnlocalizedName());
//Particle Collider Items
//GameRegistry.registerItem(crystal_energy, crystal_energy.getUnlocalizedName());
//GameRegistry.registerItem(pellet_coolant, pellet_coolant.getUnlocalizedName());
//Particle Collider Fuel //Particle Collider Fuel
GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName()); GameRegistry.registerItem(part_lithium, part_lithium.getUnlocalizedName());
GameRegistry.registerItem(part_beryllium, part_beryllium.getUnlocalizedName()); GameRegistry.registerItem(part_beryllium, part_beryllium.getUnlocalizedName());

View File

@ -1,6 +1,7 @@
package com.hbm.items.machine; package com.hbm.items.machine;
import java.util.List; import java.util.List;
import java.util.Locale;
import com.hbm.items.ItemEnumMulti; import com.hbm.items.ItemEnumMulti;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
@ -37,14 +38,16 @@ public class ItemWatzPellet extends ItemEnumMulti {
SCHRABIDIUM( 0x32FFFF, 0x005C5C, 2_000, 10D, new FunctionLogarithmic(10), null, null), SCHRABIDIUM( 0x32FFFF, 0x005C5C, 2_000, 10D, new FunctionLogarithmic(10), null, null),
HES( 0x66DCD6, 0x023933, 1_500, 10D, null, null, null), HES( 0x66DCD6, 0x023933, 1_500, 10D, null, null, null),
LES( 0xABB4A8, 0x0C1105, 500, 10D, null, null, null),
MES( 0xCBEADF, 0x28473C, 1_000, 10D, null, null, null), MES( 0xCBEADF, 0x28473C, 1_000, 10D, null, null, null),
LES( 0xABB4A8, 0x0C1105, 500, 10D, null, null, null),
HEN( 0xA6B2A6, 0x030F03, 0, 10D, null, null, null), HEN( 0xA6B2A6, 0x030F03, 0, 10D, null, null, null),
MEU( 0xC1C7BD, 0x2B3227, 0, 10D, null, null, null), MEU( 0xC1C7BD, 0x2B3227, 0, 10D, null, null, null),
MEP( 0x9AA3A0, 0x111A17, 0, 10D, null, null, null), MEP( 0x9AA3A0, 0x111A17, 0, 10D, null, null, null),
LEAD( 0xA6A6B2, 0x03030F, 0, 0, null, null, new FunctionSqrt(10)), //standard absorber, negative coefficient LEAD( 0xA6A6B2, 0x03030F, 0, 0, null, null, new FunctionSqrt(10)), //standard absorber, negative coefficient
BORON( 0xBDC8D2, 0x29343E, 0, 0, null, null, new FunctionLinear(10)), //improved absorber, linear BORON( 0xBDC8D2, 0x29343E, 0, 0, null, null, new FunctionLinear(10)), //improved absorber, linear
DU( 0xC1C7BD, 0x2B3227, 0, 0, null, null, new FunctionQuadratic(1D, 1D).withDiv(100)); //absorber with positive coefficient DU( 0xC1C7BD, 0x2B3227, 0, 0, null, null, new FunctionQuadratic(1D, 1D).withDiv(100)), //absorber with positive coefficient
NQD( 0x4B4B4B, 0x121212, 0, 0, null, null, null),
NQR( 0x2D2D2D, 0x0B0B0B, 0, 0, null, null, null);
public double yield = 1_000_000_000; public double yield = 1_000_000_000;
public int colorLight; public int colorLight;
@ -121,6 +124,8 @@ public class ItemWatzPellet extends ItemEnumMulti {
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
EnumWatzType num = EnumUtil.grabEnumSafely(EnumWatzType.class, stack.getItemDamage()); EnumWatzType num = EnumUtil.grabEnumSafely(EnumWatzType.class, stack.getItemDamage());
list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%");
String color = EnumChatFormatting.GOLD + ""; String color = EnumChatFormatting.GOLD + "";
String reset = EnumChatFormatting.RESET + ""; String reset = EnumChatFormatting.RESET + "";

View File

@ -28,6 +28,7 @@ import net.minecraft.world.World;
public class ItemBlowtorch extends Item implements IFillableItem { public class ItemBlowtorch extends Item implements IFillableItem {
public ItemBlowtorch() { public ItemBlowtorch() {
this.setMaxStackSize(1);
this.setFull3D(); this.setFull3D();
this.setCreativeTab(MainRegistry.controlTab); this.setCreativeTab(MainRegistry.controlTab);
} }

View File

@ -0,0 +1,78 @@
package com.hbm.items.tool;
import com.hbm.items.IAnimatedItem;
import com.hbm.lib.RefStrings;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.render.anim.BusAnimation;
import com.hbm.render.anim.BusAnimationKeyframe;
import com.hbm.render.anim.BusAnimationSequence;
import api.hbm.block.IToolable;
import api.hbm.block.IToolable.ToolType;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class ItemBoltgun extends Item implements IAnimatedItem {
public ItemBoltgun() {
this.setMaxStackSize(1);
}
@Override
public Item setUnlocalizedName(String unlocalizedName) {
super.setUnlocalizedName(unlocalizedName);
this.setTextureName(RefStrings.MODID + ":"+ unlocalizedName);
return this;
}
@Override
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) {
Block b = world.getBlock(x, y, z);
if(b instanceof IToolable && ((IToolable)b).onScrew(world, player, x, y, z, side, fX, fY, fZ, ToolType.BOLT)) {
if(!world.isRemote) {
player.inventoryContainer.detectAndSendChanges();
ForgeDirection dir = ForgeDirection.getOrientation(side);
double off = 0.25;
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "vanillaExt");
data.setString("mode", "largeexplode");
data.setFloat("size", 1F);
data.setByte("count", (byte)1);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + fX + dir.offsetX * off, y + fY + dir.offsetY * off, z + fZ + dir.offsetZ * off), new TargetPoint(world.provider.dimensionId, x, y, z, 50));
NBTTagCompound d0 = new NBTTagCompound();
d0.setString("type", "anim");
d0.setString("mode", "generic");
PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(d0, 0, 0, 0), (EntityPlayerMP) player);
}
return false;
}
return false;
}
@Override
@SideOnly(Side.CLIENT)
public BusAnimation getAnimation(NBTTagCompound data, ItemStack stack) {
return new BusAnimation()
.addBus("RECOIL", new BusAnimationSequence()
.addKeyframe(new BusAnimationKeyframe(1, 0, 1, 50))
.addKeyframe(new BusAnimationKeyframe(0, 0, 1, 100)));
}
}

View File

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

View File

@ -64,6 +64,7 @@ import com.hbm.handler.CasingEjector;
import com.hbm.handler.HbmKeybinds; import com.hbm.handler.HbmKeybinds;
import com.hbm.handler.ImpactWorldHandler; import com.hbm.handler.ImpactWorldHandler;
import com.hbm.handler.HbmKeybinds.EnumKeybind; import com.hbm.handler.HbmKeybinds.EnumKeybind;
import com.hbm.items.IAnimatedItem;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.particle.*; import com.hbm.particle.*;
import com.hbm.particle.psys.engine.EventHandlerParticleEngine; import com.hbm.particle.psys.engine.EventHandlerParticleEngine;
@ -314,6 +315,7 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzStruct.class, new RenderSoyuzMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySoyuzStruct.class, new RenderSoyuzMultiblock());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityITERStruct.class, new RenderITERMultiblock());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlasmaStruct.class, new RenderPlasmaMultiblock());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzStruct.class, new RenderWatzMultiblock());
//RBMK //RBMK
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlManual.class, new RenderRBMKControlRod());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKControlAuto.class, new RenderRBMKControlRod());
@ -427,6 +429,7 @@ public class ClientProxy extends ServerProxy {
MinecraftForgeClient.registerItemRenderer(ModItems.mese_gavel, new ItemRenderGavel()); MinecraftForgeClient.registerItemRenderer(ModItems.mese_gavel, new ItemRenderGavel());
MinecraftForgeClient.registerItemRenderer(ModItems.crucible, new ItemRenderCrucible()); MinecraftForgeClient.registerItemRenderer(ModItems.crucible, new ItemRenderCrucible());
MinecraftForgeClient.registerItemRenderer(ModItems.chainsaw, new ItemRenderChainsaw()); MinecraftForgeClient.registerItemRenderer(ModItems.chainsaw, new ItemRenderChainsaw());
MinecraftForgeClient.registerItemRenderer(ModItems.boltgun, new ItemRenderBoltgun());
//guns //guns
MinecraftForgeClient.registerItemRenderer(ModItems.gun_rpg, new ItemRenderRpg()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_rpg, new ItemRenderRpg());
MinecraftForgeClient.registerItemRenderer(ModItems.gun_karl, new ItemRenderRpg()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_karl, new ItemRenderRpg());
@ -1629,8 +1632,10 @@ public class ClientProxy extends ServerProxy {
if("anim".equals(type)) { if("anim".equals(type)) {
String mode = data.getString("mode");
/* crucible deploy */ /* crucible deploy */
if("crucible".equals(data.getString("mode")) && player.getHeldItem() != null) { if("crucible".equals(mode) && player.getHeldItem() != null) {
BusAnimation animation = new BusAnimation() BusAnimation animation = new BusAnimation()
.addBus("GUARD_ROT", new BusAnimationSequence() .addBus("GUARD_ROT", new BusAnimationSequence()
@ -1642,7 +1647,7 @@ public class ClientProxy extends ServerProxy {
} }
/* crucible swing */ /* crucible swing */
if("cSwing".equals(data.getString("mode"))) { if("cSwing".equals(mode)) {
if(HbmAnimations.getRelevantTransformation("SWING_ROT")[0] == 0) { if(HbmAnimations.getRelevantTransformation("SWING_ROT")[0] == 0) {
@ -1665,7 +1670,7 @@ public class ClientProxy extends ServerProxy {
} }
/* chainsaw swing */ /* chainsaw swing */
if("sSwing".equals(data.getString("mode")) || "lSwing".equals(data.getString("mode"))) { //temp for lance if("sSwing".equals(mode) || "lSwing".equals(mode)) { //temp for lance
int forward = 150; int forward = 150;
int sideways = 100; int sideways = 100;
@ -1708,6 +1713,19 @@ public class ClientProxy extends ServerProxy {
HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation); HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), animation);
} }
} }
if("generic".equals(mode)) {
ItemStack stack = player.getHeldItem();
if(stack != null && stack.getItem() instanceof IAnimatedItem) {
IAnimatedItem item = (IAnimatedItem) stack.getItem();
BusAnimation anim = item.getAnimation(data, stack);
if(anim != null) {
HbmAnimations.hotbar[player.inventory.currentItem] = new Animation(player.getHeldItem().getItem().getUnlocalizedName(), System.currentTimeMillis(), anim);
}
}
}
} }
if("tau".equals(type)) { if("tau".equals(type)) {

View File

@ -38,6 +38,7 @@ import com.hbm.handler.EntityEffectHandler;
import com.hbm.hazard.HazardSystem; import com.hbm.hazard.HazardSystem;
import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb;
import com.hbm.handler.HTTPHandler; import com.hbm.handler.HTTPHandler;
import com.hbm.handler.HbmKeybinds.EnumKeybind;
import com.hbm.handler.SiegeOrchestrator; import com.hbm.handler.SiegeOrchestrator;
import com.hbm.items.IEquipReceiver; import com.hbm.items.IEquipReceiver;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
@ -72,6 +73,7 @@ import com.hbm.world.generator.TimedGenerator;
import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.PlayerEvent;
import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent;
import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent;
import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.Phase;
import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent;
@ -208,6 +210,14 @@ public class ModEventHandler {
} }
} }
@SubscribeEvent
public void onPlayerChaangeDimension(PlayerChangedDimensionEvent event) {
EntityPlayer player = event.player;
HbmPlayerProps data = HbmPlayerProps.getData(player);
data.setKeyPressed(EnumKeybind.JETPACK, false);
data.setKeyPressed(EnumKeybind.DASH, false);
}
@SubscribeEvent(priority = EventPriority.HIGHEST) @SubscribeEvent(priority = EventPriority.HIGHEST)
public void onEntityDeathFirst(LivingDeathEvent event) { public void onEntityDeathFirst(LivingDeathEvent event) {

View File

@ -681,6 +681,7 @@ public class ResourceManager {
public static final IModelCustom gavel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/gavel.obj")); public static final IModelCustom gavel = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/gavel.obj"));
public static final IModelCustom crucible = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/crucible.obj")); public static final IModelCustom crucible = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/crucible.obj"));
public static final IModelCustom chainsaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chainsaw.obj"), false); public static final IModelCustom chainsaw = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/chainsaw.obj"), false);
public static final IModelCustom boltgun = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/boltgun.obj"));
public static final IModelCustom hk69 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/hk69.obj")); public static final IModelCustom hk69 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/hk69.obj"));
public static final IModelCustom deagle = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/deagle.obj")); public static final IModelCustom deagle = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/deagle.obj"));
@ -754,6 +755,7 @@ public class ResourceManager {
public static final ResourceLocation crucible_guard = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/crucible_guard.png"); public static final ResourceLocation crucible_guard = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/crucible_guard.png");
public static final ResourceLocation crucible_blade = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/crucible_blade.png"); public static final ResourceLocation crucible_blade = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/crucible_blade.png");
public static final ResourceLocation chainsaw_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/chainsaw.png"); public static final ResourceLocation chainsaw_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/chainsaw.png");
public static final ResourceLocation boltgun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/boltgun.png");
public static final ResourceLocation hk69_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hk69.png"); public static final ResourceLocation hk69_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hk69.png");
public static final ResourceLocation deagle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/deagle.png"); public static final ResourceLocation deagle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/deagle.png");

View File

@ -29,12 +29,6 @@ public class RenderChemical extends Render {
EntityChemical chem = (EntityChemical) entity; EntityChemical chem = (EntityChemical) entity;
ChemicalStyle style = chem.getStyle(); ChemicalStyle style = chem.getStyle();
if(chem.lastClientPosX == -1 && chem.lastClientPosY == -1 && chem.lastClientPosZ == -1) {
chem.lastClientPosX = chem.posX - chem.motionX;
chem.lastClientPosY = chem.posY - chem.motionY;
chem.lastClientPosZ = chem.posZ - chem.motionZ;
}
if(style == ChemicalStyle.AMAT || style == ChemicalStyle.LIGHTNING) if(style == ChemicalStyle.AMAT || style == ChemicalStyle.LIGHTNING)
renderAmatBeam(chem, f1); renderAmatBeam(chem, f1);
@ -48,10 +42,6 @@ public class RenderChemical extends Render {
renderGasFire(chem, f1); renderGasFire(chem, f1);
} }
chem.lastClientPosX = chem.prevPosX + (chem.posX - chem.prevPosX) * f1;
chem.lastClientPosY = chem.prevPosX + (chem.posY - chem.prevPosY) * f1;
chem.lastClientPosZ = chem.prevPosX + (chem.posZ - chem.prevPosZ) * f1;
GL11.glPopMatrix(); GL11.glPopMatrix();
} }

View File

@ -0,0 +1,98 @@
package com.hbm.render.item;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import com.hbm.render.anim.HbmAnimations;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
public class ItemRenderBoltgun implements IItemRenderer {
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch(type) {
case EQUIPPED:
case EQUIPPED_FIRST_PERSON:
case ENTITY:
case INVENTORY:
return true;
default: return false;
}
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.boltgun_tex);
switch(type) {
case EQUIPPED_FIRST_PERSON:
double s0 = 0.15D;
GL11.glTranslated(0.5, 0.35, -0.25F);
GL11.glRotated(15, 0, 0, 1);
GL11.glRotated(80, 0, 1, 0);
GL11.glScaled(s0, s0, s0);
GL11.glPushMatrix();
double[] anim = HbmAnimations.getRelevantTransformation("RECOIL");
GL11.glTranslated(0, 0, -anim[0]);
ResourceManager.boltgun.renderPart("Barrel");
GL11.glPopMatrix();
break;
case EQUIPPED:
double scale = -0.375D;
GL11.glScaled(scale, scale, scale);
GL11.glRotated(85, 0, 1, 0);
GL11.glRotated(135D, 1.0D, 0.0D, 0.0D);
GL11.glTranslated(-0.125, -2.0, 1.75);
break;
case ENTITY:
double s1 = 0.1D;
GL11.glScaled(s1, s1, s1);
break;
case INVENTORY:
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_LIGHTING);
double s = 1.75D;
GL11.glTranslated(7, 10, 0);
GL11.glRotated(-90, 0, 1, 0);
GL11.glRotated(-135, 1, 0, 0);
GL11.glScaled(s, s, -s);
break;
default: break;
}
GL11.glShadeModel(GL11.GL_SMOOTH);
ResourceManager.boltgun.renderPart("Gun");
if(type != type.EQUIPPED_FIRST_PERSON) {
ResourceManager.boltgun.renderPart("Barrel");
}
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -13,8 +13,6 @@ import net.minecraftforge.client.IItemRenderer;
public class ItemRenderChainsaw implements IItemRenderer { public class ItemRenderChainsaw implements IItemRenderer {
public ItemRenderChainsaw() { }
@Override @Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) { public boolean handleRenderType(ItemStack item, ItemRenderType type) {
switch(type) { switch(type) {
@ -29,7 +27,6 @@ public class ItemRenderChainsaw implements IItemRenderer {
@Override @Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING);
} }

View File

@ -0,0 +1,62 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.render.util.SmallBlockPronter;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
public class RenderWatzMultiblock extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
bindTexture(TextureMap.locationBlocksTexture);
SmallBlockPronter.startDrawing();
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, 0F, 1F, 0F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, 0F, 2F, 0F);
for(int i = 0; i < 3; i++) {
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 1F, i, 0F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 2F, i, 0F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 0F, i, 1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 0F, i, 2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, -1F, i, 0F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, -2F, i, 0F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 0F, i, -1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 0F, i, -2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 1F, i, 1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, 1F, i, -1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, -1F, i, 1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_element, 0, -1F, i, -1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, 2F, i, 1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, 2F, i, -1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, 1F, i, 2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, -1F, i, 2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, -2F, i, 1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, -2F, i, -1F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, 1F, i, -2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_cooler, 0, -1F, i, -2F);
for(int j = -1; j < 2; j++) {
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, 3F, i, j);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, j, i, 3F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, -3F, i, j);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, j, i, -3F);
}
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, 2F, i, 2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, 2F, i, -2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, -2F, i, 2F);
SmallBlockPronter.drawSmolBlockAt(ModBlocks.watz_end, 0, -2F, i, -2F);
}
SmallBlockPronter.draw();
GL11.glPopMatrix();
}
}

View File

@ -2,12 +2,16 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.ResourceManager; import com.hbm.main.ResourceManager;
import com.hbm.render.item.ItemRenderBase;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.client.IItemRenderer;
public class RenderWatzPump extends TileEntitySpecialRenderer { public class RenderWatzPump extends TileEntitySpecialRenderer implements IItemRendererProvider {
@Override @Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) { public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) {
@ -26,4 +30,25 @@ public class RenderWatzPump extends TileEntitySpecialRenderer {
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
@Override
public Item getItemForRenderer() {
return Item.getItemFromBlock(ModBlocks.watz_pump);
}
@Override
public IItemRenderer getRenderer() {
return new ItemRenderBase() {
public void renderInventory() {
GL11.glTranslated(0, -1.5, 0);
double scale = 5;
GL11.glScaled(scale, scale, scale);
}
public void renderCommon() {
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.watz_pump_tex);
ResourceManager.watz_pump.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}};
}
} }

View File

@ -2,19 +2,26 @@ package com.hbm.render.util;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.hbm.interfaces.Spaghetti;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.IIcon;
import net.minecraftforge.common.util.ForgeDirection;
public class SmallBlockPronter { public class SmallBlockPronter {
static float pixel = 1F/16F; static float pixel = 1F/16F;
/** /**
* Bind the required texture yourself bruh * Bind the required texture yourself bruh <- ding dong, 2023 bob speaking, fuck this guy
* @param loc * @param loc
* @param x * @param x
* @param y * @param y
* @param z * @param z
*/ */
@Deprecated @Spaghetti("this is horseshit")
public static void renderSmolBlockAt(float x, float y, float z) { public static void renderSmolBlockAt(float x, float y, float z) {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslatef(x - 1, y - 1, z); GL11.glTranslatef(x - 1, y - 1, z);
@ -64,4 +71,65 @@ public class SmallBlockPronter {
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
public static void startDrawing() {
GL11.glEnable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_CULL_FACE);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.75F);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDepthMask(false);
Tessellator.instance.startDrawingQuads();
}
public static void draw() {
Tessellator.instance.draw();
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glDepthMask(true);
GL11.glEnable(GL11.GL_LIGHTING);
}
public static void drawSmolBlockAt(Block b, int meta, float x, float y, float z) {
Tessellator tesseract = Tessellator.instance;
IIcon iconTop = b.getIcon(ForgeDirection.UP.ordinal(), meta);
IIcon iconBottom = b.getIcon(ForgeDirection.DOWN.ordinal(), meta);
IIcon iconNorth = b.getIcon(ForgeDirection.NORTH.ordinal(), meta);
IIcon iconSouth = b.getIcon(ForgeDirection.SOUTH.ordinal(), meta);
IIcon iconEast = b.getIcon(ForgeDirection.EAST.ordinal(), meta);
IIcon iconWest = b.getIcon(ForgeDirection.WEST.ordinal(), meta);
tesseract.setNormal(0F, 1F, 0F);
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconSouth.getMaxU(), iconSouth.getMinV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconSouth.getMinU(), iconSouth.getMinV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconSouth.getMinU(), iconSouth.getMaxV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconSouth.getMaxU(), iconSouth.getMaxV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 11 * pixel / 2, iconEast.getMaxU(), iconEast.getMinV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconEast.getMinU(), iconEast.getMinV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconEast.getMinU(), iconEast.getMaxV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 11 * pixel / 2, z + 11 * pixel / 2, iconEast.getMaxU(), iconEast.getMaxV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 11 * pixel / 2, iconNorth.getMaxU(), iconNorth.getMinV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 11 * pixel / 2, iconNorth.getMinU(), iconNorth.getMinV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2,y + 11 * pixel / 2, z + 11 * pixel / 2, iconNorth.getMinU(), iconNorth.getMaxV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 11 * pixel / 2, z + 11 * pixel / 2, iconNorth.getMaxU(), iconNorth.getMaxV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconWest.getMaxU(), iconWest.getMinV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 11 * pixel / 2, iconWest.getMinU(), iconWest.getMinV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 11 * pixel / 2, z + 11 * pixel / 2, iconWest.getMinU(), iconWest.getMaxV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconWest.getMaxU(), iconWest.getMaxV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 11 * pixel / 2, iconTop.getMaxU(), iconTop.getMinV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 11 * pixel / 2, iconTop.getMinU(), iconTop.getMinV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconTop.getMinU(), iconTop.getMaxV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 1 - 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconTop.getMaxU(), iconTop.getMaxV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 11 * pixel / 2, z + 11 * pixel / 2, iconBottom.getMaxU(), iconBottom.getMinV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 11 * pixel / 2, z + 11 * pixel / 2, iconBottom.getMinU(), iconBottom.getMinV());
tesseract.addVertexWithUV(x + 1 - 11 * pixel / 2, y + 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconBottom.getMinU(), iconBottom.getMaxV());
tesseract.addVertexWithUV(x + 11 * pixel / 2, y + 11 * pixel / 2, z + 1 - 11 * pixel / 2, iconBottom.getMaxU(), iconBottom.getMaxV());
}
} }

View File

@ -11,6 +11,7 @@ import com.hbm.blocks.generic.BlockEmitter.TileEntityEmitter;
import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot;
import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre; import com.hbm.blocks.generic.BlockMotherOfAllOres.TileEntityRandomOre;
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
import com.hbm.blocks.generic.PartEmitter.TileEntityPartEmitter;
import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.MachineFan.TileEntityFan;
import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump; import com.hbm.blocks.machine.WatzPump.TileEntityWatzPump;
import com.hbm.blocks.network.BlockCablePaintable.TileEntityCablePaintable; import com.hbm.blocks.network.BlockCablePaintable.TileEntityCablePaintable;
@ -78,6 +79,7 @@ public class TileMappings {
put(TileEntityMachineTeleporter.class, "tileentity_teleblock"); put(TileEntityMachineTeleporter.class, "tileentity_teleblock");
put(TileEntityHatch.class, "tileentity_seal_lid"); put(TileEntityHatch.class, "tileentity_seal_lid");
put(TileEntityMachineIGenerator.class, "tileentity_igenerator"); put(TileEntityMachineIGenerator.class, "tileentity_igenerator");
put(TileEntityPartEmitter.class, "tileentity_partemitter");
put(TileEntityDummy.class, "tileentity_dummy"); put(TileEntityDummy.class, "tileentity_dummy");
put(TileEntityMachineCyclotron.class, "tileentity_cyclotron"); put(TileEntityMachineCyclotron.class, "tileentity_cyclotron");
put(TileEntityOilDuct.class, "tileentity_oil_duct"); put(TileEntityOilDuct.class, "tileentity_oil_duct");
@ -166,6 +168,7 @@ public class TileMappings {
put(TileEntityMachineFENSU.class, "tileentity_fensu"); put(TileEntityMachineFENSU.class, "tileentity_fensu");
put(TileEntityTrappedBrick.class, "tileentity_trapped_brick"); put(TileEntityTrappedBrick.class, "tileentity_trapped_brick");
put(TileEntityPlasmaStruct.class, "tileentity_plasma_struct"); put(TileEntityPlasmaStruct.class, "tileentity_plasma_struct");
put(TileEntityWatzStruct.class, "tileentity_watz_struct");
put(TileEntityHadronDiode.class, "tileentity_hadron_diode"); put(TileEntityHadronDiode.class, "tileentity_hadron_diode");
put(TileEntityHadronPower.class, "tileentity_hadron_power"); put(TileEntityHadronPower.class, "tileentity_hadron_power");
put(TileEntityHadron.class, "tileentity_hadron"); put(TileEntityHadron.class, "tileentity_hadron");

View File

@ -145,8 +145,8 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB
if(recipe == null) return false; if(recipe == null) return false;
tanks[0].setTankType(recipe.input1.type); tanks[0].setTankType(recipe.input1 != null ? recipe.input1.type : Fluids.NONE);
tanks[1].setTankType(recipe.input2.type); tanks[1].setTankType(recipe.input2 != null ? recipe.input2.type : Fluids.NONE);
if(recipe.input1 != null && tanks[0].getFill() < recipe.input1.fill) return false; if(recipe.input1 != null && tanks[0].getFill() < recipe.input1.fill) return false;
if(recipe.input2 != null && tanks[1].getFill() < recipe.input2.fill) return false; if(recipe.input2 != null && tanks[1].getFill() < recipe.input2.fill) return false;

View File

@ -1,6 +1,7 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import com.hbm.config.VersatileConfig; import com.hbm.config.VersatileConfig;
import com.hbm.inventory.OreDictManager;
import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator; import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator;
import com.hbm.inventory.gui.GUIMachineSchrabidiumTransmutator; import com.hbm.inventory.gui.GUIMachineSchrabidiumTransmutator;
import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.inventory.recipes.MachineRecipes;
@ -50,7 +51,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB
public boolean isItemValidForSlot(int i, ItemStack stack) { public boolean isItemValidForSlot(int i, ItemStack stack) {
switch (i) { switch (i) {
case 0: case 0:
if (MachineRecipes.mODE(stack, "ingotUranium")) if (MachineRecipes.mODE(stack, OreDictManager.U.ingot()))
return true; return true;
break; break;
case 2: case 2:
@ -113,7 +114,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB
} }
public boolean canProcess() { public boolean canProcess() {
if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], "ingotUranium") && slots[2] != null if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], OreDictManager.U.ingot()) && slots[2] != null
&& slots[2].getItem() == ModItems.redcoil_capacitor && slots[2].getItem() == ModItems.redcoil_capacitor
&& ItemCapacitor.getDura(slots[2]) > 0 && ItemCapacitor.getDura(slots[2]) > 0
&& (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem() && (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem()

View File

@ -29,6 +29,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -41,6 +42,7 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
public double fluxLastBase; //flux created by the previous passive emission, only used for display public double fluxLastBase; //flux created by the previous passive emission, only used for display
public double fluxLastReaction; //flux created by the previous reaction, used for the next reaction public double fluxLastReaction; //flux created by the previous reaction, used for the next reaction
public double fluxDisplay; public double fluxDisplay;
public boolean isOn;
/* lock types for item IO */ /* lock types for item IO */
public boolean isLocked = false; public boolean isLocked = false;
@ -106,33 +108,30 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
segment.updateReaction(above, sharedTanks, turnedOn); segment.updateReaction(above, sharedTanks, turnedOn);
} }
/* send sync packets (order doesn't matter) */
for(TileEntityWatz segment : segments) {
segment.isOn = turnedOn;
segment.sendPacket(sharedTanks);
segment.heat *= 0.99; //cool 1% per tick
}
/* re-distribute fluid from shared tanks back into actual tanks, bottom to top */ /* re-distribute fluid from shared tanks back into actual tanks, bottom to top */
for(int i = segments.size() - 1; i >= 0; i--) { for(int i = segments.size() - 1; i >= 0; i--) {
TileEntityWatz segment = segments.get(i); TileEntityWatz segment = segments.get(i);
for(int j = 0; j < 3; j++) { for(int j = 0; j < 3; j++) {
int min = Math.min(segment.tanks[j].getMaxFill(), sharedTanks[j].getFill()); int min = Math.min(segment.tanks[j].getMaxFill(), sharedTanks[j].getFill());
segment.tanks[j].setFill(min);
sharedTanks[j].setFill(sharedTanks[j].getFill() - min); sharedTanks[j].setFill(sharedTanks[j].getFill() - min);
segment.tanks[j].setFill(min);
} }
} }
/* send sync packets (order doesn't matter) */
for(TileEntityWatz segment : segments) {
segment.sendPacket(sharedTanks);
segment.heat *= 0.99; //cool 1% per tick
}
segments.get(segments.size() - 1).sendOutBottom(); segments.get(segments.size() - 1).sendOutBottom();
} }
} }
/** basic sanity checking, usually wouldn't do anything except when NBT loading borks */ /** basic sanity checking, usually wouldn't do anything except when NBT loading borks */
public void setupCoolant() { public void setupCoolant() {
if(!tanks[0].getTankType().hasTrait(FT_Heatable.class)) {
tanks[0].setTankType(Fluids.COOLANT); tanks[0].setTankType(Fluids.COOLANT);
}
tanks[1].setTankType(tanks[0].getTankType().getTrait(FT_Heatable.class).getFirstStep().typeProduced); tanks[1].setTankType(tanks[0].getTankType().getTrait(FT_Heatable.class).getFirstStep().typeProduced);
} }
@ -150,8 +149,8 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
int cycles = Math.min(heatCycles, Math.min(hotCycles, coolCycles)); int cycles = Math.min(heatCycles, Math.min(hotCycles, coolCycles));
this.heat -= cycles * step.heatReq; this.heat -= cycles * step.heatReq;
tanks[0].setFill(tanks[0].getFill() - coolCycles * step.amountReq); tanks[0].setFill(tanks[0].getFill() - cycles * step.amountReq);
tanks[1].setFill(tanks[1].getFill() + hotCycles * step.amountProduced); tanks[1].setFill(tanks[1].getFill() + cycles * step.amountProduced);
} }
/** enforces strict top to bottom update order (instead of semi-random based on placement) */ /** enforces strict top to bottom update order (instead of semi-random based on placement) */
@ -244,6 +243,8 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();
data.setInteger("heat", this.heat); data.setInteger("heat", this.heat);
data.setBoolean("isOn", isOn);
data.setBoolean("lock", isLocked);
data.setDouble("flux", this.fluxLastReaction + this.fluxLastBase); data.setDouble("flux", this.fluxLastReaction + this.fluxLastBase);
for(int i = 0; i < tanks.length; i++) { for(int i = 0; i < tanks.length; i++) {
tanks[i].writeToNBT(data, "t" + i); tanks[i].writeToNBT(data, "t" + i);
@ -251,6 +252,17 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
this.networkPack(data, 25); this.networkPack(data, 25);
} }
@Override
public void networkUnpack(NBTTagCompound nbt) {
this.heat = nbt.getInteger("heat");
this.isOn = nbt.getBoolean("isOn");
this.isLocked = nbt.getBoolean("lock");
this.fluxDisplay = nbt.getDouble("flux");
for(int i = 0; i < tanks.length; i++) {
tanks[i].readFromNBT(nbt, "t" + i);
}
}
/** Prevent manual updates when another segment is above this one */ /** Prevent manual updates when another segment is above this one */
public boolean updateLock() { public boolean updateLock() {
return Compat.getTileStandard(worldObj, xCoord, yCoord + 3, zCoord) instanceof TileEntityWatz; return Compat.getTileStandard(worldObj, xCoord, yCoord + 3, zCoord) instanceof TileEntityWatz;
@ -283,14 +295,49 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
} }
@Override @Override
public void networkUnpack(NBTTagCompound nbt) { public void readFromNBT(NBTTagCompound nbt) {
this.heat = nbt.getInteger("heat"); super.readFromNBT(nbt);
this.fluxDisplay = nbt.getDouble("flux");
for(int i = 0; i < tanks.length; i++) { NBTTagList list = nbt.getTagList("locks", 10);
tanks[i].readFromNBT(nbt, "t" + i);
for(int i = 0; i < list.tagCount(); i++) {
NBTTagCompound nbt1 = list.getCompoundTagAt(i);
byte b0 = nbt1.getByte("slot");
if(b0 >= 0 && b0 < slots.length) {
locks[b0] = ItemStack.loadItemStackFromNBT(nbt1);
} }
} }
for(int i = 0; i < tanks.length; i++) tanks[i].readFromNBT(nbt, "t" + i);
this.fluxLastBase = nbt.getDouble("lastFluxB");
this.fluxLastReaction = nbt.getDouble("lastFluxR");
this.isLocked = nbt.getBoolean("isLocked");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
NBTTagList list = new NBTTagList();
for(int i = 0; i < locks.length; i++) {
if(locks[i] != null) {
NBTTagCompound nbt1 = new NBTTagCompound();
nbt1.setByte("slot", (byte) i);
locks[i].writeToNBT(nbt1);
list.appendTag(nbt1);
}
}
nbt.setTag("locks", list);
for(int i = 0; i < tanks.length; i++) tanks[i].writeToNBT(nbt, "t" + i);
nbt.setDouble("lastFluxB", fluxLastBase);
nbt.setDouble("lastFluxR", fluxLastReaction);
nbt.setBoolean("isLocked", isLocked);
}
@Override @Override
public boolean hasPermission(EntityPlayer player) { public boolean hasPermission(EntityPlayer player) {
return this.isUseableByPlayer(player); return this.isUseableByPlayer(player);

View File

@ -0,0 +1,104 @@
package com.hbm.tileentity.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.blocks.machine.Watz;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityWatzStruct extends TileEntity {
@Override
public void updateEntity() {
if(worldObj.isRemote) return;
if(worldObj.getTotalWorldTime() % 20 != 0) return;
/*
* skeptics may say that his is shit. i don't necessarily disagree, but it was both easy and quick to do
* and it remains readable and not terribly long, so who the fuck cares.
*/
if(!cbr(ModBlocks.watz_cooler, 0, 1, 0)) return;
if(!cbr(ModBlocks.watz_cooler, 0, 2, 0)) return;
for(int i = 0; i < 3; i++) {
if(!cbr(ModBlocks.watz_element, 1, i, 0)) return;
if(!cbr(ModBlocks.watz_element, 2, i, 0)) return;
if(!cbr(ModBlocks.watz_element, 0, i, 1)) return;
if(!cbr(ModBlocks.watz_element, 0, i, 2)) return;
if(!cbr(ModBlocks.watz_element, -1, i, 0)) return;
if(!cbr(ModBlocks.watz_element, -2, i, 0)) return;
if(!cbr(ModBlocks.watz_element, 0, i, -1)) return;
if(!cbr(ModBlocks.watz_element, 0, i, -2)) return;
if(!cbr(ModBlocks.watz_element, 1, i, 1)) return;
if(!cbr(ModBlocks.watz_element, 1, i, -1)) return;
if(!cbr(ModBlocks.watz_element, -1, i, 1)) return;
if(!cbr(ModBlocks.watz_element, -1, i, -1)) return;
if(!cbr(ModBlocks.watz_cooler, 2, i, 1)) return;
if(!cbr(ModBlocks.watz_cooler, 2, i, -1)) return;
if(!cbr(ModBlocks.watz_cooler, 1, i, 2)) return;
if(!cbr(ModBlocks.watz_cooler, -1, i, 2)) return;
if(!cbr(ModBlocks.watz_cooler, -2, i, 1)) return;
if(!cbr(ModBlocks.watz_cooler, -2, i, -1)) return;
if(!cbr(ModBlocks.watz_cooler, 1, i, -2)) return;
if(!cbr(ModBlocks.watz_cooler, -1, i, -2)) return;
for(int j = -1; j < 2; j++) {
if(!cbr(ModBlocks.watz_end, 3, i, j)) return;
if(!cbr(ModBlocks.watz_end, j, i, 3)) return;
if(!cbr(ModBlocks.watz_end, -3, i, j)) return;
if(!cbr(ModBlocks.watz_end, j, i, -3)) return;
}
if(!cbr(ModBlocks.watz_end, 2, i, 2)) return;
if(!cbr(ModBlocks.watz_end, 2, i, -2)) return;
if(!cbr(ModBlocks.watz_end, -2, i, 2)) return;
if(!cbr(ModBlocks.watz_end, -2, i, -2)) return;
}
Watz watz = (Watz)ModBlocks.watz;
BlockDummyable.safeRem = true;
worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.watz, this.getBlockMetadata() + BlockDummyable.offset, 3);
watz.fillSpace(worldObj, xCoord, yCoord, zCoord, ForgeDirection.NORTH, 0);
BlockDummyable.safeRem = false;
}
/** [G]et [B]lock at [R]elative position */
private Block gbr(int x, int y, int z) {
return worldObj.getBlock(xCoord + x, yCoord + y, zCoord + z);
}
/** [C]heck [B]lock at [R]elative position */
private boolean cbr(Block b, int x, int y, int z) {
return b == gbr(x, y, z);
}
AxisAlignedBB bb = null;
@Override
public AxisAlignedBB getRenderBoundingBox() {
if(bb == null) {
bb = AxisAlignedBB.getBoundingBox(
xCoord - 3,
yCoord,
zCoord - 3,
xCoord + 4,
yCoord + 3,
zCoord + 4
);
}
return bb;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
}

View File

@ -222,9 +222,12 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I
//if it's just a consumer, buffer it as a subscriber //if it's just a consumer, buffer it as a subscriber
} else if(te instanceof IEnergyConnector) { } else if(te instanceof IEnergyConnector) {
IEnergyConnector con = (IEnergyConnector) te;
if(con.canConnect(dir.getOpposite())) {
consumers.add((IEnergyConnector) te); consumers.add((IEnergyConnector) te);
} }
} }
}
//send power to buffered consumers, independent of nets //send power to buffered consumers, independent of nets
if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) { if(this.power > 0 && (mode == mode_buffer || mode == mode_output)) {

View File

@ -117,13 +117,4 @@ public class ArmorRegistry {
this.lang = lang; this.lang = lang;
} }
} }
/*public static enum ArmorClass {
MASK_FILTERED,
MASK_OXY,
GOGGLES,
HAZMAT_HEAT,
HAZMAT_RADIATION,
HAZMAT_BIO;
}*/
} }

View File

@ -3226,26 +3226,30 @@ item.waste_u235.name=Erschöpfter Uran-235-Kernbrennstoff
item.waste_u233.name=Erschöpfter Uran-233-Kernbrennstoff item.waste_u233.name=Erschöpfter Uran-233-Kernbrennstoff
item.waste_uranium.name=Erschöpfter Urankernbrennstoff item.waste_uranium.name=Erschöpfter Urankernbrennstoff
item.watch.name=Zerbrochene Taschenuhr item.watch.name=Zerbrochene Taschenuhr
item.watz_pellet.boron=Bor-Absorberpellet item.watz_pellet.boron.name=Bor-Absorberpellet
item.watz_pellet.du=Abgereichertes Uran-Absorberpellet item.watz_pellet.du.name=Abgereichertes Uran-Absorberpellet
item.watz_pellet.hes=HES-Watzpellet item.watz_pellet.hes.name=HES-Watzpellet
item.watz_pellet.lead=Blei-Absorberpellet item.watz_pellet.lead.name=Blei-Absorberpellet
item.watz_pellet.les=LES-Watzpellet item.watz_pellet.les.name=LES-Watzpellet
item.watz_pellet.mes=MES-Watzpellet item.watz_pellet.mes.name=MES-Watzpellet
item.watz_pellet.mep=MEP-Watzpellet item.watz_pellet.mep.name=MEP-Watzpellet
item.watz_pellet.meu=MEU-Watzpellet item.watz_pellet.meu.name=MEU-Watzpellet
item.watz_pellet.hen=HEN-Watzpellet item.watz_pellet.nqd.name=Angereichertes Naquadah-Watzpellet
item.watz_pellet.schrabidium=Schrabidium-Watzpellet item.watz_pellet.nqr.name=Naquadria-Watzpellet
item.watz_pellet_depleted.boron=Bor-Absorberpellet (Erschöpft) item.watz_pellet.hen.name=HEN-Watzpellet
item.watz_pellet_depleted.du=Abgereichertes Uran-Absorberpellet (Erschöpft) item.watz_pellet.schrabidium.name=Schrabidium-Watzpellet
item.watz_pellet_depleted.hes=HES-Watzpellet (Erschöpft) item.watz_pellet_depleted.boron.name=Bor-Absorberpellet (Erschöpft)
item.watz_pellet_depleted.lead=Blei-Absorberpellet (Erschöpft) item.watz_pellet_depleted.du.name=Abgereichertes Uran-Absorberpellet (Erschöpft)
item.watz_pellet_depleted.les=LES-Watzpellet (Erschöpft) item.watz_pellet_depleted.hes.name=HES-Watzpellet (Erschöpft)
item.watz_pellet_depleted.mes=MES-Watzpellet (Erschöpft) item.watz_pellet_depleted.lead.name=Blei-Absorberpellet (Erschöpft)
item.watz_pellet_depleted.mep=MEP-Watzpellet (Erschöpft) item.watz_pellet_depleted.les.name=LES-Watzpellet (Erschöpft)
item.watz_pellet_depleted.meu=MEU-Watzpellet (Erschöpft) item.watz_pellet_depleted.mes.name=MES-Watzpellet (Erschöpft)
item.watz_pellet_depleted.hen=HEN-Watzpellet (Erschöpft) item.watz_pellet_depleted.mep.name=MEP-Watzpellet (Erschöpft)
item.watz_pellet_depleted.schrabidium=Schrabidium-Watzpellet (Erschöpft) item.watz_pellet_depleted.meu.name=MEU-Watzpellet (Erschöpft)
item.watz_pellet_depleted.nqd.name=Angereichertes Naquadah-Watzpellet (Erschöpft)
item.watz_pellet_depleted.nqr.name=Naquadria-Watzpellet (Erschöpft)
item.watz_pellet_depleted.hen.name=HEN-Watzpellet (Erschöpft)
item.watz_pellet_depleted.schrabidium.name=Schrabidium-Watzpellet (Erschöpft)
item.weapon_bat.name=Richards Standard item.weapon_bat.name=Richards Standard
item.weapon_bat_nail.name=Das Klischee item.weapon_bat_nail.name=Das Klischee
item.weapon_golf_club.name=Schläger des russischen Mafiosos item.weapon_golf_club.name=Schläger des russischen Mafiosos

View File

@ -26,8 +26,8 @@ achievement.c20_5.desc=???
achievement.c20_5=Chapter [TWENTY POINT FIVE] achievement.c20_5=Chapter [TWENTY POINT FIVE]
achievement.c44.desc=Galvanized! I mean, zinc! achievement.c44.desc=Galvanized! I mean, zinc!
achievement.c44=Chapter 44 achievement.c44=Chapter 44
achievement.centrifuge.desc=centrifugal force is fake don't @ me achievement.centrifuge.desc=centrifugal force is real don't @ me
achievement.centrifuge=Centripetal Force achievement.centrifuge=Centrifugal Force
achievement.chemplant.desc=Now you're thinking with chemicals! achievement.chemplant.desc=Now you're thinking with chemicals!
achievement.chemplant=The Factory Grows Pt. 2 achievement.chemplant=The Factory Grows Pt. 2
achievement.chicagoPile.desc="How were the natives?" / "Very friendly." achievement.chicagoPile.desc="How were the natives?" / "Very friendly."
@ -4018,26 +4018,30 @@ item.waste_uranium.name=Depleted Uranium Fuel
item.waste_zfb_mox.name=Depleted ZFB MOX Fuel item.waste_zfb_mox.name=Depleted ZFB MOX Fuel
item.watch.name=Broken Pocket Watch item.watch.name=Broken Pocket Watch
item.watch.desc=A small blue pocket watch.$It's glass has a few cracks in it,$and some shards are missing.$It stopped ticking at 2:34. item.watch.desc=A small blue pocket watch.$It's glass has a few cracks in it,$and some shards are missing.$It stopped ticking at 2:34.
item.watz_pellet.boron=Boron Absorber Pellet item.watz_pellet.boron.name=Boron Absorber Pellet
item.watz_pellet.du=Depleted Uranium Absorber Pellet item.watz_pellet.du.name=Depleted Uranium Absorber Pellet
item.watz_pellet.hes=HES Watz Pellet item.watz_pellet.hes.name=HES Watz Pellet
item.watz_pellet.lead=Lead Absorber Pellet item.watz_pellet.lead.name=Lead Absorber Pellet
item.watz_pellet.les=LES Watz Pellet item.watz_pellet.les.name=LES Watz Pellet
item.watz_pellet.mes=MES Watz Pellet item.watz_pellet.mes.name=MES Watz Pellet
item.watz_pellet.mep=MEP Watz Pellet item.watz_pellet.mep.name=MEP Watz Pellet
item.watz_pellet.meu=MEU Watz Pellet item.watz_pellet.meu.name=MEU Watz Pellet
item.watz_pellet.hen=HEN Watz Pellet item.watz_pellet.nqd.name=Enriched Naquadah Watz Pellet
item.watz_pellet.schrabidium=Schrabidium Watz Pellet item.watz_pellet.nqr.name=Naquadria Watz Pellet
item.watz_pellet_depleted.boron=Boron Absorber Pellet (Depleted) item.watz_pellet.hen.name=HEN Watz Pellet
item.watz_pellet_depleted.du=Depleted Uranium Absorber Pellet (Depleted) item.watz_pellet.schrabidium.name=Schrabidium Watz Pellet
item.watz_pellet_depleted.hes=HES Watz Pellet (Depleted) item.watz_pellet_depleted.boron.name=Boron Absorber Pellet (Depleted)
item.watz_pellet_depleted.lead=Lead Absorber Pellet (Depleted) item.watz_pellet_depleted.du.name=Depleted Uranium Absorber Pellet (Depleted)
item.watz_pellet_depleted.les=LES Watz Pellet (Depleted) item.watz_pellet_depleted.hes.name=HES Watz Pellet (Depleted)
item.watz_pellet_depleted.mes=MES Watz Pellet (Depleted) item.watz_pellet_depleted.lead.name=Lead Absorber Pellet (Depleted)
item.watz_pellet_depleted.mep=MEP Watz Pellet (Depleted) item.watz_pellet_depleted.les.name=LES Watz Pellet (Depleted)
item.watz_pellet_depleted.meu=MEU Watz Pellet (Depleted) item.watz_pellet_depleted.mes.name=MES Watz Pellet (Depleted)
item.watz_pellet_depleted.hen=HEN Watz Pellet (Depleted) item.watz_pellet_depleted.mep.name=MEP Watz Pellet (Depleted)
item.watz_pellet_depleted.schrabidium=Schrabidium Watz Pellet (Depleted) item.watz_pellet_depleted.meu.name=MEU Watz Pellet (Depleted)
item.watz_pellet_depleted.nqd.name=Enriched Naquadah Watz Pellet (Depleted)
item.watz_pellet_depleted.nqr.name=Naquadria Watz Pellet (Depleted)
item.watz_pellet_depleted.hen.name=HEN Watz Pellet (Depleted)
item.watz_pellet_depleted.schrabidium.name=Schrabidium Watz Pellet (Depleted)
item.weapon_bat.name=Richard's Default item.weapon_bat.name=Richard's Default
item.weapon_bat_nail.name=The Cliché item.weapon_bat_nail.name=The Cliché
item.weapon_golf_club.name=Russian Mobster's Club item.weapon_golf_club.name=Russian Mobster's Club
@ -4437,6 +4441,7 @@ tile.deco_asbestos.name=Asbestos Roof
tile.deco_beryllium.name=Beryllium Deco Block tile.deco_beryllium.name=Beryllium Deco Block
tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL tile.deco_computer.ibm_300pl.name=IBM Personal Computer 300PL
tile.deco_emitter.name=Deco Light Emitter tile.deco_emitter.name=Deco Light Emitter
tile.part_emitter.name=Deco Particle Emitter
tile.deco_lead.name=Lead Deco Block tile.deco_lead.name=Lead Deco Block
tile.deco_rbmk.name=RBMK Deco Block tile.deco_rbmk.name=RBMK Deco Block
tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block tile.deco_rbmk_smooth.name=Smooth RBMK Deco Block

View File

@ -1996,6 +1996,9 @@ tile.conveyor_chute.name=Конвейерный желоб
tile.conveyor_double.name=Двухполосная конвейер tile.conveyor_double.name=Двухполосная конвейер
tile.conveyor_lift.name=Конвейерный цепной лифт tile.conveyor_lift.name=Конвейерный цепной лифт
tile.conveyor_triple.name=Трёхполосный конвейер tile.conveyor_triple.name=Трёхполосный конвейер
container.craneGrabber=Конвейерный сборщик
tile.crane_grabber.name=Конвейерный сборщик
tile.crane_splitter.name=Конвейерный разделитель
container.turretArty=Грег container.turretArty=Грег
tile.turret_arty.name=Артиллерийская турель "Грег" tile.turret_arty.name=Артиллерийская турель "Грег"
container.heaterFirebox=Топка container.heaterFirebox=Топка
@ -2950,6 +2953,7 @@ tile.block_cap_sunset.name=Блок крышек от Сансет Сарсап
tile.block_tritium.name=Блок тритиевых пробирок tile.block_tritium.name=Блок тритиевых пробирок
tile.hazmat.name=Блок защитной ткани tile.hazmat.name=Блок защитной ткани
tile.deco_emitter.name=Декоративный источник света tile.deco_emitter.name=Декоративный источник света
tile.part_emitter.name=Декоративный источник частиц
tile.plant_flower.foxglove.name=Наперстянка tile.plant_flower.foxglove.name=Наперстянка
tile.plant_flower.nightshade.name=Белладонна tile.plant_flower.nightshade.name=Белладонна
tile.plant_flower.tobacco.name=Табак tile.plant_flower.tobacco.name=Табак
@ -5077,6 +5081,31 @@ item.pellet_neptunium.name=Нептуниевая Ватцз-пеллета
item.pellet_lead.name=Свинцовая пеллета item.pellet_lead.name=Свинцовая пеллета
item.pellet_advanced.name=Улучшитель производительности Ватцз item.pellet_advanced.name=Улучшитель производительности Ватцз
item.watz_pellet.boron.name=Поглощающая Ватцз-пеллета из бора
item.watz_pellet.du.name=Поглощающая Ватцз-пеллета из обедненного урана
item.watz_pellet.hes.name=Ватцз-пеллета из высокообогащенного шрабидия
item.watz_pellet.lead.name=Поглощающая Ватцз-пеллета из свинца
item.watz_pellet.les.name=Ватцз-пеллета из низкообогащенного шрабидия
item.watz_pellet.mes.name=Ватцз-пеллета из среднеобогащенного шрабидия
item.watz_pellet.mep.name=Ватцз-пеллета из среднеобогащенного плутония
item.watz_pellet.meu.name=Ватцз-пеллета из среднеобогащенного урана
item.watz_pellet.nqd.name=Ватцз-пеллета из обогащенного наквадаха
item.watz_pellet.nqr.name=Ватцз-пеллета из наквадрии
item.watz_pellet.hen.name=Ватцз-пеллета из высокообогащенного наквадаха
item.watz_pellet.schrabidium.name=Ватцз-пеллета из чистого шрабидия
item.watz_pellet_depleted.boron.name=Поглощающая Ватцз-пеллета из бора (Обедненная)
item.watz_pellet_depleted.du.name=Поглощающая Ватцз-пеллета из обедненного урана (Обедненная)
item.watz_pellet_depleted.hes.name=Ватцз-пеллета из высокообогащенного шрабидия (Обедненная)
item.watz_pellet_depleted.lead.name=Поглощающая Ватцз-пеллета из свинца (Обедненная)
item.watz_pellet_depleted.les.name=Ватцз-пеллета из низкообогащенного шрабидия (Обедненная)
item.watz_pellet_depleted.mes.name=Ватцз-пеллета из среднеобогащенного шрабидия (Обедненная)
item.watz_pellet_depleted.mep.name=Ватцз-пеллета из среднеобогащенного плутония (Обедненная)
item.watz_pellet_depleted.meu.name=Ватцз-пеллета из среднеобогащенного урана (Обедненная)
item.watz_pellet_depleted.nqd.name=Ватцз-пеллета из обогащенного наквадаха (Обедненная)
item.watz_pellet_depleted.nqr.name=Ватцз-пеллета из наквадрии (Обедненная)
item.watz_pellet_depleted.hen.name=Ватцз-пеллета из высокообогащенного наквадаха (Обедненная)
item.watz_pellet_depleted.schrabidium.name=Ватцз-пеллета из чистого шрабидия (Обедненная)
item.titanium_filter.name=Титановый фильтр item.titanium_filter.name=Титановый фильтр
item.deuterium_filter.name=Дейтериевый фильтр item.deuterium_filter.name=Дейтериевый фильтр
item.catalytic_converter.name=Каталитический конвертер item.catalytic_converter.name=Каталитический конвертер

View File

@ -51,7 +51,7 @@ achievement.fiend2.desc=更卑鄙
achievement.fiend2=残忍2:更残忍 achievement.fiend2=残忍2:更残忍
achievement.fiend=残忍 achievement.fiend=残忍
achievement.freytag.desc=英勇的救生员 achievement.freytag.desc=英勇的救生员
achievement.freytag=Freytag achievement.freytag=弗雷塔格
achievement.fusion.desc=氘核、海卫一与能量的舞蹈。 achievement.fusion.desc=氘核、海卫一与能量的舞蹈。
achievement.fusion=聚合 achievement.fusion=聚合
achievement.gasCent.desc=贫铀讨厌他! achievement.gasCent.desc=贫铀讨厌他!
@ -66,6 +66,8 @@ achievement.horizonsStart.desc=将一个小伙子送上月球
achievement.horizonsStart=地平线? achievement.horizonsStart=地平线?
achievement.impossible.desc=你不可能取得该成就 achievement.impossible.desc=你不可能取得该成就
achievement.impossible=简直不可能 achievement.impossible=简直不可能
achievement.inferno.desc=“把它变成灰烬!这还不够!投更多的炸弹!”
achievement.inferno=食人行动
achievement.manhattan.desc=1945年8月6日 8:15 achievement.manhattan.desc=1945年8月6日 8:15
achievement.manhattan=曼哈顿计划 achievement.manhattan=曼哈顿计划
achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸? achievement.meltdown.desc=你走了这么远,怎么能把事情搞砸?
@ -144,7 +146,7 @@ armor.rocketBoots=火箭靴
armor.sprintBoost=冲刺辅助加速 armor.sprintBoost=冲刺辅助加速
armor.thermal=热成像 armor.thermal=热成像
armor.threshold=伤害阈值 %s armor.threshold=伤害阈值 %s
armor.vats=这是一个测试以证明这些书的e[B]ic换行功能。 字体比例是可自定义的,换行符也会相应调整,这使得编写新页面非常容易。 armor.vats=敌对生物HUD
armor.yield=抵御低于%s的伤害 armor.yield=抵御低于%s的伤害
armorMod.all=所有 armorMod.all=所有
armorMod.applicableTo=适用于: armorMod.applicableTo=适用于:
@ -163,7 +165,7 @@ armorMod.type.servo=伺服电机
armorMod.type.special=特殊 armorMod.type.special=特殊
battery.mode.buffer=输入/输出模式 battery.mode.buffer=输入/输出模式
battery.mode.input=输入模式 battery.mode.input=输入模式
battery.mode.off=OffW battery.mode.off=关闭W
battery.mode.output=输出模式 battery.mode.output=输出模式
battery.priority.high=充电优先级:高 battery.priority.high=充电优先级:高
battery.priority.high.desc=总是需要优先装满的紧急缓冲区 battery.priority.high.desc=总是需要优先装满的紧急缓冲区
@ -340,56 +342,56 @@ book_lore.book_syringe.page.1=a little addendum to my fifth message, obviously y
book_lore.book_syringe.page.2=syringe goes into slot %d book_lore.book_syringe.page.2=syringe goes into slot %d
book_lore.resignation_note.name=辞职信 book_lore.resignation_note.name=辞职信
book_lore.resignation_note.author=科斯马 book_lore.resignation_note.author=科斯马
book_lore.resignation_note.page.1=Management downsized our department again yesterday. Those idiots only have themselves to blame, I don't know what they were expecting after that fiasco. Who the hell leaks that sort of information? We're losing millions and book_lore.resignation_note.page.1=管理层昨天又对我们的部门进行裁员了。那群白痴要怪只能怪他们自己,我都不知道他们在那场惨败后还在期待什么。到底是谁他妈泄露了那种程度的信息?
book_lore.resignation_note.page.2=it's ME who's the one out of a job now. I'M the one being asked to resign. I hope you asshats finally learn from your overabundance of mistakes and take that stick out of your ass. book_lore.resignation_note.page.2=我们损失了几百万,而且现在失业的还是爷。老子希望你们这帮混蛋最后能从你们的一堆问题中学到点教训然后给爷滚去自闭。
book_lore.resignation_note.page.3=I'm not coming back on Friday. Just send the paycheck. book_lore.resignation_note.page.3=我周五不回来了。工资寄过来就行。
book_lore.memo_stocks.name=公司内部备忘录 book_lore.memo_stocks.name=公司内部备忘录
book_lore.memo_stocks.page.1=Investor Relations - $ $ There's been some glaring discrepancies in the figures provided for the latest quarterly report. It would be prudent for the financial department to make some adjustments, so there won't be any concern. book_lore.memo_stocks.page.1=投资者报告 - $$最新的季度报告中提供的数据存在一些明显的差异。财政部所作出一些调整是明智的,因此不必有任何担忧。
book_lore.memo_schrab_gsa.name=内部备忘录 book_lore.memo_schrab_gsa.name=内部备忘录
book_lore.memo_schrab_gsa.page.1=Contract Management - $ $ Legal has made a breakthrough with the DLA. They've awarded us with a 45 BILLION GSA Schedule for further procurement and research of saralloy. At current estimates, that would be at minimum book_lore.memo_schrab_gsa.page.1=合同管理记录 - 法务部在与美国国防部后勤局的谈判中取得了突破。他们批准了450亿的联邦采购服务总署投资资金用于异变金属的采购与研究。
book_lore.memo_schrab_gsa.page.2=a 40%% profit on related operations, let alone the possibility of future contracts. Due to the confidential nature, all fiscal evidence is to remain private. book_lore.memo_schrab_gsa.page.2=就目前预期来看这将至少产生40%的利润,更不必说以后行动所产生的利润,同时这将使我们未来有机会签订更多合同。鉴于此事的保密性质,所有财政证据都将为机密级别
book_lore.memo_schrab_rd.name=内部备忘录 book_lore.memo_schrab_rd.name=内部备忘录
book_lore.memo_schrab_rd.page.1=Research & Development - $ $ Our main production method of saralloy has been through the new particle accelerator. However, the energy costs are exorbitantly high compared to the amount of output. book_lore.memo_schrab_rd.page.1=研发 - 目前我们主要生产方法是使用新型粒子加速器。然而,与产出量相比,能源成本高得惊人。
book_lore.memo_schrab_rd.page.2=Doctor Schrabauer, however, has discovered a new interaction - called "Strange Lepton Oscillation" - that could significantly reduce costs. Through a not entirely understood process, supplied electrons are transmuted into extremely book_lore.memo_schrab_rd.page.2=然而Schrabauer博士发现了一种全新的相互作用——暂称为“奇异轻子振荡”——该作用可以显著降低生产成本。通过一个目前未被完全理解的的过程提供的电子被一种奇特的“魔力”转化为极高能量的光子。
book_lore.memo_schrab_rd.page.3=high-energy photons, through a strange charm. This is an extreme exception to many established particle conversion laws, but preliminary experiments have proved that these protons transmute into up and down quarks, eventually creating saralloy. book_lore.memo_schrab_rd.page.3=这是许多已明确的粒子转换定律的极端例外。但初步实验证明,这些质子先转变为上下夸克,最终形成了异变金属。奇怪的是,原型机中需要钨与少量异变金属合金化所得到的合金。
book_lore.memo_schrab_rd.page.4=Strangely, the prototype requires Tungsten alloyed with small amounts of saralloy. In addition, a special capacitor is required to negate the leftover positive charge. book_lore.memo_schrab_rd.page.4=除此之外,还需要一个特殊的电容器用来抵消掉多余的正电荷。
book_lore.memo_schrab_nuke.name=研究报告 book_lore.memo_schrab_nuke.name=研究报告
book_lore.memo_schrab_nuke.author=Doctor Schrabauer book_lore.memo_schrab_nuke.author=Schrabauer博士
book_lore.memo_schrab_nuke.page.1=Our most recent investigation led us to the effects of nuclear explosions on materials. Thanks to our grant money, we *accidentally* tested our theory on direct saralloy synthesis from uranium. book_lore.memo_schrab_nuke.page.1=最近的调查使我们了解了核爆炸对材料造成的影响。多亏外界给我们的赠款,我们*意外地*测试了铀直接合成异变金属的理论。
book_lore.memo_schrab_nuke.page.2=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. book_lore.memo_schrab_nuke.page.2=而此前我们只在回旋加速器中制作出异变金属。但这次我们在对Everwerpen的地下拍摄中在该地点的铀矿石中发现了微量的异变金属。其附近所有的纯金属铀则都发生了裂变。
book_lore.memo_schrab_nuke.page.3=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. book_lore.memo_schrab_nuke.page.3=因此,如果有足够多的铀矿石集中在核弹周围,甚至可能只需要一个富含裂变物质废料的脏弹,就有可能制造出质量大到可以被直接收集的异变金属。
book_lore.insanity_1.name=Torn Page book_lore.insanity_1.name=残缺的纸张
book_lore.insanity_1.author=D Ferguson book_lore.insanity_1.author=D·弗格森
book_lore.insanity_1.page.1=August 6th $ $ Months, no, years worth of dicking about wrestling with investors and operating the greatest energy hog in the northern hemisphere has finally paid off. book_lore.insanity_1.page.1=August 6th $ $ Months, no, years worth of dicking about wrestling with investors and operating the greatest energy hog in the northern hemisphere has finally paid off.
book_lore.insanity_1.page.2=While we aren't entirely sure what exactly we found - given we ran gigavolt collisions on particles that were still poorly documented - the results couldn't have been more exciting. book_lore.insanity_1.page.2=While we aren't entirely sure what exactly we found - given we ran gigavolt collisions on particles that were still poorly documented - the results couldn't have been more exciting.
book_lore.insanity_1.page.3=We haven't found a name for whatever it is we've found, nor are we sure if we're looking at a new type of particle, a wormhole leading into another dimension, or satan's anus, but I'm sure our PR people can come up with something. book_lore.insanity_1.page.3=We haven't found a name for whatever it is we've found, nor are we sure if we're looking at a new type of particle, a wormhole leading into another dimension, or satan's anus, but I'm sure our PR people can come up with something.
book_lore.insanity_2.name=Torn Page book_lore.insanity_2.name=残缺的纸张
book_lore.insanity_2.author=D Ferguson book_lore.insanity_2.author=D·弗格森
book_lore.insanity_2.page.1=August 8th $ $ We've kept "The Thing" (yes that's what we call it for now) in magnetic isolation for the past days. Spectroscopy tests ended up breaking our spectrometer, but we managed to gain some useful data. book_lore.insanity_2.page.1=August 8th $ $ We've kept "The Thing" (yes that's what we call it for now) in magnetic isolation for the past days. Spectroscopy tests ended up breaking our spectrometer, but we managed to gain some useful data.
book_lore.insanity_2.page.2=For starters, this thing glows like a christmas tree, radiation photons of about every wavelength you could think of enveloped by a powerful infrared corona. The logical conclusion is that looking at it with your naked book_lore.insanity_2.page.2=For starters, this thing glows like a christmas tree, radiation photons of about every wavelength you could think of enveloped by a powerful infrared corona. The logical conclusion is that looking at it with your naked
book_lore.insanity_2.page.3=eye would most likely kill you. Now that begs the question: How can a particle this tiny radiate such immense energy? What are you hiding, little man? book_lore.insanity_2.page.3=eye would most likely kill you. Now that begs the question: How can a particle this tiny radiate such immense energy? What are you hiding, little man?
book_lore.insanity_3.name=Torn Page book_lore.insanity_3.name=残缺的纸张
book_lore.insanity_3.author=D Ferguson book_lore.insanity_3.author=D·弗格森
book_lore.insanity_3.page.1=August 22nd $ $ I haven't slept right in days. Doc said he couldn't find anything. Been on all sorts of medication now, but the headaches only get worse. Lab boys suspect it might be contamination from the incident two weeks ago. book_lore.insanity_3.page.1=August 22nd $ $ I haven't slept right in days. Doc said he couldn't find anything. Been on all sorts of medication now, but the headaches only get worse. Lab boys suspect it might be contamination from the incident two weeks ago.
book_lore.insanity_3.page.2=Doc said it's not that likely, ARS is different. I might need to take some time off if this continues. The Thing is still in containment, the lab boys speculate if the field goes down, the entire complex turns into a mushroom cloud. book_lore.insanity_3.page.2=Doc said it's not that likely, ARS is different. I might need to take some time off if this continues. The Thing is still in containment, the lab boys speculate if the field goes down, the entire complex turns into a mushroom cloud.
book_lore.insanity_3.page.3=I'm not sure how administration can keep this calm, but i don't get paid enough to waste thoughts on that. book_lore.insanity_3.page.3=I'm not sure how administration can keep this calm, but i don't get paid enough to waste thoughts on that.
book_lore.insanity_4.name=Torn Page book_lore.insanity_4.name=残缺的纸张
book_lore.insanity_4.author=D Ferguson book_lore.insanity_4.author=D·弗格森
book_lore.insanity_4.page.1=August 28th $ $ They denied my request for leave and I've been pushing through the past few days. Headaches are getting worse. I'm not the only one who's feeling it, either. Some of the lab boys are in a similar situation. book_lore.insanity_4.page.1=August 28th $ $ They denied my request for leave and I've been pushing through the past few days. Headaches are getting worse. I'm not the only one who's feeling it, either. Some of the lab boys are in a similar situation.
book_lore.insanity_4.page.2=All the while The Thing has left the complex - GOOD. Some suits came in yesterday and had it shipped off, god knows where. One of the lab boys, Zachary, said they're probably burying the containment vessel in the desert, slowly book_lore.insanity_4.page.2=All the while The Thing has left the complex - GOOD. Some suits came in yesterday and had it shipped off, god knows where. One of the lab boys, Zachary, said they're probably burying the containment vessel in the desert, slowly
book_lore.insanity_4.page.3=trying to "fizzle out" The Thing far off from civilization. I say let's shoot it into space. Needless to say, our investors cut all funding for the time being. I should start looking for another job. book_lore.insanity_4.page.3=trying to "fizzle out" The Thing far off from civilization. I say let's shoot it into space. Needless to say, our investors cut all funding for the time being. I should start looking for another job.
book_lore.insanity_5.name=Torn Page book_lore.insanity_5.name=残缺的纸张
book_lore.insanity_5.author=D Ferguson book_lore.insanity_5.author=D·弗格森
book_lore.insanity_5.page.1=September 11th $ $ I'm having this re-occurring nightmare. I'm walking around in an open space and there's these people everywhere, people in rubber suits and freakishly deformed faces. It's always the same nightmare, book_lore.insanity_5.page.1=September 11th $ $ I'm having this re-occurring nightmare. I'm walking around in an open space and there's these people everywhere, people in rubber suits and freakishly deformed faces. It's always the same nightmare,
book_lore.insanity_5.page.2=and one of the guys from the lab I've spoken with lately has had the same dream. Meanwhile my post has been rather boring, the accelerator has been shut down, all ongoing projects are on halt and our budget is slowly melting away. book_lore.insanity_5.page.2=and one of the guys from the lab I've spoken with lately has had the same dream. Meanwhile my post has been rather boring, the accelerator has been shut down, all ongoing projects are on halt and our budget is slowly melting away.
book_lore.insanity_5.page.3=Something is telling me that The Thing is still out there somewhere. I can feel it. book_lore.insanity_5.page.3=Something is telling me that The Thing is still out there somewhere. I can feel it.
book_lore.insanity_6.name=Torn Page book_lore.insanity_6.name=残缺的纸张
book_lore.insanity_6.author=D Ferguson book_lore.insanity_6.author=D·弗格森
book_lore.insanity_6.page.1=October 3rd $ $ Half the staff is dead, most of the rest is in the ICU. My condition hasn't changed in the past weeks, for better or worse. book_lore.insanity_6.page.1=October 3rd $ $ Half the staff is dead, most of the rest is in the ICU. My condition hasn't changed in the past weeks, for better or worse.
book_lore.insanity_6.page.2=Reality is starting to feel less and less real however. Sometimes I look up into the sky at night and hallucinate that thing we discovered all those weeks ago. book_lore.insanity_6.page.2=Reality is starting to feel less and less real however. Sometimes I look up into the sky at night and hallucinate that thing we discovered all those weeks ago.
book_lore.insanity_6.page.3=That same brilliant sheen of crimson that our spectrometer spat out. My doc says it's delirium and stress caused by the incident, and perhaps hes right, but the meds aren't working at all. book_lore.insanity_6.page.3=That same brilliant sheen of crimson that our spectrometer spat out. My doc says it's delirium and stress caused by the incident, and perhaps hes right, but the meds aren't working at all.
book_lore.insanity_7.name=Torn Page book_lore.insanity_7.name=残缺的纸张
book_lore.insanity_7.author=D Ferguson book_lore.insanity_7.author=D·弗格森
book_lore.insanity_7.page.1=December 12th $ $ I've been out of a job, but to be honest I'm somewhat thankful about it. My old workplace has gone up in flames - or so they say. book_lore.insanity_7.page.1=December 12th $ $ I've been out of a job, but to be honest I'm somewhat thankful about it. My old workplace has gone up in flames - or so they say.
book_lore.insanity_7.page.2=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert. book_lore.insanity_7.page.2=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert.
book_lore.insanity_7.page.3=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance. book_lore.insanity_7.page.3=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance.
@ -432,7 +434,7 @@ cannery.foundryChannel.3=当无法供应出口或模具时,材料将流入相
cannery.foundryChannel.4=剩余材料可以用铲子清除。 cannery.foundryChannel.4=剩余材料可以用铲子清除。
cannery.silex=FEL & SILEX cannery.silex=FEL & SILEX
cannery.silex.0=自由电子激光器FEL利用能量和激光晶体产生强大的激光束。 cannery.silex.0=自由电子激光器FEL利用能量和激光晶体产生强大的激光束。
cannery.silex.1=小心,因为激光会燃烧/熔化较弱的方块。。。 cannery.silex.1=小心,因为激光会烧毁或熔化较脆弱的方块…
cannery.silex.2=…但不是防爆的。 cannery.silex.2=…但不是防爆的。
cannery.silex.3=FEL用于为激光同位素分离室SILEX提供能量。FEL和SILEX必须至少相隔两个方块。 cannery.silex.3=FEL用于为激光同位素分离室SILEX提供能量。FEL和SILEX必须至少相隔两个方块。
cannery.silex.4=激光必须通过SILEX的玻璃开口进入。在错误的方向上入射可能会摧毁它。 cannery.silex.4=激光必须通过SILEX的玻璃开口进入。在错误的方向上入射可能会摧毁它。
@ -500,6 +502,7 @@ chem.LPG=石油天然气液化
chem.LUBRICANT=润滑剂混合 chem.LUBRICANT=润滑剂混合
chem.METH=甲基苯丙胺合成 chem.METH=甲基苯丙胺合成
chem.NITAN=NITAN牌超级燃料混合 chem.NITAN=NITAN牌超级燃料混合
chem.NITRIC_ACID=硝酸生产
chem.OIL_SAND=沥青砂提取 chem.OIL_SAND=沥青砂提取
chem.OSMIRIDIUM_DEATH=锇酸溶液生产 chem.OSMIRIDIUM_DEATH=锇酸溶液生产
chem.PEROXIDE=过氧化氢生产 chem.PEROXIDE=过氧化氢生产
@ -527,6 +530,7 @@ chem.SF_PETROLEUM=石油气固化
chem.SF_RECLAIMED=再生油固化 chem.SF_RECLAIMED=再生油固化
chem.SF_SMEAR=工业油固化 chem.SF_SMEAR=工业油固化
chem.SOLID_FUEL=固体火箭燃料生产 chem.SOLID_FUEL=固体火箭燃料生产
chem.SOLVENT=有机溶剂混合
chem.STEAM=烧水 chem.STEAM=烧水
chem.SULFURIC_ACID=硫酸生产 chem.SULFURIC_ACID=硫酸生产
chem.TEL=四乙基铅混合 chem.TEL=四乙基铅混合
@ -670,6 +674,7 @@ container.soyuzLauncher=联盟号发射平台
container.storageDrum=核废料处理桶 container.storageDrum=核废料处理桶
container.teleLinker=炮塔ID管理 container.teleLinker=炮塔ID管理
container.teleporter=传送机 container.teleporter=传送机
container.turbinegas=联合循环燃气轮机
container.turretArty=重炮炮塔“格雷格” container.turretArty=重炮炮塔“格雷格”
container.turretChekhov=重机枪炮塔“契诃夫的枪” container.turretChekhov=重机枪炮塔“契诃夫的枪”
container.turretFriendly=轻机枪炮塔“友好先生” container.turretFriendly=轻机枪炮塔“友好先生”
@ -679,6 +684,7 @@ container.turretHoward=双联守门员近防系统“霍华德”
container.turretJeremy=重炮炮塔“杰里米” container.turretJeremy=重炮炮塔“杰里米”
container.turretMaxwell=高能微波炮塔”麦克斯韦” container.turretMaxwell=高能微波炮塔”麦克斯韦”
container.turretRichard= 火箭炮塔“理查德” container.turretRichard= 火箭炮塔“理查德”
container.turretSentry=哨兵炮塔“布朗”
container.turretTauon=陶子发射器炮塔“陶恩” container.turretTauon=陶子发射器炮塔“陶恩”
container.uf6_tank=六氟化铀储罐 container.uf6_tank=六氟化铀储罐
container.wasteDrum=乏燃料池 container.wasteDrum=乏燃料池
@ -751,12 +757,6 @@ death.attack.taint=%1$s 死于恶性肿瘤
death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿 death.attack.tau=%1$s 被 %2$s 用带负电荷的陶子射穿
death.attack.tauBlast=%1$s 对XVL1456充能时间过长被炸成碎片 death.attack.tauBlast=%1$s 对XVL1456充能时间过长被炸成碎片
death.attack.teleporter=%1$s 被传送到虚空 death.attack.teleporter=%1$s 被传送到虚空
desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$
desc.item.rtgDecay=衰变为:%s
desc.item.rtgHeat=功率级别:%s
desc.item.wasteCooling=在乏燃料池中冷却
desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻
desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻
desc.gui.assembler.warning=§c错误§r此机器需要装配机模板 desc.gui.assembler.warning=§c错误§r此机器需要装配机模板
desc.gui.chemplant.warning=§c错误§r此机器需要化工厂模板 desc.gui.chemplant.warning=§c错误§r此机器需要化工厂模板
desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。 desc.gui.gasCent.enrichment=§2浓缩§r$浓缩铀需要串联$两个离心机串联将离心出$铀燃料,四个离心机串联$将完全分离出铀235。
@ -773,6 +773,9 @@ desc.gui.rtg.pellets=接受的靶丸:
desc.gui.rtg.pelletHeat=%s (%s 热量) desc.gui.rtg.pelletHeat=%s (%s 热量)
desc.gui.rtg.pelletPower=%s (%s HE/刻) desc.gui.rtg.pelletPower=%s (%s HE/刻)
desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。 desc.gui.template=§9模板§r$模板可由$机器模板文件夹制作。
desc.gui.turbinegas.automode=§2自动涡轮机节流模式§r$通过单击“AUTO”按钮涡轮机$将根据网络所需的功率自动调整发电量$
desc.gui.turbinegas.fuels=§6可接受的燃料§r
desc.gui.turbinegas.warning=§c燃油或润滑油液位低§r
desc.gui.upgrade=§l可接受的升级§r desc.gui.upgrade=§l可接受的升级§r
desc.gui.upgrade.afterburner=*§d加力燃烧§r堆叠至3级 desc.gui.upgrade.afterburner=*§d加力燃烧§r堆叠至3级
desc.gui.upgrade.effectiveness=*§a效率§r堆叠至3级 desc.gui.upgrade.effectiveness=*§a效率§r堆叠至3级
@ -783,6 +786,136 @@ desc.gui.zirnox.coolant=§3冷却剂§r$CO2将热量从堆芯转移到水中$这
desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁! desc.gui.zirnox.pressure=§6压力§r$排放二氧化碳可以降低压力$然而,压力过低,冷却效率和蒸汽产量将降低$小心熔毁!
desc.gui.zirnox.warning1=§c错误§r反应堆正常运行需要水 desc.gui.zirnox.warning1=§c错误§r反应堆正常运行需要水
desc.gui.zirnox.warning2=§c错误§r二氧化碳是反应堆正常运行所必需的 desc.gui.zirnox.warning2=§c错误§r二氧化碳是反应堆正常运行所必需的
desc.item.ammo.con_accuracy2=- 精度大幅降低
desc.item.ammo.con_damage=- 伤害大幅降低
desc.item.ammo.con_heavy_wear=- 大幅增加磨损
desc.item.ammo.con_ling_fire=- 没有火焰
desc.item.ammo.con_nn=- 甚至没有核爆
desc.item.ammo.con_no_damage=- 没有伤害
desc.item.ammo.con_no_explode1=- 非爆炸性
desc.item.ammo.con_no_explode2=- 不破坏方块
desc.item.ammo.con_no_explode3=- 无破片伤害
desc.item.ammo.con_no_fire=- 不能引起燃烧
desc.item.ammo.con_no_mirv=- 不建议在原始MIRV上使用
desc.item.ammo.con_no_projectile=- 无抛射物
desc.item.ammo.con_penetration=- 无穿透能力
desc.item.ammo.con_radius=- 减小爆炸半径
desc.item.ammo.con_range2=- 大幅降低射程
desc.item.ammo.con_sing_projectile=- 单个弹头
desc.item.ammo.con_speed=- 弹丸速度降低
desc.item.ammo.con_super_wear=- 磨损严重增加
desc.item.ammo.con_wear=- 加剧磨损
desc.item.ammo.neu_40mm=* 这是一枚40毫米的榴弹我们把它挤到枪管里
desc.item.ammo.neu_blank=* 这是空包弹
desc.item.ammo.neu_boat=* 船
desc.item.ammo.neu_boxcar=* 车厢
desc.item.ammo.neu_building=* 建筑物
desc.item.ammo.neu_chlorophyte=* 叶绿
desc.item.ammo.neu_eraser=* 用于消除重大错误
desc.item.ammo.neu_fun=* 全家其乐无穷!
desc.item.ammo.neu_heavy_metal=* 重金属
desc.item.ammo.neu_homing=* 追踪
desc.item.ammo.neu_jolt=* 震荡
desc.item.ammo.neu_less_bouncy=* 弹性更小
desc.item.ammo.neu_maskman_flechette=* 曳光弹,同时引发一场贫铀飞镖弹风暴
desc.item.ammo.neu_maskman_meteorite=* 高伤害,同时召唤小陨石
desc.item.ammo.neu_more_bouncy=* 额外弹性
desc.item.ammo.neu_no_bounce=* 没有弹性
desc.item.ammo.neu_no_con=* 没有缺点
desc.item.ammo.neu_starmetal=* 星辉金属
desc.item.ammo.neu_tracer=* 示踪剂
desc.item.ammo.neu_uhh=* Uhhh
desc.item.ammo.neu_warcrime1=* 从技术上讲犯下了战争罪
desc.item.ammo.neu_warcrime2=* 一发触犯两条战争罪!
desc.item.ammo.pro_accurate1=+ 提升精度
desc.item.ammo.pro_accurate2=+ 近乎完美的精度
desc.item.ammo.pro_balefire=+ 野火
desc.item.ammo.pro_bomb_count=+ 炸弹数量增加
desc.item.ammo.pro_caustic=+ 腐蚀性
desc.item.ammo.pro_chainsaw=+ 电锯
desc.item.ammo.pro_chlorine=+ 氯气
desc.item.ammo.pro_damage=+ 提升伤害
desc.item.ammo.pro_damage_slight=+ 高于平均伤害
desc.item.ammo.pro_emp=+ EMP
desc.item.ammo.pro_explosive=+ 爆炸
desc.item.ammo.pro_fallout=+ 辐射尘
desc.item.ammo.pro_fit_357=+ 适用于所有.357枪械
desc.item.ammo.pro_flames=+ 火焰喷射量增加
desc.item.ammo.pro_gravity=+ 下坠降低
desc.item.ammo.pro_heavy_damage=+ 大幅增加伤害
desc.item.ammo.pro_incendiary=+ 能引起燃烧
desc.item.ammo.pro_lunatic=+ 疯子
desc.item.ammo.pro_marauder=+ 立即消除烦人的和不平衡的敌人
desc.item.ammo.pro_mining=+ 爆炸使所有方块掉落
desc.item.ammo.pro_no_gravity=+ 不受重力影响
desc.item.ammo.pro_nuclear=+ 核爆
desc.item.ammo.pro_penetration=+ 穿透
desc.item.ammo.pro_percussion=+ 冲击波
desc.item.ammo.pro_phosphorus=+ 可致磷烧伤
desc.item.ammo.pro_phosphorus_splash=+ 磷飞溅
desc.item.ammo.pro_poison_gas=+ 毒物飞溅
desc.item.ammo.pro_radius=+ 增加爆炸半径
desc.item.ammo.pro_radius_high=+ 大幅增加爆炸半径
desc.item.ammo.pro_range=+ 增加射程
desc.item.ammo.pro_rocket=+ 火箭
desc.item.ammo.pro_rocket_propelled=+ 火箭推进
desc.item.ammo.pro_shrapnel=+ 破片
desc.item.ammo.pro_speed=+ 提高弹头飞行速度
desc.item.ammo.pro_stunning=+ 眩晕
desc.item.ammo.pro_toxic=+ 剧毒
desc.item.ammo.pro_wear=+ 减少磨损
desc.item.ammo.pro_withering=+ 凋零
desc.item.armorMod.display=显示已安装的装甲模块
desc.item.battery.charge=储能: %s / %sHE
desc.item.battery.chargePerc=储能: %s%%
desc.item.battery.chargeRate=充电效率: %sHE/刻
desc.item.battery.dischargeRate=放电效率: %sHE/刻
desc.item.durability=耐久: %s
desc.item.grenade.fuse=引信: %s
desc.item.grenade.fuseImpact=碰炸
desc.item.grenade.fuseInstant=瞬发
desc.item.gun.ammo=弹药 %s
desc.item.gun.ammoBelt=从背包中使用
desc.item.gun.ammoEnergy=能耗; %sHE 每发
desc.item.gun.ammoEnergyAlt=%sHE 每发
desc.item.gun.ammoMag=%s / %s
desc.item.gun.ammoType=弹药类型: %s
desc.item.gun.ammoTypeAlt=辅助弹药: %s
desc.item.gun.damage=伤害: %s - %s
desc.item.gun.damageAlt=伤害: %s
desc.item.gun.lore=查看深入的知识
desc.item.gun.loreFunc=查看深入功能
desc.item.gun.manufacturer=制造商: %s
desc.item.gun.name=名称: %s
desc.item.gun.penetration=装甲穿透值: %s
desc.item.kitArmor=装甲将被新的装备取代。
desc.item.kitHaz=装甲将被防护服取代。
desc.item.kitPack=真便宜!
desc.item.kitPool=请在打开前清空背包库存!
desc.item.pileRod=§e使用钻孔石墨插入$§E使用螺丝刀拔出$
desc.item.rtgDecay=衰变为:%s
desc.item.rtgHeat=功率级别:%s
desc.item.storage.capacity=容量 %s%%s
desc.item.storage.proscons=查看利弊列表
desc.misc.357=.357 马格南
desc.misc.556=.223 雷明顿
desc.misc.762=.308 温彻斯特
desc.misc.func=§n-- 作用 --
desc.misc.lanthanum="镧"
desc.misc.lctrl=§8按住 <§e§o左CTRL§8§o> %s
desc.misc.lore=§n-- 知识 --
desc.misc.lshift=§8按住 <§e§o左SHIFT§8§o> %s
desc.misc.luna=§o20x155mm Lunatic
desc.misc.meltPoint=熔点: §c%s
desc.misc.noPos=未设置位置!
desc.misc.pos=将位置设置为:%s%s%s
desc.misc.posSet=位置已设置!
desc.item.wasteCooling=在乏燃料池中冷却
desc.item.zirnoxBreedingRod=§2[ZIRNOX增殖棒]$§e放在燃料棒旁边增殖$§e持续 %d 刻
desc.item.zirnoxRod=§a[ZIRNOX燃料棒]$§e每刻产生 %1$d 热量$§e持续 %2$d 刻
digamma.playerDigamma=玩家F-迪伽马辐照水平: digamma.playerDigamma=玩家F-迪伽马辐照水平:
digamma.playerHealth=玩家所受F-迪伽马辐照影响: digamma.playerHealth=玩家所受F-迪伽马辐照影响:
digamma.playerRes=玩家F-迪伽马防护水平: digamma.playerRes=玩家F-迪伽马防护水平:
@ -822,6 +955,127 @@ geiger.playerRad=玩家辐射:
geiger.playerRes=辐射抗性: geiger.playerRes=辐射抗性:
geiger.title=盖革计数器 geiger.title=盖革计数器
geiger.title.dosimeter=剂量计 geiger.title.dosimeter=剂量计
gun.make.ARMALITE=阿玛莱特公司
gun.make.AUTO_ORDINANCE=美国自动武器公司
gun.make.BAE=英国宇航系统公司
gun.make.BENELLI=伯奈利武器公司
gun.make.BLACK_MESA=黑山研究所
gun.make.CERIX=赛里克斯·马格努斯锻造世界
gun.make.COLT=柯尔特制造公司
gun.make.COMBINE=世界工会
gun.make.CUBE=Cube 2: Sauerbraten
gun.make.ENZINGER=Enzinger工会
gun.make.EQUESTRIA=小马国导弹系统
gun.make.FLIMFLAM=FlimFlam“欺骗”工业
gun.make.F_STRONG=史特朗堡
gun.make.GLORIA=GLORIA公司
gun.make.HASBRO=孩之宝
gun.make.H_AND_K=黑克勒和科赫武器公司
gun.make.H_AND_R=哈林顿-理查森武器公司
gun.make.IF=蹄铁军工
gun.make.IMI=以色列军事工业
gun.make.IMI_BIGMT=以色列军事工业公司/大型MT
gun.make.LANGFORD=朗福德研究实验室
gun.make.LUNA=月球防御公司
gun.make.MAGNUM_R_IMI=马格南研究公司 / 以色列军事工业公司
gun.make.MANN=Open Mann Co.
gun.make.MAXIM=海勒姆·马克沁
gun.make.METRO=地铁枪手
gun.make.MWT=MWT原型实验室
gun.make.NAZI=埃尔福特机械制造厂
gun.make.NONE=-
gun.make.RAYTHEON=导弹系统公司
gun.make.ROCKWELL=罗克韦尔国际公司
gun.make.ROCKWELL_U=罗克韦尔国际公司?
gun.make.RYAN=莱恩工业
gun.make.SAAB=萨博博福斯动力公司
gun.make.SACO=萨科防卫军械
gun.make.TULSKY=图拉武器厂
gun.make.UAC=联合宇宙航空公司
gun.make.UNKNOWN=???
gun.make.WESTTEK=WestTek研究设施
gun.make.WGW=威廉·古斯特洛夫·维尔克
gun.make.WINCHESTER=温彻斯特速射武器公司
gun.make.WINCHESTER_BIGMT=温彻斯特速射武器公司/大型MT
gun.name.ar15_50=AR-15 .50BMG型
gun.name.baeAR=英国制式突击步枪
gun.name.bel=野火蛋发射器
gun.name.benelli=伯奈利M4 Super 90霰弹枪
gun.name.benelliDrum=伯奈利M4 Super 90霰弹枪 (泵动供弹改进型)
gun.name.bio=RI No. 2 Mark 1
gun.name.bolter=Manticora Pattern爆弹枪
gun.name.cPython=柯尔特蟒蛇
gun.name.cz53=CZ53 单兵转轮机枪
gun.name.cz57=CZ57 复仇者机枪
gun.name.dart=针枪
gun.name.deagle=以色列军事工业公司沙漠之鹰
gun.name.emp=EMP投射器
gun.name.extinguisher=PROTEX灭火器6kg
gun.name.ffiV=FFI Viper
gun.name.ffiVInox=FFI Viper Inox
gun.name.ffiVLead=FFI Viper Lead
gun.name.ffiVN1=FFI Viper N1
gun.name.ffiVN2=FFI Viper N2
gun.name.ffiVUltra=FFI Viper Ultra
gun.name.ffivBling=FFI Viper Bling
gun.name.ffivSatur=FFI Viper D-25A
gun.name.g36=HK G36突击步枪
gun.name.gPistol=HK69A1 手持单发榴弹发射器
gun.name.gustav=卡尔·古斯塔夫M1无后坐力炮
gun.name.ifHorseshoe=IF-18 蹄铁
gun.name.ifPit=IF-18 蹄铁 Bottomless Pit
gun.name.ifScope=IF-18 蹄铁 Scoped
gun.name.ifStorm=IF-18 蹄铁 Silver Storm
gun.name.ifVanity=IF-18 蹄铁 Vanity
gun.name.karl=M1 卡尔·古斯塔夫
gun.name.ks23=KS-23霰弹枪
gun.name.lacunae=Auntie Lacunae
gun.name.lasetDet=霍普维尔激光雷管
gun.name.lunaAR=1986 Bishamonten式突击步枪
gun.name.lunaGun=1978 Rāhula type Standard Issue Sidearm (Revision 2)
gun.name.lunaHLR=1944 Chang'e type Light Machine Gun
gun.name.lunaShotty=1978 Guan Yu type Scattergun (Revision 1)
gun.name.lunaSMG=1956 ānanda type Submachine Gun
gun.name.lunaSniper=1915 Hou Yi type Anti-Material Rifle
gun.name.lunaTWR=Time Warp Rifle
gun.name.m2=M2式勃朗宁大口径重机枪
gun.name.m42=M-42战术核弹发射器
gun.name.m42MIRV=M-42实验MIRV
gun.name.m60=7.62毫米口径M60机枪
gun.name.maxim=马克沁机枪
gun.name.maximDouble=双重马克沁机枪
gun.name.mg3=MG-42通用机枪
gun.name.mp40=MP40冲锋枪
gun.name.nerf=某些无良记者眼中的大规模杀伤性武器
gun.name.osipr=守望标准型脉冲步枪
gun.name.panz=反坦克火箭来复枪 54
gun.name.quadro=OpenQuadro便携式导弹发射器
gun.name.revolverCursed=不列颠标准问题电动手枪
gun.name.sauer=绍尔猎枪
gun.name.spas12=弗兰基SPAS-12式12号霰弹枪
gun.name.spiw=H&R SPIW
gun.name.stinger=FIM-92毒刺便携式防空系统
gun.name.stingerOneSky=The One Sky 毒刺便携式防空系统
gun.name.supershotty=双管战斗霰弹枪
gun.name.tau=XVL1456 陶子加农炮
gun.name.tommy9=M1A1冲锋枪9毫米型
gun.name.tommy=M1A1冲锋枪
gun.name.topaz=重型火焰燃烧器
gun.name.uacCarbine=UAC-41卡宾枪
gun.name.uacDeagle=UAC-H54 "Martian Raptor" Automag
gun.name.uacDMR=UAC-30 Designated Marksman Rifle
gun.name.uacLMG=UAC-49 Light Machine Gun
gun.name.uacPistol=UAC-B950 .45 Standard Issue Handgun
gun.name.uacSMG=UAC-17 Compact Sub-Machine Gun
gun.name.uboinik=Uboinik Revolving Shotgun
gun.name.uzi=IMI Uzi
gun.name.uziSatur=IMI Uzi D-25A
gun.name.win1887=温彻斯特M1887杠杆式连发霰弹枪
gun.name.win1887Inox=温彻斯特M1887杠杆式连发霰弹枪 Inox
gun.name.win20Inox=温彻斯特20型Inox
gun.name.win20Poly=温彻斯特20型聚合物
gun.name.win20Satur=温彻斯特20型 D-25A
gun.name.zomg=EMC101棱镜负能量炮
hadron.analysis=正在分析... hadron.analysis=正在分析...
hadron.buttonOn=分析室启动(如果存在) hadron.buttonOn=分析室启动(如果存在)
hadron.buttonOff=分析室关闭 hadron.buttonOff=分析室关闭
@ -881,6 +1135,8 @@ hbmfluid.balefire=野火火箭燃料
hbmfluid.biofuel=生物燃料 hbmfluid.biofuel=生物燃料
hbmfluid.biogas=沼气 hbmfluid.biogas=沼气
hbmfluid.bitumen=沥青 hbmfluid.bitumen=沥青
hbmfluid.blood=血
hbmfluid.blood_hot=热的血
hbmfluid.carbondioxide=二氧化碳 hbmfluid.carbondioxide=二氧化碳
hbmfluid.coalcreosote=煤焦杂酚油 hbmfluid.coalcreosote=煤焦杂酚油
hbmfluid.coalgas=煤汽油 hbmfluid.coalgas=煤汽油
@ -920,9 +1176,11 @@ hbmfluid.mug_hot=热的Mug牌树根饮料
hbmfluid.naphtha=石脑油 hbmfluid.naphtha=石脑油
hbmfluid.naphtha_crack=裂化石脑油 hbmfluid.naphtha_crack=裂化石脑油
hbmfluid.nitan=NITAN牌100号超级燃料 hbmfluid.nitan=NITAN牌100号超级燃料
hbmfluid.nitric_acid=硝酸
hbmfluid.none=无 hbmfluid.none=无
hbmfluid.oil=原油 hbmfluid.oil=原油
hbmfluid.oxygen=液氧 hbmfluid.oxygen=液氧
hbmfluid.oxyhydrogen=氢氧混合气
hbmfluid.pain=Pn(III) 钽铁溶液 hbmfluid.pain=Pn(III) 钽铁溶液
hbmfluid.petroil=汽油 hbmfluid.petroil=汽油
hbmfluid.petroil_leaded=含铅石油 hbmfluid.petroil_leaded=含铅石油
@ -940,10 +1198,12 @@ hbmfluid.sas3=三硫化Sa
hbmfluid.schrabidic=Sa酸 hbmfluid.schrabidic=Sa酸
hbmfluid.seedslurry=播种浆料 hbmfluid.seedslurry=播种浆料
hbmfluid.smear=工业油 hbmfluid.smear=工业油
hbmfluid.solvent=有机溶剂
hbmfluid.spentsteam=低压蒸汽 hbmfluid.spentsteam=低压蒸汽
hbmfluid.steam=蒸汽 hbmfluid.steam=蒸汽
hbmfluid.sulfuric_acid=硫酸 hbmfluid.sulfuric_acid=硫酸
hbmfluid.superhotsteam=超热蒸汽 hbmfluid.superhotsteam=超热蒸汽
hbmfluid.syngas=合成气
hbmfluid.tritium=氚 hbmfluid.tritium=氚
hbmfluid.uf6=六氟化铀 hbmfluid.uf6=六氟化铀
hbmfluid.ultrahotsteam=超浓密蒸汽 hbmfluid.ultrahotsteam=超浓密蒸汽
@ -1091,6 +1351,7 @@ item.ammo_12gauge.name=12号鹿弹
item.ammo_12gauge_du.name=12号鹿弹[铀涂层] item.ammo_12gauge_du.name=12号鹿弹[铀涂层]
item.ammo_12gauge_incendiary.name=12号鹿弹[燃烧] item.ammo_12gauge_incendiary.name=12号鹿弹[燃烧]
item.ammo_12gauge_marauder.name=12号战术反掠夺鹿弹 item.ammo_12gauge_marauder.name=12号战术反掠夺鹿弹
item.ammo_12gauge_percussion.name=12号冲击火药帽
item.ammo_12gauge_shrapnel.name=12号鹿弹[榴霰弹] item.ammo_12gauge_shrapnel.name=12号鹿弹[榴霰弹]
item.ammo_12gauge_sleek.name=12号鹿弹[IF-R&D] item.ammo_12gauge_sleek.name=12号鹿弹[IF-R&D]
item.ammo_20gauge.name=20号鹿弹 item.ammo_20gauge.name=20号鹿弹
@ -1117,6 +1378,9 @@ item.ammo_44_pip.name=.44马格南子弹[车厢]
item.ammo_44_rocket.name=.44马格南火箭 item.ammo_44_rocket.name=.44马格南火箭
item.ammo_44_silver.name=.44马格南子弹[建筑] item.ammo_44_silver.name=.44马格南子弹[建筑]
item.ammo_44_star.name=.44马格南子弹[星辉] item.ammo_44_star.name=.44马格南子弹[星辉]
item.ammo_45.name=.45 ACP 子弹
item.ammo_45_ap.name=.45 ACP 子弹[AP]
item.ammo_45_du.name=.45 ACP 子弹[贫铀]
item.ammo_4gauge.name=四号鹿弹 item.ammo_4gauge.name=四号鹿弹
item.ammo_4gauge_balefire.name=23mm野火榴弹 item.ammo_4gauge_balefire.name=23mm野火榴弹
item.ammo_4gauge_canister.name=23mm 火箭弹[榴霰弹] item.ammo_4gauge_canister.name=23mm 火箭弹[榴霰弹]
@ -1171,6 +1435,12 @@ item.ammo_5mm_star.name=5mm子弹[星辉]
item.ammo_75bolt.name=.75弹匣(30发) item.ammo_75bolt.name=.75弹匣(30发)
item.ammo_75bolt_incendiary.name=.75燃烧弹匣(30发) item.ammo_75bolt_incendiary.name=.75燃烧弹匣(30发)
item.ammo_75bolt_he.name=.75高爆弹匣(30发) item.ammo_75bolt_he.name=.75高爆弹匣(30发)
item.ammo_762.name=7.62mm 子弹
item.ammo_762_ap.name=7.62mm 子弹[AP]
item.ammo_762_du.name=7.62mm 子弹[贫铀]
item.ammo_762_k.name=7.62mm 空包弹
item.ammo_762_phosphorus.name=7.62mm 子弹[白磷]
item.ammo_762_tracer.name=7.62mm 子弹[曳光]
item.ammo_9mm.name=9mm子弹 item.ammo_9mm.name=9mm子弹
item.ammo_9mm_ap.name=9mm子弹[AP] item.ammo_9mm_ap.name=9mm子弹[AP]
item.ammo_9mm_chlorophyte.name=9mm子弹[叶绿] item.ammo_9mm_chlorophyte.name=9mm子弹[叶绿]
@ -1215,6 +1485,9 @@ item.ammo_grenade_toxic.name=40mm榴弹[化学]
item.ammo_grenade_tracer.name=40mm训练榴弹 item.ammo_grenade_tracer.name=40mm训练榴弹
item.ammo_himars_standard.name=M28制导炮兵火箭弹舱 item.ammo_himars_standard.name=M28制导炮兵火箭弹舱
item.ammo_himars_single.name=M39A1制导炮兵火箭弹舱 item.ammo_himars_single.name=M39A1制导炮兵火箭弹舱
item.ammo_luna.name=Lunatic狙击弹
item.ammo_luna_explosive.name=Lunatic狙击爆炸弹
item.ammo_luna_incendiary.name=Lunatic狙击燃烧弹
item.ammo_mirv.name=迷你MIRV item.ammo_mirv.name=迷你MIRV
item.ammo_mirv_high.name=迷你MIRV (高当量) item.ammo_mirv_high.name=迷你MIRV (高当量)
item.ammo_mirv_low.name=迷你MIRV (低当量) item.ammo_mirv_low.name=迷你MIRV (低当量)
@ -1294,7 +1567,9 @@ item.asbestos_helmet.name=防火头盔
item.asbestos_legs.name=防火护腿 item.asbestos_legs.name=防火护腿
item.asbestos_plate.name=防火胸甲 item.asbestos_plate.name=防火胸甲
item.ashglasses.name=防灰烬护目镜 item.ashglasses.name=防灰烬护目镜
item.assembly_45.name=.45 ACP子弹[待装配]
item.assembly_556.name=5.56mm子弹[待装配] item.assembly_556.name=5.56mm子弹[待装配]
item.assembly_762.name=7.62mm子弹[待装配]
item.assembly_actionexpress.name=.50 AE子弹[待装配] item.assembly_actionexpress.name=.50 AE子弹[待装配]
item.assembly_calamity.name=.50 BMG子弹[待装配] item.assembly_calamity.name=.50 BMG子弹[待装配]
item.assembly_desh.name=Desh子弹[待装配] item.assembly_desh.name=Desh子弹[待装配]
@ -1302,6 +1577,7 @@ item.assembly_gold.name=金子弹[待装配]
item.assembly_iron.name=铁子弹[待装配] item.assembly_iron.name=铁子弹[待装配]
item.assembly_lacunae.name=.5mm子弹[待装配] item.assembly_lacunae.name=.5mm子弹[待装配]
item.assembly_lead.name=玻璃子弹[待装配] item.assembly_lead.name=玻璃子弹[待装配]
item.assembly_luna.name=Lunatic狙击子弹[待装配]
item.assembly_nightmare.name=钨子弹[待装配] item.assembly_nightmare.name=钨子弹[待装配]
item.assembly_nopip.name=.44马格南[待装配] item.assembly_nopip.name=.44马格南[待装配]
item.assembly_nuke.name=迷你核弹外壳 item.assembly_nuke.name=迷你核弹外壳
@ -1312,7 +1588,7 @@ item.assembly_steel.name=铅子弹[待装配]
item.assembly_template.name=装配机模板: item.assembly_template.name=装配机模板:
item.assembly_uzi.name=.22 LR子弹[待装配] item.assembly_uzi.name=.22 LR子弹[待装配]
item.attachment_mask.name=附加型防毒面具 item.attachment_mask.name=附加型防毒面具
item.attachment_mask_mono.name=可接入式防一氧化碳面罩 item.attachment_mask_mono.name=可接入式半面罩防毒面具
item.australium_iii.name=MkIII寿命延长剂 item.australium_iii.name=MkIII寿命延长剂
item.australium_iv.name=MkIV寿命延长剂 item.australium_iv.name=MkIV寿命延长剂
item.australium_v.name=MkV寿命延长剂 item.australium_v.name=MkV寿命延长剂
@ -1323,6 +1599,7 @@ item.balefire_scrambled.name=炒野火蛋
item.ball_dynamite.name=硝糖炸药 item.ball_dynamite.name=硝糖炸药
item.ball_fireclay.name=耐火粘土 item.ball_fireclay.name=耐火粘土
item.ball_tnt.name=TNT炸药 item.ball_tnt.name=TNT炸药
item.ballistic_gauntlet.name=防弹护具
item.ballistite.name=混合无烟火药 item.ballistite.name=混合无烟火药
item.bandaid.name=邦迪创可贴 item.bandaid.name=邦迪创可贴
item.bathwater.name=有毒肥皂水 item.bathwater.name=有毒肥皂水
@ -1443,12 +1720,7 @@ item.blade_meteorite.name=陨石刀
item.blade_titanium.name=钛扇片 item.blade_titanium.name=钛扇片
item.blade_tungsten.name=钨强化扇片 item.blade_tungsten.name=钨强化扇片
item.blades_advanced_alloy.name=高级合金刀片 item.blades_advanced_alloy.name=高级合金刀片
item.blades_aluminium.name=铝制刀片
item.blades_combine_steel.name=CMB钢刀片
item.blades_desh.name=Desh制刀片 item.blades_desh.name=Desh制刀片
item.blades_gold.name=金制刀片
item.blades_iron.name=铁制刀片
item.blades_schrabidium.name=Sa326刀片
item.blades_steel.name=钢制刀片 item.blades_steel.name=钢制刀片
item.blades_titanium.name=钛制刀片 item.blades_titanium.name=钛制刀片
item.blowtorch.name=喷灯 item.blowtorch.name=喷灯
@ -1530,36 +1802,62 @@ item.canister_petroil.name=桶装汽油
item.canister_reoil.name=桶装再生油 item.canister_reoil.name=桶装再生油
item.canister_smear.name=桶装工业油 item.canister_smear.name=桶装工业油
item.canned_asbestos.name=石棉罐头 item.canned_asbestos.name=石棉罐头
item.canned_asbestos.desc=尝尝石棉肺!
item.canned_ass.name=驴罐头 item.canned_ass.name=驴罐头
item.canned_ass.desc=100%优质驴肉!*
item.canned_bark.name=松树皮罐头 item.canned_bark.name=松树皮罐头
item.canned_bark.desc=更加的“松”脆!
item.canned_beef.name=牛肉罐头 item.canned_beef.name=牛肉罐头
item.canned_beef.desc=几个世纪前,一头牛为此而死。
item.canned_bhole.name=黑洞罐头 item.canned_bhole.name=黑洞罐头
item.canned_bhole.desc=奇点是我肚肚里的美味!
item.canned_cheese.name=融化奶酪罐头 item.canned_cheese.name=融化奶酪罐头
item.canned_cheese.desc=是奶酪吗?是橡胶水泥吗?谁知道,谁在乎。
item.canned_chinese.name=中餐罐头 item.canned_chinese.name=中餐罐头
item.canned_diesel.name=柴油 item.canned_chinese.desc=在中国,中餐被称为饭。
item.canned_diesel.name=柴油罐头
item.canned_diesel.desc=我渐渐地就抖不出包袱了
item.canned_fist.name=拳头罐头 item.canned_fist.name=拳头罐头
item.canned_fist.desc=给你一拳!
item.canned_fried.name=炸鸡罐头 item.canned_fried.name=炸鸡罐头
item.canned_fried.desc=甚至罐头都是油炸的!
item.canned_hotdogs.name=热狗罐头 item.canned_hotdogs.name=热狗罐头
item.canned_hotdogs.desc=不要与冷猫混淆。
item.canned_jizz.name=FlimFlam工业牌?马奶罐头 item.canned_jizz.name=FlimFlam工业牌?马奶罐头
item.canned_jizz.desc=等等什么——
item.canned_kerosene.name=煤油罐头 item.canned_kerosene.name=煤油罐头
item.canned_kerosene.desc=想象一下这句俏皮的台词。
item.canned_leftovers.name=剩菜罐头 item.canned_leftovers.name=剩菜罐头
item.canned_leftovers.desc=你来的太迟了
item.canned_milk.name=罐装炼乳 item.canned_milk.name=罐装炼乳
item.canned_milk.desc=牛奶2比以往任何时候都更固体
item.canned_mystery.name=神秘肉类罐头 item.canned_mystery.name=神秘肉类罐头
item.canned_mystery.desc=里面是什么?只有一种方法可以找到!
item.canned_napalm.name=凝固汽油罐头 item.canned_napalm.name=凝固汽油罐头
item.canned_napalm.desc=我喜欢早上闻着老梗的味道!
item.canned_oil.name=机油罐头 item.canned_oil.name=机油罐头
item.canned_oil.desc=它既然能让发动机运转的更流畅,那为什么不能用在人类身上?
item.canned_pashtet.name=牛排罐头 item.canned_pashtet.name=牛排罐头
item.canned_pashtet.desc=翻译服务不可用блядь!
item.canned_pizza.name=意大利香肠比萨罐头 item.canned_pizza.name=意大利香肠比萨罐头
item.canned_pizza.desc=反人类罪
item.canned_recursion.name=循环罐头 item.canned_recursion.name=循环罐头
item.canned_recursion.desc=封闭递归
item.canned_spam.name=SPAM斯帕姆午餐肉 item.canned_spam.name=SPAM斯帕姆午餐肉
item.canned_spam.desc=这段三分半钟的幽默剧是以布朗利虚构的绿侏儒咖啡馆为背景。一位女服务生与不喜欢吃午餐肉的本太太之间发生了争执,女服务生背诵了一份几乎每道菜都含有午餐肉的菜单。本太太要了一道没有午餐肉的菜,这让她爱吃午餐肉的丈夫大吃一惊。女服务员也对这个要求很反感。本先生提出要替换她的午餐肉,并要了一道含有大量午餐肉和烤豆的菜。服务员拒绝了,因为烤豆子已经吃完了;当本先生要求替换午餐肉时,女服务员再次表示厌恶。有几次,餐厅里的一群维京人高声歌唱午餐肉,打断了谈话。那个愤怒的女服务员命令他们闭嘴,但他们依旧大声唱歌。这时一名匈牙利游客来到柜台,试图用一本完全不准确的匈牙利语/英语手册(参考之前的小品)点菜。紧接着这名匈牙利游客就被一名警察迅速护送离开。然后这段幽默剧突然切换镜头,一位历史学家在电视演播室谈论维京人在咖啡馆的起源。他继续说,并开始越来越多地在每一句话中插入“午餐肉”一词。然后背景被抬高,露出背后的餐厅场景。那个历史学家加入了维京人的歌曲,本夫妇通过电线离开现场,而歌声还在继续。在最初的电视表演中,结尾的字幕开始滚动,背景中仍然可以听到歌声。
item.canned_stew.name=蘑菇煲罐头 item.canned_stew.name=蘑菇煲罐头
item.canned_stew.desc=...
item.canned_tomato.name=番茄汤罐头 item.canned_tomato.name=番茄汤罐头
item.canned_tomato.desc=谁要浓浓的红糊糊?
item.canned_tube.name=宇航员食品管 item.canned_tube.name=宇航员食品管
item.canned_tube.desc=美味的蘑菇。
item.canned_tuna.name=金枪鱼罐头 item.canned_tuna.name=金枪鱼罐头
item.canned_tuna.desc=我不知道那是金枪鱼还是干水泥。
item.canned_yogurt.name=酸奶罐头 item.canned_yogurt.name=酸奶罐头
item.canned_yogurt.desc=可能坏掉了,但管它呢
item.canteen_13.name=Vault13水壶 item.canteen_13.name=Vault13水壶
item.canteen_fab.name=极品伏特加 item.canteen_fab.name=极品伏特加
item.canteen_vodka.name=伏特加 item.canteen_vodka.name=伏特加
item.cap_aluminium.name=铝盖
item.cap_fritz.name=弗里茨瓶盖 item.cap_fritz.name=弗里茨瓶盖
item.cap_korl.name=Korl瓶盖 item.cap_korl.name=Korl瓶盖
item.cap_nuka.name=核子可乐瓶盖 item.cap_nuka.name=核子可乐瓶盖
@ -1603,6 +1901,23 @@ item.centrifuge_element.name=离心元件
item.centrifuge_tower.name=离心塔 item.centrifuge_tower.name=离心塔
item.chainsaw.name=链锯 item.chainsaw.name=链锯
item.cheese.name=奶酪 item.cheese.name=奶酪
item.cheese_quesadilla.name=奶酪油炸玉米粉饼
item.chemical_dye.black.name=化学染料(黑色)
item.chemical_dye.blue.name=化学染料(蓝色)
item.chemical_dye.brown.name=化学染料(棕色)
item.chemical_dye.cyan.name=化学染料(青色)
item.chemical_dye.gray.name=化学染料(灰色)
item.chemical_dye.green.name=化学染料(绿色)
item.chemical_dye.lightblue.name=化学染料(浅蓝色)
item.chemical_dye.lime.name=化学染料(石灰)
item.chemical_dye.magenta.name=化学染料(洋红色)
item.chemical_dye.orange.name=化学染料(橙色)
item.chemical_dye.pink.name=化学染料(粉色)
item.chemical_dye.purple.name=化学染料(紫色)
item.chemical_dye.red.name=化学染料(红色)
item.chemical_dye.silver.name=化学染料(浅灰色)
item.chemical_dye.white.name=化学染料(白色)
item.chemical_dye.yellow.name=化学染料(黄色)
item.chemistry_set.name=实验室玻璃器皿 item.chemistry_set.name=实验室玻璃器皿
item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃) item.chemistry_set_boron.name=实验室玻璃器皿(硼玻璃)
item.chemistry_template.name=化工厂模板: item.chemistry_template.name=化工厂模板:
@ -1752,6 +2067,22 @@ item.component_limiter.name=稳定器组件
item.cordite.name=无烟线状火药 item.cordite.name=无烟线状火药
item.cotton_candy.name=放射性棉花糖 item.cotton_candy.name=放射性棉花糖
item.crate_caller.name=空投召唤器 item.crate_caller.name=空投召唤器
item.crayon.black.name=黑色蜡笔
item.crayon.blue.name=蓝色蜡笔
item.crayon.brown.name=棕色蜡笔
item.crayon.cyan.name=青色蜡笔
item.crayon.gray.name=灰色蜡笔
item.crayon.green.name=绿色蜡笔
item.crayon.lightblue.name=浅蓝色蜡笔
item.crayon.lime.name=青色蜡笔
item.crayon.magenta.name=洋红蜡笔
item.crayon.orange.name=橙色蜡笔
item.crayon.pink.name=粉红蜡笔
item.crayon.purple.name=紫色蜡笔
item.crayon.red.name=红色蜡笔
item.crayon.silver.name=浅灰色蜡笔
item.crayon.white.name=白色蜡笔
item.crayon.yellow.name=黄色蜡笔
item.crowbar.name=Mk.V开箱装置"物理学圣剑" item.crowbar.name=Mk.V开箱装置"物理学圣剑"
item.crucible.name=裁决剑 item.crucible.name=裁决剑
item.crucible_template.name=坩埚模板 item.crucible_template.name=坩埚模板
@ -1850,10 +2181,14 @@ item.door_office.name=办公室门
item.dosimeter.name=剂量计 item.dosimeter.name=剂量计
item.drillbit_desh.name=Desh钻头 item.drillbit_desh.name=Desh钻头
item.drillbit_desh_diamond.name=Desh钻头(镶钻) item.drillbit_desh_diamond.name=Desh钻头(镶钻)
item.drillbit_ferro.name=铀铁合金钻头
item.drillbit_ferro_diamond.name=铁铀钻头(镶钻)
item.drillbit_hss.name=高速钢钻头 item.drillbit_hss.name=高速钢钻头
item.drillbit_hss_diamond.name=高速钢钻头(镶钻) item.drillbit_hss_diamond.name=高速钢钻头(镶钻)
item.drillbit_steel.name=钢钻头 item.drillbit_steel.name=钢钻头
item.drillbit_steel_diamond.name=钢钻头(镶钻) item.drillbit_steel_diamond.name=钢钻头(镶钻)
item.drillbit_tcalloy.name=锝钢钻头
item.drillbit_tcalloy_diamond.name=锝钢钻头(镶钻)
item.drill_titanium.name=钛钻头 item.drill_titanium.name=钛钻头
item.drax.name=采掘钻 item.drax.name=采掘钻
item.drax_mk2.name=强化型采掘钻 item.drax_mk2.name=强化型采掘钻
@ -1981,7 +2316,7 @@ item.gas_mask_filter_mono.name=催化性面罩过滤器
item.gas_mask_filter_piss.name=先进的简易防毒面具过滤器 item.gas_mask_filter_piss.name=先进的简易防毒面具过滤器
item.gas_mask_filter_rag.name=临时防毒面具过滤器 item.gas_mask_filter_rag.name=临时防毒面具过滤器
item.gas_mask_m65.name=M65-Z防毒面具 item.gas_mask_m65.name=M65-Z防毒面具
item.gas_mask_mono.name=防一氧化碳面罩 item.gas_mask_mono.name=半面罩防毒面具
item.gas_mask_olde.name=皮革防毒面具 item.gas_mask_olde.name=皮革防毒面具
item.gas_petroleum.name=石油气罐 item.gas_petroleum.name=石油气罐
item.gas_tester.name=气体传感器 item.gas_tester.name=气体传感器
@ -2096,6 +2431,7 @@ item.gun_lever_action_ammo.name=12x74 鹿弹
item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗] item.gun_lever_action_dark.name=马腿杠杆式霰弹枪[黑暗]
item.gun_lever_action_sonata.name=自杀霰弹 item.gun_lever_action_sonata.name=自杀霰弹
item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r item.gun_lever_action_sonata_2.name=§cSonata的麦克风§r
item.gun_m2.name=Ma Deuce
item.gun_minigun.name=CZ53机枪 item.gun_minigun.name=CZ53机枪
item.gun_mirv.name=M42核弹发射器 "试验型MIRV" item.gun_mirv.name=M42核弹发射器 "试验型MIRV"
item.gun_mirv_ammo.name=八倍MIRV item.gun_mirv_ammo.name=八倍MIRV
@ -2103,8 +2439,8 @@ item.gun_moist_nugget.name=莫辛纳甘[迫真]
item.gun_mp.name=和平主义的机枪 item.gun_mp.name=和平主义的机枪
item.gun_mp40.name=MP40冲锋枪 item.gun_mp40.name=MP40冲锋枪
item.gun_mp40_ammo.name=冲锋枪子弹 item.gun_mp40_ammo.name=冲锋枪子弹
item.gun_mp_ammo.name=小型无发射药机枪子弹 item.gun_pm_ammo.name=小型无发射药机枪子弹
item.gun_mymy.name=Nietes item.gun_mymy.name=Nietes软弹枪
item.gun_osipr.name=标准型脉冲机枪 item.gun_osipr.name=标准型脉冲机枪
item.gun_osipr_ammo.name=暗能量脉冲弹 item.gun_osipr_ammo.name=暗能量脉冲弹
item.gun_osipr_ammo2.name=融合球 item.gun_osipr_ammo2.name=融合球
@ -2114,7 +2450,7 @@ item.gun_quadro.name=四喜丸子
item.gun_revolver.name=强化左轮手枪 item.gun_revolver.name=强化左轮手枪
item.gun_revolver_ammo.name=铅左轮子弹 item.gun_revolver_ammo.name=铅左轮子弹
item.gun_revolver_blackjack.name=黑杰克五发装左轮枪 item.gun_revolver_blackjack.name=黑杰克五发装左轮枪
item.gun_revolver_cursed.name=诅咒左轮手枪 item.gun_revolver_cursed.name=诅咒手枪
item.gun_revolver_cursed_ammo.name=钢左轮子弹 item.gun_revolver_cursed_ammo.name=钢左轮子弹
item.gun_revolver_gold.name=黄金左轮手枪 item.gun_revolver_gold.name=黄金左轮手枪
item.gun_revolver_gold_ammo.name=金左轮子弹 item.gun_revolver_gold_ammo.name=金左轮子弹
@ -2230,6 +2566,7 @@ item.ingot_beryllium.name=铍锭
item.ingot_bismuth.name=铋锭 item.ingot_bismuth.name=铋锭
item.ingot_boron.name=硼锭 item.ingot_boron.name=硼锭
item.ingot_c4.name=一块C-4 item.ingot_c4.name=一块C-4
item.ingot_calcium.name=钙锭
item.ingot_chainsteel.name=重链钢 item.ingot_chainsteel.name=重链钢
item.ingot_co60.name=钴-60锭 item.ingot_co60.name=钴-60锭
item.ingot_cobalt.name=钴锭 item.ingot_cobalt.name=钴锭
@ -2557,6 +2894,7 @@ item.mp_fuselage_15_solid.name=15号弹体[固体燃料]
item.mp_fuselage_15_solid_desh.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_desh.name=15号弹体[固体燃料]
item.mp_fuselage_15_solid_faust.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_faust.name=15号弹体[固体燃料]
item.mp_fuselage_15_solid_insulation.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_insulation.name=15号弹体[固体燃料]
item.mp_fuselage_15_solid_mimi.name=15号弹体[固体燃料]
item.mp_fuselage_15_solid_panorama.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_panorama.name=15号弹体[固体燃料]
item.mp_fuselage_15_solid_roses.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_roses.name=15号弹体[固体燃料]
item.mp_fuselage_15_solid_silvermoonlight.name=15号弹体[固体燃料] item.mp_fuselage_15_solid_silvermoonlight.name=15号弹体[固体燃料]
@ -2602,6 +2940,7 @@ item.mp_warhead_15_he.name=15号HE弹头
item.mp_warhead_15_incendiary.name=15号燃烧弹头 item.mp_warhead_15_incendiary.name=15号燃烧弹头
item.mp_warhead_15_n2.name=15号N2炸弹 item.mp_warhead_15_n2.name=15号N2炸弹
item.mp_warhead_15_nuclear.name=15号核弹头 item.mp_warhead_15_nuclear.name=15号核弹头
item.mp_warhead_15_nuclear_mimi.name=15号核弹头
item.mp_warhead_15_nuclear_shark.name=15号核弹头 item.mp_warhead_15_nuclear_shark.name=15号核弹头
item.mp_warhead_15_turbine.name=15号喷气发动机弹头 item.mp_warhead_15_turbine.name=15号喷气发动机弹头
item.mucho_mango.name=亚利桑那芒果味饮料 item.mucho_mango.name=亚利桑那芒果味饮料
@ -2722,9 +3061,22 @@ item.ore.niobium=铌
item.ore.titanium=钛 item.ore.titanium=钛
item.ore.tungsten=钨 item.ore.tungsten=钨
item.ore_bedrock.name=基岩%s矿 item.ore_bedrock.name=基岩%s矿
item.ore_byproduct.b_aluminium.name=铝晶体碎片
item.ore_byproduct.b_bismuth.name=铋晶体碎片
item.ore_byproduct.b_calcium.name=钙晶体碎片
item.ore_byproduct.b_copper.name=铜晶体碎片
item.ore_byproduct.b_iron.name=铁晶体碎片
item.ore_byproduct.b_lead.name=铅晶体碎片
item.ore_byproduct.b_lithium.name=锂晶体碎片
item.ore_byproduct.b_silicon.name=硅晶体碎片
item.ore_byproduct.b_sulfur.name=硫晶体碎片
item.ore_byproduct.b_titanium.name=钛晶体碎片
item.ore_centrifuged.name=离心%s矿 item.ore_centrifuged.name=离心%s矿
item.ore_cleaned.name=清洁%s矿 item.ore_cleaned.name=清洁%s矿
item.ore_deepcleaned.name=深清洁%s矿
item.ore_enriched.name=富集%s矿 item.ore_enriched.name=富集%s矿
item.ore_nitrated.name=硝化%s矿
item.ore_nitrocrystalline.name=亚硝基结晶%s矿
item.ore_purified.name=净化%s矿 item.ore_purified.name=净化%s矿
item.ore_separated.name=分离%s矿 item.ore_separated.name=分离%s矿
item.overfuse.name=奇异螺丝刀 item.overfuse.name=奇异螺丝刀
@ -2899,11 +3251,13 @@ item.powder_australium.name=奥斯粉
item.powder_bakelite.name=电木粉 item.powder_bakelite.name=电木粉
item.powder_balefire.name=热核灰烬 item.powder_balefire.name=热核灰烬
item.powder_beryllium.name=铍粉 item.powder_beryllium.name=铍粉
item.powder_bismuth.name=铋粉
item.powder_borax.name=硼砂 item.powder_borax.name=硼砂
item.powder_boron.name=硼粉 item.powder_boron.name=硼粉
item.powder_boron_tiny.name=小撮硼粉 item.powder_boron_tiny.name=小撮硼粉
item.powder_bromine.name=溴粉 item.powder_bromine.name=溴粉
item.powder_caesium.name=铯粉 item.powder_caesium.name=铯粉
item.powder_calcium.name=钙粉
item.powder_cerium.name=铈粉 item.powder_cerium.name=铈粉
item.powder_cerium_tiny.name=小撮铈粉 item.powder_cerium_tiny.name=小撮铈粉
item.powder_chlorophyte.name=叶绿粉 item.powder_chlorophyte.name=叶绿粉
@ -3352,6 +3706,7 @@ item.shimmer_head.name=重型锤头
item.shimmer_sledge.name=闪耀锤 item.shimmer_sledge.name=闪耀锤
item.singularity.name=奇点 item.singularity.name=奇点
item.singularity_counter_resonant.name=可控反振谐奇点 item.singularity_counter_resonant.name=可控反振谐奇点
item.singularity_micro.name=微型奇点
item.singularity_spark.name=Spark奇点 item.singularity_spark.name=Spark奇点
item.singularity_super_heated.name=超热共振奇点 item.singularity_super_heated.name=超热共振奇点
item.siox.name=SiOX抗癌药物 item.siox.name=SiOX抗癌药物
@ -3391,10 +3746,6 @@ item.stamp_obsidian_circuit.name=黑曜石电路版锻模
item.stamp_obsidian_flat.name=黑曜石锻模 item.stamp_obsidian_flat.name=黑曜石锻模
item.stamp_obsidian_plate.name=黑曜石板锻模 item.stamp_obsidian_plate.name=黑曜石板锻模
item.stamp_obsidian_wire.name=黑曜石电线锻模 item.stamp_obsidian_wire.name=黑曜石电线锻模
item.stamp_schrabidium_circuit.name=Sa326电路版锻模
item.stamp_schrabidium_flat.name=Sa326锻模
item.stamp_schrabidium_plate.name=Sa326板锻模
item.stamp_schrabidium_wire.name=Sa326电线锻模
item.stamp_steel_circuit.name=钢质电路版锻模 item.stamp_steel_circuit.name=钢质电路版锻模
item.stamp_steel_flat.name=钢质锻模 item.stamp_steel_flat.name=钢质锻模
item.stamp_steel_plate.name=钢质板锻模 item.stamp_steel_plate.name=钢质板锻模
@ -3699,7 +4050,7 @@ tile.ams_limiter.name=AMS稳能器 [开发中]
tile.ancient_scrap.name=古代废金属 tile.ancient_scrap.name=古代废金属
tile.anvil_bismuth.name=铋砧 tile.anvil_bismuth.name=铋砧
tile.anvil_dnt.name=双聚中子态素砧 tile.anvil_dnt.name=双聚中子态素砧
tile.anvil_ferrouranium.name=铀-铁合金砧 tile.anvil_ferrouranium.name=铀铁合金砧
tile.anvil_iron.name=铁砧 tile.anvil_iron.name=铁砧
tile.anvil_lead.name=铅砧 tile.anvil_lead.name=铅砧
tile.anvil_meteorite.name=陨石砧 tile.anvil_meteorite.name=陨石砧
@ -4061,6 +4412,7 @@ tile.fireworks.name=烟花箱
tile.fireworks.charges=已充能: %s tile.fireworks.charges=已充能: %s
tile.fireworks.message=信息: %s tile.fireworks.message=信息: %s
tile.fireworks.color=颜色: %s tile.fireworks.color=颜色: %s
tile.fissure_bomb.name=裂缝炸弹
tile.flame_war.name=盒中论战 tile.flame_war.name=盒中论战
tile.float_bomb.name=悬浮炸弹 tile.float_bomb.name=悬浮炸弹
tile.fluid_duct.name=通用流体管道 tile.fluid_duct.name=通用流体管道
@ -4145,7 +4497,7 @@ tile.hadron_plating_blue.name=粒子加速器镀层 (蓝)
tile.hadron_plating_glass.name=粒子加速器镀层 (窗口) tile.hadron_plating_glass.name=粒子加速器镀层 (窗口)
tile.hadron_plating_striped.name=粒子加速器镀层(低温危险) tile.hadron_plating_striped.name=粒子加速器镀层(低温危险)
tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ) tile.hadron_plating_voltz.name=粒子加速器镀层 (VOLTZ)
tile.hadron_plating_yellow.name=粒子加速器镀层(YelloDye) tile.hadron_plating_yellow.name=粒子加速器镀层(Yello染料)
tile.hadron_power.name=粒子加速器电源接口 tile.hadron_power.name=粒子加速器电源接口
tile.hadron_power_10m.name=粒子加速器电源接口(10MHE) tile.hadron_power_10m.name=粒子加速器电源接口(10MHE)
tile.hadron_power_100m.name=粒子加速器电源接口(100MHE) tile.hadron_power_100m.name=粒子加速器电源接口(100MHE)
@ -4191,6 +4543,7 @@ tile.machine_armor_table.name=装甲改装台
tile.machine_assembler.name=装配机 tile.machine_assembler.name=装配机
tile.machine_assemfac.name=装配厂 tile.machine_assemfac.name=装配厂
tile.machine_autocrafter.name=自动工作台 tile.machine_autocrafter.name=自动工作台
tile.machine_autosaw.name=自动嗡嗡锯
tile.machine_bat9000.name=巨尻-9000 储罐 tile.machine_bat9000.name=巨尻-9000 储罐
tile.machine_battery.name=蓄电池 tile.machine_battery.name=蓄电池
tile.machine_battery_potato.name=马铃薯电池组 tile.machine_battery_potato.name=马铃薯电池组
@ -4241,6 +4594,7 @@ tile.machine_fracking_tower.name=水力压裂塔
tile.machine_gascent.name=气体离心机 tile.machine_gascent.name=气体离心机
tile.machine_generator.name=核反应堆[旧] tile.machine_generator.name=核反应堆[旧]
tile.machine_geo.name=地热发电机 tile.machine_geo.name=地热发电机
tile.machine_hephaestus.name=地热换热器
tile.machine_industrial_generator.name=工业发电机 tile.machine_industrial_generator.name=工业发电机
tile.machine_keyforge.name=锁匠桌 tile.machine_keyforge.name=锁匠桌
tile.machine_large_turbine.name=工业汽轮机 tile.machine_large_turbine.name=工业汽轮机
@ -4307,6 +4661,7 @@ tile.machine_transformer_dnt.name=DNT-20Hz变频器
tile.machine_transformer_dnt_20.name=DNT-1Hz变频器 tile.machine_transformer_dnt_20.name=DNT-1Hz变频器
tile.machine_turbine.name=汽轮机 tile.machine_turbine.name=汽轮机
tile.machine_turbine.desc=效率: 85%% tile.machine_turbine.desc=效率: 85%%
tile.machine_turbinegas.name=联合循环燃气轮机
tile.machine_turbofan.name=涡扇发动机 tile.machine_turbofan.name=涡扇发动机
tile.machine_uf6_tank.name=六氟化铀储罐 tile.machine_uf6_tank.name=六氟化铀储罐
tile.machine_waste_drum.name=乏燃料池 tile.machine_waste_drum.name=乏燃料池
@ -4416,6 +4771,7 @@ tile.ore_unobtainium.name=难得素矿石
tile.ore_uranium.name=铀矿石 tile.ore_uranium.name=铀矿石
tile.ore_uranium_scorched.name=烧焦的铀矿石 tile.ore_uranium_scorched.name=烧焦的铀矿石
tile.ore_verticium.name=韦德赛矿石 tile.ore_verticium.name=韦德赛矿石
tile.ore_volcano.name=地热裂缝
tile.ore_weidanium.name=魏丹矿石 tile.ore_weidanium.name=魏丹矿石
tile.pink_barrel.name=煤油桶 tile.pink_barrel.name=煤油桶
tile.pink_log.name=粉色原木 tile.pink_log.name=粉色原木
@ -4592,6 +4948,7 @@ tile.turret_maxwell.name=高能微波炮塔 "麦克斯韦"
tile.turret_rocket.name=火箭炮塔 tile.turret_rocket.name=火箭炮塔
tile.turret_richard.name=火箭炮塔“理查德” tile.turret_richard.name=火箭炮塔“理查德”
tile.turret_spitfire.name=目前没有名字[开发中] tile.turret_spitfire.name=目前没有名字[开发中]
tile.turret_sentry.name=哨兵炮塔“布朗”
tile.turret_tau.name=陶子炮塔 tile.turret_tau.name=陶子炮塔
tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩" tile.turret_tauon.name=XVL1456原型陶子发射器炮塔"陶恩"
tile.vacuum.name=真空 tile.vacuum.name=真空

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB