Merge pull request #1 from aidancbrady/master

Sync
This commit is contained in:
Ezer Arch 2016-03-02 10:53:04 -03:00
commit e3d0b76d77
48 changed files with 2582 additions and 1074 deletions

View file

@ -4,4 +4,4 @@ FMP_version=1.1.2.331
CCLIB_version=1.1.3.136
NEI_version=1.0.4.101
CCC_version=1.0.6.39
mod_version=8.1.8
mod_version=8.1.9

View file

@ -59,6 +59,7 @@ public final class StackUtils
{
return check == wild;
}
return wild.getItem() == check.getItem() && (wild.getItemDamage() == OreDictionary.WILDCARD_VALUE || wild.getItemDamage() == check.getItemDamage());
}

View file

@ -78,8 +78,6 @@ public class GuiFactory extends GuiMekanism
@Override
protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY)
{
super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY);
mc.renderEngine.bindTexture(tileEntity.tier.guiLocation);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
int guiWidth = (width - xSize) / 2;
@ -129,6 +127,8 @@ public class GuiFactory extends GuiMekanism
{
displayGauge(8, 78, tileEntity.getScaledGasLevel(160), 5, tileEntity.gasTank.getGas());
}
super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY);
}
public void displayGauge(int xPos, int yPos, int sizeX, int sizeY, GasStack gas)

View file

@ -1,228 +0,0 @@
package mekanism.client.nei;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import mekanism.api.energy.IEnergizedItem;
import mekanism.api.gas.IGasItem;
import mekanism.common.base.IEnergyCube;
import mekanism.common.base.IFactory;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.item.ItemBlockBasic;
import mekanism.common.recipe.MekanismRecipe;
import mekanism.common.util.LangUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.OreDictionary;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.ShapedRecipeHandler;
public class MekanismRecipeHandler extends ShapedRecipeHandler
{
@Override
public String getRecipeName()
{
return "Mekanism " + LangUtils.localize("recipe.mekanismShaped");
}
@Override
public void loadCraftingRecipes(String outputId, Object... results)
{
if(outputId.equals("crafting") && getClass() == MekanismRecipeHandler.class)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof MekanismRecipe)
{
MekanismRecipe energyRecipe = (MekanismRecipe)irecipe;
CachedEnergyRecipe recipe = new CachedEnergyRecipe(energyRecipe.width, energyRecipe.height, energyRecipe.getInput(), energyRecipe.getRecipeOutput());
arecipes.add(recipe);
}
}
}
else {
super.loadCraftingRecipes(outputId, results);
}
}
@Override
public void loadCraftingRecipes(ItemStack result)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof MekanismRecipe && areItemsEqual(irecipe.getRecipeOutput(), result))
{
MekanismRecipe energyRecipe = (MekanismRecipe)irecipe;
CachedEnergyRecipe recipe = new CachedEnergyRecipe(energyRecipe.width, energyRecipe.height, energyRecipe.getInput(), energyRecipe.getRecipeOutput());
arecipes.add(recipe);
}
}
}
@Override
public void loadUsageRecipes(ItemStack ingredient)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof MekanismRecipe)
{
MekanismRecipe energyRecipe = (MekanismRecipe)irecipe;
CachedEnergyRecipe recipe = new CachedEnergyRecipe(energyRecipe.width, energyRecipe.height, energyRecipe.getInput(), energyRecipe.getRecipeOutput());
if(recipe.contains(recipe.ingredients, ingredient))
{
recipe.setIngredientPermutation(recipe.ingredients, ingredient);
arecipes.add(recipe);
}
}
}
}
public static boolean areItemsEqual(ItemStack target, ItemStack input)
{
if(target == null && input != null || target != null && input == null)
{
return false;
}
else if(target == null && input == null)
{
return true;
}
if(target.getItem() != input.getItem())
{
return false;
}
if(!(target.getItem() instanceof IEnergizedItem) && !(input.getItem() instanceof IEnergizedItem) && !(target.getItem() instanceof IGasItem) && !(input.getItem() instanceof IGasItem))
{
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
return false;
}
}
else {
if(target.getItem() instanceof IEnergizedItem && input.getItem() instanceof IEnergizedItem)
{
if(((IEnergizedItem)target.getItem()).isMetadataSpecific(target) && ((IEnergizedItem)input.getItem()).isMetadataSpecific(input))
{
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
return false;
}
}
}
if(target.getItem() instanceof IGasItem && input.getItem() instanceof IGasItem)
{
if(((IGasItem)target.getItem()).isMetadataSpecific(target) && ((IGasItem)input.getItem()).isMetadataSpecific(input))
{
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
return false;
}
}
}
if(target.getItem() instanceof IEnergyCube && input.getItem() instanceof IEnergyCube)
{
if(((IEnergyCube)target.getItem()).getEnergyCubeTier(target) != ((IEnergyCube)input.getItem()).getEnergyCubeTier(input))
{
return false;
}
}
else if(target.getItem() instanceof ItemBlockBasic && input.getItem() instanceof ItemBlockBasic)
{
if(((ItemBlockBasic)target.getItem()).getTier(target) != ((ItemBlockBasic)input.getItem()).getTier(input))
{
return false;
}
}
else if(target.getItem() instanceof IFactory && input.getItem() instanceof IFactory)
{
if(isFactory(target) && isFactory(input))
{
if(((IFactory)target.getItem()).getRecipeType(target) != ((IFactory)input.getItem()).getRecipeType(input))
{
return false;
}
}
}
}
return true;
}
private static boolean isFactory(ItemStack stack)
{
return MachineType.get(stack) == MachineType.BASIC_FACTORY || MachineType.get(stack) == MachineType.ADVANCED_FACTORY || MachineType.get(stack) == MachineType.ELITE_FACTORY;
}
public class CachedEnergyRecipe extends CachedRecipe
{
public ArrayList<PositionedStack> ingredients;
public PositionedStack result;
public CachedEnergyRecipe(int width, int height, Object[] items, ItemStack out)
{
result = new PositionedStack(out, 119, 24);
ingredients = new ArrayList<PositionedStack>();
setIngredients(width, height, items);
}
public void setIngredients(int width, int height, Object[] items)
{
for(int x = 0; x < width; x++)
{
for(int y = 0; y < height; y++)
{
if(items[y*width+x] == null)
{
continue;
}
PositionedStack stack = new PositionedStack(items[y*width+x], 25+x*18, 6+y*18);
stack.setMaxSize(1);
ingredients.add(stack);
}
}
}
@Override
public ArrayList<PositionedStack> getIngredients()
{
return (ArrayList<PositionedStack>)getCycledIngredients(MekanismRecipeHandler.this.cycleticks / 20, ingredients);
}
@Override
public PositionedStack getResult()
{
return result;
}
@Override
public boolean contains(Collection<PositionedStack> ingredients, ItemStack ingredient)
{
for(PositionedStack stack : ingredients)
{
for(ItemStack item : stack.items)
{
if(areItemsEqual(item, ingredient))
{
return true;
}
}
}
return false;
}
}
}

View file

@ -51,9 +51,6 @@ public class NEIMekanismConfig implements IConfigureNEI
API.registerRecipeHandler(new ChemicalInjectionChamberRecipeHandler());
API.registerUsageHandler(new ChemicalInjectionChamberRecipeHandler());
API.registerRecipeHandler(new MekanismRecipeHandler());
API.registerUsageHandler(new MekanismRecipeHandler());
API.registerRecipeHandler(new ChemicalOxidizerRecipeHandler());
API.registerUsageHandler(new ChemicalOxidizerRecipeHandler());
@ -87,6 +84,12 @@ public class NEIMekanismConfig implements IConfigureNEI
API.registerRecipeHandler(new SolarNeutronRecipeHandler());
API.registerUsageHandler(new SolarNeutronRecipeHandler());
API.registerRecipeHandler(new ShapedMekanismRecipeHandler());
API.registerUsageHandler(new ShapedMekanismRecipeHandler());
API.registerRecipeHandler(new ShapelessMekanismRecipeHandler());
API.registerUsageHandler(new ShapelessMekanismRecipeHandler());
API.setGuiOffset(GuiEnrichmentChamber.class, 16, 6);
API.setGuiOffset(GuiOsmiumCompressor.class, 16, 6);
API.setGuiOffset(GuiCrusher.class, 16, 6);

View file

@ -0,0 +1,156 @@
package mekanism.client.nei;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.util.LangUtils;
import mekanism.common.util.RecipeUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.ShapedRecipeHandler;
public class ShapedMekanismRecipeHandler extends ShapedRecipeHandler
{
@Override
public String getRecipeName()
{
return "Mekanism " + LangUtils.localize("recipe.mekanismShaped");
}
@Override
public void loadCraftingRecipes(String outputId, Object... results)
{
if(outputId.equals("crafting") && getClass() == ShapedMekanismRecipeHandler.class)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof ShapedMekanismRecipe)
{
ShapedMekanismRecipe mekanismRecipe = (ShapedMekanismRecipe)irecipe;
CachedShapedMekanismRecipe recipe = new CachedShapedMekanismRecipe(mekanismRecipe);
recipe.computeVisuals();
arecipes.add(recipe);
}
}
}
else {
super.loadCraftingRecipes(outputId, results);
}
}
@Override
public void loadCraftingRecipes(ItemStack result)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof ShapedMekanismRecipe && RecipeUtils.areItemsEqualForCrafting(irecipe.getRecipeOutput(), result))
{
ShapedMekanismRecipe mekanismRecipe = (ShapedMekanismRecipe)irecipe;
CachedShapedMekanismRecipe recipe = new CachedShapedMekanismRecipe(mekanismRecipe);
recipe.computeVisuals();
arecipes.add(recipe);
}
}
}
@Override
public void loadUsageRecipes(ItemStack ingredient)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof ShapedMekanismRecipe)
{
ShapedMekanismRecipe mekanismRecipe = (ShapedMekanismRecipe)irecipe;
CachedShapedMekanismRecipe recipe = new CachedShapedMekanismRecipe(mekanismRecipe);
recipe.computeVisuals();
if(recipe.contains(recipe.ingredients, ingredient))
{
recipe.setIngredientPermutation(recipe.ingredients, ingredient);
arecipes.add(recipe);
}
}
}
}
public class CachedShapedMekanismRecipe extends CachedRecipe
{
public ArrayList<PositionedStack> ingredients;
public PositionedStack result;
public CachedShapedMekanismRecipe(ShapedMekanismRecipe recipe)
{
result = new PositionedStack(recipe.getRecipeOutput(), 119, 24);
ingredients = new ArrayList<PositionedStack>();
setIngredients(recipe.width, recipe.height, recipe.getInput());
}
public void setIngredients(int width, int height, Object[] items)
{
for(int x = 0; x < width; x++)
{
for(int y = 0; y < height; y++)
{
if(items[y*width+x] == null)
{
continue;
}
PositionedStack stack = new PositionedStack(items[y*width+x], 25+x*18, 6+y*18);
stack.setMaxSize(1);
ingredients.add(stack);
}
}
}
@Override
public List<PositionedStack> getIngredients()
{
return getCycledIngredients(cycleticks / 20, ingredients);
}
@Override
public PositionedStack getResult()
{
return result;
}
public void computeVisuals()
{
for(PositionedStack p : ingredients)
{
p.generatePermutations();
}
}
@Override
public boolean contains(Collection<PositionedStack> ingredients, ItemStack ingredient)
{
for(PositionedStack stack : ingredients)
{
for(ItemStack item : stack.items)
{
if(RecipeUtils.areItemsEqualForCrafting(item, ingredient))
{
return true;
}
}
}
return false;
}
}
}

View file

@ -0,0 +1,125 @@
package mekanism.client.nei;
import java.util.ArrayList;
import java.util.List;
import mekanism.common.recipe.ShapelessMekanismRecipe;
import mekanism.common.util.LangUtils;
import mekanism.common.util.RecipeUtils;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.ShapelessRecipeHandler;
public class ShapelessMekanismRecipeHandler extends ShapelessRecipeHandler
{
@Override
public String getRecipeName()
{
return "Mekanism " + LangUtils.localize("recipe.mekanismShapeless");
}
@Override
public void loadCraftingRecipes(String outputId, Object... results)
{
if(outputId.equals("crafting") && getClass() == ShapelessMekanismRecipeHandler.class)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof ShapelessMekanismRecipe)
{
ShapelessMekanismRecipe mekanismRecipe = (ShapelessMekanismRecipe)irecipe;
CachedShapelessMekanismRecipe recipe = new CachedShapelessMekanismRecipe(mekanismRecipe);
arecipes.add(recipe);
}
}
}
else {
super.loadCraftingRecipes(outputId, results);
}
}
@Override
public void loadCraftingRecipes(ItemStack result)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof ShapelessMekanismRecipe && RecipeUtils.areItemsEqualForCrafting(irecipe.getRecipeOutput(), result))
{
ShapelessMekanismRecipe mekanismRecipe = (ShapelessMekanismRecipe)irecipe;
CachedShapelessMekanismRecipe recipe = new CachedShapelessMekanismRecipe(mekanismRecipe);
arecipes.add(recipe);
}
}
}
@Override
public void loadUsageRecipes(ItemStack ingredient)
{
List<IRecipe> allrecipes = CraftingManager.getInstance().getRecipeList();
for(IRecipe irecipe : allrecipes)
{
if(irecipe instanceof ShapelessMekanismRecipe)
{
ShapelessMekanismRecipe mekanismRecipe = (ShapelessMekanismRecipe)irecipe;
CachedShapelessMekanismRecipe recipe = new CachedShapelessMekanismRecipe(mekanismRecipe);
if(recipe.contains(recipe.ingredients, ingredient))
{
recipe.setIngredientPermutation(recipe.ingredients, ingredient);
arecipes.add(recipe);
}
}
}
}
public class CachedShapelessMekanismRecipe extends CachedRecipe
{
public ArrayList<PositionedStack> ingredients;
public PositionedStack result;
public CachedShapelessMekanismRecipe(ShapelessMekanismRecipe recipe)
{
result = new PositionedStack(recipe.getRecipeOutput(), 119, 24);
ingredients = new ArrayList<PositionedStack>();
setIngredients(recipe.getInput());
}
public void setIngredients(List<?> items)
{
ingredients.clear();
for(int x = 0; x < items.size(); x++)
{
PositionedStack stack = new PositionedStack(items.get(x), 25 + stackorder[x][0] * 18, 6 + stackorder[x][1] * 18);
stack.setMaxSize(1);
ingredients.add(stack);
}
}
public void setResult(ItemStack output)
{
result = new PositionedStack(output, 119, 24);
}
@Override
public List<PositionedStack> getIngredients()
{
return getCycledIngredients(cycleticks / 20, ingredients);
}
@Override
public PositionedStack getResult()
{
return result;
}
}
}

View file

@ -65,15 +65,15 @@ public final class BoxBlacklistParser
continue;
}
String[] split = readingLine.split(":");
String[] split = readingLine.split(" ");
if(split.length < 2 || split.length > 3 || !isInteger(split[split.length-1]))
if(split.length != 2 || !isInteger(split[split.length-1]))
{
Mekanism.logger.error("BoxBlacklist.txt: Couldn't parse blacklist data on line " + line);
continue;
}
String blockName = (split.length == 2) ? split[0].trim() : split[0].trim() + ":" + split[1].trim();
String blockName = split[0].trim();
Block block = Block.getBlockFromName(blockName);
@ -99,10 +99,10 @@ public final class BoxBlacklistParser
writer.append("# Use this file to tell Mekanism which blocks should not be picked up by a cardboard box.");
writer.newLine();
writer.append("# Proper syntax is \"NAME:META\". Example (for stone):");
writer.append("# Proper syntax is \"NAME META\". Example (for stone):");
writer.newLine();
writer.append("# stone:0");
writer.append("# minecraft:stone 0");
writer.flush();
writer.close();

View file

@ -4,10 +4,15 @@ import java.util.List;
import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.RecipeHandler.Recipe;
import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.recipe.ShapelessMekanismRecipe;
import mekanism.common.recipe.inputs.MachineInput;
import mekanism.common.recipe.machines.MachineRecipe;
import mekanism.common.util.RecipeUtils;
import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage;
import cpw.mods.fml.common.registry.GameRegistry;
public class IMCHandler
{
@ -22,9 +27,57 @@ public class IMCHandler
boolean found = false;
boolean delete = false;
if(msg.key.startsWith("Delete"))
String message = msg.key;
if(message.equals("ShapedMekanismRecipe"))
{
msg.key.replace("Delete", "");
ShapedMekanismRecipe recipe = ShapedMekanismRecipe.create(msg.getNBTValue());
if(recipe != null)
{
GameRegistry.addRecipe(recipe);
Mekanism.logger.info("[Mekanism] " + msg.getSender() + " added a shaped recipe to the recipe list.");
}
else {
Mekanism.logger.error("[Mekanism] " + msg.getSender() + " attempted to add an invalid shaped recipe.");
}
found = true;
}
else if(message.equals("ShapelessMekanismRecipe"))
{
ShapelessMekanismRecipe recipe = ShapelessMekanismRecipe.create(msg.getNBTValue());
if(recipe != null)
{
GameRegistry.addRecipe(recipe);
Mekanism.logger.info("[Mekanism] " + msg.getSender() + " added a shapeless recipe to the recipe list.");
}
else {
Mekanism.logger.error("[Mekanism] " + msg.getSender() + " attempted to add an invalid shapeless recipe.");
}
found = true;
}
else if(message.equals("DeleteMekanismRecipes") || message.equals("RemoveMekanismRecipes"))
{
ItemStack stack = RecipeUtils.loadRecipeItemStack(msg.getNBTValue());
if(stack != null)
{
RecipeUtils.removeRecipes(stack);
Mekanism.logger.info("[Mekanism] " + msg.getSender() + " removed a Mekanism recipe from the recipe list.");
}
else {
Mekanism.logger.error("[Mekanism] " + msg.getSender() + " attempted to remove a Mekanism recipe with an invalid output.");
}
found = true;
}
if(message.startsWith("Delete") || message.startsWith("Remove"))
{
message = message.replace("Delete", "").replace("Remove", "");
delete = true;
}

View file

@ -1,16 +1,15 @@
package mekanism.common;
import codechicken.multipart.handler.MultipartProxy;
import com.mojang.authlib.GameProfile;
import cpw.mods.fml.client.event.ConfigChangedEvent;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor;
import mekanism.api.MekanismAPI;
@ -32,7 +31,11 @@ import mekanism.api.transmitters.TransmitterNetworkRegistry;
import mekanism.client.ClientTickHandler;
import mekanism.common.EnergyNetwork.EnergyTransferEvent;
import mekanism.common.FluidNetwork.FluidTransferEvent;
import mekanism.common.Tier.*;
import mekanism.common.Tier.BaseTier;
import mekanism.common.Tier.EnergyCubeTier;
import mekanism.common.Tier.FactoryTier;
import mekanism.common.Tier.InductionCellTier;
import mekanism.common.Tier.InductionProviderTier;
import mekanism.common.base.IChunkLoadHandler;
import mekanism.common.base.IFactory.RecipeType;
import mekanism.common.base.IModule;
@ -45,7 +48,11 @@ import mekanism.common.content.tank.SynchronizedTankData;
import mekanism.common.content.transporter.PathfinderCache;
import mekanism.common.content.transporter.TransporterManager;
import mekanism.common.content.turbine.SynchronizedTurbineData;
import mekanism.common.entity.*;
import mekanism.common.entity.EntityBabySkeleton;
import mekanism.common.entity.EntityBalloon;
import mekanism.common.entity.EntityFlame;
import mekanism.common.entity.EntityObsidianTNT;
import mekanism.common.entity.EntityRobit;
import mekanism.common.frequency.Frequency;
import mekanism.common.frequency.FrequencyManager;
import mekanism.common.integration.MekanismHooks;
@ -56,13 +63,22 @@ import mekanism.common.network.PacketDataRequest.DataRequestMessage;
import mekanism.common.network.PacketTransmitterUpdate.PacketType;
import mekanism.common.network.PacketTransmitterUpdate.TransmitterUpdateMessage;
import mekanism.common.recipe.BinRecipe;
import mekanism.common.recipe.MekanismRecipe;
import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.RecipeHandler.Recipe;
import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.recipe.ShapelessMekanismRecipe;
import mekanism.common.recipe.inputs.ItemStackInput;
import mekanism.common.recipe.machines.SmeltingRecipe;
import mekanism.common.recipe.outputs.ItemStackOutput;
import mekanism.common.tile.*;
import mekanism.common.tile.TileEntityAdvancedBoundingBlock;
import mekanism.common.tile.TileEntityThermoelectricBoiler;
import mekanism.common.tile.TileEntityThermoelectricValve;
import mekanism.common.tile.TileEntityBoundingBlock;
import mekanism.common.tile.TileEntityCardboardBox;
import mekanism.common.tile.TileEntityElectricBlock;
import mekanism.common.tile.TileEntityEntangledBlock;
import mekanism.common.tile.TileEntitySolarEvaporationBlock;
import mekanism.common.tile.TileEntitySolarEvaporationValve;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.common.voice.VoiceServerManager;
@ -89,21 +105,42 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import rebelkeithy.mods.metallurgy.api.IOreInfo;
import rebelkeithy.mods.metallurgy.api.MetallurgyAPI;
import codechicken.multipart.handler.MultipartProxy;
import java.io.File;
import java.util.*;
import com.mojang.authlib.GameProfile;
import cpw.mods.fml.client.event.ConfigChangedEvent;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
/**
* Mekanism - a Minecraft mod
* @author AidanBrady
*
*/
@Mod(modid = "Mekanism", name = "Mekanism", version = "8.1.8", guiFactory = "mekanism.client.gui.ConfigGuiFactory",
@Mod(modid = "Mekanism", name = "Mekanism", version = "8.1.9", guiFactory = "mekanism.client.gui.ConfigGuiFactory",
dependencies = "after:ForgeMultipart;after:BuildCraft;after:BuildCraftAPI;after:IC2;after:CoFHCore;" +
"after:ComputerCraft;after:Galacticraft API;after:MetallurgyCore")
public class Mekanism
@ -129,7 +166,7 @@ public class Mekanism
public static Configuration configuration;
/** Mekanism version number */
public static Version versionNumber = new Version(8, 1, 8);
public static Version versionNumber = new Version(8, 1, 9);
/** MultiblockManagers for various structrures */
public static MultiblockManager<SynchronizedTankData> tankManager = new MultiblockManager<SynchronizedTankData>("dynamicTank");
@ -185,348 +222,348 @@ public class Mekanism
public void addRecipes()
{
//Storage Recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 3), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 3), new Object[] {
"***", "***", "***", Character.valueOf('*'), new ItemStack(Items.coal, 1, 1)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Items.coal, 9, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(Items.coal, 9, 1), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 3)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 2), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 2), new Object[] {
"***", "***", "***", Character.valueOf('*'), "ingotRefinedObsidian"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 0), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 2)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 4), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 4), new Object[] {
"***", "***", "***", Character.valueOf('*'), "ingotRefinedGlowstone"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 3), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 3), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 4)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 0), new Object[] {
"XXX", "XXX", "XXX", Character.valueOf('X'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 1), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 0)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 1), new Object[] {
"***", "***", "***", Character.valueOf('*'), "ingotBronze"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 2), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 2), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 1)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 5), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 5), new Object[] {
"***", "***", "***", Character.valueOf('*'), "ingotSteel"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 4), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 4), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 5)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 12), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 12), new Object[] {
"***", "***", "***", Character.valueOf('*'), "ingotCopper"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 5), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 5), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 12)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 13), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 13), new Object[] {
"***", "***", "***", Character.valueOf('*'), "ingotTin"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 6), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Ingot, 9, 6), new Object[] {
"*", Character.valueOf('*'), new ItemStack(MekanismBlocks.BasicBlock, 1, 13)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.SaltBlock), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.SaltBlock), new Object[] {
"**", "**", Character.valueOf('*'), MekanismItems.Salt
}));
//Base Recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.ObsidianTNT, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.ObsidianTNT, 1), new Object[] {
"***", "XXX", "***", Character.valueOf('*'), Blocks.obsidian, Character.valueOf('X'), Blocks.tnt
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.ElectricBow.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.ElectricBow.getUnchargedItem(), new Object[] {
" AB", "E B", " AB", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('B'), Items.string, Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.EnergyTablet.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.EnergyTablet.getUnchargedItem(), new Object[] {
"RCR", "ECE", "RCR", Character.valueOf('C'), "ingotGold", Character.valueOf('R'), "dustRedstone", Character.valueOf('E'), MekanismItems.EnrichedAlloy
}));
MachineType.ENRICHMENT_CHAMBER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 0), new Object[] {
MachineType.ENRICHMENT_CHAMBER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 0), new Object[] {
"RCR", "iIi", "RCR", Character.valueOf('i'), "ingotIron", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('R'), "alloyBasic", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
MachineType.OSMIUM_COMPRESSOR.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 1), new Object[] {
MachineType.OSMIUM_COMPRESSOR.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 1), new Object[] {
"ECE", "BIB", "ECE", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ADVANCED), Character.valueOf('B'), Items.bucket, Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
MachineType.COMBINER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 2), new Object[] {
MachineType.COMBINER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 2), new Object[] {
"RCR", "SIS", "RCR", Character.valueOf('S'), Blocks.cobblestone, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE), Character.valueOf('R'), "alloyElite", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
MachineType.CRUSHER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 3), new Object[] {
MachineType.CRUSHER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 3), new Object[] {
"RCR", "LIL", "RCR", Character.valueOf('R'), "dustRedstone", Character.valueOf('L'), Items.lava_bucket, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.SpeedUpgrade), new Object[]{
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.SpeedUpgrade), new Object[]{
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.EnergyUpgrade), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.EnergyUpgrade), new Object[] {
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustGold"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.FilterUpgrade), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FilterUpgrade), new Object[] {
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustTin"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.GasUpgrade), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.GasUpgrade), new Object[] {
" G ", "ADA", " G ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('D'), "dustIron"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.AtomicDisassembler.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.AtomicDisassembler.getUnchargedItem(), new Object[] {
"AEA", "ACA", " O ", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('C'), MekanismItems.AtomicAlloy, Character.valueOf('O'), "ingotRefinedObsidian"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getEmptyGasTank(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getEmptyGasTank(), new Object[] {
"PPP", "PDP", "PPP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('D'), "dustIron"
}));
MachineType.METALLURGIC_INFUSER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 8), new Object[] {
MachineType.METALLURGIC_INFUSER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 8), new Object[] {
"IFI", "ROR", "IFI", Character.valueOf('I'), "ingotIron", Character.valueOf('F'), Blocks.furnace, Character.valueOf('R'), "dustRedstone", Character.valueOf('O'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.TeleportationCore), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.TeleportationCore), new Object[] {
"LAL", "GDG", "LAL", Character.valueOf('L'), new ItemStack(Items.dye, 1, 4), Character.valueOf('A'), MekanismItems.AtomicAlloy, Character.valueOf('G'), "ingotGold", Character.valueOf('D'), Items.diamond
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.PortableTeleporter.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.PortableTeleporter.getUnchargedItem(), new Object[] {
" E ", "CTC", " E ", Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('T'), MekanismItems.TeleportationCore
}));
MachineType.TELEPORTER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 11), new Object[] {
MachineType.TELEPORTER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 11), new Object[] {
"COC", "OTO", "COC", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('O'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('T'), MekanismItems.TeleportationCore
}));
MachineType.PURIFICATION_CHAMBER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 9), new Object[] {
MachineType.PURIFICATION_CHAMBER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 9), new Object[] {
"ECE", "ORO", "ECE", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ADVANCED), Character.valueOf('E'), "alloyAdvanced", Character.valueOf('O'), "ingotOsmium", Character.valueOf('R'), new ItemStack(MekanismBlocks.MachineBlock, 1, 0)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.Configurator.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.Configurator.getUnchargedItem(), new Object[] {
" L ", "AEA", " S ", Character.valueOf('L'), new ItemStack(Items.dye, 1, 4), Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('S'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 9, 7), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 9, 7), new Object[] {
"OOO", "OGO", "OOO", Character.valueOf('O'), "ingotRefinedObsidian", Character.valueOf('G'), "ingotRefinedGlowstone"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 8), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 8), new Object[] {
" S ", "SPS", " S ", Character.valueOf('S'), "ingotSteel", Character.valueOf('P'), "ingotOsmium"
}));
MachineType.ENERGIZED_SMELTER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 10), new Object[] {
MachineType.ENERGIZED_SMELTER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 10), new Object[] {
"RCR", "GIG", "RCR", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('R'), "alloyBasic", Character.valueOf('G'), "blockGlass", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
MachineType.ELECTRIC_PUMP.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 12), new Object[] {
MachineType.ELECTRIC_PUMP.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 12), new Object[] {
" B ", "ECE", "OOO", Character.valueOf('B'), Items.bucket, Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('C'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('O'), "ingotOsmium"
}));
MachineType.ELECTRIC_CHEST.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 13), new Object[] {
MachineType.ELECTRIC_CHEST.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 13), new Object[] {
"SGS", "CcC", "SSS", Character.valueOf('S'), "ingotSteel", Character.valueOf('G'), "blockGlass", Character.valueOf('C'), Blocks.chest, Character.valueOf('c'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 4, 9), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 4, 9), new Object[] {
" I ", "IBI", " I ", Character.valueOf('I'), "ingotSteel", Character.valueOf('B'), Items.bucket
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 4, 10), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 4, 10), new Object[] {
" I ", "IGI", " I ", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9), Character.valueOf('G'), "blockGlass"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 2, 11), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 2, 11), new Object[] {
" I ", "ICI", " I ", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
MachineType.CHARGEPAD.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 14), new Object[] {
MachineType.CHARGEPAD.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 14), new Object[] {
"PPP", "SES", Character.valueOf('P'), Blocks.stone_pressure_plate, Character.valueOf('S'), "ingotSteel", Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.Robit.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.Robit.getUnchargedItem(), new Object[] {
" S ", "ECE", "OIO", Character.valueOf('S'), "ingotSteel", Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('C'), MekanismItems.AtomicAlloy, Character.valueOf('O'), "ingotRefinedObsidian", Character.valueOf('I'), new ItemStack(MekanismBlocks.MachineBlock, 1, 13)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.NetworkReader.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.NetworkReader.getUnchargedItem(), new Object[] {
" G ", "AEA", " I ", Character.valueOf('G'), "blockGlass", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('I'), "ingotSteel"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.WalkieTalkie), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.WalkieTalkie), new Object[] {
" O", "SCS", " S ", Character.valueOf('O'), "ingotOsmium", Character.valueOf('S'), "ingotSteel", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
MachineType.LOGISTICAL_SORTER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 15), new Object[] {
MachineType.LOGISTICAL_SORTER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 15), new Object[] {
"IPI", "ICI", "III", Character.valueOf('I'), "ingotIron", Character.valueOf('P'), Blocks.piston, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 6), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 6), new Object[] {
"SSS", "SCS", "SSS", Character.valueOf('S'), Blocks.cobblestone, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
MachineType.DIGITAL_MINER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 4), new Object[] {
MachineType.DIGITAL_MINER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock, 1, 4), new Object[] {
"ACA", "SES", "TIT", Character.valueOf('A'), MekanismItems.AtomicAlloy, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('S'), new ItemStack(MekanismBlocks.MachineBlock, 1, 15), Character.valueOf('E'), MekanismItems.Robit.getUnchargedItem(),
Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('T'), MekanismItems.TeleportationCore
}));
MachineType.ROTARY_CONDENSENTRATOR.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 0), new Object[] {
MachineType.ROTARY_CONDENSENTRATOR.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 0), new Object[] {
"GCG", "tEI", "GCG", Character.valueOf('G'), "blockGlass", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('t'), MekanismUtils.getEmptyGasTank(), Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(),
Character.valueOf('T'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9), Character.valueOf('I'), new ItemStack(MekanismBlocks.MachineBlock2, 1, 11)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.Jetpack.getEmptyItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.Jetpack.getEmptyItem(), new Object[] {
"SCS", "TGT", " T ", Character.valueOf('S'), "ingotSteel", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('T'), "ingotTin", Character.valueOf('G'), MekanismUtils.getEmptyGasTank()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Dictionary), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Dictionary), new Object[] {
"C", "B", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('B'), Items.book
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.GasMask), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.GasMask), new Object[] {
" S ", "GCG", "S S", Character.valueOf('S'), "ingotSteel", Character.valueOf('G'), "blockGlass", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.ScubaTank.getEmptyItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.ScubaTank.getEmptyItem(), new Object[] {
" C ", "ATA", "SSS", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('S'), "ingotSteel"
}));
MachineType.CHEMICAL_OXIDIZER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 1), new Object[] {
MachineType.CHEMICAL_OXIDIZER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 1), new Object[] {
"ACA", "ERG", "ACA", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('R'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9), Character.valueOf('G'), MekanismUtils.getEmptyGasTank(), Character.valueOf('E'), new ItemStack(MekanismBlocks.MachineBlock, 1, 13), Character.valueOf('A'), MekanismItems.EnrichedAlloy
}));
MachineType.CHEMICAL_INFUSER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 2), new Object[] {
MachineType.CHEMICAL_INFUSER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 2), new Object[] {
"ACA", "GRG", "ACA", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('R'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9), Character.valueOf('G'), MekanismUtils.getEmptyGasTank(), Character.valueOf('A'), MekanismItems.EnrichedAlloy
}));
MachineType.CHEMICAL_INJECTION_CHAMBER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 3), new Object[] {
MachineType.CHEMICAL_INJECTION_CHAMBER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 3), new Object[] {
"RCR", "GPG", "RCR", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE), Character.valueOf('R'), "alloyElite", Character.valueOf('G'), "ingotGold", Character.valueOf('P'), new ItemStack(MekanismBlocks.MachineBlock, 1, 9)
}));
MachineType.ELECTROLYTIC_SEPARATOR.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 4), new Object[] {
MachineType.ELECTROLYTIC_SEPARATOR.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 4), new Object[] {
"IRI", "ECE", "IRI", Character.valueOf('I'), "ingotIron", Character.valueOf('R'), "dustRedstone", Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('C'), MekanismItems.ElectrolyticCore
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.ElectrolyticCore), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.ElectrolyticCore), new Object[] {
"EPE", "IEG", "EPE", Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('P'), "dustOsmium", Character.valueOf('I'), "dustIron", Character.valueOf('G'), "dustGold"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.CardboardBox), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.CardboardBox), new Object[] {
"SS", "SS", Character.valueOf('S'), "pulpWood"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Items.paper, 6), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(Items.paper, 6), new Object[] {
"SSS", Character.valueOf('S'), MekanismItems.Sawdust
}));
MachineType.PRECISION_SAWMILL.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 5), new Object[] {
MachineType.PRECISION_SAWMILL.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 5), new Object[] {
"ICI", "ASA", "ICI", Character.valueOf('I'), "ingotIron", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('S'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 14), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 14), new Object[] {
"CGC", "IBI", "CGC", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('G'), "paneGlass", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('B'), "blockCopper"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 15), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 1, 15), new Object[] {
"ITI", "CBC", "ITI", Character.valueOf('I'), "ingotCopper", Character.valueOf('T'), new ItemStack(MekanismBlocks.BasicBlock, 1, 11), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('B'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock2, 1, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock2, 1, 0), new Object[] {
"CCC", "CTC", "CCC", Character.valueOf('C'), "ingotCopper", Character.valueOf('T'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9)
}));
MachineType.CHEMICAL_DISSOLUTION_CHAMBER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 6), new Object[] {
MachineType.CHEMICAL_DISSOLUTION_CHAMBER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 6), new Object[] {
"CGC", "EAE", "CGC", Character.valueOf('G'), MekanismUtils.getEmptyGasTank(), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('A'), MekanismItems.AtomicAlloy, Character.valueOf('E'), MekanismItems.EnrichedAlloy
}));
MachineType.CHEMICAL_WASHER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 7), new Object[] {
MachineType.CHEMICAL_WASHER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 7), new Object[] {
"CWC", "EIE", "CGC", Character.valueOf('W'), Items.bucket, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('G'), MekanismUtils.getEmptyGasTank(), Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
MachineType.CHEMICAL_CRYSTALLIZER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 8), new Object[] {
MachineType.CHEMICAL_CRYSTALLIZER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 8), new Object[] {
"CGC", "ASA", "CGC", Character.valueOf('G'), MekanismUtils.getEmptyGasTank(), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('A'), MekanismItems.AtomicAlloy, Character.valueOf('S'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.FreeRunners.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.FreeRunners.getUnchargedItem(), new Object[] {
"C C", "A A", "T T", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.ArmoredJetpack.getEmptyItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.ArmoredJetpack.getEmptyItem(), new Object[] {
"D D", "BSB", " J ", Character.valueOf('D'), "dustDiamond", Character.valueOf('B'), "ingotBronze", Character.valueOf('S'), "blockSteel", Character.valueOf('J'), MekanismItems.Jetpack.getEmptyItem()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.FilterCard), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FilterCard), new Object[] {
" A ", "ACA", " A ", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.SeismicReader.getUnchargedItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.SeismicReader.getUnchargedItem(), new Object[] {
"SLS", "STS", "SSS", Character.valueOf('S'), "ingotSteel", Character.valueOf('L'), new ItemStack(Items.dye, 1, 4), Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem()
}));
MachineType.SEISMIC_VIBRATOR.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 9), new Object[] {
MachineType.SEISMIC_VIBRATOR.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 9), new Object[] {
"TLT", "CIC", "TTT", Character.valueOf('T'), "ingotTin", Character.valueOf('L'), new ItemStack(Items.dye, 1, 4), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
MachineType.PRESSURIZED_REACTION_CHAMBER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 10), new Object[] {
MachineType.PRESSURIZED_REACTION_CHAMBER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 10), new Object[] {
"TET", "CIC", "GFG", Character.valueOf('S'), "ingotSteel", Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('G'), MekanismUtils.getEmptyGasTank(),
Character.valueOf('I'), new ItemStack(MekanismBlocks.MachineBlock, 1, 0), Character.valueOf('F'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9)
}));
MachineType.PORTABLE_TANK.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 11), new Object[] {
MachineType.PORTABLE_TANK.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 11), new Object[] {
"III", "GCG", "III", Character.valueOf('I'), "ingotIron", Character.valueOf('G'), "blockGlass", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
MachineType.FLUIDIC_PLENISHER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 12), new Object[] {
MachineType.FLUIDIC_PLENISHER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 12), new Object[] {
"TTT", "CPC", "TTT", Character.valueOf('P'), new ItemStack(MekanismBlocks.MachineBlock, 1, 12), Character.valueOf('T'), "ingotTin", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(Blocks.rail, 24), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(Blocks.rail, 24), new Object[] {
"O O", "OSO", "O O", Character.valueOf('O'), "ingotOsmium", Character.valueOf('S'), "stickWood"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.Flamethrower.getEmptyItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.Flamethrower.getEmptyItem(), new Object[] {
"TTT", "TGS", "BCB", Character.valueOf('T'), "ingotTin", Character.valueOf('G'), MekanismUtils.getEmptyGasTank(), Character.valueOf('S'), Items.flint_and_steel, Character.valueOf('B'), "ingotBronze", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ADVANCED)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismItems.GaugeDropper.getEmptyItem(), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismItems.GaugeDropper.getEmptyItem(), new Object[] {
" O ", "G G", "GGG", Character.valueOf('O'), "ingotOsmium", Character.valueOf('G'), "paneGlass"
}));
MachineType.SOLAR_NEUTRON_ACTIVATOR.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock3, 1, 1), new Object[] {
MachineType.SOLAR_NEUTRON_ACTIVATOR.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock3, 1, 1), new Object[] {
"APA", "CSC", "BBB", Character.valueOf('A'), "alloyElite", Character.valueOf('S'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('P'), new ItemStack(MekanismItems.Polyethene, 1, 2), Character.valueOf('B'), "ingotBronze", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock2, 4, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock2, 4, 1), new Object[] {
" S ", "SES", " S ", Character.valueOf('S'), "ingotSteel", Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock2, 2, 2), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock2, 2, 2), new Object[] {
" I ", "ICI", " I ", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock2, 1, 1), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 0), new Object[] {
"RCR", "iWi", "RCR", Character.valueOf('R'), "alloyBasic", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('i'), "ingotIron", Character.valueOf('W'), "plankWood"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 1), new Object[] {
"ECE", "oWo", "ECE", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ADVANCED), Character.valueOf('o'), "ingotOsmium", Character.valueOf('W'), "plankWood"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 2), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 2), new Object[] {
"RCR", "gWg", "RCR", Character.valueOf('R'), "alloyElite", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE), Character.valueOf('g'), "ingotGold", Character.valueOf('W'), "plankWood"
}));
MachineType.OREDICTIONIFICATOR.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock3, 1, 3), new Object[] {
MachineType.OREDICTIONIFICATOR.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock3, 1, 3), new Object[] {
"SGS", "CBC", "SWS", Character.valueOf('S'), "ingotSteel", Character.valueOf('G'), "paneGlass", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('B'), MekanismItems.Dictionary, Character.valueOf('W'), Blocks.chest
}));
MachineType.LASER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 13), new Object[] {
MachineType.LASER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 13), new Object[] {
"RE ", "RCD", "RE ", Character.valueOf('R'), "alloyElite", Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('C'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('D'), "gemDiamond"
}));
MachineType.LASER_AMPLIFIER.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 14), new Object[] {
MachineType.LASER_AMPLIFIER.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 14), new Object[] {
"SSS", "SED", "SSS", Character.valueOf('S'), "ingotSteel", Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), Character.valueOf('D'), "gemDiamond"
}));
MachineType.LASER_TRACTOR_BEAM.addRecipe(new MekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 15), new Object[] {
MachineType.LASER_TRACTOR_BEAM.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock2, 1, 15), new Object[] {
"C", "F", Character.valueOf('C'), new ItemStack(MekanismBlocks.MachineBlock, 1, 13), Character.valueOf('F'), new ItemStack(MekanismBlocks.MachineBlock2, 1, 14)
}));
//Energy Cube recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), new Object[] {
"RTR", "iIi", "RTR", Character.valueOf('R'), "alloyBasic", Character.valueOf('i'), "ingotIron", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), new Object[] {
"ETE", "oBo", "ETE", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('o'), "ingotOsmium", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('B'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ELITE), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ELITE), new Object[] {
"RTR", "gAg", "RTR", Character.valueOf('R'), "alloyElite", Character.valueOf('g'), "ingotGold", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('A'), MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ULTIMATE), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ULTIMATE), new Object[] {
"ATA", "dEd", "ATA", Character.valueOf('A'), "alloyUltimate", Character.valueOf('d'), "gemDiamond", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.ELITE)
}));
//Induction Cell recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.BASIC), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.BASIC), new Object[] {
"LTL", "TET", "LTL", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), Character.valueOf('L'), "dustLithium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.ADVANCED), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.ADVANCED), new Object[] {
"TCT", "CEC", "TCT", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), Character.valueOf('C'), MekanismUtils.getInductionCell(InductionCellTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.ELITE), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.ELITE), new Object[] {
"TCT", "CEC", "TCT", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.ELITE), Character.valueOf('C'), MekanismUtils.getInductionCell(InductionCellTier.ADVANCED)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.ULTIMATE), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionCell(InductionCellTier.ULTIMATE), new Object[] {
"TCT", "CEC", "TCT", Character.valueOf('T'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.ULTIMATE), Character.valueOf('C'), MekanismUtils.getInductionCell(InductionCellTier.ELITE)
}));
//Induction Provider recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.BASIC), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.BASIC), new Object[] {
"LCL", "CEC", "LCL", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), Character.valueOf('L'), "dustLithium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.ADVANCED), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.ADVANCED), new Object[] {
"CPC", "PEP", "CPC", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ADVANCED), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), Character.valueOf('P'), MekanismUtils.getInductionProvider(InductionProviderTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.ELITE), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.ELITE), new Object[] {
"CPC", "PEP", "CPC", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.ELITE), Character.valueOf('P'), MekanismUtils.getInductionProvider(InductionProviderTier.ADVANCED)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.ULTIMATE), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(MekanismUtils.getInductionProvider(InductionProviderTier.ULTIMATE), new Object[] {
"CPC", "PEP", "CPC", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ULTIMATE), Character.valueOf('E'), MekanismUtils.getEnergyCube(EnergyCubeTier.ULTIMATE), Character.valueOf('P'), MekanismUtils.getInductionProvider(InductionProviderTier.ELITE)
}));
//Circuit recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.ControlCircuit, 1, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.ControlCircuit, 1, 1), new Object[] {
"ECE", Character.valueOf('C'), new ItemStack(MekanismItems.ControlCircuit, 1, 0), Character.valueOf('E'), "alloyAdvanced"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.ControlCircuit, 1, 2), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.ControlCircuit, 1, 2), new Object[] {
"RCR", Character.valueOf('C'), new ItemStack(MekanismItems.ControlCircuit, 1, 1), Character.valueOf('R'), "alloyElite"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.ControlCircuit, 1, 3), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.ControlCircuit, 1, 3), new Object[] {
"ACA", Character.valueOf('C'), new ItemStack(MekanismItems.ControlCircuit, 1, 2), Character.valueOf('A'), "alloyUltimate"
}));
//Factory recipes
for(RecipeType type : RecipeType.values())
{
MachineType.BASIC_FACTORY.addRecipe(new MekanismRecipe(MekanismUtils.getFactory(FactoryTier.BASIC, type), new Object[] {
MachineType.BASIC_FACTORY.addRecipe(new ShapedMekanismRecipe(MekanismUtils.getFactory(FactoryTier.BASIC, type), new Object[] {
"RCR", "iOi", "RCR", Character.valueOf('R'), "alloyBasic", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('i'), "ingotIron", Character.valueOf('O'), type.getStack()
}));
MachineType.ADVANCED_FACTORY.addRecipe(new MekanismRecipe(MekanismUtils.getFactory(FactoryTier.ADVANCED, type), new Object[] {
MachineType.ADVANCED_FACTORY.addRecipe(new ShapedMekanismRecipe(MekanismUtils.getFactory(FactoryTier.ADVANCED, type), new Object[] {
"ECE", "oOo", "ECE", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ADVANCED), Character.valueOf('o'), "ingotOsmium", Character.valueOf('O'), MekanismUtils.getFactory(FactoryTier.BASIC, type)
}));
MachineType.ELITE_FACTORY.addRecipe(new MekanismRecipe(MekanismUtils.getFactory(FactoryTier.ELITE, type), new Object[] {
MachineType.ELITE_FACTORY.addRecipe(new ShapedMekanismRecipe(MekanismUtils.getFactory(FactoryTier.ELITE, type), new Object[] {
"RCR", "gOg", "RCR", Character.valueOf('R'), "alloyElite", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE), Character.valueOf('g'), "ingotGold", Character.valueOf('O'), MekanismUtils.getFactory(FactoryTier.ADVANCED, type)
}));
}
@ -535,127 +572,127 @@ public class Mekanism
CraftingManager.getInstance().getRecipeList().add(new BinRecipe());
//Transmitters
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 0), new Object[] {
"SRS", Character.valueOf('S'), "ingotSteel", Character.valueOf('R'), "dustRedstone"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 1), new Object[] {
"TTT", "TET", "TTT", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 0)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 2), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 2), new Object[] {
"TTT", "TRT", "TTT", Character.valueOf('R'), "alloyElite", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 1)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 3), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 3), new Object[] {
"TTT", "TAT", "TTT", Character.valueOf('A'), "alloyUltimate", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 2)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 4), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 4), new Object[] {
"SBS", Character.valueOf('S'), "ingotSteel", Character.valueOf('B'), Items.bucket
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 5), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 5), new Object[] {
"TTT", "TET", "TTT", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 4)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 6), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 6), new Object[] {
"TTT", "TRT", "TTT", Character.valueOf('R'), "alloyElite", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 5)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 7), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 7), new Object[] {
"TTT", "TAT", "TTT", Character.valueOf('A'), "alloyUltimate", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 6)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 8), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 8), new Object[] {
"SGS", Character.valueOf('S'), "ingotSteel", Character.valueOf('G'), "blockGlass"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 9), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 9), new Object[] {
"TTT", "TET", "TTT", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 8)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 10), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 10), new Object[] {
"TTT", "TRT", "TTT", Character.valueOf('R'), "alloyElite", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 9)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 11), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 11), new Object[] {
"TTT", "TAT", "TTT", Character.valueOf('A'), "alloyUltimate", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 10)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 12), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 12), new Object[] {
"SCS", Character.valueOf('S'), "ingotSteel", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 13), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 13), new Object[] {
"TTT", "TET", "TTT", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 12)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 14), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 14), new Object[] {
"TTT", "TRT", "TTT", Character.valueOf('R'), "alloyElite", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 13)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 15), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 8, 15), new Object[] {
"TTT", "TAT", "TTT", Character.valueOf('A'), "alloyUltimate", Character.valueOf('T'), new ItemStack(MekanismItems.PartTransmitter, 1, 14)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 2, 16), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 2, 16), new Object[] {
"SBS", Character.valueOf('S'), "ingotSteel", Character.valueOf('B'), Blocks.iron_bars
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 2, 17), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.PartTransmitter, 2, 17), new Object[] {
"RRR", "SBS", "RRR", Character.valueOf('R'), "dustRedstone", Character.valueOf('S'), "ingotSteel", Character.valueOf('B'), Blocks.iron_bars
}));
//Plastic stuff
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Polyethene, 1, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Polyethene, 1, 1), new Object[] {
"PP", "PP", Character.valueOf('P'), new ItemStack(MekanismItems.Polyethene, 1, 0)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Polyethene, 1, 2), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Polyethene, 1, 2), new Object[] {
"PPP", "P P", "PPP", Character.valueOf('P'), new ItemStack(MekanismItems.Polyethene, 1, 0)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.Polyethene, 1, 3), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.Polyethene, 1, 3), new Object[] {
"R", "R", Character.valueOf('R'), new ItemStack(MekanismItems.Polyethene, 1, 1)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.PlasticBlock, 4, 15), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.PlasticBlock, 4, 15), new Object[] {
"SSS", "S S", "SSS", Character.valueOf('S'), new ItemStack(MekanismItems.Polyethene, 1, 2)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.GlowPanel, 2, 15), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.GlowPanel, 2, 15), new Object[] {
"PSP", "S S", "GSG", Character.valueOf('P'), "paneGlass", Character.valueOf('S'), new ItemStack(MekanismItems.Polyethene, 1, 2), Character.valueOf('G'), Items.glowstone_dust
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.PlasticFence, 3, 15), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.PlasticFence, 3, 15), new Object[] {
"BSB", "BSB", Character.valueOf('B'), new ItemStack(MekanismBlocks.PlasticBlock, 1, 15), Character.valueOf('S'), new ItemStack(MekanismItems.Polyethene, 1, 3)
}));
for(int i = 0; i < EnumColor.DYES.length-1; i++)
{
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.PlasticBlock, 4, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.PlasticBlock, 4, i), new Object[] {
"SSS", "SDS", "SSS", Character.valueOf('S'), new ItemStack(MekanismItems.Polyethene, 1, 2), Character.valueOf('D'), "dye" + EnumColor.DYES[i].dyeName
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.GlowPanel, 2, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.GlowPanel, 2, i), new Object[] {
"PSP", "SDS", "GSG", Character.valueOf('P'), "paneGlass", Character.valueOf('S'), new ItemStack(MekanismItems.Polyethene, 1, 2), Character.valueOf('D'), "dye" + EnumColor.DYES[i].dyeName, Character.valueOf('G'), Items.glowstone_dust
}));
}
for(int i = 0; i < EnumColor.DYES.length; i++)
{
CraftingManager.getInstance().getRecipeList().add(new ShapelessOreRecipe(new ItemStack(MekanismItems.Balloon, 2, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapelessMekanismRecipe(new ItemStack(MekanismItems.Balloon, 2, i), new Object[] {
Items.leather, Items.string, "dye" + EnumColor.DYES[i].dyeName
}));
for(int j = 0; j < EnumColor.DYES.length; j++)
{
CraftingManager.getInstance().getRecipeList().add(new ShapelessOreRecipe(new ItemStack(MekanismItems.Balloon, 1, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapelessMekanismRecipe(new ItemStack(MekanismItems.Balloon, 1, i), new Object[] {
new ItemStack(MekanismItems.Balloon, 1, j), "dye" + EnumColor.DYES[i].dyeName
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.PlasticBlock, 4, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.PlasticBlock, 4, i), new Object[] {
" P ", "PDP", " P ", Character.valueOf('P'), new ItemStack(MekanismBlocks.PlasticBlock, 1, j), Character.valueOf('D'), "dye" + EnumColor.DYES[i].dyeName
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.SlickPlasticBlock, 4, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.SlickPlasticBlock, 4, i), new Object[] {
" P ", "PDP", " P ", Character.valueOf('P'), new ItemStack(MekanismBlocks.SlickPlasticBlock, 1, j), Character.valueOf('D'), "dye" + EnumColor.DYES[i].dyeName
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.GlowPlasticBlock, 4, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.GlowPlasticBlock, 4, i), new Object[] {
" P ", "PDP", " P ", Character.valueOf('P'), new ItemStack(MekanismBlocks.GlowPlasticBlock, 1, j), Character.valueOf('D'), "dye" + EnumColor.DYES[i].dyeName
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.ReinforcedPlasticBlock, 4, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.ReinforcedPlasticBlock, 4, i), new Object[] {
" P ", "PDP", " P ", Character.valueOf('P'), new ItemStack(MekanismBlocks.ReinforcedPlasticBlock, 1, j), Character.valueOf('D'), "dye" + EnumColor.DYES[i].dyeName
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismItems.GlowPanel, 4, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.GlowPanel, 4, i), new Object[] {
" P ", "PDP", " P ", Character.valueOf('P'), new ItemStack(MekanismItems.GlowPanel, 1, j), Character.valueOf('D'), "dye" + EnumColor.DYES[i].dyeName
}));
}
CraftingManager.getInstance().getRecipeList().add(new ShapelessOreRecipe(new ItemStack(MekanismBlocks.GlowPlasticBlock, 3, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapelessMekanismRecipe(new ItemStack(MekanismBlocks.GlowPlasticBlock, 3, i), new Object[] {
new ItemStack(MekanismBlocks.PlasticBlock, 1, i), new ItemStack(MekanismBlocks.PlasticBlock, 1, i), new ItemStack(MekanismBlocks.PlasticBlock, 1, i), new ItemStack(Items.glowstone_dust)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.ReinforcedPlasticBlock, 4, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.ReinforcedPlasticBlock, 4, i), new Object[] {
" P ", "POP", " P ", Character.valueOf('P'), new ItemStack(MekanismBlocks.PlasticBlock, 1, i), Character.valueOf('O'), "dustOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(MekanismBlocks.RoadPlasticBlock, 3, i), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.RoadPlasticBlock, 3, i), new Object[] {
"SSS", "PPP", "SSS", Character.valueOf('S'), Blocks.sand, Character.valueOf('P'), new ItemStack(MekanismBlocks.SlickPlasticBlock, 1, i)
}));
}
@ -863,7 +900,8 @@ public class Mekanism
FuelHandler.addGas(GasRegistry.getGas("hydrogen"), 1, general.FROM_H2);
//RecipeSorter registrations
RecipeSorter.register("mekanism", MekanismRecipe.class, Category.SHAPED, "");
RecipeSorter.register("mekanism_shaped", ShapedMekanismRecipe.class, Category.SHAPED, "");
RecipeSorter.register("mekanism_shapeless", ShapelessMekanismRecipe.class, Category.SHAPELESS, "");
RecipeSorter.register("bin", BinRecipe.class, Category.SHAPELESS, "");
}
@ -1023,8 +1061,8 @@ public class Mekanism
GameRegistry.registerTileEntity(TileEntitySolarEvaporationValve.class, "SalinationValve");
GameRegistry.registerTileEntity(TileEntitySolarEvaporationBlock.class, "SalinationTank");
GameRegistry.registerTileEntity(TileEntityEntangledBlock.class, "EntangledBlock");
GameRegistry.registerTileEntity(TileEntityBoiler.class, "SteamBoiler");
GameRegistry.registerTileEntity(TileEntityBoilerValve.class, "BoilerValve");
GameRegistry.registerTileEntity(TileEntityThermoelectricBoiler.class, "ThermoelectricBoiler");
GameRegistry.registerTileEntity(TileEntityThermoelectricValve.class, "ThermoelectricValve");
//Load tile entities that have special renderers.
proxy.registerSpecialTileEntities();

View file

@ -950,7 +950,7 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
{
if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z)))
if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest)
{
float motion = 0.7F;

View file

@ -169,7 +169,7 @@ public class BlockCardboardBox extends BlockContainer
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
{
if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z)))
if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest)
{
float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D;

View file

@ -189,7 +189,7 @@ public class BlockEnergyCube extends BlockContainer
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
{
if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z)))
if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest)
{
float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D;

View file

@ -135,7 +135,7 @@ public class BlockGasTank extends BlockContainer
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
{
if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z)))
if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest)
{
float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D;

View file

@ -26,7 +26,7 @@ import mekanism.common.network.PacketElectricChest.ElectricChestMessage;
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
import mekanism.common.network.PacketLogisticalSorterGui.LogisticalSorterGuiMessage;
import mekanism.common.network.PacketLogisticalSorterGui.SorterGuiPacket;
import mekanism.common.recipe.MekanismRecipe;
import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.tile.*;
import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils;
@ -690,7 +690,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
{
if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z)))
if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest)
{
TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getTileEntity(x, y, z);
@ -1090,7 +1090,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo
public boolean isElectric;
public boolean hasModel;
public boolean supportsUpgrades;
public Collection<MekanismRecipe> machineRecipes = new HashSet<MekanismRecipe>();
public Collection<ShapedMekanismRecipe> machineRecipes = new HashSet<ShapedMekanismRecipe>();
private MachineType(MachineBlock block, int i, String s, int j, Class<? extends TileEntity> tileClass, boolean electric, boolean model, boolean upgrades)
{
@ -1109,17 +1109,17 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo
return machines.isEnabled(this.name);
}
public void addRecipes(Collection<MekanismRecipe> recipes)
public void addRecipes(Collection<ShapedMekanismRecipe> recipes)
{
machineRecipes.addAll(recipes);
}
public void addRecipe(MekanismRecipe recipe)
public void addRecipe(ShapedMekanismRecipe recipe)
{
machineRecipes.add(recipe);
}
public Collection<MekanismRecipe> getRecipes()
public Collection<ShapedMekanismRecipe> getRecipes()
{
return machineRecipes;
}

View file

@ -51,11 +51,13 @@ public class BlockPlasticFence extends BlockFence
public boolean recolourBlock(World world, int x, int y, int z, ForgeDirection side, int colour)
{
int meta = world.getBlockMetadata(x, y, z);
if(meta != (15 - colour))
{
world.setBlockMetadataWithNotify(x, y, z, 15-colour, 3);
return true;
}
return false;
}

View file

@ -8,7 +8,7 @@ import java.util.Map;
import mekanism.api.Coord4D;
import mekanism.common.multiblock.MultiblockCache;
import mekanism.common.multiblock.MultiblockManager;
import mekanism.common.tile.TileEntityBoiler;
import mekanism.common.tile.TileEntityThermoelectricBoiler;
import mekanism.common.tile.TileEntityMultiblock;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
@ -32,7 +32,7 @@ public class BoilerManager extends MultiblockManager<SynchronizedBoilerData>
{
int inventoryID = entry.getKey();
HashSet<TileEntityBoiler> boilers = new HashSet<TileEntityBoiler>();
HashSet<TileEntityThermoelectricBoiler> boilers = new HashSet<TileEntityThermoelectricBoiler>();
for(Coord4D obj : entry.getValue().locations)
{
@ -49,10 +49,10 @@ public class BoilerManager extends MultiblockManager<SynchronizedBoilerData>
tilesToKill.get(inventoryID).add(obj);
}
else if(tileEntity instanceof TileEntityBoiler)
else if(tileEntity instanceof TileEntityThermoelectricBoiler)
{
((TileEntityBoiler)tileEntity).simulateHeat();
boilers.add((TileEntityBoiler) tileEntity);
((TileEntityThermoelectricBoiler)tileEntity).simulateHeat();
boilers.add((TileEntityThermoelectricBoiler) tileEntity);
}
}
}
@ -66,7 +66,7 @@ public class BoilerManager extends MultiblockManager<SynchronizedBoilerData>
boilers.iterator().next().getSynchronizedData().applyTemperatureChange();
}
for (TileEntityBoiler boiler : boilers)
for (TileEntityThermoelectricBoiler boiler : boilers)
{
boiler.applyTemperatureChange();
}

View file

@ -1,12 +1,12 @@
package mekanism.common.content.boiler;
import mekanism.common.tile.TileEntityBoiler;
import mekanism.common.tile.TileEntityThermoelectricBoiler;
import net.minecraftforge.fluids.FluidStack;
public class BoilerSteamTank extends BoilerTank
{
public BoilerSteamTank(TileEntityBoiler tileEntity)
public BoilerSteamTank(TileEntityThermoelectricBoiler tileEntity)
{
super(tileEntity);
}

View file

@ -2,7 +2,7 @@ package mekanism.common.content.boiler;
import mekanism.api.Coord4D;
import mekanism.common.content.boiler.SynchronizedBoilerData.ValveData;
import mekanism.common.tile.TileEntityBoiler;
import mekanism.common.tile.TileEntityThermoelectricBoiler;
import mekanism.common.util.MekanismUtils;
import net.minecraftforge.fluids.FluidStack;
@ -11,9 +11,9 @@ import net.minecraftforge.fluids.IFluidTank;
public abstract class BoilerTank implements IFluidTank
{
public TileEntityBoiler steamBoiler;
public TileEntityThermoelectricBoiler steamBoiler;
public BoilerTank(TileEntityBoiler tileEntity)
public BoilerTank(TileEntityThermoelectricBoiler tileEntity)
{
steamBoiler = tileEntity;
}

View file

@ -10,8 +10,8 @@ import mekanism.common.content.boiler.SynchronizedBoilerData.ValveData;
import mekanism.common.multiblock.MultiblockCache;
import mekanism.common.multiblock.MultiblockManager;
import mekanism.common.multiblock.UpdateProtocol;
import mekanism.common.tile.TileEntityBoiler;
import mekanism.common.tile.TileEntityBoilerValve;
import mekanism.common.tile.TileEntityThermoelectricBoiler;
import mekanism.common.tile.TileEntityThermoelectricValve;
import net.minecraft.item.ItemStack;
@ -20,7 +20,7 @@ public class BoilerUpdateProtocol extends UpdateProtocol<SynchronizedBoilerData>
public static final int WATER_PER_TANK = 16000;
public static final int STEAM_PER_TANK = 160000;
public BoilerUpdateProtocol(TileEntityBoiler tileEntity)
public BoilerUpdateProtocol(TileEntityThermoelectricBoiler tileEntity)
{
super(tileEntity);
}
@ -98,7 +98,7 @@ public class BoilerUpdateProtocol extends UpdateProtocol<SynchronizedBoilerData>
{
for(Coord4D obj : structure.locations)
{
if(obj.getTileEntity(pointer.getWorldObj()) instanceof TileEntityBoilerValve)
if(obj.getTileEntity(pointer.getWorldObj()) instanceof TileEntityThermoelectricValve)
{
ValveData data = new ValveData();
data.location = obj;

View file

@ -1,12 +1,12 @@
package mekanism.common.content.boiler;
import mekanism.common.tile.TileEntityBoiler;
import mekanism.common.tile.TileEntityThermoelectricBoiler;
import net.minecraftforge.fluids.FluidStack;
public class BoilerWaterTank extends BoilerTank
{
public BoilerWaterTank(TileEntityBoiler tileEntity)
public BoilerWaterTank(TileEntityThermoelectricBoiler tileEntity)
{
super(tileEntity);
}

View file

@ -73,7 +73,7 @@ public class MatrixUpdateProtocol extends UpdateProtocol<SynchronizedMatrixData>
}
@Override
protected void onFormed()
public boolean isInteriorValid(SynchronizedMatrixData structure)
{
for(Coord4D coord : innerNodes)
{
@ -81,14 +81,16 @@ public class MatrixUpdateProtocol extends UpdateProtocol<SynchronizedMatrixData>
if(tile instanceof TileEntityInductionCell)
{
structureFound.cells.add(coord);
structureFound.storageCap += ((TileEntityInductionCell)tile).tier.maxEnergy;
structure.cells.add(coord);
structure.storageCap += ((TileEntityInductionCell)tile).tier.maxEnergy;
}
else if(tile instanceof TileEntityInductionProvider)
{
structureFound.providers.add(coord);
structureFound.transferCap += ((TileEntityInductionProvider)tile).tier.output;
structure.providers.add(coord);
structure.transferCap += ((TileEntityInductionProvider)tile).tier.output;
}
}
return true;
}
}

View file

@ -6,11 +6,14 @@ import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
import mcp.mobius.waila.api.IWailaRegistrar;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor;
import mekanism.common.tile.TileEntityBoundingBlock;
import mekanism.common.tile.TileEntityFactory;
import mekanism.common.tile.TileEntityInductionCell;
import mekanism.common.tile.TileEntityInductionProvider;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
@ -29,6 +32,7 @@ public class WailaDataProvider implements IWailaDataProvider
registrar.registerHeadProvider(provider, TileEntityInductionCell.class);
registrar.registerHeadProvider(provider, TileEntityInductionProvider.class);
registrar.registerHeadProvider(provider, TileEntityFactory.class);
registrar.registerHeadProvider(provider, TileEntityBoundingBlock.class);
}
@Override
@ -56,6 +60,16 @@ public class WailaDataProvider implements IWailaDataProvider
{
currenttip.set(0, EnumColor.WHITE + ((TileEntityFactory)tile).getInventoryName());
}
else if(tile instanceof TileEntityBoundingBlock)
{
TileEntityBoundingBlock bound = (TileEntityBoundingBlock)tile;
Coord4D coord = new Coord4D(bound.mainX, bound.mainY, bound.mainZ, tile.getWorldObj().provider.dimensionId);
if(bound.receivedCoords && coord.getTileEntity(tile.getWorldObj()) instanceof IInventory)
{
currenttip.set(0, EnumColor.WHITE + ((IInventory)coord.getTileEntity(tile.getWorldObj())).getInventoryName());
}
}
return currenttip;
}

View file

@ -75,14 +75,14 @@ public class ContainerDigitalMiner extends Container
if(ChargeUtils.canBeDischarged(slotStack))
{
if(slotID != 27)
if(slotID > 27)
{
if(!mergeItemStack(slotStack, 27, 28, false))
{
return null;
}
}
else if(slotID == 27)
else if(slotID <= 27)
{
if(!mergeItemStack(slotStack, 28, inventorySlots.size(), true))
{

View file

@ -75,7 +75,7 @@ public class ContainerMetallurgicInfuser extends Container
{
if(InfuseRegistry.getObject(slotStack) != null && (tileEntity.infuseStored.type == null || tileEntity.infuseStored.type == InfuseRegistry.getObject(slotStack).type))
{
if(!mergeItemStack(slotStack, 1, 2, false))
if(!mergeItemStack(slotStack, 0, 1, false))
{
return null;
}
@ -89,7 +89,7 @@ public class ContainerMetallurgicInfuser extends Container
}
else if(isInputItem(slotStack))
{
if(!mergeItemStack(slotStack, 2, 3, false))
if(!mergeItemStack(slotStack, 1, 2, false))
{
return null;
}

View file

@ -199,6 +199,8 @@ public abstract class UpdateProtocol<T extends SynchronizedData<T>>
onStructureCreated(structure, origX, origY, origZ, xmin, xmax, ymin, ymax, zmin, zmax);
if(structure.locations.contains(Coord4D.get(pointer)) && isCorrectCorner(Coord4D.get(tile), origX+xmin, origY+ymin, origZ+zmin))
{
if(isInteriorValid(structure))
{
structureFound = structure;
return;
@ -206,7 +208,9 @@ public abstract class UpdateProtocol<T extends SynchronizedData<T>>
}
}
}
}
innerNodes.clear();
iteratedNodes.add(tile);
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
@ -223,6 +227,11 @@ public abstract class UpdateProtocol<T extends SynchronizedData<T>>
}
}
public boolean isInteriorValid(T structure)
{
return true;
}
public ForgeDirection getSide(Coord4D obj, int xmin, int xmax, int ymin, int ymax, int zmin, int zmax)
{
if(obj.xCoord == xmin)

View file

@ -69,6 +69,8 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
public boolean redstoneReactive = true;
public boolean forceUpdate = false;
public ConnectionType[] connectionTypes = {ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL, ConnectionType.NORMAL};
public TileEntity[] cachedAcceptors = new TileEntity[6];
@ -171,12 +173,21 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
}
}
if(sendDesc && !world().isRemote)
if(!world().isRemote)
{
if(forceUpdate)
{
refreshConnections();
forceUpdate = false;
}
if(sendDesc)
{
sendDescUpdate();
sendDesc = false;
}
}
}
public boolean handlesRedstone()
{
@ -270,6 +281,7 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
cachedAcceptors[side.ordinal()] = tileEntity;
markDirtyAcceptor(side);
}
return true;
}
}
@ -315,7 +327,15 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
{
if(canConnectMutual(side))
{
TileEntity tileEntity = Coord4D.get(tile()).getFromSide(side).getTileEntity(world());
Coord4D coord = Coord4D.get(tile()).getFromSide(side);
if(!world().isRemote && !coord.exists(world()))
{
forceUpdate = true;
continue;
}
TileEntity tileEntity = coord.getTileEntity(world());
if(isValidAcceptor(tileEntity, side))
{
@ -324,10 +344,12 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
cachedAcceptors[side.ordinal()] = tileEntity;
markDirtyAcceptor(side);
}
connections |= 1 << side.ordinal();
continue;
}
}
if(cachedAcceptors[side.ordinal()] != null)
{
cachedAcceptors[side.ordinal()] = null;
@ -596,11 +618,11 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
redstonePowered = false;
}
if(!world().isRemote)
{
byte possibleTransmitters = getPossibleTransmitterConnections();
byte possibleAcceptors = getPossibleAcceptorConnections();
if(!world().isRemote)
{
if((possibleTransmitters | possibleAcceptors) != getAllCurrentConnections())
{
sendDesc = true;

View file

@ -295,14 +295,14 @@ public class PartUniversalCable extends PartTransmitter<EnergyAcceptorWrapper, E
@Method(modid = "CoFHCore")
public int getEnergyStored(ForgeDirection from)
{
return 0;
return (int)Math.round(getEnergy() * general.TO_TE);
}
@Override
@Method(modid = "CoFHCore")
public int getMaxEnergyStored(ForgeDirection from)
{
return (int)Math.round(getTransmitter().getTransmitterNetwork().getEnergyNeeded() * general.TO_TE);
return (int)Math.round(getMaxEnergy() * general.TO_TE);
}
@Override
@ -337,8 +337,8 @@ public class PartUniversalCable extends PartTransmitter<EnergyAcceptorWrapper, E
if(getTransmitter().hasTransmitterNetwork())
{
return getTransmitter().getTransmitterNetwork().getCapacity();
} else
{
}
else {
return getCapacity();
}
}

View file

@ -0,0 +1,298 @@
package mekanism.common.recipe;
import java.util.ArrayList;
import java.util.HashMap;
import mekanism.common.Mekanism;
import mekanism.common.util.RecipeUtils;
import net.minecraft.block.Block;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants.NBT;
import net.minecraftforge.oredict.OreDictionary;
/**
* Code originally from Eloraam and her work on the Ore Dictionary. Cleaned up and modified to work well with energized items.
* @author Eloraam, aidancbrady
*
*/
public class ShapedMekanismRecipe implements IRecipe
{
private static final int MAX_CRAFT_GRID_WIDTH = 3;
private static final int MAX_CRAFT_GRID_HEIGHT = 3;
private ItemStack output = null;
private Object[] input = null;
public int width = 0;
public int height = 0;
private boolean mirrored = true;
public ShapedMekanismRecipe(ItemStack result, Object... recipe)
{
output = result.copy();
String shape = "";
int idx = 0;
if(recipe[idx] instanceof Boolean)
{
mirrored = (Boolean)recipe[idx];
if(recipe[idx+1] instanceof Object[])
{
recipe = (Object[])recipe[idx+1];
}
else {
idx = 1;
}
}
if(recipe[idx] instanceof String[])
{
String[] parts = ((String[])recipe[idx++]);
for(String s : parts)
{
width = s.length();
shape += s;
}
height = parts.length;
}
else {
while(recipe[idx] instanceof String)
{
String s = (String)recipe[idx++];
shape += s;
width = s.length();
height++;
}
}
if(width * height != shape.length())
{
String ret = "Invalid shaped Mekanism recipe: ";
for(Object tmp : recipe)
{
ret += tmp + ", ";
}
ret += output;
throw new RuntimeException(ret);
}
HashMap<Character, Object> itemMap = new HashMap<Character, Object>();
for(; idx < recipe.length; idx += 2)
{
Character chr = (Character)recipe[idx];
Object in = recipe[idx + 1];
if(in instanceof ItemStack)
{
itemMap.put(chr, ((ItemStack)in).copy());
}
else if(in instanceof Item)
{
itemMap.put(chr, new ItemStack((Item)in));
}
else if(in instanceof Block)
{
itemMap.put(chr, new ItemStack((Block)in, 1, OreDictionary.WILDCARD_VALUE));
}
else if(in instanceof String)
{
itemMap.put(chr, OreDictionary.getOres((String)in));
}
else {
String ret = "Invalid shaped Mekanism recipe: ";
for(Object tmp : recipe)
{
ret += tmp + ", ";
}
ret += output;
throw new RuntimeException(ret);
}
}
input = new Object[width * height];
int x = 0;
for(char chr : shape.toCharArray())
{
input[x++] = itemMap.get(chr);
}
}
@Override
public ItemStack getCraftingResult(InventoryCrafting inv)
{
return RecipeUtils.getCraftingResult(inv, output.copy());
}
@Override
public int getRecipeSize()
{
return input.length;
}
@Override
public ItemStack getRecipeOutput()
{
return output;
}
@Override
public boolean matches(InventoryCrafting inv, World world)
{
for(int x = 0; x <= MAX_CRAFT_GRID_WIDTH - width; x++)
{
for(int y = 0; y <= MAX_CRAFT_GRID_HEIGHT - height; ++y)
{
if(checkMatch(inv, x, y, true))
{
return true;
}
if(mirrored && checkMatch(inv, x, y, false))
{
return true;
}
}
}
return false;
}
private boolean checkMatch(InventoryCrafting inv, int startX, int startY, boolean mirror)
{
for(int x = 0; x < MAX_CRAFT_GRID_WIDTH; x++)
{
for(int y = 0; y < MAX_CRAFT_GRID_HEIGHT; y++)
{
int subX = x - startX;
int subY = y - startY;
Object target = null;
if(subX >= 0 && subY >= 0 && subX < width && subY < height)
{
if(mirror)
{
target = input[width - subX - 1 + subY * width];
}
else {
target = input[subX + subY * width];
}
}
ItemStack slot = inv.getStackInRowAndColumn(x, y);
if(target instanceof ItemStack)
{
if(!RecipeUtils.areItemsEqualForCrafting((ItemStack)target, slot))
{
return false;
}
}
else if(target instanceof ArrayList)
{
boolean matched = false;
for(ItemStack item : (ArrayList<ItemStack>)target)
{
matched = matched || RecipeUtils.areItemsEqualForCrafting(item, slot);
}
if(!matched)
{
return false;
}
}
else if(target == null && slot != null)
{
return false;
}
}
}
return true;
}
public ShapedMekanismRecipe setMirrored(boolean mirror)
{
mirrored = mirror;
return this;
}
public Object[] getInput()
{
return input;
}
public static ShapedMekanismRecipe create(NBTTagCompound nbtTags)
{
if(!nbtTags.hasKey("result") || !nbtTags.hasKey("input"))
{
Mekanism.logger.error("[Mekanism] Shaped recipe parse error: missing input or result compound tag.");
return null;
}
ItemStack result = ItemStack.loadItemStackFromNBT(nbtTags.getCompoundTag("result"));
NBTTagList list = nbtTags.getTagList("input", NBT.TAG_COMPOUND);
if(result == null || list.tagCount() == 0)
{
Mekanism.logger.error("[Mekanism] Shaped recipe parse error: invalid result stack or input data list.");
return null;
}
Object[] ret = new Object[list.tagCount()];
for(int i = 0; i < list.tagCount(); i++)
{
NBTTagCompound compound = list.getCompoundTagAt(i);
if(compound.hasKey("oredict"))
{
ret[i] = compound.getString("oredict");
}
else if(compound.hasKey("pattern"))
{
ret[i] = compound.getString("pattern");
}
else if(compound.hasKey("character"))
{
String s = compound.getString("character");
if(s.length() > 1)
{
Mekanism.logger.error("[Mekanism] Shaped recipe parse error: invalid pattern character data.");
return null;
}
ret[i] = compound.getString("character").toCharArray()[0];
}
else if(compound.hasKey("itemstack"))
{
ret[i] = ItemStack.loadItemStackFromNBT(compound.getCompoundTag("itemstack"));
}
else {
Mekanism.logger.error("[Mekanism] Shaped recipe parse error: invalid input tag data key.");
return null;
}
}
return new ShapedMekanismRecipe(result, ret);
}
}

View file

@ -0,0 +1,179 @@
package mekanism.common.recipe;
import java.util.ArrayList;
import java.util.Iterator;
import mekanism.common.Mekanism;
import mekanism.common.util.RecipeUtils;
import net.minecraft.block.Block;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.world.World;
import net.minecraftforge.common.util.Constants.NBT;
import net.minecraftforge.oredict.OreDictionary;
public class ShapelessMekanismRecipe implements IRecipe
{
private ItemStack output = null;
private ArrayList<Object> input = new ArrayList<Object>();
public ShapelessMekanismRecipe(Block result, Object... recipe){ this(new ItemStack(result), recipe); }
public ShapelessMekanismRecipe(Item result, Object... recipe){ this(new ItemStack(result), recipe); }
public ShapelessMekanismRecipe(ItemStack result, Object... recipe)
{
output = result.copy();
for(Object obj : recipe)
{
if(obj instanceof ItemStack)
{
input.add(((ItemStack)obj).copy());
}
else if(obj instanceof Item)
{
input.add(new ItemStack((Item)obj));
}
else if(obj instanceof Block)
{
input.add(new ItemStack((Block)obj));
}
else if(obj instanceof String)
{
input.add(OreDictionary.getOres((String)obj));
}
else {
String ret = "Invalid shapeless Mekanism recipe: ";
for(Object tmp : recipe)
{
ret += tmp + ", ";
}
ret += output;
throw new RuntimeException(ret);
}
}
}
@Override
public int getRecipeSize()
{
return input.size();
}
@Override
public ItemStack getRecipeOutput()
{
return output;
}
@Override
public ItemStack getCraftingResult(InventoryCrafting inv)
{
return RecipeUtils.getCraftingResult(inv, output.copy());
}
@SuppressWarnings("unchecked")
@Override
public boolean matches(InventoryCrafting inv, World world)
{
ArrayList<Object> required = new ArrayList<Object>(input);
for(int x = 0; x < inv.getSizeInventory(); x++)
{
ItemStack slot = inv.getStackInSlot(x);
if(slot != null)
{
boolean inRecipe = false;
Iterator<Object> req = required.iterator();
while(req.hasNext())
{
boolean match = false;
Object next = req.next();
if(next instanceof ItemStack)
{
match = RecipeUtils.areItemsEqualForCrafting((ItemStack)next, slot);
}
else if(next instanceof ArrayList)
{
Iterator<ItemStack> itr = ((ArrayList<ItemStack>)next).iterator();
while(itr.hasNext() && !match)
{
match = RecipeUtils.areItemsEqualForCrafting(itr.next(), slot);
}
}
if(match)
{
inRecipe = true;
required.remove(next);
break;
}
}
if(!inRecipe)
{
return false;
}
}
}
return required.isEmpty();
}
public ArrayList<Object> getInput()
{
return input;
}
public static ShapelessMekanismRecipe create(NBTTagCompound nbtTags)
{
if(!nbtTags.hasKey("result") || !nbtTags.hasKey("input"))
{
Mekanism.logger.error("[Mekanism] Shapeless recipe parse error: missing input or result compound tag.");
return null;
}
ItemStack result = ItemStack.loadItemStackFromNBT(nbtTags.getCompoundTag("result"));
NBTTagList list = nbtTags.getTagList("input", NBT.TAG_COMPOUND);
if(result == null || list.tagCount() == 0)
{
Mekanism.logger.error("[Mekanism] Shapeless recipe parse error: invalid result stack or input data list.");
return null;
}
Object[] ret = new Object[list.tagCount()];
for(int i = 0; i < list.tagCount(); i++)
{
NBTTagCompound compound = list.getCompoundTagAt(i);
if(compound.hasKey("oredict"))
{
ret[i] = compound.getString("oredict");
}
else if(compound.hasKey("itemstack"))
{
ret[i] = ItemStack.loadItemStackFromNBT(compound.getCompoundTag("itemstack"));
}
else {
Mekanism.logger.error("[Mekanism] Shapeless recipe parse error: invalid input tag data key.");
return null;
}
}
return new ShapelessMekanismRecipe(result, ret);
}
}

View file

@ -28,7 +28,5 @@ public abstract class BasicMachineRecipe<RECIPE extends BasicMachineRecipe<RECIP
{
getOutput().applyOutputs(inventory, outputIndex, true);
}
}
}

View file

@ -4,14 +4,14 @@ import java.util.HashSet;
import java.util.Set;
import mekanism.api.Coord4D;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
{
public TileEntitySolarEvaporationController master;
public Coord4D master;
public boolean attempted;
@ -40,7 +40,7 @@ public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
attempted = false;
}
public void addToStructure(TileEntitySolarEvaporationController controller)
public void addToStructure(Coord4D controller)
{
master = controller;
}
@ -57,7 +57,12 @@ public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
if(master != null)
{
master.refresh();
TileEntitySolarEvaporationController tile = getController();
if(tile != null)
{
((TileEntitySolarEvaporationController)tile).refresh();
}
}
}
@ -68,9 +73,11 @@ public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
if(!worldObj.isRemote)
{
if(master != null)
TileEntitySolarEvaporationController tile = getController();
if(tile != null)
{
master.refresh();
((TileEntitySolarEvaporationController)tile).refresh();
}
else {
updateController();
@ -91,6 +98,21 @@ public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
}
}
public TileEntitySolarEvaporationController getController()
{
if(master != null)
{
TileEntity tile = master.getTileEntity(worldObj);
if(tile instanceof TileEntitySolarEvaporationController)
{
return (TileEntitySolarEvaporationController)tile;
}
}
return null;
}
public class ControllerFinder
{
public TileEntitySolarEvaporationController found;

View file

@ -43,7 +43,7 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
public FluidTank inputTank = new FluidTank(0);
public FluidTank outputTank = new FluidTank(MAX_OUTPUT);
public Set<TileEntitySolarEvaporationBlock> tankParts = new HashSet<TileEntitySolarEvaporationBlock>();
public Set<Coord4D> tankParts = new HashSet<Coord4D>();
public ISalinationSolar[] solars = new ISalinationSolar[4];
public boolean temperatureSet = false;
@ -370,59 +370,62 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
public boolean buildStructure()
{
ForgeDirection right = MekanismUtils.getRight(facing);
ForgeDirection left = MekanismUtils.getLeft(facing);
height = 0;
controllerConflict = false;
updatedThisTick = true;
if(!scanBottomLayer())
{
height = 0;
return false;
}
Coord4D startPoint = Coord4D.get(this).getFromSide(right);
startPoint = isLeftOnFace ? startPoint.getFromSide(right) : startPoint;
Coord4D startPoint = Coord4D.get(this);
while(startPoint.getFromSide(ForgeDirection.UP).getTileEntity(worldObj) instanceof TileEntitySolarEvaporationBlock)
{
startPoint.step(ForgeDirection.UP);
}
int middle = 0;
Coord4D test = startPoint.getFromSide(ForgeDirection.DOWN).getFromSide(right, 2);
isLeftOnFace = test.getTileEntity(worldObj) instanceof TileEntitySolarEvaporationBlock;
startPoint = startPoint.getFromSide(left, isLeftOnFace ? 1 : 2);
if(!scanTopLayer(startPoint))
{
return false;
}
height = 1;
Coord4D middlePointer = startPoint.getFromSide(ForgeDirection.DOWN);
while(scanMiddleLayer(middlePointer))
while(scanLowerLayer(middlePointer))
{
middlePointer = middlePointer.getFromSide(ForgeDirection.DOWN);
middle++;
}
if(height < 3 || height > 18 || middle != height-2)
if(height < 3 || height > 18)
{
height = 0;
return false;
}
structured = scanTopLayer(startPoint);
height = structured ? height : 0;
structured = true;
markDirty();
return structured;
return true;
}
public boolean scanTopLayer(Coord4D current)
{
ForgeDirection left = MekanismUtils.getLeft(facing);
ForgeDirection right = MekanismUtils.getRight(facing);
ForgeDirection back = MekanismUtils.getBack(facing);
for(int x = 0; x < 4; x++)
{
for(int z = 0; z < 4; z++)
{
Coord4D pointer = current.getFromSide(left, x).getFromSide(back, z);
Coord4D pointer = current.getFromSide(right, x).getFromSide(back, z);
TileEntity pointerTile = pointer.getTileEntity(worldObj);
int corner = getCorner(x, z);
@ -432,7 +435,7 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
{
continue;
}
else if(!addTankPart(pointer.getTileEntity(worldObj)))
else if(pointer.getFromSide(ForgeDirection.UP).getTileEntity(worldObj) instanceof TileEntitySolarEvaporationBlock || !addTankPart(pointerTile))
{
return false;
}
@ -446,9 +449,7 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
}
}
else {
TileEntity pointerTile = pointer.getTileEntity(worldObj);
if(!addTankPart(pointerTile))
if(pointer.getFromSide(ForgeDirection.UP).getTileEntity(worldObj) instanceof TileEntitySolarEvaporationBlock || !addTankPart(pointerTile))
{
return false;
}
@ -487,103 +488,57 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
return -1;
}
public boolean scanMiddleLayer(Coord4D current)
public boolean scanLowerLayer(Coord4D current)
{
ForgeDirection left = MekanismUtils.getLeft(facing);
ForgeDirection right = MekanismUtils.getRight(facing);
ForgeDirection back = MekanismUtils.getBack(facing);
boolean foundCenter = false;
for(int x = 0; x < 4; x++)
{
for(int z = 0; z < 4; z++)
{
Coord4D pointer = current.getFromSide(left, x).getFromSide(back, z);
Coord4D pointer = current.getFromSide(right, x).getFromSide(back, z);
TileEntity pointerTile = pointer.getTileEntity(worldObj);
if((x == 1 || x == 2) && (z == 1 || z == 2))
{
if(!pointer.isAirBlock(worldObj))
if(pointerTile instanceof TileEntitySolarEvaporationBlock)
{
if(!foundCenter)
{
if(x == 1 && z == 1)
{
foundCenter = true;
}
else {
height = -1;
return false;
}
}
}
else {
if(foundCenter || !pointer.isAirBlock(worldObj))
{
height = -1;
return false;
}
}
}
else {
TileEntity pointerTile = pointer.getTileEntity(worldObj);
if(!addTankPart(pointerTile))
{
height = -1;
return false;
}
}
}
}
return true;
}
public boolean scanBottomLayer()
{
height = 1;
Coord4D baseBlock = Coord4D.get(this);
while(baseBlock.getFromSide(ForgeDirection.DOWN).getTileEntity(worldObj) instanceof TileEntitySolarEvaporationBlock)
{
baseBlock.step(ForgeDirection.DOWN);
height++;
}
ForgeDirection left = MekanismUtils.getLeft(facing);
ForgeDirection right = MekanismUtils.getRight(facing);
if(!scanBottomRow(baseBlock))
{
return false;
};
if(!scanBottomRow(baseBlock.getFromSide(left)))
{
return false;
};
if(!scanBottomRow(baseBlock.getFromSide(right)))
{
return false;
};
boolean twoLeft = scanBottomRow(baseBlock.getFromSide(left).getFromSide(left));
boolean twoRight = scanBottomRow(baseBlock.getFromSide(right).getFromSide(right));
if(twoLeft == twoRight)
{
return false;
}
isLeftOnFace = twoRight;
return true;
}
/**
* Scans the bottom row of this multiblock, going in a line across the base.
* @param start
* @return
*/
public boolean scanBottomRow(Coord4D start)
{
ForgeDirection back = MekanismUtils.getBack(facing);
Coord4D current = start;
for(int i = 1; i <= 4; i++)
{
TileEntity tile = current.getTileEntity(worldObj);
if(!addTankPart(tile))
{
return false;
}
current = current.getFromSide(back);
}
return true;
return !foundCenter;
}
public boolean addTankPart(TileEntity tile)
@ -592,8 +547,8 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
{
if(tile != this)
{
((TileEntitySolarEvaporationBlock)tile).addToStructure(this);
tankParts.add((TileEntitySolarEvaporationBlock)tile);
((TileEntitySolarEvaporationBlock)tile).addToStructure(Coord4D.get(this));
tankParts.add(Coord4D.get(tile));
}
return true;
@ -775,9 +730,14 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
public void clearStructure()
{
for(TileEntitySolarEvaporationBlock tankPart : tankParts)
for(Coord4D tankPart : tankParts)
{
tankPart.controllerGone();
TileEntity tile = tankPart.getTileEntity(worldObj);
if(tile instanceof TileEntitySolarEvaporationBlock)
{
((TileEntitySolarEvaporationBlock)tile).controllerGone();
}
}
tankParts.clear();
@ -806,7 +766,7 @@ public class TileEntitySolarEvaporationController extends TileEntitySolarEvapora
@Override
public boolean renderUpdate()
{
return false;
return true;
}
@Override

View file

@ -39,15 +39,18 @@ public class TileEntitySolarEvaporationValve extends TileEntitySolarEvaporationB
@Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill)
{
return master == null ? 0 : master.inputTank.fill(resource, doFill);
TileEntitySolarEvaporationController controller = getController();
return controller == null ? 0 : controller.inputTank.fill(resource, doFill);
}
@Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain)
{
if(master != null && (resource == null || resource.isFluidEqual(master.outputTank.getFluid())))
TileEntitySolarEvaporationController controller = getController();
if(controller != null && (resource == null || resource.isFluidEqual(controller.outputTank.getFluid())))
{
return master.outputTank.drain(resource.amount, doDrain);
return controller.outputTank.drain(resource.amount, doDrain);
}
return null;
@ -56,9 +59,11 @@ public class TileEntitySolarEvaporationValve extends TileEntitySolarEvaporationB
@Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain)
{
if(master != null)
TileEntitySolarEvaporationController controller = getController();
if(controller != null)
{
return master.outputTank.drain(maxDrain, doDrain);
return controller.outputTank.drain(maxDrain, doDrain);
}
return null;
@ -67,23 +72,27 @@ public class TileEntitySolarEvaporationValve extends TileEntitySolarEvaporationB
@Override
public boolean canFill(ForgeDirection from, Fluid fluid)
{
return master != null && master.hasRecipe(fluid);
TileEntitySolarEvaporationController controller = getController();
return controller != null && controller.hasRecipe(fluid);
}
@Override
public boolean canDrain(ForgeDirection from, Fluid fluid)
{
return master != null && master.outputTank.getFluidAmount() > 0;
TileEntitySolarEvaporationController controller = getController();
return controller != null && controller.outputTank.getFluidAmount() > 0;
}
@Override
public FluidTankInfo[] getTankInfo(ForgeDirection from)
{
if(master == null)
TileEntitySolarEvaporationController controller = getController();
if(controller == null)
{
return PipeUtils.EMPTY;
}
return new FluidTankInfo[] {new FluidTankInfo(master.inputTank), new FluidTankInfo(master.outputTank)};
return new FluidTankInfo[] {new FluidTankInfo(controller.inputTank), new FluidTankInfo(controller.outputTank)};
}
}

View file

@ -27,7 +27,7 @@ import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
public class TileEntityBoiler extends TileEntityMultiblock<SynchronizedBoilerData> implements IFluidContainerManager, IHeatTransfer
public class TileEntityThermoelectricBoiler extends TileEntityMultiblock<SynchronizedBoilerData> implements IFluidContainerManager, IHeatTransfer
{
/** A client-sided and server-sided map of valves on this tank's structure, used on the client for rendering fluids. */
public Map<ValveData, Integer> valveViewing = new HashMap<ValveData, Integer>();
@ -45,12 +45,12 @@ public class TileEntityBoiler extends TileEntityMultiblock<SynchronizedBoilerDat
public double heatToAbsorb;
public double invHeatCapacity = 5;
public TileEntityBoiler()
public TileEntityThermoelectricBoiler()
{
this("SteamBoiler");
}
public TileEntityBoiler(String name)
public TileEntityThermoelectricBoiler(String name)
{
super(name);
inventory = new ItemStack[2];
@ -399,7 +399,7 @@ public class TileEntityBoiler extends TileEntityMultiblock<SynchronizedBoilerDat
valveViewing.put(data, viewingTicks);
TileEntityBoiler tileEntity = (TileEntityBoiler)data.location.getTileEntity(worldObj);
TileEntityThermoelectricBoiler tileEntity = (TileEntityThermoelectricBoiler)data.location.getTileEntity(worldObj);
if(tileEntity != null)
{

View file

@ -11,12 +11,12 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
public class TileEntityBoilerValve extends TileEntityBoiler implements IFluidHandler
public class TileEntityThermoelectricValve extends TileEntityThermoelectricBoiler implements IFluidHandler
{
public BoilerTank waterTank;
public BoilerTank steamTank;
public TileEntityBoilerValve()
public TileEntityThermoelectricValve()
{
super("Boiler Valve");
waterTank = new BoilerWaterTank(this);

View file

@ -1,7 +1,8 @@
package mekanism.common.recipe;
package mekanism.common.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import mekanism.api.energy.IEnergizedItem;
@ -12,139 +13,101 @@ import mekanism.common.base.IEnergyCube;
import mekanism.common.base.IFactory;
import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.item.ItemBlockBasic;
import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.recipe.ShapelessMekanismRecipe;
import net.minecraft.block.Block;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
/**
* Code originally from Eloraam and her work on the Ore Dictionary. Cleaned up and modified to work well with energized items.
* @author Eloraam, aidancbrady
*
*/
public class MekanismRecipe implements IRecipe
public class RecipeUtils
{
private static final int MAX_CRAFT_GRID_WIDTH = 3;
private static final int MAX_CRAFT_GRID_HEIGHT = 3;
private ItemStack output = null;
private Object[] input = null;
public int width = 0;
public int height = 0;
private boolean mirrored = true;
public MekanismRecipe(ItemStack result, Object... recipe)
public static boolean areItemsEqualForCrafting(ItemStack target, ItemStack input)
{
output = result.copy();
String shape = "";
int idx = 0;
if(recipe[idx] instanceof Boolean)
if(target == null && input != null || target != null && input == null)
{
mirrored = (Boolean)recipe[idx];
if(recipe[idx+1] instanceof Object[])
return false;
}
else if(target == null && input == null)
{
recipe = (Object[])recipe[idx+1];
return true;
}
if(target.getItem() != input.getItem())
{
return false;
}
if(!(target.getItem() instanceof IEnergizedItem) && !(input.getItem() instanceof IEnergizedItem) && !(target.getItem() instanceof IGasItem) && !(input.getItem() instanceof IGasItem))
{
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
return false;
}
}
else {
idx = 1;
}
}
if(recipe[idx] instanceof String[])
if(target.getItem() instanceof IEnergizedItem && input.getItem() instanceof IEnergizedItem)
{
String[] parts = ((String[])recipe[idx++]);
for(String s : parts)
if(((IEnergizedItem)target.getItem()).isMetadataSpecific(target) && ((IEnergizedItem)input.getItem()).isMetadataSpecific(input))
{
width = s.length();
shape += s;
}
height = parts.length;
}
else {
while(recipe[idx] instanceof String)
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
String s = (String)recipe[idx++];
shape += s;
width = s.length();
height++;
return false;
}
}
}
if(width * height != shape.length())
if(target.getItem() instanceof IGasItem && input.getItem() instanceof IGasItem)
{
String ret = "Invalid shaped ore recipe: ";
for(Object tmp : recipe)
if(((IGasItem)target.getItem()).isMetadataSpecific(target) && ((IGasItem)input.getItem()).isMetadataSpecific(input))
{
ret += tmp + ", ";
}
ret += output;
throw new RuntimeException(ret);
}
HashMap<Character, Object> itemMap = new HashMap<Character, Object>();
for(; idx < recipe.length; idx += 2)
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
Character chr = (Character)recipe[idx];
Object in = recipe[idx + 1];
if(in instanceof ItemStack)
{
itemMap.put(chr, ((ItemStack)in).copy());
return false;
}
else if(in instanceof Item)
{
itemMap.put(chr, new ItemStack((Item)in));
}
else if(in instanceof Block)
{
itemMap.put(chr, new ItemStack((Block)in, 1, OreDictionary.WILDCARD_VALUE));
}
else if(in instanceof String)
{
itemMap.put(chr, OreDictionary.getOres((String)in));
}
else {
String ret = "Invalid shaped ore recipe: ";
for(Object tmp : recipe)
{
ret += tmp + ", ";
}
ret += output;
throw new RuntimeException(ret);
}
}
input = new Object[width * height];
int x = 0;
for(char chr : shape.toCharArray())
if(target.getItem() instanceof IEnergyCube && input.getItem() instanceof IEnergyCube)
{
input[x++] = itemMap.get(chr);
if(((IEnergyCube)target.getItem()).getEnergyCubeTier(target) != ((IEnergyCube)input.getItem()).getEnergyCubeTier(input))
{
return false;
}
}
else if(target.getItem() instanceof ItemBlockBasic && input.getItem() instanceof ItemBlockBasic)
{
if(((ItemBlockBasic)target.getItem()).getTier(target) != ((ItemBlockBasic)input.getItem()).getTier(input))
{
return false;
}
}
else if(target.getItem() instanceof IFactory && input.getItem() instanceof IFactory)
{
if(isFactory(target) && isFactory(input))
{
if(((IFactory)target.getItem()).getRecipeType(target) != ((IFactory)input.getItem()).getRecipeType(input))
{
return false;
}
}
}
}
@Override
public ItemStack getCraftingResult(InventoryCrafting inv)
{
ItemStack toReturn = output.copy();
return true;
}
private static boolean isFactory(ItemStack stack)
{
return MachineType.get(stack) == MachineType.BASIC_FACTORY || MachineType.get(stack) == MachineType.ADVANCED_FACTORY || MachineType.get(stack) == MachineType.ELITE_FACTORY;
}
public static ItemStack getCraftingResult(InventoryCrafting inv, ItemStack toReturn)
{
if(toReturn.getItem() instanceof IEnergizedItem)
{
double energyFound = 0;
@ -239,182 +202,64 @@ public class MekanismRecipe implements IRecipe
return toReturn;
}
@Override
public int getRecipeSize()
public static ItemStack loadRecipeItemStack(NBTTagCompound nbtTags)
{
return input.length;
int meta = 0;
int amount = 1;
if(nbtTags.hasKey("meta"))
{
meta = nbtTags.getInteger("meta");
}
@Override
public ItemStack getRecipeOutput()
if(nbtTags.hasKey("amount"))
{
return output;
amount = nbtTags.getInteger("amount");
}
@Override
public boolean matches(InventoryCrafting inv, World world)
if(nbtTags.hasKey("itemstack"))
{
for(int x = 0; x <= MAX_CRAFT_GRID_WIDTH - width; x++)
return ItemStack.loadItemStackFromNBT(nbtTags.getCompoundTag("itemstack"));
}
else if(nbtTags.hasKey("itemname"))
{
for(int y = 0; y <= MAX_CRAFT_GRID_HEIGHT - height; ++y)
Object obj = Item.itemRegistry.getObject(nbtTags.getString("itemname"));
if(obj instanceof Item)
{
if(checkMatch(inv, x, y, true))
return new ItemStack((Item)obj, amount, meta);
}
}
else if(nbtTags.hasKey("blockname"))
{
return true;
Object obj = Block.blockRegistry.getObject(nbtTags.getString("blockname"));
if(obj instanceof Block)
{
return new ItemStack((Block)obj, amount, meta);
}
}
if(mirrored && checkMatch(inv, x, y, false))
return null;
}
public static boolean removeRecipes(ItemStack stack)
{
return true;
List<IRecipe> recipes = CraftingManager.getInstance().getRecipeList();
for(Iterator<IRecipe> iter = recipes.iterator(); iter.hasNext();)
{
IRecipe iterRecipe = iter.next();
if(iterRecipe instanceof ShapedMekanismRecipe || iterRecipe instanceof ShapelessMekanismRecipe)
{
if(ItemStack.areItemStacksEqual(stack, iterRecipe.getRecipeOutput()))
{
iter.remove();
}
}
}
return false;
}
private boolean checkMatch(InventoryCrafting inv, int startX, int startY, boolean mirror)
{
for(int x = 0; x < MAX_CRAFT_GRID_WIDTH; x++)
{
for(int y = 0; y < MAX_CRAFT_GRID_HEIGHT; y++)
{
int subX = x - startX;
int subY = y - startY;
Object target = null;
if(subX >= 0 && subY >= 0 && subX < width && subY < height)
{
if(mirror)
{
target = input[width - subX - 1 + subY * width];
}
else {
target = input[subX + subY * width];
}
}
ItemStack slot = inv.getStackInRowAndColumn(x, y);
if(target instanceof ItemStack)
{
if(!checkItemEquals((ItemStack)target, slot))
{
return false;
}
}
else if(target instanceof ArrayList)
{
boolean matched = false;
for(ItemStack item : (ArrayList<ItemStack>)target)
{
matched = matched || checkItemEquals(item, slot);
}
if(!matched)
{
return false;
}
}
else if(target == null && slot != null)
{
return false;
}
}
}
return true;
}
private boolean checkItemEquals(ItemStack target, ItemStack input)
{
if(input == null && target != null || input != null && target == null)
{
return false;
}
else if(input == null && target == null)
{
return true;
}
if(target.getItem() != input.getItem())
{
return false;
}
if(!(target.getItem() instanceof IEnergizedItem) && !(input.getItem() instanceof IEnergizedItem) && !(target.getItem() instanceof IGasItem) && !(input.getItem() instanceof IGasItem))
{
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
return false;
}
}
else {
if(target.getItem() instanceof IEnergizedItem && input.getItem() instanceof IEnergizedItem)
{
if(((IEnergizedItem)target.getItem()).isMetadataSpecific(target) && ((IEnergizedItem)input.getItem()).isMetadataSpecific(input))
{
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
return false;
}
}
}
if(target.getItem() instanceof IGasItem && input.getItem() instanceof IGasItem)
{
if(((IGasItem)target.getItem()).isMetadataSpecific(target) && ((IGasItem)input.getItem()).isMetadataSpecific(input))
{
if(target.getItemDamage() != input.getItemDamage() && target.getItemDamage() != OreDictionary.WILDCARD_VALUE)
{
return false;
}
}
}
if(target.getItem() instanceof IEnergyCube && input.getItem() instanceof IEnergyCube)
{
if(((IEnergyCube)target.getItem()).getEnergyCubeTier(target) != ((IEnergyCube)input.getItem()).getEnergyCubeTier(input))
{
return false;
}
}
else if(target.getItem() instanceof ItemBlockBasic && input.getItem() instanceof ItemBlockBasic)
{
if(((ItemBlockBasic)target.getItem()).getTier(target) != ((ItemBlockBasic)input.getItem()).getTier(input))
{
return false;
}
}
else if(target.getItem() instanceof IFactory && input.getItem() instanceof IFactory)
{
if(isFactory(target) && isFactory(input))
{
if(((IFactory)target.getItem()).getRecipeType(target) != ((IFactory)input.getItem()).getRecipeType(input))
{
return false;
}
}
}
}
return true;
}
private static boolean isFactory(ItemStack stack)
{
return MachineType.get(stack) == MachineType.BASIC_FACTORY || MachineType.get(stack) == MachineType.ADVANCED_FACTORY || MachineType.get(stack) == MachineType.ELITE_FACTORY;
}
public MekanismRecipe setMirrored(boolean mirror)
{
mirrored = mirror;
return this;
}
public Object[] getInput()
{
return input;
}
}

View file

@ -55,19 +55,24 @@ public final class TransporterUtils
public static boolean isValidAcceptorOnSide(TileEntity tile, ForgeDirection side)
{
if(tile instanceof ITransmitterTile || !(tile instanceof IInventory))
{
return false;
}
IInventory inventory = (IInventory)tile;
if(inventory.getSizeInventory() > 0)
{
if(!(inventory instanceof ISidedInventory))
{
return true;
}
int[] slots = ((ISidedInventory)inventory).getAccessibleSlotsFromSide(side.getOpposite().ordinal());
return (slots != null && slots.length > 0);
}
return false;
}

View file

@ -25,7 +25,6 @@ import mekanism.generators.common.item.ItemHohlraum;
import mekanism.generators.common.tile.reactor.TileEntityReactorController;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemCoal;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
@ -492,6 +491,21 @@ public class FusionReactor implements IFusionReactor
public void setInjectionRate(int rate)
{
injectionRate = rate;
int capRate = Math.max(1, rate);
controller.waterTank.setCapacity(TileEntityReactorController.MAX_WATER*capRate);
controller.steamTank.setCapacity(TileEntityReactorController.MAX_STEAM*capRate);
if(controller.waterTank.getFluid() != null)
{
controller.waterTank.getFluid().amount = Math.min(controller.waterTank.getFluid().amount, controller.waterTank.getCapacity());
}
if(controller.steamTank.getFluid() != null)
{
controller.steamTank.getFluid().amount = Math.min(controller.steamTank.getFluid().amount, controller.steamTank.getCapacity());
}
}
@Override

View file

@ -1,5 +1,30 @@
package mekanism.generators.common;
import io.netty.buffer.ByteBuf;
import java.io.IOException;
import mekanism.api.MekanismConfig.general;
import mekanism.api.MekanismConfig.generators;
import mekanism.api.gas.Gas;
import mekanism.api.gas.GasRegistry;
import mekanism.api.infuse.InfuseRegistry;
import mekanism.common.FuelHandler;
import mekanism.common.Mekanism;
import mekanism.common.MekanismBlocks;
import mekanism.common.MekanismItems;
import mekanism.common.Tier.BaseTier;
import mekanism.common.Version;
import mekanism.common.base.IModule;
import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.util.MekanismUtils;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.oredict.OreDictionary;
import buildcraft.api.fuels.BuildcraftFuelRegistry;
import buildcraft.api.fuels.IFuel;
import cpw.mods.fml.client.event.ConfigChangedEvent.OnConfigChangedEvent;
@ -13,28 +38,8 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import io.netty.buffer.ByteBuf;
import mekanism.api.MekanismConfig.general;
import mekanism.api.MekanismConfig.generators;
import mekanism.api.gas.Gas;
import mekanism.api.gas.GasRegistry;
import mekanism.api.infuse.InfuseRegistry;
import mekanism.common.*;
import mekanism.common.Tier.BaseTier;
import mekanism.common.base.IModule;
import mekanism.common.recipe.MekanismRecipe;
import mekanism.common.recipe.RecipeHandler;
import mekanism.common.util.MekanismUtils;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.oredict.OreDictionary;
import java.io.IOException;
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "8.1.8", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory")
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "8.1.9", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory")
public class MekanismGenerators implements IModule
{
/** Mekanism Generators Packet Pipeline */
@ -47,7 +52,7 @@ public class MekanismGenerators implements IModule
public static MekanismGenerators instance;
/** MekanismGenerators version number */
public static Version versionNumber = new Version(8, 1, 8);
public static Version versionNumber = new Version(8, 1, 9);
@EventHandler
public void preInit(FMLPreInitializationEvent event)
@ -104,45 +109,45 @@ public class MekanismGenerators implements IModule
public void addRecipes()
{
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 0), new Object[] {
"III", "WOW", "CFC", Character.valueOf('I'), "ingotIron", Character.valueOf('C'), "ingotCopper", Character.valueOf('O'), "ingotOsmium", Character.valueOf('F'), Blocks.furnace, Character.valueOf('W'), "plankWood"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 1), new Object[] {
"SSS", "AIA", "PEP", Character.valueOf('S'), GeneratorsItems.SolarPanel, Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('I'), "ingotIron", Character.valueOf('P'), "dustOsmium", Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 5), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 5), new Object[] {
"SES", "SES", "III", Character.valueOf('S'), new ItemStack(GeneratorsBlocks.Generator, 1, 1), Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('I'), "ingotIron"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 4), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 4), new Object[] {
"RER", "BCB", "NEN", Character.valueOf('R'), "dustRedstone", Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('B'), MekanismItems.BioFuel, Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('N'), "ingotIron"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 3), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 3), new Object[] {
"PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), MekanismItems.EnrichedAlloy, Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('C'), MekanismItems.ElectrolyticCore
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsItems.SolarPanel), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsItems.SolarPanel), new Object[] {
"GGG", "RAR", "PPP", Character.valueOf('G'), "paneGlass", Character.valueOf('R'), "dustRedstone", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('P'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 6), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 6), new Object[] {
" O ", "OAO", "ECE", Character.valueOf('O'), "ingotOsmium", Character.valueOf('A'), MekanismItems.EnrichedAlloy, Character.valueOf('E'), MekanismItems.EnergyTablet.getUnchargedItem(), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC)
}));
//Reactor Recipes
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 4, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 4, 1), new Object[] {
" C ", "CAC", " C ", Character.valueOf('C'), new ItemStack(MekanismBlocks.BasicBlock, 1, 8), Character.valueOf('A'), "alloyUltimate"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 2, 3), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 2, 3), new Object[] {
" I ", "ICI", " I ", Character.valueOf('I'), new ItemStack(GeneratorsBlocks.Reactor, 1, 1), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ULTIMATE)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.ReactorGlass, 4, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.ReactorGlass, 4, 0), new Object[] {
" I ", "IGI", " I ", Character.valueOf('I'), new ItemStack(GeneratorsBlocks.Reactor, 1, 1), Character.valueOf('G'), "blockGlass"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 1, 0), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 1, 0), new Object[] {
"CGC", "ITI", "III", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ULTIMATE), Character.valueOf('G'), "paneGlass", Character.valueOf('I'), new ItemStack(GeneratorsBlocks.Reactor, 1, 1), Character.valueOf('T'), MekanismUtils.getEmptyGasTank()
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.ReactorGlass, 2, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.ReactorGlass, 2, 1), new Object[] {
" I ", "ILI", " I ", Character.valueOf('I'), new ItemStack(GeneratorsBlocks.ReactorGlass, 1, 0), Character.valueOf('L'), "blockRedstone"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 1, 4), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 1, 4), new Object[] {
" R ", "RFR", " R ", Character.valueOf('R'), "dustRedstone", Character.valueOf('F'), new ItemStack(GeneratorsBlocks.Reactor, 1, 1)
}));

View file

@ -424,7 +424,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds
@Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest)
{
if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z)))
if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest)
{
float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D;

View file

@ -35,11 +35,12 @@ import cpw.mods.fml.relauncher.SideOnly;
public class TileEntityReactorController extends TileEntityReactorBlock implements IActiveState, IHasSound, ISoundSource
{
public static final int MAX_WATER = 100 * FluidContainerRegistry.BUCKET_VOLUME;
public static final int MAX_STEAM = MAX_WATER * 1000;
public static final int MAX_FUEL = 1 * FluidContainerRegistry.BUCKET_VOLUME;
public FluidTank waterTank = new FluidTank(MAX_WATER);
public FluidTank steamTank = new FluidTank(MAX_WATER*1000);
public FluidTank steamTank = new FluidTank(MAX_STEAM);
public GasTank deuteriumTank = new GasTank(MAX_FUEL);
public GasTank tritiumTank = new GasTank(MAX_FUEL);
@ -217,7 +218,9 @@ public class TileEntityReactorController extends TileEntityReactorBlock implemen
data.add(fuelTank.getStored());
data.add(deuteriumTank.getStored());
data.add(tritiumTank.getStored());
data.add(waterTank.getCapacity());
data.add(waterTank.getFluidAmount());
data.add(steamTank.getCapacity());
data.add(steamTank.getFluidAmount());
}
@ -272,7 +275,9 @@ public class TileEntityReactorController extends TileEntityReactorBlock implemen
fuelTank.setGas(new GasStack(GasRegistry.getGas("fusionFuelDT"), dataStream.readInt()));
deuteriumTank.setGas(new GasStack(GasRegistry.getGas("deuterium"), dataStream.readInt()));
tritiumTank.setGas(new GasStack(GasRegistry.getGas("tritium"), dataStream.readInt()));
waterTank.setCapacity(dataStream.readInt());
waterTank.setFluid(new FluidStack(FluidRegistry.getFluid("water"), dataStream.readInt()));
steamTank.setCapacity(dataStream.readInt());
steamTank.setFluid(new FluidStack(FluidRegistry.getFluid("steam"), dataStream.readInt()));
}
else if(getReactor() != null)

View file

@ -310,6 +310,12 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl
return getReactor() != null && getReactor().isFormed() ? getReactor().getInventory()[slotID] : null;
}
@Override
public int getSizeInventory()
{
return getReactor() != null && getReactor().isFormed() ? 1 : 0;
}
@Override
public void setInventorySlotContents(int slotID, ItemStack itemstack)
{

View file

@ -14,7 +14,7 @@ import mekanism.api.MekanismConfig.tools;
import mekanism.common.Mekanism;
import mekanism.common.Version;
import mekanism.common.base.IModule;
import mekanism.common.recipe.MekanismRecipe;
import mekanism.common.recipe.ShapedMekanismRecipe;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.init.Items;
@ -28,7 +28,7 @@ import net.minecraftforge.event.entity.living.LivingSpawnEvent;
import java.io.IOException;
@Mod(modid = "MekanismTools", name = "MekanismTools", version = "8.1.8", dependencies = "required-after:Mekanism", guiFactory = "mekanism.tools.client.gui.ToolsGuiFactory")
@Mod(modid = "MekanismTools", name = "MekanismTools", version = "8.1.9", dependencies = "required-after:Mekanism", guiFactory = "mekanism.tools.client.gui.ToolsGuiFactory")
public class MekanismTools implements IModule
{
@SidedProxy(clientSide = "mekanism.tools.client.ToolsClientProxy", serverSide = "mekanism.tools.common.ToolsCommonProxy")
@ -38,7 +38,7 @@ public class MekanismTools implements IModule
public static MekanismTools instance;
/** MekanismTools version number */
public static Version versionNumber = new Version(8, 1, 8);
public static Version versionNumber = new Version(8, 1, 9);
//Enums: Tools
public static ToolMaterial toolOBSIDIAN;
@ -92,211 +92,211 @@ public class MekanismTools implements IModule
{
//Crafting Recipes
//Base
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.WoodPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.WoodPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), Items.wooden_axe, Character.valueOf('Y'), Items.wooden_pickaxe, Character.valueOf('Z'), Items.wooden_shovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.StonePaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.StonePaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), Items.stone_axe, Character.valueOf('Y'), Items.stone_pickaxe, Character.valueOf('Z'), Items.stone_shovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.IronPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.IronPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), Items.iron_axe, Character.valueOf('Y'), Items.iron_pickaxe, Character.valueOf('Z'), Items.iron_shovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.DiamondPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.DiamondPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), Items.diamond_axe, Character.valueOf('Y'), Items.diamond_pickaxe, Character.valueOf('Z'), Items.diamond_shovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GoldPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GoldPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), Items.golden_axe, Character.valueOf('Y'), Items.golden_pickaxe, Character.valueOf('Z'), Items.golden_shovel, Character.valueOf('T'), Items.stick
}));
//Obsidian
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianHelmet, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), "ingotRefinedObsidian"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianChestplate, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianChestplate, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), "ingotRefinedObsidian"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianLeggings, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianLeggings, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), "ingotRefinedObsidian"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianBoots, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), "ingotRefinedObsidian"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), ToolsItems.ObsidianAxe, Character.valueOf('Y'), ToolsItems.ObsidianPickaxe, Character.valueOf('Z'), ToolsItems.ObsidianShovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianPickaxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianPickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), "ingotRefinedObsidian", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianAxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), "ingotRefinedObsidian", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianShovel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianShovel, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), "ingotRefinedObsidian", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianHoe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), "ingotRefinedObsidian", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.ObsidianSword, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.ObsidianSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), "ingotRefinedObsidian", Character.valueOf('T'), Items.stick
}));
//Glowstone
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstonePaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstonePaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), ToolsItems.GlowstoneAxe, Character.valueOf('Y'), ToolsItems.GlowstonePickaxe, Character.valueOf('Z'), ToolsItems.GlowstoneShovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstonePickaxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstonePickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), "ingotRefinedGlowstone", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneAxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), "ingotRefinedGlowstone", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneShovel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneShovel, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), "ingotRefinedGlowstone", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneHoe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), "ingotRefinedGlowstone", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneSword, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), "ingotRefinedGlowstone", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneHelmet, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), "ingotRefinedGlowstone"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneChestplate, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneChestplate, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), "ingotRefinedGlowstone"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneLeggings, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneLeggings, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), "ingotRefinedGlowstone"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.GlowstoneBoots, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.GlowstoneBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), "ingotRefinedGlowstone"
}));
//Lazuli
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliHelmet, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), new ItemStack(Items.dye, 1, 4)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliChestplate, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliChestplate, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), new ItemStack(Items.dye, 1, 4)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliLeggings, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliLeggings, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), new ItemStack(Items.dye, 1, 4)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliBoots, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), new ItemStack(Items.dye, 1, 4)
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), ToolsItems.LazuliAxe, Character.valueOf('Y'), ToolsItems.LazuliPickaxe, Character.valueOf('Z'), ToolsItems.LazuliShovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliPickaxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliPickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliAxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliShovel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliShovel, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliHoe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.LazuliSword, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.LazuliSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('T'), Items.stick
}));
//Osmium
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumPaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), ToolsItems.OsmiumAxe, Character.valueOf('Y'), ToolsItems.OsmiumPickaxe, Character.valueOf('Z'), ToolsItems.OsmiumShovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumPickaxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumPickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), "ingotOsmium", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumAxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), "ingotOsmium", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumShovel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumShovel, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), "ingotOsmium", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumHoe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), "ingotOsmium", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumSword, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), "ingotOsmium", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumHelmet, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumChestplate, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumChestplate, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumLeggings, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumLeggings, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), "ingotOsmium"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.OsmiumBoots, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.OsmiumBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), "ingotOsmium"
}));
//Bronze
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzePaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzePaxel, 1), new Object[] {
"XYZ", " T ", " T ", Character.valueOf('X'), ToolsItems.BronzeAxe, Character.valueOf('Y'), ToolsItems.BronzePickaxe, Character.valueOf('Z'), ToolsItems.BronzeShovel, Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzePickaxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzePickaxe, 1), new Object[] {
"XXX", " T ", " T ", Character.valueOf('X'), "ingotBronze", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeAxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeAxe, 1), new Object[] {
"XX", "XT", " T", Character.valueOf('X'), "ingotBronze", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeShovel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeShovel, 1), new Object[] {
"X", "T", "T", Character.valueOf('X'), "ingotBronze", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeHoe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeHoe, 1), new Object[] {
"XX", " T", " T", Character.valueOf('X'), "ingotBronze", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeSword, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeSword, 1), new Object[] {
"X", "X", "T", Character.valueOf('X'), "ingotBronze", Character.valueOf('T'), Items.stick
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeHelmet, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeHelmet, 1), new Object[] {
"***", "* *", Character.valueOf('*'), "ingotBronze"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeChestplate, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeChestplate, 1), new Object[] {
"* *", "***", "***", Character.valueOf('*'), "ingotBronze"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeLeggings, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeLeggings, 1), new Object[] {
"***", "* *", "* *", Character.valueOf('*'), "ingotBronze"
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.BronzeBoots, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.BronzeBoots, 1), new Object[] {
"* *", "* *", Character.valueOf('*'), "ingotBronze"
}));
//Steel
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelPaxel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelPaxel, 1), new Object[] {
"XYZ", " I ", " I ", Character.valueOf('X'), ToolsItems.SteelAxe, Character.valueOf('Y'), ToolsItems.SteelPickaxe, Character.valueOf('Z'), ToolsItems.SteelShovel, Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelPickaxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelPickaxe, 1), new Object[] {
"XXX", " I ", " I ", Character.valueOf('X'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelAxe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelAxe, 1), new Object[] {
"XX", "XI", " I", Character.valueOf('X'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelShovel, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelShovel, 1), new Object[] {
"X", "I", "I", Character.valueOf('X'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelHoe, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelHoe, 1), new Object[] {
"XX", " I", " I", Character.valueOf('X'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelSword, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelSword, 1), new Object[] {
"X", "X", "I", Character.valueOf('X'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelHelmet, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelHelmet, 1), new Object[] {
"***", "I I", Character.valueOf('*'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelChestplate, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelChestplate, 1), new Object[] {
"I I", "*I*", "***", Character.valueOf('*'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelLeggings, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelLeggings, 1), new Object[] {
"I*I", "* *", "* *", Character.valueOf('*'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(ToolsItems.SteelBoots, 1), new Object[] {
CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(ToolsItems.SteelBoots, 1), new Object[] {
"I *", "* I", Character.valueOf('*'), "ingotSteel", Character.valueOf('I'), Items.iron_ingot
}));
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -0,0 +1,964 @@
//********//
//MEKANISM//
//********//
//Items
tile.ObsidianTNT.name=Obsidian TNT
item.EnrichedAlloy.name=Beriget Legering
item.ReinforcedAlloy.name=Forstærket Legering
item.AtomicAlloy.name=Atomar Legering
item.EnergyTablet.name=Energi-tablet
item.SpeedUpgrade.name=Hastighedsopgradering
item.EnergyUpgrade.name=Energiopgradering
item.FilterUpgrade.name=Filtreringsopgradering
item.GasUpgrade.name=Gasopgradering
item.Robit.name=Robit
item.AtomicDisassembler.name=Atomadskiller
item.ElectricBow.name=Elektrisk Bue
item.EnrichedIron.name=Beriget Jern
item.CompressedCarbon.name=Komprimeret Kulstof
item.CompressedRedstone.name=Komprimeret Rødsten
item.CompressedDiamond.name=Komprimeret Diamant
item.CompressedObsidian.name=Komprimeret Obsidian
item.PortableTeleporter.name=Portabel Teleportør
item.TeleportationCore.name=Teleporteringskerne
item.Configurator.name=Konfiguratør
item.NetworkReader.name=Netværkslæser
item.WalkieTalkie.name=Walkie-Talkie
item.Jetpack.name=Jetpack
item.ScubaTank.name=Iltflaske
item.GasMask.name=Gasmaske
item.Dictionary.name=Ordbog
item.ElectrolyticCore.name=Elektrolysekerne
item.Sawdust.name=Savsmuld
item.Salt.name=Salt
item.BrineBucket.name=Saltlagespand
item.LithiumBucket.name=Lithiumsspand
item.HeavyWaterBucket.name=Tungtvandsspand
item.FreeRunners.name=Fritløbere
item.ArmoredJetpack.name=Panseret Jetpack
item.FilterCard.name=Filterkort
item.SeismicReader.name=Seismisk Aflæser
item.HDPEPellet.name=HDPE-pellet
item.HDPERod.name=HDPE-stav
item.HDPESheet.name=HDPE-plade
item.PlaStick.name=PlaStick
item.Substrate.name=Substrat
item.Flamethrower.name=Flammekaster
item.GaugeDropper.name=Gauge Dropper
item.BioFuel.name=Biobrændsel
//Control Circuits
item.BasicControlCircuit.name=Basalt Kontrolkredsløb
item.AdvancedControlCircuit.name=Avanceret Kontrolkredsløb
item.EliteControlCircuit.name=Elite Kontrolkredsløb
item.UltimateControlCircuit.name=Ultimativt Kontrolkredsløb
//Gas Tank
tile.GasTank.GasTank.name=Gasstank
//Cardboard Box
tile.CardboardBox.name=Papkasse
//Bounding Block
tile.BoundingBlock.name=Markeringsblok
//Salt
tile.SaltBlock.name=Saltblok
//Basic Block
tile.BasicBlock.OsmiumBlock.name=Osmiumblok
tile.BasicBlock.BronzeBlock.name=Bronzeblok
tile.BasicBlock.RefinedObsidian.name=Raffineret Obsidian
tile.BasicBlock.CharcoalBlock.name=Trækulsblok
tile.BasicBlock.RefinedGlowstone.name=Raffineret Glødesten
tile.BasicBlock.SteelBlock.name=Stålblok
tile.BasicBlock.Bin.name=Papirkurv
tile.BasicBlock.TeleporterFrame.name=Teleportørindramning
tile.BasicBlock.SteelCasing.name=Stål-casing
tile.BasicBlock.DynamicTank.name=Dynamisk Tank
tile.BasicBlock.DynamicGlass.name=Dynamisk Glas
tile.BasicBlock.DynamicValve.name=Dynamisk Ventil
tile.BasicBlock.CopperBlock.name=Kobberblok
tile.BasicBlock.TinBlock.name=Tinblok
tile.BasicBlock.SolarEvaporationController.name=Solfordampningscontroller
tile.BasicBlock.SolarEvaporationValve.name=Solfordampningsventil
//Basic Block 2 (second ID iteration)
tile.BasicBlock2.SolarEvaporationBlock.name=Solfordampningsblok
tile.BasicBlock2.InductionCasing.name=Induktions-casing
tile.BasicBlock2.InductionPort.name=Induktionsport
tile.BasicBlock2.InductionCellBasic.name=Basal Induktionscelle
tile.BasicBlock2.InductionCellAdvanced.name=Avanceret Induktionscelle
tile.BasicBlock2.InductionCellElite.name=Elite Induktionscelle
tile.BasicBlock2.InductionCellUltimate.name=Ultimativ Induktionscelle
tile.BasicBlock2.InductionProviderBasic.name=Basal Induktionsprovider
tile.BasicBlock2.InductionProviderAdvanced.name=Avanceret Induktionsprovider
tile.BasicBlock2.InductionProviderElite.name=Elite Induktionsprovider
tile.BasicBlock2.InductionProviderUltimate.name=Ultimativ Induktionsprovider
//Machine Block
tile.MachineBlock.EnrichmentChamber.name=Berigelseskammer
tile.MachineBlock.OsmiumCompressor.name=Osmiumkompressor
tile.MachineBlock.Combiner.name=Kombinerer
tile.MachineBlock.Crusher.name=Knuser
tile.MachineBlock.Factory.name=Fabrik
tile.MachineBlock.MetallurgicInfuser.name=Metallurgic Infuser
tile.MachineBlock.PurificationChamber.name=Rensningskammer
tile.MachineBlock.EnergizedSmelter.name=Energibaseret Smelteværk
tile.MachineBlock.Teleporter.name=Teleporter
tile.MachineBlock.ElectricPump.name=Elektrisk Pumpe
tile.MachineBlock.ElectricChest.name=Elektrisk Kiste
tile.MachineBlock.Chargepad.name=Chargepad
tile.MachineBlock.LogisticalSorter.name=Logistical Sorterer
tile.MachineBlock.DigitalMiner.name=Digital Miner
//Machine Block 2 (second ID iteration)
tile.MachineBlock2.RotaryCondensentrator.name=Rotary Condensentrator
tile.MachineBlock2.ChemicalOxidizer.name=Kemisk Oxidationsenhed
tile.MachineBlock2.ChemicalInfuser.name=Kemisk Infuser
tile.MachineBlock2.ChemicalCombiner.name=Kemisk Kombinerer
tile.MachineBlock2.ChemicalInjectionChamber.name=Kemisk Injektionskammer
tile.MachineBlock2.ElectrolyticSeparator.name=Elektrolytisk Separator
tile.MachineBlock2.PrecisionSawmill.name=Precisionssavmølle
tile.MachineBlock2.ChemicalDissolutionChamber.name=Kemisk Opløsningskammer
tile.MachineBlock2.ChemicalWasher.name=Kemisk vasker
tile.MachineBlock2.ChemicalCrystallizer.name=Kemisk Krystalisator
tile.MachineBlock2.SeismicVibrator.name=Seismisk Vibrator
tile.MachineBlock2.PressurizedReactionChamber.name=Pressurized Reaction Chamber
tile.MachineBlock2.PressurizedReactionChamber.short.name=PRC
tile.MachineBlock2.PortableTank.name=Mobil Tank
tile.MachineBlock2.FluidicPlenisher.name=Fluidisk Plenisher
tile.MachineBlock2.Laser.name=Laser
tile.MachineBlock2.LaserAmplifier.name=Laserfortstærker
tile.MachineBlock2.LaserTractorBeam.name=Laser Traktorstråle
//Machine Block 3 (third ID iteration)
tile.MachineBlock3.SolarNeutronActivator.name=Solar Neutron Activator
tile.MachineBlock3.Oredictionificator.name=Oredictionificator
//Plastic
tile.PlasticBlock.name=Plastblok
tile.SlickPlasticBlock.name=Slick Plastblok
tile.GlowPlasticBlock.name=Plast Glødeblok
tile.ReinforcedPlasticBlock.name=Forstærket Plastblok
tile.RoadPlasticBlock.name=Plastvej
tile.PlasticFence.name=Plastbarriere
//Infuse types
infuse.carbon=Kulstof
infuse.tin=Tin
infuse.diamond=Diamant
infuse.redstone=Rødsten
infuse.fungi=Fungi
infuse.obsidian=Obsidian
infuse.bio=Biomasse
//Ore Block
tile.OreBlock.OsmiumOre.name=Osmiummalm
tile.OreBlock.CopperOre.name=Kobbermalm
tile.OreBlock.TinOre.name=Tinmalm
//Transmitters
item.MultipartTransmitter.BasicPressurizedTube.name=Basal Tryk-tube
item.MultipartTransmitter.AdvancedPressurizedTube.name=Avanceret Tryk-tube
item.MultipartTransmitter.ElitePressurizedTube.name=Elite Tryk-tube
item.MultipartTransmitter.UltimatePressurizedTube.name=Ultimativ Tryk-tube
item.MultipartTransmitter.BasicUniversalCable.name=Basalt Universalkabel
item.MultipartTransmitter.AdvancedUniversalCable.name=Avanceret Universalkabel
item.MultipartTransmitter.EliteUniversalCable.name=Elite Universalkabel
item.MultipartTransmitter.UltimateUniversalCable.name=Ultimativt Universalkabel
item.MultipartTransmitter.BasicMechanicalPipe.name=Basalt Mekanisk Rør
item.MultipartTransmitter.AdvancedMechanicalPipe.name=Avanceret Mekanisk Rør
item.MultipartTransmitter.EliteMechanicalPipe.name=Elite Mekanisk Rør
item.MultipartTransmitter.UltimateMechanicalPipe.name=Ultimativt Mekanisk Rør
item.MultipartTransmitter.BasicLogisticalTransporter.name=Basal Logistisk Transportør
item.MultipartTransmitter.AdvancedLogisticalTransporter.name=Avanceret Logistisk Transportør
item.MultipartTransmitter.EliteLogisticalTransporter.name=Elite Logistisk Transportør
item.MultipartTransmitter.UltimateLogisticalTransporter.name=Ultimativ Logistisk Transportør
item.MultipartTransmitter.RestrictiveTransporter.name=Begrænsende Transporter
item.MultipartTransmitter.DiversionTransporter.name=Afledningstransporter
//Glow Panel
item.GlowPanel.name=Glødepanel
//Energy Cubes
tile.EnergyCubeBasic.name=Basal Energikube
tile.EnergyCubeAdvanced.name=Avanceret Energikube
tile.EnergyCubeElite.name=Elite Energikube
tile.EnergyCubeUltimate.name=Ultimativ Energikube
tile.EnergyCubeCreative.name=Kreativ Energikube
//Factory Installers
item.basicFactoryInstaller.name=Basal Fabrikinstallerer
item.advancedFactoryInstaller.name=Avanceret Fabrikinstallerer
item.eliteFactoryInstaller.name=Elite Fabrikinstallerer
//Dust
item.ironDust.name=Jernstøv
item.goldDust.name=Guldstøv
item.osmiumDust.name=Osmiumstøv
item.obsidianDust.name=Obsidianstøv
item.refinedobsidianDust.name=Raffineret Obsidianstøv
item.diamondDust.name=Diamantstøv
item.steelDust.name=Stålstøv
item.copperDust.name=Kobberstøv
item.tinDust.name=Tinstøv
item.silverDust.name=Sølvstøv
item.leadDust.name=Blystøv
item.sulfurDust.name=Svovlstøv
item.lithiumDust.name=Lithiumstøv
//Clumps
item.ironClump.name=Jernklump
item.goldClump.name=Guldklump
item.osmiumClump.name=Osmiumklump
item.copperClump.name=Kobberklump
item.tinClump.name=Tinklump
item.silverClump.name=Sølvklump
item.leadClump.name=Blyklump
//Shards
item.ironShard.name=Jernshard
item.goldShard.name=Guldshard
item.osmiumShard.name=Osmiumshard
item.copperShard.name=Kobbershard
item.tinShard.name=Tinshard
item.silverShard.name=Sølvshard
item.leadShard.name=Blyshard
//Crystals
item.ironCrystal.name=Jernkrystal
item.goldCrystal.name=Guldkrystal
item.osmiumCrystal.name=Osmiumkrystal
item.copperCrystal.name=Kobberkrystal
item.tinCrystal.name=Tinkrystal
item.silverCrystal.name=Sølvkrystal
item.leadCrystal.name=Blykrystal
//Dirty Dust
item.dirtyIronDust.name=Beskidt Jernstøv
item.dirtyGoldDust.name=Beskidt Guldstøv
item.dirtyOsmiumDust.name=Beskidt Osmiumstøv
item.dirtyCopperDust.name=Beskidt Kobberstøv
item.dirtyTinDust.name=Beskidt Tinstøv
item.dirtySilverDust.name=Beskidt Sølvstøv
item.dirtyLeadDust.name=Beskidt Blystøv
//Ingots
item.obsidianIngot.name=Obsidianbarre
item.osmiumIngot.name=Osmiumbarre
item.bronzeIngot.name=Bronzebarre
item.glowstoneIngot.name=Glødestensbarre
item.steelIngot.name=Stålbarre
item.copperIngot.name=Kobberbarre
item.tinIngot.name=Tinbarre
//Gasses
gas.hydrogen=Brint
gas.oxygen=Ilt
gas.water=Vanddamp
gas.chlorine=Klor
gas.sulfurDioxideGas=Svovldioxid
gas.sulfurTrioxideGas=Svovltrioxid
gas.sulfuricAcid=Svovlsyre
gas.hydrogenChloride=Hydrogenklorid
gas.liquidOsmium=Flydende Osmium
gas.liquidStone=Flydende Sten
gas.ethene=Ethen
gas.sodium=Natrium
gas.brine=Saltlage i Gasform
gas.deuterium=Deuterium
gas.tritium=Tritium
gas.lithium=Lithium
gas.fusionFuelDT=D-T Brændsel
gas.iron=Jernslurry
gas.gold=Guldslurry
gas.osmium=Osmiumslurry
gas.copper=Kobberslurry
gas.tin=Tinslurry
gas.silver=Sølvslurry
gas.obsidian=Obsidianslurry
gas.lead=Blyslurry
gas.cleanIron=Ren Jernslurry
gas.cleanGold=Ren Guldslurry
gas.cleanOsmium=Ren Osmiumslurry
gas.cleanCopper=Ren Kobberslurry
gas.cleanTin=Ren Tinslurry
gas.cleanSilver=Ren Sølvslurry
gas.cleanObsidian=Ren Obsidianslurry
gas.cleanLead=Ren Blyslurry
//BC Fuel Gases
gas.fuel=Fordampet Brændsel
gas.oil=Fordampet Olie
//Fluids
fluid.hydrogen=Flydende Brint
fluid.oxygen=Flydende Ilt
fluid.chlorine=Flydende Klor
fluid.sulfurDioxideGas=Flydende Svovldioxid
fluid.sulfurTrioxideGas=Flydende Svovltrioxid
fluid.sulfuricAcid=Flydende Svovlsyre
fluid.hydrogenChloride=Flydende Hydrogenklorid
fluid.brine=Saltlage
fluid.ethene=Flydende Ethen
fluid.sodium=Flydende Natrium
fluid.heavyWater=Tungtvand
fluid.lithium=Flydende Lithium
fluid.deuterium=Flydende Deuterium
fluid.tritium=Flydende Tritium
fluid.fusionFuelDT=Flydende D-T Brændsel
//OreGas names
oregas.iron=Jernmalm
oregas.gold=Guldmalm
oregas.osmium=Osmiummalm
oregas.copper=Kobbermalm
oregas.tin=Tinmalm
oregas.silver=Sølvmalm
oregas.obsidian=Obsidianmalm
oregas.lead=Blymalm
//Tier names
tier.Basic=Basal
tier.Advanced=Avanceret
tier.Elite=Elite
tier.Ultimate=Ultimativ
tier.Creative=Kreativ
//Transmission types
transmission.Energy=Energi
transmission.Fluids=Væsker
transmission.Gases=Gasser
transmission.Items=Ting
transmission.Heat=Varme
//Update handler text
update.consider=Tænk på at opdatere til version
update.newFeatures=Nye funktioner
update.visit=Besøg
update.toDownload=til at downloade
update.devBuild=Du bruger en udviklerversion
update.outdated=Du bruger en forældet version på et eller flere moduler
//Upgrades
upgrade.energy=Energi
upgrade.energy.desc=Øger energieffektiviteten !nog kapaciteten på maskinen.
upgrade.speed=Hastighed
upgrade.speed.desc=Øger hastigheden på maskinen.
upgrade.filter=Filter
upgrade.filter.desc=Et filter som sepererer !ntungtvand fra almindelig vand.
upgrade.gas=Gas
upgrade.gas.desc=Øger effektiviteten !naf gasforbrugende maskineri.
//Key description text
key.mode=Ændr Itemmodus
key.armorMode=Ændr Armormodus
key.voice=Stemme
//Entities
entity.Robit.name=Robit
entity.BabySkeleton.name=Baby Skelet
//Config Gui
mekanism.configgui.ctgy.general=Mekanism Generelle Indstillinger
mekanism.configgui.ctgy.machines=Maskinindstillinger
mekanism.configgui.ctgy.tier=Tierindstillinger
mekanism.configgui.ctgy.usage=Brugsindstillinger
mekanism.configgui.ctgy.client=Klientindstillinger
//Config Tooltips
mekanism.configgui.ctgy.general.tooltip=Generelle indstillinger vedr. Mekanism og alle dets moduler
mekanism.configgui.ctgy.machines.tooltip=Indstillinger vedr. aktivering og deaktivering af specifikke maskiner
mekanism.configgui.ctgy.tier.tooltip=Indstillinger vedr. Mekanism tiers og deres tilsvarende værdier
mekanism.configgui.ctgy.usage.tooltip=Indstillinger vedr. machinery og deres energiforbrug
mekanism.configgui.ctgy.client.tooltip=Klientspecifikke indstillinger vedr. Mekanism og alle dets moduler
//Gui text
gui.removeSpeedUpgrade=Fjern hastighedsopgradering
gui.removeEnergyUpgrade=Fjern energiopgradering
gui.condensentrating=Condensentrating
gui.decondensentrating=Decondensentrating
gui.power=Strøm
gui.confirm=Bekræft
gui.open=Åbn
gui.allOK=Alt OK
gui.none=Ingen
gui.new=Nyt
gui.edit=Ændr
gui.save=Lagr
gui.output=Udgang
gui.delete=Slet
gui.status=Status
gui.autoEject=Auto-udstød
gui.itemstack=ItemStack
gui.oredict=OreDict
gui.material=Materiale
gui.out=Ud
gui.noFluid=Ingen væske
gui.empty=Tom
gui.volume=Volume
gui.start=Start
gui.stop=Stop
gui.config=Konfig
gui.teleport=Teleportér
gui.eject=Udstød
gui.input=Input
gui.strictInput=Striks Input
gui.slots=Plads
gui.state=Tilstand
gui.on=Til
gui.off=Fra
gui.filters=Filtere
gui.filter=Filter
gui.idle=Inaktiv
gui.data=Data
gui.newFilter=Nyt Filter
gui.energy=Energi
gui.gas=Gas
gui.dumping=Udsmidning
gui.dumping_excess=Smid overflødigt ud
gui.modID=Mod ID
gui.key=Nøgle
gui.id=ID
gui.finished=Færdig
gui.well=Alt er vel!
gui.upgrade=Opgradér
gui.infinite=Uendelig
gui.min=Min
gui.max=Maks
gui.delay=Forsinkelse
gui.noDelay=Ingen forsinkelse
gui.fuel=Brændstof
gui.heat=Varme
gui.formed=Formet
gui.incomplete=Ufuldstændig
gui.inductionMatrix=Induktionsmatrice
gui.matrixStats=Matrice-statistik
gui.main=Hoved
gui.outputting=Outputting
gui.receiving=Modtager
gui.dimensions=Dimensioner
gui.constituents=Bestanddele
gui.cells=celler
gui.providers=providers
gui.structure=Struktur
gui.dynamicTank=Dynamisk Tank
gui.visuals=Visuelle
gui.noEject=Kan ikke udstøde
gui.undefined=Udefineret
gui.owner=Ejer
gui.public=Offentlig
gui.private=Privat
gui.add=Tilføj
gui.set=Sæt
gui.freq=Frek.
gui.security=Sikkerhed
gui.index=Indeks
gui.producing=Producing
gui.maxOutput=Max Output
gui.storing=Storing
gui.skyBlocked=Sky blocked
gui.using=Using
gui.needed=Needed
gui.noRecipe=No recipe
gui.conflict=Conflict
gui.height=Height
gui.mult=Mult
gui.chunk=Chunk
gui.vibrating=Vibrating
gui.abundancy=Abundancy
gui.nextItem=Next Item
gui.lastItem=Last Item
gui.oreDictCompat=Compatible OreDict Key
gui.toggleCooling=Toggle Cooling Measurements
gui.coolingMeasurements=Active cooling
gui.redstoneOutputMode=Redstone mode
gui.entityDetection=Entity Detection
gui.moveUp=Move Up
gui.moveDown=Move Down
gui.reactor.injectionRate=Injektionssats
gui.upgrades=Opgraderinger
gui.upgrades.supported=Støttet
gui.upgrades.noSelection=Intet valgt
gui.upgrades.amount=Mængde
gui.upgrades.max=Maks
gui.upgrades.effect=Effekt
gui.chemicalInfuser.short=K. Infuser
gui.chemicalDissolutionChamber.short=K. Opløsningskammer
gui.solarEvaporationController.short=Sol E. Kontrollør
gui.dictionary.noKey=Ingen nøgle.
gui.configuration=Konfiguration
gui.config=Konfig
gui.configuration.side=Sidekonfig
gui.configuration.transporter=Transporter-konfig
gui.configuration.strictInput=Striks Input
gui.rotaryCondensentrator.toggleOperation=Skift operation
gui.factory.secondaryEnergy=Sekundær energi
gui.factory.autoSort=Auto-sortér
//Recipe types
gui.factory.Smelting=Smeltnings
gui.factory.Enriching=Berigelses
gui.factory.Crushing=Knusnings
gui.factory.Compressing=Komprimerings
gui.factory.Combining=Kombinerings
gui.factory.Purifying=Rensnings
gui.factory.Injecting=Injicerings
gui.seismicReader.short=S. Aflæser
gui.seismicReader.solids=Faste Stoffer
gui.seismicReader.fluids=Væsker
gui.seismicReader.reading=Aflæser
gui.filterSelect.title=Lav Nyt Filter
gui.oredictFilter=OreDict Filter
gui.oredictFilter.noKey=Ingen nøgle
gui.oredictFilter.sameKey=Samme nøgle
gui.modIDFilter=Mod ID Filter
gui.modIDFilter.noID=Intet ID
gui.modIDFilter.sameID=Samme ID
gui.oredictionificatorFilter=Oredictionificator Filter
gui.itemFilter=Genstandsfilter
gui.itemFilter.noItem=Ingen genstand
gui.itemFilter.details=ItemStack Detaljer
gui.itemFilter.min=Min
gui.itemFilter.max=Maks
gui.materialFilter=Materialefilter
gui.materialFilter.details=Bruger materiale af
gui.portableTeleporter=Mobil Teleportør
gui.robit=Robit
gui.robit.smelting=Robit Smeltning
gui.robit.inventory=Robit Inventar
gui.robit.crafting=Robit Crafting
gui.robit.greeting=Hej, jeg hedder
gui.robit.toggleFollow=Skift 'følge'-modus
gui.robit.rename=Giv nyt navn til denne Robit
gui.robit.teleport=Teleportér hjem
gui.robit.togglePickup=Skift 'saml ting op'-modus
gui.robit.following=Følger
gui.robit.dropPickup=Saml ting op
gui.robit.owner=Ejer
gui.password.setPassword=Sæt adgangskode
gui.password.enterPassword=Skriv adgangskode
gui.password.fieldsEmpty=Felt(er) tomme
gui.password.notMatching=Matcher ikke
gui.password.identical=Idenstisk
gui.password.invalid=Ugyldig
gui.password=Adgangskode
gui.logisticalSorter.default=Standard
gui.logisticalSorter.auto=Auto
gui.logisticalSorter.roundRobin=Round-robin
gui.electricChest.editPassword=Ændr Kode
gui.teleporter.notReady=Ikke klar
gui.teleporter.ready=Klar
gui.teleporter.noFrame=Ingen indramning
gui.teleporter.noLink=Ingen tilkoblinge
gui.teleporter.exceeds=Tilkoblinger > 2
gui.teleporter.needsEnergy=Mangler energi
gui.teleporter.noAccess=Du har ikke adgang til denne teleportør.
gui.teleporter.noFreq=Ingen frekvens
gui.digitalMinerConfig=Digital Miner Konfig
gui.digitalMiner.autoPull=Auto-træk
gui.digitalMiner.replaceBlock=Erstat blok
gui.digitalMiner.reset=Nulstil
gui.digitalMiner.silkTouch=Silk touch
gui.digitalMiner.pull=Træk
gui.digitalMiner.silk=Silk
gui.digitalMiner.toMine=At grave
gui.digitalMiner.running=Kører
gui.digitalMiner.inverse=Inverse modus
gui.digitalMiner.requireReplace=Kræv erstatning
gui.digitalMiner.fuzzyMode=Fuzzy modus
gui.digitalMiner.missingBlock=Manglende blok
//Recipe names
recipe.mekanismShaped=Formet
//Item and block tooltip text
tooltip.configurator.configurate=Konfigurér
tooltip.configurator.empty=Tom
tooltip.configurator.rotate=Rotér
tooltip.configurator.wrench=Skruenøgle
tooltip.configurator.pumpReset=Nulstil Elektrisk Pumpe udregning
tooltip.configurator.toggleDiverter=Afledermodus ændret til
tooltip.configurator.toggleMode=%s opførsel ændret til
tooltip.configurator.viewMode=Nuværende %s opførsel
tooltip.configurator.unauth=Denne kiste er låst
tooltip.configurator.noLink=Ingen forbindelse
tooltip.configurator.linkMsg=Forbundet til
tooltip.configurator.dim=dimension
tooltip.configurator.setLink=Sæt tilkobling til blok
tooltip.configurator.plenisherReset=Nulstil Fluidisk Plenisher udregning
tooltip.configurator.inductionPortMode=Skiftet Indukstionsports overføringsmodus til
tooltip.configurator.toggleColor=Farve skiftet til
tooltip.configurator.viewColor=Nuværende farve
tooltip.upgrade.speed=Hastighed
tooltip.upgrade.energy=Energi
tooltip.inventory=Inventar
tooltip.storedEnergy=Opbevaret energi
tooltip.auth=Enutentificeret
tooltip.locked=Låst
tooltip.recipeType=Opskriftstype
tooltip.hold=Hold
tooltip.forDesc=for en beskrivelse
tooltip.forDetails=for detaljer
tooltip.fireMode=Enffyringsmodus
tooltip.capacity=Kapacitet
tooltip.pumpRate=Pumpningssats
tooltip.items=Genstande
tooltip.blocks=Blokke
tooltip.universal=universal
tooltip.fluids=Væsker
tooltip.gasses=Gasser
tooltip.capableTrans=I stand til at overføre
tooltip.restrictiveDesc=Kun brugt hvis ingen andre veje er tilgængelige
tooltip.diversionDesc=Kontrollerbar via rødsten
tooltip.noGas=Ingen gas opbevaret
tooltip.stored=Opbevaret
tooltip.channel=Kanal
tooltip.mode=Modus
tooltip.efficiency=Effektivitet
tooltip.modeToggle=Modus skiftet til
tooltip.flowing=Strømmer
tooltip.yes=ja
tooltip.no=nej
tooltip.name=Navn
tooltip.blockData=Blokdata
tooltip.block=Blok
tooltip.meta=Metadata
tooltip.tile=Tile
tooltip.keysFound=Tast(er) fundet
tooltip.noKey=Ingen tast
tooltip.hp=HP
tooltip.configureState=Konfigurér tilstand
tooltip.outputRate=Output Sats
tooltip.insufficientFuel=Utilstrækkelig Brændsel
tooltip.readyForReaction=Klar til Reaktion
tooltip.speed=Fart
tooltip.and=og
tooltip.portableTank.bucketMode=Spand-modus
tooltip.disassembler.normal=normal
tooltip.disassembler.slow=langsom
tooltip.disassembler.fast=hurtig
tooltip.disassembler.vein=åre
tooltip.disassembler.off=fra
tooltip.filterCard.got=Hentet filterdata fra %s
tooltip.filterCard.set=Injicerede filterdata af typen %s
tooltip.filterCard.unequal=Ulige filterdata-formater
tooltip.filterCard.logisticalSorter=Logistisk Sorterer
tooltip.filterCard.digitalMiner=Digital Miner
tooltip.filterCard.oredictionificator=Oredictionificator
tooltip.balloon=Ballon
tooltip.jetpack.regular=Almindelig
tooltip.jetpack.hover=Svæv
tooltip.jetpack.disabled=Deaktiveret
tooltip.flamethrower.combat=Kamp
tooltip.flamethrower.heat=Opvarm
tooltip.flamethrower.inferno=Inferno
tooltip.flamethrower.modeBump=Flammekastermodus skubbet til
tooltip.seismicReader.needsEnergy=Ikke nok energi til at læse vibration
tooltip.seismicReader.noVibrations=Ikke i stand til at opdage nogen vibrationer
tooltip.EnrichmentChamber=En simpel maskine brugt til at berige malm om til !nto af deres støvmodparter, såvel som at !nudføre mange andre operationer.
tooltip.OsmiumCompressor=En nogenlunde avanceret maskine brugt til at !nkomprimere osmium om til adskillige støve for !nså at kunne lave deres barremodparter.
tooltip.Combiner=En maskine brugt til at kombinere støv og brosten !nfor at forme deres malmmodparter.
tooltip.Crusher=En maskine brugt til at knuse barrer om til deres støvmodparter, !nså vel som at udføre mange andre operationer.
tooltip.DigitalMiner=En højtavanceret, filterbaseret, auto-miner !nder kan mine hvilken som helst blok du beder den om !ninden for en 32-bloks(maks)radius.
tooltip.BasicFactory=Det laveste tier i linjen af Fabrikker, !nder kan bruges til at processere forskellige !nmaskinoperationer ad gangen.
tooltip.AdvancedFactory=Det mellemste tier i linjen af Fabrikker, !nder kan bruges til at processere forskellige !nmaskinoperationer ad gangen.
tooltip.EliteFactory=The højeste tier i linjen af Fabrikker, !nder kan bruges til at processere forskellige !nmaskinoperationer ad gangen.
tooltip.MetallurgicInfuser=En maskine brugt til at infuse adskillige materialer !nom til (generelt) metaller til at lave legeringer !nog andre sammensætninger.
tooltip.PurificationChamber=En avanceret maskine i stand til at processere !nmalm om til the klumper: Bruges som det indledende !nfase i 300%-malmforarbejdning.
tooltip.EnergizedSmelter=En simpel maskine der bruges som en Mekanism-baseret !novn, der kører på energy.
tooltip.Teleporter=En maskine i stand til at teleportere spillere til forskellige !nsteder defineret af en anden teleporter.
tooltip.ElectricPump=En avanceret pumpe i stand til at pumpe !nen hele lavasø op.
tooltip.ElectricChest=En mobil kiste, med 54 pladser, der bruger energi til at låse !nsig selv fra andre vha. adgangskodebeskyttelse.
tooltip.Chargepad=En universal chargepad der kan lade !nenhver energibaseret ting fra enhver mod.
tooltip.LogisticalSorter=En filterbaseret, avanceret sorteringsmaskine, der !nautomatisk kan ustøde specifikke ting ud fra og ind i !ninventarer og Logistiske Transporters ved siden af.
tooltip.RotaryCondensentrator=En maskine i stand til at konvertere gasser om til !nderes flydende form og vice versa.
tooltip.ChemicalInjectionChamber=En elite maskine i stand til at forarbejde !nmalm om til fire shards: Bruges som det indledende !nfase i 400%-malmforarbejdning.
tooltip.ElectrolyticSeparator=En maskine, der bruger electrolyse til at !nsplitte en bestemt gas !nom til to forskellige gasser.
tooltip.PrecisionSawmill=En maskine brugt til at forarbejde logs og andre !ntræbaserede ting mere effektivt, så vel som !nat opnå savsmuld.
tooltip.ChemicalDissolutionChamber=En ultimativ maskine brugt til kemisk at !nopløse alle urenheder af malm, !nder efterlader en uforarbejdet slurry.
tooltip.ChemicalWasher=En ultimativ maskine der rengører uforarbejdet !nslurry og forbereder det krystalisering.
tooltip.ChemicalCrystallizer=En ultimativ maskine brugt til at krystalisere !nrenset malm slurry om til malmkrystaller.
tooltip.ChemicalOxidizer=En maskine i stand til at oxidere !nfast materiale ind til gasform.
tooltip.ChemicalInfuser=En maskine, der producerer en ny !ngas ved infuse til andre.
tooltip.SeismicVibrator=En maskine, der bruger seismiske vibrationer til at !ngive information om forskellige lag !ni verdenen.
tooltip.PressurizedReactionChamber=En avanceret maskine der forarbejder en !nfast, flydende og gasformig blanding og !nlaver både et gasformigt og fast produkt.
tooltip.PortableTank=En handy, mobil tank, der lader dig !nbære 14 spande væske hvorhen du !nønsker. Kan også bruges som spand!
tooltip.FluidicPlenisher=En maskine i stand til at lave hele !nsøer ved at fylde slugter op med væske.
tooltip.Laser=En avanceret form for linær!nenergitransfer der udnytter en!nekstremt kollimeret lysstråle.
tooltip.LaserAmplifier=En blok that can be brugt til at merge,!nomdirigere og forstærke laserstråler,!nmed finkontrollering over hvornår der skydes.
tooltip.LaserTractorBeam=En blok brugt til at forene og!nomdirigere laserstråler. Indsamler!ndrops fra blokke, den ødelægger.
tooltip.SolarNeutronActivator=En maskine der dirigerer neutronstrålingen !nfra solen om til sin interne reserve, hvilket tillader !nen langsom dannelse af forskelige isotoper.
tooltip.Oredictionificator=En maskine brugt til at forene og !noversætte mellem forskellige ting !nog blokke vha. Ore Dictionaryen.
tooltip.HeatGenerator=En generator der bruger lavaens varme eller !nandre brændbare ressourcer til at producere energi.
tooltip.SolarGenerator=En generator der bruger solens !nkraft til producere energi.
tooltip.GasGenerator=En generator der udnytter de molekulært !nvariende gasser til producere energi.
tooltip.BioGenerator=En generator der brænder organisk materiale i !nverdenen til producere energi.
tooltip.AdvancedSolarGenerator=En avanceret generator der direkte !nabsorberer solens stråler med lille tab !ntil at producere energi.
tooltip.WindTurbine=En generator der bruger vindens styrke !ntil at producere energi med større effektivitet !nved højere niveauer.
tooltip.ReactorGlass=Forstærket glas, der kan bruges i !nFusionsreaktor-multiblokken.
tooltip.ReactorLaserFocusMatrix=Et panel af Reaktorglas i !nstand til at absorbere optisk energi og !nderved opvarme Fusionsreaktoren.
tooltip.ReactorController=Den kotrollerende blok til hele !nFusionsreaktorens struktur.
tooltip.ReactorFrame=Forstærket indramning, der kan bruges i !nFusionsreaktor-multiblokken.
tooltip.ReactorNeutronCapturePlate=En blok, der kan bruges til !nbåde at blokere Fusionsreaktorstråling og assistere !ni produktionen af Tritium.
tooltip.ReactorPort=En blok forstærket indramning i stand til !nat håndtere både gas- og energioverførslen !naf Fusionsreaktoren.
tooltip.ReactorLogicAdapter=En blok der kan bruges til at !ntillade basal overvågning af en reaktor vha. rødsten.
tooltip.OsmiumOre=Et stærkt mineral der kan findes på !nenhver højde i verdenen. Den er!nkendt for at have mange anvendelser i !nkonstruktionen af maskineri.
tooltip.CopperOre=Et almindeligt, ledende materiale der !nkan bruges i produktionen af !nledninger. Dets evne til at modstå !nhøj varme gør den også essential !ntil avanceret maskineri.
tooltip.TinOre=Et letvægts, dog stadig robust, ledende !nmateriale, der er en smule mindre !nsjælden end Kobber.
//Side data
sideData.None=Ingen
sideData.Input=Indgang
sideData.Output=Udgang
sideData.Energy=Energi
sideData.Gas=Gas
sideData.Extra=Ekstra
sideData.Infuse=Infuse
sideData.Fluid=Væske
//Redstone control
control.disabled=Deaktiveret
control.high=Høj
control.low=Lav
control.pulse=Puls
control.disabled.desc=Altid aktiv
control.high.desc=Aktiv med signal
control.low.desc=Aktiv uden signal
control.pulse.desc=Kun aktiv ved modtagelse af første signal
//Container edit modes
fluidedit.both=Begge
fluidedit.fill=Fyld
fluidedit.empty=Tom
//Colors
color.black=Sort
color.darkBlue=Mørkeblå
color.darkGreen=Mørkegrøn
color.darkAqua=Mørkeaqua
color.darkRed=Mørkerød
color.purple=Lilla
color.orange=Orange
color.grey=Grå
color.darkGrey=Mørkegrå
color.indigo=Indigo
color.brightGreen=Lysegrøn
color.aqua=Aqua
color.red=Rød
color.pink=Pink
color.yellow=Gul
color.white=Hvid
color.brown=Brun
color.brightPink=Lyserød
//Dyes
dye.black=Sort
dye.darkBlu=Blå
dye.brown=Brun
dye.darkGreen=Grøn
dye.darkAqua=Cyan
dye.darkRed=Mørkerød
dye.purple=Lilla
dye.orange=Orange
dye.grey=Lysegrå
dye.darkGrey=Mørkegrå
dye.indigo=Lyseblå
dye.brightGreen=Lime
dye.aqua=Aqua
dye.red=Rød
dye.brightPink=Pink
dye.pink=Magenta
dye.yellow=Gul
dye.white=Hvid
//Reactor Logic modes
reactor.disabled=Deaktiveret
reactor.disabled.desc=Vil ikke udgive et rødstenssignal
reactor.ready=Klar til at tænde
reactor.ready.desc=Reaktoren er nået det nødvendige varmeniveau til at tænde
reactor.capacity=Varmekapacitet mødt
reactor.capacity.desc=Reaktorens kernevarmekapacitet er blevet mødt
reactor.depleted=Utilstrækkelig Brændstof
reactor.depleted.desc=Reaktoren har utilstrækkelig brændstof til at vedligeholde en reaktion
//Creative tab
itemGroup.tabMekanism=Mekanism
//NEI stuff
nei.chemicalInjectionChamber=K. Injektionskammer
nei.rotaryCondensentrator=R. Condensentrator
//**********//
//GENERATORS//
//**********//
//Items
item.SolarPanel.name=Solpanel
item.Hohlraum.name=Hohlraum
//Generators
tile.Generator.HeatGenerator.name=Varmegenerator
tile.Generator.SolarGenerator.name=Solgenerator
tile.Generator.GasGenerator.name=Gasbrændende Generator
tile.Generator.BioGenerator.name=Bio-generator
tile.Generator.AdvancedSolarGenerator.name=Avanceret Solgenerator
tile.Generator.WindTurbine.name=Vindturbine
tile.Reactor.ReactorController.name=Reaktor-controller
tile.Reactor.ReactorFrame.name=Reaktorindramning
tile.Reactor.ReactorNeutronCapturePlate.name=Neutronfanger-plade
tile.Reactor.ReactorInOutPort.name=Reaktor-port
tile.Reactor.ReactorLogicAdapter.name=Reaktorlogiks-adapter
tile.ReactorGlass.ReactorGlass.name=Reaktorglas
tile.ReactorGlass.ReactorLaserFocusMatrix.name=Laserfokus-matrice
//Gui text
gui.heatGenerator.fuel=Brændstof
gui.solarGenerator.sun=Sol
gui.bioGenerator.bioFuel=Bio-brændsel
gui.electrolyticSeparator.dump=Udstød
gui.passive=Luftkølet
gui.active=Vandkølet
gui.minInject=Min. injektionssats
gui.ignition=Tændingstemp.
gui.maxPlasma=Maks. Plasma-temp.
gui.maxCasing=Maks. Casing-temp.
gui.passiveGeneration=Passiv Generering
gui.steamProduction=Dampproduktion
//*****//
//TOOLS//
//*****//
//Vanilla Paxels
item.WoodPaxel.name=Træ-paxel
item.StonePaxel.name=Sten-paxel
item.IronPaxel.name=Jern-paxel
item.DiamondPaxel.name=Diamant-paxel
item.GoldPaxel.name=Guld-paxel
//Obsidian
item.ObsidianHelmet.name=Obsidianhjelm
item.ObsidianChestplate.name=Obsidianbrystplade
item.ObsidianLeggings.name=Obsidianbukser
item.ObsidianBoots.name=Obsidianstøvler
item.ObsidianPaxel.name=Obsidian-paxel
item.ObsidianPickaxe.name=Obsidianhakke
item.ObsidianAxe.name=Obsidianøkse
item.ObsidianShovel.name=Obsidianspade
item.ObsidianHoe.name=Obsidianlugejern
item.ObsidianSword.name=Obsidiansværd
//Lapis Lazuli
item.LazuliHelmet.name=Lapis Lazuli-hjelm
item.LazuliChestplate.name=Lapis Lazuli-brystplate
item.LazuliLeggings.name=Lapis Lazuli-bukser
item.LazuliBoots.name=Lapis Lazuli-støvler
item.LazuliPaxel.name=Lapis Lazuli-paxel
item.LazuliPickaxe.name=Lapis Lazuli-hakke
item.LazuliAxe.name=Lapis Lazuli-økse
item.LazuliShovel.name=Lapis Lazuli-spade
item.LazuliHoe.name=Lapis Lazuli-lugejern
item.LazuliSword.name=Lapis Lazuli-sværd
//Osmium
item.OsmiumHelmet.name=Osmiumhjelm
item.OsmiumChestplate.name=Osmiumbrystplade
item.OsmiumLeggings.name=Osmiumbukser
item.OsmiumBoots.name=Osmiumstøvler
item.OsmiumPaxel.name=Osmium-paxel
item.OsmiumPickaxe.name=Osmiumhakke
item.OsmiumAxe.name=Osmiumøkse
item.OsmiumShovel.name=Osmiumspade
item.OsmiumHoe.name=Osmiumlugejern
item.OsmiumSword.name=Osmiumsværd
//Bronze
item.BronzeHelmet.name=Bronzehjelm
item.BronzeChestplate.name=Bronzebrystplade
item.BronzeLeggings.name=Bronzebukser
item.BronzeBoots.name=Bronzestøvler
item.BronzePaxel.name=Bronze-paxel
item.BronzePickaxe.name=Bronzehakke
item.BronzeAxe.name=Bronzeøkse
item.BronzeShovel.name=Bronzespade
item.BronzeHoe.name=Bronzelugejern
item.BronzeSword.name=Bronzesværd
//Glow
item.GlowstoneHelmet.name=Glødestenshjelm
item.GlowstoneChestplate.name=Glødestensbrystplade
item.GlowstoneLeggings.name=Glødestensbukser
item.GlowstoneBoots.name=Glødestensstøvler
item.GlowstonePaxel.name=Glødestens-paxel
item.GlowstonePickaxe.name=Glødestenshakke
item.GlowstoneAxe.name=Glødestensøkse
item.GlowstoneShovel.name=Glødestensspade
item.GlowstoneHoe.name=Glødestenslugejern
item.GlowstoneSword.name=Glødestenssværd
//Steel
item.SteelHelmet.name=Stålhjelm
item.SteelChestplate.name=Stålbrystplade
item.SteelLeggings.name=Stålbukser
item.SteelBoots.name=Stålstøvler
item.SteelPaxel.name=Stål-paxel
item.SteelPickaxe.name=Stålhakke
item.SteelAxe.name=Ståløkse
item.SteelShovel.name=Stålspade
item.SteelHoe.name=Stållugejern
item.SteelSword.name=Stålsværd
//Config Gui
mekanism.configgui.ctgy.tools.general=Generelt
mekanism.configgui.ctgy.tools.armor=Rustningsbalance
mekanism.configgui.ctgy.tools.tools=Værktøjsbalance
//Config Tooltips
mekanism.configgui.ctgy.tools.general.tooltip=Indstillinger vedr. MekanismTools' generelle konfiguration.
mekanism.configgui.ctgy.tools.armor.tooltip=Indstillinger vedr. beskyttelsesværdier og balance for MekanismTools rustninger.
mekanism.configgui.ctgy.tools.tools.tooltip=Indstillinger vedr. effektivitetsværdier og balance for MekanismTools værktøj.

View file

@ -598,6 +598,7 @@ gui.digitalMiner.missingBlock=Missing block
//Recipe names
recipe.mekanismShaped=Shaped
recipe.mekanismShapeless=Shapeless
//Item and block tooltip text
tooltip.configurator.configurate=Configurate

View file

@ -1,4 +1,4 @@
//********//
//********//
//MEKANISM//
//********//
@ -51,7 +51,7 @@ item.BioFuel.name=Биотопливо
item.BasicControlCircuit.name=Основная схема управления
item.AdvancedControlCircuit.name=Продвинутая схема управления
item.EliteControlCircuit.name=Элитная схема управления
item.UltimateControlCircuit.name=Максимальная схема управления
item.UltimateControlCircuit.name=Совершенная схема управления
//Gas Tank
tile.GasTank.GasTank.name=Газовый баллон
@ -137,13 +137,13 @@ tile.MachineBlock3.SolarNeutronActivator.name=Активатор солнечн
tile.MachineBlock3.Oredictionificator.name=Унификатор словаря руд
//Plastic
tile.PlasticBlock.name=пластиковый блок
tile.SlickPlasticBlock.name=гладкий пластиковый блок
tile.GlowPlasticBlock.name=пластиковый светящийся блок
tile.ReinforcedPlasticBlock.name=укреплённый пластиковый блок
tile.RoadPlasticBlock.name=пластиковый путь
tile.PlasticBlock.name=Пластиковый блок
tile.SlickPlasticBlock.name=Пладкий пластиковый блок
tile.GlowPlasticBlock.name=Пластиковый светящийся блок
tile.ReinforcedPlasticBlock.name=Укреплённый пластиковый блок
tile.RoadPlasticBlock.name=Пластиковый путь
tile.PlasticFence.name=пластиковый забор
tile.PlasticFence.name=Пластиковый забор
//Infuse types
infuse.carbon=Углерод
@ -163,30 +163,30 @@ tile.OreBlock.TinOre.name=Оловянная руда
item.MultipartTransmitter.BasicPressurizedTube.name=Основная герметичная труба
item.MultipartTransmitter.AdvancedPressurizedTube.name=Продвинутая герметичная труба
item.MultipartTransmitter.ElitePressurizedTube.name=Элитная герметичная труба
item.MultipartTransmitter.UltimatePressurizedTube.name=Максимальная герметичная труба
item.MultipartTransmitter.UltimatePressurizedTube.name=Совершенная герметичная труба
item.MultipartTransmitter.BasicUniversalCable.name=Основной универсальный провод
item.MultipartTransmitter.AdvancedUniversalCable.name=Продвинутый универсальный провод
item.MultipartTransmitter.EliteUniversalCable.name=Элитный универсальный провод
item.MultipartTransmitter.UltimateUniversalCable.name=Максимальный универсальный провод
item.MultipartTransmitter.UltimateUniversalCable.name=Совершенный универсальный провод
item.MultipartTransmitter.BasicMechanicalPipe.name=Основная механическая труба
item.MultipartTransmitter.AdvancedMechanicalPipe.name=Продвинутая механическая труба
item.MultipartTransmitter.EliteMechanicalPipe.name=Элитная механическая труба
item.MultipartTransmitter.UltimateMechanicalPipe.name=Максимальная механическая труба
item.MultipartTransmitter.UltimateMechanicalPipe.name=Совершенная механическая труба
item.MultipartTransmitter.BasicLogisticalTransporter.name=Основной логистический транспортер
item.MultipartTransmitter.AdvancedLogisticalTransporter.name=Продвинутый логистический транспортер
item.MultipartTransmitter.EliteLogisticalTransporter.name=Элитный логистический транспортер
item.MultipartTransmitter.UltimateLogisticalTransporter.name=Максимальный логистический транспортер
item.MultipartTransmitter.UltimateLogisticalTransporter.name=Совершенный логистический транспортер
item.MultipartTransmitter.RestrictiveTransporter.name=Ограничительный транспортер
item.MultipartTransmitter.DiversionTransporter.name=Отклоняющий транспортер
//Glow Panel
item.GlowPanel.name=светящийся полублок
item.GlowPanel.name=Cветящийся полублок
//Energy Cubes
tile.EnergyCubeBasic.name=Основной энергетический куб
tile.EnergyCubeAdvanced.name=Продвинутый энергетический куб
tile.EnergyCubeElite.name=Элитный энергетический куб
tile.EnergyCubeUltimate.name=Максимальный энергетический куб
tile.EnergyCubeUltimate.name=Совершенный энергетический куб
tile.EnergyCubeCreative.name=Творческий энергетический куб
//Factory Installers
@ -237,13 +237,13 @@ item.silverCrystal.name=Серебряный кристалл
item.leadCrystal.name=Свинцовый кристалл
//Dirty Dust
item.dirtyIronDust.name=Грязная железная пыль
item.dirtyGoldDust.name=Грязная золотая пыль
item.dirtyOsmiumDust.name=Грязная осмиевая пыль
item.dirtyCopperDust.name=Грязная медная пыль
item.dirtyTinDust.name=Грязная оловянная пыль
item.dirtySilverDust.name=Грязная серебряная пыль
item.dirtyLeadDust.name=Грязная свинцовая пыль
item.dirtyIronDust.name=Загрязненная железная пыль
item.dirtyGoldDust.name=Загрязненная золотая пыль
item.dirtyOsmiumDust.name=Загрязненная осмиевая пыль
item.dirtyCopperDust.name=Загрязненная медная пыль
item.dirtyTinDust.name=Загрязненная оловянная пыль
item.dirtySilverDust.name=Загрязненная серебряная пыль
item.dirtyLeadDust.name=Загрязненная свинцовая пыль
//Ingots
item.obsidianIngot.name=Обсидиановый слиток
@ -271,7 +271,7 @@ gas.brine=Газообразная рапа
gas.deuterium=Дейтерий
gas.tritium=Тритий
gas.lithium=Литий
gas.fusionFuelDT=Д топливо
gas.fusionFuelDT=Дейтерий-тритиевое топливо
gas.iron=Расплавленное железо
gas.gold=Расплавленное золото
@ -310,7 +310,7 @@ fluid.heavyWater=Тяжёлая вода
fluid.lithium=Жидкий литий
fluid.deuterium=Жидкий дейтерий
fluid.tritium=Жидкий тритий
fluid.fusionFuelDT=Жидкое д топливо
fluid.fusionFuelDT=Жидкое дейтерий-тритиевое топливо
//OreGas names
oregas.iron=Железная руда
@ -340,7 +340,7 @@ transmission.Heat=Нагрев
update.consider=Подумайте о обновлении до версии
update.newFeatures=Нововведения
update.visit=Посетите
update.toDownload=чтобы загрузить
update.toDownload=Чтобы загрузить
update.devBuild=Используется сборка разработчиков
update.outdated=Используется устаревшая версия одного или нескольких модулей
@ -435,20 +435,20 @@ gui.noDelay=Без задержки
gui.fuel=Топливо
gui.heat=Нагрев
gui.formed=Сформировано
gui.incomplete=Незавершено
gui.incomplete=Незавершенно
gui.inductionMatrix=Индукционная матрица
gui.matrixStats=Статистика матрицы
gui.main=Главное
gui.outputting=Выход
gui.dimensions=Dimensions
gui.dimensions=Измерения
gui.constituents=Составляющие
gui.cells=ячейки
gui.providers=поставщики
gui.cells=Ячейки
gui.providers=Поставщики
gui.structure=Структура
gui.dynamicTank=Динам. резервуар
gui.visuals=Visuals
gui.visuals=Визуальные
gui.noEject=Невозможно извлечь
gui.undefined=Неопределено
gui.undefined=Неопределенно
gui.owner=Владелец
gui.public=Общественный
gui.private=Частный
@ -456,7 +456,7 @@ gui.add=Добавить
gui.set=Установить
gui.freq=Частота
gui.security=Безопасность
gui.index=Index
gui.index=Индекс
gui.producing=Производится
gui.maxOutput=Макс. выход
gui.storing=Накапливается
@ -466,13 +466,13 @@ gui.needed=Нужно
gui.noRecipe=Нет рецепта
gui.conflict=Конфликт
gui.height=Высота
gui.mult=Mult
gui.mult=Мульти
gui.chunk=Чанк
gui.vibrating=Вибрации
gui.abundancy=Избыток
gui.nextItem=След. предмет
gui.lastItem=Послед. предмет
gui.oreDictCompat=Compatible OreDict Key
gui.oreDictCompat=Совместимый OreDict ключ
gui.toggleCooling=Переключить измерение охлаждения
gui.coolingMeasurements=Активное охлаждение
gui.redstoneOutputMode=Режим красного камня
@ -491,9 +491,9 @@ gui.upgrades.effect=Эффект
gui.chemicalInfuser.short=Хим. зарядник
gui.chemicalDissolutionChamber.short=Хим. камера растворения
gui.solarEvaporationController.short=Контроллер солнечного опресн.
gui.solarEvaporationController.short=Контроллер солнечного опреснения
gui.dictionary.noKey=Нет ключа.
gui.dictionary.noKey=Нет ключа
gui.configuration=Конфигурация
gui.config=Настройка
@ -509,13 +509,13 @@ gui.factory.autoSort=Авто-сортировка
//Recipe types
gui.factory.Smelting=Плавящая
gui.factory.Enriching=Обогащающая
gui.factory.Crushing=Дроблящая
gui.factory.Crushing=Дробящая
gui.factory.Compressing=Сжимающая
gui.factory.Combining=Объединяющая
gui.factory.Purifying=Очищающая
gui.factory.Injecting=Впрыскивающая
gui.seismicReader.short=С. считыватель
gui.seismicReader.short=Сейсм. считыватель
gui.seismicReader.solids=Твёрдые
gui.seismicReader.fluids=Жидкости
gui.seismicReader.reading=Считывание
@ -527,7 +527,7 @@ gui.oredictFilter.noKey=Нет введённых ключей
gui.oredictFilter.sameKey=Одинаковый ключ
gui.modIDFilter=Фильтр по ID мода
gui.modIDFilter.noID=Нет введённых ID
gui.modIDFilter.noID=Не введен ID
gui.modIDFilter.sameID=Одинаковый ID
gui.oredictionificatorFilter=Фильтр унификатора словаря руд
@ -564,7 +564,7 @@ gui.password.identical=Идентичный
gui.password.invalid=Неправильный
gui.password=Пароль
gui.logisticalSorter.default=По-умолч.
gui.logisticalSorter.default=По умолчанию
gui.logisticalSorter.auto=Авто
gui.logisticalSorter.roundRobin=Цикл
@ -576,7 +576,7 @@ gui.teleporter.noFrame=Нет каркаса
gui.teleporter.noLink=Нет соединения
gui.teleporter.exceeds=Соединений > 2
gui.teleporter.needsEnergy=Требуется энергия
gui.teleporter.noAccess=У Вас нет доступа к этому телепорту.
gui.teleporter.noAccess=У Вас нет доступа к этому телепорту
gui.teleporter.noFreq=Нет частоты
gui.digitalMinerConfig=Настройки цифрового шахтёра
@ -587,7 +587,7 @@ gui.digitalMiner.reset=Сброс
gui.digitalMiner.silkTouch=Шёлковое касание
gui.digitalMiner.pull=Собирать
gui.digitalMiner.silk=Шёлк
gui.digitalMiner.toMine=To mine
gui.digitalMiner.toMine=Копать
gui.digitalMiner.running=Работает
gui.digitalMiner.inverse="Обратный" режим
gui.digitalMiner.requireReplace=Требуется замена
@ -609,7 +609,7 @@ tooltip.configurator.viewMode=Текущий режим: %s
tooltip.configurator.unauth=Этот сундук закрыт
tooltip.configurator.noLink=Нет соединения
tooltip.configurator.linkMsg=Связан с
tooltip.configurator.dim=измерение
tooltip.configurator.dim=Измерение
tooltip.configurator.setLink=Установить соединение на блок
tooltip.configurator.plenisherReset=Сбросить расчёт жидкостного снабжателя
tooltip.configurator.inductionPortMode=Режим передачи индукционного порта переключен на
@ -625,14 +625,14 @@ tooltip.auth=Проверенный
tooltip.locked=Закрытый
tooltip.recipeType=Тип рецепта
tooltip.hold=Зажмите
tooltip.forDesc=для описания
tooltip.forDetails=для деталей
tooltip.forDesc=Для описания
tooltip.forDetails=Для деталей
tooltip.fireMode=Режим огня
tooltip.capacity=Ёмкость
tooltip.pumpRate=Скорость откачки
tooltip.items=Предметы
tooltip.blocks=Блоки
tooltip.universal=любые
tooltip.universal=Любые
tooltip.fluids=Жидкости
tooltip.gasses=Газы
tooltip.capableTrans=Подходит для передачи
@ -645,13 +645,13 @@ tooltip.mode=Режим
tooltip.efficiency=Эффективность
tooltip.modeToggle=Режим изменён на
tooltip.flowing=Текущий
tooltip.yes=да
tooltip.no=нет
tooltip.yes=Да
tooltip.no=Нет
tooltip.name=Имя
tooltip.blockData=Данные блока
tooltip.block=Блок
tooltip.meta=Метаданные
tooltip.tile=Tile
tooltip.tile=Плитка
tooltip.keysFound=Ключ(и) найдены
tooltip.noKey=Нет ключа
tooltip.hp=Прочность
@ -663,11 +663,11 @@ tooltip.speed=Скорость
tooltip.portableTank.bucketMode=Режим ведра
tooltip.disassembler.normal=обычный
tooltip.disassembler.slow=медленный
tooltip.disassembler.fast=быстрый
tooltip.disassembler.vein=жила
tooltip.disassembler.off=откл.
tooltip.disassembler.normal=Обычный
tooltip.disassembler.slow=Медленный
tooltip.disassembler.fast=Быстрый
tooltip.disassembler.vein=Жила
tooltip.disassembler.off=Откл.
tooltip.filterCard.got=Получены данные фильтра из %s
tooltip.filterCard.set=Введены данные фильтра типа %s
@ -676,7 +676,7 @@ tooltip.filterCard.logisticalSorter=Логистический сортиров
tooltip.filterCard.digitalMiner=Цифровой шахтёр
tooltip.filterCard.oredictionificator=Унификатор словаря руд
tooltip.balloon=воздушный шар
tooltip.balloon=Воздушный шар
tooltip.jetpack.regular=Обычный
tooltip.jetpack.hover=Зависание
@ -704,10 +704,10 @@ tooltip.LogisticalSorter=Основанный на фильтре, продви
tooltip.RotaryCondensentrator=Механизм, способный конвертировать газы в !nжидкость и наоборот.
tooltip.ChemicalInjectionChamber=Элитный механизм, способный перерабатывать руды в !nчетыре осколка, выступающие в качестве начальной !nстадии 400% переработки руды.
tooltip.ElectrolyticSeparator=Механизм, который использует процесс !nэлектролиза для разделения газа !nна два других газа.
tooltip.PrecisionSawmill=Этот механизм используется для обработки древесины и других !nдеревянных предметов, а также !nдля получения опилков.
tooltip.ChemicalDissolutionChamber=Максимальный механизм используемый для !nхимического растворения всех примесей !nруды, оставляя необработанный расплав.
tooltip.ChemicalWasher=Максимальный механизм, который очищает необработанные !nрасплавленные руды и подготавливает их для кристаллизации.
tooltip.ChemicalCrystalizer=Максимальный механизм, который используется для кристаллизации !nочищенной расплавленной руды в кристаллы.
tooltip.PrecisionSawmill=Этот механизм используется для обработки древесины и других !nдеревянных предметов, а также !nдля получения опилок.
tooltip.ChemicalDissolutionChamber=Совершенный механизм используемый для !nхимического растворения всех примесей !nруды, оставляя необработанный расплав.
tooltip.ChemicalWasher=Совершенный механизм, который очищает необработанные !nрасплавленные руды и подготавливает их для кристаллизации.
tooltip.ChemicalCrystalizer=Совершенный механизм, который используется для кристаллизации !nочищенной расплавленной руды в кристаллы.
tooltip.ChemicalOxidizer=Механизм, который окисляет !nтвёрдые материалы до газа.
tooltip.ChemicalInfuser=Механизм, который производит !nновый газ, путём объединения двух других газов.
tooltip.SeismicVibrator=Механизм, который использует сейсмические колебания для !nпредоставления информации о различных слоях мира.
@ -727,17 +727,17 @@ tooltip.BioGenerator=Генератор, который сжигает орга
tooltip.AdvancedSolarGenerator=Продвинутый генератор, который напрямую !nпоглощает солнечные лучи с небольшой потерей, !nдля производства энергии.
tooltip.WindTurbine=Генератор, который использует силу ветра !nдля производства энергии, с большей эффективностью !nна большой высоте.
tooltip.ReactorGlass=Укреплённое стекло, которое используется !nстроительстве термоядерного реактора.
tooltip.ReactorGlass=Укреплённое стекло, которое используется при !nстроительстве термоядерного реактора.
tooltip.ReactorLaserFocusMatrix=Панель из реакторного стекла, которая !nспособна поглощать оптическую энергию, !nнагревая термоядерный реактор.
tooltip.ReactorController=Блок управления для всего !nтермоядерного реактора.
tooltip.ReactorFrame=Укреплённый каркас, который используется в !nстроительстве термоядерного реактора.
tooltip.ReactorFrame=Укреплённый каркас, который используется при !nстроительстве термоядерного реактора.
tooltip.ReactorNeutronCapturePlate=Блок, который используется как !nдля блокирования излучения термоядерного реактора, так и для !nполучения трития.
tooltip.ReactorPort=Блок укреплённого каркаса, который способен !nуправлять и передачей газа и передачей энергии !nтермоядерного реактора.
tooltip.ReactorPort=Блок укреплённого каркаса, который способен !nуправлять передачей газа и энергии !nтермоядерного реактора.
tooltip.ReactorLogicAdapter=Блок, который может быть использован для !nмониторинга основных функций реактора, используя красный камень.
tooltip.OsmiumOre=Крепкий минерал, который можно найти !nпочти на любой высоте в мире. Он как известно !nимеет множество применений в !nпроизводстве механизмов.
tooltip.CopperOre=Общий проводящий материал, который может быть использован !nв производстве проводов. Имеет способность выдерживать!nвысокие температуры, это делает его необходимым для !nсовременного оборудования.
tooltip.TinOre=Лёгкий, но крепкий проводящий материал, !nкоторый находится немного реже, чем медь.
tooltip.CopperOre=Общий проводящий материал, который может быть использован !nпри производстве проводов. Способность выдерживать!nвысокие температуры, делает его незаменимым в !nсовременном оборудовании.
tooltip.TinOre=Лёгкий, но крепкий проводящий материал, !nкоторый встречается немного реже, чем медь.
//Side data
sideData.None=Нет
@ -765,54 +765,54 @@ fluidedit.fill=Заполнять
fluidedit.empty=Опустошать
//Colors
color.black=Чёрный
color.darkBlue=Тёмно-синий
color.darkGreen=Тёмно-зелёный
color.darkAqua=Тёмно-голбуй
color.darkRed=Тёмно-красный
color.black=Черный
color.darkBlue=Темно-Синий
color.darkGreen=Темно-Зеленый
color.darkAqua=Темно-Голубой
color.darkRed=Темно-Красный
color.purple=Фиолетовый
color.orange=Оранжевый
color.grey=Серый
color.darkGrey=Тёмно-серый
color.darkGrey=Темно-Серый
color.indigo=Индиго
color.brightGreen=Светло-зелёный
color.brightGreen=Светло-Серый
color.aqua=Голубой
color.red=Красный
color.pink=Розовый
color.yellow=Жёлтый
color.yellow=Желтый
color.white=Белый
color.brown=Коричневый
color.brightPink=Светло-розовый
color.brightPink=Светло-Розовый
//Dyes
dye.black=Чёрный
dye.black=Черный
dye.darkBlue=Синий
dye.brown=Коричневый
dye.darkGreen=Зелёный
dye.darkAqua=Бирюзовый
dye.darkRed=Тёмно-красный
dye.darkGreen=Зеленый
dye.darkAqua=Темно-Голубой
dye.darkRed=Темно-Красный
dye.purple=Фиолетовый
dye.orange=Оранжевый
dye.grey=Светло-серый
dye.grey=Светло-Серый
dye.darkGrey=Серый
dye.indigo=Светло-синий
dye.brightGreen=Лаймовый
dye.indigo=Светло-Голубой
dye.brightGreen=Светло-Зеленый
dye.aqua=Голубой
dye.red=Красный
dye.brightPink=Розовый
dye.pink=Сиреневый
dye.yellow=Жёлтый
dye.pink=Пурпурный
dye.yellow=Желтый
dye.white=Белый
//Reactor Logic modes
reactor.disabled=Disabled
reactor.disabled.desc=Will not emit a redstone signal
reactor.ready=Ready for Ignition
reactor.ready.desc=Reactor has reached the required heat level to ignite
reactor.capacity=Heat Capacity Met
reactor.capacity.desc=The reactor's core heat capacity has been met
reactor.depleted=Insufficient Fuel
reactor.depleted.desc=The reactor has insufficient fuel to sustain a reaction
reactor.disabled=Отключен
reactor.disabled.desc=Не излучает редстоун сигнал
reactor.ready=Реактор вот-вот взорвется
reactor.ready.desc=Реактор сильно перегрелся и скоро взорвется
reactor.capacity=Перегрев
reactor.capacity.desc=Ядро реактора перегрелось
reactor.depleted=Недостаточно топлива
reactor.depleted.desc=Реактору не хватает топлива для поддержания реакции
//Creative tab
itemGroup.tabMekanism=Mekanism
@ -837,13 +837,13 @@ tile.Generator.BioGenerator.name=Биогенератор
tile.Generator.AdvancedSolarGenerator.name=Продвинутый солнечный генератор
tile.Generator.WindTurbine.name=Ветровая турбина
tile.Reactor.ReactorController.name=Реакторный контроллер
tile.Reactor.ReactorFrame.name=Реакторный каркас
tile.Reactor.ReactorController.name=Панель управления реактором
tile.Reactor.ReactorFrame.name=Каракас реактора
tile.Reactor.ReactorNeutronCapturePlate.name=Пластина нейтронного захвата
tile.Reactor.ReactorPort.name=Реакторный порт
tile.Reactor.ReactorLogicAdapter.name=Реакторный логический адаптер
tile.Reactor.ReactorPort.name=Порт реактора
tile.Reactor.ReactorLogicAdapter.name=Логический адаптер реактора
tile.ReactorGlass.ReactorGlass.name=Реакторное стекло
tile.ReactorGlass.ReactorGlass.name=Стекло реактора
tile.ReactorGlass.ReactorLaserFocusMatrix.name=Матрица лазерного фокуса
//Gui text
@ -867,18 +867,18 @@ gui.steamProduction=Производство пара
//*****//
//Vanilla Paxels
item.WoodPaxel.name=Деревянный мульти-инмтрумент
item.StonePaxel.name=Каменный мульти-инмтрумент
item.IronPaxel.name=Железный мульти-инмтрумент
item.DiamondPaxel.name=Алмазный мульти-инмтрумент
item.GoldPaxel.name=Золотой мульти-инмтрумент
item.WoodPaxel.name=Деревянный мульти-инcтрумент
item.StonePaxel.name=Каменный мульти-инcтрумент
item.IronPaxel.name=Железный мульти-инcтрумент
item.DiamondPaxel.name=Алмазный мульти-инcтрумент
item.GoldPaxel.name=Золотой мульти-инcтрумент
//Obsidian
item.ObsidianHelmet.name=Обсидиановый шлем
item.ObsidianChestplate.name=Обсидиановая кираса
item.ObsidianLeggings.name=Обсидиановые поножи
item.ObsidianBoots.name=Обсидиановые ботинки
item.ObsidianPaxel.name=Обсидиановый мульти-инмтрумент
item.ObsidianPaxel.name=Обсидиановый мульти-инcтрумент
item.ObsidianPickaxe.name=Обсидиановая кирка
item.ObsidianAxe.name=Обсидиановый топор
item.ObsidianShovel.name=Обсидиановая лопата
@ -890,7 +890,7 @@ item.LazuliHelmet.name=Лазуритовый шлем
item.LazuliChestplate.name=Лазуритовая кираса
item.LazuliLeggings.name=Лазуритовые поножи
item.LazuliBoots.name=Лазуритовые ботинки
item.LazuliPaxel.name=Лазуритовый мульти-инмтрумент
item.LazuliPaxel.name=Лазуритовый мульти-инcтрумент
item.LazuliPickaxe.name=Лазуритовая кирка
item.LazuliAxe.name=Лазуритовый топор
item.LazuliShovel.name=Лазуритовая лопата
@ -902,7 +902,7 @@ item.OsmiumHelmet.name=Осмиевый шлем
item.OsmiumChestplate.name=Осмиевая кираса
item.OsmiumLeggings.name=Осмиевые поножи
item.OsmiumBoots.name=Осмиевые ботинки
item.OsmiumPaxel.name=Осмиевый мульти-инмтрумент
item.OsmiumPaxel.name=Осмиевый мульти-инcтрумент
item.OsmiumPickaxe.name=Осмиевая кирка
item.OsmiumAxe.name=Осмиевый топор
item.OsmiumShovel.name=Осмиевая лопата
@ -914,7 +914,7 @@ item.BronzeHelmet.name=Бронзовый шлем
item.BronzeChestplate.name=Бронзовая кираса
item.BronzeLeggings.name=Бронзовые поножи
item.BronzeBoots.name=Бронзовые ботинки
item.BronzePaxel.name=Бронзовый мульти-инмтрумент
item.BronzePaxel.name=Бронзовый мульти-инcтрумент
item.BronzePickaxe.name=Бронзовая кирка
item.BronzeAxe.name=Бронзовый топор
item.BronzeShovel.name=Бронзовая лопата
@ -926,7 +926,7 @@ item.GlowstoneHelmet.name=Шлем из светящегося камня
item.GlowstoneChestplate.name=Кираса из светящегося камня
item.GlowstoneLeggings.name=Поножи из светящегося камня
item.GlowstoneBoots.name=Ботинки из светящегося камня
item.GlowstonePaxel.name=Мульти-инмтрумент из светящегося камня
item.GlowstonePaxel.name=Мульти-инcтрумент из светящегося камня
item.GlowstonePickaxe.name=Кирка из светящегося камня
item.GlowstoneAxe.name=Топор из светящегося камня
item.GlowstoneShovel.name=Лопата из светящегося камня
@ -938,7 +938,7 @@ item.SteelHelmet.name=Стальной шлем
item.SteelChestplate.name=Стальная кираса
item.SteelLeggings.name=Стальные поножи
item.SteelBoots.name=Стальные ботинки
item.SteelPaxel.name=Стальной мульти-инмтрумент
item.SteelPaxel.name=Стальной мульти-инcтрумент
item.SteelPickaxe.name=Стальная кирка
item.SteelAxe.name=Стальной топор
item.SteelShovel.name=Стальная лопата