Pretty massive cleanup of stuff, some is gone for good, some is coming

back later
This commit is contained in:
pahimar 2013-11-19 19:42:29 -05:00
parent 281716346a
commit 02eead3672
60 changed files with 281 additions and 4758 deletions

View file

@ -1,56 +0,0 @@
package com.pahimar.ee3.block;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.lib.RenderIds;
import com.pahimar.ee3.lib.Strings;
import com.pahimar.ee3.tileentity.TileAlchemyTable;
public class BlockAlchemyTable extends BlockEE {
public BlockAlchemyTable(int id) {
super(id, Material.iron);
this.setUnlocalizedName(Strings.ALCHEMY_TABLE_NAME);
this.setCreativeTab(EquivalentExchange3.tabsEE3);
}
@Override
public String getUnlocalizedName() {
StringBuilder unlocalizedName = new StringBuilder();
unlocalizedName.append("tile.");
unlocalizedName.append(Strings.RESOURCE_PREFIX);
unlocalizedName.append(Strings.ALCHEMY_TABLE_NAME);
return unlocalizedName.toString();
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public int getRenderType() {
return RenderIds.alchemyTable;
}
@Override
public TileEntity createNewTileEntity(World world) {
return new TileAlchemyTable();
}
}

View file

@ -1,40 +0,0 @@
package com.pahimar.ee3.block;
import net.minecraft.block.BlockFlowing;
import net.minecraft.block.material.Material;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.lib.Strings;
/**
* Equivalent-Exchange-3
*
* BlockRedWaterFlowing
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
public class BlockRedWaterFlowing extends BlockFlowing {
protected BlockRedWaterFlowing(int id) {
super(id, Material.water);
blockHardness = 100F;
this.setLightOpacity(3);
this.setCreativeTab(EquivalentExchange3.tabsEE3);
this.setUnlocalizedName(Strings.RED_WATER_FLOWING_NAME);
}
@Override
public String getUnlocalizedName() {
StringBuilder unlocalizedName = new StringBuilder();
unlocalizedName.append("tile.");
unlocalizedName.append(Strings.RESOURCE_PREFIX);
unlocalizedName.append(Strings.RED_WATER_FLOWING_NAME);
return unlocalizedName.toString();
}
}

View file

@ -1,41 +0,0 @@
package com.pahimar.ee3.block;
import net.minecraft.block.BlockStationary;
import net.minecraft.block.material.Material;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.lib.Strings;
/**
* Equivalent-Exchange-3
*
* BlockRedWaterStill
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
public class BlockRedWaterStill extends BlockStationary {
protected BlockRedWaterStill(int id) {
super(id, Material.water);
blockHardness = 100F;
this.setLightOpacity(3);
this.setUnlocalizedName(Strings.RED_WATER_STILL_NAME);
this.setCreativeTab(EquivalentExchange3.tabsEE3);
this.disableStats();
}
@Override
public String getUnlocalizedName() {
StringBuilder unlocalizedName = new StringBuilder();
unlocalizedName.append("tile.");
unlocalizedName.append(Strings.RESOURCE_PREFIX);
unlocalizedName.append(Strings.RED_WATER_STILL_NAME);
return unlocalizedName.toString();
}
}

View file

@ -1,58 +0,0 @@
package com.pahimar.ee3.block;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.lib.RenderIds;
import com.pahimar.ee3.lib.Strings;
import com.pahimar.ee3.tileentity.TileRenderingTank;
public class BlockRenderingTank extends BlockEE {
public BlockRenderingTank(int id) {
super(id, Material.anvil);
this.setUnlocalizedName(Strings.RENDERING_TANK_NAME);
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 3.0F, 1.0F);
this.setCreativeTab(EquivalentExchange3.tabsEE3);
}
@Override
public String getUnlocalizedName() {
StringBuilder unlocalizedName = new StringBuilder();
unlocalizedName.append("tile.");
unlocalizedName.append(Strings.RESOURCE_PREFIX);
unlocalizedName.append(Strings.RENDERING_TANK_NAME);
return unlocalizedName.toString();
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public int getRenderType() {
return RenderIds.renderingTank;
}
@Override
public TileEntity createNewTileEntity(World world) {
return new TileRenderingTank();
}
}

View file

@ -25,10 +25,6 @@ public class ModBlocks {
public static Block aludelBase;
public static Block alchemicalChest;
public static Block glassBell;
public static Block alchemyTable;
public static Block renderingTank;
public static Block redWaterStill;
public static Block redWaterFlowing;
public static void init() {
@ -36,19 +32,11 @@ public class ModBlocks {
aludelBase = new BlockAludelBase(BlockIds.ALUDEL_BASE);
alchemicalChest = new BlockAlchemicalChest(BlockIds.ALCHEMICAL_CHEST);
glassBell = new BlockGlassBell(BlockIds.GLASS_BELL);
alchemyTable = new BlockAlchemyTable(BlockIds.ALCHEMY_TABLE);
renderingTank = new BlockRenderingTank(BlockIds.RENDERING_TANK);
redWaterStill = new BlockRedWaterStill(BlockIds.RED_WATER_STILL);
redWaterFlowing = new BlockRedWaterFlowing(BlockIds.RED_WATER_STILL - 1);
GameRegistry.registerBlock(calcinator, Strings.CALCINATOR_NAME);
GameRegistry.registerBlock(aludelBase, Strings.ALUDEL_NAME);
GameRegistry.registerBlock(alchemicalChest, Strings.ALCHEMICAL_CHEST_NAME);
GameRegistry.registerBlock(glassBell, Strings.GLASS_BELL_NAME);
GameRegistry.registerBlock(alchemyTable, Strings.ALCHEMY_TABLE_NAME);
GameRegistry.registerBlock(renderingTank, Strings.RENDERING_TANK_NAME);
//GameRegistry.registerBlock(redWaterStill, Strings.RED_WATER_STILL_NAME);
//GameRegistry.registerBlock(redWaterFlowing, Strings.RED_WATER_FLOWING_NAME);
initBlockRecipes();
}

View file

@ -7,7 +7,7 @@ import net.minecraft.util.StatCollector;
import org.lwjgl.opengl.GL11;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.inventory.ContainerAlchemicalBag;
import com.pahimar.ee3.lib.Strings;
import com.pahimar.ee3.lib.Textures;
@ -62,8 +62,8 @@ public class GuiAlchemicalBag extends GuiContainer {
if (mc.thePlayer != null) {
for (ItemStack itemStack : mc.thePlayer.inventory.mainInventory) {
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
GeneralNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
}
}
}

View file

@ -1,30 +0,0 @@
package com.pahimar.ee3.client.gui.inventory;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import com.pahimar.ee3.inventory.ContainerAlchemyTable;
import com.pahimar.ee3.tileentity.TileAlchemyTable;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GuiAlchemyTable extends GuiContainer {
private TileAlchemyTable tileAlchemyTable;
public GuiAlchemyTable(InventoryPlayer inventoryPlayer, TileAlchemyTable tileAlchemyTable) {
super(new ContainerAlchemyTable(inventoryPlayer, tileAlchemyTable));
this.tileAlchemyTable = tileAlchemyTable;
}
@Override
protected void drawGuiContainerBackgroundLayer(float f, int i, int j) {
// TODO Auto-generated method stub
}
}

View file

@ -8,7 +8,7 @@ import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.inventory.ContainerPortableCrafting;
import com.pahimar.ee3.lib.Strings;
import com.pahimar.ee3.lib.Textures;
@ -66,8 +66,8 @@ public class GuiPortableCrafting extends GuiContainer {
if (mc.thePlayer != null) {
for (ItemStack itemStack : mc.thePlayer.inventory.mainInventory) {
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
GeneralNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
}
}
}

View file

@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack;
import org.lwjgl.opengl.GL11;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.lib.Strings;
import com.pahimar.ee3.lib.Textures;
@ -49,8 +49,8 @@ public class GuiPortableTransmutation extends GuiContainer {
if (mc.thePlayer != null) {
for (ItemStack itemStack : mc.thePlayer.inventory.mainInventory) {
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
GeneralNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
}
}
}

View file

@ -1,31 +0,0 @@
package com.pahimar.ee3.client.model;
import net.minecraft.client.model.ModelBase;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
import com.pahimar.ee3.lib.Models;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class ModelAlchemyTable extends ModelBase {
private IModelCustom modelAlchemyTable;
public ModelAlchemyTable() {
modelAlchemyTable = AdvancedModelLoader.loadModel(Models.ALCHEMY_TABLE);
}
public void render() {
modelAlchemyTable.renderAll();
}
public void renderPart(String partName) {
modelAlchemyTable.renderPart(partName);
}
}

View file

@ -1,26 +0,0 @@
package com.pahimar.ee3.client.model;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
import com.pahimar.ee3.lib.Models;
public class ModelRenderingTank {
private IModelCustom modelRenderingTank;
public ModelRenderingTank() {
modelRenderingTank = AdvancedModelLoader.loadModel(Models.RENDERING_TANK);
}
public void render() {
modelRenderingTank.renderAll();
}
public void renderPart(String partName) {
modelRenderingTank.renderPart(partName);
}
}

View file

@ -1,113 +0,0 @@
/**
*
*/
package com.pahimar.ee3.client.renderer.item;
import org.lwjgl.opengl.GL11;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import com.pahimar.ee3.client.model.ModelAlchemyTable;
import com.pahimar.ee3.lib.Textures;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* Equivalent-Exchange-3
*
* ItemAlchemyTableRenderer
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
@SideOnly(Side.CLIENT)
public class ItemAlchemyTableRenderer implements IItemRenderer {
private ModelAlchemyTable modelAlchemyTable;
public ItemAlchemyTableRenderer() {
modelAlchemyTable = new ModelAlchemyTable();
}
/*
* (non-Javadoc)
* @see
* net.minecraftforge.client.IItemRenderer#handleRenderType(net.minecraft
* .item.ItemStack, net.minecraftforge.client.IItemRenderer.ItemRenderType)
*/
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return true;
}
/*
* (non-Javadoc)
* @see net.minecraftforge.client.IItemRenderer#shouldUseRenderHelper(net.
* minecraftforge.client.IItemRenderer.ItemRenderType,
* net.minecraft.item.ItemStack,
* net.minecraftforge.client.IItemRenderer.ItemRendererHelper)
*/
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return true;
}
/*
* (non-Javadoc)
* @see
* net.minecraftforge.client.IItemRenderer#renderItem(net.minecraftforge
* .client.IItemRenderer.ItemRenderType, net.minecraft.item.ItemStack,
* java.lang.Object[])
*/
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
switch (type) {
case ENTITY: {
renderAlchemyTable(-0.5F, 0.0F, 0.5F, 1.0F);
return;
}
case EQUIPPED: {
renderAlchemyTable(0.0F, 0.0F, 1.0F, 1.0F);
return;
}
case EQUIPPED_FIRST_PERSON: {
renderAlchemyTable(0.0F, 0.0F, 1.0F, 1.0F);
return;
}
case INVENTORY: {
renderAlchemyTable(0.0F, -0.1F, 1.0F, 1.0F);
return;
}
default:
return;
}
}
private void renderAlchemyTable(float x, float y, float z, float scale) {
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
// Scale, Translate, Rotate
GL11.glScalef(scale, scale, scale);
GL11.glTranslatef(x, y, z);
GL11.glRotatef(-90F, 1F, 0, 0);
// Bind texture
FMLClientHandler.instance().getClient().renderEngine.bindTexture(Textures.MODEL_ALCHEMY_TABLE);
// Render
modelAlchemyTable.render();
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
}

View file

@ -1,78 +0,0 @@
package com.pahimar.ee3.client.renderer.item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.client.IItemRenderer;
import org.lwjgl.opengl.GL11;
import com.pahimar.ee3.client.model.ModelRenderingTank;
import com.pahimar.ee3.lib.Textures;
import cpw.mods.fml.client.FMLClientHandler;
public class ItemRenderingTankRenderer implements IItemRenderer {
private ModelRenderingTank modelRenderingTank;
public ItemRenderingTankRenderer() {
modelRenderingTank = new ModelRenderingTank();
}
@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return true;
}
@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
return true;
}
@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
switch (type) {
case ENTITY: {
renderRenderingTank(-0.5F, -1.2F, 0.5F, 0.75F);
return;
}
case EQUIPPED: {
renderRenderingTank(-0.2F, -0.85F, 0.8F, 0.75F);
return;
}
case EQUIPPED_FIRST_PERSON: {
renderRenderingTank(-0.2F, -0.50F, 0.8F, 0.75F);
return;
}
case INVENTORY: {
renderRenderingTank(-1.0F, -2.05F, 0.0F, 0.5F);
return;
}
default:
return;
}
}
private void renderRenderingTank(float x, float y, float z, float scale) {
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
// Scale, Translate, Rotate
GL11.glScalef(scale, scale, scale);
GL11.glTranslatef(x, y, z);
// Bind texture
FMLClientHandler.instance().getClient().renderEngine.bindTexture(Textures.MODEL_RENDERING_TANK);
// Render
modelRenderingTank.render();
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
}

View file

@ -1,64 +0,0 @@
/**
*
*/
package com.pahimar.ee3.client.renderer.tileentity;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
import com.pahimar.ee3.client.model.ModelAlchemyTable;
import com.pahimar.ee3.lib.Textures;
import com.pahimar.ee3.tileentity.TileAlchemyTable;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* Equivalent-Exchange-3
*
* TileEntityAlchemyTableRenderer
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
@SideOnly(Side.CLIENT)
public class TileEntityAlchemyTableRenderer extends TileEntitySpecialRenderer {
private ModelAlchemyTable modelAlchemyTable = new ModelAlchemyTable();
/*
* (non-Javadoc)
* @see net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer#
* renderTileEntityAt(net.minecraft.tileentity.TileEntity, double, double,
* double, float)
*/
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) {
if (tileEntity instanceof TileAlchemyTable) {
// TODO Use the TileAlchemyTable to determine what circle to project on the server of the table
TileAlchemyTable tileAlchemyTable = (TileAlchemyTable) tileEntity;
GL11.glPushMatrix();
GL11.glDisable(GL11.GL_LIGHTING);
// Scale, Translate, Rotate
GL11.glScalef(1.0F, 1.0F, 1.0F);
GL11.glTranslatef((float) x + 0.0F, (float) y + 0.0F, (float) z + 1.0F);
// Bind texture
FMLClientHandler.instance().getClient().renderEngine.bindTexture(Textures.MODEL_ALCHEMY_TABLE);
// Render
modelAlchemyTable.render();
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
}
}

View file

@ -1,49 +0,0 @@
package com.pahimar.ee3.client.renderer.tileentity;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11;
import com.pahimar.ee3.client.model.ModelRenderingTank;
import com.pahimar.ee3.lib.Textures;
import com.pahimar.ee3.tileentity.TileRenderingTank;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class TileEntityRenderingTankRenderer extends TileEntitySpecialRenderer {
private ModelRenderingTank modelRenderingTank = new ModelRenderingTank();
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) {
if (tileEntity instanceof TileRenderingTank) {
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glPushMatrix();
// Scale, Translate, Rotate
GL11.glScalef(1.0F, 1.0F, 1.0F);
GL11.glTranslatef((float) x + 0.0F, (float) y + 0.0F, (float) z + 1.0F);
//GL11.glRotatef(90F, 0F, 1F, 0F);
// Bind texture
FMLClientHandler.instance().getClient().renderEngine.bindTexture(Textures.MODEL_RENDERING_TANK);
// Render
modelRenderingTank.render();
GL11.glPopMatrix();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_LIGHTING);
}
}
}

View file

@ -27,9 +27,6 @@ public class BlockConfiguration {
BlockIds.ALUDEL_BASE = blockConfiguration.getBlock(Strings.ALUDEL_NAME, BlockIds.ALUDEL_BASE_DEFAULT).getInt(BlockIds.ALUDEL_BASE_DEFAULT);
BlockIds.ALCHEMICAL_CHEST = blockConfiguration.getBlock(Strings.ALCHEMICAL_CHEST_NAME, BlockIds.ALCHEMICAL_CHEST_DEFAULT).getInt(BlockIds.ALCHEMICAL_CHEST_DEFAULT);
BlockIds.GLASS_BELL = blockConfiguration.getBlock(Strings.GLASS_BELL_NAME, BlockIds.GLASS_BELL_DEFAULT).getInt(BlockIds.GLASS_BELL_DEFAULT);
BlockIds.ALCHEMY_TABLE = blockConfiguration.getBlock(Strings.ALCHEMY_TABLE_NAME, BlockIds.ALCHEMY_TABLE_DEFAULT).getInt(BlockIds.ALCHEMY_TABLE_DEFAULT);
BlockIds.RENDERING_TANK = blockConfiguration.getBlock(Strings.RENDERING_TANK_NAME, BlockIds.RENDERING_TANK_DEFAULT).getInt(BlockIds.RENDERING_TANK_DEFAULT);
BlockIds.RED_WATER_STILL = blockConfiguration.getBlock(Strings.RED_WATER_STILL_NAME, BlockIds.RED_WATER_STILL_DEFAULT).getInt(BlockIds.RED_WATER_STILL_DEFAULT);
}
catch (Exception e) {
FMLLog.log(Level.SEVERE, e, Reference.MOD_NAME + " has had a problem loading its block configuration");

View file

@ -5,7 +5,7 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import com.pahimar.ee3.configuration.ConfigurationSettings;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.lib.Strings;
import cpw.mods.fml.common.ICraftingHandler;
@ -50,7 +50,7 @@ public class CraftingHandler implements ICraftingHandler {
for (ItemStack itemStack : player.inventory.mainInventory) {
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
openStone = itemStack;
}
}
@ -61,7 +61,7 @@ public class CraftingHandler implements ICraftingHandler {
for (int i = 0; i < craftMatrix.getSizeInventory(); i++) {
itemStack = craftMatrix.getStackInSlot(i);
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
openStone = itemStack;
}
}

View file

@ -1,17 +1,6 @@
package com.pahimar.ee3.core.handler;
import java.util.List;
import java.util.Map;
import net.minecraft.nbt.NBTTagCompound;
import com.pahimar.ee3.core.helper.LogHelper;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.emc.EmcBlackList;
import com.pahimar.ee3.emc.EmcValue;
import com.pahimar.ee3.emc.EmcValuesIMC;
import com.pahimar.ee3.item.CustomWrappedStack;
import com.pahimar.ee3.item.crafting.RecipesIMC;
import com.pahimar.ee3.lib.InterModComms;
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
@ -26,7 +15,7 @@ public class InterModCommsHandler {
for (IMCMessage imcMessage : event.getMessages()) {
if (imcMessage.getMessageType() == NBTTagCompound.class) {
if (imcMessage.getMessageType() == String.class) {
if (imcMessage.key.equalsIgnoreCase(InterModComms.ADD_RECIPE)) {
processAddRecipeMessage(imcMessage);
@ -45,104 +34,33 @@ public class InterModCommsHandler {
}
}
else {
LogHelper.severe("[IMC] Mod '" + imcMessage.getSender() + "' sent a message with key '" + imcMessage.key + "' with an invalid argument type (received " + imcMessage.getMessageType().getSimpleName() + ", expected NBTTagCompound)");
LogHelper.severe("[IMC] Mod '" + imcMessage.getSender() + "' sent a message with key '" + imcMessage.key + "' with an invalid argument type (received " + imcMessage.getMessageType().getSimpleName() + ", expected String)");
}
}
}
private static void processAddRecipeMessage(IMCMessage imcMessage) {
NBTTagCompound encodedRecipe = imcMessage.getNBTValue();
Map<CustomWrappedStack, List<CustomWrappedStack>> decodedRecipe = GeneralNBTHelper.decodeRecipeFromNBT(encodedRecipe);
if (!decodedRecipe.isEmpty()) {
for (CustomWrappedStack key : decodedRecipe.keySet()) {
RecipesIMC.addRecipe(key, decodedRecipe.get(key));
LogHelper.info("[IMC] Mod '" + imcMessage.getSender() + "' added recipe with output '" + key.toString() + "' and inputs '" + decodedRecipe.get(key) + "'");
}
}
else {
LogHelper.severe("[IMC] Mod '" + imcMessage.getSender() + "' attempting to add a NBT encoded recipe to the recipe registry, but the encoded recipe is invalid");
}
// TODO
}
private static void processAddBlackListMessage(IMCMessage imcMessage) {
NBTTagCompound encodedStack = imcMessage.getNBTValue();
CustomWrappedStack decodedStack = GeneralNBTHelper.decodeStackFromNBT(encodedStack);
if (decodedStack != null) {
if (EmcBlackList.getInstance().add(decodedStack)) {
LogHelper.info("[IMC] Mod '" + imcMessage.getSender() + "' added object '" + decodedStack.toString() + "' to the EMC blacklist");
}
else {
LogHelper.severe("[IMC] Mod '" + imcMessage.getSender() + "' attempted to add an object to the EMC blacklist that already existed");
}
}
// TODO
}
private static void processRemoveBlackListMessage(IMCMessage imcMessage) {
NBTTagCompound encodedStack = imcMessage.getNBTValue();
CustomWrappedStack decodedStack = GeneralNBTHelper.decodeStackFromNBT(encodedStack);
if (decodedStack != null) {
if (EmcBlackList.getInstance().remove(decodedStack)) {
LogHelper.info("[IMC] Mod '" + imcMessage.getSender() + "' removed object '" + decodedStack.toString() + "' from the EMC blacklist");
}
else {
LogHelper.severe("[IMC] Mod '" + imcMessage.getSender() + "' attempted to remove an object to the EMC blacklist that was not present");
}
}
// TODO
}
private static void processPreAssignEmcValueMessage(IMCMessage imcMessage) {
// FIXME Not all methods of passing mappings work, and logging not 100% yet
NBTTagCompound encodedEmcValueMapping = imcMessage.getNBTValue();
Map<CustomWrappedStack, EmcValue> emcValueMapping = GeneralNBTHelper.decodeEmcValueMappings(encodedEmcValueMapping);
if (emcValueMapping != null && emcValueMapping.size() > 0) {
for (CustomWrappedStack stack : emcValueMapping.keySet()) {
EmcValue emcValue = emcValueMapping.get(stack);
if (stack.getWrappedStack() != null && emcValue != null && emcValue.getValue() > 0) {
EmcValuesIMC.addPreAssignedValued(stack, emcValue);
LogHelper.fine(String.format("[IMC] Mod '%s' added a pre auto assignment EmcValue of %s (%s) for object '%s'",imcMessage.getSender(), emcValue.getValue(), emcValue.toString(), stack));
}
else {
LogHelper.severe(String.format("[IMC] Mod '%s' failed in attempting to add a pre auto assignment EmcValue of %s (%s) for object '%s'",imcMessage.getSender(), emcValue.getValue(), emcValue.toString(), stack));
}
}
}
else {
LogHelper.severe(String.format("[IMC] Mod failed in attempting to add a pre auto assignment: %s", encodedEmcValueMapping));
}
// TODO
}
private static void processPostAssignEmcValueMessage(IMCMessage imcMessage) {
NBTTagCompound encodedEmcValueMapping = imcMessage.getNBTValue();
Map<CustomWrappedStack, EmcValue> emcValueMapping = GeneralNBTHelper.decodeEmcValueMappings(encodedEmcValueMapping);
if (emcValueMapping != null && emcValueMapping.size() > 0) {
for (CustomWrappedStack stack : emcValueMapping.keySet()) {
EmcValue emcValue = emcValueMapping.get(stack);
if (stack.getWrappedStack() != null && emcValue != null && emcValue.getValue() > 0) {
EmcValuesIMC.addPostAssignedValued(stack, emcValue);
LogHelper.fine(String.format("[IMC] Mod '%s' added a post auto assignment EmcValue of %s (%s) for object '%s'",imcMessage.getSender(), emcValue.getValue(), emcValue.toString(), stack));
}
else {
LogHelper.severe(String.format("[IMC] Mod '%s' failed in attempting to add a post auto assignment EmcValue of %s (%s) for object '%s'",imcMessage.getSender(), emcValue.getValue(), emcValue.toString(), stack));
}
}
}
// TODO
}
}

View file

@ -6,7 +6,7 @@ import net.minecraftforge.event.entity.item.ItemTossEvent;
import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
import net.minecraftforge.event.entity.player.PlayerDropsEvent;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.lib.Strings;
/**
@ -23,28 +23,28 @@ public class ItemEventHandler {
@ForgeSubscribe
public void onItemPickup(EntityItemPickupEvent event) {
if (GeneralNBTHelper.hasTag(event.item.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
GeneralNBTHelper.removeTag(event.item.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(event.item.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(event.item.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
}
else if (GeneralNBTHelper.hasTag(event.item.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
GeneralNBTHelper.removeTag(event.item.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
else if (ItemStackNBTHelper.hasTag(event.item.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(event.item.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
}
else if (GeneralNBTHelper.hasTag(event.item.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
GeneralNBTHelper.removeTag(event.item.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
else if (ItemStackNBTHelper.hasTag(event.item.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(event.item.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
}
}
@ForgeSubscribe
public void onItemToss(ItemTossEvent event) {
if (GeneralNBTHelper.hasTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
GeneralNBTHelper.removeTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
}
else if (GeneralNBTHelper.hasTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
GeneralNBTHelper.removeTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
else if (ItemStackNBTHelper.hasTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
}
else if (GeneralNBTHelper.hasTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
GeneralNBTHelper.removeTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
else if (ItemStackNBTHelper.hasTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(event.entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
}
}
@ -52,14 +52,14 @@ public class ItemEventHandler {
public void onPlayerDrop(PlayerDropsEvent event) {
for (EntityItem entityItem : event.drops) {
if (GeneralNBTHelper.hasTag(entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
GeneralNBTHelper.removeTag(entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(entityItem.getEntityItem(), Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
}
else if (GeneralNBTHelper.hasTag(entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
GeneralNBTHelper.removeTag(entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
else if (ItemStackNBTHelper.hasTag(entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(entityItem.getEntityItem(), Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
}
else if (GeneralNBTHelper.hasTag(entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
GeneralNBTHelper.removeTag(entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
else if (ItemStackNBTHelper.hasTag(entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(entityItem.getEntityItem(), Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
}
}
}

View file

@ -1,17 +1,5 @@
package com.pahimar.ee3.core.handler.addon;
import java.util.Arrays;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.lib.InterModComms;
import com.pahimar.ee3.lib.Reference;
import cpw.mods.fml.common.event.FMLInterModComms;
/**
* Equivalent-Exchange-3
*
@ -25,12 +13,8 @@ public class AddonIMCVanilla {
public static void init() {
FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, GeneralNBTHelper.encodeRecipeAsNBT(Item.bucketWater, Arrays.asList(Item.bucketEmpty, Block.waterStill)));
FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, GeneralNBTHelper.encodeRecipeAsNBT(Item.bucketLava, Arrays.asList(Item.bucketEmpty, Block.lavaStill)));
FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, GeneralNBTHelper.encodeRecipeAsNBT(new ItemStack(Block.anvil, 1, 1), Arrays.asList(new ItemStack(Item.ingotIron, 20))));
FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, GeneralNBTHelper.encodeRecipeAsNBT(new ItemStack(Block.anvil, 1, 2), Arrays.asList(new ItemStack(Item.ingotIron, 10))));
FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, GeneralNBTHelper.encodeRecipeAsNBT(Item.horseArmorIron, Arrays.asList(new ItemStack(Item.ingotIron, 6))));
FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, GeneralNBTHelper.encodeRecipeAsNBT(Item.horseArmorGold, Arrays.asList(new ItemStack(Item.ingotGold, 6))));
FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, GeneralNBTHelper.encodeRecipeAsNBT(Item.horseArmorDiamond, Arrays.asList(new ItemStack(Item.diamond, 6))));
// TODO Once the API is more solid, add examples here for proper IMC calls
// FMLInterModComms.sendMessage(Reference.MOD_ID, InterModComms.ADD_RECIPE, "");
}
}

View file

@ -0,0 +1,198 @@
package com.pahimar.ee3.core.helper;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
/**
* Equivalent-Exchange-3
*
* NBTHelper
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
public class ItemStackNBTHelper {
/**
* Initializes the NBT Tag Compound for the given ItemStack if it is null
*
* @param itemStack
* The ItemStack for which its NBT Tag Compound is being checked
* for initialization
*/
private static void initNBTTagCompound(ItemStack itemStack) {
if (itemStack.stackTagCompound == null) {
itemStack.setTagCompound(new NBTTagCompound());
}
}
public static boolean hasTag(ItemStack itemStack, String keyName) {
if (itemStack.stackTagCompound != null)
return itemStack.stackTagCompound.hasKey(keyName);
return false;
}
public static void removeTag(ItemStack itemStack, String keyName) {
if (itemStack.stackTagCompound != null) {
itemStack.stackTagCompound.removeTag(keyName);
}
}
// String
public static String getString(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setString(itemStack, keyName, "");
}
return itemStack.stackTagCompound.getString(keyName);
}
public static void setString(ItemStack itemStack, String keyName, String keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setString(keyName, keyValue);
}
// boolean
public static boolean getBoolean(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setBoolean(itemStack, keyName, false);
}
return itemStack.stackTagCompound.getBoolean(keyName);
}
public static void setBoolean(ItemStack itemStack, String keyName, boolean keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setBoolean(keyName, keyValue);
}
// byte
public static byte getByte(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setByte(itemStack, keyName, (byte) 0);
}
return itemStack.stackTagCompound.getByte(keyName);
}
public static void setByte(ItemStack itemStack, String keyName, byte keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setByte(keyName, keyValue);
}
// short
public static short getShort(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setShort(itemStack, keyName, (short) 0);
}
return itemStack.stackTagCompound.getShort(keyName);
}
public static void setShort(ItemStack itemStack, String keyName, short keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setShort(keyName, keyValue);
}
// int
public static int getInt(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setInteger(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getInteger(keyName);
}
public static void setInteger(ItemStack itemStack, String keyName, int keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setInteger(keyName, keyValue);
}
// long
public static long getLong(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setLong(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getLong(keyName);
}
public static void setLong(ItemStack itemStack, String keyName, long keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setLong(keyName, keyValue);
}
// float
public static float getFloat(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setFloat(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getFloat(keyName);
}
public static void setFloat(ItemStack itemStack, String keyName, float keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setFloat(keyName, keyValue);
}
// double
public static double getDouble(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setDouble(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getDouble(keyName);
}
public static void setDouble(ItemStack itemStack, String keyName, double keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setDouble(keyName, keyValue);
}
}

View file

@ -1,547 +0,0 @@
package com.pahimar.ee3.core.helper.nbt;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.pahimar.ee3.emc.EmcType;
import com.pahimar.ee3.emc.EmcValue;
import com.pahimar.ee3.item.CustomWrappedStack;
import com.pahimar.ee3.item.EnergyStack;
import com.pahimar.ee3.item.OreStack;
import com.pahimar.ee3.lib.Strings;
/**
* Equivalent-Exchange-3
*
* EncodedNBTHelper
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
public class EncodedNBTHelper {
// Constants for encoding/decoding EmcValues as NBT
public static final String TAG_NAME_EMCVALUE = "emcValue";
public static final String TEMPLATE_EMCVALUE_COMPONENT_ENTRY = "componentOrdinal_%s";
// Constants for encoding/decoding "stacks" as NBT
public static final String TAG_NAME_STACK = "stack";
// Constants for encoding/decoding recipes as NBT
public static final String TAG_NAME_RECIPES = "recipes";
public static final String TAG_NAME_RECIPE_OUTPUT = "recipeOutput";
public static final String TAG_NAME_RECIPE_INPUTS = "recipeInputs";
public static final String TEMPLATE_RECIPE_LIST_ENTRY = "recipeListEntry_%s";
public static final String TEMPLATE_RECIPE_INPUT_ENTRY = "recipeInput_%s";
// Constants for encoding/decoding Object:EmcValue mappings as NBT
public static final String TAG_NAME_STACK_VALUE_MAP = "stackValueMap";
public static final String TEMPLATE_STACK_VALUE_MAP_ENTRY = "stackValueMapEntry_%s";
/*
* Begin NBT encode/decode helper methods for EmcValue
*/
public static NBTTagCompound encodeEmcValue(float[] subValueArray) {
if (subValueArray.length == EmcType.TYPES.length) {
return encodeEmcValue(new EmcValue(subValueArray));
}
return null;
}
/**
*
* @param emcValue
* @return
*/
public static NBTTagCompound encodeEmcValue(EmcValue emcValue) {
return encodeEmcValue(TAG_NAME_EMCVALUE, emcValue);
}
/**
*
* @param tagCompoundName
* @param emcValue
* @return
*/
public static NBTTagCompound encodeEmcValue(String tagCompoundName, EmcValue emcValue) {
if (emcValue.getValue() > 0f) {
NBTTagCompound encodedEmcValue = new NBTTagCompound(tagCompoundName);
for (EmcType emcType: EmcType.TYPES) {
encodedEmcValue.setFloat(String.format(TEMPLATE_EMCVALUE_COMPONENT_ENTRY, emcType.ordinal()), emcValue.components[emcType.ordinal()]);
}
return encodedEmcValue;
}
return null;
}
/**
*
* @param nbtEncodedEmcValue
* @return
*/
public static EmcValue decodeEmcValue(NBTTagCompound nbtEncodedEmcValue) {
if (nbtEncodedEmcValue != null) {
float[] components = new float[EmcType.TYPES.length];
for (EmcType emcType : EmcType.TYPES) {
if (nbtEncodedEmcValue.hasKey(String.format(TEMPLATE_EMCVALUE_COMPONENT_ENTRY, emcType.ordinal())) && emcType.ordinal() < components.length) {
components[emcType.ordinal()] = nbtEncodedEmcValue.getFloat(String.format(TEMPLATE_EMCVALUE_COMPONENT_ENTRY, emcType.ordinal()));
}
}
EmcValue decodedEmcValue = new EmcValue(components);
if (decodedEmcValue.getValue() > 0f) {
return decodedEmcValue;
}
else {
return null;
}
}
return null;
}
/*
* Begin NBT encode/decode helpers for CustomWrappedStacks
*/
/**
*
* @param object
* @return
*/
public static NBTTagCompound encodeStack(Object object) {
return encodeStack(TAG_NAME_STACK, object);
}
/**
*
* @param tagCompoundName
* @param object
* @return
*/
// TODO Come back and move related NBT constants from Strings to this class
public static NBTTagCompound encodeStack(String tagCompoundName, Object object) {
if (CustomWrappedStack.canBeWrapped(object)) {
NBTTagCompound encodedStack = new NBTTagCompound(tagCompoundName);
CustomWrappedStack wrappedStack = new CustomWrappedStack(object);
if (wrappedStack.getWrappedStack() instanceof ItemStack) {
ItemStack itemStack = (ItemStack) wrappedStack.getWrappedStack();
itemStack.stackSize = wrappedStack.getStackSize();
encodedStack.setString(Strings.NBT_ENCODED_ATTR_TYPE, Strings.NBT_ENCODED_ATTR_TYPE_ITEM);
itemStack.writeToNBT(encodedStack);
}
else if (wrappedStack.getWrappedStack() instanceof OreStack) {
OreStack oreStack = (OreStack) wrappedStack.getWrappedStack();
encodedStack.setString(Strings.NBT_ENCODED_ATTR_TYPE, Strings.NBT_ENCODED_ATTR_TYPE_ORE);
encodedStack.setString(Strings.NBT_ENCODED_ATTR_ORE_NAME, oreStack.oreName);
encodedStack.setShort(Strings.NBT_ENCODED_ATTR_SIZE, (short) wrappedStack.getStackSize());
}
else if (wrappedStack.getWrappedStack() instanceof EnergyStack) {
EnergyStack energyStack = (EnergyStack) wrappedStack.getWrappedStack();
encodedStack.setString(Strings.NBT_ENCODED_ATTR_TYPE, Strings.NBT_ENCODED_ATTR_TYPE_ENERGY);
encodedStack.setString(Strings.NBT_ENCODED_ATTR_ENERGY_NAME, energyStack.energyName);
encodedStack.setShort(Strings.NBT_ENCODED_ATTR_SIZE, (short) wrappedStack.getStackSize());
}
return encodedStack;
}
else {
return null;
}
}
/**
*
* @param nbtEncodedStack
* @return
*/
// TODO Come back and move NBT related constants from Strings to this class
public static CustomWrappedStack decodeStack(NBTTagCompound nbtEncodedStack) {
CustomWrappedStack decodedStack = null;
// If the encoded tag compound is of type ItemStack, parse out the ItemStack info
if (nbtEncodedStack.hasKey(Strings.NBT_ENCODED_ATTR_TYPE)) {
if (nbtEncodedStack.getString(Strings.NBT_ENCODED_ATTR_TYPE).equalsIgnoreCase(Strings.NBT_ENCODED_ATTR_TYPE_ITEM)) {
ItemStack itemStack = new ItemStack(0, 0, 0);
itemStack.readFromNBT(nbtEncodedStack);
decodedStack = new CustomWrappedStack(itemStack);
}
// Else if the encoded tag compound is of type OreStack, parse out the OreStack info
else if (nbtEncodedStack.getString(Strings.NBT_ENCODED_ATTR_TYPE).equalsIgnoreCase(Strings.NBT_ENCODED_ATTR_TYPE_ORE)) {
if (nbtEncodedStack.hasKey(Strings.NBT_ENCODED_ATTR_ORE_NAME) && nbtEncodedStack.hasKey(Strings.NBT_ENCODED_ATTR_SIZE)) {
if ((nbtEncodedStack.getString(Strings.NBT_ENCODED_ATTR_ORE_NAME).length() > 0) && (nbtEncodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE) >= 0)) {
decodedStack = new CustomWrappedStack(new OreStack(nbtEncodedStack.getString(Strings.NBT_ENCODED_ATTR_ORE_NAME), nbtEncodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE)));
}
}
}
// Else if the encoded tag compound is of type EnergyStack, parse out the EnergyStack info
else if (nbtEncodedStack.getString(Strings.NBT_ENCODED_ATTR_TYPE).equalsIgnoreCase(Strings.NBT_ENCODED_ATTR_TYPE_ENERGY)) {
if (nbtEncodedStack.hasKey(Strings.NBT_ENCODED_ATTR_ENERGY_NAME) && nbtEncodedStack.hasKey(Strings.NBT_ENCODED_ATTR_SIZE)) {
if ((nbtEncodedStack.getString(Strings.NBT_ENCODED_ATTR_ENERGY_NAME).length() > 0) && (nbtEncodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE) >= 0)) {
decodedStack = new CustomWrappedStack(new EnergyStack(nbtEncodedStack.getString(Strings.NBT_ENCODED_ATTR_ENERGY_NAME), nbtEncodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE)));
}
}
}
}
/*
* This will only return non-null in the event that a proper
* ItemStack|OreStack|EnergyStack was decoded from the encoded
* NBTTagCompound
*/
return decodedStack;
}
/*
* Begin NBT encode/decode helpers for Recipe inputs
*/
/**
*
* @param recipeInputs
* @return
*/
public static NBTTagCompound encodeRecipeInputs(List<?> recipeInputs) {
return encodeRecipeInputs(TAG_NAME_RECIPE_INPUTS, recipeInputs);
}
/**
*
* @param tagCompoundName
* @param recipeInputs
* @return
*/
public static NBTTagCompound encodeRecipeInputs(String tagCompoundName, List<?> recipeInputs) {
// Check each element of the provided list to see if it can be wrapped as a CustomWrappedStack
boolean validList = true;
if (recipeInputs != null && recipeInputs.size() > 0) {
for (Object recipeInput : recipeInputs) {
if (validList && !CustomWrappedStack.canBeWrapped(recipeInput)) {
validList = false;
}
}
}
else {
validList = false;
}
// If all elements in the list can be wrapped, then proceed with encoding
if (validList) {
NBTTagCompound encodedRecipeInputs = new NBTTagCompound(tagCompoundName);
for (int i = 0; i < recipeInputs.size(); i++) {
encodedRecipeInputs.setCompoundTag(String.format(TEMPLATE_RECIPE_INPUT_ENTRY, i), encodeStack(String.format(TEMPLATE_RECIPE_INPUT_ENTRY, i), recipeInputs.get(i)));
}
return encodedRecipeInputs;
}
return null;
}
/**
*
* @param encodedRecipeInputs
* @return
*/
public static List<CustomWrappedStack> decodeRecipeInputs(NBTTagCompound encodedRecipeInputs) {
List<CustomWrappedStack> decodedRecipeInputs = new ArrayList<CustomWrappedStack>();
if (encodedRecipeInputs.getName().equalsIgnoreCase(TAG_NAME_RECIPE_INPUTS)) {
for (int i = 0; i < encodedRecipeInputs.getTags().size(); i++) {
NBTTagCompound encodedRecipeInput = encodedRecipeInputs.getCompoundTag(String.format(TEMPLATE_RECIPE_INPUT_ENTRY, i));
if (!encodedRecipeInput.hasNoTags()) {
CustomWrappedStack decodedRecipeInput = decodeStack(encodedRecipeInput);
if (decodedRecipeInput.getWrappedStack() != null) {
decodedRecipeInputs.add(decodedRecipeInput);
}
else {
return null;
}
}
}
}
return decodedRecipeInputs;
}
/*
* Begin NBT encode/decode helpers for Recipes
*/
/**
*
* @param recipeOutput
* @param recipeInputs
* @return
*/
public static NBTTagCompound encodeRecipe(Object recipeOutput, List<?> recipeInputs) {
Map<Object, List<?>> recipeMap = new HashMap<Object, List<?>>();
recipeMap.put(recipeOutput, recipeInputs);
return encodeRecipes(TAG_NAME_RECIPES, recipeMap);
}
/**
*
* @param tagCompoundName
* @param recipeOutput
* @param recipeInputs
* @return
*/
public static NBTTagCompound encodeRecipe(String tagCompoundName, Object recipeOutput, List<?> recipeInputs) {
Map<Object, List<?>> recipeMap = new HashMap<Object, List<?>>();
recipeMap.put(recipeOutput, recipeInputs);
return encodeRecipes(tagCompoundName, recipeMap);
}
public static NBTTagCompound encodeRecipe(Map<Object, List<?>> recipes) {
return encodeRecipes(TAG_NAME_RECIPES, recipes);
}
public static NBTTagCompound encodeRecipes(String tagCompoundName, Map<Object, List<?>> recipeMap) {
NBTTagCompound encodedRecipes = new NBTTagCompound(tagCompoundName);
int i = 0;
for (Object recipeOutput : recipeMap.keySet()) {
boolean recipeMapEntryValid = true;
List<?> recipeInputs = recipeMap.get(recipeOutput);
// Check to make sure that the given recipe map entry is valid (can be wrapped)
if (CustomWrappedStack.canBeWrapped(recipeOutput)) {
for (Object recipeInput : recipeInputs) {
if (recipeMapEntryValid && !CustomWrappedStack.canBeWrapped(recipeInput)) {
recipeMapEntryValid = false;
}
}
}
else {
recipeMapEntryValid = false;
}
// Add the proven valid recipe map entry to the encoding
if (recipeMapEntryValid) {
NBTTagCompound recipeListEntry = new NBTTagCompound(String.format(TEMPLATE_RECIPE_LIST_ENTRY, i));
recipeListEntry.setCompoundTag(TAG_NAME_RECIPE_OUTPUT, encodeStack(TAG_NAME_RECIPE_OUTPUT, recipeOutput));
recipeListEntry.setCompoundTag(TAG_NAME_RECIPE_INPUTS, encodeRecipeInputs(recipeInputs));
encodedRecipes.setCompoundTag(String.format(TEMPLATE_RECIPE_LIST_ENTRY, i), recipeListEntry);
i++;
}
else {
// TODO Log the failure
}
}
if (encodedRecipes.hasNoTags()) {
return null;
}
return encodedRecipes;
}
/**
*
* @param nbtEncodedRecipe
* @return
*/
public static Multimap<CustomWrappedStack, List<CustomWrappedStack>> decodeRecipe(NBTTagCompound nbtEncodedRecipe) {
Multimap<CustomWrappedStack, List<CustomWrappedStack>> decodedRecipes = HashMultimap.create();
// TODO Finish
return decodedRecipes;
}
/*
* Begin NBT encode/decode helpers for CustomWrappedStack:EmcValue mappings
*/
/**
*
* @param object
* @param emcValue
* @return
*/
public static NBTTagCompound encodeStackValueMap(Object object, EmcValue emcValue) {
return encodeStackValueMap(TAG_NAME_STACK_VALUE_MAP, object, emcValue);
}
/**
*
* @param tagCompoundName
* @param object
* @param emcValue
* @return
*/
public static NBTTagCompound encodeStackValueMap(String tagCompoundName, Object object, EmcValue emcValue) {
Map<Object, EmcValue> stackValueMap = new HashMap<Object, EmcValue>();
stackValueMap.put(object, emcValue);
return encodeStackValueMap(tagCompoundName, stackValueMap);
}
/**
*
* @param stackValueMap
* @return
*/
public static NBTTagCompound encodeStackValueMap(Map<?, EmcValue> stackValueMap) {
return encodeStackValueMap(TAG_NAME_STACK_VALUE_MAP, stackValueMap);
}
/**
*
* @param tagCompoundName
* @param stackValueMap
* @return
*/
public static NBTTagCompound encodeStackValueMap(String tagCompoundName, Map<?, EmcValue> stackValueMap) {
NBTTagCompound encodedStackValueMap = new NBTTagCompound(tagCompoundName);
int i = 0;
for (Object object : stackValueMap.keySet()) {
// Check to see if the mapping is a valid CustomWrappedStack:EmcValue mapping
boolean validStackValueAssignment = true;
if (CustomWrappedStack.canBeWrapped(object)) {
if (stackValueMap.get(object) == null || stackValueMap.get(object).getValue() <= 0f) {
validStackValueAssignment = false;
}
}
else {
validStackValueAssignment = false;
}
// If it is a valid mapping, encode the mapping and add it to the NBTTagCompound
if (validStackValueAssignment) {
NBTTagCompound stackValueMapEntry = new NBTTagCompound(String.format(TEMPLATE_STACK_VALUE_MAP_ENTRY, i));
stackValueMapEntry.setCompoundTag(TAG_NAME_STACK, encodeStack(object));
stackValueMapEntry.setCompoundTag(TAG_NAME_EMCVALUE, encodeEmcValue(stackValueMap.get(object)));
encodedStackValueMap.setCompoundTag(String.format(TEMPLATE_STACK_VALUE_MAP_ENTRY, i), stackValueMapEntry);
i++;
}
else {
// TODO Log the failure
}
}
if (encodedStackValueMap.hasNoTags()) {
return null;
}
return encodedStackValueMap;
}
/**
*
* @param encodedStackValueMap
* @return
*/
public static Map<CustomWrappedStack, EmcValue> decodeStackValueMap(NBTTagCompound encodedStackValueMap) {
Map<CustomWrappedStack, EmcValue> decodedStackValueMap = new TreeMap<CustomWrappedStack, EmcValue>();
if (!encodedStackValueMap.hasNoTags()) {
if (encodedStackValueMap.getName().equalsIgnoreCase(TAG_NAME_STACK_VALUE_MAP)) {
for (int i = 0; i < encodedStackValueMap.getTags().size(); i++) {
NBTTagCompound encodedStackValueMapEntry = encodedStackValueMap.getCompoundTag(String.format(TEMPLATE_STACK_VALUE_MAP_ENTRY, i));
if (encodedStackValueMapEntry.hasKey(TAG_NAME_STACK) && encodedStackValueMapEntry.hasKey(TAG_NAME_EMCVALUE)) {
CustomWrappedStack decodedStack = decodeStack(encodedStackValueMapEntry.getCompoundTag(TAG_NAME_STACK));
EmcValue decodedEmcValue = decodeEmcValue(encodedStackValueMapEntry.getCompoundTag(TAG_NAME_EMCVALUE));
if (decodedStack != null && decodedEmcValue != null) {
if (!decodedStackValueMap.containsKey(decodedStack)) {
decodedStackValueMap.put(decodedStack, decodedEmcValue);
}
else {
// TODO Log the duplicate entry
}
}
}
else {
// TODO Log the failure
}
}
}
else {
// TODO Log the failure
}
}
else {
// TODO Log the failure
}
if (decodedStackValueMap.size() > 0) {
return decodedStackValueMap;
}
return null;
}
}

View file

@ -1,480 +0,0 @@
package com.pahimar.ee3.core.helper.nbt;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import com.pahimar.ee3.emc.EmcType;
import com.pahimar.ee3.emc.EmcValue;
import com.pahimar.ee3.item.CustomWrappedStack;
import com.pahimar.ee3.item.EnergyStack;
import com.pahimar.ee3.item.OreStack;
import com.pahimar.ee3.lib.InterModComms;
import com.pahimar.ee3.lib.Strings;
/**
* Equivalent-Exchange-3
*
* NBTHelper
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
public class GeneralNBTHelper {
public static NBTTagCompound encodeEmcValue(EmcValue emcValue) {
return encodeEmcValue(InterModComms.EMC_VALUE_TAG_NAME, emcValue);
}
public static NBTTagCompound encodeEmcValue(String compoundName, EmcValue emcValue) {
NBTTagCompound encodedValue = new NBTTagCompound(compoundName);
for (EmcType emcType: EmcType.TYPES) {
encodedValue.setFloat(String.format(InterModComms.EMC_VALUE_COMPONENT_ORDINAL_TEMPLATE, emcType.ordinal()), emcValue.components[emcType.ordinal()]);
}
return encodedValue;
}
public static EmcValue decodeEmcValue(NBTTagCompound encodedValue) {
float[] subValues = new float[EmcType.TYPES.length];
for (EmcType emcType : EmcType.TYPES) {
if (encodedValue.hasKey(String.format(InterModComms.EMC_VALUE_COMPONENT_ORDINAL_TEMPLATE, emcType.ordinal())) && emcType.ordinal() < subValues.length) {
subValues[emcType.ordinal()] = encodedValue.getFloat(String.format(InterModComms.EMC_VALUE_COMPONENT_ORDINAL_TEMPLATE, emcType.ordinal()));
}
}
return new EmcValue(subValues);
}
public static NBTTagCompound encodeEmcValueMapping(Object object, EmcValue emcValue) {
return encodeEmcValueMapping(InterModComms.STACK_VALUE_MAPPING_TAG_NAME, object, emcValue);
}
private static NBTTagCompound encodeEmcValueMapping(String compoundName, Object object, EmcValue emcValue) {
NBTTagCompound tagCompound = new NBTTagCompound(compoundName);
tagCompound.setCompoundTag(InterModComms.STACK_TAG_NAME, encodeStackAsNBT(InterModComms.STACK_TAG_NAME, object));
tagCompound.setCompoundTag(InterModComms.EMC_VALUE_TAG_NAME, encodeEmcValue(InterModComms.EMC_VALUE_TAG_NAME, emcValue));
return tagCompound;
}
public static NBTTagCompound encodeEmcValueMappings(String compoundName, Map<CustomWrappedStack, EmcValue> stackValueMap) {
NBTTagCompound tagCompound = new NBTTagCompound(compoundName);
tagCompound.setInteger(InterModComms.COUNT_TAG_NAME, stackValueMap.keySet().size());
int i = 0;
for (CustomWrappedStack stack : stackValueMap.keySet()) {
tagCompound.setCompoundTag(String.format(InterModComms.STACK_VALUE_MAPPING_TEMPLATE, i), encodeEmcValueMapping(stack, stackValueMap.get(stack)));
}
return tagCompound;
}
public static NBTTagCompound encodeEmcValueMappings(Map<CustomWrappedStack, EmcValue> stackValueMap) {
return encodeEmcValueMappings(InterModComms.STACK_VALUE_MAPPING_TAG_NAME, stackValueMap);
}
public static NBTTagCompound encodeEmcValueMappings(String compoundName, Object object, EmcValue emcValue) {
HashMap<CustomWrappedStack, EmcValue> stackValueMap = new HashMap<CustomWrappedStack, EmcValue>();
if (CustomWrappedStack.canBeWrapped(object)) {
CustomWrappedStack wrappedObject = new CustomWrappedStack(object);
stackValueMap.put(wrappedObject, emcValue);
return encodeEmcValueMappings(compoundName, stackValueMap);
}
else {
return null;
}
}
public static Map<CustomWrappedStack, EmcValue> decodeEmcValueMappings(NBTTagCompound encodedEmcValueMap) {
Map<CustomWrappedStack, EmcValue> decodedEmcValueMapping = new HashMap<CustomWrappedStack, EmcValue>();
if (encodedEmcValueMap.getName().equals(InterModComms.STACK_VALUE_MAPPING_TAG_NAME)) {
int count = encodedEmcValueMap.getInteger(InterModComms.COUNT_TAG_NAME);
for (int i = 0; i < count; i++) {
if (encodedEmcValueMap.hasKey(String.format(InterModComms.STACK_VALUE_MAPPING_TEMPLATE, i))) {
Map<CustomWrappedStack, EmcValue> decodedMapping = decodeEmcValueMapping(encodedEmcValueMap.getCompoundTag(String.format(InterModComms.STACK_VALUE_MAPPING_TEMPLATE, i)));
if (decodedMapping != null && decodedMapping.size() > 0) {
decodedEmcValueMapping.putAll(decodedMapping);
}
}
}
}
return decodedEmcValueMapping;
}
public static Map<CustomWrappedStack, EmcValue> decodeEmcValueMapping(NBTTagCompound encodedEmcValueMapping) {
Map<CustomWrappedStack, EmcValue> decodedEmcValueMapping = new HashMap<CustomWrappedStack, EmcValue>();
if (encodedEmcValueMapping.hasKey(InterModComms.STACK_TAG_NAME) && encodedEmcValueMapping.hasKey(InterModComms.EMC_VALUE_TAG_NAME)) {
CustomWrappedStack stack = GeneralNBTHelper.decodeStackFromNBT(encodedEmcValueMapping.getCompoundTag(InterModComms.STACK_TAG_NAME));
EmcValue emcValue = GeneralNBTHelper.decodeEmcValue(encodedEmcValueMapping.getCompoundTag(InterModComms.EMC_VALUE_TAG_NAME));
if (stack != null && emcValue != null) {
if (stack.getWrappedStack() != null && emcValue.getValue() > 0) {
decodedEmcValueMapping.put(stack, emcValue);
return decodedEmcValueMapping;
}
}
}
return null;
}
// TODO Link this method to some API stuffs
public static NBTTagCompound encodeStackAsNBT(Object stackObject) {
return encodeStackAsNBT("", stackObject);
}
public static NBTTagCompound encodeStackAsNBT(String name, Object object) {
NBTTagCompound encodedStack = new NBTTagCompound(name);
if (CustomWrappedStack.canBeWrapped(object)) {
CustomWrappedStack wrappedStack = new CustomWrappedStack(object);
if (wrappedStack.getWrappedStack() instanceof ItemStack) {
ItemStack itemStack = (ItemStack) wrappedStack.getWrappedStack();
itemStack.stackSize = wrappedStack.getStackSize();
encodedStack.setString(Strings.NBT_ENCODED_ATTR_TYPE, Strings.NBT_ENCODED_ATTR_TYPE_ITEM);
itemStack.writeToNBT(encodedStack);
}
else if (wrappedStack.getWrappedStack() instanceof OreStack) {
OreStack oreStack = (OreStack) wrappedStack.getWrappedStack();
encodedStack.setString(Strings.NBT_ENCODED_ATTR_TYPE, Strings.NBT_ENCODED_ATTR_TYPE_ORE);
encodedStack.setString(Strings.NBT_ENCODED_ATTR_ORE_NAME, oreStack.oreName);
encodedStack.setShort(Strings.NBT_ENCODED_ATTR_SIZE, (short) wrappedStack.getStackSize());
}
else if (wrappedStack.getWrappedStack() instanceof EnergyStack) {
EnergyStack energyStack = (EnergyStack) wrappedStack.getWrappedStack();
encodedStack.setString(Strings.NBT_ENCODED_ATTR_TYPE, Strings.NBT_ENCODED_ATTR_TYPE_ENERGY);
encodedStack.setString(Strings.NBT_ENCODED_ATTR_ENERGY_NAME, energyStack.energyName);
encodedStack.setShort(Strings.NBT_ENCODED_ATTR_SIZE, (short) wrappedStack.getStackSize());
}
}
return encodedStack;
}
public static NBTTagCompound encodeRecipeAsNBT(Object recipeOutput, List<?> recipeInputs) {
NBTTagCompound encodedRecipe = new NBTTagCompound();
NBTTagCompound recipeOutputNBTCompound = encodeStackAsNBT(Strings.NBT_ENCODED_RECIPE_OUTPUT, recipeOutput);
NBTTagList recipeInputsNBTList = new NBTTagList(Strings.NBT_ENCODED_RECIPE_INPUTS);
for (int i = 0; i < recipeInputs.size(); i++) {
recipeInputsNBTList.appendTag(encodeStackAsNBT(Strings.NBT_ENCODED_RECIPE_INPUT_PREFIX.concat(Integer.toString(i)), recipeInputs.get(i)));
}
encodedRecipe.setCompoundTag(Strings.NBT_ENCODED_RECIPE_OUTPUT, recipeOutputNBTCompound);
encodedRecipe.setTag(Strings.NBT_ENCODED_RECIPE_INPUTS, recipeInputsNBTList);
return encodedRecipe;
}
/**
*
* @param encodedStack
* A NBTTagCompound containing the encoded information of either
* a ItemStack, OreStack, or EnergyStack
* @return A CustomWrappedStack containing the encoded stack provided in the
* NBTTagCompound (could be ItemStack, OreStack, or EnergyStack).
* Returns null in the event that no valid stack was able to be
* parsed from the encoded NBTTagCompound.
*/
public static CustomWrappedStack decodeStackFromNBT(NBTTagCompound encodedStack) {
CustomWrappedStack decodedStack = null;
// If the encoded tag compound is of type ItemStack, parse out the ItemStack info
if (encodedStack.hasKey(Strings.NBT_ENCODED_ATTR_TYPE)) {
if (encodedStack.getString(Strings.NBT_ENCODED_ATTR_TYPE).equalsIgnoreCase(Strings.NBT_ENCODED_ATTR_TYPE_ITEM)) {
ItemStack itemStack = new ItemStack(0, 0, 0);
itemStack.readFromNBT(encodedStack);
decodedStack = new CustomWrappedStack(itemStack);
}
// Else if the encoded tag compound is of type OreStack, parse out the OreStack info
else if (encodedStack.getString(Strings.NBT_ENCODED_ATTR_TYPE).equalsIgnoreCase(Strings.NBT_ENCODED_ATTR_TYPE_ORE)) {
if (encodedStack.hasKey(Strings.NBT_ENCODED_ATTR_ORE_NAME) && encodedStack.hasKey(Strings.NBT_ENCODED_ATTR_SIZE)) {
if ((encodedStack.getString(Strings.NBT_ENCODED_ATTR_ORE_NAME).length() > 0) && (encodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE) >= 0)) {
decodedStack = new CustomWrappedStack(new OreStack(encodedStack.getString(Strings.NBT_ENCODED_ATTR_ORE_NAME), encodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE)));
}
}
}
// Else if the encoded tag compound is of type EnergyStack, parse out the EnergyStack info
else if (encodedStack.getString(Strings.NBT_ENCODED_ATTR_TYPE).equalsIgnoreCase(Strings.NBT_ENCODED_ATTR_TYPE_ENERGY)) {
if (encodedStack.hasKey(Strings.NBT_ENCODED_ATTR_ENERGY_NAME) && encodedStack.hasKey(Strings.NBT_ENCODED_ATTR_SIZE)) {
if ((encodedStack.getString(Strings.NBT_ENCODED_ATTR_ENERGY_NAME).length() > 0) && (encodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE) >= 0)) {
decodedStack = new CustomWrappedStack(new EnergyStack(encodedStack.getString(Strings.NBT_ENCODED_ATTR_ENERGY_NAME), encodedStack.getShort(Strings.NBT_ENCODED_ATTR_SIZE)));
}
}
}
}
/*
* This will only return non-null in the event that a proper
* ItemStack|OreStack|EnergyStack was decoded from the encoded
* NBTTagCompound
*/
return decodedStack;
}
public static Map<CustomWrappedStack, List<CustomWrappedStack>> decodeRecipeFromNBT(NBTTagCompound encodedRecipe) {
HashMap<CustomWrappedStack, List<CustomWrappedStack>> decodedRecipe = new HashMap<CustomWrappedStack, List<CustomWrappedStack>>();
CustomWrappedStack recipeOutput = null;
ArrayList<CustomWrappedStack> recipeInputs = new ArrayList<CustomWrappedStack>();
CustomWrappedStack decodedStack = null;
NBTTagCompound encodedStack = null;
// Decode the recipe output
if (encodedRecipe.hasKey(Strings.NBT_ENCODED_RECIPE_OUTPUT)) {
decodedStack = decodeStackFromNBT(encodedRecipe.getCompoundTag(Strings.NBT_ENCODED_RECIPE_OUTPUT));
if (decodedStack != null) {
recipeOutput = decodedStack;
}
}
// Decode the recipe inputs
if (encodedRecipe.hasKey("recipeInputs")) {
NBTTagList recipeInputsTagList = encodedRecipe.getTagList(Strings.NBT_ENCODED_RECIPE_INPUTS);
for (int i = 0; i < recipeInputsTagList.tagCount(); i++) {
if (recipeInputsTagList.tagAt(i) instanceof NBTTagCompound) {
encodedStack = (NBTTagCompound) recipeInputsTagList.tagAt(i);
decodedStack = decodeStackFromNBT(encodedStack);
if (decodedStack != null) {
recipeInputs.add(decodedStack);
}
}
}
}
// If we decoded both a recipe output and some inputs for it, add it to the map
if (recipeOutput != null && recipeInputs.size() > 0) {
decodedRecipe.put(recipeOutput, recipeInputs);
}
return decodedRecipe;
}
/**
* Initializes the NBT Tag Compound for the given ItemStack if it is null
*
* @param itemStack
* The ItemStack for which its NBT Tag Compound is being checked
* for initialization
*/
private static void initNBTTagCompound(ItemStack itemStack) {
if (itemStack.stackTagCompound == null) {
itemStack.setTagCompound(new NBTTagCompound());
}
}
public static boolean hasTag(ItemStack itemStack, String keyName) {
if (itemStack.stackTagCompound != null)
return itemStack.stackTagCompound.hasKey(keyName);
return false;
}
public static void removeTag(ItemStack itemStack, String keyName) {
if (itemStack.stackTagCompound != null) {
itemStack.stackTagCompound.removeTag(keyName);
}
}
// String
public static String getString(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setString(itemStack, keyName, "");
}
return itemStack.stackTagCompound.getString(keyName);
}
public static void setString(ItemStack itemStack, String keyName, String keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setString(keyName, keyValue);
}
// boolean
public static boolean getBoolean(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setBoolean(itemStack, keyName, false);
}
return itemStack.stackTagCompound.getBoolean(keyName);
}
public static void setBoolean(ItemStack itemStack, String keyName, boolean keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setBoolean(keyName, keyValue);
}
// byte
public static byte getByte(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setByte(itemStack, keyName, (byte) 0);
}
return itemStack.stackTagCompound.getByte(keyName);
}
public static void setByte(ItemStack itemStack, String keyName, byte keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setByte(keyName, keyValue);
}
// short
public static short getShort(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setShort(itemStack, keyName, (short) 0);
}
return itemStack.stackTagCompound.getShort(keyName);
}
public static void setShort(ItemStack itemStack, String keyName, short keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setShort(keyName, keyValue);
}
// int
public static int getInt(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setInteger(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getInteger(keyName);
}
public static void setInteger(ItemStack itemStack, String keyName, int keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setInteger(keyName, keyValue);
}
// long
public static long getLong(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setLong(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getLong(keyName);
}
public static void setLong(ItemStack itemStack, String keyName, long keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setLong(keyName, keyValue);
}
// float
public static float getFloat(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setFloat(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getFloat(keyName);
}
public static void setFloat(ItemStack itemStack, String keyName, float keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setFloat(keyName, keyValue);
}
// double
public static double getDouble(ItemStack itemStack, String keyName) {
initNBTTagCompound(itemStack);
if (!itemStack.stackTagCompound.hasKey(keyName)) {
setDouble(itemStack, keyName, 0);
}
return itemStack.stackTagCompound.getDouble(keyName);
}
public static void setDouble(ItemStack itemStack, String keyName, double keyValue) {
initNBTTagCompound(itemStack);
itemStack.stackTagCompound.setDouble(keyName, keyValue);
}
}

View file

@ -11,17 +11,13 @@ import net.minecraftforge.common.MinecraftForge;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.client.audio.SoundHandler;
import com.pahimar.ee3.client.renderer.item.ItemAlchemicalChestRenderer;
import com.pahimar.ee3.client.renderer.item.ItemAlchemyTableRenderer;
import com.pahimar.ee3.client.renderer.item.ItemAludelRenderer;
import com.pahimar.ee3.client.renderer.item.ItemCalcinatorRenderer;
import com.pahimar.ee3.client.renderer.item.ItemGlassBellRenderer;
import com.pahimar.ee3.client.renderer.item.ItemRenderingTankRenderer;
import com.pahimar.ee3.client.renderer.tileentity.TileEntityAlchemicalChestRenderer;
import com.pahimar.ee3.client.renderer.tileentity.TileEntityAlchemyTableRenderer;
import com.pahimar.ee3.client.renderer.tileentity.TileEntityAludelRenderer;
import com.pahimar.ee3.client.renderer.tileentity.TileEntityCalcinatorRenderer;
import com.pahimar.ee3.client.renderer.tileentity.TileEntityGlassBellRenderer;
import com.pahimar.ee3.client.renderer.tileentity.TileEntityRenderingTankRenderer;
import com.pahimar.ee3.core.handler.DrawBlockHighlightHandler;
import com.pahimar.ee3.core.handler.KeyBindingHandler;
import com.pahimar.ee3.core.handler.TransmutationTargetOverlayHandler;
@ -36,12 +32,10 @@ import com.pahimar.ee3.lib.RenderIds;
import com.pahimar.ee3.network.PacketTypeHandler;
import com.pahimar.ee3.network.packet.PacketRequestEvent;
import com.pahimar.ee3.tileentity.TileAlchemicalChest;
import com.pahimar.ee3.tileentity.TileAlchemyTable;
import com.pahimar.ee3.tileentity.TileAludel;
import com.pahimar.ee3.tileentity.TileCalcinator;
import com.pahimar.ee3.tileentity.TileEE;
import com.pahimar.ee3.tileentity.TileGlassBell;
import com.pahimar.ee3.tileentity.TileRenderingTank;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.registry.ClientRegistry;
@ -100,15 +94,11 @@ public class ClientProxy extends CommonProxy {
RenderIds.aludelRender = RenderingRegistry.getNextAvailableRenderId();
RenderIds.alchemicalChestRender = RenderingRegistry.getNextAvailableRenderId();
RenderIds.glassBell = RenderingRegistry.getNextAvailableRenderId();
RenderIds.alchemyTable = RenderingRegistry.getNextAvailableRenderId();
RenderIds.renderingTank = RenderingRegistry.getNextAvailableRenderId();
MinecraftForgeClient.registerItemRenderer(BlockIds.CALCINATOR, new ItemCalcinatorRenderer());
MinecraftForgeClient.registerItemRenderer(BlockIds.ALUDEL_BASE, new ItemAludelRenderer());
MinecraftForgeClient.registerItemRenderer(BlockIds.ALCHEMICAL_CHEST, new ItemAlchemicalChestRenderer());
MinecraftForgeClient.registerItemRenderer(BlockIds.GLASS_BELL, new ItemGlassBellRenderer());
MinecraftForgeClient.registerItemRenderer(BlockIds.ALCHEMY_TABLE, new ItemAlchemyTableRenderer());
MinecraftForgeClient.registerItemRenderer(BlockIds.RENDERING_TANK, new ItemRenderingTankRenderer());
}
@Override
@ -120,8 +110,6 @@ public class ClientProxy extends CommonProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileAludel.class, new TileEntityAludelRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileAlchemicalChest.class, new TileEntityAlchemicalChestRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileGlassBell.class, new TileEntityGlassBellRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileAlchemyTable.class, new TileEntityAlchemyTableRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileRenderingTank.class, new TileEntityRenderingTankRenderer());
}
@Override

View file

@ -22,11 +22,9 @@ import com.pahimar.ee3.inventory.ContainerPortableTransmutation;
import com.pahimar.ee3.lib.GuiIds;
import com.pahimar.ee3.lib.Strings;
import com.pahimar.ee3.tileentity.TileAlchemicalChest;
import com.pahimar.ee3.tileentity.TileAlchemyTable;
import com.pahimar.ee3.tileentity.TileAludel;
import com.pahimar.ee3.tileentity.TileCalcinator;
import com.pahimar.ee3.tileentity.TileGlassBell;
import com.pahimar.ee3.tileentity.TileRenderingTank;
import cpw.mods.fml.common.network.IGuiHandler;
import cpw.mods.fml.common.registry.GameRegistry;
@ -72,8 +70,6 @@ public class CommonProxy implements IGuiHandler {
GameRegistry.registerTileEntity(TileAludel.class, Strings.TE_ALUDEL_NAME);
GameRegistry.registerTileEntity(TileAlchemicalChest.class, Strings.TE_ALCHEMICAL_CHEST_NAME);
GameRegistry.registerTileEntity(TileGlassBell.class, Strings.TE_GLASS_BELL_NAME);
GameRegistry.registerTileEntity(TileAlchemyTable.class, Strings.TE_ALCHEMY_TABLE_NAME);
GameRegistry.registerTileEntity(TileRenderingTank.class, Strings.TE_RENDERING_TANK_NAME);
}
public void transmuteBlock(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int sideHit) {

View file

@ -6,7 +6,7 @@ import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.lib.Strings;
/**
@ -56,8 +56,8 @@ public class ContainerAlchemicalBag extends Container {
InventoryPlayer invPlayer = player.inventory;
for (ItemStack itemStack : invPlayer.mainInventory) {
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
GeneralNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN);
}
}
}

View file

@ -1,25 +0,0 @@
package com.pahimar.ee3.inventory;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import com.pahimar.ee3.tileentity.TileAlchemyTable;
public class ContainerAlchemyTable extends Container {
private TileAlchemyTable tileAlchemyTable;
public ContainerAlchemyTable(InventoryPlayer inventoryPlayer, TileAlchemyTable tileAlchemyTable) {
this.tileAlchemyTable = tileAlchemyTable;
}
@Override
public boolean canInteractWith(EntityPlayer entityplayer) {
// TODO Auto-generated method stub
return false;
}
}

View file

@ -6,7 +6,7 @@ import net.minecraft.inventory.ContainerWorkbench;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.lib.Strings;
/**
@ -40,8 +40,8 @@ public class ContainerPortableCrafting extends ContainerWorkbench {
InventoryPlayer invPlayer = player.inventory;
for (ItemStack itemStack : invPlayer.mainInventory) {
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
GeneralNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN);
}
}
}

View file

@ -5,7 +5,7 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.lib.Strings;
/**
@ -35,8 +35,8 @@ public class ContainerPortableTransmutation extends Container {
InventoryPlayer invPlayer = player.inventory;
for (ItemStack itemStack : invPlayer.mainInventory) {
if (itemStack != null) {
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
GeneralNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN)) {
ItemStackNBTHelper.removeTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
}
}
}

View file

@ -1,130 +0,0 @@
package com.pahimar.ee3.inventory;
import java.util.UUID;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.WorldSavedData;
import com.pahimar.ee3.lib.Strings;
/**
* Equivalent-Exchange-3
*
* WorldSavedDataEE
*
* @author pahimar
* @license Lesser GNU Public License v3 (http://www.gnu.org/licenses/lgpl.html)
*
*/
public class WorldSavedDataEE extends WorldSavedData implements IInventory {
public UUID uuid;
public ItemStack[] inventory;
private final int INVENTORY_SIZE = 13 * 4;
public WorldSavedDataEE(String filePath) {
super(filePath);
inventory = new ItemStack[INVENTORY_SIZE];
}
@Override
public void readFromNBT(NBTTagCompound var1) {
// TODO Auto-generated method stub
}
@Override
public void writeToNBT(NBTTagCompound var1) {
// TODO Auto-generated method stub
}
@Override
public int getSizeInventory() {
return inventory.length;
}
@Override
public ItemStack getStackInSlot(int slot) {
return inventory[slot];
}
@Override
public ItemStack decrStackSize(int var1, int var2) {
// TODO Auto-generated method stub
return null;
}
@Override
public ItemStack getStackInSlotOnClosing(int var1) {
// TODO Auto-generated method stub
return null;
}
@Override
public void setInventorySlotContents(int var1, ItemStack var2) {
// TODO Auto-generated method stub
}
@Override
public String getInvName() {
return "worldsaveddata" + "." + Strings.ALCHEMICAL_BAG_NAME;
}
@Override
public int getInventoryStackLimit() {
return 64;
}
@Override
public void onInventoryChanged() {
// TODO Auto-generated method stub
}
@Override
public boolean isUseableByPlayer(EntityPlayer var1) {
// TODO Auto-generated method stub
return false;
}
@Override
public void openChest() {
}
@Override
public void closeChest() {
}
@Override
public boolean isInvNameLocalized() {
return false;
}
@Override
public boolean isItemValidForSlot(int i, ItemStack itemstack) {
return false;
}
}

View file

@ -9,7 +9,7 @@ import net.minecraft.world.World;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.core.helper.ItemHelper;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.lib.Colours;
import com.pahimar.ee3.lib.GuiIds;
import com.pahimar.ee3.lib.Strings;
@ -55,7 +55,7 @@ public class ItemAlchemicalBag extends ItemEE {
public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer entityPlayer) {
if (!world.isRemote) {
GeneralNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN, true);
ItemStackNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN, true);
entityPlayer.openGui(EquivalentExchange3.instance, GuiIds.ALCHEMICAL_BAG, entityPlayer.worldObj, (int) entityPlayer.posX, (int) entityPlayer.posY, (int) entityPlayer.posZ);
}
@ -79,7 +79,7 @@ public class ItemAlchemicalBag extends ItemEE {
public Icon getIcon(ItemStack itemStack, int renderPass) {
// If the bag is open
if (GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
if (ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_ALCHEMICAL_BAG_GUI_OPEN)) {
if (renderPass != 1)
return icons[0];
else

View file

@ -7,8 +7,8 @@ import net.minecraft.world.World;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.configuration.ConfigurationSettings;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.core.helper.TransmutationHelper;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.lib.GuiIds;
import com.pahimar.ee3.lib.Strings;
@ -39,7 +39,7 @@ public class ItemMiniumStone extends ItemEE
@SideOnly(Side.CLIENT)
public boolean hasEffect(ItemStack itemStack) {
return GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN) || GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
return ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN) || ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
}
@Override
@ -85,14 +85,14 @@ public class ItemMiniumStone extends ItemEE
@Override
public void openPortableCraftingGUI(EntityPlayer thePlayer, ItemStack itemStack) {
GeneralNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN, true);
ItemStackNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN, true);
thePlayer.openGui(EquivalentExchange3.instance, GuiIds.PORTABLE_CRAFTING, thePlayer.worldObj, (int) thePlayer.posX, (int) thePlayer.posY, (int) thePlayer.posZ);
}
@Override
public void openPortableTransmutationGUI(EntityPlayer thePlayer, ItemStack itemStack) {
GeneralNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN, true);
ItemStackNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN, true);
thePlayer.openGui(EquivalentExchange3.instance, GuiIds.PORTABLE_TRANSMUTATION, thePlayer.worldObj, (int) thePlayer.posX, (int) thePlayer.posY, (int) thePlayer.posZ);
}

View file

@ -7,8 +7,8 @@ import net.minecraft.world.World;
import com.pahimar.ee3.EquivalentExchange3;
import com.pahimar.ee3.configuration.ConfigurationSettings;
import com.pahimar.ee3.core.helper.ItemStackNBTHelper;
import com.pahimar.ee3.core.helper.TransmutationHelper;
import com.pahimar.ee3.core.helper.nbt.GeneralNBTHelper;
import com.pahimar.ee3.lib.GuiIds;
import com.pahimar.ee3.lib.Sounds;
import com.pahimar.ee3.lib.Strings;
@ -46,7 +46,7 @@ public class ItemPhilosophersStone extends ItemEE
@SideOnly(Side.CLIENT)
public boolean hasEffect(ItemStack itemStack) {
return GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN) || GeneralNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
return ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN) || ItemStackNBTHelper.hasTag(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN);
}
@Override
@ -92,14 +92,14 @@ public class ItemPhilosophersStone extends ItemEE
@Override
public void openPortableCraftingGUI(EntityPlayer thePlayer, ItemStack itemStack) {
GeneralNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN, true);
ItemStackNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_CRAFTING_GUI_OPEN, true);
thePlayer.openGui(EquivalentExchange3.instance, GuiIds.PORTABLE_CRAFTING, thePlayer.worldObj, (int) thePlayer.posX, (int) thePlayer.posY, (int) thePlayer.posZ);
}
@Override
public void openPortableTransmutationGUI(EntityPlayer thePlayer, ItemStack itemStack) {
GeneralNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN, true);
ItemStackNBTHelper.setBoolean(itemStack, Strings.NBT_ITEM_TRANSMUTATION_GUI_OPEN, true);
thePlayer.openGui(EquivalentExchange3.instance, GuiIds.PORTABLE_TRANSMUTATION, thePlayer.worldObj, (int) thePlayer.posX, (int) thePlayer.posY, (int) thePlayer.posZ);
}
@ -112,30 +112,30 @@ public class ItemPhilosophersStone extends ItemEE
@Override
public short getCharge(ItemStack stack) {
return GeneralNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY);
return ItemStackNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY);
}
@Override
public void setCharge(ItemStack stack, short charge) {
if (charge <= maxChargeLevel) {
GeneralNBTHelper.setShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY, charge);
ItemStackNBTHelper.setShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY, charge);
}
}
@Override
public void increaseCharge(ItemStack stack) {
if (GeneralNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) < maxChargeLevel) {
GeneralNBTHelper.setShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY, (short) (GeneralNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) + 1));
if (ItemStackNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) < maxChargeLevel) {
ItemStackNBTHelper.setShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY, (short) (ItemStackNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) + 1));
}
}
@Override
public void decreaseCharge(ItemStack stack) {
if (GeneralNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) > 0) {
GeneralNBTHelper.setShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY, (short) (GeneralNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) - 1));
if (ItemStackNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) > 0) {
ItemStackNBTHelper.setShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY, (short) (ItemStackNBTHelper.getShort(stack, Strings.NBT_ITEM_CHARGE_LEVEL_KEY) - 1));
}
}

View file

@ -5,6 +5,7 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import com.pahimar.ee3.lib.ItemIds;
import com.pahimar.ee3.lib.Strings;
import cpw.mods.fml.common.registry.GameRegistry;
@ -19,7 +20,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
*/
public class ModItems {
/* Mod item instances */
// Mod item instances
public static Item miniumShard;
public static Item inertStone;
public static Item miniumStone;
@ -30,7 +31,7 @@ public class ModItems {
public static void init() {
/* Initialize each mod item individually */
// Initialize each mod item individually
miniumShard = new ItemMiniumShard(ItemIds.MINIUM_SHARD);
inertStone = new ItemInertStone(ItemIds.INERT_STONE);
miniumStone = new ItemMiniumStone(ItemIds.MINIUM_STONE);
@ -39,14 +40,22 @@ public class ModItems {
alchemicalBag = new ItemAlchemicalBag(ItemIds.ALCHEMICAL_BAG);
alchemicalChalk = new ItemAlchemicalChalk(ItemIds.ALCHEMICAL_CHALK);
// Set container items
miniumStone.setContainerItem(miniumStone);
philStone.setContainerItem(philStone);
// TODO Register items with the GameRegistry
// Register items with the GameRegistry
GameRegistry.registerItem(miniumShard, Strings.MINIUM_SHARD_NAME);
GameRegistry.registerItem(inertStone, Strings.INERT_STONE_NAME);
GameRegistry.registerItem(miniumStone, Strings.MINIUM_STONE_NAME);
GameRegistry.registerItem(philStone, Strings.PHILOSOPHERS_STONE_NAME);
GameRegistry.registerItem(alchemicalDust, Strings.ALCHEMICAL_DUST_NAME);
GameRegistry.registerItem(alchemicalBag, Strings.ALCHEMICAL_BAG_NAME);
GameRegistry.registerItem(alchemicalChalk, Strings.ALCHEMICAL_CHALK_NAME);
// Add recipes for items
GameRegistry.addRecipe(new ItemStack(inertStone), new Object[] { "sis", "igi", "sis", Character.valueOf('s'), Block.stone, Character.valueOf('i'), Item.ingotIron, Character.valueOf('g'), Item.ingotGold });
GameRegistry.addRecipe(new ItemStack(miniumStone), new Object[] { "sss", "sis", "sss", Character.valueOf('s'), miniumShard, Character.valueOf('i'), inertStone });
GameRegistry.addShapelessRecipe(new ItemStack(alchemicalChalk), new ItemStack(Item.clay), new ItemStack(Item.dyePowder.itemID, 1, 15), new ItemStack(Item.dyePowder.itemID, 1, 15), new ItemStack(Item.dyePowder.itemID, 1, 15), new ItemStack(Item.dyePowder.itemID, 1, 15));
}
}

View file

@ -13,20 +13,14 @@ public class BlockIds {
/* Default block ids */
public static int CALCINATOR_DEFAULT = 2451;
public static int RED_WATER_STILL_DEFAULT = 2453;
public static int ALUDEL_BASE_DEFAULT = 2454;
public static int ALCHEMICAL_CHEST_DEFAULT = 2455;
public static int GLASS_BELL_DEFAULT = 2456;
public static int ALCHEMY_TABLE_DEFAULT = 2457;
public static int RENDERING_TANK_DEFAULT = 2458;
/* Current block ids */
public static int CALCINATOR;
public static int ALUDEL_BASE;
public static int ALCHEMICAL_CHEST;
public static int RED_WATER_STILL;
public static int GLASS_BELL;
public static int ALCHEMY_TABLE;
public static int RENDERING_TANK;
}

View file

@ -8,7 +8,5 @@ public class Models {
public static final String ALUDEL = MODEL_LOCATION + "aludel.obj";
public static final String CALCINATOR = MODEL_LOCATION + "calcinator.obj";
public static final String GLASS_BELL = MODEL_LOCATION + "aludel.obj";
public static final String ALCHEMY_TABLE = MODEL_LOCATION + "alchemyTable.obj";
public static final String RENDERING_TANK = MODEL_LOCATION + "renderingTank.obj";
}

View file

@ -15,7 +15,5 @@ public class RenderIds {
public static int aludelRender;
public static int alchemicalChestRender;
public static int glassBell;
public static int alchemyTable;
public static int renderingTank;
}

View file

@ -62,10 +62,6 @@ public class Strings {
public static final String ALUDEL_NAME = "aludel";
public static final String ALCHEMICAL_CHEST_NAME = "alchemicalChest";
public static final String GLASS_BELL_NAME = "glassBell";
public static final String RED_WATER_STILL_NAME = "redWaterStill";
public static final String RED_WATER_FLOWING_NAME = "redWaterFlowing";
public static final String ALCHEMY_TABLE_NAME = "alchemyTable";
public static final String RENDERING_TANK_NAME = "renderingTank";
/* Item name constants */
public static final String MINIUM_SHARD_NAME = "shardMinium";
@ -81,8 +77,6 @@ public class Strings {
public static final String TE_ALUDEL_NAME = "tileAludel";
public static final String TE_ALCHEMICAL_CHEST_NAME = "tileAlchemicalChest";
public static final String TE_GLASS_BELL_NAME = "tileGlassBell";
public static final String TE_ALCHEMY_TABLE_NAME = "tileAlchemyTable";
public static final String TE_RENDERING_TANK_NAME = "tileRenderingTank";
/* Transmutation cost related constants */
public static final String TRANSMUTATION_COST = "_cost";
@ -98,6 +92,4 @@ public class Strings {
public static final String CONTAINER_GLASS_BELL_NAME = "container.ee3:" + GLASS_BELL_NAME;
public static final String CONTAINER_INVENTORY = "container.inventory";
public static final String CONTAINER_PORTABLE_CRAFTING = "container.crafting";
public static final String CONTAINER_ALCHEMY_TABLE = "container.ee3:" + ALCHEMY_TABLE_NAME;
public static final String CONTAINER_RENDERING_TANK = "container.ee3:" + RENDERING_TANK_NAME;
}

View file

@ -36,16 +36,12 @@ public class Textures {
public static final ResourceLocation GUI_PORTABLE_CRAFTING = new ResourceLocation("textures/gui/container/crafting_table.png");
public static final ResourceLocation GUI_PORTABLE_TRANSMUTATION = ResourceLocationHelper.getResourceLocation(GUI_SHEET_LOCATION + "portableTransmutation.png");
public static final ResourceLocation GUI_GLASS_BELL = ResourceLocationHelper.getResourceLocation(GUI_SHEET_LOCATION + "glassBell.png");
public static final ResourceLocation GUI_ALCHEMY_TABLE = ResourceLocationHelper.getResourceLocation(GUI_SHEET_LOCATION + "alchemyTable.png");
public static final ResourceLocation GUI_RENDERING_TANK = ResourceLocationHelper.getResourceLocation(GUI_SHEET_LOCATION + "renderingTank.png");
// Model textures
public static final ResourceLocation MODEL_CALCINATOR = ResourceLocationHelper.getResourceLocation(MODEL_SHEET_LOCATION + "calcinator.png");
public static final ResourceLocation MODEL_ALUDEL = ResourceLocationHelper.getResourceLocation(MODEL_SHEET_LOCATION + "aludel.png");
public static final ResourceLocation MODEL_ALCHEMICAL_CHEST = ResourceLocationHelper.getResourceLocation(MODEL_SHEET_LOCATION + "alchemicalChest.png");
public static final ResourceLocation MODEL_GLASS_BELL = ResourceLocationHelper.getResourceLocation(MODEL_SHEET_LOCATION + "aludel.png");
public static final ResourceLocation MODEL_ALCHEMY_TABLE = ResourceLocationHelper.getResourceLocation(MODEL_SHEET_LOCATION + "alchemyTable.png");
public static final ResourceLocation MODEL_RENDERING_TANK = ResourceLocationHelper.getResourceLocation(MODEL_SHEET_LOCATION + "renderingTank.png");
// Effect textures
public static final ResourceLocation EFFECT_WORLD_TRANSMUTATION = ResourceLocationHelper.getResourceLocation(EFFECTS_LOCATION + "noise.png");

View file

@ -1,89 +0,0 @@
package com.pahimar.ee3.tileentity;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
public class TileAlchemyTable extends TileEE implements IInventory {
public TileAlchemyTable() {
}
@Override
public int getSizeInventory() {
// TODO Auto-generated method stub
return 0;
}
@Override
public ItemStack getStackInSlot(int slotIndex) {
// TODO Auto-generated method stub
return null;
}
@Override
public ItemStack decrStackSize(int slotIndex, int decrementAmount) {
// TODO Auto-generated method stub
return null;
}
@Override
public ItemStack getStackInSlotOnClosing(int slotIndex) {
// TODO Auto-generated method stub
return null;
}
@Override
public void setInventorySlotContents(int slotIndex, ItemStack itemstack) {
// TODO Auto-generated method stub
}
@Override
public String getInvName() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isInvNameLocalized() {
// TODO Auto-generated method stub
return false;
}
@Override
public int getInventoryStackLimit() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void openChest() {
// TODO Auto-generated method stub
}
@Override
public void closeChest() {
// TODO Auto-generated method stub
}
@Override
public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) {
// TODO Auto-generated method stub
return false;
}
}

View file

@ -1,8 +0,0 @@
package com.pahimar.ee3.tileentity;
public class TileRenderingTank extends TileEE {
public TileRenderingTank() {
}
}

View file

@ -19,14 +19,10 @@ item.ee3:alchemicalBag.name=Alchemical Bag [WIP]
item.ee3:alchemicalChalk.name=Alchemical Chalk [WIP]
# Block localizations
tile.ee3:redWaterStill.name=Red Water (Still)
tile.ee3:redWaterFlowing.name=Red Water (Flowing)
tile.ee3:calcinator.name=Calcinator [WIP]
tile.ee3:aludel.name=Aludel [WIP]
tile.ee3:alchemicalChest.name=Alchemical Chest [WIP]
tile.ee3:glassBell.name=Glass Bell [WIP]
tile.ee3:alchemyTable.name=Alchemy Table [WIP]
tile.ee3:renderingTank.name=Rendering Tank [WIP]
# GUI localizations
container.ee3:calcinator=Calcinator [WIP]
@ -34,8 +30,6 @@ container.ee3:aludel=Aludel [WIP]
container.ee3:alchemicalChest=Alchemical Chest [WIP]
container.ee3:alchemicalBag=Alchemical Bag [WIP]
container.ee3:glassBell=Glass Bell [WIP]
container.ee3:alchemyTable.name=Alchemy Table [WIP]
container.ee3:renderingTank.name=Rendering Tank [WIP]
# Command localizations
command.ee3:overlay.turned_on=Target transmutation overlay turned on

View file

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Welsh (cy_GB) Localization File</comment>
<!--REQUIRES ADDITIONAL UPDATING-->
<entry key="key.extra">Ychwanegol</entry>
<entry key="key.release">Rhyddhau</entry>
<entry key="key.toggle">Toglo</entry>
<entry key="key.charge">Gwefru</entry>
<entry key="item.shardMinium.name">Darn o Finiwm</entry>
<entry key="item.stoneInert.name">Carreg Anadweithiol</entry>
<entry key="item.stoneMinium.name">Carreg Miniwm</entry>
<entry key="item.stonePhilosophers.name">Maen Athronwyr</entry>
<entry key="item.alchemicalDustAsh.name">Lludw</entry>
<entry key="item.alchemicalDustMinium.name">Llwch Miniwm</entry>
<entry key="item.alchemicalDustVerdant.name">Llwch Werdd</entry>
<entry key="item.alchemicalDustAzure.name">Llwch Asur</entry>
<entry key="item.alchemicalDustAmaranthine.name">Llwch Amorol</entry>
<entry key="item.alchemicalDustIridescent.name">Llwch Symudliw</entry>
<entry key="item.alchemicalBag.name">Bag Alcemaidd</entry>
<entry key="tile.redWaterStill.name">Dŵr Coch (Llonydd)</entry>
<entry key="tile.redWaterFlowing.name">Dŵr Coch (Llifeiriol)</entry>
<entry key="tile.calcinator.name">Calchyniadwr</entry>
<entry key="container.calcinator">Calchyniadwr</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Ymgychwynnu gwiriad fersiwn yn erbyn yr awdurdod fersiwn pell, a leolir ar</entry>
<entry key="version.uninitialized">Ni ymgychwynodd y gwiriad fersiwn yn briodol</entry>
<entry key="version.current">Rydych yn defnyddio y fersiwn diweddaraf (@REMOTE_MOD_VERSION@) o Equivalent Exchange 3 ar gyfer @MINECRAFT_VERSION@</entry>
<entry key="version.outdated">Mae yna fersiwn mwy diweddar o @MOD_NAME@ ar gael (@REMOTE_MOD_VERSION@) ar gyfer @MINECRAFT_VERSION@. Ffeindiwch o yma: @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Gwall wrth drio gysylltu gyda'r ffeil awdurdod fersiwn pell; trio eto</entry>
<entry key="version.final_error">Gwiriad fersiwn yn stopio ar ôl tri tro aflwyddiannus</entry>
<entry key="command.ee3.overlay.turned_on">Wedi troi troshaen targed trawsnewidiad ymlaen</entry>
<entry key="command.ee3.overlay.turned_off">Wedi diffodd troshaen targed trawsnewidiad</entry>
<entry key="command.ee3.overlay.position.top_left">Safle troshaen targed trawsnewidiad wedi ei osod i'r top chwith</entry>
<entry key="command.ee3.overlay.position.top_right">Safle troshaen targed trawsnewidiad wedi ei osod i'r top dde</entry>
<entry key="command.ee3.overlay.position.bottom_left">Safle troshaen targed trawsnewidiad wedi ei osod i'r gwaelod chwith</entry>
<entry key="command.ee3.overlay.position.bottom_right">Safle troshaen targed trawsnewidiad wedi ei osod i'r gwaelod dde</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(ble mae ### yn werth degol rhwng 0.0 ac 1.0) </entry>
<entry key="command.ee3.overlay.opacity.updated">Didreiddedd troshaen targed trawsnewidiad wedi'i ddiweddaru yn llwyddiannus</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(ble mae ### yn werth degol mwy na 0.0) </entry>
<entry key="command.ee3.overlay.scale.updated">Graddfa troshaen targed trawsnewidiad wedi'i ddiweddaru yn llwyddiannus</entry>
<entry key="command.ee3.particles.turned_on">Wedi troi gronynnau Equivalent Exchange 3 ymlaen</entry>
<entry key="command.ee3.particles.turned_off">Wedi diffodd gronynnau Equivalent Exchange 3</entry>
<entry key="command.ee3.sounds.set_to_all">Chwaraeir seiniau Equivalent Exchange 3 o holl chwaraewyr</entry>
<entry key="command.ee3.sounds.set_to_self">Chwaraeir seiniau Equivalent Exchange 3 o'n hunan yn unig</entry>
<entry key="command.ee3.sounds.turned_off">Ni chwaraeir seiniau Equivalent Exchange 3 o gwbl</entry>
</properties>

View file

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Danish (da_DK) Localization File</comment>
<entry key="key.extra">Ekstra</entry>
<entry key="key.release">Slip</entry>
<entry key="key.toggle">Skift</entry>
<entry key="key.charge">Oplad</entry>
<entry key="item.shardMinium.name">Skår af Mønje</entry>
<entry key="item.stoneInert.name">Inert Sten</entry>
<entry key="item.stoneMinium.name">Mønje Sten</entry>
<entry key="item.stonePhilosophers.name">De Vises Sten</entry>
<entry key="item.alchemicalDustAsh.name">Aske</entry>
<entry key="item.alchemicalDustMinium.name">Mønje Støv</entry>
<entry key="item.alchemicalDustVerdant.name">Frodigt Støv</entry>
<entry key="item.alchemicalDustAzure.name">Azur Støv</entry>
<entry key="item.alchemicalDustAmaranthine.name">Evigtvarende Støv</entry>
<entry key="item.alchemicalDustIridescent.name">Iriserende Støv</entry>
<entry key="item.alchemicalBag.name">Alkymistisk Taske</entry>
<entry key="tile.redWaterStill.name">Rødt Vand (Stille)</entry>
<entry key="tile.redWaterFlowing.name">Rødt Vand (Stømmende)</entry>
<entry key="tile.calcinator.name">Kalkbrænder</entry>
<entry key="tile.aludel.name">Aludel</entry>
<entry key="tile.alchemicalChest.name">Alkymistisk Kiste</entry>
<entry key="tile.glassBell.name">Glasklokke</entry>
<entry key="container.calcinator">Kalkbrænder</entry>
<entry key="container.aludel">Aludel</entry>
<entry key="container.alchemicalChest">Alkymistisk Kiste</entry>
<entry key="container.alchemicalBag">Alkymistisk Taske</entry>
<entry key="container.glassBell">Glasklokke</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Initialiserer fjernversionstjek mod fjernversionens autoritetsfil, placeret i</entry>
<entry key="version.uninitialized">Versionskontrollen mislykkedes (Fjernversionstjekket initialiserede ikke korrekt)</entry>
<entry key="version.current">Bruger i øjeblikket den nyeste version (@REMOTE_MOD_VERSION@) af Equivalent Exchange 3 til @MINECRAFT_VERSION@</entry>
<entry key="version.outdated">En ny version af @MOD_NAME@ findes (@REMOTE_MOD_VERSION@) til @MINECRAFT_VERSION@. Få den her: @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Der skete en fejl i forsøg på at forbinde til fjernversionens autoritetsfil; prøver igen</entry>
<entry key="version.final_error">Versionstjekket stopper efter tre mislykkede forsøg</entry>
<entry key="version.mc_version_not_found">Kunne ikke finde en version af @MOD_NAME@ til @MINECRAFT_VERSION@ i fjernversionens autoritetsfil</entry>
<entry key="command.ee3.overlay.turned_on">Forvandlingsoverlæg slået til</entry>
<entry key="command.ee3.overlay.turned_off">Forvandlingsoverlæg slået fra</entry>
<entry key="command.ee3.overlay.position.top_left">Forvandlingsoverlæggets position er sat til øverst til venstre</entry>
<entry key="command.ee3.overlay.position.top_right">Forvandlingsoverlæggets position er sat til øverst til højre</entry>
<entry key="command.ee3.overlay.position.bottom_left">Forvandlingsoverlæggets position er sat til nederst til venstre</entry>
<entry key="command.ee3.overlay.position.bottom_right">Forvandlingsoverlæggets position er sat til nederst til højre</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(hvor ### er en decimalværdi imellem 0.0 og 1.0) </entry>
<entry key="command.ee3.overlay.opacity.updated">Forvandlingsoverlæggets gennemsigtighed opdaterede vellykket</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(hvor ### er en decimalværdi større end 0.0) </entry>
<entry key="command.ee3.overlay.scale.updated">Forvandlingsoverlæggets skala opdaterede vellykket</entry>
<entry key="command.ee3.particles.turned_on">Equivalent Exchange 3 partikler slået til</entry>
<entry key="command.ee3.particles.turned_off">Equivalent Exchange 3 partikler slået fra</entry>
<entry key="command.ee3.sounds.set_to_all">Afspiller Equivalent Exchange 3 lyde fra alle spillere</entry>
<entry key="command.ee3.sounds.set_to_self">Afspiller kun Equivalent Exchange 3 lyde fra en selv</entry>
<entry key="command.ee3.sounds.turned_off">Afspiller ikke Equivalent Exchange 3 lyde</entry>
</properties>

View file

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>French (fr_FR) Localization File</comment>
<!--REQUIRES ADDITIONAL UPDATING-->
<entry key="key.extra">Extra</entry>
<entry key="key.release">Libérer</entry>
<entry key="key.toggle">Basculer</entry>
<entry key="key.charge">Charger</entry>
<entry key="item.shardMinium.name">Eclat de Minium</entry>
<entry key="item.stoneInert.name">Pierre inerte</entry>
<entry key="item.stoneMinium.name">Pierre de Minium</entry>
<entry key="item.stonePhilosophers.name">Pierre Philosophale</entry>
<entry key="item.alchemicalDustAsh.name">Cendres</entry>
<entry key="item.alchemicalDustMinium.name">Poussière de Minium</entry>
<entry key="item.alchemicalDustVerdant.name">Poussière verdoyante</entry>
<entry key="item.alchemicalDustAzure.name">Poussière azur</entry>
<entry key="item.alchemicalDustAmaranthine.name">Poussière amarante</entry>
<entry key="item.alchemicalDustIridescent.name">Poussière iridescente</entry>
<entry key="item.alchemicalBag.name">Sac alchimique</entry>
<entry key="tile.redWaterStill.name">Eau rouge (Immobile)</entry>
<entry key="tile.redWaterFlowing.name">Eau rouge (Ruisselante)</entry>
<entry key="tile.calcinator.name">Calcinateur</entry>
<entry key="tile.aludel.name">Aludel</entry>
<entry key="tile.alchemicalChest.name">Coffre d'alchimie</entry>
<entry key="tile.glassBell.name">Cloche en verre</entry>
<entry key="container.calcinator">Calcinateur</entry>
<entry key="container.aludel">Aludel</entry>
<entry key="container.alchemicalChest">Coffre d'alchimie</entry>
<entry key="container.alchemicalBag">Sac alchimique</entry>
<entry key="container.glassBell">Cloche en verre</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Lancement de la vérification de votre version par rapport à celle de réference : </entry>
<entry key="version.uninitialized">Le lancement de la vérification a échoué</entry>
<entry key="version.current">Vous utilisez la version (@REMOTE_MOD_VERSION@) la plus récente pour votre version de Minecraft (@MINECRAFT_VERSION)</entry>
<entry key="version.outdated">Vous utilisez une version obsolète, pensez à effectuer une mise à jour ici - @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Erreur de connexion vers la version de référence; réessai...</entry>
<entry key="version.final_error">Vérification de version abandonnée apres trois échecs de connection</entry>
<entry key="command.ee3.overlay.turned_on">Affichage de cible de transmutation activé</entry>
<entry key="command.ee3.overlay.turned_off">Affichage de cible de transmutation désactivé</entry>
<entry key="command.ee3.overlay.position.top_left">Affichage de cible de transmutation mis en haut à gauche</entry>
<entry key="command.ee3.overlay.position.top_right">Affichage de cible de transmutation mis en haut à droite</entry>
<entry key="command.ee3.overlay.position.bottom_left">Affichage de cible de transmutation mis en bas à gauche</entry>
<entry key="command.ee3.overlay.position.bottom_right">Affichage de cible de transmutation mis en bas à droite</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(où ### est un nombre décimal entre 0.0 et 1.0) </entry>
<entry key="command.ee3.overlay.opacity.updated">Opacité de l'affichage de cible de transmutation changée avec succès</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(où ### est un nombre décimal supérieur à 0.0) </entry>
<entry key="command.ee3.overlay.scale.updated">Taille de l'affichage de cible de transmutation changée avec succès</entry>
<entry key="command.ee3.particles.turned_on">Particules d'Equivalent Exchange 3 activées</entry>
<entry key="command.ee3.particles.turned_off">Particules d'Equivalent Exchange 3 désactivées</entry>
<entry key="command.ee3.sounds.set_to_all">Joue les sons d'Equivalent Exchange 3 de tous les joueurs</entry>
<entry key="command.ee3.sounds.set_to_self">Joue les sons d'Equivalent Exchange 3 de soi uniquement</entry>
<entry key="command.ee3.sounds.turned_off">Sons d'Equivalent Exchange 3 désactivés</entry>
</properties>

View file

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Japanese (ja_JP) Localization File</comment>
<!--REQUIRES ADDITIONAL UPDATING-->
<entry key="key.extra">エクストラ</entry>
<entry key="key.release">リリース</entry>
<entry key="key.toggle">トグル</entry>
<entry key="key.charge">チャージ</entry>
<entry key="item.shardMinium.name">鉛丹の欠片</entry>
<entry key="item.stoneInert.name">不活性な石</entry>
<entry key="item.stoneMinium.name">鉛丹石</entry>
<entry key="item.stonePhilosophers.name">賢者の石</entry>
<entry key="item.alchemicalDustAsh.name"></entry>
<entry key="item.alchemicalDustMinium.name">鉛丹の粉末</entry>
<entry key="item.alchemicalDustVerdant.name">新緑の粉末</entry>
<entry key="item.alchemicalDustAzure.name">紺碧の粉末</entry>
<entry key="item.alchemicalDustAmaranthine.name">紫赤色の粉末</entry>
<entry key="item.alchemicalDustIridescent.name">玉虫色の粉末</entry>
<entry key="item.alchemicalBag.name">奇術袋</entry>
<entry key="tile.redWaterStill.name">赤い水 (水源)</entry>
<entry key="tile.redWaterFlowing.name">赤い水 (流水)</entry>
<entry key="tile.calcinator.name">煆焼器</entry>
<entry key="tile.aludel.name">アルデル</entry>
<entry key="tile.alchemicalChest.name">奇術チェスト</entry>
<entry key="title.glassBell.name">グラスの鐘</entry>
<entry key="container.calcinator">煆焼器</entry>
<entry key="container.aludel">アルデル</entry>
<entry key="container.alchemicalChest">奇術チェスト</entry>
<entry key="container.alchemicalBag">奇術袋</entry>
<entry key="container.glassBell.name">グラスの鐘</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">オンラインバージョンチェックの初期化中。場所:</entry>
<entry key="version.uninitialized">バージョンチェックに失敗しました。 (初期化に失敗しました。)</entry>
<entry key="version.current">MINECRAFT (バージョン @REMOTE_MOD_VERSION@) ため @MOD_NAME@ の最新バージョンを使用しています。</entry>
<entry key="version.outdated">@MINECRAFT_VERSION@ ため @MOD_NAME@ の新しいバージョン (@REMOTE_MOD_VERSION@) があります。 @MOD_UPDATE_LOCATION@ からアップデートしてください。</entry>
</properties>

View file

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Latin Italian (la_IT) Localization File</comment>
<!--REQUIRES ADDITIONAL UPDATING-->
<entry key="key.extra">Extra</entry>
<entry key="key.release">Libe</entry>
<entry key="key.toggle">Muta</entry>
<entry key="key.charge">Trade</entry>
<entry key="item.shardMinium.name">Pars Rufi Plumbi</entry>
<entry key="item.stoneInert.name">Ignavus Lapidus</entry>
<entry key="item.stoneMinium.name">Pars Rufi Lapidus</entry>
<entry key="item.stonePhilosophers.name">Lapis Philosophi</entry>
<entry key="item.alchemicalDustAsh.name">Fraxinus</entry>
<entry key="item.alchemicalDustMinium.name">Afa Rufi Plumbi</entry>
<entry key="item.alchemicalDustVerdant.name">Viridis Afae</entry>
<entry key="item.alchemicalDustAzure.name">Caeruleus Afae</entry>
<entry key="item.alchemicalDustAmaranthine.name">Amarantus Afae</entry>
<entry key="item.alchemicalDustIridescent.name">Iris Afae</entry>
<entry key="item.alchemicalBag.name">Saccus Alchimiae</entry>
<entry key="tile.redWaterStill.name">Rufi Aqua (Residans)</entry>
<entry key="tile.redWaterFlowing.name">Rufi Aqua (Fluens)</entry>
<entry key="tile.calcinator.name">Auctor Calcus</entry>
<entry key="container.calcinator">Auctor Calcus</entry>
<entry key="itemGroup.EE3">Aequipollens Conlubi Trium</entry>
<entry key="version.init_log_message">Incipiens senecti quaesitum contra procul senecti auctoritatis scapus, positus ad</entry>
<entry key="version.uninitialized">Senecti quaesitum non adimplet cum fortuna (Senecti quaestim non incipit recte)</entry>
<entry key="version.current">Iam abutas the most novellissimus senectus tuo senecto Meiarti(Minecraft) </entry>
<entry key="version.outdated">Iam abutas non tempore senectus; Consule hic afferte hodie - @MOD_UPDATE_LOCATION@</entry>
<entry key="version.connection_error">Erratum annectans ad procul senecto auctoritatis scapus (Scisa tuum retiacula ad invicem nexus?)</entry>
<entry key="version.check_disabled">Procul senectus debilitatus, neglectens</entry>
</properties>

View file

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Polish (pl_PL) Localization File</comment>
<entry key="key.extra">Dodatkowa funkcja</entry>
<entry key="key.release">Wypuść</entry>
<entry key="key.toggle">Przełącz</entry>
<entry key="key.charge">Ładuj</entry>
<entry key="item.shardMinium.name">Odłam Minium</entry>
<entry key="item.stoneInert.name">Nieaktywny kamień</entry>
<entry key="item.stoneMinium.name">Minium</entry>
<entry key="item.stonePhilosophers.name">Kamień filozoficzny</entry>
<entry key="item.alchemicalDustAsh.name">Popiół</entry>
<entry key="item.alchemicalDustMinium.name">Proszek Minium</entry>
<entry key="item.alchemicalDustVerdant.name">Zielony proszek</entry>
<entry key="item.alchemicalDustAzure.name">Lazurowy proszek</entry>
<entry key="item.alchemicalDustAmaranthine.name">Amarantowy proszek</entry>
<entry key="item.alchemicalDustIridescent.name">Opalowy Proszek</entry>
<entry key="item.alchemicalBag.name">Torba alchemiczna</entry>
<entry key="tile.redWaterStill.name">Czerwona woda (Stojąca)</entry>
<entry key="tile.redWaterFlowing.name">Czerwona woda (Płynąca)</entry>
<entry key="tile.calcinator.name">Kalcynator</entry>
<entry key="tile.aludel.name">Aludel</entry>
<entry key="tile.alchemicalChest.name">Skrzynia alchemiczna</entry>
<entry key="tile.glassBell.name">Szklany dzwon</entry>
<entry key="container.calcinator">Kalcynator</entry>
<entry key="container.aludel">Aludel</entry>
<entry key="container.alchemicalChest">Skrzynia alchemiczna</entry>
<entry key="container.alchemicalBag">Torba alchemiczna</entry>
<entry key="container.glassBell">Szklany dzwon</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Rozpoczynanie zdalnego sprawdzania wersji, według</entry>
<entry key="version.uninitialized">Zdalne sprawdzanie wersji nie rozpoczęło się poprawnie</entry>
<entry key="version.current">Używasz najnowszej wersji (@REMOTE_MOD_VERSION@) of Equivalent Exchange 3 dla @MINECRAFT_VERSION@</entry>
<entry key="version.outdated">Nowa wersja @MOD_NAME@ (@REMOTE_MOD_VERSION@) dla @MINECRAFT_VERSION@ dostępna. Pobierz ją tutaj: @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Błąd podczas sprawdzania wersji; ponawianie próby</entry>
<entry key="version.final_error">Sprawdzanie wersji przerwane po trzech nieudanych próbach</entry>
<entry key="version.mc_version_not_found">Odnalezienie wersji @MOD_NAME@ dla @MINECRAFT_VERSION@ niemożliwe</entry>
<entry key="command.ee3.overlay.turned_on">Nakładka transmutacji włączona</entry>
<entry key="command.ee3.overlay.turned_off">Nakładka transmutacji wyłączona</entry>
<entry key="command.ee3.overlay.position.top_left">Nakładka transmutacji przeniesona w lewy górny róg</entry>
<entry key="command.ee3.overlay.position.top_right">Nakładka transmutacji przeniesona w prawy górny róg</entry>
<entry key="command.ee3.overlay.position.bottom_left">Nakładka transmutacji przeniesona w lewy dolny róg</entry>
<entry key="command.ee3.overlay.position.bottom_right">Nakładka transmutacji przeniesona w prawy dolny róg</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(gdzie ### to wartość dziesiętna pomiędzy 0.0 i 1.0) </entry>
<entry key="command.ee3.overlay.opacity.updated">Przezroczystość nakładki transmutacji zmieniona pomyślnie</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(gdzie ### to wartość dziesiętna powyżej 0.0) </entry>
<entry key="command.ee3.overlay.scale.updated">Skala nakładki transmutacji zmieniona pomyślnie</entry>
<entry key="command.ee3.particles.turned_on">Efekty cząsteczek Equivalent Exchange 3 włączone</entry>
<entry key="command.ee3.particles.turned_off">Efekty cząsteczek Equivalent Exchange 3 wyłączone</entry>
<entry key="command.ee3.sounds.set_to_all">Odtwarzanie dźwięków Equivalent Exchange 3 od wszystkich graczy</entry>
<entry key="command.ee3.sounds.set_to_self">Odtwarzanie dźwięków Equivalent Exchange 3 tylko od siebie</entry>
<entry key="command.ee3.sounds.turned_off">Odtwarzanie dźwięków Equivalent Exchange 3 wyłączone</entry>
</properties>

View file

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Portuguese (pt_BR) Localization File</comment>
<entry key="key.extra">Extra</entry>
<entry key="key.release">Liberar</entry>
<entry key="key.toggle">Alterar</entry>
<entry key="key.charge">Carregar</entry>
<entry key="item.shardMinium.name">Fragmento de Minium</entry>
<entry key="item.stoneInert.name">Pedra Inerte</entry>
<entry key="item.stoneMinium.name">Pedra de Minium</entry>
<entry key="item.stonePhilosophers.name">Pedra Filosofal</entry>
<entry key="item.alchemicalDustAsh.name">Cinzas</entry>
<entry key="item.alchemicalDustMinium.name">Pó de Minium</entry>
<entry key="item.alchemicalDustVerdant.name">Pó Verdejantet</entry>
<entry key="item.alchemicalDustAzure.name">Pó Indigo</entry>
<entry key="item.alchemicalDustAmaranthine.name">Pó Amarantino</entry>
<entry key="item.alchemicalDustIridescent.name">Pó Iridescente</entry>
<entry key="item.alchemicalBag.name">Bolsa Alquímica</entry>
<entry key="tile.redWaterStill.name">Água vermelha (Parada)</entry>
<entry key="tile.redWaterFlowing.name">Água Vermelha(Corrente)</entry>
<entry key="tile.calcinator.name">Calcinador</entry>
<entry key="tile.aludel.name">Sublimador</entry>
<entry key="tile.alchemicalChest.name">Baú Alquímico</entry>
<entry key="tile.glassBell.name">Sino Vítreo</entry>
<entry key="container.calcinator">Calcinador</entry>
<entry key="container.aludel">Sublimador</entry>
<entry key="container.alchemicalChest">Baú Alquímico</entry>
<entry key="container.alchemicalBag">Bolsa Alquímica</entry>
<entry key="container.glassBell">Sino Vítreo</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Iniciando checagem da versão remota contra a versão remota autorítaria,localizada em</entry>
<entry key="version.uninitialized">Checagem da versão remota não pode ser feita adequadamente</entry>
<entry key="version.current">Atualmente usando a versão mais recente (@REMOTE_MOD_VERSION@) de Equivalent Exchange 3 para @MINECRAFT_VERSION@</entry>
<entry key="version.outdated">Uma nova versão de @MOD_NAME@ existe (@REMOTE_MOD_VERSION@) para @MINECRAFT_VERSION@. Consigam-na aqui: @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Erro enquanto conectando à versão remota do arquivo autoritário; tentando novamente</entry>
<entry key="version.final_error">Checagem de versão finalizada com erros após várias tentativas sem sucesso</entry>
<entry key="version.mc_version_not_found">Não foi possível achar a versão de @MOD_NAME@ para @MINECRAFT_VERSION@ na versão remota autoritária</entry>
<entry key="command.ee3.overlay.turned_on">Camdada do alvo de transmutação ligada</entry>
<entry key="command.ee3.overlay.turned_off">Camada do alvo de transmutação desligada</entry>
<entry key="command.ee3.overlay.position.top_left">Posição da camada alvo de transmutação configurada para noroeste</entry>
<entry key="command.ee3.overlay.position.top_right">Posição da camada alvo de transmutação configurada para nordeste</entry>
<entry key="command.ee3.overlay.position.bottom_left">Posição da camada alvo de transmutação configurada para sudoeste</entry>
<entry key="command.ee3.overlay.position.bottom_right">Posição da camada alvo de transmutação configurada para sudeste</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(onde ### é um valor decimal entre 0.0 e 1.0) </entry>
<entry key="command.ee3.overlay.opacity.updated">Opacidade da camada alvo de transmutação configurada com sucesso</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(onde ### é um valor decimal maior que 0.0) </entry>
<entry key="command.ee3.overlay.scale.updated">Escala da camada alvo de transmutação configurada com sucesso</entry>
<entry key="command.ee3.particles.turned_on">Partículas do Equivalent Exchange 3 ligadas</entry>
<entry key="command.ee3.particles.turned_off">Partículas do Equivalent Exchange 3 desligadas</entry>
<entry key="command.ee3.sounds.set_to_all">Tocando sons do Equivalent Exchange 3 para todos os jogadores</entry>
<entry key="command.ee3.sounds.set_to_self">Tocando sons do Equivalent Exchange 3 para si mesmo</entry>
<entry key="command.ee3.sounds.turned_off">Sons do Equivalent Exchange 3 desabilitados</entry>
</properties>

View file

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Slovak (sk_SK) Localization File</comment>
<entry key="key.extra">Extra</entry>
<entry key="key.release">Vypustiť</entry>
<entry key="key.toggle">Prepnúť</entry>
<entry key="key.charge">Nabiť</entry>
<entry key="item.shardMinium.name">Úlomok suríku</entry>
<entry key="item.stoneInert.name">Inertný kameň</entry>
<entry key="item.stoneMinium.name">Suríkový kameň</entry>
<entry key="item.stonePhilosophers.name">Kameň mudrcov</entry>
<entry key="item.alchemicalDustAsh.name">Popol</entry>
<entry key="item.alchemicalDustMinium.name">Suríkový prach</entry>
<entry key="item.alchemicalDustVerdant.name">Nazelenaný prach</entry>
<entry key="item.alchemicalDustAzure.name">Azurový prach</entry>
<entry key="item.alchemicalDustAmaranthine.name">Amarantový prach</entry>
<entry key="item.alchemicalDustIridescent.name">Dúhový prach</entry>
<entry key="item.alchemicalBag.name">Alchemystická taška</entry>
<entry key="tile.redWaterStill.name">Červená voda (zdroj)</entry>
<entry key="tile.redWaterFlowing.name">Červená voda (tečúca)</entry>
<entry key="tile.calcinator.name">Kalcinátor</entry>
<entry key="tile.aludel.name">Sublimačná nádoba</entry>
<entry key="tile.alchemicalChest.name">Alchemystická truhla</entry>
<entry key="tile.glassBell.name">Sklenený zvon</entry>
<entry key="container.glassBell">Sklenený zvon</entry>
<entry key="container.calcinator">Kalcinátor</entry>
<entry key="container.aludel">Sublimačná nádoba</entry>
<entry key="container.alchemicalChest">Alchemystická truhla</entry>
<entry key="container.alchemicalBag">Alchemystická taška</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Prebieha kontrola verzie, vzdialený soúbor je umiestnený na</entry>
<entry key="version.uninitialized">Kontrola veruie nebola úspešná(nepodarila sa inicializácia)</entry>
<entry key="version.current">Používate najaktuálnejšiu verziu (@REMOTE_MOD_VERSION@) módu Equivalent Exchange 3, ktorá je pre vašu verziu Minecraftu (@MINECRAFT_VERSION@) k dispozicií</entry>
<entry key="version.outdated">Je k dispozicií nová verzia @MOD_NAME@ (@REMOTE_MOD_VERSION@) pre MC @MINECRAFT_VERSION@, stiahnuteľná tu: @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Chyba pri pripojovaní k servru, ktorý poskytuje informácie o verzii, skúšam sa znovu pripojiť</entry>
<entry key="version.final_error">Kontrola verzie deaktivovaná, pretože tri posledné kontroly boli neúspešne</entry>
<entry key="version.mc_version_not_found">Nepodarilo sa nájsť verziu @MOD_NAME@ pre @MINECRAFT_VERSION@</entry>
<entry key="command.ee3.overlay.turned_on">Zobrazenie výsledku transmutácie zapnuté</entry>
<entry key="command.ee3.overlay.turned_off">Zobrazenie výsledku transmutácie vypnuté</entry>
<entry key="command.ee3.overlay.position.top_left">Pozícia zobrazenia výsledku transmutáce nastavená na ľavý horný kút</entry>
<entry key="command.ee3.overlay.position.top_right">Pozícia zobrazenia výsledku transmutáce nastavená na pravý horný kút</entry>
<entry key="command.ee3.overlay.position.bottom_left">Pozícia zobrazenia výsledku transmutáce nastavená na ľavý spodný kút</entry>
<entry key="command.ee3.overlay.position.bottom_right">Pozícia zobrazenia výsledku transmutáce nastavená na pravý spodný kút</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(kde ### je desetinná hodnota medzi 0,0 a 1,0) </entry>
<entry key="command.ee3.overlay.opacity.updated">Priehľadnosť výsledku transmutácie úspešne zmenená</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(kde ### je desetinná hodnota vetšia než 0,0) </entry>
<entry key="command.ee3.overlay.scale.updated">Veľkosť výsledku transmutácie úspešne zmenená</entry>
<entry key="command.ee3.particles.turned_on">Časticové efekty módu Equivalent Exchange 3 zapnuté</entry>
<entry key="command.ee3.particles.turned_off">Časticové efekty módu Equivalent Exchange 3 vypnuté</entry>
<entry key="command.ee3.sounds.set_to_all">Prehrávane zvukov módu Equivalent Exchange 3: počuješ všetkých hráčov</entry>
<entry key="command.ee3.sounds.set_to_self">Prehrávane zvukov módu Equivalent Exchange 3: počuješ iba seba</entry>
<entry key="command.ee3.sounds.turned_off">Prehrávane zvukov módu Equivalent Exchange 3: vypnuté</entry>
</properties>

View file

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Serbian (sr_SP) Localization File</comment>
<entry key="key.extra">Dodatno</entry>
<entry key="key.release">Oslabiti</entry>
<entry key="key.toggle">Menjati</entry>
<entry key="key.charge">Pojačati</entry>
<entry key="item.shardMinium.name">Odlomak Miniuma</entry>
<entry key="item.stoneInert.name">Inertni Kamen</entry>
<entry key="item.stoneMinium.name">Miniumski Kamen</entry>
<entry key="item.stonePhilosophers.name">Filozofski Kamen</entry>
<entry key="item.alchemicalDustAsh.name">Pepeo</entry>
<entry key="item.alchemicalDustMinium.name">Miniumska Prašina</entry>
<entry key="item.alchemicalDustVerdant.name">Verdantna Prašina</entry>
<entry key="item.alchemicalDustAzure.name">Azurna Prašina</entry>
<entry key="item.alchemicalDustAmaranthine.name">Amarantinska Prašina</entry>
<entry key="item.alchemicalDustIridescent.name">Iridesentna Prašina</entry>
<entry key="item.alchemicalBag.name">Alhemijska Vreća</entry>
<entry key="tile.redWaterStill.name">Crvena Voda (Stajaća)</entry>
<entry key="tile.redWaterFlowing.name">Crvena Voda (Tekuća)</entry>
<entry key="tile.calcinator.name">Kalcinator</entry>
<entry key="tile.aludel.name">Aludel</entry>
<entry key="tile.alchemicalChest.name">Alhemijski Kovčeg</entry>
<entry key="tile.glassBell.name">Stakleno Zvono</entry>
<entry key="container.calcinator">Kalcinator</entry>
<entry key="container.aludel">Aludel</entry>
<entry key="container.alchemicalChest">Alhemijski Kovčeg</entry>
<entry key="container.alchemicalBag">Alhemijska Vreća</entry>
<entry key="container.glassBell">Stakleno Zvono</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Započinjem proveru verzije u poređenju sa naj novijom, koji se nalazi u</entry>
<entry key="version.uninitialized">Provera verzije neuspešna</entry>
<entry key="version.current">Trenutno koristite naj noviju verziju (@REMOTE_MOD_VERSION@) Equivalent Exchange 3 moda za @MINECRAFT_VERSION@</entry>
<entry key="version.outdated">Nova @MOD_NAME@ verzija postoji (@REMOTE_MOD_VERSION@) za @MINECRAFT_VERSION@. Skinite je ovde: @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Greška u konektovanju sa serverom; pokusavam ponovo</entry>
<entry key="version.final_error">Provera verzije zaustavljena posle tri neušpesna pokušaja</entry>
<entry key="version.mc_version_not_found">Potraga za verziju @MOD_NAME@ za @MINECRAFT_VERSION@, neuspešna</entry>
<entry key="command.ee3.overlay.turned_on">Prikaz mete transmutacije uključen</entry>
<entry key="command.ee3.overlay.turned_off">Prikaz mete transmutacije isključen</entry>
<entry key="command.ee3.overlay.position.top_left">Prikaz mete transmutacije stavljen na gornji levi ugao</entry>
<entry key="command.ee3.overlay.position.top_right">Prikaz mete transmutacije stavljen na gornji desni ugao</entry>
<entry key="command.ee3.overlay.position.bottom_left">Prikaz mete transmutacije stavljen na donji levi ugao</entry>
<entry key="command.ee3.overlay.position.bottom_right">Prikaz mete transmutacije stavljen na donji desni ugao</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(gde je ### decimalna vrednost izmedju 0.0 i 1.0) </entry>
<entry key="command.ee3.overlay.opacity.updated">Prozirnost prikaza mete transmutacije uspešno promenjena</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(gde je ### decimalna vrednost veća nego 0.0) </entry>
<entry key="command.ee3.overlay.scale.updated">Veličina prikaza mete transmutacije uspešno promenjena</entry>
<entry key="command.ee3.particles.turned_on">Equivalent Exchange 3 čestice uključene</entry>
<entry key="command.ee3.particles.turned_off">Equivalent Exchange 3 čestice isključene</entry>
<entry key="command.ee3.sounds.set_to_all">Čućete Equivalent Exchange 3 zvukove od svih igrača</entry>
<entry key="command.ee3.sounds.set_to_self">Čućete samo svoje Equivalent Exchange 3 zvukove</entry>
<entry key="command.ee3.sounds.turned_off">Equivalent Exchange 3 zvukovi isključeni</entry>
</properties>

View file

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Turkish (tr_TR) Localization File</comment>
<entry key="key.extra">Ekstra</entry>
<entry key="key.release">Bırak</entry>
<entry key="key.toggle">Aç/Kapa</entry>
<entry key="key.charge">Şarj</entry>
<entry key="item.shardMinium.name">Minium Parçası</entry>
<entry key="item.stoneInert.name">Inert Taşı</entry>
<entry key="item.stoneMinium.name">Minium Taşı</entry>
<entry key="item.stonePhilosophers.name">Felsefe Taşı</entry>
<entry key="item.alchemicalDustAsh.name">Kül</entry>
<entry key="item.alchemicalDustMinium.name">Minium Tozu</entry>
<entry key="item.alchemicalDustVerdant.name">Verdant Tozu</entry>
<entry key="item.alchemicalDustAzure.name">Azure Tozu</entry>
<entry key="item.alchemicalDustAmaranthine.name">Amaranthine Tozu</entry>
<entry key="item.alchemicalDustIridescent.name">Iridescent Tozu</entry>
<entry key="item.alchemicalBag.name">Simyacı Çantası</entry>
<entry key="tile.redWaterStill.name">Kızıl Su (Sakin)</entry>
<entry key="tile.redWaterFlowing.name">Kızıl Su (Akışkan)</entry>
<entry key="tile.calcinator.name">Kalsinator</entry>
<entry key="tile.aludel.name">Aludel</entry>
<entry key="tile.alchemicalChest.name">Simyacı Sandığı</entry>
<entry key="tile.glassBell.name">Camdan Çan</entry>
<entry key="container.calcinator">Kalsinator</entry>
<entry key="container.aludel">Aludel</entry>
<entry key="container.alchemicalChest">Simyacı Sandığı</entry>
<entry key="container.alchemicalBag">Simyacı Çantası</entry>
<entry key="container.glassBell">Camdan Çan</entry>
<entry key="itemGroup.EE3">Equivalent Exchange 3</entry>
<entry key="version.init_log_message">Uzak versiyon denetlemesi, bulundugu yer</entry>
<entry key="version.uninitialized">Uzak versiyon denetlemesi başarisiz</entry>
<entry key="version.current">Minecraft(@MINECRAFT_VERSION@) için en yeni Equivalent Exchange 3 versiyonunu(@REMOTE_MOD_VERSION@) kullanıyorsunuz.</entry>
<entry key="version.outdated">Minecraft(@MINECRAFT_VERSION@) için yeni bir @MOD_NAME@ versiyonu var (@REMOTE_MOD_VERSION@). Burdan İndirin: @MOD_UPDATE_LOCATION@</entry>
<entry key="version.general_error">Uzak versiyon yetki dosyasına bağlanılırken hata ile karşılaşıldı; tekrar deneniyor</entry>
<entry key="version.final_error">3 başarısız bağlantı denemesi sonucu versiyon kontrolü durduruluyor</entry>
<entry key="version.mc_version_not_found">Uzak versiyon yetkisinde @MOD_NAME@ 'in @MINECRAFT_VERSION@ için versiyon bulunamadı.</entry>
<entry key="command.ee3.overlay.turned_on">Dönüşüm hedef arayüzü kapatıldı</entry>
<entry key="command.ee3.overlay.turned_off">Dönüşüm hedef arayüzü açıldı</entry>
<entry key="command.ee3.overlay.position.top_left">Dönüşüm hedef arayüzü konumu sol üst'e ayarlandı</entry>
<entry key="command.ee3.overlay.position.top_right">Dönüşüm hedef arayüzü konumu sağ üst'e ayarlandı</entry>
<entry key="command.ee3.overlay.position.bottom_left">Dönüşüm hedef arayüzü konumu sol alt'a ayarlandı</entry>
<entry key="command.ee3.overlay.position.bottom_right">Dönüşüm hedef arayüzü konumu sağ alt'a ayarlandı</entry>
<entry key="command.ee3.overlay.opacity.usage.additional_text">(###, 0.0 ile 1.0 arasında ondalıklı sayı) </entry>
<entry key="command.ee3.overlay.opacity.updated">Dönüşüm hedef arayüzü şeffaflığı güncellendi</entry>
<entry key="command.ee3.overlay.scale.usage.additional_text">(###, 0.0 dan daha büyük ondalıklı sayı) </entry>
<entry key="command.ee3.overlay.scale.updated">Dönüşüm hedef arayüzü boyutu güncellendi</entry>
<entry key="command.ee3.particles.turned_on">Equivalent Exchange 3 parçacık efekti açıldı</entry>
<entry key="command.ee3.particles.turned_off">Equivalent Exchange 3 parçacık efekti kapatıldı</entry>
<entry key="command.ee3.sounds.set_to_all">Equivalent Exchange 3 sesleri bütün oyuncular için açık</entry>
<entry key="command.ee3.sounds.set_to_self">Equivalent Exchange 3 sesleri sadece kendinde açık</entry>
<entry key="command.ee3.sounds.turned_off">Equivalent Exchange 3 sesleri kapalı</entry>
</properties>

View file

@ -1,694 +0,0 @@
# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
# File Created: 18.09.2013 10:30:03
#
# object Table_Top
#
v 1.0000 0.9000 -0.5000
v 0.8536 0.9000 -0.8536
v 0.8536 1.0000 -0.8536
v 1.0000 1.0000 -0.5000
v 0.5000 0.9000 -1.0000
v 0.5000 1.0000 -1.0000
v 0.1464 0.9000 -0.8536
v 0.1464 1.0000 -0.8536
v 0.0000 0.9000 -0.5000
v 0.0000 1.0000 -0.5000
v 0.1464 0.9000 -0.1464
v 0.1464 1.0000 -0.1464
v 0.5000 0.9000 -0.0000
v 0.5000 1.0000 -0.0000
v 0.8536 0.9000 -0.1464
v 0.8536 1.0000 -0.1464
v 0.5000 0.9000 -0.5000
v 0.5000 1.0000 -0.5000
# 18 vertices
vn 0.9239 0.0000 -0.3827
vn 0.3827 0.0000 -0.9239
vn -0.3827 0.0000 -0.9239
vn -0.9239 0.0000 -0.3827
vn -0.9239 0.0000 0.3827
vn -0.3827 0.0000 0.9239
vn 0.3827 0.0000 0.9239
vn 0.9239 0.0000 0.3827
vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
# 10 vertex normals
vt 0.0000 0.3750 0.9995
vt 0.3438 0.3750 0.8532
vt 0.3438 0.4688 0.8532
vt -0.0000 0.4688 0.9995
vt 0.0000 0.3750 0.8532
vt 0.3438 0.3750 0.9995
vt 0.3438 0.4688 0.9995
vt -0.0000 0.4688 0.8532
vt 0.0000 0.3750 0.1468
vt 0.3438 0.3750 0.0005
vt 0.3438 0.4688 0.0005
vt -0.0000 0.4688 0.1468
vt 0.0000 0.3750 0.0005
vt 0.3438 0.3750 0.1468
vt 0.3438 0.4688 0.1468
vt -0.0000 0.4688 0.0005
vt 0.0625 0.9375 0.8987
vt 0.0000 0.7500 0.8987
vt 0.2500 0.7500 0.8987
vt 0.2500 1.0000 0.8987
vt 0.4375 0.9375 0.8987
vt 0.5000 0.7500 0.8987
vt 0.4375 0.5625 0.8987
vt 0.2500 0.5000 0.8987
vt 0.0625 0.5625 0.8987
vt 0.5000 0.7500 0.9995
vt 0.4375 0.9375 0.9995
vt 0.2500 0.7500 0.9995
vt 0.2500 1.0000 0.9995
vt 0.0625 0.9375 0.9995
vt 0.0000 0.7500 0.9995
vt 0.0625 0.5625 0.9995
vt 0.2500 0.5000 0.9995
vt 0.4375 0.5625 0.9995
# 34 texture coords
g Table_Top
s off
f 1/1/1 2/2/1 3/3/1
f 3/3/1 4/4/1 1/1/1
f 2/5/2 5/6/2 6/7/2
f 6/7/2 3/8/2 2/5/2
f 5/1/3 7/2/3 8/3/3
f 8/3/3 6/4/3 5/1/3
f 7/9/4 9/10/4 10/11/4
f 10/11/4 8/12/4 7/9/4
f 9/13/5 11/14/5 12/15/5
f 12/15/5 10/16/5 9/13/5
f 11/9/6 13/10/6 14/11/6
f 14/11/6 12/12/6 11/9/6
f 13/13/7 15/14/7 16/15/7
f 16/15/7 14/16/7 13/13/7
f 15/5/8 1/6/8 4/7/8
f 4/7/8 16/8/8 15/5/8
f 2/17/9 1/18/9 17/19/9
f 5/20/9 2/17/9 17/19/9
f 7/21/9 5/20/9 17/19/9
f 9/22/9 7/21/9 17/19/9
f 11/23/9 9/22/9 17/19/9
f 13/24/9 11/23/9 17/19/9
f 15/25/9 13/24/9 17/19/9
f 1/18/9 15/25/9 17/19/9
f 4/26/10 3/27/10 18/28/10
f 3/27/10 6/29/10 18/28/10
f 6/29/10 8/30/10 18/28/10
f 8/30/10 10/31/10 18/28/10
f 10/31/10 12/32/10 18/28/10
f 12/32/10 14/33/10 18/28/10
f 14/33/10 16/34/10 18/28/10
f 16/34/10 4/26/10 18/28/10
# 32 faces
#
# object Table_Legs01
#
v 0.5000 0.4599 -0.4766
v 0.3957 0.4608 -0.4766
v 0.3462 0.2251 -0.4766
v 0.5000 0.2251 -0.4766
v 0.0374 0.1074 -0.4766
v 0.0097 0.0085 -0.4766
v 0.1420 0.0085 -0.4766
v 0.1482 0.1846 -0.4766
v 0.2270 0.1584 -0.4766
v 0.3210 0.0085 -0.4766
v 0.5000 0.6855 -0.4766
v 0.3687 0.6860 -0.4766
v 0.2270 0.1584 -0.5234
v 0.3462 0.2251 -0.5234
v 0.3210 0.0085 -0.5234
v 0.0374 0.1074 -0.5234
v 0.1482 0.1846 -0.5234
v 0.1420 0.0085 -0.5234
v 0.0097 0.0085 -0.5234
v 0.3957 0.4608 -0.5234
v 0.3687 0.6860 -0.5234
v 0.5000 0.6855 -0.5234
v 0.5000 0.4599 -0.5234
v 0.2525 0.9112 -0.4766
v 0.2525 0.9112 -0.5234
v 0.5000 0.0085 -0.5234
v 0.5000 0.0085 -0.4766
v 0.6538 0.2251 -0.4766
v 0.6043 0.4608 -0.4766
v 0.9626 0.1074 -0.4766
v 0.8518 0.1846 -0.4766
v 0.8580 0.0085 -0.4766
v 0.9903 0.0085 -0.4766
v 0.7730 0.1584 -0.4766
v 0.6790 0.0085 -0.4766
v 0.6313 0.6860 -0.4766
v 0.7730 0.1584 -0.5234
v 0.6790 0.0085 -0.5234
v 0.6538 0.2251 -0.5234
v 0.9626 0.1074 -0.5234
v 0.9903 0.0085 -0.5234
v 0.8580 0.0085 -0.5234
v 0.8518 0.1846 -0.5234
v 0.6313 0.6860 -0.5234
v 0.6043 0.4608 -0.5234
v 0.7475 0.9112 -0.4766
v 0.7475 0.9112 -0.5234
v 0.5000 0.9112 -0.4766
v 0.5000 0.9112 -0.5234
v 0.5000 0.2251 -0.5234
# 50 vertices
vn 0.0000 -0.0000 1.0000
vn -0.0000 -0.0000 1.0000
vn -0.0000 0.0000 -1.0000
vn 0.0000 0.0000 -1.0000
vn -0.9628 0.2701 -0.0000
vn -0.5719 0.8203 -0.0000
vn -0.5719 0.8203 0.0000
vn 0.3148 0.9492 0.0000
vn -0.4877 0.8730 0.0000
vn -0.9787 0.2052 0.0000
vn -0.9787 0.2052 -0.0000
vn -0.8888 -0.4583 0.0000
vn -0.8888 -0.4583 -0.0000
vn 0.0000 -1.0000 0.0000
vn 0.9628 0.2701 -0.0000
vn 0.5719 0.8203 0.0000
vn 0.5719 0.8203 -0.0000
vn -0.3148 0.9492 0.0000
vn 0.4877 0.8730 0.0000
vn 0.9787 0.2052 -0.0000
vn 0.9787 0.2052 0.0000
vn 0.8888 -0.4583 -0.0000
vn -0.9929 -0.1190 0.0000
vn 0.9929 -0.1190 0.0000
vn 0.9929 -0.1190 -0.0000
# 25 vertex normals
vt 0.6719 0.3594 0.4766
vt 0.6094 0.3594 0.4766
vt 0.5625 0.2188 0.4766
vt 0.6719 0.2188 0.4766
vt 0.3750 0.1406 0.4766
vt 0.3594 0.0625 0.4766
vt 0.4531 0.0625 0.4766
vt 0.4531 0.1875 0.4766
vt 0.5000 0.1719 0.4766
vt 0.5625 0.0625 0.4766
vt 0.6719 0.5156 0.4766
vt 0.5781 0.5156 0.4766
vt 0.8438 0.1719 0.5234
vt 0.7813 0.2188 0.5234
vt 0.7813 0.0625 0.5234
vt 0.9688 0.1406 0.5234
vt 0.8906 0.1875 0.5234
vt 0.8906 0.0625 0.5234
vt 0.9844 0.0625 0.5234
vt 0.7344 0.3594 0.5234
vt 0.7656 0.5156 0.5234
vt 0.6719 0.5156 0.5234
vt 0.6719 0.3594 0.5234
vt 0.9375 -0.0000 0.0102
vt 0.9375 0.0313 0.0102
vt 0.8438 0.0313 0.0379
vt 0.8438 -0.0000 0.0379
vt 0.0000 0.0313 0.1001
vt 0.0000 -0.0000 0.1001
vt 0.0938 -0.0000 0.1779
vt 0.0938 0.0313 0.1779
vt 0.1875 -0.0000 0.1516
vt 0.1875 0.0313 0.1516
vt 0.3125 -0.0000 0.2187
vt 0.3125 0.0313 0.2187
vt 0.7188 -0.0000 0.3464
vt 0.7188 0.0313 0.3464
vt 0.5000 0.0313 0.3958
vt 0.5000 -0.0000 0.3958
vt 0.2500 -0.0000 0.3688
vt 0.2500 0.0313 0.3688
vt 0.0313 0.0313 0.2528
vt 0.0313 -0.0000 0.2528
vt 0.4375 0.0313 0.0005
vt 0.4375 -0.0000 0.0005
vt 0.6250 -0.0000 0.0005
vt 0.6250 0.0313 0.0005
vt 0.8125 -0.0000 0.0005
vt 0.8125 0.0313 0.0005
vt 0.9375 -0.0000 0.0005
vt 0.9375 0.0313 0.0005
vt 0.7813 0.2188 0.4766
vt 0.7344 0.3594 0.4766
vt 0.9688 0.1406 0.4766
vt 0.8906 0.1875 0.4766
vt 0.8906 0.0625 0.4766
vt 0.9844 0.0625 0.4766
vt 0.8438 0.1719 0.4766
vt 0.7813 0.0625 0.4766
vt 0.7656 0.5156 0.4766
vt 0.5000 0.1719 0.5234
vt 0.5625 0.0625 0.5234
vt 0.5625 0.2188 0.5234
vt 0.3750 0.1406 0.5234
vt 0.3594 0.0625 0.5234
vt 0.4531 0.0625 0.5234
vt 0.4531 0.1875 0.5234
vt 0.5781 0.5156 0.5234
vt 0.6094 0.3594 0.5234
vt 0.9375 0.0313 0.9898
vt 0.8438 0.0313 0.9621
vt 0.8438 -0.0000 0.9621
vt 0.9375 -0.0000 0.9898
vt 0.9063 0.0313 0.1001
vt 0.8125 0.0313 0.1779
vt 0.8125 -0.0000 0.1779
vt 0.9063 -0.0000 0.1001
vt 0.7188 0.0313 0.1516
vt 0.7188 -0.0000 0.1516
vt 0.5938 0.0313 0.2187
vt 0.5938 -0.0000 0.2187
vt 0.7188 0.0313 0.6536
vt 0.5000 0.0313 0.6042
vt 0.5000 -0.0000 0.6042
vt 0.7188 -0.0000 0.6536
vt 0.0313 -0.0000 0.7472
vt 0.2500 -0.0000 0.6312
vt 0.2500 0.0313 0.6312
vt 0.0313 0.0313 0.7472
vt 0.2813 0.0313 0.0005
vt 0.2813 -0.0000 0.0005
vt 0.0938 0.0313 0.0005
vt 0.0938 -0.0000 0.0005
vt -0.0000 0.0313 0.0005
vt -0.0000 -0.0000 0.0005
vt 0.6719 0.6875 0.4766
vt 0.5000 0.6875 0.4766
vt 0.8438 0.6875 0.5234
vt 0.6719 0.6875 0.5234
vt 0.6250 0.3594 0.3958
vt 0.6563 0.3594 0.3958
vt 0.6563 0.5156 0.3688
vt 0.6250 0.5156 0.3688
vt 0.8438 0.6875 0.4766
vt 0.5000 0.6875 0.5234
vt 0.6250 0.3594 0.6042
vt 0.6563 0.3594 0.6042
vt 0.6563 0.5156 0.6312
vt 0.6250 0.5156 0.6312
vt 0.6719 0.0625 0.4766
vt 0.6719 0.2188 0.5234
vt 0.6719 0.0625 0.5234
# 112 texture coords
g Table_Legs01
s off
f 19/35/11 20/36/11 21/37/11
f 21/37/11 22/38/11 19/35/11
f 23/39/11 24/40/11 25/41/11
f 25/41/11 26/42/11 23/39/11
f 27/43/12 26/42/12 25/41/12
f 25/41/11 28/44/11 27/43/11
f 29/45/11 30/46/11 20/36/11
f 20/36/11 19/35/11 29/45/11
f 31/47/13 32/48/13 33/49/13
f 34/50/13 35/51/13 36/52/13
f 36/52/14 37/53/14 34/50/14
f 31/47/14 33/49/14 36/52/14
f 36/52/14 35/51/14 31/47/14
f 38/54/13 39/55/13 40/56/13
f 40/56/13 41/57/13 38/54/13
f 37/58/15 24/59/15 23/60/15
f 23/60/15 34/61/15 37/58/15
f 34/62/16 23/63/16 26/64/16
f 26/64/17 35/65/17 34/62/17
f 35/65/18 26/64/18 27/66/18
f 27/66/18 31/67/18 35/65/18
f 31/67/19 27/66/19 21/68/19
f 21/68/19 32/69/19 31/67/19
f 32/70/20 21/71/20 20/72/20
f 20/72/21 38/73/21 32/70/21
f 39/74/22 30/75/22 42/76/22
f 42/76/23 43/77/23 39/74/23
f 44/78/24 45/79/24 28/80/24
f 28/80/24 33/81/24 44/78/24
f 33/81/24 28/80/24 25/82/24
f 25/82/24 36/83/24 33/81/24
f 36/83/24 25/82/24 24/84/24
f 24/84/24 37/85/24 36/83/24
f 46/86/12 47/87/12 19/35/12
f 19/35/12 22/38/12 46/86/12
f 48/88/12 49/89/12 50/90/12
f 50/90/11 51/91/11 48/88/11
f 52/92/11 53/93/11 50/90/11
f 50/90/11 49/89/11 52/92/11
f 47/87/12 54/94/12 29/45/12
f 29/45/12 19/35/12 47/87/12
f 55/95/14 56/96/14 57/97/14
f 58/98/14 59/99/14 60/100/14
f 60/100/14 61/101/14 58/98/14
f 55/95/13 61/101/13 60/100/13
f 60/100/14 56/96/14 55/95/14
f 40/56/14 62/102/14 63/103/14
f 63/103/14 41/57/14 40/56/14
f 59/104/25 58/105/25 48/106/25
f 48/106/25 51/107/25 59/104/25
f 58/108/26 61/109/26 49/110/26
f 49/110/27 48/111/27 58/108/27
f 61/109/28 55/112/28 52/113/28
f 52/113/28 49/110/28 61/109/28
f 55/112/29 57/114/29 46/115/29
f 46/115/29 52/113/29 55/112/29
f 57/116/30 63/117/30 47/118/30
f 47/118/31 46/119/31 57/116/31
f 64/120/32 54/121/32 62/122/32
f 62/122/32 65/123/32 64/120/32
f 44/78/24 56/124/24 53/125/24
f 53/125/24 45/79/24 44/78/24
f 56/124/24 60/126/24 50/127/24
f 50/127/24 53/125/24 56/124/24
f 60/126/24 59/128/24 51/129/24
f 51/129/24 50/127/24 60/126/24
f 66/130/11 42/131/11 30/46/11
f 30/46/11 29/45/11 66/130/11
f 39/55/14 43/132/14 67/133/14
f 67/133/13 40/56/13 39/55/13
f 38/134/33 20/135/33 30/136/33
f 30/136/33 39/137/33 38/134/33
f 54/94/11 64/138/11 66/130/11
f 66/130/12 29/45/12 54/94/12
f 67/133/14 65/139/14 62/102/14
f 62/102/14 40/56/14 67/133/14
f 47/140/34 63/141/34 62/142/34
f 62/142/35 54/143/35 47/140/35
f 21/37/11 28/44/11 45/144/11
f 45/144/11 22/38/11 21/37/11
f 45/144/11 53/93/11 46/86/11
f 46/86/12 22/38/12 45/144/12
f 32/48/13 38/54/13 41/57/13
f 41/57/13 68/145/13 32/48/13
f 41/57/14 63/103/14 57/97/14
f 57/97/14 68/145/14 41/57/14
f 32/48/13 68/145/13 44/146/13
f 44/146/14 33/49/14 32/48/14
f 21/37/11 27/43/11 28/44/11
f 44/146/14 68/145/14 57/97/14
f 57/97/14 56/96/14 44/146/14
f 53/93/12 52/92/12 46/86/12
# 92 faces
#
# object Table_Legs02
#
v 0.5234 0.4599 -0.5000
v 0.5234 0.4608 -0.3957
v 0.5234 0.2251 -0.3462
v 0.5234 0.2251 -0.5000
v 0.5234 0.1074 -0.0374
v 0.5234 0.0085 -0.0097
v 0.5234 0.0085 -0.1420
v 0.5234 0.1846 -0.1482
v 0.5234 0.1584 -0.2270
v 0.5234 0.0085 -0.3210
v 0.5234 0.6855 -0.5000
v 0.5234 0.6860 -0.3687
v 0.4766 0.1584 -0.2270
v 0.4766 0.2251 -0.3462
v 0.4766 0.0085 -0.3210
v 0.4766 0.1074 -0.0374
v 0.4766 0.1846 -0.1482
v 0.4766 0.0085 -0.1420
v 0.4766 0.0085 -0.0097
v 0.4766 0.4608 -0.3957
v 0.4766 0.6860 -0.3687
v 0.4766 0.6855 -0.5000
v 0.4766 0.4599 -0.5000
v 0.5234 0.9112 -0.2525
v 0.4766 0.9112 -0.2525
v 0.4766 0.0085 -0.5000
v 0.5234 0.0085 -0.5000
v 0.5234 0.2251 -0.6538
v 0.5234 0.4608 -0.6043
v 0.5234 0.1074 -0.9626
v 0.5234 0.1846 -0.8518
v 0.5234 0.0085 -0.8580
v 0.5234 0.0085 -0.9903
v 0.5234 0.1584 -0.7730
v 0.5234 0.0085 -0.6790
v 0.5234 0.6860 -0.6313
v 0.4766 0.1584 -0.7730
v 0.4766 0.0085 -0.6790
v 0.4766 0.2251 -0.6538
v 0.4766 0.1074 -0.9626
v 0.4766 0.0085 -0.9903
v 0.4766 0.0085 -0.8580
v 0.4766 0.1846 -0.8518
v 0.4766 0.6860 -0.6313
v 0.4766 0.4608 -0.6043
v 0.5234 0.9112 -0.7475
v 0.4766 0.9112 -0.7475
v 0.5234 0.9112 -0.5000
v 0.4766 0.9112 -0.5000
v 0.4766 0.2251 -0.5000
# 50 vertices
vn 1.0000 -0.0000 -0.0000
vn 1.0000 -0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn -1.0000 0.0000 -0.0000
vn -0.0000 0.2701 0.9628
vn -0.0000 0.8203 0.5719
vn 0.0000 0.8203 0.5719
vn 0.0000 0.9492 -0.3148
vn 0.0000 0.8730 0.4877
vn 0.0000 0.2052 0.9787
vn 0.0000 -0.4583 0.8888
vn -0.0000 -0.4583 0.8888
vn 0.0000 -1.0000 -0.0000
vn -0.0000 0.2701 -0.9628
vn 0.0000 0.8203 -0.5719
vn -0.0000 0.8203 -0.5719
vn 0.0000 0.9492 0.3148
vn 0.0000 0.8730 -0.4877
vn -0.0000 0.2052 -0.9787
vn -0.0000 -0.4583 -0.8888
vn 0.0000 -0.1190 0.9929
vn -0.0000 -0.1190 -0.9929
# 22 vertex normals
vt 0.6719 0.3594 0.5234
vt 0.6094 0.3594 0.5234
vt 0.5625 0.2188 0.5234
vt 0.6719 0.2188 0.5234
vt 0.3750 0.1406 0.5234
vt 0.3594 0.0625 0.5234
vt 0.4531 0.0625 0.5234
vt 0.4531 0.1875 0.5234
vt 0.5000 0.1719 0.5234
vt 0.5625 0.0625 0.5234
vt 0.6719 0.5156 0.5234
vt 0.5781 0.5156 0.5234
vt 0.8438 0.1719 0.4766
vt 0.7813 0.2188 0.4766
vt 0.7813 0.0625 0.4766
vt 0.9688 0.1406 0.4766
vt 0.8906 0.1875 0.4766
vt 0.8906 0.0625 0.4766
vt 0.9844 0.0625 0.4766
vt 0.7344 0.3594 0.4766
vt 0.7656 0.5156 0.4766
vt 0.6719 0.5156 0.4766
vt 0.6719 0.3594 0.4766
vt 0.9375 -0.0000 0.0102
vt 0.9375 0.0313 0.0102
vt 0.8438 0.0313 0.0379
vt 0.8438 -0.0000 0.0379
vt 0.9063 -0.0000 0.1001
vt 0.9063 0.0313 0.1001
vt 0.8125 0.0313 0.1779
vt 0.8125 -0.0000 0.1779
vt 0.7188 0.0313 0.1516
vt 0.7188 -0.0000 0.1516
vt 0.5938 0.0313 0.2187
vt 0.5938 -0.0000 0.2187
vt 0.7188 -0.0000 0.3464
vt 0.7188 0.0313 0.3464
vt 0.5000 0.0313 0.3958
vt 0.5000 -0.0000 0.3958
vt 0.2500 -0.0000 0.3688
vt 0.2500 0.0313 0.3688
vt 0.0313 0.0313 0.2528
vt 0.0313 -0.0000 0.2528
vt 0.4375 0.0313 0.0005
vt 0.4375 -0.0000 0.0005
vt 0.6250 -0.0000 0.0005
vt 0.6250 0.0313 0.0005
vt 0.8125 -0.0000 0.0005
vt 0.8125 0.0313 0.0005
vt 0.9375 -0.0000 0.0005
vt 0.9375 0.0313 0.0005
vt 0.7813 0.2188 0.5234
vt 0.7344 0.3594 0.5234
vt 0.9688 0.1406 0.5234
vt 0.8906 0.1875 0.5234
vt 0.8906 0.0625 0.5234
vt 0.9844 0.0625 0.5234
vt 0.8438 0.1719 0.5234
vt 0.7813 0.0625 0.5234
vt 0.7656 0.5156 0.5234
vt 0.5000 0.1719 0.4766
vt 0.5625 0.0625 0.4766
vt 0.5625 0.2188 0.4766
vt 0.3750 0.1406 0.4766
vt 0.3594 0.0625 0.4766
vt 0.4531 0.0625 0.4766
vt 0.4531 0.1875 0.4766
vt 0.5781 0.5156 0.4766
vt 0.6094 0.3594 0.4766
vt 0.9375 0.0313 0.9898
vt 0.8438 0.0313 0.9621
vt 0.8438 -0.0000 0.9621
vt 0.9375 -0.0000 0.9898
vt -0.0000 -0.0000 0.1001
vt 0.0938 -0.0000 0.1779
vt 0.0938 0.0313 0.1779
vt -0.0000 0.0313 0.1001
vt 0.1875 -0.0000 0.1516
vt 0.1875 0.0313 0.1516
vt 0.2813 -0.0000 0.2187
vt 0.2813 0.0313 0.2187
vt 0.7188 0.0313 0.6536
vt 0.5000 0.0313 0.6042
vt 0.5000 -0.0000 0.6042
vt 0.7188 -0.0000 0.6536
vt 0.0313 -0.0000 0.7472
vt 0.2500 -0.0000 0.6312
vt 0.2500 0.0313 0.6312
vt 0.0313 0.0313 0.7472
vt 0.2813 0.0313 0.0005
vt 0.2813 -0.0000 0.0005
vt 0.0938 0.0313 0.0005
vt 0.0938 -0.0000 0.0005
vt -0.0000 0.0313 0.0005
vt -0.0000 -0.0000 0.0005
vt 0.6719 0.6875 0.5234
vt 0.5000 0.6875 0.5234
vt 0.8438 0.6875 0.4766
vt 0.6719 0.6875 0.4766
vt 0.2656 0.0313 0.3958
vt 0.2656 0.0000 0.3958
vt 0.5000 0.0000 0.3688
vt 0.5000 0.0313 0.3688
vt 0.8438 0.6875 0.5234
vt 0.5000 0.6875 0.4766
vt 0.6250 0.3594 0.6042
vt 0.6563 0.3594 0.6042
vt 0.6563 0.5156 0.6312
vt 0.6250 0.5156 0.6312
vt 0.6719 0.0625 0.5234
vt 0.6719 0.2188 0.4766
vt 0.6719 0.0625 0.4766
# 112 texture coords
g Table_Legs02
s off
f 69/147/36 70/148/36 71/149/36
f 71/149/36 72/150/36 69/147/36
f 73/151/36 74/152/36 75/153/36
f 75/153/36 76/154/36 73/151/36
f 77/155/37 76/154/37 75/153/37
f 75/153/36 78/156/36 77/155/36
f 79/157/36 80/158/36 70/148/36
f 70/148/36 69/147/36 79/157/36
f 81/159/38 82/160/38 83/161/38
f 84/162/38 85/163/38 86/164/38
f 86/164/38 87/165/38 84/162/38
f 81/159/38 83/161/38 86/164/38
f 86/164/39 85/163/39 81/159/39
f 88/166/38 89/167/38 90/168/38
f 90/168/38 91/169/38 88/166/38
f 87/170/40 74/171/40 73/172/40
f 73/172/40 84/173/40 87/170/40
f 84/174/41 73/175/41 76/176/41
f 76/176/42 85/177/42 84/174/42
f 85/177/43 76/176/43 77/178/43
f 77/178/43 81/179/43 85/177/43
f 81/179/44 77/178/44 71/180/44
f 71/180/44 82/181/44 81/179/44
f 82/182/45 71/183/45 70/184/45
f 70/184/45 88/185/45 82/182/45
f 89/186/46 80/187/46 92/188/46
f 92/188/47 93/189/47 89/186/47
f 94/190/48 95/191/48 78/192/48
f 78/192/48 83/193/48 94/190/48
f 83/193/48 78/192/48 75/194/48
f 75/194/48 86/195/48 83/193/48
f 86/195/48 75/194/48 74/196/48
f 74/196/48 87/197/48 86/195/48
f 96/198/37 97/199/37 69/147/37
f 69/147/37 72/150/37 96/198/37
f 98/200/37 99/201/37 100/202/37
f 100/202/36 101/203/36 98/200/36
f 102/204/36 103/205/36 100/202/36
f 100/202/36 99/201/36 102/204/36
f 97/199/37 104/206/37 79/157/37
f 79/157/37 69/147/37 97/199/37
f 105/207/39 106/208/39 107/209/39
f 108/210/38 109/211/38 110/212/38
f 110/212/39 111/213/39 108/210/39
f 105/207/38 111/213/38 110/212/38
f 110/212/38 106/208/38 105/207/38
f 90/168/39 112/214/39 113/215/39
f 113/215/39 91/169/39 90/168/39
f 109/216/49 108/217/49 98/218/49
f 98/218/49 101/219/49 109/216/49
f 108/220/50 111/221/50 99/222/50
f 99/222/51 98/223/51 108/220/51
f 111/221/52 105/224/52 102/225/52
f 102/225/52 99/222/52 111/221/52
f 105/224/53 107/226/53 96/227/53
f 96/227/53 102/225/53 105/224/53
f 107/228/54 113/229/54 97/230/54
f 97/230/54 96/231/54 107/228/54
f 114/232/55 104/233/55 112/234/55
f 112/234/55 115/235/55 114/232/55
f 94/190/48 106/236/48 103/237/48
f 103/237/48 95/191/48 94/190/48
f 106/236/48 110/238/48 100/239/48
f 100/239/48 103/237/48 106/236/48
f 110/238/48 109/240/48 101/241/48
f 101/241/48 100/239/48 110/238/48
f 116/242/36 92/243/36 80/158/36
f 80/158/36 79/157/36 116/242/36
f 89/167/38 93/244/38 117/245/38
f 117/245/38 90/168/38 89/167/38
f 88/246/56 70/247/56 80/248/56
f 80/248/56 89/249/56 88/246/56
f 104/206/36 114/250/36 116/242/36
f 116/242/37 79/157/37 104/206/37
f 117/245/38 115/251/38 112/214/38
f 112/214/39 90/168/39 117/245/39
f 97/252/57 113/253/57 112/254/57
f 112/254/57 104/255/57 97/252/57
f 71/149/36 78/156/36 95/256/36
f 95/256/36 72/150/36 71/149/36
f 95/256/36 103/205/36 96/198/36
f 96/198/37 72/150/37 95/256/37
f 82/160/38 88/166/38 91/169/38
f 91/169/38 118/257/38 82/160/38
f 91/169/39 113/215/39 107/209/39
f 107/209/39 118/257/39 91/169/39
f 82/160/38 118/257/38 94/258/38
f 94/258/38 83/161/38 82/160/38
f 71/149/36 77/155/36 78/156/36
f 94/258/39 118/257/39 107/209/39
f 107/209/38 106/208/38 94/258/38
f 103/205/37 102/204/37 96/198/37
# 92 faces

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB