mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge branch 'HbmMods:master' into master
This commit is contained in:
commit
1c9c7f47fb
42
changelog
42
changelog
@ -1,42 +0,0 @@
|
||||
## Added
|
||||
* New meteorite ores
|
||||
* All previous meteorite ores have been removed (each took up an entire block ID...) which have been replaced with a single block that uses metadata
|
||||
* There's now only five variants with the contents chosen to be especially useful in earlygame: iron, copper, aluminium, rare earth and cobalt
|
||||
* Each ore smelts into 16 items, except for cobalt which yields only 4 ingots
|
||||
* All meteorite ores are now equally likely to spawn
|
||||
* The new ores can only be smelted, shredding or other processing is not possible
|
||||
|
||||
## Changed
|
||||
* The Souyz' recipe is now available in the standard template folder
|
||||
* Removed some unused crap
|
||||
* UV lamps (2 IDs)
|
||||
* AMS (9 IDs)
|
||||
* Rotary engine (1 ID)
|
||||
* FWatz (8 IDs)
|
||||
* Meteorite ores (10 IDs)
|
||||
* Tiny nuclear rector (1 ID)
|
||||
* The small oil heaters are no longer craftable and the NEI handler has been removed, however existing ones can still be used
|
||||
* The loot pool for meteorite treasure blocks has been updated
|
||||
* Treasures are no longer senselessly progression breaking, radioactive or plain stupid (whole-ass machines inside meteorites)
|
||||
* The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare)
|
||||
* Schraranium processing now yields neptunium as a byproduct instead of plutonium, making neptunium easier to automate outside of the cyclotron
|
||||
* Using the guide book now opens a link to the new wiki
|
||||
* Certain earlygame things can now be recycled like stirling engines and gears
|
||||
* Antenna part recycling has been moved to the anvil
|
||||
* NTM's pickaxes now have a break speed bonus for glass
|
||||
* Renamed the foundry slag outlet to foundry spill outlet because people always assume it's for slag and only slag (it is not)
|
||||
* The description for heatable/coolable fluid tags is now written in the same line as the label
|
||||
* Rubber can now be made from acidizing latex with sour gas (requires just 25mB)
|
||||
* Heating oil can now be reformed into naphtha
|
||||
* Coker naphtha can now also be reformed like the other naphtha types (yields refgas instead of petgas as a byproduct)
|
||||
|
||||
## Fixed
|
||||
* Fixed DFC receivers not outputting power
|
||||
* Fixed the custom machine NEI handlers not working
|
||||
* Fixed a potential crash caused by invalid assembly templates
|
||||
* Fixed general weirdness with the schrabidium transmutator item IO
|
||||
* Fixed certain tooltips using the backslash escape character despite not needing them
|
||||
* Hopefully fixed the immense lag caused by tom post impact mechanics, burning grass will now only spread 20% of the time (instead of 100) and the world destruction handler will only process half the blocks per chunk
|
||||
* Hopefully fixed an issue where substations would not reliably connect to cable blocks
|
||||
* Fixed assembler rendering bugging out with Angelica installed and a door template loaded
|
||||
* Fixed medium pylon localizations
|
||||
@ -1,6 +1,6 @@
|
||||
mod_version=1.0.27
|
||||
# Empty build number makes a release type
|
||||
mod_build_number=4942
|
||||
mod_build_number=4956
|
||||
|
||||
credits=HbMinecraft,\
|
||||
\ rodolphito (explosion algorithms),\
|
||||
@ -20,6 +20,7 @@ credits=HbMinecraft,\
|
||||
\ Pashtet (russian localization),\
|
||||
\ Bismarck (chinese localization),\
|
||||
\ Maksymisio (polish localization)\
|
||||
\ el3ctro4ndre (italian localization),\
|
||||
\ Pu-238 (Tom impact effects),\
|
||||
\ UFFR (RTGs, guns, casings, euphemium capacitor),\
|
||||
\ Frooz (models),\
|
||||
|
||||
@ -7,7 +7,6 @@ import com.hbm.tileentity.IGUIProvider;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
@ -22,6 +21,7 @@ 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.stats.StatList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
@ -71,20 +71,28 @@ public class BlockBobble extends BlockContainer implements IGUIProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z);
|
||||
if(entity != null) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal()));
|
||||
item.motionX = 0;
|
||||
item.motionY = 0;
|
||||
item.motionZ = 0;
|
||||
world.spawnEntityInWorld(item);
|
||||
if(!player.capabilities.isCreativeMode) {
|
||||
harvesters.set(player);
|
||||
if(!world.isRemote) {
|
||||
TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z);
|
||||
if(entity != null) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal()));
|
||||
item.motionX = 0;
|
||||
item.motionY = 0;
|
||||
item.motionZ = 0;
|
||||
world.spawnEntityInWorld(item);
|
||||
}
|
||||
}
|
||||
harvesters.set(null);
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, block, meta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
|
||||
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
|
||||
player.addExhaustion(0.025F);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -10,7 +10,6 @@ import com.hbm.tileentity.IGUIProvider;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
@ -25,6 +24,7 @@ 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.stats.StatList;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
@ -66,20 +66,28 @@ public class BlockSnowglobe extends BlockContainer implements IGUIProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
|
||||
|
||||
if(!world.isRemote) {
|
||||
TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z);
|
||||
if(entity != null) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal()));
|
||||
item.motionX = 0;
|
||||
item.motionY = 0;
|
||||
item.motionZ = 0;
|
||||
world.spawnEntityInWorld(item);
|
||||
if(!player.capabilities.isCreativeMode) {
|
||||
harvesters.set(player);
|
||||
if(!world.isRemote) {
|
||||
TileEntitySnowglobe entity = (TileEntitySnowglobe) world.getTileEntity(x, y, z);
|
||||
if(entity != null) {
|
||||
EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, new ItemStack(this, 1, entity.type.ordinal()));
|
||||
item.motionX = 0;
|
||||
item.motionY = 0;
|
||||
item.motionZ = 0;
|
||||
world.spawnEntityInWorld(item);
|
||||
}
|
||||
}
|
||||
harvesters.set(null);
|
||||
}
|
||||
|
||||
super.breakBlock(world, x, y, z, block, meta);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
|
||||
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
|
||||
player.addExhaustion(0.025F);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -7,14 +7,22 @@ import java.util.Locale;
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.inventory.fluid.FluidType;
|
||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityHeaterHeatex;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.ChatComponentTranslation;
|
||||
import net.minecraft.util.ChatStyle;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
@ -45,7 +53,34 @@ public class HeaterHeatex extends BlockDummyable implements ILookOverlay, IToolt
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
return this.standardOpenBehavior(world, x, y, z, player, 0);
|
||||
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
} else {
|
||||
int[] pos = this.findCore(world, x, y, z);
|
||||
|
||||
if(pos == null)
|
||||
return false;
|
||||
|
||||
if(player.isSneaking()) {
|
||||
TileEntityHeaterHeatex trialEntity = (TileEntityHeaterHeatex) world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(trialEntity != null) {
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) {
|
||||
FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem());
|
||||
|
||||
trialEntity.tanks[0].setTankType(type);
|
||||
trialEntity.markDirty();
|
||||
player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!")));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -101,17 +101,17 @@ public class MachineBigAssTank9000 extends BlockDummyable implements IPersistent
|
||||
TileEntityMachineBAT9000 trialEntity = (TileEntityMachineBAT9000) world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||
|
||||
if(trialEntity != null) {
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) {
|
||||
FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem());
|
||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) {
|
||||
FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem());
|
||||
|
||||
trialEntity.tank.setTankType(type);
|
||||
trialEntity.markDirty();
|
||||
player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!")));
|
||||
trialEntity.tank.setTankType(type);
|
||||
trialEntity.markDirty();
|
||||
player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation(type.getConditionalName())).appendSibling(new ChatComponentText("!")));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}else {
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityICF;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachineICF extends BlockDummyable {
|
||||
|
||||
@ -17,6 +20,7 @@ public class MachineICF extends BlockDummyable {
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityICF();
|
||||
if(meta >= 6) return new TileEntityProxyCombo().inventory().fluid();
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -29,6 +33,31 @@ public class MachineICF extends BlockDummyable {
|
||||
public int getOffset() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, -1, 2, 8, 8}, this, dir);
|
||||
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o , y + 3, z + dir.offsetZ * o, new int[] {1, 1, 2, -1, 8, 8}, this, dir);
|
||||
|
||||
x += dir.offsetX * o;
|
||||
z += dir.offsetZ * o;
|
||||
|
||||
this.makeExtra(world, x , y + 5, z);
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX * 6 , y + 3, z + dir.offsetZ * 2 + rot.offsetZ * 6);
|
||||
this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX * 6 , y + 3, z + dir.offsetZ * 2 - rot.offsetZ * 6);
|
||||
this.makeExtra(world, x - dir.offsetX * 2 + rot.offsetX * 6 , y + 3, z - dir.offsetZ * 2 + rot.offsetZ * 6);
|
||||
this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX * 6 , y + 3, z - dir.offsetZ * 2 - rot.offsetZ * 6);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
if(!super.checkRequirement(world, x, y, z, dir, o)) return false;
|
||||
//if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o , y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -3, 1, 1, 1, 1}, x, y, z, dir)) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
@ -1,17 +1,28 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.TileEntityICFPress;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class MachineICFPress extends BlockContainer {
|
||||
public class MachineICFPress extends BlockContainer implements ITooltipProvider {
|
||||
|
||||
@SideOnly(Side.CLIENT) private IIcon iconTop;
|
||||
|
||||
@ -21,7 +32,7 @@ public class MachineICFPress extends BlockContainer {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return null;
|
||||
return new TileEntityICFPress();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -36,4 +47,22 @@ public class MachineICFPress extends BlockContainer {
|
||||
public IIcon getIcon(int side, int metadata) {
|
||||
return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
|
||||
if(world.isRemote) {
|
||||
return true;
|
||||
} else if(!player.isSneaking()) {
|
||||
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
for(String s : I18nUtil.resolveKeyArray(((Block)this).getUnlocalizedName() + ".desc")) list.add(EnumChatFormatting.YELLOW + s);
|
||||
}
|
||||
}
|
||||
|
||||
@ -478,6 +478,7 @@ public class EntityChemical extends EntityThrowableNT {
|
||||
int meta = worldObj.getBlockMetadata(x, y, z);
|
||||
if(block == Blocks.cobblestone) worldObj.setBlock(x, y, z, Blocks.mossy_cobblestone);
|
||||
if(block == Blocks.stonebrick && meta == 0) worldObj.setBlock(x, y, z, Blocks.stonebrick, 1, 3);
|
||||
if(block == ModBlocks.waste_earth) worldObj.setBlock(x, y, z, Blocks.grass);
|
||||
if(block == ModBlocks.brick_concrete) worldObj.setBlock(x, y, z, ModBlocks.brick_concrete_mossy);
|
||||
if(block == ModBlocks.concrete_brick_slab && meta % 8 == 0) worldObj.setBlock(x, y, z, ModBlocks.concrete_brick_slab, meta + 1, 3);
|
||||
if(block == ModBlocks.brick_concrete_stairs) worldObj.setBlock(x, y, z, ModBlocks.brick_concrete_mossy_stairs, meta, 3);
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotTakeOnly;
|
||||
import com.hbm.tileentity.machine.TileEntityICFPress;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerICFPress extends Container {
|
||||
|
||||
private TileEntityICFPress press;
|
||||
|
||||
public ContainerICFPress(InventoryPlayer invPlayer, TileEntityICFPress tedf) {
|
||||
|
||||
press = tedf;
|
||||
|
||||
//Empty Capsule
|
||||
this.addSlotToContainer(new Slot(tedf, 0, 98, 18));
|
||||
//Filled Capsule
|
||||
this.addSlotToContainer(new SlotTakeOnly(tedf, 1, 98, 54));
|
||||
//Filled Muon
|
||||
this.addSlotToContainer(new Slot(tedf, 2, 8, 18));
|
||||
//Empty Muon
|
||||
this.addSlotToContainer(new SlotTakeOnly(tedf, 3, 8, 54));
|
||||
//Solid Fuels
|
||||
this.addSlotToContainer(new Slot(tedf, 4, 62, 54));
|
||||
this.addSlotToContainer(new Slot(tedf, 5, 134, 54));
|
||||
//Fluid IDs
|
||||
this.addSlotToContainer(new Slot(tedf, 6, 62, 18));
|
||||
this.addSlotToContainer(new Slot(tedf, 7, 134, 18));
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
for(int j = 0; j < 9; j++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 97 + i * 18));
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 9; i++) {
|
||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 155));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer player, int id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInteractWith(EntityPlayer player) {
|
||||
return press.isUseableByPlayer(player);
|
||||
}
|
||||
}
|
||||
@ -6,7 +6,6 @@ import com.hbm.tileentity.machine.TileEntityMachineDiesel;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.ICrafting;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@ -39,13 +38,7 @@ public class ContainerMachineDiesel extends Container {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCraftingToCrafters(ICrafting crafting) {
|
||||
super.addCraftingToCrafters(crafting);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
|
||||
{
|
||||
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) {
|
||||
ItemStack var3 = null;
|
||||
Slot var4 = (Slot) this.inventorySlots.get(par2);
|
||||
|
||||
|
||||
@ -578,19 +578,19 @@ public class Fluids {
|
||||
HOTCRACKOIL.addTraits(new FT_Coolable(CRACKOIL, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D));
|
||||
HOTCRACKOIL_DS.addTraits(new FT_Coolable(CRACKOIL_DS, 1, 1, 10).setEff(CoolingType.HEATEXCHANGER, 1.0D));
|
||||
|
||||
COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(300, 1, COOLANT_HOT, 1));
|
||||
COOLANT.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).setEff(HeatingType.ICF, 1.0D).addStep(300, 1, COOLANT_HOT, 1));
|
||||
COOLANT_HOT.addTraits(new FT_Coolable(COOLANT, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D));
|
||||
|
||||
MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).addStep(400, 1, MUG_HOT, 1), new FT_PWRModerator(1.15D));
|
||||
MUG.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.PWR, 1.0D).setEff(HeatingType.ICF, 1.25D).addStep(400, 1, MUG_HOT, 1), new FT_PWRModerator(1.15D));
|
||||
MUG_HOT.addTraits(new FT_Coolable(MUG, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D));
|
||||
|
||||
BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).addStep(500, 1, BLOOD_HOT, 1));
|
||||
BLOOD.addTraits(new FT_Heatable().setEff(HeatingType.HEATEXCHANGER, 1.0D).setEff(HeatingType.ICF, 1.25D).addStep(500, 1, BLOOD_HOT, 1));
|
||||
BLOOD_HOT.addTraits(new FT_Coolable(BLOOD, 1, 1, 500).setEff(CoolingType.HEATEXCHANGER, 1.0D));
|
||||
|
||||
HEAVYWATER.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(300, 1, HEAVYWATER_HOT, 1), new FT_PWRModerator(1.25D));
|
||||
HEAVYWATER_HOT.addTraits(new FT_Coolable(HEAVYWATER, 1, 1, 300).setEff(CoolingType.HEATEXCHANGER, 1.0D));
|
||||
|
||||
SODIUM.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 2.5D).addStep(400, 1, SODIUM_HOT, 1));
|
||||
SODIUM.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 2.5D).setEff(HeatingType.ICF, 3D).addStep(400, 1, SODIUM_HOT, 1));
|
||||
SODIUM_HOT.addTraits(new FT_Coolable(SODIUM, 1, 1, 400).setEff(CoolingType.HEATEXCHANGER, 1.0D));
|
||||
|
||||
THORIUM_SALT.addTraits(new FT_Heatable().setEff(HeatingType.PWR, 1.0D).addStep(400, 1, THORIUM_SALT_HOT, 1), new FT_PWRModerator(2.5D));
|
||||
|
||||
@ -70,7 +70,8 @@ public class FT_Heatable extends FluidTrait {
|
||||
public static enum HeatingType {
|
||||
BOILER("Boilable"),
|
||||
HEATEXCHANGER("Heatable"),
|
||||
PWR("PWR Coolant");
|
||||
PWR("PWR Coolant"),
|
||||
ICF("ICF Coolant");
|
||||
|
||||
public String name;
|
||||
|
||||
|
||||
@ -39,11 +39,11 @@ public class GUIHeaterHeatex extends GuiInfoContainer {
|
||||
super.initGui();
|
||||
|
||||
Keyboard.enableRepeatEvents(true);
|
||||
this.fieldCycles = new GuiTextField(this.fontRendererObj, guiLeft + 74, guiTop + 31, 28, 10);
|
||||
this.fieldCycles = new GuiTextField(this.fontRendererObj, guiLeft + 73, guiTop + 31, 30, 10);
|
||||
initText(this.fieldCycles);
|
||||
this.fieldCycles.setText(String.valueOf(heater.amountToCool));
|
||||
|
||||
this.fieldDelay = new GuiTextField(this.fontRendererObj, guiLeft + 74, guiTop + 49, 28, 10);
|
||||
this.fieldDelay = new GuiTextField(this.fontRendererObj, guiLeft + 73, guiTop + 49, 30, 10);
|
||||
initText(this.fieldDelay);
|
||||
this.fieldDelay.setText(String.valueOf(heater.tickDelay));
|
||||
}
|
||||
@ -52,7 +52,7 @@ public class GUIHeaterHeatex extends GuiInfoContainer {
|
||||
field.setTextColor(0x00ff00);
|
||||
field.setDisabledTextColour(0x00ff00);
|
||||
field.setEnableBackgroundDrawing(false);
|
||||
field.setMaxStringLength(4);
|
||||
field.setMaxStringLength(5);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -33,6 +33,7 @@ public class GUIICF extends GuiInfoContainer {
|
||||
icf.tanks[2].renderTankInfo(this, x, y, guiLeft + 224, guiTop + 18, 16, 70);
|
||||
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 8, guiTop + 18, 16, 70, x, y, icf.maxLaser <= 0 ? "OFFLINE" : (BobMathUtil.getShortNumber(icf.laser) + "TU - " + (icf.laser * 1000 / icf.maxLaser) / 10D + "%"));
|
||||
this.drawCustomInfoStat(x, y, guiLeft + 187, guiTop + 89, 18, 18, x, y, BobMathUtil.getShortNumber(icf.heat) + " / " + BobMathUtil.getShortNumber(icf.maxHeat) + "TU");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -53,7 +54,7 @@ public class GUIICF extends GuiInfoContainer {
|
||||
drawTexturedModalRect(guiLeft + 8, guiTop + 88 - p, 212, 192 - p, 16, p);
|
||||
}
|
||||
|
||||
GaugeUtil.drawSmoothGauge(guiLeft + 196, guiTop + 98, this.zLevel, 0D, 5, 2, 1, 0xFF00AF);
|
||||
GaugeUtil.drawSmoothGauge(guiLeft + 196, guiTop + 98, this.zLevel, (double) icf.heat / (double) icf.maxHeat, 5, 2, 1, 0xFF00AF);
|
||||
|
||||
icf.tanks[0].renderTank(guiLeft + 44, guiTop + 88, this.zLevel, 16, 70);
|
||||
icf.tanks[1].renderTank(guiLeft + 188, guiTop + 88, this.zLevel, 16, 70);
|
||||
|
||||
46
src/main/java/com/hbm/inventory/gui/GUIICFPress.java
Normal file
46
src/main/java/com/hbm/inventory/gui/GUIICFPress.java
Normal file
@ -0,0 +1,46 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerICFPress;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityICFPress;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIICFPress extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_icf_press.png");
|
||||
private TileEntityICFPress diesel;
|
||||
|
||||
public GUIICFPress(InventoryPlayer invPlayer, TileEntityICFPress tedf) {
|
||||
super(new ContainerICFPress(invPlayer, tedf));
|
||||
diesel = tedf;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 179;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
super.drawScreen(mouseX, mouseY, f);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.diesel.hasCustomInventoryName() ? this.diesel.getInventoryName() : I18n.format(this.diesel.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
}
|
||||
}
|
||||
@ -1081,7 +1081,8 @@ public class AnvilRecipes {
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.rbmk_control_auto), new AnvilOutput[] {
|
||||
new AnvilOutput(new ItemStack(ModBlocks.rbmk_control, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.circuit_targeting_tier1, 2))
|
||||
new AnvilOutput(new ItemStack(ModItems.circuit_targeting_tier1, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.crt_display, 1))
|
||||
}).setTier(4));
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.rbmk_rod_reasim), new AnvilOutput[] {
|
||||
|
||||
@ -3841,8 +3841,8 @@ public class ModItems {
|
||||
watz_pellet_depleted = new ItemWatzPellet().setUnlocalizedName("watz_pellet_depleted").setTextureName(RefStrings.MODID + ":watz_pellet");
|
||||
|
||||
icf_pellet_empty = new Item().setUnlocalizedName("icf_pellet_empty").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet_empty");
|
||||
icf_pellet = new Item().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet");
|
||||
icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet");
|
||||
icf_pellet = new ItemICFPellet().setUnlocalizedName("icf_pellet").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":icf_pellet");
|
||||
icf_pellet_depleted = new Item().setUnlocalizedName("icf_pellet_depleted").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":icf_pellet");
|
||||
|
||||
trinitite = new ItemNuclearWaste().setUnlocalizedName("trinitite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":trinitite_new");
|
||||
nuclear_waste_long = new ItemWasteLong().setUnlocalizedName("nuclear_waste_long").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_long");
|
||||
|
||||
165
src/main/java/com/hbm/items/machine/ItemICFPellet.java
Normal file
165
src/main/java/com/hbm/items/machine/ItemICFPellet.java
Normal file
@ -0,0 +1,165 @@
|
||||
package com.hbm.items.machine;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.EnumUtil;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
public class ItemICFPellet extends Item {
|
||||
|
||||
protected IIcon iconBG;
|
||||
|
||||
public static enum EnumICFFuel {
|
||||
|
||||
HYDROGEN( 0x4040FF, 1.0D, 1.0D, 1.0D),
|
||||
DEUTERIUM( 0x2828CB, 1.0D, 1.0D, 1.0D),
|
||||
TRITIUM( 0x000092, 1.0D, 1.0D, 1.0D),
|
||||
HELIUM3( 0xFFF09F, 1.0D, 1.0D, 1.0D), //hey you
|
||||
HELIUM4( 0xFF9B60, 1.0D, 1.0D, 1.0D), //yes you
|
||||
LITHIUM( 0xE9E9E9, 1.0D, 1.0D, 1.0D), //fuck off
|
||||
BERYLLIUM( 0xA79D80, 1.0D, 1.0D, 1.0D),
|
||||
BORON( 0x697F89, 1.0D, 1.0D, 1.0D),
|
||||
CARBON( 0x454545, 1.0D, 1.0D, 1.0D),
|
||||
OXYGEN( 0xB4E2FF, 1.0D, 1.0D, 1.0D),
|
||||
SODIUM( 0xDFE4E7, 1.0D, 1.0D, 1.0D),
|
||||
//aluminium, silicon, phosphorus
|
||||
CHLORINE( 0xDAE598, 1.0D, 1.0D, 1.0D),
|
||||
CALCIUM( 0xD2C7A9, 1.0D, 1.0D, 1.0D),
|
||||
//titanium
|
||||
;
|
||||
|
||||
public int color;
|
||||
public double reactionMult;
|
||||
public double depletionSpeed;
|
||||
public double fusingDifficulty;
|
||||
|
||||
private EnumICFFuel(int color, double react, double depl, double laser) {
|
||||
this.color = color;
|
||||
this.reactionMult = react;
|
||||
this.depletionSpeed = depl;
|
||||
this.fusingDifficulty = laser;
|
||||
}
|
||||
}
|
||||
|
||||
public ItemICFPellet() {
|
||||
this.setMaxStackSize(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubItems(Item item, CreativeTabs tab, List list) {
|
||||
list.add(this.setup(EnumICFFuel.DEUTERIUM, EnumICFFuel.TRITIUM, false));
|
||||
list.add(this.setup(EnumICFFuel.HELIUM3, EnumICFFuel.HELIUM4, false));
|
||||
list.add(this.setup(EnumICFFuel.LITHIUM, EnumICFFuel.OXYGEN, false));
|
||||
list.add(this.setup(EnumICFFuel.SODIUM, EnumICFFuel.CHLORINE, true));
|
||||
list.add(this.setup(EnumICFFuel.BERYLLIUM, EnumICFFuel.CALCIUM, true));
|
||||
}
|
||||
|
||||
public static long getMaxDepletion(ItemStack stack) {
|
||||
long base = 50_000_000_000L;
|
||||
base /= getType(stack, true).depletionSpeed;
|
||||
base /= getType(stack, false).depletionSpeed;
|
||||
return base;
|
||||
}
|
||||
|
||||
public static long getFusingDifficulty(ItemStack stack) {
|
||||
long base = 10_000_000L;
|
||||
base *= getType(stack, true).fusingDifficulty * getType(stack, false).fusingDifficulty;
|
||||
if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("muon")) base /= 4;
|
||||
return base;
|
||||
}
|
||||
|
||||
public static long getDepletion(ItemStack stack) {
|
||||
if(!stack.hasTagCompound()) return 0L;
|
||||
return stack.stackTagCompound.getLong("depletion");
|
||||
}
|
||||
|
||||
public static long react(ItemStack stack, long heat) {
|
||||
if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound();
|
||||
stack.stackTagCompound.setLong("depletion", stack.stackTagCompound.getLong("depletion") + heat);
|
||||
return (long) (heat * getType(stack, true).reactionMult * getType(stack, false).reactionMult);
|
||||
}
|
||||
|
||||
public static ItemStack setup(EnumICFFuel type1, EnumICFFuel type2, boolean muon) {
|
||||
return setup(new ItemStack(ModItems.icf_pellet), type1, type2, muon);
|
||||
}
|
||||
|
||||
public static ItemStack setup(ItemStack stack, EnumICFFuel type1, EnumICFFuel type2, boolean muon) {
|
||||
if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound();
|
||||
stack.stackTagCompound.setByte("type1", (byte) type1.ordinal());
|
||||
stack.stackTagCompound.setByte("type2", (byte) type2.ordinal());
|
||||
stack.stackTagCompound.setBoolean("muon", muon);
|
||||
return stack;
|
||||
}
|
||||
|
||||
public static EnumICFFuel getType(ItemStack stack, boolean first) {
|
||||
if(!stack.hasTagCompound()) return first ? EnumICFFuel.DEUTERIUM : EnumICFFuel.TRITIUM;
|
||||
return EnumUtil.grabEnumSafely(EnumICFFuel.class, stack.stackTagCompound.getByte("type" + (first ? 1 : 2)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean showDurabilityBar(ItemStack stack) {
|
||||
return getDurabilityForDisplay(stack) > 0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getDurabilityForDisplay(ItemStack stack) {
|
||||
return (double) getDepletion(stack) / (double) getMaxDepletion(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean requiresMultipleRenderPasses() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister reg) {
|
||||
super.registerIcons(reg);
|
||||
this.iconBG = reg.registerIcon(RefStrings.MODID + ":icf_pellet_bg");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIconFromDamageForRenderPass(int meta, int pass) {
|
||||
return pass == 1 ? super.getIconFromDamageForRenderPass(meta, pass) : this.iconBG;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int getColorFromItemStack(ItemStack stack, int pass) {
|
||||
if(pass == 0) {
|
||||
EnumICFFuel type1 = this.getType(stack, true);
|
||||
EnumICFFuel type2 = this.getType(stack, false);
|
||||
int r = (((type1.color & 0xff0000) >> 16) + ((type2.color & 0xff0000) >> 16)) / 2;
|
||||
int g = (((type1.color & 0x00ff00) >> 8) + ((type2.color & 0x00ff00) >> 8)) / 2;
|
||||
int b = ((type1.color & 0x0000ff) + (type2.color & 0x0000ff)) / 2;
|
||||
return r << 16 | g << 8 | b;
|
||||
}
|
||||
return 0xffffff;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||
list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%");
|
||||
list.add(EnumChatFormatting.YELLOW + "Fuel: " + I18nUtil.resolveKey("icffuel." + getType(stack, true).name().toLowerCase(Locale.US)) + " / " + I18nUtil.resolveKey("icffuel." + getType(stack, false).name().toLowerCase(Locale.US)));
|
||||
list.add(EnumChatFormatting.YELLOW + "Heat required: " + BobMathUtil.getShortNumber(this.getFusingDifficulty(stack)) + "TU");
|
||||
if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("muon")) list.add(EnumChatFormatting.DARK_AQUA + "Muon catalyzed!");
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||
public static final String VERSION = "1.0.27 BETA (4942)";
|
||||
public static final String VERSION = "1.0.27 BETA (4956)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X)
|
||||
//V -> next release version
|
||||
|
||||
@ -153,28 +153,10 @@ public class CraftingManager {
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES, KEY_LEAVES });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.pumpkin });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.melon_block });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Blocks.cactus, Blocks.cactus, Blocks.cactus });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED) });
|
||||
|
||||
//addRecipeAuto(new ItemStack(ModItems.part_lithium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', LI.dust() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.part_beryllium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', BE.dust() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.part_carbon), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', COAL.dust() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.part_copper), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', CU.dust() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.part_plutonium), new Object[] { "P", "D", "P", 'P', STEEL.plate(), 'D', "dustPlutonium" });
|
||||
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_rtg, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', "tinyPu238" });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_rtg_weak, 1), new Object[] { "IUI", "UPU", "IUI", 'I', IRON.plate(), 'P', "tinyPu238", 'U', "tinyU238" });
|
||||
//addRecipeAuto(new ItemStack(ModItems.tritium_deuterium_cake, 1), new Object[] { "DLD", "LTL", "DLD", 'L', "ingotLithium", 'D', ModItems.cell_deuterium, 'T', ModItems.cell_tritium });
|
||||
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_schrabidium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', SA326.ingot() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_hes, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_hes });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_mes, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_schrabidium_fuel });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_les, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_les });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_beryllium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', BE.ingot() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_neptunium, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', "ingotNeptunium" });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_lead, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', PB.ingot() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.pellet_advanced, 1), new Object[] { "IPI", "PPP", "IPI", 'I', IRON.plate(), 'P', ModItems.ingot_advanced_alloy });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_copper, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_red_copper, 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_advanced_alloy, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_advanced_alloy, 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_gold, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ModItems.wire_gold, 'I', IRON.ingot() });
|
||||
@ -191,12 +173,6 @@ public class CraftingManager {
|
||||
addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', ModItems.wire_red_copper, 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor_desh, 1), new Object[] { "PCP", "DMD", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.coil_gold_torus, 'D', DESH.ingot(), 'M', ModItems.motor });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor_bismuth, 1), new Object[] { "BCB", "SDS", "BCB", 'B', BI.nugget(), 'C', ModBlocks.hadron_coil_alloy, 'S', STEEL.plateCast(), 'D', DURA.ingot() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.centrifuge_element, 1), new Object[] { " T ", "WTW", "RMR", 'R', ModItems.wire_red_copper, 'T', ModItems.tank_steel, 'M', ModItems.motor, 'W', ModItems.coil_tungsten });
|
||||
//addRecipeAuto(new ItemStack(ModItems.centrifuge_tower, 1), new Object[] { "LL", "EE", "EE", 'E', ModItems.centrifuge_element, 'L', KEY_BLUE });
|
||||
//addRecipeAuto(new ItemStack(ModItems.reactor_core, 1), new Object[] { "LNL", "N N", "LNL", 'N', getReflector(), 'L', PB.plate() });
|
||||
//addRecipeAuto(new ItemStack(ModItems.rtg_unit, 1), new Object[] { "TIT", "PCP", "TIT", 'T', ModItems.thermo_element, 'I', PB.ingot(), 'P', ModItems.board_copper, 'C', ModItems.circuit_copper });
|
||||
//addRecipeAuto(new ItemStack(ModItems.thermo_unit_empty, 1), new Object[] { "TTT", " S ", "P P", 'S', STEEL.ingot(), 'P', TI.plate(), 'T', ModItems.coil_copper_torus });
|
||||
//addRecipeAuto(new ItemStack(ModItems.levitation_unit, 1), new Object[] { "CSC", "TAT", "PSP", 'C', ModItems.coil_copper, 'S', ModItems.nugget_schrabidium, 'T', ModItems.coil_tungsten, 'P', TI.plate(), 'A', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.deuterium_filter, 1), new Object[] { "TST", "SCS", "TST", 'T', ANY_RESISTANTALLOY.ingot(), 'S', S.dust(), 'C', ModItems.catalyst_clay });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.fins_flat, 1), new Object[] { "IP", "PP", "IP", 'P', STEEL.plate(), 'I', STEEL.ingot() });
|
||||
|
||||
@ -162,6 +162,7 @@ public class TileMappings {
|
||||
put(TileEntityMachineMiniRTG.class, "tileentity_mini_rtg");
|
||||
put(TileEntityITER.class, "tileentity_iter");
|
||||
put(TileEntityBlockICF.class, "tileentity_block_icf");
|
||||
put(TileEntityICFPress.class, "tileentity_icf_press");
|
||||
put(TileEntityICFController.class, "tileentity_icf_controller");
|
||||
put(TileEntityICF.class, "tileentity_icf");
|
||||
put(TileEntityMachinePlasmaHeater.class, "tileentity_plasma_heater");
|
||||
|
||||
@ -23,6 +23,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
@ -227,7 +228,7 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe
|
||||
|
||||
@Override
|
||||
public void receiveControl(NBTTagCompound data) {
|
||||
if(data.hasKey("toCool")) this.amountToCool = Math.max(data.getInteger("toCool"), 1);
|
||||
if(data.hasKey("toCool")) this.amountToCool = MathHelper.clamp_int(data.getInteger("toCool"), 1, tanks[0].getMaxFill());
|
||||
if(data.hasKey("delay")) this.tickDelay = Math.max(data.getInteger("delay"), 1);
|
||||
|
||||
this.markChanged();
|
||||
|
||||
@ -3,9 +3,16 @@ package com.hbm.tileentity.machine;
|
||||
import com.hbm.inventory.container.ContainerICF;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.fluid.trait.FT_Heatable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingStep;
|
||||
import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
|
||||
import com.hbm.inventory.gui.GUIICF;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemICFPellet;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import api.hbm.fluid.IFluidStandardTransceiver;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
@ -15,22 +22,26 @@ import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver {
|
||||
|
||||
public long laser;
|
||||
public long maxLaser;
|
||||
public long heat;
|
||||
public static final long maxHeat = 1_000_000_000_000L;
|
||||
|
||||
public FluidTank[] tanks;
|
||||
|
||||
public TileEntityICF() {
|
||||
super(12);
|
||||
this.tanks = new FluidTank[3];
|
||||
this.tanks[0] = new FluidTank(Fluids.COOLANT, 256_000);
|
||||
this.tanks[1] = new FluidTank(Fluids.COOLANT_HOT, 256_000);
|
||||
this.tanks[2] = new FluidTank(Fluids.STELLAR_FLUX, 16_000);
|
||||
this.tanks[0] = new FluidTank(Fluids.SODIUM, 512_000);
|
||||
this.tanks[1] = new FluidTank(Fluids.SODIUM_HOT, 512_000);
|
||||
this.tanks[2] = new FluidTank(Fluids.STELLAR_FLUX, 24_000);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -43,18 +54,98 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
for(int i = 0; i < 3; i++) tanks[i].setFill(tanks[i].getMaxFill());
|
||||
tanks[0].setType(11, slots);
|
||||
|
||||
for(DirPos pos : getConPos()) {
|
||||
this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
}
|
||||
|
||||
this.heat += this.laser * 0.25D;
|
||||
boolean markDirty = false;
|
||||
|
||||
//eject depleted pellet
|
||||
if(slots[5] != null && slots[5].getItem() == ModItems.icf_pellet_depleted) {
|
||||
for(int i = 6; i < 11; i++) {
|
||||
if(slots[i] == null) {
|
||||
slots[i] = slots[5].copy();
|
||||
slots[5] = null;
|
||||
markDirty = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//insert fresh pellet
|
||||
if(slots[5] == null) {
|
||||
for(int i = 0; i < 5; i++) {
|
||||
if(slots[i] != null && slots[i].getItem() == ModItems.icf_pellet) {
|
||||
slots[5] = slots[i].copy();
|
||||
slots[i] = null;
|
||||
markDirty = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(slots[5] != null && slots[5].getItem() == ModItems.icf_pellet) {
|
||||
this.heat += ItemICFPellet.react(slots[5], this.laser);
|
||||
if(ItemICFPellet.getDepletion(slots[5]) >= ItemICFPellet.getMaxDepletion(slots[5])) {
|
||||
slots[5] = new ItemStack(ModItems.icf_pellet_depleted);
|
||||
markDirty = true;
|
||||
}
|
||||
|
||||
tanks[2].setFill(tanks[2].getFill() + (int) Math.ceil(this.heat * 10D / this.maxHeat));
|
||||
if(tanks[2].getFill() > tanks[2].getMaxFill()) tanks[2].setFill(tanks[2].getMaxFill());
|
||||
}
|
||||
|
||||
if(tanks[0].getTankType().hasTrait(FT_Heatable.class)) {
|
||||
FT_Heatable trait = tanks[0].getTankType().getTrait(FT_Heatable.class);
|
||||
HeatingStep step = trait.getFirstStep();
|
||||
tanks[1].setTankType(step.typeProduced);
|
||||
|
||||
int coolingCycles = tanks[0].getFill() / step.amountReq;
|
||||
int heatingCycles = (tanks[1].getMaxFill() - tanks[1].getFill()) / step.amountProduced;
|
||||
int heatCycles = (int) (this.heat / 4 / step.heatReq * trait.getEfficiency(HeatingType.ICF)); //25% cooling per tick
|
||||
int cycles = Math.min(coolingCycles, Math.min(heatingCycles, heatCycles));
|
||||
|
||||
tanks[0].setFill(tanks[0].getFill() - step.amountReq * cycles);
|
||||
tanks[1].setFill(tanks[1].getFill() + step.amountProduced * cycles);
|
||||
this.heat -= step.heatReq * cycles;
|
||||
}
|
||||
|
||||
for(DirPos pos : getConPos()) {
|
||||
this.sendFluid(tanks[1], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
this.sendFluid(tanks[2], worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir());
|
||||
}
|
||||
|
||||
this.heat *= 0.999D;
|
||||
if(this.heat > this.maxHeat) this.heat = this.maxHeat;
|
||||
if(markDirty) this.markDirty();
|
||||
|
||||
this.networkPackNT(150);
|
||||
this.laser = 0;
|
||||
this.maxLaser = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public DirPos[] getConPos() {
|
||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||
return new DirPos[] {
|
||||
new DirPos(xCoord, yCoord + 6, zCoord, Library.POS_Y),
|
||||
new DirPos(xCoord, yCoord - 1, zCoord, Library.NEG_Y),
|
||||
new DirPos(xCoord + dir.offsetX * 3 + rot.offsetX * 6, yCoord + 3, zCoord + dir.offsetZ * 3 + rot.offsetZ * 6, dir),
|
||||
new DirPos(xCoord + dir.offsetX * 3 - rot.offsetX * 6, yCoord + 3, zCoord + dir.offsetZ * 3 - rot.offsetZ * 6, dir),
|
||||
new DirPos(xCoord - dir.offsetX * 3 + rot.offsetX * 6, yCoord + 3, zCoord - dir.offsetZ * 3 + rot.offsetZ * 6, dir.getOpposite()),
|
||||
new DirPos(xCoord - dir.offsetX * 3 - rot.offsetX * 6, yCoord + 3, zCoord - dir.offsetZ * 3 - rot.offsetZ * 6, dir.getOpposite())
|
||||
};
|
||||
}
|
||||
|
||||
@Override public void serialize(ByteBuf buf) {
|
||||
super.serialize(buf);
|
||||
buf.writeLong(laser);
|
||||
buf.writeLong(maxLaser);
|
||||
buf.writeLong(heat);
|
||||
for(int i = 0; i < 3; i++) tanks[i].serialize(buf);
|
||||
}
|
||||
|
||||
@ -62,12 +153,13 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider
|
||||
super.deserialize(buf);
|
||||
this.laser = buf.readLong();
|
||||
this.maxLaser = buf.readLong();
|
||||
this.heat = buf.readLong();
|
||||
for(int i = 0; i < 3; i++) tanks[i].deserialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slot, ItemStack stack) {
|
||||
return slot < 5;
|
||||
return slot < 5 && stack.getItem() == ModItems.icf_pellet;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -81,6 +173,22 @@ public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider
|
||||
public int[] getAccessibleSlotsFromSide(int side) {
|
||||
return io;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
for(int i = 0; i < 3; i++) tanks[i].readFromNBT(nbt, "t" + i);
|
||||
|
||||
this.heat = nbt.getLong("heat");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
for(int i = 0; i < 3; i++) tanks[i].writeToNBT(nbt, "t" + i);
|
||||
|
||||
nbt.setLong("heat", heat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUseableByPlayer(EntityPlayer player) {
|
||||
|
||||
@ -220,7 +220,7 @@ public class TileEntityICFController extends TileEntityTickingBase implements IE
|
||||
|
||||
@Override
|
||||
public long getMaxPower() {
|
||||
return (long) (Math.sqrt(capacitorCount) * 5_000_000 + Math.sqrt(Math.min(turbochargerCount, capacitorCount)) * 10_000_000);
|
||||
return (long) (Math.sqrt(capacitorCount) * 2_500_000 + Math.sqrt(Math.min(turbochargerCount, capacitorCount)) * 5_000_000);
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@ -0,0 +1,71 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.inventory.container.ContainerICFPress;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.gui.GUIICFPress;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityICFPress extends TileEntityMachineBase implements IGUIProvider {
|
||||
|
||||
public FluidTank[] tanks;
|
||||
public int muon;
|
||||
public static final int maxMuon = 16;
|
||||
|
||||
public TileEntityICFPress() {
|
||||
super(8);
|
||||
this.tanks = new FluidTank[2];
|
||||
this.tanks[0] = new FluidTank(Fluids.DEUTERIUM, 16_000);
|
||||
this.tanks[1] = new FluidTank(Fluids.TRITIUM, 16_000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.machineICFPress";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
this.networkPackNT(15);
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void serialize(ByteBuf buf) {
|
||||
super.serialize(buf);
|
||||
|
||||
buf.writeByte((byte) muon);
|
||||
tanks[0].serialize(buf);
|
||||
tanks[1].serialize(buf);
|
||||
}
|
||||
|
||||
@Override public void deserialize(ByteBuf buf) {
|
||||
super.deserialize(buf);
|
||||
|
||||
this.muon = buf.readByte();
|
||||
tanks[0].deserialize(buf);
|
||||
tanks[1].deserialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new ContainerICFPress(player.inventory, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||
return new GUIICFPress(player.inventory, this);
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.fluid.trait.FT_Flammable;
|
||||
import com.hbm.inventory.fluid.trait.FT_Polluting;
|
||||
import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Amat;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Gaseous;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Liquid;
|
||||
import com.hbm.inventory.fluid.trait.FluidTraitSimple.FT_Viscous;
|
||||
@ -49,6 +50,10 @@ public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFlu
|
||||
PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50));
|
||||
|
||||
if(tank.getFill() > 0) {
|
||||
if(tank.getTankType().hasTrait(FT_Amat.class)) {
|
||||
worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 10F, true, true);
|
||||
return;
|
||||
}
|
||||
int toSpill = Math.max(tank.getFill() / 2, 1);
|
||||
tank.setFill(tank.getFill() - toSpill);
|
||||
FT_Polluting.pollute(worldObj, xCoord, yCoord, zCoord, tank.getTankType(), FluidReleaseType.SPILL, toSpill);
|
||||
|
||||
@ -362,6 +362,7 @@ container.machineElectricBoiler=Elektrischer Ölwärmer
|
||||
container.machineElectrolyser=Electrolysegerät
|
||||
container.machineFEL=FEL
|
||||
container.machineFunnel=Kombinationstrichter
|
||||
container.machineICF=ICF
|
||||
container.machineITER=Kernfusionsreaktor
|
||||
container.machineLargeTurbine=Industrielle Dampfturbine
|
||||
container.machineLiquefactor=Verflüssiger
|
||||
@ -766,6 +767,7 @@ hbmfluid.solvent=Lösungsmittel
|
||||
hbmfluid.sourgas=Saures Gas
|
||||
hbmfluid.spentsteam=Niedrigdruckdampf
|
||||
hbmfluid.steam=Dampf
|
||||
hbmfluid.stellar_flux=Sternenflux
|
||||
hbmfluid.sulfuric_acid=Schwefelsäure
|
||||
hbmfluid.sunfloweroil=Sonnenblumenkernöl
|
||||
hbmfluid.superhotsteam=Superverdichteter Dampf
|
||||
@ -892,6 +894,20 @@ matshape.nuggets=%s Nuggets
|
||||
matshape.quantum=%s Quantum
|
||||
matshape.quanta=%s Quanta
|
||||
|
||||
icffuel.beryllium=Beryllium
|
||||
icffuel.boron=Bor
|
||||
icffuel.carbon=Kohlenstoff
|
||||
icffuel.calcium=Kalzium
|
||||
icffuel.chlorine=Chlor
|
||||
icffuel.deuterium=Deuterium
|
||||
icffuel.helium3=Helium-3
|
||||
icffuel.helium4=Helium-4
|
||||
icffuel.hydrogen=Wasserstoff
|
||||
icffuel.lithium=Lithium
|
||||
icffuel.oxygen=Sauerstoff
|
||||
icffuel.sodium=Natrium
|
||||
icffuel.tritium=Tritium
|
||||
|
||||
info.asbestos=Meine Lunge brennt.
|
||||
info.coaldust=Das Atmen fällt mir schwer.
|
||||
info.coil=Spulenstärke
|
||||
@ -2099,6 +2115,9 @@ item.hull_big_steel.name=Große Stahlhülle
|
||||
item.hull_big_titanium.name=Große Titanhülle
|
||||
item.hull_small_aluminium.name=Kleine Aluminiumhülle
|
||||
item.hull_small_steel.name=Kleine Stahlhülle
|
||||
item.icf_pellet.name=ICF-Brennstoffpellet
|
||||
item.icf_pellet_depleted.name=Erschöpftes ICF-Brennstoffpellet
|
||||
item.icf_pellet_empty.name=Leeres ICF-Brennstoffpellet
|
||||
item.igniter.name=Zünder
|
||||
item.industrial_magnet.name=Industriemagnet
|
||||
item.inf_antimatter.name=Unendlicher Antimaterietank
|
||||
@ -4081,6 +4100,15 @@ tile.heater_oven.desc=Erzeugt Wärme aus Festbrennstoff.$Nimmt von unten Wärme
|
||||
tile.hev_battery.name=Anzugs-Batterie
|
||||
tile.machine_hydrotreater.name=Hydrotreater
|
||||
tile.impact_dirt.name=Versengte Erde
|
||||
tile.icf.name=Trägheitsfusionsreaktor (ICF)
|
||||
tile.icf_block.name=ICF-Laser
|
||||
tile.icf_controller.name=ICF-Lasersteuerung
|
||||
tile.icf_laser_component.capacitor.name=ICF-Laser-Kondensator
|
||||
tile.icf_laser_component.casing.name=ICF-Laser-Gehäuse
|
||||
tile.icf_laser_component.cell.name=ICF-Laser-Zelle
|
||||
tile.icf_laser_component.emitter.name=ICF-Laser-Blitzröhre
|
||||
tile.icf_laser_component.port.name=ICF-Laser-Anschluss
|
||||
tile.icf_laser_component.turbo.name=ICF-Laser-Turbolader
|
||||
tile.iter.name=Kernfusionsreaktor
|
||||
tile.ladder_aluminium.name=Aluminiumleiter
|
||||
tile.ladder_cobalt.name=Kobaltleiter
|
||||
|
||||
@ -755,6 +755,7 @@ container.machineElectricBoiler=Electric Oil Heater
|
||||
container.machineElectrolyser=Electrolysis Machine
|
||||
container.machineFEL=FEL
|
||||
container.machineFunnel=Combinator Funnel
|
||||
container.machineICF=ICF
|
||||
container.machineITER=Fusion Reactor
|
||||
container.machineLargeTurbine=Industrial Steam Turbine
|
||||
container.machineLiquefactor=Liquefactor
|
||||
@ -1457,6 +1458,7 @@ hbmfluid.solvent=Solvent
|
||||
hbmfluid.sourgas=Sour Gas
|
||||
hbmfluid.spentsteam=Low-Pressure Steam
|
||||
hbmfluid.steam=Steam
|
||||
hbmfluid.stellar_flux=Stellar Flux
|
||||
hbmfluid.sulfuric_acid=Sulfuric Acid
|
||||
hbmfluid.sunfloweroil=Sunflower Seed Oil
|
||||
hbmfluid.superhotsteam=Super Dense Steam
|
||||
@ -1594,6 +1596,20 @@ matshape.nuggets=%s Nuggets
|
||||
matshape.quantum=%s Quantum
|
||||
matshape.quanta=%s Quanta
|
||||
|
||||
icffuel.beryllium=Beryllium
|
||||
icffuel.boron=Boron
|
||||
icffuel.carbon=Carbon
|
||||
icffuel.calcium=Calcium
|
||||
icffuel.chlorine=Chlorine
|
||||
icffuel.deuterium=Deuterium
|
||||
icffuel.helium3=Helium-3
|
||||
icffuel.helium4=Helium-4
|
||||
icffuel.hydrogen=Hydrogen
|
||||
icffuel.lithium=Lithium
|
||||
icffuel.oxygen=Oxygen
|
||||
icffuel.sodium=Sodium
|
||||
icffuel.tritium=Tritium
|
||||
|
||||
info.asbestos=My lungs are burning.
|
||||
info.coaldust=It's hard to breathe here.
|
||||
info.coil=Coil Strength
|
||||
@ -2884,6 +2900,9 @@ item.hull_big_titanium.name=Big Titanium Shell
|
||||
item.hull_small_aluminium.name=Small Aluminium Shell
|
||||
item.hull_small_aluminium.desc=Can be inserted into drilled graphite
|
||||
item.hull_small_steel.name=Small Steel Shell
|
||||
item.icf_pellet.name=ICF Fuel Pellet
|
||||
item.icf_pellet_depleted.name=Depleted ICF Fuel Pellet
|
||||
item.icf_pellet_empty.name=Empty ICF Fuel Pellet
|
||||
item.igniter.name=Igniter
|
||||
item.igniter.desc=(Used by right-clicking the Prototype)$It's a green metal handle with a$bright red button and a small lid.$At the bottom, the initials N.E. are$engraved. Whoever N.E. was, he had$a great taste in shades of green.
|
||||
item.industrial_magnet.name=Industrial Magnet
|
||||
@ -5141,6 +5160,15 @@ tile.heater_oven.desc=Burns solid fuel to produce heat.$Accepts heat from the bo
|
||||
tile.hev_battery.name=Suit Battery
|
||||
tile.machine_hydrotreater.name=Hydrotreater
|
||||
tile.impact_dirt.name=Scorched Dirt
|
||||
tile.icf.name=Inertial Confinement Fusion Reactor (ICF)
|
||||
tile.icf_block.name=ICF Laser
|
||||
tile.icf_controller.name=ICF Laser Controller
|
||||
tile.icf_laser_component.capacitor.name=ICF Laser Capacitor
|
||||
tile.icf_laser_component.casing.name=ICF Laser Casing
|
||||
tile.icf_laser_component.cell.name=ICF Laser Cell
|
||||
tile.icf_laser_component.emitter.name=ICF Laser Flash Tube
|
||||
tile.icf_laser_component.port.name=ICF Laser Port
|
||||
tile.icf_laser_component.turbo.name=ICF Laser Turbocharger
|
||||
tile.iter.name=Fusion Reactor
|
||||
tile.ladder_aluminium.name=Aluminium Ladder
|
||||
tile.ladder_cobalt.name=Cobalt Ladder
|
||||
@ -5241,6 +5269,7 @@ tile.machine_gascent.name=Gas Centrifuge
|
||||
tile.machine_generator.name=Nuclear Reactor (Old)
|
||||
tile.machine_geo.name=Geothermal Electric Generator
|
||||
tile.machine_hephaestus.name=Geothermal Heat Exchanger
|
||||
tile.machine_icf_press.desc=If only there was something that would tell me how or if this thing works$Something like a changelog or something like that$Alas, I'm too fucking stupid to read something like that anyway
|
||||
tile.machine_industrial_boiler.name=Industrial Boiler
|
||||
tile.machine_industrial_boiler.desc=Large boiler that can boil water or heat up oil.$Requires external heat source.$Heat transfer rate: ΔT*0.01 TU/t$Cannot explode
|
||||
tile.machine_industrial_generator.name=Industrial Generator
|
||||
|
||||
3780
src/main/resources/assets/hbm/lang/it_IT.lang
Normal file
3780
src/main/resources/assets/hbm/lang/it_IT.lang
Normal file
File diff suppressed because it is too large
Load Diff
@ -235,33 +235,33 @@ cannery.hadron.1=Это компонент ядра ускорителя час
|
||||
cannery.hadron.2=Частицы выбрасываются отсюда
|
||||
cannery.hadron.3=И в круговых ускорителях возвращаются сюда
|
||||
cannery.hadron.4=Сегмент катушки строится с помощью 8 плотных катушек, в середине которых ничего нет (или ядро)
|
||||
cannery.hadron.5= Этот сегмент катушки также должен быть заключен в оболочку ускорителя частиц
|
||||
cannery.hadron.5=Этот сегмент катушки также должен быть заключен в обшивку ускорителя частиц
|
||||
cannery.hadron.6=Для доступа к компоненту ядра вам потребуется добавить один или несколько терминалов доступа
|
||||
cannery.hadron.7=Для работы основного компонента также потребуется питание, добавьте разъем питания на одной из граней
|
||||
cannery.hadron.8=Ускорителю потребуется достаточное количество штекеров питания, чтобы обеспечить по крайней мере 10KHE электроэнергии на единицу прочности катушки
|
||||
cannery.hadron.9= Обратите внимание, что сегмент катушки, который оборачивается вокруг основного компонента, не учитывается при расчете прочности катушки
|
||||
cannery.hadron.10= Для чисто линейных ускорителей этот сегмент катушки также не требуется
|
||||
cannery.hadron.7=Для работы основного компонента также потребуется питание, добавьте порт питания на одной из граней
|
||||
cannery.hadron.8=Ускорителю потребуется достаточное количество портов питания, чтобы обеспечить по крайней мере 10KHE электроэнергии на единицу силы катушки
|
||||
cannery.hadron.9=Обратите внимание, что сегмент катушки, который оборачивается вокруг ядра, не учитывается при расчете силы катушки
|
||||
cannery.hadron.10=Для чисто линейных ускорителей этот сегмент катушки также не требуется
|
||||
cannery.hadron.11=Для круговых ускорителей необходимо добавить углы для изменения направления частицы
|
||||
cannery.hadron.12= Внешние угловые катушки можно совсем не добавлять
|
||||
cannery.hadron.13= Последняя часть нашего ускорителя - камера анализа, которая представляет собой пустую камеру 3x3x3, окруженную блоками камеры анализа
|
||||
cannery.hadron.12=Внешние угловые катушки можно совсем не добавлять
|
||||
cannery.hadron.13=Последняя часть нашего ускорителя - камера анализа, которая представляет собой пустую камеру 3x3x3, окруженную блоками камеры анализа
|
||||
cannery.hadron.14=Ваш готовый ускоритель частиц должен выглядеть примерно так!
|
||||
|
||||
cannery.hadron.math.0= Сила неодимовой катушки: 50
|
||||
cannery.hadron.math.0=Сила неодимовой катушки: 50
|
||||
cannery.hadron.math.1=50 x 8 x 10KHE = 400 x 10KHE = 4MHE
|
||||
cannery.hadron.math.2=Прочность металлической катушки: 1,000
|
||||
cannery.hadron.math.2=Сила звёзднометаллической катушки: 1,000
|
||||
cannery.hadron.math.3=1,000 x 8 x 10KHE = 8,000 x 10KHE = 80MHE
|
||||
|
||||
cannery.schottky=Диод с частицами Шоттки
|
||||
cannery.schottky.0=Это диод Шоттки для частиц. Он позволяет создавать более сложные конструкции ускорителей частиц и экономить электроэнергию
|
||||
cannery.schottky.1=По умолчанию он блокирует все частицы и должен быть настроен с помощью отвертки
|
||||
cannery.schottky.2=Это лицо теперь будет принимать входящие частицы
|
||||
cannery.schottky.3=А это лицо будет выбрасывать входящие частицы
|
||||
cannery.schottky.2=Эта сторона теперь будет принимать входящие частицы
|
||||
cannery.schottky.3=А эта будет выбрасывать входящие частицы
|
||||
cannery.schottky.4=Диод теперь имеет два выхода и будет вести себя квантовым образом, создавая виртуальные частицы для каждого выхода
|
||||
cannery.schottky.5=Когда все виртуальные частицы достигнут аналитической камеры, будет выбрана частица с наименьшим импульсом, необходимым для текущего рецепта
|
||||
cannery.schottky.6= Выбранная частица подвергается коллапсу волновой функции и становится реальной, потребляя только ту энергию, которая требуется коллапсирующей частице
|
||||
cannery.schottky.7= Если какие-либо виртуальные частицы сталкиваются с неправильными сегментами, все виртуальные частицы отбрасываются, а вместо них коллапсирует ошибочная частица
|
||||
cannery.schottky.8= Обратите внимание, что виртуальные частицы никогда не будут использовать один и тот же выход диода дважды. Бесконечные циклы будут неудачными, но повторный вход в диод в остальном будет нормальным
|
||||
cannery.schottky.9= Ваш диод Шоттки для частиц должен быть правильно заключен, со свободными путями для каждого выхода пересечения
|
||||
cannery.schottky.6=Выбранная частица подвергается коллапсу волновой функции и становится реальной, потребляя только ту энергию, которая требуется коллапсирующей частице
|
||||
cannery.schottky.7=Если какие-либо виртуальные частицы сталкиваются с неправильными сегментами, все виртуальные частицы отбрасываются, а вместо них коллапсирует ошибочная частица
|
||||
cannery.schottky.8=Обратите внимание, что виртуальные частицы никогда не будут использовать один и тот же выход диода дважды. Бесконечные циклы будут неудачными, но повторный вход в диод в остальном будет нормальным
|
||||
cannery.schottky.9=Ваш диод Шоттки для частиц должен быть правильно заключен, со свободными путями для каждого выхода пересечения
|
||||
|
||||
potion.hbm_taint=Порча
|
||||
potion.hbm_mutation=Заражённое порчей сердце
|
||||
@ -741,6 +741,16 @@ desc.misc.lshift=§8Удерживайте <§e§oLSHIFT§8§o> %s
|
||||
desc.gui.turbinegas.automode=§2Автоматический режим турбины§r$Нажав кнопку "AUTO", турбина автоматически$отрегулирует выработку электроэнергии$в зависимости от мощности, требуемой от сети
|
||||
desc.gui.turbinegas.fuels=§6Принимаемое топливо:
|
||||
desc.gui.turbinegas.warning=§cНизкий уровень топлива или смазки!§r
|
||||
desc.gui.rttyLogic.cond0=Сигнал §6МЕНЬШЕ§r Константы
|
||||
desc.gui.rttyLogic.cond1=Сигнал §6МЕНЬШЕ ИЛИ РАВЕН§r Константе
|
||||
desc.gui.rttyLogic.cond2=Сигнал §6БОЛЬШЕ ИЛИ РАВЕН§r Константе
|
||||
desc.gui.rttyLogic.cond3=Сигнал §6БОЛЬШЕ§r Константы
|
||||
desc.gui.rttyLogic.cond4=Сигнал §6РАВЕН§r Константе
|
||||
desc.gui.rttyLogic.cond5=Сигнал §6НЕ РАВЕН§r Константе
|
||||
desc.gui.rttyLogic.cond6=Сигнал §6СООТВЕТСТВУЕТ§r Строке
|
||||
desc.gui.rttyLogic.cond7=Сигнал §6НЕ СООТВЕТСТВУЕТ§r Строке
|
||||
desc.gui.rttyLogic.cond8=Сигнал §6СОДЕРЖИТ§r Строку
|
||||
desc.gui.rttyLogic.cond9=Сигнал §6НЕ СОДЕРЖИТ§r Строку
|
||||
|
||||
wavelengths.name.ir=Инфракрасный
|
||||
wavelengths.name.visible=Видимый свет
|
||||
@ -1026,7 +1036,7 @@ book_lore.book_phosphorous.page.1=ingredient is red phosphorous, whihc has to be
|
||||
book_lore.book_dust.name=Note
|
||||
book_lore.book_dust.author=Dave
|
||||
book_lore.book_dust.page.0=the doc was furious when he found out that the R&D dorks kept the one remaining sample, ranting about gross negligence this and a doomsday scenario that. i told him to chill for a minute, getting all worked up isn't good for his blood pressure, not
|
||||
book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction \"MKU\" whatever that means, and that it contains actual household lint. can you believe that? one of the most
|
||||
book_lore.book_dust.page.1=that he has much blood left to begin with. one of the R&D morons slipped some more info into last week's circular, they call their little concoction "MKU" whatever that means, and that it contains actual household lint. can you believe that? one of the most
|
||||
book_lore.book_dust.page.2=dangerous inventions of theirs and it contains dust. strangely they also mentioned that it goes into slot %d
|
||||
|
||||
book_lore.book_mercury.name=Note
|
||||
@ -1285,10 +1295,12 @@ hbmmat.americiumrg=Реакторный америций
|
||||
hbmmat.americium241=Америций-241
|
||||
hbmmat.americium242=Америций-242
|
||||
hbmmat.arsenic=Мышьяк
|
||||
hbmmat.arsenicbronze=Мышьяковая бронза
|
||||
hbmmat.asbestos=Асбест
|
||||
hbmmat.bakelite=Бакелит
|
||||
hbmmat.beryllium=Бериллий
|
||||
hbmmat.bismuth=Висмут
|
||||
hbmmat.bismuthbronze=Висмутовая бронза
|
||||
hbmmat.borax=Бура
|
||||
hbmmat.boron=Бор
|
||||
hbmmat.carbon=Углерод
|
||||
@ -1374,6 +1386,8 @@ hbmmat.zirconium=Циркония
|
||||
hbmmat.neodymium=Неодима
|
||||
|
||||
crucible.aa=Производство продвинутого сплава
|
||||
crucible.abronze=Производство мышьяковой бронзы
|
||||
crucible.bbronze=Производство висмутовой бронзы
|
||||
crucible.ferro=Производство ферроуранового сплава
|
||||
crucible.hematite=Переплавка гематита в железо
|
||||
crucible.hss=Производство высокоскоростной стали
|
||||
@ -2163,6 +2177,10 @@ tile.anvil_starmetal.name=Наковальня из звёздного мета
|
||||
tile.anvil_steel.name=Стальная наковальня
|
||||
tile.anvil_bismuth.name=Висмутовая наковальня
|
||||
tile.anvil_osmiridium.name=Осмиридиевая наковальня
|
||||
tile.anvil_arsenic_bronze.name=Наковальня из мышьяковой бронзы
|
||||
tile.anvil_bismuth_bronze.name=Наковальня из висмутовой бронзы
|
||||
tile.anvil_desh.name=Деш-наковальня
|
||||
tile.anvil_saturnite.name=Сатурнитовая наковальня
|
||||
tile.fraction_spacer.name=Разделитель ректификационной колонны
|
||||
tile.machine_fraction_tower.name=Ректификационная колонна
|
||||
tile.machine_orbus.name=Тяжёлый магнитный контейнер для антиматерии
|
||||
@ -2375,6 +2393,9 @@ tile.chimney_industrial.desc=Подсоединяется с помощью вы
|
||||
tile.radio_torch_counter.name=Редстоун-радио счётчик предметов
|
||||
tile.radio_torch_counter.desc=Ставится на плоские поверхности или совместимые компараторные блоки$Сигнал зависит от количества нужных предметов
|
||||
container.rttyCounter=Редстоун-радио счётчик предметов
|
||||
container.rttyLogic=Редстоун-радио логический приёмник
|
||||
tile.radio_torch_logic.name=Редстоун-радио логический приёмник
|
||||
tile.radio_torch_logic.desc=Размещается на плоских поверхностях или совместимых с компаратором блоках$Сопоставляет сигналы красного камня с условиями, оцениваемыми в заданном порядке$Числовые или строковые входы сравниваются с константой
|
||||
tile.machine_industrial_boiler.name=Промышленный бойлер
|
||||
tile.machine_industrial_boiler.desc=Большой бойлер, в котором можно вскипятить воду или разогреть нефть.$Требует внешний источник тепла.$Скорость передачи тепла: ΔT*0.01 TU/t$Не может взорваться
|
||||
container.crateTemplate=Сборочный ящик
|
||||
@ -2400,6 +2421,18 @@ container.machineWoodBurner=Генератор на дровах
|
||||
tile.machine_wood_burner.name=Генератор на дровах
|
||||
tile.machine_wood_burner.desc=Генерирует 100HE/тик$Собирает золу$Может сжигать жидкости с 25%% эффективностью за 1мБ/с
|
||||
|
||||
container.machineICF=ICF
|
||||
tile.icf.name=Реактор инерциального термоядерного синтеза (ICF)
|
||||
tile.icf_block.name=Лазер ICF
|
||||
tile.icf_controller.name=Контроллер лазера ICF
|
||||
tile.icf_laser_component.capacitor.name=Лазерный конденсатор ICF
|
||||
tile.icf_laser_component.casing.name=Обшивка лазера ICF
|
||||
tile.icf_laser_component.cell.name=Лазерная ячейка ICF
|
||||
tile.icf_laser_component.emitter.name=Лазерный излучатель ICF
|
||||
tile.icf_laser_component.port.name=Порт лазера ICF
|
||||
tile.icf_laser_component.turbo.name=Турбоусилитель лазера ICF
|
||||
tile.machine_icf_press.desc=Если бы только было что-то, что могло бы рассказать мне, как и работает ли эта штука$ Что-то вроде журнала изменений или чего-то в этом роде$ Увы, я слишком туп, чтобы читать что-то подобное.
|
||||
|
||||
tile.cm_block.alloy.name=Корпус машины из продвинутого сплава
|
||||
tile.cm_block.desh.name=Корпус машины из деша
|
||||
tile.cm_block.steel.name=Корпус машины из стали
|
||||
@ -2499,7 +2532,11 @@ tile.radiorec.name=FM радио
|
||||
container.radiobox=FM передатчик
|
||||
container.radiorec=FM радио
|
||||
tile.muffler.name=Глушитель
|
||||
tile.red_pylon.name=Электрический столб
|
||||
tile.red_pylon.name=Малый электрический столб
|
||||
tile.red_pylon_medium_steel.name=Средний стальной электрический столб
|
||||
tile.red_pylon_medium_steel_transformer.name=Средний стальной электрический столб с трансформатором
|
||||
tile.red_pylon_medium_wood.name=Средний деревянный электрический столб
|
||||
tile.red_pylon_medium_wood_transformer.name=Средний деревянный электрический столб с трансформатором
|
||||
item.wiring_red_copper.name=Моток провода
|
||||
|
||||
tile.rail_highspeed.name=Высокоскоростные рельсы
|
||||
@ -2773,6 +2810,7 @@ item.ingot_zirconium.name=Циркониевый куб
|
||||
item.ingot_boron.name=Борный слиток
|
||||
item.ingot_graphite.name=Графитовый слиток
|
||||
item.ingot_bismuth.name=Слиток висмута
|
||||
item.ingot_bismuth_bronze.name=Слиток висмутовой бронзы
|
||||
item.cube_power.name=Куб электрония
|
||||
item.ingot_smore.name=Слиток с'мора
|
||||
item.ingot_niobium.name=Ниобиевый слиток
|
||||
@ -2845,7 +2883,7 @@ item.ingot_polymer.name=Полимер
|
||||
item.ingot_rubber.name=Резина
|
||||
item.ingot_biorubber.name=Брусок латекса
|
||||
item.ingot_polonium.name=Слиток полония-210
|
||||
item.pipentm.name=%s трубы
|
||||
item.pipentm.name=Труба из %s
|
||||
item.pipes_steel.name=Стальные трубы
|
||||
item.pipes_steel.desc=Раскрафт был исключен из-за уклонения от уплаты налогов
|
||||
item.drill_titanium.name=Титановый бур
|
||||
@ -2903,6 +2941,7 @@ item.ingot_asbestos.name=Асбестовый лист
|
||||
item.ingot_asbestos.desc=§o"Наполненный жизнью, неуверенностью в себе и асбестом. Это приходит вместе с воздухом."§r
|
||||
item.ingot_arsenic.name=Слиток мышьяка
|
||||
item.nugget_arsenic.name=Самородок мышьяка
|
||||
item.ingot_arsenic_bronze.name=Слиток мышьяковой бронзы
|
||||
|
||||
item.solid_fuel.name=Твердое топливо
|
||||
item.solid_fuel_bf.name=Твердое топливо (Жар-пламя)
|
||||
@ -3594,7 +3633,7 @@ item.powder_iron.name=Железный порошок
|
||||
item.powder_gold.name=Золотой порошок
|
||||
item.powder_aluminium.name=Алюминиевый порошок
|
||||
item.powder_asbestos.name=Асбестовый порошок
|
||||
item.powder_asbestos.desc=§o\"ФФФФФФФФФФ- ММХХХХХХХХХХХХХ\"§r
|
||||
item.powder_asbestos.desc=§o"ФФФФФФФФФФ- ММХХХХХХХХХХХХХ"§r
|
||||
item.powder_beryllium.name=Бериллиевый порошок
|
||||
item.powder_copper.name=Медный порошок
|
||||
item.powder_titanium.name=Титановый порошок
|
||||
@ -4124,6 +4163,10 @@ item.rbmk_pellet_zfb_am_mix.name=ЦТС пеллета америция реак
|
||||
item.rbmk_pellet_zfb_bismuth.name=Висмутовая ЦТС пеллета
|
||||
item.rbmk_pellet_zfb_pu241.name=Плутоний-241 ЦТС пеллета
|
||||
|
||||
item.icf_pellet.name=Топливная пеллета ICF
|
||||
item.icf_pellet_depleted.name=Обедненная топливная пеллета ICF
|
||||
item.icf_pellet_empty.name=Пустая топливная пеллета ICF
|
||||
|
||||
item.rod_uranium_fuel_depleted.name=Топливный стержень с обеднённым ураном
|
||||
item.rod_dual_uranium_fuel_depleted.name=Сдвоенный топливный стержень с обеднённым ураном
|
||||
item.rod_quad_uranium_fuel_depleted.name=Счетверённый топливный стержень с обеднённым ураном
|
||||
@ -4966,7 +5009,7 @@ eye.speakTo=Вы говорите Оку: §o%s
|
||||
|
||||
item.plastic_bag.name=Пластиковый пакетик
|
||||
item.cap_aluminium.name=Алюминиевый колпачок
|
||||
item.shellntm.name=%s оболочка
|
||||
item.shellntm.name=Оболочка из %s
|
||||
item.hull_small_steel.name=Небольшая стальная оболочка
|
||||
item.hull_small_aluminium.name=Небольшая алюминиевая оболочка
|
||||
item.hull_small_aluminium.desc=Может быть вставлен в просверленный графит
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.6 KiB |
Loading…
x
Reference in New Issue
Block a user