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 CCLIB_version=1.1.3.136
NEI_version=1.0.4.101 NEI_version=1.0.4.101
CCC_version=1.0.6.39 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 check == wild;
} }
return wild.getItem() == check.getItem() && (wild.getItemDamage() == OreDictionary.WILDCARD_VALUE || wild.getItemDamage() == check.getItemDamage()); 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 @Override
protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY) protected void drawGuiContainerBackgroundLayer(float partialTick, int mouseX, int mouseY)
{ {
super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY);
mc.renderEngine.bindTexture(tileEntity.tier.guiLocation); mc.renderEngine.bindTexture(tileEntity.tier.guiLocation);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
int guiWidth = (width - xSize) / 2; int guiWidth = (width - xSize) / 2;
@ -129,6 +127,8 @@ public class GuiFactory extends GuiMekanism
{ {
displayGauge(8, 78, tileEntity.getScaledGasLevel(160), 5, tileEntity.gasTank.getGas()); 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) 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.registerRecipeHandler(new ChemicalInjectionChamberRecipeHandler());
API.registerUsageHandler(new ChemicalInjectionChamberRecipeHandler()); API.registerUsageHandler(new ChemicalInjectionChamberRecipeHandler());
API.registerRecipeHandler(new MekanismRecipeHandler());
API.registerUsageHandler(new MekanismRecipeHandler());
API.registerRecipeHandler(new ChemicalOxidizerRecipeHandler()); API.registerRecipeHandler(new ChemicalOxidizerRecipeHandler());
API.registerUsageHandler(new ChemicalOxidizerRecipeHandler()); API.registerUsageHandler(new ChemicalOxidizerRecipeHandler());
@ -86,6 +83,12 @@ public class NEIMekanismConfig implements IConfigureNEI
API.registerRecipeHandler(new SolarNeutronRecipeHandler()); API.registerRecipeHandler(new SolarNeutronRecipeHandler());
API.registerUsageHandler(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(GuiEnrichmentChamber.class, 16, 6);
API.setGuiOffset(GuiOsmiumCompressor.class, 16, 6); API.setGuiOffset(GuiOsmiumCompressor.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; 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); Mekanism.logger.error("BoxBlacklist.txt: Couldn't parse blacklist data on line " + line);
continue; 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); 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.append("# Use this file to tell Mekanism which blocks should not be picked up by a cardboard box.");
writer.newLine(); 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.newLine();
writer.append("# stone:0"); writer.append("# minecraft:stone 0");
writer.flush(); writer.flush();
writer.close(); writer.close();

View file

@ -4,10 +4,15 @@ import java.util.List;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.RecipeHandler.Recipe; 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.inputs.MachineInput;
import mekanism.common.recipe.machines.MachineRecipe; 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.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage;
import cpw.mods.fml.common.registry.GameRegistry;
public class IMCHandler public class IMCHandler
{ {
@ -21,10 +26,58 @@ public class IMCHandler
try { try {
boolean found = false; boolean found = false;
boolean delete = 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; delete = true;
} }
@ -51,11 +104,11 @@ public class IMCHandler
} }
} }
else { else {
Mekanism.logger.error("[Mekanism] " + msg.getSender() + " attempted to " + (delete ? "remove" : "add") + "recipe of type " + type.getRecipeName() + " with an invalid output."); Mekanism.logger.error("[Mekanism] " + msg.getSender() + " attempted to " + (delete ? "remove" : "add") + " recipe of type " + type.getRecipeName() + " with an invalid output.");
} }
} }
else { else {
Mekanism.logger.error("[Mekanism] " + msg.getSender() + " attempted to " + (delete ? "remove" : "add") + "recipe of type " + type.getRecipeName() + " with an invalid input."); Mekanism.logger.error("[Mekanism] " + msg.getSender() + " attempted to " + (delete ? "remove" : "add") + " recipe of type " + type.getRecipeName() + " with an invalid input.");
} }
found = true; found = true;

View file

@ -1,16 +1,15 @@
package mekanism.common; package mekanism.common;
import codechicken.multipart.handler.MultipartProxy; import java.io.File;
import com.mojang.authlib.GameProfile; import java.util.ArrayList;
import cpw.mods.fml.client.event.ConfigChangedEvent; import java.util.HashMap;
import cpw.mods.fml.common.*; import java.util.HashSet;
import cpw.mods.fml.common.Mod.EventHandler; import java.util.Iterator;
import cpw.mods.fml.common.Mod.Instance; import java.util.List;
import cpw.mods.fml.common.event.*; import java.util.Map;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import java.util.Set;
import cpw.mods.fml.common.network.NetworkRegistry; import java.util.UUID;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.MekanismAPI; import mekanism.api.MekanismAPI;
@ -32,7 +31,11 @@ import mekanism.api.transmitters.TransmitterNetworkRegistry;
import mekanism.client.ClientTickHandler; import mekanism.client.ClientTickHandler;
import mekanism.common.EnergyNetwork.EnergyTransferEvent; import mekanism.common.EnergyNetwork.EnergyTransferEvent;
import mekanism.common.FluidNetwork.FluidTransferEvent; 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.IChunkLoadHandler;
import mekanism.common.base.IFactory.RecipeType; import mekanism.common.base.IFactory.RecipeType;
import mekanism.common.base.IModule; 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.PathfinderCache;
import mekanism.common.content.transporter.TransporterManager; import mekanism.common.content.transporter.TransporterManager;
import mekanism.common.content.turbine.SynchronizedTurbineData; 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.Frequency;
import mekanism.common.frequency.FrequencyManager; import mekanism.common.frequency.FrequencyManager;
import mekanism.common.integration.MekanismHooks; 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.PacketType;
import mekanism.common.network.PacketTransmitterUpdate.TransmitterUpdateMessage; import mekanism.common.network.PacketTransmitterUpdate.TransmitterUpdateMessage;
import mekanism.common.recipe.BinRecipe; import mekanism.common.recipe.BinRecipe;
import mekanism.common.recipe.MekanismRecipe;
import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.RecipeHandler;
import mekanism.common.recipe.RecipeHandler.Recipe; 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.inputs.ItemStackInput;
import mekanism.common.recipe.machines.SmeltingRecipe; import mekanism.common.recipe.machines.SmeltingRecipe;
import mekanism.common.recipe.outputs.ItemStackOutput; 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;
import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.common.util.MekanismUtils.ResourceType;
import mekanism.common.voice.VoiceServerManager; import mekanism.common.voice.VoiceServerManager;
@ -89,21 +105,42 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.RecipeSorter.Category; import net.minecraftforge.oredict.RecipeSorter.Category;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import rebelkeithy.mods.metallurgy.api.IOreInfo; import rebelkeithy.mods.metallurgy.api.IOreInfo;
import rebelkeithy.mods.metallurgy.api.MetallurgyAPI; import rebelkeithy.mods.metallurgy.api.MetallurgyAPI;
import codechicken.multipart.handler.MultipartProxy;
import java.io.File; import com.mojang.authlib.GameProfile;
import java.util.*;
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 * Mekanism - a Minecraft mod
* @author AidanBrady * @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;" + dependencies = "after:ForgeMultipart;after:BuildCraft;after:BuildCraftAPI;after:IC2;after:CoFHCore;" +
"after:ComputerCraft;after:Galacticraft API;after:MetallurgyCore") "after:ComputerCraft;after:Galacticraft API;after:MetallurgyCore")
public class Mekanism public class Mekanism
@ -129,7 +166,7 @@ public class Mekanism
public static Configuration configuration; public static Configuration configuration;
/** Mekanism version number */ /** 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 */ /** MultiblockManagers for various structrures */
public static MultiblockManager<SynchronizedTankData> tankManager = new MultiblockManager<SynchronizedTankData>("dynamicTank"); public static MultiblockManager<SynchronizedTankData> tankManager = new MultiblockManager<SynchronizedTankData>("dynamicTank");
@ -185,348 +222,348 @@ public class Mekanism
public void addRecipes() public void addRecipes()
{ {
//Storage Recipes //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) "***", "***", "***", 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) "*", 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" "***", "***", "***", 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) "*", 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" "***", "***", "***", 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) "*", 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" "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) "*", 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" "***", "***", "***", 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) "*", 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" "***", "***", "***", 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) "*", 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" "***", "***", "***", 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) "*", 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" "***", "***", "***", 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) "*", 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 "**", "**", Character.valueOf('*'), MekanismItems.Salt
})); }));
//Base Recipes //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 "***", "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() " 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 "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) "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) "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) "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) "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" " 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" " 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" " 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" " 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" "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" "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" "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 "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 " 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 "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) "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 " 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" "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" " 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) "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" " 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) "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 " 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" " 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) " 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() "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) " 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" " 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) " 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) "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) "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(), "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 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(), "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) 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() "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 "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) " 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" " 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 "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 "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) "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 "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" "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" "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 "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) "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" "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) "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) "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 "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) "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) "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() "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() "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) " 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() "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) "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(), "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) 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) "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) "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" "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) "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" " 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) "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() " 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) " 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" "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" "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" "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 "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" "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" "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) "C", "F", Character.valueOf('C'), new ItemStack(MekanismBlocks.MachineBlock, 1, 13), Character.valueOf('F'), new ItemStack(MekanismBlocks.MachineBlock2, 1, 14)
})); }));
//Energy Cube recipes //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) "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) "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) "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) "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 //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" "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) "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) "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) "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 //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" "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) "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) "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) "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 //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" "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" "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" "ACA", Character.valueOf('C'), new ItemStack(MekanismItems.ControlCircuit, 1, 2), Character.valueOf('A'), "alloyUltimate"
})); }));
//Factory recipes //Factory recipes
for(RecipeType type : RecipeType.values()) 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() "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) "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) "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()); CraftingManager.getInstance().getRecipeList().add(new BinRecipe());
//Transmitters //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" "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) "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) "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) "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 "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) "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) "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) "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" "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) "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) "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) "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) "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) "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) "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) "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 "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 "RRR", "SBS", "RRR", Character.valueOf('R'), "dustRedstone", Character.valueOf('S'), "ingotSteel", Character.valueOf('B'), Blocks.iron_bars
})); }));
//Plastic stuff //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) "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) "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) "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) "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 "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) "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++) 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 "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 "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++) 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 Items.leather, Items.string, "dye" + EnumColor.DYES[i].dyeName
})); }));
for(int j = 0; j < EnumColor.DYES.length; j++) 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 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 " 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 " 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 " 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 " 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 " 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) 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" " 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) "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); FuelHandler.addGas(GasRegistry.getGas("hydrogen"), 1, general.FROM_H2);
//RecipeSorter registrations //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, ""); RecipeSorter.register("bin", BinRecipe.class, Category.SHAPELESS, "");
} }
@ -1023,8 +1061,8 @@ public class Mekanism
GameRegistry.registerTileEntity(TileEntitySolarEvaporationValve.class, "SalinationValve"); GameRegistry.registerTileEntity(TileEntitySolarEvaporationValve.class, "SalinationValve");
GameRegistry.registerTileEntity(TileEntitySolarEvaporationBlock.class, "SalinationTank"); GameRegistry.registerTileEntity(TileEntitySolarEvaporationBlock.class, "SalinationTank");
GameRegistry.registerTileEntity(TileEntityEntangledBlock.class, "EntangledBlock"); GameRegistry.registerTileEntity(TileEntityEntangledBlock.class, "EntangledBlock");
GameRegistry.registerTileEntity(TileEntityBoiler.class, "SteamBoiler"); GameRegistry.registerTileEntity(TileEntityThermoelectricBoiler.class, "ThermoelectricBoiler");
GameRegistry.registerTileEntity(TileEntityBoilerValve.class, "BoilerValve"); GameRegistry.registerTileEntity(TileEntityThermoelectricValve.class, "ThermoelectricValve");
//Load tile entities that have special renderers. //Load tile entities that have special renderers.
proxy.registerSpecialTileEntities(); proxy.registerSpecialTileEntities();

View file

@ -950,7 +950,7 @@ public class BlockBasic extends Block implements IBlockCTM, ICustomBlockIcon
@Override @Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) 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; float motion = 0.7F;

View file

@ -169,7 +169,7 @@ public class BlockCardboardBox extends BlockContainer
@Override @Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) 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; float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D; double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D;

View file

@ -189,7 +189,7 @@ public class BlockEnergyCube extends BlockContainer
@Override @Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) 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; float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D; double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D;

View file

@ -135,7 +135,7 @@ public class BlockGasTank extends BlockContainer
@Override @Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) 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; float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D; 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.PacketElectricChest.ElectricChestPacketType;
import mekanism.common.network.PacketLogisticalSorterGui.LogisticalSorterGuiMessage; import mekanism.common.network.PacketLogisticalSorterGui.LogisticalSorterGuiMessage;
import mekanism.common.network.PacketLogisticalSorterGui.SorterGuiPacket; import mekanism.common.network.PacketLogisticalSorterGui.SorterGuiPacket;
import mekanism.common.recipe.MekanismRecipe; import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.tile.*; import mekanism.common.tile.*;
import mekanism.common.util.LangUtils; import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
@ -690,7 +690,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo
@Override @Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) 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); 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 isElectric;
public boolean hasModel; public boolean hasModel;
public boolean supportsUpgrades; 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) 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); return machines.isEnabled(this.name);
} }
public void addRecipes(Collection<MekanismRecipe> recipes) public void addRecipes(Collection<ShapedMekanismRecipe> recipes)
{ {
machineRecipes.addAll(recipes); machineRecipes.addAll(recipes);
} }
public void addRecipe(MekanismRecipe recipe) public void addRecipe(ShapedMekanismRecipe recipe)
{ {
machineRecipes.add(recipe); machineRecipes.add(recipe);
} }
public Collection<MekanismRecipe> getRecipes() public Collection<ShapedMekanismRecipe> getRecipes()
{ {
return machineRecipes; 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) public boolean recolourBlock(World world, int x, int y, int z, ForgeDirection side, int colour)
{ {
int meta = world.getBlockMetadata(x, y, z); int meta = world.getBlockMetadata(x, y, z);
if (meta != (15 - colour))
if(meta != (15 - colour))
{ {
world.setBlockMetadataWithNotify(x, y, z, 15-colour, 3); world.setBlockMetadataWithNotify(x, y, z, 15-colour, 3);
return true; return true;
} }
return false; return false;
} }

View file

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

View file

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

View file

@ -2,7 +2,7 @@ package mekanism.common.content.boiler;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
import mekanism.common.content.boiler.SynchronizedBoilerData.ValveData; import mekanism.common.content.boiler.SynchronizedBoilerData.ValveData;
import mekanism.common.tile.TileEntityBoiler; import mekanism.common.tile.TileEntityThermoelectricBoiler;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
@ -11,9 +11,9 @@ import net.minecraftforge.fluids.IFluidTank;
public abstract class BoilerTank implements IFluidTank public abstract class BoilerTank implements IFluidTank
{ {
public TileEntityBoiler steamBoiler; public TileEntityThermoelectricBoiler steamBoiler;
public BoilerTank(TileEntityBoiler tileEntity) public BoilerTank(TileEntityThermoelectricBoiler tileEntity)
{ {
steamBoiler = 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.MultiblockCache;
import mekanism.common.multiblock.MultiblockManager; import mekanism.common.multiblock.MultiblockManager;
import mekanism.common.multiblock.UpdateProtocol; import mekanism.common.multiblock.UpdateProtocol;
import mekanism.common.tile.TileEntityBoiler; import mekanism.common.tile.TileEntityThermoelectricBoiler;
import mekanism.common.tile.TileEntityBoilerValve; import mekanism.common.tile.TileEntityThermoelectricValve;
import net.minecraft.item.ItemStack; 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 WATER_PER_TANK = 16000;
public static final int STEAM_PER_TANK = 160000; public static final int STEAM_PER_TANK = 160000;
public BoilerUpdateProtocol(TileEntityBoiler tileEntity) public BoilerUpdateProtocol(TileEntityThermoelectricBoiler tileEntity)
{ {
super(tileEntity); super(tileEntity);
} }
@ -98,7 +98,7 @@ public class BoilerUpdateProtocol extends UpdateProtocol<SynchronizedBoilerData>
{ {
for(Coord4D obj : structure.locations) for(Coord4D obj : structure.locations)
{ {
if(obj.getTileEntity(pointer.getWorldObj()) instanceof TileEntityBoilerValve) if(obj.getTileEntity(pointer.getWorldObj()) instanceof TileEntityThermoelectricValve)
{ {
ValveData data = new ValveData(); ValveData data = new ValveData();
data.location = obj; data.location = obj;

View file

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

View file

@ -73,7 +73,7 @@ public class MatrixUpdateProtocol extends UpdateProtocol<SynchronizedMatrixData>
} }
@Override @Override
protected void onFormed() public boolean isInteriorValid(SynchronizedMatrixData structure)
{ {
for(Coord4D coord : innerNodes) for(Coord4D coord : innerNodes)
{ {
@ -81,14 +81,16 @@ public class MatrixUpdateProtocol extends UpdateProtocol<SynchronizedMatrixData>
if(tile instanceof TileEntityInductionCell) if(tile instanceof TileEntityInductionCell)
{ {
structureFound.cells.add(coord); structure.cells.add(coord);
structureFound.storageCap += ((TileEntityInductionCell)tile).tier.maxEnergy; structure.storageCap += ((TileEntityInductionCell)tile).tier.maxEnergy;
} }
else if(tile instanceof TileEntityInductionProvider) else if(tile instanceof TileEntityInductionProvider)
{ {
structureFound.providers.add(coord); structure.providers.add(coord);
structureFound.transferCap += ((TileEntityInductionProvider)tile).tier.output; 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.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider; import mcp.mobius.waila.api.IWailaDataProvider;
import mcp.mobius.waila.api.IWailaRegistrar; import mcp.mobius.waila.api.IWailaRegistrar;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.common.tile.TileEntityBoundingBlock;
import mekanism.common.tile.TileEntityFactory; import mekanism.common.tile.TileEntityFactory;
import mekanism.common.tile.TileEntityInductionCell; import mekanism.common.tile.TileEntityInductionCell;
import mekanism.common.tile.TileEntityInductionProvider; import mekanism.common.tile.TileEntityInductionProvider;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -29,6 +32,7 @@ public class WailaDataProvider implements IWailaDataProvider
registrar.registerHeadProvider(provider, TileEntityInductionCell.class); registrar.registerHeadProvider(provider, TileEntityInductionCell.class);
registrar.registerHeadProvider(provider, TileEntityInductionProvider.class); registrar.registerHeadProvider(provider, TileEntityInductionProvider.class);
registrar.registerHeadProvider(provider, TileEntityFactory.class); registrar.registerHeadProvider(provider, TileEntityFactory.class);
registrar.registerHeadProvider(provider, TileEntityBoundingBlock.class);
} }
@Override @Override
@ -56,6 +60,16 @@ public class WailaDataProvider implements IWailaDataProvider
{ {
currenttip.set(0, EnumColor.WHITE + ((TileEntityFactory)tile).getInventoryName()); 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; return currenttip;
} }

View file

@ -75,14 +75,14 @@ public class ContainerDigitalMiner extends Container
if(ChargeUtils.canBeDischarged(slotStack)) if(ChargeUtils.canBeDischarged(slotStack))
{ {
if(slotID != 27) if(slotID > 27)
{ {
if(!mergeItemStack(slotStack, 27, 28, false)) if(!mergeItemStack(slotStack, 27, 28, false))
{ {
return null; return null;
} }
} }
else if(slotID == 27) else if(slotID <= 27)
{ {
if(!mergeItemStack(slotStack, 28, inventorySlots.size(), true)) 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(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; return null;
} }
@ -89,7 +89,7 @@ public class ContainerMetallurgicInfuser extends Container
} }
else if(isInputItem(slotStack)) else if(isInputItem(slotStack))
{ {
if(!mergeItemStack(slotStack, 2, 3, false)) if(!mergeItemStack(slotStack, 1, 2, false))
{ {
return null; return null;
} }

View file

@ -200,13 +200,17 @@ public abstract class UpdateProtocol<T extends SynchronizedData<T>>
if(structure.locations.contains(Coord4D.get(pointer)) && isCorrectCorner(Coord4D.get(tile), origX+xmin, origY+ymin, origZ+zmin)) if(structure.locations.contains(Coord4D.get(pointer)) && isCorrectCorner(Coord4D.get(tile), origX+xmin, origY+ymin, origZ+zmin))
{ {
structureFound = structure; if(isInteriorValid(structure))
return; {
structureFound = structure;
return;
}
} }
} }
} }
} }
innerNodes.clear();
iteratedNodes.add(tile); iteratedNodes.add(tile);
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
@ -222,6 +226,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) public ForgeDirection getSide(Coord4D obj, int xmin, int xmax, int ymin, int ymax, int zmin, int zmax)
{ {

View file

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

View file

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

View file

@ -4,14 +4,14 @@ import java.util.HashSet;
import java.util.Set; import java.util.Set;
import mekanism.api.Coord4D; import mekanism.api.Coord4D;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
{ {
public TileEntitySolarEvaporationController master; public Coord4D master;
public boolean attempted; public boolean attempted;
@ -40,7 +40,7 @@ public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
attempted = false; attempted = false;
} }
public void addToStructure(TileEntitySolarEvaporationController controller) public void addToStructure(Coord4D controller)
{ {
master = controller; master = controller;
} }
@ -57,7 +57,12 @@ public class TileEntitySolarEvaporationBlock extends TileEntityContainerBlock
if(master != null) 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(!worldObj.isRemote)
{ {
if(master != null) TileEntitySolarEvaporationController tile = getController();
if(tile != null)
{ {
master.refresh(); ((TileEntitySolarEvaporationController)tile).refresh();
} }
else { else {
updateController(); 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 class ControllerFinder
{ {
public TileEntitySolarEvaporationController found; public TileEntitySolarEvaporationController found;

View file

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

View file

@ -39,15 +39,18 @@ public class TileEntitySolarEvaporationValve extends TileEntitySolarEvaporationB
@Override @Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) 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 @Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) 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; return null;
@ -56,9 +59,11 @@ public class TileEntitySolarEvaporationValve extends TileEntitySolarEvaporationB
@Override @Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) 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; return null;
@ -67,23 +72,27 @@ public class TileEntitySolarEvaporationValve extends TileEntitySolarEvaporationB
@Override @Override
public boolean canFill(ForgeDirection from, Fluid fluid) public boolean canFill(ForgeDirection from, Fluid fluid)
{ {
return master != null && master.hasRecipe(fluid); TileEntitySolarEvaporationController controller = getController();
return controller != null && controller.hasRecipe(fluid);
} }
@Override @Override
public boolean canDrain(ForgeDirection from, Fluid fluid) 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 @Override
public FluidTankInfo[] getTankInfo(ForgeDirection from) public FluidTankInfo[] getTankInfo(ForgeDirection from)
{ {
if(master == null) TileEntitySolarEvaporationController controller = getController();
if(controller == null)
{ {
return PipeUtils.EMPTY; 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.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem; 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. */ /** 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>(); public Map<ValveData, Integer> valveViewing = new HashMap<ValveData, Integer>();
@ -45,12 +45,12 @@ public class TileEntityBoiler extends TileEntityMultiblock<SynchronizedBoilerDat
public double heatToAbsorb; public double heatToAbsorb;
public double invHeatCapacity = 5; public double invHeatCapacity = 5;
public TileEntityBoiler() public TileEntityThermoelectricBoiler()
{ {
this("SteamBoiler"); this("SteamBoiler");
} }
public TileEntityBoiler(String name) public TileEntityThermoelectricBoiler(String name)
{ {
super(name); super(name);
inventory = new ItemStack[2]; inventory = new ItemStack[2];
@ -399,7 +399,7 @@ public class TileEntityBoiler extends TileEntityMultiblock<SynchronizedBoilerDat
valveViewing.put(data, viewingTicks); valveViewing.put(data, viewingTicks);
TileEntityBoiler tileEntity = (TileEntityBoiler)data.location.getTileEntity(worldObj); TileEntityThermoelectricBoiler tileEntity = (TileEntityThermoelectricBoiler)data.location.getTileEntity(worldObj);
if(tileEntity != null) if(tileEntity != null)
{ {

View file

@ -11,12 +11,12 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler; import net.minecraftforge.fluids.IFluidHandler;
public class TileEntityBoilerValve extends TileEntityBoiler implements IFluidHandler public class TileEntityThermoelectricValve extends TileEntityThermoelectricBoiler implements IFluidHandler
{ {
public BoilerTank waterTank; public BoilerTank waterTank;
public BoilerTank steamTank; public BoilerTank steamTank;
public TileEntityBoilerValve() public TileEntityThermoelectricValve()
{ {
super("Boiler Valve"); super("Boiler Valve");
waterTank = new BoilerWaterTank(this); 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.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import java.util.Map;
import mekanism.api.energy.IEnergizedItem; import mekanism.api.energy.IEnergizedItem;
@ -12,139 +13,101 @@ import mekanism.common.base.IEnergyCube;
import mekanism.common.base.IFactory; import mekanism.common.base.IFactory;
import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.block.BlockMachine.MachineType;
import mekanism.common.item.ItemBlockBasic; import mekanism.common.item.ItemBlockBasic;
import mekanism.common.recipe.ShapedMekanismRecipe;
import mekanism.common.recipe.ShapelessMekanismRecipe;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
/** public class RecipeUtils
* 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
{ {
private static final int MAX_CRAFT_GRID_WIDTH = 3; public static boolean areItemsEqualForCrafting(ItemStack target, ItemStack input)
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)
{ {
output = result.copy(); if(target == null && input != null || target != null && input == null)
String shape = "";
int idx = 0;
if(recipe[idx] instanceof Boolean)
{ {
mirrored = (Boolean)recipe[idx]; return false;
}
if(recipe[idx+1] instanceof Object[]) else if(target == null && input == null)
{ {
recipe = (Object[])recipe[idx+1]; return true;
}
else {
idx = 1;
}
} }
if(recipe[idx] instanceof String[]) if(target.getItem() != input.getItem())
{ {
String[] parts = ((String[])recipe[idx++]); return false;
}
for(String s : parts) 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)
{ {
width = s.length(); return false;
shape += s;
} }
height = parts.length;
} }
else { else {
while(recipe[idx] instanceof String) if(target.getItem() instanceof IEnergizedItem && input.getItem() instanceof IEnergizedItem)
{ {
String s = (String)recipe[idx++]; if(((IEnergizedItem)target.getItem()).isMetadataSpecific(target) && ((IEnergizedItem)input.getItem()).isMetadataSpecific(input))
shape += s;
width = s.length();
height++;
}
}
if(width * height != shape.length())
{
String ret = "Invalid shaped ore 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 ore recipe: ";
for(Object tmp : recipe)
{ {
ret += tmp + ", "; 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;
}
}
}
ret += output; if(target.getItem() instanceof IEnergyCube && input.getItem() instanceof IEnergyCube)
throw new RuntimeException(ret); {
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;
}
}
} }
} }
input = new Object[width * height]; return true;
int x = 0;
for(char chr : shape.toCharArray())
{
input[x++] = itemMap.get(chr);
}
} }
@Override private static boolean isFactory(ItemStack stack)
public ItemStack getCraftingResult(InventoryCrafting inv) {
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)
{ {
ItemStack toReturn = output.copy();
if(toReturn.getItem() instanceof IEnergizedItem) if(toReturn.getItem() instanceof IEnergizedItem)
{ {
double energyFound = 0; double energyFound = 0;
@ -238,183 +201,65 @@ public class MekanismRecipe implements IRecipe
return toReturn; return toReturn;
} }
@Override public static ItemStack loadRecipeItemStack(NBTTagCompound nbtTags)
public int getRecipeSize()
{ {
return input.length; int meta = 0;
} int amount = 1;
@Override if(nbtTags.hasKey("meta"))
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) meta = nbtTags.getInteger("meta");
}
if(nbtTags.hasKey("amount"))
{
amount = nbtTags.getInteger("amount");
}
if(nbtTags.hasKey("itemstack"))
{
return ItemStack.loadItemStackFromNBT(nbtTags.getCompoundTag("itemstack"));
}
else if(nbtTags.hasKey("itemname"))
{
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"))
{
Object obj = Block.blockRegistry.getObject(nbtTags.getString("blockname"));
if(obj instanceof Block)
{
return new ItemStack((Block)obj, amount, meta);
}
}
return null;
}
public static boolean removeRecipes(ItemStack stack)
{
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()))
{ {
return true; iter.remove();
}
if(mirrored && checkMatch(inv, x, y, false))
{
return true;
} }
} }
} }
return false; 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) public static boolean isValidAcceptorOnSide(TileEntity tile, ForgeDirection side)
{ {
if(tile instanceof ITransmitterTile || !(tile instanceof IInventory)) if(tile instanceof ITransmitterTile || !(tile instanceof IInventory))
{
return false; return false;
}
IInventory inventory = (IInventory)tile; IInventory inventory = (IInventory)tile;
if(inventory.getSizeInventory() > 0) if(inventory.getSizeInventory() > 0)
{ {
if(!(inventory instanceof ISidedInventory)) if(!(inventory instanceof ISidedInventory))
{
return true; return true;
}
int[] slots = ((ISidedInventory)inventory).getAccessibleSlotsFromSide(side.getOpposite().ordinal()); int[] slots = ((ISidedInventory)inventory).getAccessibleSlotsFromSide(side.getOpposite().ordinal());
return (slots != null && slots.length > 0); return (slots != null && slots.length > 0);
} }
return false; return false;
} }

View file

@ -25,7 +25,6 @@ import mekanism.generators.common.item.ItemHohlraum;
import mekanism.generators.common.tile.reactor.TileEntityReactorController; import mekanism.generators.common.tile.reactor.TileEntityReactorController;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.ItemCoal;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
@ -492,6 +491,21 @@ public class FusionReactor implements IFusionReactor
public void setInjectionRate(int rate) public void setInjectionRate(int rate)
{ {
injectionRate = 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 @Override

View file

@ -1,5 +1,30 @@
package mekanism.generators.common; 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.BuildcraftFuelRegistry;
import buildcraft.api.fuels.IFuel; import buildcraft.api.fuels.IFuel;
import cpw.mods.fml.client.event.ConfigChangedEvent.OnConfigChangedEvent; 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.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.NetworkRegistry; 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.9", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory")
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "8.1.8", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory")
public class MekanismGenerators implements IModule public class MekanismGenerators implements IModule
{ {
/** Mekanism Generators Packet Pipeline */ /** Mekanism Generators Packet Pipeline */
@ -47,7 +52,7 @@ public class MekanismGenerators implements IModule
public static MekanismGenerators instance; public static MekanismGenerators instance;
/** MekanismGenerators version number */ /** MekanismGenerators version number */
public static Version versionNumber = new Version(8, 1, 8); public static Version versionNumber = new Version(8, 1, 9);
@EventHandler @EventHandler
public void preInit(FMLPreInitializationEvent event) public void preInit(FMLPreInitializationEvent event)
@ -104,45 +109,45 @@ public class MekanismGenerators implements IModule
public void addRecipes() 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" "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() "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" "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" "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 "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" "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) " 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 //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" " 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) " 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" " 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() "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" " 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) " 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 @Override
public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) 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; float motion = 0.7F;
double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D; 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 class TileEntityReactorController extends TileEntityReactorBlock implements IActiveState, IHasSound, ISoundSource
{ {
public static final int MAX_WATER = 100 * FluidContainerRegistry.BUCKET_VOLUME; 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 static final int MAX_FUEL = 1 * FluidContainerRegistry.BUCKET_VOLUME;
public FluidTank waterTank = new FluidTank(MAX_WATER); 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 deuteriumTank = new GasTank(MAX_FUEL);
public GasTank tritiumTank = 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(fuelTank.getStored());
data.add(deuteriumTank.getStored()); data.add(deuteriumTank.getStored());
data.add(tritiumTank.getStored()); data.add(tritiumTank.getStored());
data.add(waterTank.getCapacity());
data.add(waterTank.getFluidAmount()); data.add(waterTank.getFluidAmount());
data.add(steamTank.getCapacity());
data.add(steamTank.getFluidAmount()); data.add(steamTank.getFluidAmount());
} }
@ -272,7 +275,9 @@ public class TileEntityReactorController extends TileEntityReactorBlock implemen
fuelTank.setGas(new GasStack(GasRegistry.getGas("fusionFuelDT"), dataStream.readInt())); fuelTank.setGas(new GasStack(GasRegistry.getGas("fusionFuelDT"), dataStream.readInt()));
deuteriumTank.setGas(new GasStack(GasRegistry.getGas("deuterium"), dataStream.readInt())); deuteriumTank.setGas(new GasStack(GasRegistry.getGas("deuterium"), dataStream.readInt()));
tritiumTank.setGas(new GasStack(GasRegistry.getGas("tritium"), dataStream.readInt())); tritiumTank.setGas(new GasStack(GasRegistry.getGas("tritium"), dataStream.readInt()));
waterTank.setCapacity(dataStream.readInt());
waterTank.setFluid(new FluidStack(FluidRegistry.getFluid("water"), dataStream.readInt())); waterTank.setFluid(new FluidStack(FluidRegistry.getFluid("water"), dataStream.readInt()));
steamTank.setCapacity(dataStream.readInt());
steamTank.setFluid(new FluidStack(FluidRegistry.getFluid("steam"), dataStream.readInt())); steamTank.setFluid(new FluidStack(FluidRegistry.getFluid("steam"), dataStream.readInt()));
} }
else if(getReactor() != null) else if(getReactor() != null)

View file

@ -309,6 +309,12 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl
{ {
return getReactor() != null && getReactor().isFormed() ? getReactor().getInventory()[slotID] : null; return getReactor() != null && getReactor().isFormed() ? getReactor().getInventory()[slotID] : null;
} }
@Override
public int getSizeInventory()
{
return getReactor() != null && getReactor().isFormed() ? 1 : 0;
}
@Override @Override
public void setInventorySlotContents(int slotID, ItemStack itemstack) 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.Mekanism;
import mekanism.common.Version; import mekanism.common.Version;
import mekanism.common.base.IModule; 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.EntitySkeleton;
import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.init.Items; import net.minecraft.init.Items;
@ -28,7 +28,7 @@ import net.minecraftforge.event.entity.living.LivingSpawnEvent;
import java.io.IOException; 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 public class MekanismTools implements IModule
{ {
@SidedProxy(clientSide = "mekanism.tools.client.ToolsClientProxy", serverSide = "mekanism.tools.common.ToolsCommonProxy") @SidedProxy(clientSide = "mekanism.tools.client.ToolsClientProxy", serverSide = "mekanism.tools.common.ToolsCommonProxy")
@ -38,7 +38,7 @@ public class MekanismTools implements IModule
public static MekanismTools instance; public static MekanismTools instance;
/** MekanismTools version number */ /** MekanismTools version number */
public static Version versionNumber = new Version(8, 1, 8); public static Version versionNumber = new Version(8, 1, 9);
//Enums: Tools //Enums: Tools
public static ToolMaterial toolOBSIDIAN; public static ToolMaterial toolOBSIDIAN;
@ -92,211 +92,211 @@ public class MekanismTools implements IModule
{ {
//Crafting Recipes //Crafting Recipes
//Base //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 "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 "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 "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 "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 "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 //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" "***", "* *", 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" "* *", "***", "***", 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" "***", "* *", "* *", 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" "* *", "* *", 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 "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 "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 "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 "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 "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 "X", "X", "T", Character.valueOf('X'), "ingotRefinedObsidian", Character.valueOf('T'), Items.stick
})); }));
//Glowstone //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 "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 "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 "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 "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 "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 "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" "***", "* *", 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" "* *", "***", "***", 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" "***", "* *", "* *", 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" "* *", "* *", Character.valueOf('*'), "ingotRefinedGlowstone"
})); }));
//Lazuli //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) "***", "* *", 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) "* *", "***", "***", 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) "***", "* *", "* *", 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) "* *", "* *", 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 "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 "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 "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 "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 "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 "X", "X", "T", Character.valueOf('X'), new ItemStack(Items.dye, 1, 4), Character.valueOf('T'), Items.stick
})); }));
//Osmium //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 "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 "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 "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 "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 "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 "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" "***", "* *", 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" "* *", "***", "***", 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" "***", "* *", "* *", 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" "* *", "* *", Character.valueOf('*'), "ingotOsmium"
})); }));
//Bronze //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 "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 "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 "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 "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 "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 "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" "***", "* *", 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" "* *", "***", "***", 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" "***", "* *", "* *", 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" "* *", "* *", Character.valueOf('*'), "ingotBronze"
})); }));
//Steel //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 "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 "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 "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 "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 "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 "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 "***", "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 "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 "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 "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 names
recipe.mekanismShaped=Shaped recipe.mekanismShaped=Shaped
recipe.mekanismShapeless=Shapeless
//Item and block tooltip text //Item and block tooltip text
tooltip.configurator.configurate=Configurate tooltip.configurator.configurate=Configurate

View file

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