diff --git a/README.md b/README.md index c331e9c19..042489490 100644 --- a/README.md +++ b/README.md @@ -11,22 +11,16 @@ Mekanism is a Minecraft add-on featuring high-tech machinery that can be used to # Modpacks, websites, reviews, or anything else # Some people really don't like others to review or distribute their mods, something which I honestly don't understand. You are the ones who help get this mod into the Minecraft community's hands, which seems like a good thing from my perspective. -So go ahead, do whatever you like. I honestly just don't want you messaging me on IRC or on the forums, asking my permission. If you need proof, provide a link to this page, or give them information on the MIT license. +As long as you follow the terms laid out in the license below, go right ahead. I honestly just don't want you messaging me on IRC or on the forums, asking my permission. If you need proof, provide a link to this page. # License # -Licenses are not really my friend -- strict closed source software really drives me nuts. Even more, with a derivative work coded in a language such as Java, nothing can really prevent people from looking through my source with JD-GUI. -However, I welcome people wanting to learn how to mod, and because of this, I have licensed Mekanism under the MIT License, which doesn't include many guidelines. This basically means you have the right to use my mod's source code, learn -from it, and even use it in your own mod. You even have the right to distribute this mod to the public and make money off of it, although this is something I wouldn't necessarily encourage! :) - -Copyright © 2016 Aidan Brady - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +Licenses are not really my friend -- strict closed source software really drives me nuts. Even more, with a derivative work coded in a language such as Java, nothing can really prevent people from looking through my source with JD-GUI. I learned to program through a combination of textbooks, trial-and-error and browsing open source projects. As such, I have decided to license Mekanism under the MIT license, allowing for anyone with an interest in the project to fork/pull/distribute. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +**Copyright © 2016 Aidan Brady** + # Developers & Credits # **Lead Developer:** aidancbrady diff --git a/build.properties b/build.properties index 3f05658fc..b8e16c745 100644 --- a/build.properties +++ b/build.properties @@ -4,4 +4,4 @@ FMP_version=1.1.2.331 CCLIB_version=1.1.3.136 NEI_version=1.0.4.101 CCC_version=1.0.6.39 -mod_version=9.0.2 +mod_version=9.1.1 diff --git a/src/api/java/ic2/api/Direction.class b/src/api/java/ic2/api/Direction.class index 937799309..15cd477fc 100644 Binary files a/src/api/java/ic2/api/Direction.class and b/src/api/java/ic2/api/Direction.class differ diff --git a/src/api/java/ic2/api/Direction.java b/src/api/java/ic2/api/Direction.java index f0c687bbf..b550ca311 100644 --- a/src/api/java/ic2/api/Direction.java +++ b/src/api/java/ic2/api/Direction.java @@ -1,5 +1,8 @@ package ic2.api; +import java.util.EnumSet; +import java.util.Set; + import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -36,6 +39,15 @@ public enum Direction { */ ZP; + private Direction() { + int side = ordinal() / 2; + int sign = getSign(); + + xOffset = side == 0 ? sign : 0; + yOffset = side == 1 ? sign : 0; + zOffset = side == 2 ? sign : 0; + } + public static Direction fromSideValue(int side) { return directions[(side + 2) % 6]; } @@ -83,7 +95,7 @@ public enum Direction { /** * Get the inverse of this direction (XN -> XP, XP -> XN, etc.) - * + * * @return Inverse direction */ public Direction getInverse() { @@ -92,7 +104,7 @@ public enum Direction { /** * Convert this direction to a Minecraft side value. - * + * * @return Minecraft side value */ public int toSideValue() { @@ -112,6 +124,12 @@ public enum Direction { return ForgeDirection.getOrientation(toSideValue()); } + public final int xOffset; + public final int yOffset; + public final int zOffset; + public static final Direction[] directions = Direction.values(); + public static final Set noDirections = EnumSet.noneOf(Direction.class); + public static final Set allDirections = EnumSet.allOf(Direction.class); } diff --git a/src/api/java/ic2/api/crops/CropCard.class b/src/api/java/ic2/api/crops/CropCard.class index e117b0c95..b4c31b252 100644 Binary files a/src/api/java/ic2/api/crops/CropCard.class and b/src/api/java/ic2/api/crops/CropCard.class differ diff --git a/src/api/java/ic2/api/crops/CropCard.java b/src/api/java/ic2/api/crops/CropCard.java index 091b9ad24..1d2b6406a 100644 --- a/src/api/java/ic2/api/crops/CropCard.java +++ b/src/api/java/ic2/api/crops/CropCard.java @@ -37,13 +37,16 @@ public abstract class CropCard { /** * Determine the mod id owning this crop. * - * It's recommended to hard code this to your mod id. + * The owner serves as a name space. With every mod using a different owner, a mod only has to + * make sure it doesn't have conflicts with name() in itself. + * It's recommended to hard code this to your mod id as specified in the @Mod annotation. + * Do not use IC2's mod id here. * * @note changing name or owner will cause existing crops in users' worlds to disappear. * * @return Mod id. */ - public String owner() { + public String owner() { // TODO: make abstract return modId; } @@ -100,7 +103,7 @@ public abstract class CropCard { * @param crop reference to ICropTile * @return roots lengt use in isBlockBelow */ - public int getrootslength(ICropTile crop) { + public int getrootslength(ICropTile crop) { // TODO: camel case return 1; } @@ -126,7 +129,7 @@ public abstract class CropCard { * @param n index of the requested stat * @return The requested value of the stats */ - public abstract int stat(int n); + public abstract int stat(int n); // TODO: change to fixed property object or builder with other attributes like tier /** * Additional attributes of the plant, also influencing breeding. @@ -134,7 +137,7 @@ public abstract class CropCard { * * @return Attributes as an array of strings */ - public abstract String[] attributes(); + public abstract String[] attributes(); // TODO: default to none /** * Determine the max crop size. @@ -212,7 +215,7 @@ public abstract class CropCard { * @return 0-30 */ public int weightInfluences(ICropTile crop, float humidity, float nutrients, float air) { - return (int) (humidity+nutrients+air); + return (int) (humidity + nutrients + air); } /** @@ -247,7 +250,7 @@ public abstract class CropCard { * @return need crop size for best output. */ - public abstract int getOptimalHavestSize(ICropTile crop); + public abstract int getOptimalHavestSize(ICropTile crop); // TODO: default to maxSize /** * Check whether the crop can be harvested. @@ -255,7 +258,7 @@ public abstract class CropCard { * @param crop reference to ICropTile * @return Whether the crop can be harvested in its current state. */ - public abstract boolean canBeHarvested(ICropTile crop); + public abstract boolean canBeHarvested(ICropTile crop); // TODO: default to maxSize check /** * Base chance for dropping the plant's gains, specify values greater than 1 for multiple drops. @@ -263,10 +266,8 @@ public abstract class CropCard { * * @return Chance to drop the gains */ - public float dropGainChance() { - float base = 1F; - for (int i = 0; i < tier(); i++) {base*=0.95;} - return base; + public float dropGainChance() { // TODO: change to double + return (float) Math.pow(0.95, tier()); } /** @@ -284,20 +285,20 @@ public abstract class CropCard { * @param crop reference to ICropTile * @return Plant size after harvesting */ - public byte getSizeAfterHarvest(ICropTile crop) {return 1;} + public byte getSizeAfterHarvest(ICropTile crop) {return 1;} // TODO: change to int /** - * Called when the plant is leftclicked by a player. + * Called when the plant is left clicked by a player. * Default action is picking the plant. * - * Only called Serverside. + * Only called server side. * * @param crop reference to ICropTile - * @param player player leftclicked the crop + * @param player player left clicked the crop * @return Whether the plant has changed */ - public boolean leftclick(ICropTile crop, EntityPlayer player) { + public boolean leftclick(ICropTile crop, EntityPlayer player) { // TODO: camel case return crop.pick(true); } @@ -398,7 +399,7 @@ public abstract class CropCard { */ public boolean isWeed(ICropTile crop) { return crop.getSize() >= 2 && - (crop == Crops.weed || crop.getGrowth() >= 24); + (crop.getCrop() == Crops.weed || crop.getGrowth() >= 24); } @@ -430,4 +431,5 @@ public abstract class CropCard { protected IIcon textures[]; private final String modId; // TODO: make owner abstract, remove modId auto detection + // TODO: add a clean way to obtain world reference and position } diff --git a/src/api/java/ic2/api/crops/ICropTile.class b/src/api/java/ic2/api/crops/ICropTile.class index b359a00f9..aafb6de2c 100644 Binary files a/src/api/java/ic2/api/crops/ICropTile.class and b/src/api/java/ic2/api/crops/ICropTile.class differ diff --git a/src/api/java/ic2/api/crops/ICropTile.java b/src/api/java/ic2/api/crops/ICropTile.java index 6fd887ee0..dadf691d5 100644 --- a/src/api/java/ic2/api/crops/ICropTile.java +++ b/src/api/java/ic2/api/crops/ICropTile.java @@ -260,6 +260,15 @@ public interface ICropTile { */ public boolean isBlockBelow(Block block); + /** + * Check if a block is under the farmland containing the crop. + * Searches up to 2 blocks below the farmland or an air space, whichever appears first. + * + * @param oreDictionaryName blocks to search + * @return Whether the blocks were found + */ + public boolean isBlockBelow(String oreDictionaryName); + /** * Generate plant seeds with the given parameters. * diff --git a/src/api/java/ic2/api/energy/prefab/BasicSink.class b/src/api/java/ic2/api/energy/prefab/BasicSink.class index b0b895ce0..426e0908d 100644 Binary files a/src/api/java/ic2/api/energy/prefab/BasicSink.class and b/src/api/java/ic2/api/energy/prefab/BasicSink.class differ diff --git a/src/api/java/ic2/api/energy/prefab/BasicSource.class b/src/api/java/ic2/api/energy/prefab/BasicSource.class index 164213b2c..afe8e25bc 100644 Binary files a/src/api/java/ic2/api/energy/prefab/BasicSource.class and b/src/api/java/ic2/api/energy/prefab/BasicSource.class differ diff --git a/src/api/java/ic2/api/info/Info.class b/src/api/java/ic2/api/info/Info.class index 7099fae6c..7e50751d5 100644 Binary files a/src/api/java/ic2/api/info/Info.class and b/src/api/java/ic2/api/info/Info.class differ diff --git a/src/api/java/ic2/api/info/Info.java b/src/api/java/ic2/api/info/Info.java index 3b5a54426..f8e30ad25 100644 --- a/src/api/java/ic2/api/info/Info.java +++ b/src/api/java/ic2/api/info/Info.java @@ -1,5 +1,6 @@ package ic2.api.info; +import net.minecraft.potion.Potion; import net.minecraft.util.DamageSource; import cpw.mods.fml.common.Loader; @@ -16,6 +17,12 @@ public class Info { */ public static DamageSource DMG_ELECTRIC, DMG_NUKE_EXPLOSION, DMG_RADIATION; + /** + * Potions used by IC2. + * Getting assigned in preload. + */ + public static Potion POTION_RADIATION; + public static boolean isIc2Available() { if (ic2Available != null) return ic2Available; diff --git a/src/api/java/ic2/api/item/ElectricItem.class b/src/api/java/ic2/api/item/ElectricItem.class index be9260675..ad45f925c 100644 Binary files a/src/api/java/ic2/api/item/ElectricItem.class and b/src/api/java/ic2/api/item/ElectricItem.class differ diff --git a/src/api/java/ic2/api/item/IC2Items.class b/src/api/java/ic2/api/item/IC2Items.class index 267272d0b..609995182 100644 Binary files a/src/api/java/ic2/api/item/IC2Items.class and b/src/api/java/ic2/api/item/IC2Items.class differ diff --git a/src/api/java/ic2/api/item/IElectricItem.java b/src/api/java/ic2/api/item/IElectricItem.java index 5525e00f6..4f546d575 100644 --- a/src/api/java/ic2/api/item/IElectricItem.java +++ b/src/api/java/ic2/api/item/IElectricItem.java @@ -39,7 +39,9 @@ public interface IElectricItem { /** * Get the item's tier, lower tiers can't send energy to higher ones. - * Batteries are Tier 1, Energy Crystals are Tier 2, Lapotron Crystals are Tier 3. + * + * Batteries are Tier 1, Advanced Batteries are Tier 2, Energy Crystals are Tier 3, Lapotron + * Crystals are Tier 4. * * @return Item's tier */ diff --git a/src/api/java/ic2/api/item/IKineticRotor$GearboxType.class b/src/api/java/ic2/api/item/IKineticRotor$GearboxType.class new file mode 100644 index 000000000..4c6ab9db6 Binary files /dev/null and b/src/api/java/ic2/api/item/IKineticRotor$GearboxType.class differ diff --git a/src/api/java/ic2/api/item/IKineticRotor.class b/src/api/java/ic2/api/item/IKineticRotor.class new file mode 100644 index 000000000..4bba1ebde Binary files /dev/null and b/src/api/java/ic2/api/item/IKineticRotor.class differ diff --git a/src/api/java/ic2/api/item/IKineticWindRotor.java b/src/api/java/ic2/api/item/IKineticRotor.java similarity index 68% rename from src/api/java/ic2/api/item/IKineticWindRotor.java rename to src/api/java/ic2/api/item/IKineticRotor.java index de696e381..a61d1622c 100644 --- a/src/api/java/ic2/api/item/IKineticWindRotor.java +++ b/src/api/java/ic2/api/item/IKineticRotor.java @@ -3,7 +3,7 @@ package ic2.api.item; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; -public interface IKineticWindRotor { +public interface IKineticRotor { int getDiameter(ItemStack stack); ResourceLocation getRotorRenderTexture(ItemStack stack); @@ -13,4 +13,11 @@ public interface IKineticWindRotor { int getMinWindStrength(ItemStack stack); int getMaxWindStrength(ItemStack stack); + + boolean isAcceptedType(ItemStack stack, GearboxType type); + + public static enum GearboxType { + WATER, + WIND, + } } diff --git a/src/api/java/ic2/api/item/IKineticWindRotor.class b/src/api/java/ic2/api/item/IKineticWindRotor.class deleted file mode 100644 index 00f10fc86..000000000 Binary files a/src/api/java/ic2/api/item/IKineticWindRotor.class and /dev/null differ diff --git a/src/api/java/ic2/api/item/ILatheItem$ILatheTool.class b/src/api/java/ic2/api/item/ILatheItem$ILatheTool.class new file mode 100644 index 000000000..46efc5019 Binary files /dev/null and b/src/api/java/ic2/api/item/ILatheItem$ILatheTool.class differ diff --git a/src/api/java/ic2/api/item/ILatheItem.class b/src/api/java/ic2/api/item/ILatheItem.class index 7bbb877de..b6a25ef0f 100644 Binary files a/src/api/java/ic2/api/item/ILatheItem.class and b/src/api/java/ic2/api/item/ILatheItem.class differ diff --git a/src/api/java/ic2/api/item/ILatheItem.java b/src/api/java/ic2/api/item/ILatheItem.java index 2baffc8f9..45988c42b 100644 --- a/src/api/java/ic2/api/item/ILatheItem.java +++ b/src/api/java/ic2/api/item/ILatheItem.java @@ -6,6 +6,9 @@ import net.minecraft.util.ResourceLocation; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +/** + * Interface used for Items that can be processed in the Turning Table + */ public interface ILatheItem { /** @@ -44,4 +47,24 @@ public interface ILatheItem { @SideOnly(Side.CLIENT) ResourceLocation getTexture(ItemStack stack); + /** + * This is similar to the Block HarvestLevel. Requires a different tool for a different hardness + * for ex. the Iron Turning Blank has a Hardness of 2 (Like Iron Ore (Harvest Level)). + * In this case however it requires a Tool hardness of one above (3) + */ + int getHardness(ItemStack stack); + + /** + * Interface used for Tools that can be used to modify {@link ILatheItem} + */ + public static interface ILatheTool extends ICustomDamageItem { + + /** + * This is similar to the Tool HarvestLevel. Requires a different tool for a different hardness + * for ex. the Iron Turning Blank has a Hardness of 2 (Like Iron Ore (Harvest Level)). + * The tool requires a hardness of one level above (in this case 3) + */ + int getHardness(ItemStack stack); + } + } diff --git a/src/api/java/ic2/api/item/ItemWrapper.class b/src/api/java/ic2/api/item/ItemWrapper.class index 7c6a6de70..5454f5eff 100644 Binary files a/src/api/java/ic2/api/item/ItemWrapper.class and b/src/api/java/ic2/api/item/ItemWrapper.class differ diff --git a/src/api/java/ic2/api/network/NetworkHelper.class b/src/api/java/ic2/api/network/NetworkHelper.class index 85ff02b47..887d3a387 100644 Binary files a/src/api/java/ic2/api/network/NetworkHelper.class and b/src/api/java/ic2/api/network/NetworkHelper.class differ diff --git a/src/api/java/ic2/api/network/NetworkHelper.java b/src/api/java/ic2/api/network/NetworkHelper.java index 5f9138d30..a91d03a64 100644 --- a/src/api/java/ic2/api/network/NetworkHelper.java +++ b/src/api/java/ic2/api/network/NetworkHelper.java @@ -178,7 +178,7 @@ public final class NetworkHelper { */ private static Object getInstance() { try { - return Class.forName(getPackage() + ".core.IC2").getDeclaredField("network").get(null); + return Class.forName(getPackage() + ".core.util.SideGateway").getMethod("get").invoke(Class.forName(getPackage() + ".core.IC2").getDeclaredField("network").get(null)); } catch (Throwable e) { throw new RuntimeException(e); } diff --git a/src/api/java/ic2/api/recipe/ICannerEnrichRecipeManager$Input.class b/src/api/java/ic2/api/recipe/ICannerEnrichRecipeManager$Input.class index eebdb6bd1..309dd5d11 100644 Binary files a/src/api/java/ic2/api/recipe/ICannerEnrichRecipeManager$Input.class and b/src/api/java/ic2/api/recipe/ICannerEnrichRecipeManager$Input.class differ diff --git a/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager$HeatExchangeProperty.class b/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager$HeatExchangeProperty.class new file mode 100644 index 000000000..374f186d7 Binary files /dev/null and b/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager$HeatExchangeProperty.class differ diff --git a/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.class b/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.class new file mode 100644 index 000000000..b58008d86 Binary files /dev/null and b/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.class differ diff --git a/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.java b/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.java new file mode 100644 index 000000000..68decbb39 --- /dev/null +++ b/src/api/java/ic2/api/recipe/ILiquidHeatExchangerManager.java @@ -0,0 +1,39 @@ +package ic2.api.recipe; + +import java.util.Map; + +import net.minecraftforge.fluids.Fluid; + +public interface ILiquidHeatExchangerManager extends ILiquidAcceptManager { + + /** + * Add a new fluid heatup/cooldown recipe. + * + * @param fluidName the fluid to heat up/cool down + * @param fluidOutput the fluid the above fluid turns into + * @param huPerMB the Thermal Energy difference in hU for the conversion of one mB fluid + */ + void addFluid(String fluidName, String fluidOutput, int huPerMB); + + HeatExchangeProperty getHeatExchangeProperty(Fluid fluid); + + Map getHeatExchangeProperties(); + + /** + * This returns an ILiquidAcceptManager that only accepts fluids, that can be heated up / cooled down, but not both. + * You can basically use this to check if the liquid resulting from this conversion can be reprocessed into the first one. + * @return Returns the SingleDirectionManager. + */ + ILiquidAcceptManager getSingleDirectionLiquidManager(); + + public static class HeatExchangeProperty { + public HeatExchangeProperty(Fluid outputFluid, int huPerMB) { + this.outputFluid = outputFluid; + this.huPerMB = huPerMB; + } + + public final Fluid outputFluid; + public final int huPerMB; + } + +} diff --git a/src/api/java/ic2/api/recipe/RecipeInputFluidContainer.class b/src/api/java/ic2/api/recipe/RecipeInputFluidContainer.class index 74e0273f8..703455eb6 100644 Binary files a/src/api/java/ic2/api/recipe/RecipeInputFluidContainer.class and b/src/api/java/ic2/api/recipe/RecipeInputFluidContainer.class differ diff --git a/src/api/java/ic2/api/recipe/RecipeInputItemStack.class b/src/api/java/ic2/api/recipe/RecipeInputItemStack.class index 2f3a70ba1..c956c06d8 100644 Binary files a/src/api/java/ic2/api/recipe/RecipeInputItemStack.class and b/src/api/java/ic2/api/recipe/RecipeInputItemStack.class differ diff --git a/src/api/java/ic2/api/recipe/RecipeInputOreDict.class b/src/api/java/ic2/api/recipe/RecipeInputOreDict.class index 5db862212..476e53666 100644 Binary files a/src/api/java/ic2/api/recipe/RecipeInputOreDict.class and b/src/api/java/ic2/api/recipe/RecipeInputOreDict.class differ diff --git a/src/api/java/ic2/api/recipe/RecipeOutput.class b/src/api/java/ic2/api/recipe/RecipeOutput.class index 0dad69cfc..a2a19b3b1 100644 Binary files a/src/api/java/ic2/api/recipe/RecipeOutput.class and b/src/api/java/ic2/api/recipe/RecipeOutput.class differ diff --git a/src/api/java/ic2/api/recipe/RecipeOutput.java b/src/api/java/ic2/api/recipe/RecipeOutput.java index 34c7fe9c3..80ad5fb5c 100644 --- a/src/api/java/ic2/api/recipe/RecipeOutput.java +++ b/src/api/java/ic2/api/recipe/RecipeOutput.java @@ -25,8 +25,7 @@ public final class RecipeOutput { RecipeOutput ro = (RecipeOutput) obj; if (items.size() == ro.items.size() && - (metadata == null && ro.metadata == null || metadata != null && ro.metadata != null) && - metadata.equals(ro.metadata)) { + (metadata == null && ro.metadata == null || metadata != null && ro.metadata != null && metadata.equals(ro.metadata))) { Iterator itA = items.iterator(); Iterator itB = ro.items.iterator(); diff --git a/src/api/java/ic2/api/recipe/Recipes.class b/src/api/java/ic2/api/recipe/Recipes.class index 559ffe865..11854efef 100644 Binary files a/src/api/java/ic2/api/recipe/Recipes.class and b/src/api/java/ic2/api/recipe/Recipes.class differ diff --git a/src/api/java/ic2/api/recipe/Recipes.java b/src/api/java/ic2/api/recipe/Recipes.java index 4c1259768..0aa0b75a5 100644 --- a/src/api/java/ic2/api/recipe/Recipes.java +++ b/src/api/java/ic2/api/recipe/Recipes.java @@ -3,7 +3,7 @@ package ic2.api.recipe; /** * General recipe registry. - * + * * @author Richard */ public class Recipes { @@ -23,12 +23,12 @@ public class Recipes { /** * Reference amplifier values: - * + * * 5000: Scrap * 45000: Scrapbox - * + * * As Parameter for the Amplification Value you have to use the NBTTagCompound - * + * * NBTTagCompound nbt = new NBTTagCompound(); * nbt.setInteger("amplification", aValue); * matterAmplifier.addRecipe(yourStack, nbt); @@ -57,4 +57,12 @@ public class Recipes { public static ISemiFluidFuelManager semiFluidGenerator; public static IFluidHeatManager FluidHeatGenerator; + /** + * Used by the Liquid Heat Exchanger to cool down liquids and determine the amount of hu generated for every mb. + */ + public static ILiquidHeatExchangerManager liquidCooldownManager; + /** + * Opposite of {@link #liquidCooldownManager}. This is for Liquids that can be heated up again. + */ + public static ILiquidHeatExchangerManager liquidHeatupManager; } diff --git a/src/main/java/mekanism/api/MekanismConfig.java b/src/main/java/mekanism/api/MekanismConfig.java index 8eb2870c2..e0167926f 100644 --- a/src/main/java/mekanism/api/MekanismConfig.java +++ b/src/main/java/mekanism/api/MekanismConfig.java @@ -65,13 +65,14 @@ public class MekanismConfig public static double maxEnergyPerSteam = 100; public static double superheatingHeatTransfer = 10000; public static double heatPerFuelTick = 4; + public static boolean allowTransmitterAlloyUpgrade; + public static boolean allowProtection = true; } public static class client { public static boolean enablePlayerSounds = true; public static boolean enableMachineSounds = true; - public static boolean fancyUniversalCableRender = true; public static boolean holidays = true; public static float baseSoundVolume = 1F; public static boolean machineEffects = true; @@ -80,6 +81,7 @@ public class MekanismConfig public static boolean renderCTM = true; public static boolean enableAmbientLighting; public static int ambientLightingLevel; + public static boolean opaqueTransmitters = false; } public static class machines @@ -144,6 +146,7 @@ public class MekanismConfig public static int turbineBladesPerCoil; public static double turbineVentGasFlow; public static double turbineDisperserGasFlow; + public static int condenserRate; } public static class tools diff --git a/src/main/java/mekanism/client/ClientProxy.java b/src/main/java/mekanism/client/ClientProxy.java index 920dc1388..ee3fc7184 100644 --- a/src/main/java/mekanism/client/ClientProxy.java +++ b/src/main/java/mekanism/client/ClientProxy.java @@ -216,18 +216,18 @@ public class ClientProxy extends CommonProxy { super.loadConfiguration(); - client.enablePlayerSounds = Mekanism.configuration.get("client", "EnablePlayerSounds", true).getBoolean(true); - client.enableMachineSounds = Mekanism.configuration.get("client", "EnableMachineSounds", true).getBoolean(true); - client.fancyUniversalCableRender = Mekanism.configuration.get("client", "FancyUniversalCableRender", true).getBoolean(true); - client.holidays = Mekanism.configuration.get("client", "Holidays", true).getBoolean(true); - client.baseSoundVolume = (float)Mekanism.configuration.get("client", "SoundVolume", 1D).getDouble(1D); - client.machineEffects = Mekanism.configuration.get("client", "MachineEffects", true).getBoolean(true); + client.enablePlayerSounds = Mekanism.configuration.get("client", "EnablePlayerSounds", true).getBoolean(); + client.enableMachineSounds = Mekanism.configuration.get("client", "EnableMachineSounds", true).getBoolean(); + client.holidays = Mekanism.configuration.get("client", "Holidays", true).getBoolean(); + client.baseSoundVolume = (float)Mekanism.configuration.get("client", "SoundVolume", 1D).getDouble(); + client.machineEffects = Mekanism.configuration.get("client", "MachineEffects", true).getBoolean(); client.oldTransmitterRender = Mekanism.configuration.get("client", "OldTransmitterRender", false).getBoolean(); client.replaceSoundsWhenResuming = Mekanism.configuration.get("client", "ReplaceSoundsWhenResuming", true, "If true, will reduce lagging between player sounds. Setting to false will reduce GC load").getBoolean(); client.renderCTM = Mekanism.configuration.get("client", "CTMRenderer", true).getBoolean(); - client.enableAmbientLighting = Mekanism.configuration.get("general", "EnableAmbientLighting", true).getBoolean(); - client.ambientLightingLevel = Mekanism.configuration.get("general", "AmbientLightingLevel", 15).getInt(); + client.enableAmbientLighting = Mekanism.configuration.get("client", "EnableAmbientLighting", true).getBoolean(); + client.ambientLightingLevel = Mekanism.configuration.get("client", "AmbientLightingLevel", 15).getInt(); + client.opaqueTransmitters = Mekanism.configuration.get("client", "OpaqueTransmitterRender", false).getBoolean(); if(Mekanism.configuration.hasChanged()) { @@ -430,23 +430,33 @@ public class ClientProxy extends CommonProxy return new GuiRobitMain(player.inventory, robit); } case 22: - return new GuiRobitCrafting(player.inventory, world, x); - case 23: - EntityRobit robit1 = (EntityRobit)world.getEntityByID(x); + robit = (EntityRobit)world.getEntityByID(x); - if(robit1 != null) + if(robit != null) { - return new GuiRobitInventory(player.inventory, robit1); + return new GuiRobitCrafting(player.inventory, robit); + } + case 23: + robit = (EntityRobit)world.getEntityByID(x); + + if(robit != null) + { + return new GuiRobitInventory(player.inventory, robit); } case 24: - EntityRobit robit2 = (EntityRobit)world.getEntityByID(x); + robit = (EntityRobit)world.getEntityByID(x); - if(robit2 != null) + if(robit != null) { - return new GuiRobitSmelting(player.inventory, robit2); + return new GuiRobitSmelting(player.inventory, robit); } case 25: - return new GuiRobitRepair(player.inventory, world, x); + robit = (EntityRobit)world.getEntityByID(x); + + if(robit != null) + { + return new GuiRobitRepair(player.inventory, robit); + } case 29: return new GuiChemicalOxidizer(player.inventory, (TileEntityChemicalOxidizer)tileEntity); case 30: diff --git a/src/main/java/mekanism/client/ClientTickHandler.java b/src/main/java/mekanism/client/ClientTickHandler.java index 09d420ba7..7daf8d181 100644 --- a/src/main/java/mekanism/client/ClientTickHandler.java +++ b/src/main/java/mekanism/client/ClientTickHandler.java @@ -66,11 +66,9 @@ public class ClientTickHandler public static Minecraft mc = FMLClientHandler.instance().getClient(); - public static final String MIKE_CAPE = "https://dl.dropboxusercontent.com/s/ji06yflixnszcby/cape.png"; - public static final String DONATE_CAPE = "https://dl.dropboxusercontent.com/u/90411166/donate.png"; - public static final String AIDAN_CAPE = "https://dl.dropboxusercontent.com/u/90411166/aidan.png"; + public static final String DONATE_CAPE = "http://aidancbrady.com/data/capes/donate.png"; + public static final String AIDAN_CAPE = "http://aidancbrady.com/data/capes/aidan.png"; - private Map mikeDownload = new HashMap(); private Map donateDownload = new HashMap(); private Map aidanDownload = new HashMap(); @@ -137,27 +135,7 @@ public class ClientTickHandler if(player != null) { - if(StringUtils.stripControlCodes(player.getCommandSenderName()).equals("mikeacttck")) - { - CapeBufferDownload download = mikeDownload.get(player.getCommandSenderName()); - - if(download == null) - { - download = new CapeBufferDownload(player.getCommandSenderName(), MIKE_CAPE); - mikeDownload.put(player.getCommandSenderName(), download); - - download.start(); - } - else { - if(!download.downloaded) - { - continue; - } - - player.func_152121_a(MinecraftProfileTexture.Type.CAPE, download.getResourceLocation()); - } - } - else if(StringUtils.stripControlCodes(player.getCommandSenderName()).equals("aidancbrady")) + if(StringUtils.stripControlCodes(player.getCommandSenderName()).equals("aidancbrady")) { CapeBufferDownload download = aidanDownload.get(player.getCommandSenderName()); diff --git a/src/main/java/mekanism/client/gui/GuiBoilerStats.java b/src/main/java/mekanism/client/gui/GuiBoilerStats.java index f51ad47c3..b14dab367 100644 --- a/src/main/java/mekanism/client/gui/GuiBoilerStats.java +++ b/src/main/java/mekanism/client/gui/GuiBoilerStats.java @@ -43,7 +43,7 @@ public class GuiBoilerStats extends GuiMekanism public List getInfo() { TemperatureUnit unit = TemperatureUnit.values()[general.tempUnit.ordinal()]; - String environment = UnitDisplayUtils.getDisplayShort(tileEntity.structure.lastEnvironmentLoss*unit.intervalSize, unit); + String environment = UnitDisplayUtils.getDisplayShort(tileEntity.structure.lastEnvironmentLoss*unit.intervalSize, false, unit); return ListUtils.asList(LangUtils.localize("gui.dissipated") + ": " + environment + "/t"); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBoilerStats.png"))); diff --git a/src/main/java/mekanism/client/gui/GuiDigitalMinerConfig.java b/src/main/java/mekanism/client/gui/GuiDigitalMinerConfig.java index 258092596..1d35a4df8 100644 --- a/src/main/java/mekanism/client/gui/GuiDigitalMinerConfig.java +++ b/src/main/java/mekanism/client/gui/GuiDigitalMinerConfig.java @@ -671,7 +671,7 @@ public class GuiDigitalMinerConfig extends GuiMekanism } } - if(Character.isDigit(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isDigit(c) || isTextboxKey(c, i)) { radiusField.textboxKeyTyped(c, i); minField.textboxKeyTyped(c, i); diff --git a/src/main/java/mekanism/client/gui/GuiFuelwoodHeater.java b/src/main/java/mekanism/client/gui/GuiFuelwoodHeater.java index 4f8f1d159..71d1b3050 100644 --- a/src/main/java/mekanism/client/gui/GuiFuelwoodHeater.java +++ b/src/main/java/mekanism/client/gui/GuiFuelwoodHeater.java @@ -40,7 +40,7 @@ public class GuiFuelwoodHeater extends GuiMekanism public List getInfo() { TemperatureUnit unit = TemperatureUnit.values()[general.tempUnit.ordinal()]; - String environment = UnitDisplayUtils.getDisplayShort(tileEntity.lastEnvironmentLoss*unit.intervalSize, unit); + String environment = UnitDisplayUtils.getDisplayShort(tileEntity.lastEnvironmentLoss*unit.intervalSize, false, unit); return ListUtils.asList(LangUtils.localize("gui.dissipated") + ": " + environment + "/t"); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiFuelwoodHeater.png"))); diff --git a/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java b/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java index 5b95535d6..93c8b2130 100644 --- a/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java +++ b/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java @@ -3,7 +3,7 @@ package mekanism.client.gui; import java.util.ArrayList; import mekanism.api.Coord4D; -import mekanism.client.gui.element.GuiDetectionTab; +import mekanism.client.gui.element.GuiAmplifierTab; import mekanism.client.gui.element.GuiGauge.Type; import mekanism.client.gui.element.GuiNumberGauge; import mekanism.client.gui.element.GuiNumberGauge.INumberInfoHandler; @@ -69,7 +69,7 @@ public class GuiLaserAmplifier extends GuiMekanism }, Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 6, 10)); guiElements.add(new GuiSecurityTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); - guiElements.add(new GuiDetectionTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + guiElements.add(new GuiAmplifierTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); } @Override @@ -148,7 +148,7 @@ public class GuiLaserAmplifier extends GuiMekanism } } - if(Character.isDigit(c) || c == '.' || c == 'E' || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isDigit(c) || c == '.' || c == 'E' || isTextboxKey(c, i)) { minField.textboxKeyTyped(c, i); maxField.textboxKeyTyped(c, i); diff --git a/src/main/java/mekanism/client/gui/GuiMModIDFilter.java b/src/main/java/mekanism/client/gui/GuiMModIDFilter.java index 25eadd27b..ee49b66e4 100644 --- a/src/main/java/mekanism/client/gui/GuiMModIDFilter.java +++ b/src/main/java/mekanism/client/gui/GuiMModIDFilter.java @@ -112,7 +112,7 @@ public class GuiMModIDFilter extends GuiMekanism return; } - if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || isTextboxKey(c, i)) { modIDText.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiMOreDictFilter.java b/src/main/java/mekanism/client/gui/GuiMOreDictFilter.java index fa4037469..f4c55c396 100644 --- a/src/main/java/mekanism/client/gui/GuiMOreDictFilter.java +++ b/src/main/java/mekanism/client/gui/GuiMOreDictFilter.java @@ -112,7 +112,7 @@ public class GuiMOreDictFilter extends GuiMekanism return; } - if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || isTextboxKey(c, i)) { oreDictText.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiMekanism.java b/src/main/java/mekanism/client/gui/GuiMekanism.java index 70768b9f7..7faec85d0 100644 --- a/src/main/java/mekanism/client/gui/GuiMekanism.java +++ b/src/main/java/mekanism/client/gui/GuiMekanism.java @@ -18,6 +18,7 @@ import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; +import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; public abstract class GuiMekanism extends GuiContainer implements IGuiWrapper @@ -73,6 +74,18 @@ public abstract class GuiMekanism extends GuiContainer implements IGuiWrapper GL11.glPopMatrix(); } } + + public static boolean isTextboxKey(char c, int i) + { + if(i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT || + i == Keyboard.KEY_END || i == Keyboard.KEY_HOME || i == Keyboard.KEY_BACK || c == 1 || c == 3 || c == 22 + || c == 24) + { + return true; + } + + return false; + } @Override protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) diff --git a/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java b/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java index a9b8c0a34..5535de6b6 100644 --- a/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java +++ b/src/main/java/mekanism/client/gui/GuiOredictionificatorFilter.java @@ -248,7 +248,7 @@ public class GuiOredictionificatorFilter extends GuiMekanism return; } - if(Character.isLetter(c) || Character.isDigit(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isLetter(c) || Character.isDigit(c) || isTextboxKey(c, i)) { filterText.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiQuantumEntangloporter.java b/src/main/java/mekanism/client/gui/GuiQuantumEntangloporter.java index 275de0d4d..59450192c 100644 --- a/src/main/java/mekanism/client/gui/GuiQuantumEntangloporter.java +++ b/src/main/java/mekanism/client/gui/GuiQuantumEntangloporter.java @@ -11,6 +11,7 @@ import mekanism.client.gui.element.GuiTransporterConfigTab; import mekanism.client.sound.SoundHandler; import mekanism.common.Mekanism; import mekanism.common.frequency.Frequency; +import mekanism.common.frequency.FrequencyManager; import mekanism.common.inventory.container.ContainerQuantumEntangloporter; import mekanism.common.network.PacketPortableTeleporter.PortableTeleporterMessage; import mekanism.common.network.PacketPortableTeleporter.PortableTeleporterPacketType; @@ -34,8 +35,6 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiQuantumEntangloporter extends GuiMekanism { - public static int MAX_LENGTH = 16; - public ResourceLocation resource; public TileEntityQuantumEntangloporter tileEntity; @@ -89,7 +88,7 @@ public class GuiQuantumEntangloporter extends GuiMekanism deleteButton = new GuiButton(3, guiWidth + 89, guiHeight + 116, 60, 20, LangUtils.localize("gui.delete")); frequencyField = new GuiTextField(fontRendererObj, guiWidth + 50, guiHeight + 104, 86, 11); - frequencyField.setMaxStringLength(MAX_LENGTH); + frequencyField.setMaxStringLength(FrequencyManager.MAX_FREQ_LENGTH); frequencyField.setEnableBackgroundDrawing(false); updateButtons(); @@ -231,7 +230,7 @@ public class GuiQuantumEntangloporter extends GuiMekanism } } - if(Character.isDigit(c) || Character.isLetter(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isDigit(c) || Character.isLetter(c) || isTextboxKey(c, i) || FrequencyManager.SPECIAL_CHARS.contains(c)) { frequencyField.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiResistiveHeater.java b/src/main/java/mekanism/client/gui/GuiResistiveHeater.java index dfc5f29da..0fbf6800c 100644 --- a/src/main/java/mekanism/client/gui/GuiResistiveHeater.java +++ b/src/main/java/mekanism/client/gui/GuiResistiveHeater.java @@ -62,7 +62,6 @@ public class GuiResistiveHeater extends GuiMekanism @Override public List getInfo() { - System.out.println(tileEntity.lastEnvironmentLoss); TemperatureUnit unit = TemperatureUnit.values()[general.tempUnit.ordinal()]; String environment = UnitDisplayUtils.getDisplayShort(tileEntity.lastEnvironmentLoss*unit.intervalSize, false, unit); return ListUtils.asList(LangUtils.localize("gui.dissipated") + ": " + environment + "/t"); @@ -180,7 +179,7 @@ public class GuiResistiveHeater extends GuiMekanism return; } - if(Character.isDigit(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isDigit(c) || isTextboxKey(c, i)) { energyUsageField.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiRobitCrafting.java b/src/main/java/mekanism/client/gui/GuiRobitCrafting.java index bed932bf2..ca02ba00c 100644 --- a/src/main/java/mekanism/client/gui/GuiRobitCrafting.java +++ b/src/main/java/mekanism/client/gui/GuiRobitCrafting.java @@ -2,6 +2,7 @@ package mekanism.client.gui; import mekanism.client.sound.SoundHandler; import mekanism.common.Mekanism; +import mekanism.common.entity.EntityRobit; import mekanism.common.inventory.container.ContainerRobitCrafting; import mekanism.common.network.PacketRobit.RobitMessage; import mekanism.common.network.PacketRobit.RobitPacketType; @@ -9,7 +10,6 @@ import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.world.World; import org.lwjgl.opengl.GL11; @@ -19,12 +19,12 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiRobitCrafting extends GuiMekanism { - public int entityId; + public EntityRobit robit; - public GuiRobitCrafting(InventoryPlayer inventory, World world, int id) + public GuiRobitCrafting(InventoryPlayer inventory, EntityRobit entity) { - super(new ContainerRobitCrafting(inventory, world)); - entityId = id; + super(new ContainerRobitCrafting(inventory, entity)); + robit = entity; xSize += 25; } @@ -105,8 +105,8 @@ public class GuiRobitCrafting extends GuiMekanism if(xAxis >= 179 && xAxis <= 197 && yAxis >= 10 && yAxis <= 28) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 0, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 0, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, robit.getEntityId(), 0, 0); } else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 30 && yAxis <= 48) { @@ -115,20 +115,20 @@ public class GuiRobitCrafting extends GuiMekanism else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 50 && yAxis <= 68) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 2, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 2, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, robit.getEntityId(), 0, 0); } else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 70 && yAxis <= 88) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 3, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 3, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, robit.getEntityId(), 0, 0); } else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 90 && yAxis <= 108) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 4, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 25, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 4, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 25, mc.theWorld, robit.getEntityId(), 0, 0); } } } diff --git a/src/main/java/mekanism/client/gui/GuiRobitRepair.java b/src/main/java/mekanism/client/gui/GuiRobitRepair.java index 0c8e2724a..38b8d46ab 100644 --- a/src/main/java/mekanism/client/gui/GuiRobitRepair.java +++ b/src/main/java/mekanism/client/gui/GuiRobitRepair.java @@ -4,6 +4,7 @@ import java.util.List; import mekanism.client.sound.SoundHandler; import mekanism.common.Mekanism; +import mekanism.common.entity.EntityRobit; import mekanism.common.inventory.container.ContainerRobitRepair; import mekanism.common.network.PacketRobit.RobitMessage; import mekanism.common.network.PacketRobit.RobitPacketType; @@ -18,7 +19,6 @@ import net.minecraft.inventory.ICrafting; import net.minecraft.item.ItemStack; import net.minecraft.network.play.client.C17PacketCustomPayload; import net.minecraft.util.StatCollector; -import net.minecraft.world.World; import org.apache.commons.io.Charsets; import org.lwjgl.input.Keyboard; @@ -30,16 +30,16 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiRobitRepair extends GuiMekanism implements ICrafting { - public int entityId; + private EntityRobit robit; private ContainerRepair repairContainer; private GuiTextField itemNameField; private InventoryPlayer playerInventory; - public GuiRobitRepair(InventoryPlayer inventory, World world, int id) + public GuiRobitRepair(InventoryPlayer inventory, EntityRobit entity) { - super(new ContainerRobitRepair(inventory, world)); + super(new ContainerRobitRepair(inventory, entity)); + robit = entity; xSize += 25; - entityId = id; playerInventory = inventory; repairContainer = (ContainerRobitRepair)inventorySlots; } @@ -150,26 +150,26 @@ public class GuiRobitRepair extends GuiMekanism implements ICrafting if(xAxis >= 179 && xAxis <= 197 && yAxis >= 10 && yAxis <= 28) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 0, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 0, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 21, mc.theWorld, robit.getEntityId(), 0, 0); } else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 30 && yAxis <= 48) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 1, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 22, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 1, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 22, mc.theWorld, robit.getEntityId(), 0, 0); } else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 50 && yAxis <= 68) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 2, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 2, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 23, mc.theWorld, robit.getEntityId(), 0, 0); } else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 70 && yAxis <= 88) { SoundHandler.playSound("gui.button.press"); - Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 3, entityId, null)); - mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, entityId, 0, 0); + Mekanism.packetHandler.sendToServer(new RobitMessage(RobitPacketType.GUI, 3, robit.getEntityId(), null)); + mc.thePlayer.openGui(Mekanism.instance, 24, mc.theWorld, robit.getEntityId(), 0, 0); } else if(xAxis >= 179 && xAxis <= 197 && yAxis >= 90 && yAxis <= 108) { diff --git a/src/main/java/mekanism/client/gui/GuiRobitSmelting.java b/src/main/java/mekanism/client/gui/GuiRobitSmelting.java index f78d1cd21..0f0740e27 100644 --- a/src/main/java/mekanism/client/gui/GuiRobitSmelting.java +++ b/src/main/java/mekanism/client/gui/GuiRobitSmelting.java @@ -20,8 +20,8 @@ public class GuiRobitSmelting extends GuiMekanism public GuiRobitSmelting(InventoryPlayer inventory, EntityRobit entity) { super(new ContainerRobitSmelting(inventory, entity)); - xSize += 25; robit = entity; + xSize += 25; } @Override diff --git a/src/main/java/mekanism/client/gui/GuiSecurityDesk.java b/src/main/java/mekanism/client/gui/GuiSecurityDesk.java index 0a26ada75..fa9fa0a9d 100644 --- a/src/main/java/mekanism/client/gui/GuiSecurityDesk.java +++ b/src/main/java/mekanism/client/gui/GuiSecurityDesk.java @@ -213,7 +213,7 @@ public class GuiSecurityDesk extends GuiMekanism } } - if(SPECIAL_CHARS.contains(c) || Character.isDigit(c) || Character.isLetter(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(SPECIAL_CHARS.contains(c) || Character.isDigit(c) || Character.isLetter(c) || isTextboxKey(c, i)) { trustedField.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiSolarNeutronActivator.java b/src/main/java/mekanism/client/gui/GuiSolarNeutronActivator.java index 7861888bf..abd14af44 100644 --- a/src/main/java/mekanism/client/gui/GuiSolarNeutronActivator.java +++ b/src/main/java/mekanism/client/gui/GuiSolarNeutronActivator.java @@ -12,6 +12,7 @@ import mekanism.client.gui.element.GuiSecurityTab; import mekanism.client.gui.element.GuiSlot; import mekanism.client.gui.element.GuiSlot.SlotOverlay; import mekanism.client.gui.element.GuiSlot.SlotType; +import mekanism.client.gui.element.GuiUpgradeTab; import mekanism.common.inventory.container.ContainerSolarNeutronActivator; import mekanism.common.tile.TileEntitySolarNeutronActivator; import mekanism.common.util.LangUtils; @@ -36,6 +37,7 @@ public class GuiSolarNeutronActivator extends GuiMekanism guiElements.add(new GuiSecurityTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + guiElements.add(new GuiUpgradeTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 4, 55).with(SlotOverlay.MINUS)); guiElements.add(new GuiSlot(SlotType.NORMAL, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 154, 55).with(SlotOverlay.PLUS)); diff --git a/src/main/java/mekanism/client/gui/GuiTItemStackFilter.java b/src/main/java/mekanism/client/gui/GuiTItemStackFilter.java index 62938c7c6..e56c4f9bd 100644 --- a/src/main/java/mekanism/client/gui/GuiTItemStackFilter.java +++ b/src/main/java/mekanism/client/gui/GuiTItemStackFilter.java @@ -153,7 +153,7 @@ public class GuiTItemStackFilter extends GuiMekanism super.keyTyped(c, i); } - if(Character.isDigit(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isDigit(c) || isTextboxKey(c, i)) { minField.textboxKeyTyped(c, i); maxField.textboxKeyTyped(c, i); diff --git a/src/main/java/mekanism/client/gui/GuiTModIDFilter.java b/src/main/java/mekanism/client/gui/GuiTModIDFilter.java index 112ffe817..de19a598f 100644 --- a/src/main/java/mekanism/client/gui/GuiTModIDFilter.java +++ b/src/main/java/mekanism/client/gui/GuiTModIDFilter.java @@ -112,7 +112,7 @@ public class GuiTModIDFilter extends GuiMekanism return; } - if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || isTextboxKey(c, i)) { modIDText.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiTOreDictFilter.java b/src/main/java/mekanism/client/gui/GuiTOreDictFilter.java index 9594490c7..0d66c1d4f 100644 --- a/src/main/java/mekanism/client/gui/GuiTOreDictFilter.java +++ b/src/main/java/mekanism/client/gui/GuiTOreDictFilter.java @@ -112,7 +112,7 @@ public class GuiTOreDictFilter extends GuiMekanism return; } - if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isLetter(c) || Character.isDigit(c) || TransporterFilter.SPECIAL_CHARS.contains(c) || isTextboxKey(c, i)) { oreDictText.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiTeleporter.java b/src/main/java/mekanism/client/gui/GuiTeleporter.java index 3da5c177f..ac4884eaf 100644 --- a/src/main/java/mekanism/client/gui/GuiTeleporter.java +++ b/src/main/java/mekanism/client/gui/GuiTeleporter.java @@ -15,6 +15,7 @@ import mekanism.client.gui.element.GuiSlot.SlotType; import mekanism.client.sound.SoundHandler; import mekanism.common.Mekanism; import mekanism.common.frequency.Frequency; +import mekanism.common.frequency.FrequencyManager; import mekanism.common.inventory.container.ContainerNull; import mekanism.common.inventory.container.ContainerTeleporter; import mekanism.common.item.ItemPortableTeleporter; @@ -42,8 +43,6 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiTeleporter extends GuiMekanism { - public static int MAX_LENGTH = 16; - public ResourceLocation resource; public TileEntityTeleporter tileEntity; @@ -162,7 +161,7 @@ public class GuiTeleporter extends GuiMekanism } frequencyField = new GuiTextField(fontRendererObj, guiWidth + 50, guiHeight + 104, 86, 11); - frequencyField.setMaxStringLength(MAX_LENGTH); + frequencyField.setMaxStringLength(FrequencyManager.MAX_FREQ_LENGTH); frequencyField.setEnableBackgroundDrawing(false); updateButtons(); @@ -326,7 +325,7 @@ public class GuiTeleporter extends GuiMekanism { super.keyTyped(c, i); } - + if(i == Keyboard.KEY_RETURN) { if(frequencyField.isFocused()) @@ -336,7 +335,7 @@ public class GuiTeleporter extends GuiMekanism } } - if(Character.isDigit(c) || Character.isLetter(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isDigit(c) || Character.isLetter(c) || isTextboxKey(c, i) || FrequencyManager.SPECIAL_CHARS.contains(c)) { frequencyField.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/client/gui/GuiThermalEvaporationController.java b/src/main/java/mekanism/client/gui/GuiThermalEvaporationController.java index 5bdec4066..b86467675 100644 --- a/src/main/java/mekanism/client/gui/GuiThermalEvaporationController.java +++ b/src/main/java/mekanism/client/gui/GuiThermalEvaporationController.java @@ -53,7 +53,7 @@ public class GuiThermalEvaporationController extends GuiMekanism public List getInfo() { TemperatureUnit unit = TemperatureUnit.values()[general.tempUnit.ordinal()]; - String environment = UnitDisplayUtils.getDisplayShort(tileEntity.totalLoss*unit.intervalSize, unit); + String environment = UnitDisplayUtils.getDisplayShort(tileEntity.totalLoss*unit.intervalSize, false, unit); return ListUtils.asList(LangUtils.localize("gui.dissipated") + ": " + environment + "/t"); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiThermalEvaporationController.png"))); diff --git a/src/main/java/mekanism/client/gui/GuiThermoelectricBoiler.java b/src/main/java/mekanism/client/gui/GuiThermoelectricBoiler.java index 3c0bf5214..31c553e2f 100644 --- a/src/main/java/mekanism/client/gui/GuiThermoelectricBoiler.java +++ b/src/main/java/mekanism/client/gui/GuiThermoelectricBoiler.java @@ -71,7 +71,7 @@ public class GuiThermoelectricBoiler extends GuiMekanism public List getInfo() { TemperatureUnit unit = TemperatureUnit.values()[general.tempUnit.ordinal()]; - String environment = UnitDisplayUtils.getDisplayShort(tileEntity.structure.lastEnvironmentLoss*unit.intervalSize, unit); + String environment = UnitDisplayUtils.getDisplayShort(tileEntity.structure.lastEnvironmentLoss*unit.intervalSize, false, unit); return ListUtils.asList(LangUtils.localize("gui.dissipated") + ": " + environment + "/t"); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiThermoelectricBoiler.png"))); diff --git a/src/main/java/mekanism/client/gui/element/GuiDetectionTab.java b/src/main/java/mekanism/client/gui/element/GuiAmplifierTab.java similarity index 77% rename from src/main/java/mekanism/client/gui/element/GuiDetectionTab.java rename to src/main/java/mekanism/client/gui/element/GuiAmplifierTab.java index e83778fba..b2eaa1b58 100644 --- a/src/main/java/mekanism/client/gui/element/GuiDetectionTab.java +++ b/src/main/java/mekanism/client/gui/element/GuiAmplifierTab.java @@ -18,13 +18,13 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class GuiDetectionTab extends GuiElement +public class GuiAmplifierTab extends GuiElement { public TileEntity tileEntity; - public GuiDetectionTab(IGuiWrapper gui, TileEntity tile, ResourceLocation def) + public GuiAmplifierTab(IGuiWrapper gui, TileEntity tile, ResourceLocation def) { - super(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiDetectionTab.png"), gui, def); + super(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiAmplifierTab.png"), gui, def); tileEntity = tile; } @@ -41,13 +41,14 @@ public class GuiDetectionTab extends GuiElement mc.renderEngine.bindTexture(RESOURCE); guiObj.drawTexturedRect(guiWidth - 26, guiHeight + 138, 0, 0, 26, 26); + int outputOrdinal = ((TileEntityLaserAmplifier)tileEntity).outputMode.ordinal(); if(xAxis >= -21 && xAxis <= -3 && yAxis >= 142 && yAxis <= 160) { - guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26, 0, 18, 18); + guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26 + 18*outputOrdinal, 0, 18, 18); } else { - guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26, 18, 18, 18); + guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26 + 18*outputOrdinal, 18, 18, 18); } mc.renderEngine.bindTexture(defaultLocation); @@ -60,8 +61,8 @@ public class GuiDetectionTab extends GuiElement if(xAxis >= -21 && xAxis <= -3 && yAxis >= 142 && yAxis <= 160) { - String text = LangUtils.transOnOff(((TileEntityLaserAmplifier)tileEntity).entityDetection); - displayTooltip(LangUtils.localize("gui.entityDetection") + ": " + text, xAxis, yAxis); + String text = LangUtils.localize("gui.redstoneOutput") + ": "; + displayTooltip(text + ((TileEntityLaserAmplifier)tileEntity).outputMode.getName(), xAxis, yAxis); } mc.renderEngine.bindTexture(defaultLocation); diff --git a/src/main/java/mekanism/client/gui/element/GuiSecurityTab.java b/src/main/java/mekanism/client/gui/element/GuiSecurityTab.java index c01e7dbcd..ece37160e 100644 --- a/src/main/java/mekanism/client/gui/element/GuiSecurityTab.java +++ b/src/main/java/mekanism/client/gui/element/GuiSecurityTab.java @@ -2,6 +2,7 @@ package mekanism.client.gui.element; import mekanism.api.Coord4D; import mekanism.api.EnumColor; +import mekanism.api.MekanismConfig.general; import mekanism.api.util.ListUtils; import mekanism.client.MekanismClient; import mekanism.client.gui.IGuiWrapper; @@ -129,6 +130,9 @@ public class GuiSecurityTab extends GuiElement private SecurityMode getSecurity() { + if(!general.allowProtection) { + return SecurityMode.PUBLIC; + } if(isItem) { if(getItem() == null || !(getItem().getItem() instanceof ISecurityItem)) @@ -172,7 +176,7 @@ public class GuiSecurityTab extends GuiElement @Override public void mouseClicked(int xAxis, int yAxis, int button) { - if(button == 0) + if(button == 0 && general.allowProtection) { if(getOwner() != null && mc.thePlayer.getCommandSenderName().equals(getOwner())) { diff --git a/src/main/java/mekanism/client/render/RenderPartTransmitter.java b/src/main/java/mekanism/client/render/RenderPartTransmitter.java index 03362b071..b88ed0a98 100644 --- a/src/main/java/mekanism/client/render/RenderPartTransmitter.java +++ b/src/main/java/mekanism/client/render/RenderPartTransmitter.java @@ -630,6 +630,11 @@ public class RenderPartTransmitter implements IIconSelfRegister public void renderTransparency(IIcon icon, CCModel cc, Colour color) { + if(icon == null) + { + return; + } + if(color != null) { cc.render(new IconTransformation(icon), new ColourMultiplier(color.rgba())); diff --git a/src/main/java/mekanism/client/render/tileentity/RenderBin.java b/src/main/java/mekanism/client/render/tileentity/RenderBin.java index 74efa2abb..4b857bcfc 100644 --- a/src/main/java/mekanism/client/render/tileentity/RenderBin.java +++ b/src/main/java/mekanism/client/render/tileentity/RenderBin.java @@ -90,7 +90,7 @@ public class RenderBin extends TileEntitySpecialRenderer if(amount != "") { - renderText(amount, ForgeDirection.getOrientation(tileEntity.facing), 0.02F, x, y - 0.31F, z); + renderText(amount, ForgeDirection.getOrientation(tileEntity.facing), 0.02F, x, y - 0.3725F, z); } MekanismRenderer.glowOff(); diff --git a/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java b/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java index 152d9e735..a731187fa 100644 --- a/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java +++ b/src/main/java/mekanism/client/render/tileentity/RenderDigitalMiner.java @@ -29,7 +29,7 @@ public class RenderDigitalMiner extends TileEntitySpecialRenderer GL11.glPushMatrix(); GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F); - bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner" + (tileEntity.isActive ? "On" : "") + ".png")); + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "DigitalMiner.png")); switch(tileEntity.facing) { diff --git a/src/main/java/mekanism/common/CommonProxy.java b/src/main/java/mekanism/common/CommonProxy.java index f0d6a066a..73dc1d6a8 100644 --- a/src/main/java/mekanism/common/CommonProxy.java +++ b/src/main/java/mekanism/common/CommonProxy.java @@ -281,7 +281,7 @@ public class CommonProxy implements IGuiProvider general.armoredJetpackDamageRatio = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ArmoredJetpackDamageRatio", 0.8).getDouble(); general.armoredJetpackDamageMax = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ArmoredJepackDamageMax", 115).getInt(); general.aestheticWorldDamage = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "AestheticWorldDamage", true).getBoolean(); - general.opsBypassRestrictions = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "OpsBypassRestrictions", true).getBoolean(); + general.opsBypassRestrictions = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "OpsBypassRestrictions", false).getBoolean(); general.thermalEvaporationSpeed = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "ThermalEvaporationSpeed", 1.0D).getDouble(); general.maxJetpackGas = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "MaxJetpackGas", 24000).getInt(); general.maxScubaGas = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "MaxScubaGas", 24000).getInt(); @@ -297,6 +297,8 @@ public class CommonProxy implements IGuiProvider general.maxEnergyPerSteam = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "MaxEnergyPerSteam", 100D).getDouble(); general.superheatingHeatTransfer = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "SuperheatingHeatTransfer", 10000D).getDouble(); general.heatPerFuelTick = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "HeatPerFuelTick", 4D).getDouble(); + general.allowTransmitterAlloyUpgrade = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "AllowTransmitterAlloyUpgrade", true).getBoolean(); + general.allowProtection = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "AllowProtection", true).getBoolean(); general.blacklistIC2 = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "BlacklistIC2Power", false).getBoolean(); general.blacklistRF = Mekanism.configuration.get(Configuration.CATEGORY_GENERAL, "BlacklistRFPower", false).getBoolean(); @@ -486,23 +488,33 @@ public class CommonProxy implements IGuiProvider return new ContainerRobitMain(player.inventory, robit); } case 22: - return new ContainerRobitCrafting(player.inventory, world); - case 23: - EntityRobit robit1 = (EntityRobit)world.getEntityByID(x); + robit = (EntityRobit)world.getEntityByID(x); - if(robit1 != null) + if(robit != null) { - return new ContainerRobitInventory(player.inventory, robit1); + return new ContainerRobitCrafting(player.inventory, robit); + } + case 23: + robit = (EntityRobit)world.getEntityByID(x); + + if(robit != null) + { + return new ContainerRobitInventory(player.inventory, robit); } case 24: - EntityRobit robit2 = (EntityRobit)world.getEntityByID(x); + robit = (EntityRobit)world.getEntityByID(x); - if(robit2 != null) + if(robit != null) { - return new ContainerRobitSmelting(player.inventory, robit2); + return new ContainerRobitSmelting(player.inventory, robit); } case 25: - return new ContainerRobitRepair(player.inventory, world); + robit = (EntityRobit)world.getEntityByID(x); + + if(robit != null) + { + return new ContainerRobitRepair(player.inventory, robit); + } case 26: return new ContainerNull(player, (TileEntityContainerBlock)tileEntity); case 27: diff --git a/src/main/java/mekanism/common/FluidNetwork.java b/src/main/java/mekanism/common/FluidNetwork.java index 82015a8a8..4631893d8 100644 --- a/src/main/java/mekanism/common/FluidNetwork.java +++ b/src/main/java/mekanism/common/FluidNetwork.java @@ -12,6 +12,7 @@ import mekanism.api.Coord4D; import mekanism.api.transmitters.DynamicNetwork; import mekanism.api.transmitters.IGridTransmitter; import mekanism.common.util.LangUtils; +import mekanism.common.util.PipeUtils; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.ForgeDirection; @@ -164,7 +165,7 @@ public class FluidNetwork extends DynamicNetwork if(acceptor != null && fluidToSend != null) { - fluidSent += acceptor.fill(side, new FluidStack(fluidToSend.getFluidID(), currentSending), doTransfer); + fluidSent += acceptor.fill(side, PipeUtils.copy(fluidToSend, currentSending), doTransfer); } if(fluidSent > prev) diff --git a/src/main/java/mekanism/common/Mekanism.java b/src/main/java/mekanism/common/Mekanism.java index 6cc4a312a..447a62c9f 100644 --- a/src/main/java/mekanism/common/Mekanism.java +++ b/src/main/java/mekanism/common/Mekanism.java @@ -142,7 +142,7 @@ import cpw.mods.fml.common.registry.GameRegistry; * @author AidanBrady * */ -@Mod(modid = "Mekanism", name = "Mekanism", version = "9.0.2", guiFactory = "mekanism.client.gui.ConfigGuiFactory", +@Mod(modid = "Mekanism", name = "Mekanism", version = "9.1.1", guiFactory = "mekanism.client.gui.ConfigGuiFactory", dependencies = "after:ForgeMultipart;after:BuildCraft;after:BuildCraftAPI;after:IC2;after:CoFHCore;" + "after:ComputerCraft;after:Galacticraft API;after:MetallurgyCore") public class Mekanism @@ -168,7 +168,7 @@ public class Mekanism public static Configuration configuration; /** Mekanism version number */ - public static Version versionNumber = new Version(9, 0, 2); + public static Version versionNumber = new Version(9, 1, 1); /** MultiblockManagers for various structrures */ public static MultiblockManager tankManager = new MultiblockManager("dynamicTank"); @@ -357,7 +357,7 @@ public class Mekanism " I ", "IBI", " I ", Character.valueOf('I'), "ingotSteel", Character.valueOf('B'), Items.bucket })); CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 4, 10), new Object[] { - " I ", "IGI", " I ", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9), Character.valueOf('G'), "blockGlass" + " I ", "IGI", " I ", Character.valueOf('I'), "ingotSteel", Character.valueOf('G'), "blockGlass" })); CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock, 2, 11), new Object[] { " I ", "ICI", " I ", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock, 1, 9), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC) @@ -479,15 +479,18 @@ public class Mekanism CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.BasicBlock2, 2, 2), new Object[] { " I ", "ICI", " I ", Character.valueOf('I'), new ItemStack(MekanismBlocks.BasicBlock2, 1, 1), Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE) })); - CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 0), new Object[] { + CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.TierInstaller, 1, 0), new Object[] { "RCR", "iWi", "RCR", Character.valueOf('R'), "alloyBasic", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('i'), "ingotIron", Character.valueOf('W'), "plankWood" })); - CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 1), new Object[] { + CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.TierInstaller, 1, 1), new Object[] { "ECE", "oWo", "ECE", Character.valueOf('E'), "alloyAdvanced", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ADVANCED), Character.valueOf('o'), "ingotOsmium", Character.valueOf('W'), "plankWood" })); - CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.FactoryInstaller, 1, 2), new Object[] { + CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.TierInstaller, 1, 2), new Object[] { "RCR", "gWg", "RCR", Character.valueOf('R'), "alloyElite", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ELITE), Character.valueOf('g'), "ingotGold", Character.valueOf('W'), "plankWood" })); + CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(MekanismItems.TierInstaller, 1, 3), new Object[] { + "RCR", "dWd", "RCR", Character.valueOf('R'), "alloyUltimate", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.ULTIMATE), Character.valueOf('d'), "gemDiamond", Character.valueOf('W'), "plankWood" + })); MachineType.OREDICTIONIFICATOR.addRecipe(new ShapedMekanismRecipe(new ItemStack(MekanismBlocks.MachineBlock3, 1, 3), new Object[] { "SGS", "CBC", "SWS", Character.valueOf('S'), "ingotSteel", Character.valueOf('G'), "paneGlass", Character.valueOf('C'), MekanismUtils.getControlCircuit(BaseTier.BASIC), Character.valueOf('B'), MekanismItems.Dictionary, Character.valueOf('W'), Blocks.chest })); @@ -1206,14 +1209,14 @@ public class Mekanism @EventHandler public void preInit(FMLPreInitializationEvent event) { - //Register tier information - Tier.init(); - File config = event.getSuggestedConfigurationFile(); //Set the mod's configuration configuration = new Configuration(config); - + + //Register tier information + Tier.init(); + if(config.getAbsolutePath().contains("voltz")) { logger.info("Detected Voltz in root directory - hello, fellow user!"); diff --git a/src/main/java/mekanism/common/MekanismItems.java b/src/main/java/mekanism/common/MekanismItems.java index b9f9c2094..f2f7629c9 100644 --- a/src/main/java/mekanism/common/MekanismItems.java +++ b/src/main/java/mekanism/common/MekanismItems.java @@ -14,7 +14,7 @@ import mekanism.common.item.ItemDirtyDust; import mekanism.common.item.ItemDust; import mekanism.common.item.ItemElectricBow; import mekanism.common.item.ItemEnergized; -import mekanism.common.item.ItemFactoryInstaller; +import mekanism.common.item.ItemTierInstaller; import mekanism.common.item.ItemFlamethrower; import mekanism.common.item.ItemFreeRunners; import mekanism.common.item.ItemGasMask; @@ -69,7 +69,7 @@ public class MekanismItems public static final Item FilterUpgrade = new ItemUpgrade(Upgrade.FILTER).setUnlocalizedName("FilterUpgrade"); public static final Item MufflingUpgrade = new ItemUpgrade(Upgrade.MUFFLING).setUnlocalizedName("MufflingUpgrade"); public static final Item GasUpgrade = new ItemUpgrade(Upgrade.GAS).setUnlocalizedName("GasUpgrade"); - public static final Item FactoryInstaller = new ItemFactoryInstaller().setUnlocalizedName("FactoryInstaller"); + public static final Item TierInstaller = new ItemTierInstaller().setUnlocalizedName("FactoryInstaller"); public static final ItemEnergized EnergyTablet = (ItemEnergized)new ItemEnergized(1000000).setUnlocalizedName("EnergyTablet"); public static final ItemRobit Robit = (ItemRobit)new ItemRobit().setUnlocalizedName("Robit"); public static final ItemAtomicDisassembler AtomicDisassembler = (ItemAtomicDisassembler)new ItemAtomicDisassembler().setUnlocalizedName("AtomicDisassembler"); @@ -163,7 +163,7 @@ public class MekanismItems GameRegistry.registerItem(GlowPanel, "GlowPanel"); GameRegistry.registerItem(Flamethrower, "Flamethrower"); GameRegistry.registerItem(GaugeDropper, "GaugeDropper"); - GameRegistry.registerItem(FactoryInstaller, "FactoryInstaller"); + GameRegistry.registerItem(TierInstaller, "FactoryInstaller"); GameRegistry.registerItem(OtherDust, "OtherDust"); FluidContainerRegistry.registerFluidContainer(FluidRegistry.getFluid("brine"), new ItemStack(BrineBucket), FluidContainerRegistry.EMPTY_BUCKET); diff --git a/src/main/java/mekanism/common/RobitAIFollow.java b/src/main/java/mekanism/common/RobitAIFollow.java index 64738d22f..0832e3d2b 100644 --- a/src/main/java/mekanism/common/RobitAIFollow.java +++ b/src/main/java/mekanism/common/RobitAIFollow.java @@ -44,7 +44,6 @@ public class RobitAIFollow extends EntityAIBase thePathfinder = entityRobit.getNavigator(); minDist = min; maxDist = max; - setMutexBits(3); } @Override diff --git a/src/main/java/mekanism/common/RobitAIPickup.java b/src/main/java/mekanism/common/RobitAIPickup.java index bf4e6f25f..74085d5d9 100644 --- a/src/main/java/mekanism/common/RobitAIPickup.java +++ b/src/main/java/mekanism/common/RobitAIPickup.java @@ -42,7 +42,6 @@ public class RobitAIPickup extends EntityAIBase theWorld = entityRobit.worldObj; moveSpeed = speed; thePathfinder = entityRobit.getNavigator(); - setMutexBits(3); } @Override @@ -52,6 +51,7 @@ public class RobitAIPickup extends EntityAIBase { return false; } + if(closest != null && closest.getDistanceSqToEntity(closest) > 100 && thePathfinder.getPathToXYZ(closest.posX, closest.posY, closest.posZ) != null) { return true; @@ -81,7 +81,7 @@ public class RobitAIPickup extends EntityAIBase } } - if(closest == null) + if(closest == null || closest.isDead) { //No valid items return false; @@ -94,7 +94,7 @@ public class RobitAIPickup extends EntityAIBase @Override public boolean continueExecuting() { - return !closest.isDead && !thePathfinder.noPath() && theRobit.getDistanceSqToEntity(closest) > 100 && theRobit.getFollowing() && theRobit.getEnergy() > 0 && closest.worldObj.provider.dimensionId == theRobit.worldObj.provider.dimensionId; + return !closest.isDead && !thePathfinder.noPath() && theRobit.getDistanceSqToEntity(closest) > 100 && theRobit.getDropPickup() && theRobit.getEnergy() > 0 && closest.worldObj.provider.dimensionId == theRobit.worldObj.provider.dimensionId; } @Override @@ -115,12 +115,12 @@ public class RobitAIPickup extends EntityAIBase @Override public void updateTask() { - theRobit.getLookHelper().setLookPositionWithEntity(closest, 6.0F, theRobit.getVerticalFaceSpeed()/10); - if(!theRobit.getDropPickup()) { return; } + + theRobit.getLookHelper().setLookPositionWithEntity(closest, 6.0F, theRobit.getVerticalFaceSpeed()/10); if(--ticker <= 0) { @@ -147,7 +147,6 @@ public class RobitAIPickup extends EntityAIBase } } } - } } } diff --git a/src/main/java/mekanism/common/ThreadGetData.java b/src/main/java/mekanism/common/ThreadGetData.java index 310154f54..bdcc621c8 100644 --- a/src/main/java/mekanism/common/ThreadGetData.java +++ b/src/main/java/mekanism/common/ThreadGetData.java @@ -1,6 +1,9 @@ package mekanism.common; +import java.util.List; + import mekanism.common.util.MekanismUtils; +import cpw.mods.fml.relauncher.FMLInjectionData; /** * Thread used to retrieve data from the Mekanism server. @@ -18,9 +21,27 @@ public class ThreadGetData extends Thread @Override public void run() { - Mekanism.latestVersionNumber = MekanismUtils.getLatestVersion(); - Mekanism.recentNews = MekanismUtils.getRecentNews(); - + List ret = MekanismUtils.getHTML("http://aidancbrady.com/data/versions/Mekanism.txt"); + + Mekanism.latestVersionNumber = "null"; + Mekanism.recentNews = "null"; + + for(String s : ret) + { + String[] text = s.split(":"); + + if(text.length == 3 && !text[0].contains("UTF-8") && !text[0].contains("HTML") && !text[0].contains("http")) + { + if(Version.get(text[0]) != null && Version.get(text[0]).equals(Version.get((String)FMLInjectionData.data()[4]))) + { + Mekanism.latestVersionNumber = text[1]; + Mekanism.recentNews = text[2]; + + break; + } + } + } + MekanismUtils.updateDonators(); } } diff --git a/src/main/java/mekanism/common/Version.java b/src/main/java/mekanism/common/Version.java index ee5b058cd..ff1eb97e1 100644 --- a/src/main/java/mekanism/common/Version.java +++ b/src/main/java/mekanism/common/Version.java @@ -1,7 +1,7 @@ package mekanism.common; /** - * Version v1.0.4. Simple version handling for Mekanism. + * Version v2.0.0. Simple version handling for Mekanism. * @author AidanBrady * */ @@ -127,4 +127,29 @@ public class Version return major + "." + minor + "." + build; } } + + @Override + public int hashCode() + { + int result = 1; + + result = 31 * result + build; + result = 31 * result + major; + result = 31 * result + minor; + + return result; + } + + @Override + public boolean equals(Object obj) + { + if(obj == null || getClass() != obj.getClass()) + { + return false; + } + + Version other = (Version)obj; + + return build == other.build && major == other.major && minor == other.minor; + } } diff --git a/src/main/java/mekanism/common/base/EnergyAcceptorWrapper.java b/src/main/java/mekanism/common/base/EnergyAcceptorWrapper.java index b8059e239..5ead4daa5 100644 --- a/src/main/java/mekanism/common/base/EnergyAcceptorWrapper.java +++ b/src/main/java/mekanism/common/base/EnergyAcceptorWrapper.java @@ -103,8 +103,7 @@ public abstract class EnergyAcceptorWrapper implements IStrictEnergyAcceptor @Override public double transferEnergyToAcceptor(ForgeDirection side, double amount) { - int needed = Math.min(acceptor.getMaxEnergyStored(side)-acceptor.getEnergyStored(side), Integer.MAX_VALUE); - int transferred = acceptor.receiveEnergy(side, Math.min(needed, toRF(amount)), false); + int transferred = acceptor.receiveEnergy(side, Math.min(Integer.MAX_VALUE, toRF(amount)), false); return fromRF(transferred); } @@ -170,7 +169,9 @@ public abstract class EnergyAcceptorWrapper implements IStrictEnergyAcceptor public double transferEnergyToAcceptor(ForgeDirection side, double amount) { double toTransfer = Math.min(Math.min(acceptor.getDemandedEnergy(), toEU(amount)), Integer.MAX_VALUE); - return amount - fromEU(acceptor.injectEnergy(side, toTransfer, 0)); + double rejects = acceptor.injectEnergy(side, toTransfer, 0); + + return fromEU(toTransfer - rejects); } @Override diff --git a/src/main/java/mekanism/common/base/IFactory.java b/src/main/java/mekanism/common/base/IFactory.java index 873d17e01..b4859abe2 100644 --- a/src/main/java/mekanism/common/base/IFactory.java +++ b/src/main/java/mekanism/common/base/IFactory.java @@ -242,6 +242,24 @@ public interface IFactory { return fuelSpeed; } + + public static RecipeType getFromMachine(Block block, int meta) + { + RecipeType type = null; + + for(RecipeType iterType : RecipeType.values()) + { + ItemStack machineStack = iterType.getStack(); + + if(Block.getBlockFromItem(machineStack.getItem()) == block && machineStack.getItemDamage() == meta) + { + type = iterType; + break; + } + } + + return type; + } private RecipeType(String s, String s1, ItemStack is, boolean b, boolean b1, Recipe r) { diff --git a/src/main/java/mekanism/common/base/ITierUpgradeable.java b/src/main/java/mekanism/common/base/ITierUpgradeable.java new file mode 100644 index 000000000..591559591 --- /dev/null +++ b/src/main/java/mekanism/common/base/ITierUpgradeable.java @@ -0,0 +1,8 @@ +package mekanism.common.base; + +import mekanism.common.Tier.BaseTier; + +public interface ITierUpgradeable +{ + public boolean upgrade(BaseTier upgradeTier); +} diff --git a/src/main/java/mekanism/common/block/BlockBounding.java b/src/main/java/mekanism/common/block/BlockBounding.java index 176585493..3a16ac6da 100644 --- a/src/main/java/mekanism/common/block/BlockBounding.java +++ b/src/main/java/mekanism/common/block/BlockBounding.java @@ -37,7 +37,7 @@ public class BlockBounding extends Block { try { TileEntityBoundingBlock tileEntity = (TileEntityBoundingBlock)world.getTileEntity(x, y, z); - return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).onBlockActivated(world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, entityplayer, facing, playerX, playerY, playerZ); + return getMainBlock(tileEntity, world).onBlockActivated(world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, entityplayer, facing, playerX, playerY, playerZ); } catch(Exception e) { return false; } @@ -56,7 +56,7 @@ public class BlockBounding extends Block { try { TileEntityBoundingBlock tileEntity = (TileEntityBoundingBlock)world.getTileEntity(x, y, z); - return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).getPickBlock(target, world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, player); + return getMainBlock(tileEntity, world).getPickBlock(target, world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, player); } catch(Exception e) { return null; } @@ -67,7 +67,7 @@ public class BlockBounding extends Block { try { TileEntityBoundingBlock tileEntity = (TileEntityBoundingBlock)world.getTileEntity(x, y, z); - return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).removedByPlayer(world, player, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, willHarvest); + return getMainBlock(tileEntity, world).removedByPlayer(world, player, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, willHarvest); } catch(Exception e) { return false; } @@ -79,7 +79,7 @@ public class BlockBounding extends Block try { TileEntityBoundingBlock tileEntity = (TileEntityBoundingBlock)world.getTileEntity(x, y, z); tileEntity.onNeighborChange(block); - world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).onNeighborBlockChange(world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, this); + getMainBlock(tileEntity, world).onNeighborBlockChange(world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ, this); } catch(Exception e) {} } @@ -88,11 +88,23 @@ public class BlockBounding extends Block { try { TileEntityBoundingBlock tileEntity = (TileEntityBoundingBlock)world.getTileEntity(x, y, z); - return world.getBlock(tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ).getPlayerRelativeBlockHardness(player, world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ); + return getMainBlock(tileEntity, world).getPlayerRelativeBlockHardness(player, world, tileEntity.mainX, tileEntity.mainY, tileEntity.mainZ); } catch(Exception e) { return super.getPlayerRelativeBlockHardness(player, world, x, y, z); } } + + private Block getMainBlock(TileEntityBoundingBlock mainTile, World world) + { + Block block = world.getBlock(mainTile.mainX, mainTile.mainY, mainTile.mainZ); + + if(block instanceof BlockBounding) + { + return null; + } + + return block; + } @Override public int quantityDropped(Random random) diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index a40e30e03..02574539a 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -84,6 +84,7 @@ import mekanism.common.tile.TileEntitySolarNeutronActivator; import mekanism.common.tile.TileEntityTeleporter; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; +import mekanism.common.util.PipeUtils; import mekanism.common.util.SecurityUtils; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; @@ -687,7 +688,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo { String owner = ((ISecurityTile)tileEntity).getSecurity().getOwner(); - if(owner == null || entityplayer.getCommandSenderName().equals(owner)) + if(MekanismUtils.isOp((EntityPlayerMP)entityplayer) || owner == null || entityplayer.getCommandSenderName().equals(owner)) { entityplayer.openGui(Mekanism.instance, type.guiId, world, x, y, z); } @@ -801,6 +802,38 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo return world.setBlockToAir(x, y, z); } + @Override + public boolean hasComparatorInputOverride() + { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int par5) + { + TileEntity tileEntity = world.getTileEntity(x, y, z); + + if(tileEntity instanceof TileEntityFluidTank) + { + return ((TileEntityFluidTank)tileEntity).getRedstoneLevel(); + } + + if(tileEntity instanceof TileEntityLaserAmplifier) + { + TileEntityLaserAmplifier amplifier = (TileEntityLaserAmplifier)tileEntity; + + if(amplifier.outputMode == TileEntityLaserAmplifier.RedstoneOutput.ENERGY_CONTENTS) + { + return amplifier.getRedstoneLevel(); + } + else { + return isProvidingWeakPower(world, x, y, z, par5); + } + } + + return 0; + } + private boolean manageInventory(EntityPlayer player, TileEntityFluidTank tileEntity) { ItemStack itemStack = player.getCurrentEquippedItem(); @@ -899,7 +932,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo if(itemFluid.amount-toFill > 0) { - tileEntity.pushUp(new FluidStack(itemFluid.getFluid(), itemFluid.amount-toFill), true); + tileEntity.pushUp(PipeUtils.copy(itemFluid, itemFluid.amount-toFill), true); } return true; diff --git a/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java b/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java index c769bd490..9dbf0ec6a 100644 --- a/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java +++ b/src/main/java/mekanism/common/content/entangloporter/InventoryFrequency.java @@ -90,7 +90,7 @@ public class InventoryFrequency extends Frequency if(nbtTags.hasKey("storedItem")) { - storedItem.readFromNBT(nbtTags.getCompoundTag("storedItem")); + storedItem = ItemStack.loadItemStackFromNBT(nbtTags.getCompoundTag("storedItem")); } temperature = nbtTags.getDouble("temperature"); diff --git a/src/main/java/mekanism/common/content/tank/TankUpdateProtocol.java b/src/main/java/mekanism/common/content/tank/TankUpdateProtocol.java index 12cebf11d..995051974 100644 --- a/src/main/java/mekanism/common/content/tank/TankUpdateProtocol.java +++ b/src/main/java/mekanism/common/content/tank/TankUpdateProtocol.java @@ -16,7 +16,7 @@ import net.minecraft.item.ItemStack; public class TankUpdateProtocol extends UpdateProtocol { - public static final int FLUID_PER_TANK = 16000; + public static final int FLUID_PER_TANK = 64000; public TankUpdateProtocol(TileEntityDynamicTank tileEntity) { diff --git a/src/main/java/mekanism/common/frequency/FrequencyManager.java b/src/main/java/mekanism/common/frequency/FrequencyManager.java index b5acee517..a8d46c96c 100644 --- a/src/main/java/mekanism/common/frequency/FrequencyManager.java +++ b/src/main/java/mekanism/common/frequency/FrequencyManager.java @@ -4,8 +4,10 @@ import io.netty.buffer.ByteBuf; import java.lang.reflect.Constructor; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Set; import mekanism.api.Coord4D; @@ -18,6 +20,10 @@ import net.minecraftforge.common.util.Constants.NBT; public class FrequencyManager { + public static final int MAX_FREQ_LENGTH = 16; + public static final List SPECIAL_CHARS = Arrays.asList('-', ' ', '|', '\'', '\"', '_', '+', ':', '(', ')', + '?', '!', '/', '@', '$', '`', '~', ',', '.', '#'); + public static boolean loaded; private static Set managers = new HashSet(); @@ -147,6 +153,7 @@ public class FrequencyManager if(user.equals(freq.owner)) { freq.activeCoords.add(coord); + freq.valid = true; frequencies.add(freq); dataHandler.markDirty(); diff --git a/src/main/java/mekanism/common/integration/OreDictManager.java b/src/main/java/mekanism/common/integration/OreDictManager.java index c81eb330c..37d6e821f 100644 --- a/src/main/java/mekanism/common/integration/OreDictManager.java +++ b/src/main/java/mekanism/common/integration/OreDictManager.java @@ -267,6 +267,13 @@ public final class OreDictManager RecipeHandler.addCrusherRecipe(new ItemStack(Items.gunpowder), StackUtils.size(OreDictionary.getOres("dustSaltpeter").get(0), 1)); } catch(Exception e) {} + for(ItemStack ore : OreDictionary.getOres("sand")) + { + try { + RecipeHandler.addCrusherRecipe(StackUtils.size(ore, 1), StackUtils.size(OreDictionary.getOres("itemSilicon").get(0), 1)); + } catch(Exception e) {} + } + for(ItemStack ore : OreDictionary.getOres("dustSaltpeter")) { RecipeHandler.addEnrichmentChamberRecipe(StackUtils.size(ore, 1), new ItemStack(Items.gunpowder)); diff --git a/src/main/java/mekanism/common/inventory/container/ContainerFactory.java b/src/main/java/mekanism/common/inventory/container/ContainerFactory.java index 088e03932..03643cb52 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerFactory.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerFactory.java @@ -116,7 +116,7 @@ public class ContainerFactory extends Container { ItemStack stack = null; Slot currentSlot = (Slot)inventorySlots.get(slotID); - + if(currentSlot != null && currentSlot.getHasStack()) { ItemStack slotStack = currentSlot.getStack(); @@ -178,7 +178,7 @@ public class ContainerFactory extends Container } else if(tileEntity.recipeType.getItemGas(slotStack) != null) { - if(slotID > tileEntity.inventory.length-1) + if(slotID >= tileEntity.inventory.length-1) { if(!mergeItemStack(slotStack, 3, 4, false)) { @@ -194,7 +194,7 @@ public class ContainerFactory extends Container } else if(tileEntity.recipeType == RecipeType.INFUSING && InfuseRegistry.getObject(slotStack) != null && (tileEntity.infuseStored.type == null || tileEntity.infuseStored.type == InfuseRegistry.getObject(slotStack).type)) { - if(slotID > tileEntity.inventory.length-1) + if(slotID >= tileEntity.inventory.length-1) { if(!mergeItemStack(slotStack, 3, 4, false)) { @@ -267,25 +267,11 @@ public class ContainerFactory extends Container public boolean isInputSlot(int slot) { - if(tileEntity.tier == Tier.FactoryTier.BASIC) - return slot >= 4 && slot <= 6; - if(tileEntity.tier == Tier.FactoryTier.ADVANCED) - return slot >= 4 && slot <= 8; - if(tileEntity.tier == Tier.FactoryTier.ELITE) - return slot >= 4 && slot <= 10; - - return false; + return slot >= 4 && slot < 4+tileEntity.tier.processes; } public boolean isOutputSlot(int slot) { - if(tileEntity.tier == Tier.FactoryTier.BASIC) - return slot >= 7 && slot <= 9; - if(tileEntity.tier == Tier.FactoryTier.ADVANCED) - return slot >= 9 && slot <= 13; - if(tileEntity.tier == Tier.FactoryTier.ELITE) - return slot >= 11 && slot <= 17; - - return false; + return slot >= 4+tileEntity.tier.processes && slot < 4+tileEntity.tier.processes*2; } } diff --git a/src/main/java/mekanism/common/inventory/container/ContainerRobitCrafting.java b/src/main/java/mekanism/common/inventory/container/ContainerRobitCrafting.java index e40ff8aa1..f46e7a244 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerRobitCrafting.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerRobitCrafting.java @@ -1,20 +1,24 @@ package mekanism.common.inventory.container; +import mekanism.common.entity.EntityRobit; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ContainerWorkbench; -import net.minecraft.world.World; public class ContainerRobitCrafting extends ContainerWorkbench { - public ContainerRobitCrafting(InventoryPlayer inventory, World world) + public EntityRobit robit; + + public ContainerRobitCrafting(InventoryPlayer inventory, EntityRobit entity) { - super(inventory, world, 0, 0, 0); + super(inventory, entity.worldObj, 0, 0, 0); + + robit = entity; } @Override public boolean canInteractWith(EntityPlayer entityplayer) { - return true; + return !robit.isDead; } } diff --git a/src/main/java/mekanism/common/inventory/container/ContainerRobitInventory.java b/src/main/java/mekanism/common/inventory/container/ContainerRobitInventory.java index 63eff3bec..c75bc5154 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerRobitInventory.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerRobitInventory.java @@ -43,7 +43,7 @@ public class ContainerRobitInventory extends Container @Override public boolean canInteractWith(EntityPlayer entityplayer) { - return true; + return !robit.isDead; } @Override diff --git a/src/main/java/mekanism/common/inventory/container/ContainerRobitMain.java b/src/main/java/mekanism/common/inventory/container/ContainerRobitMain.java index 6d03f493c..bc3f21585 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerRobitMain.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerRobitMain.java @@ -45,7 +45,7 @@ public class ContainerRobitMain extends Container @Override public boolean canInteractWith(EntityPlayer entityplayer) { - return true; + return !robit.isDead; } @Override diff --git a/src/main/java/mekanism/common/inventory/container/ContainerRobitRepair.java b/src/main/java/mekanism/common/inventory/container/ContainerRobitRepair.java index d3bc35490..34ca22493 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerRobitRepair.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerRobitRepair.java @@ -1,20 +1,24 @@ package mekanism.common.inventory.container; +import mekanism.common.entity.EntityRobit; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ContainerRepair; -import net.minecraft.world.World; public class ContainerRobitRepair extends ContainerRepair { - public ContainerRobitRepair(InventoryPlayer inventory, World world) + public EntityRobit robit; + + public ContainerRobitRepair(InventoryPlayer inventory, EntityRobit entity) { - super(inventory, world, 0, 0, 0, inventory.player); + super(inventory, entity.worldObj, 0, 0, 0, inventory.player); + + robit = entity; } @Override public boolean canInteractWith(EntityPlayer entityplayer) { - return true; + return !robit.isDead; } } diff --git a/src/main/java/mekanism/common/inventory/container/ContainerRobitSmelting.java b/src/main/java/mekanism/common/inventory/container/ContainerRobitSmelting.java index 40dd9b655..f0d6c27a6 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerRobitSmelting.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerRobitSmelting.java @@ -47,7 +47,7 @@ public class ContainerRobitSmelting extends Container @Override public boolean canInteractWith(EntityPlayer entityplayer) { - return true; + return !robit.isDead; } @Override diff --git a/src/main/java/mekanism/common/item/ItemAlloy.java b/src/main/java/mekanism/common/item/ItemAlloy.java index ca935aaca..e0aba921b 100644 --- a/src/main/java/mekanism/common/item/ItemAlloy.java +++ b/src/main/java/mekanism/common/item/ItemAlloy.java @@ -1,6 +1,7 @@ package mekanism.common.item; import mekanism.api.IAlloyInteraction; +import mekanism.api.MekanismConfig.general; import mekanism.common.MekanismItems; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -19,7 +20,7 @@ public class ItemAlloy extends ItemMekanism { TileEntity tile = world.getTileEntity(x, y, z); - if(tile instanceof IAlloyInteraction) + if(general.allowTransmitterAlloyUpgrade && tile instanceof IAlloyInteraction) { if(!world.isRemote) { diff --git a/src/main/java/mekanism/common/item/ItemBlockBasic.java b/src/main/java/mekanism/common/item/ItemBlockBasic.java index 1e8ad4229..54fc2903a 100644 --- a/src/main/java/mekanism/common/item/ItemBlockBasic.java +++ b/src/main/java/mekanism/common/item/ItemBlockBasic.java @@ -158,11 +158,13 @@ public class ItemBlockBasic extends ItemBlock implements IEnergizedItem, ITierIt if(inv.getItemCount() > 0) { list.add(EnumColor.BRIGHT_GREEN + inv.getItemType().getDisplayName()); - list.add(EnumColor.INDIGO + LangUtils.localize("tooltip.itemAmount") + ": " + EnumColor.GREY + inv.getItemCount()); + list.add(EnumColor.PURPLE + LangUtils.localize("tooltip.itemAmount") + ": " + EnumColor.GREY + inv.getItemCount()); } else { list.add(EnumColor.DARK_RED + LangUtils.localize("gui.empty")); } + + list.add(EnumColor.INDIGO + LangUtils.localize("tooltip.capacity") + ": " + EnumColor.GREY + BinTier.values()[getBaseTier(itemstack).ordinal()].storage + " " + LangUtils.localize("transmission.Items")); } else if(type == BasicType.INDUCTION_CELL) { diff --git a/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java b/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java index 856673e59..d467beb84 100644 --- a/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java +++ b/src/main/java/mekanism/common/item/ItemBlockEnergyCube.java @@ -64,6 +64,7 @@ public class ItemBlockEnergyCube extends ItemBlock implements IEnergizedItem, IE public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag) { list.add(EnumColor.BRIGHT_GREEN + LangUtils.localize("tooltip.storedEnergy") + ": " + EnumColor.GREY + MekanismUtils.getEnergyDisplay(getEnergy(itemstack))); + list.add(EnumColor.INDIGO + LangUtils.localize("tooltip.capacity") + ": " + EnumColor.GREY + MekanismUtils.getEnergyDisplay(getEnergyCubeTier(itemstack).maxEnergy)); if(!MekKeyHandler.getIsKeyPressed(MekanismKeyHandler.sneakKey)) { @@ -392,7 +393,7 @@ public class ItemBlockEnergyCube extends ItemBlock implements IEnergizedItem, IE @Override public SecurityMode getSecurity(ItemStack stack) { - if(stack.stackTagCompound == null) + if(stack.stackTagCompound == null || !general.allowProtection) { return SecurityMode.PUBLIC; } diff --git a/src/main/java/mekanism/common/item/ItemBlockGasTank.java b/src/main/java/mekanism/common/item/ItemBlockGasTank.java index 6b56cd255..1f9be49f8 100644 --- a/src/main/java/mekanism/common/item/ItemBlockGasTank.java +++ b/src/main/java/mekanism/common/item/ItemBlockGasTank.java @@ -122,11 +122,13 @@ public class ItemBlockGasTank extends ItemBlock implements IGasItem, ISustainedI if(gasStack == null) { - list.add(LangUtils.localize("tooltip.noGas") + "."); + list.add(EnumColor.DARK_RED + LangUtils.localize("gui.empty") + "."); } else { - list.add(LangUtils.localize("tooltip.stored") + " " + gasStack.getGas().getLocalizedName() + ": " + gasStack.amount); + list.add(EnumColor.ORANGE + gasStack.getGas().getLocalizedName() + ": " + EnumColor.GREY + gasStack.amount); } + + list.add(EnumColor.INDIGO + LangUtils.localize("tooltip.capacity") + ": " + EnumColor.GREY + GasTankTier.values()[getBaseTier(itemstack).ordinal()].storage); if(!MekKeyHandler.getIsKeyPressed(MekanismKeyHandler.sneakKey)) { @@ -371,7 +373,7 @@ public class ItemBlockGasTank extends ItemBlock implements IGasItem, ISustainedI @Override public SecurityMode getSecurity(ItemStack stack) { - if(stack.stackTagCompound == null) + if(stack.stackTagCompound == null || !general.allowProtection) { return SecurityMode.PUBLIC; } diff --git a/src/main/java/mekanism/common/item/ItemBlockMachine.java b/src/main/java/mekanism/common/item/ItemBlockMachine.java index 922a0cfe3..7d695f6b2 100644 --- a/src/main/java/mekanism/common/item/ItemBlockMachine.java +++ b/src/main/java/mekanism/common/item/ItemBlockMachine.java @@ -36,6 +36,7 @@ import mekanism.common.tile.TileEntityFactory; import mekanism.common.tile.TileEntityFluidTank; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; +import mekanism.common.util.PipeUtils; import mekanism.common.util.SecurityUtils; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -178,8 +179,13 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec if(fluidStack != null) { - list.add(EnumColor.PINK + LangUtils.localizeFluidStack(fluidStack) + ": " + EnumColor.GREY + getFluidStack(itemstack).amount + "mB"); + list.add(EnumColor.AQUA + LangUtils.localizeFluidStack(fluidStack) + ": " + EnumColor.GREY + getFluidStack(itemstack).amount + "mB"); } + else { + list.add(EnumColor.DARK_RED + LangUtils.localize("gui.empty") + "."); + } + + list.add(EnumColor.INDIGO + LangUtils.localize("tooltip.capacity") + ": " + EnumColor.GREY + FluidTankTier.values()[getBaseTier(itemstack).ordinal()].storage + " mB"); } list.add(LangUtils.localize("tooltip.hold") + " " + EnumColor.INDIGO + GameSettings.getKeyDisplayString(MekanismKeyHandler.sneakKey.getKeyCode()) + EnumColor.GREY + " " + LangUtils.localize("tooltip.forDetails") + "."); @@ -852,7 +858,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec if(doFill) { int fillAmount = toFill + (stored == null ? 0 : stored.amount); - setFluidStack(new FluidStack(resource.getFluid(), (stored != null ? stored.amount : 0)+toFill), container); + setFluidStack(PipeUtils.copy(resource, (stored != null ? stored.amount : 0)+toFill), container); } return toFill; @@ -870,7 +876,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec if(stored != null) { - FluidStack toDrain = new FluidStack(stored.getFluid(), Math.min(stored.amount, maxDrain)); + FluidStack toDrain = PipeUtils.copy(stored, Math.min(stored.amount, maxDrain)); if(doDrain) { @@ -938,7 +944,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec @Override public SecurityMode getSecurity(ItemStack stack) { - if(stack.stackTagCompound == null) + if(stack.stackTagCompound == null || !general.allowProtection) { return SecurityMode.PUBLIC; } diff --git a/src/main/java/mekanism/common/item/ItemFactoryInstaller.java b/src/main/java/mekanism/common/item/ItemFactoryInstaller.java deleted file mode 100644 index 59c6ff8aa..000000000 --- a/src/main/java/mekanism/common/item/ItemFactoryInstaller.java +++ /dev/null @@ -1,159 +0,0 @@ -package mekanism.common.item; - -import java.util.List; - -import mekanism.common.Tier.BaseTier; -import mekanism.common.Tier.FactoryTier; -import mekanism.common.base.IFactory.RecipeType; -import mekanism.common.tile.TileEntityAdvancedElectricMachine; -import mekanism.common.tile.TileEntityBasicBlock; -import mekanism.common.tile.TileEntityElectricMachine; -import mekanism.common.tile.TileEntityFactory; -import mekanism.common.tile.TileEntityMetallurgicInfuser; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class ItemFactoryInstaller extends ItemMekanism -{ - public IIcon[] icons = new IIcon[256]; - - public ItemFactoryInstaller() - { - super(); - setMaxStackSize(1); - setHasSubtypes(true); - } - - @Override - public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) - { - if(world.isRemote) - { - return false; - } - - TileEntity tile = world.getTileEntity(x, y, z); - FactoryTier tier = FactoryTier.values()[stack.getItemDamage()]; - - if(tile instanceof TileEntityBasicBlock && ((TileEntityBasicBlock)tile).playersUsing.size() > 0) - { - return true; - } - - if(tile instanceof TileEntityFactory && tier != FactoryTier.BASIC) - { - TileEntityFactory factory = (TileEntityFactory)tile; - - if(factory.tier.ordinal()+1 == tier.ordinal()) - { - if(!world.isRemote) - { - factory.upgrade(); - } - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - - return true; - } - } - else if(tile != null && tier == FactoryTier.BASIC) - { - RecipeType type = null; - - for(RecipeType iterType : RecipeType.values()) - { - ItemStack machineStack = iterType.getStack(); - - if(Block.getBlockFromItem(machineStack.getItem()) == world.getBlock(x, y, z) && machineStack.getItemDamage() == world.getBlockMetadata(x, y, z)) - { - type = iterType; - break; - } - } - - if(type != null) - { - if(tile instanceof TileEntityElectricMachine) - { - ((TileEntityElectricMachine)tile).upgrade(type); - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - - return true; - } - else if(tile instanceof TileEntityAdvancedElectricMachine) - { - ((TileEntityAdvancedElectricMachine)tile).upgrade(type); - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - - return true; - } - else if(tile instanceof TileEntityMetallurgicInfuser) - { - ((TileEntityMetallurgicInfuser)tile).upgrade(type); - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - - return true; - } - } - } - - return false; - } - - private int getOutputSlot(FactoryTier tier, int operation) - { - return 5+tier.processes+operation; - } - - @Override - public void registerIcons(IIconRegister register) - { - for(FactoryTier tier : FactoryTier.values()) - { - icons[tier.ordinal()] = register.registerIcon("mekanism:" + tier.getBaseTier().getName() + "FactoryInstaller"); - } - } - - @Override - public IIcon getIconFromDamage(int meta) - { - return icons[meta]; - } - - @Override - public void getSubItems(Item item, CreativeTabs tabs, List itemList) - { - for(FactoryTier tier : FactoryTier.values()) - { - itemList.add(new ItemStack(item, 1, tier.ordinal())); - } - } - - @Override - public String getUnlocalizedName(ItemStack item) - { - return "item." + BaseTier.values()[item.getItemDamage()].getName().toLowerCase() + "FactoryInstaller"; - } -} diff --git a/src/main/java/mekanism/common/item/ItemGaugeDropper.java b/src/main/java/mekanism/common/item/ItemGaugeDropper.java index 8d2d3dd6f..ac4e83efd 100644 --- a/src/main/java/mekanism/common/item/ItemGaugeDropper.java +++ b/src/main/java/mekanism/common/item/ItemGaugeDropper.java @@ -7,6 +7,7 @@ import mekanism.api.gas.GasStack; import mekanism.api.gas.IGasItem; import mekanism.common.Mekanism; import mekanism.common.util.LangUtils; +import mekanism.common.util.PipeUtils; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -164,7 +165,7 @@ public class ItemGaugeDropper extends ItemMekanism implements IGasItem, IFluidCo if(doFill) { int fillAmount = toFill + (stored == null ? 0 : stored.amount); - setFluid(container, new FluidStack(resource.getFluid(), (stored != null ? stored.amount : 0)+toFill)); + setFluid(container, PipeUtils.copy(resource, (stored != null ? stored.amount : 0)+toFill)); } return toFill; @@ -177,7 +178,7 @@ public class ItemGaugeDropper extends ItemMekanism implements IGasItem, IFluidCo if(stored != null) { - FluidStack toDrain = new FluidStack(stored.getFluid(), Math.min(stored.amount, maxDrain)); + FluidStack toDrain = PipeUtils.copy(stored, Math.min(stored.amount, maxDrain)); if(doDrain) { diff --git a/src/main/java/mekanism/common/item/ItemPortableTeleporter.java b/src/main/java/mekanism/common/item/ItemPortableTeleporter.java index 4491be785..425ce7370 100644 --- a/src/main/java/mekanism/common/item/ItemPortableTeleporter.java +++ b/src/main/java/mekanism/common/item/ItemPortableTeleporter.java @@ -4,13 +4,10 @@ import java.util.List; import mekanism.api.Coord4D; import mekanism.api.EnumColor; -import mekanism.client.MekKeyHandler; -import mekanism.client.MekanismKeyHandler; import mekanism.common.Mekanism; import mekanism.common.security.IOwnerItem; import mekanism.common.util.LangUtils; import mekanism.common.util.SecurityUtils; -import net.minecraft.client.settings.GameSettings; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -36,13 +33,7 @@ public class ItemPortableTeleporter extends ItemEnergized implements IOwnerItem list.add(EnumColor.INDIGO + LangUtils.localize("gui.mode") + ": " + EnumColor.GREY + LangUtils.localize("gui." + (isPrivateMode(itemstack) ? "private" : "public"))); } - if(!MekKeyHandler.getIsKeyPressed(MekanismKeyHandler.sneakKey)) - { - list.add(LangUtils.localize("tooltip.hold") + " " + EnumColor.AQUA + GameSettings.getKeyDisplayString(MekanismKeyHandler.sneakKey.getKeyCode()) + EnumColor.GREY + " " + LangUtils.localize("tooltip.forDetails") + "."); - } - else { - super.addInformation(itemstack, entityplayer, list, flag); - } + super.addInformation(itemstack, entityplayer, list, flag); } @Override diff --git a/src/main/java/mekanism/common/item/ItemTierInstaller.java b/src/main/java/mekanism/common/item/ItemTierInstaller.java new file mode 100644 index 000000000..065ec62ad --- /dev/null +++ b/src/main/java/mekanism/common/item/ItemTierInstaller.java @@ -0,0 +1,96 @@ +package mekanism.common.item; + +import java.util.List; + +import mekanism.common.Tier.BaseTier; +import mekanism.common.base.ITierUpgradeable; +import mekanism.common.tile.TileEntityBasicBlock; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class ItemTierInstaller extends ItemMekanism +{ + public IIcon[] icons = new IIcon[256]; + + public ItemTierInstaller() + { + super(); + setHasSubtypes(true); + } + + @Override + public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) + { + if(world.isRemote) + { + return false; + } + + TileEntity tile = world.getTileEntity(x, y, z); + BaseTier tier = BaseTier.values()[stack.getItemDamage()]; + + if(tile instanceof ITierUpgradeable) + { + if(tile instanceof TileEntityBasicBlock && ((TileEntityBasicBlock)tile).playersUsing.size() > 0) + { + return true; + } + + if(((ITierUpgradeable)tile).upgrade(tier)) + { + if(!player.capabilities.isCreativeMode) + { + stack.stackSize--; + } + + return true; + } + + return false; + } + + return false; + } + + @Override + public void registerIcons(IIconRegister register) + { + for(BaseTier tier : BaseTier.values()) + { + if(tier.isObtainable()) + { + icons[tier.ordinal()] = register.registerIcon("mekanism:" + tier.getName() + "TierInstaller"); + } + } + } + + @Override + public IIcon getIconFromDamage(int meta) + { + return icons[meta]; + } + + @Override + public void getSubItems(Item item, CreativeTabs tabs, List itemList) + { + for(BaseTier tier : BaseTier.values()) + { + if(tier.isObtainable()) + { + itemList.add(new ItemStack(item, 1, tier.ordinal())); + } + } + } + + @Override + public String getUnlocalizedName(ItemStack item) + { + return "item." + BaseTier.values()[item.getItemDamage()].getName().toLowerCase() + "TierInstaller"; + } +} diff --git a/src/main/java/mekanism/common/item/ItemUpgrade.java b/src/main/java/mekanism/common/item/ItemUpgrade.java index dcc34c861..0f081d656 100644 --- a/src/main/java/mekanism/common/item/ItemUpgrade.java +++ b/src/main/java/mekanism/common/item/ItemUpgrade.java @@ -5,10 +5,14 @@ import java.util.List; import mekanism.api.EnumColor; import mekanism.common.Upgrade; import mekanism.common.base.IUpgradeItem; +import mekanism.common.base.IUpgradeTile; +import mekanism.common.tile.component.TileComponentUpgrade; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; import org.lwjgl.input.Keyboard; @@ -44,4 +48,37 @@ public class ItemUpgrade extends ItemMekanism implements IUpgradeItem { return upgrade; } + + @Override + public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) + { + if(world.isRemote) + { + return false; + } + + if(player.isSneaking()) + { + TileEntity tile = world.getTileEntity(x, y, z); + Upgrade type = getUpgradeType(stack); + + if(tile instanceof IUpgradeTile) + { + TileComponentUpgrade component = ((IUpgradeTile)tile).getComponent(); + + if(component.supports(type)) + { + if(component.getUpgrades(type) < type.getMax()) + { + component.addUpgrade(type); + stack.stackSize--; + } + } + + return true; + } + } + + return false; + } } diff --git a/src/main/java/mekanism/common/multipart/MultipartTransmitter.java b/src/main/java/mekanism/common/multipart/MultipartTransmitter.java index f05741c06..970043090 100644 --- a/src/main/java/mekanism/common/multipart/MultipartTransmitter.java +++ b/src/main/java/mekanism/common/multipart/MultipartTransmitter.java @@ -55,7 +55,7 @@ public class MultipartTransmitter> extends Tran { IGridTransmitter transmitter = ((ITransmitterTile)potentialTransmitterTile).getTransmitter(); - if(TransmissionType.checkTransmissionType(transmitter, getTransmissionType())) + if(TransmissionType.checkTransmissionType(transmitter, getTransmissionType()) && containingPart.isValidTransmitter(potentialTransmitterTile)) { return sideCoord; } diff --git a/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java b/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java index fa78dfbd3..19a4bce76 100644 --- a/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java +++ b/src/main/java/mekanism/common/multipart/PartLogisticalTransporter.java @@ -7,6 +7,7 @@ import java.util.Collection; import mekanism.api.Coord4D; import mekanism.api.EnumColor; +import mekanism.api.MekanismConfig.client; import mekanism.api.Range4D; import mekanism.api.transmitters.TransmissionType; import mekanism.client.render.RenderPartTransmitter; @@ -94,7 +95,7 @@ public class PartLogisticalTransporter extends PartTransmitter> extends TileEntityBasicMachine implements IGasHandler, ITubeConnection +public abstract class TileEntityAdvancedElectricMachine> extends TileEntityBasicMachine implements IGasHandler, ITubeConnection, ITierUpgradeable { /** How much secondary energy (fuel) this machine uses per tick, not including upgrades. */ public int BASE_SECONDARY_ENERGY_PER_TICK; @@ -89,12 +91,19 @@ public abstract class TileEntityAdvancedElectricMachine openedThisTick = new HashSet(); - /** The players currently using this block. */ public HashSet playersUsing = new HashSet(); @@ -78,8 +76,6 @@ public abstract class TileEntityBasicBlock extends TileEntity implements IWrench if(!worldObj.isRemote) { - openedThisTick.clear(); - if(doAutoSync && playersUsing.size() > 0) { for(EntityPlayer player : playersUsing) diff --git a/src/main/java/mekanism/common/tile/TileEntityBin.java b/src/main/java/mekanism/common/tile/TileEntityBin.java index e6613be35..8f9f54f33 100644 --- a/src/main/java/mekanism/common/tile/TileEntityBin.java +++ b/src/main/java/mekanism/common/tile/TileEntityBin.java @@ -10,9 +10,11 @@ import mekanism.api.Range4D; import mekanism.api.util.StackUtils; import mekanism.common.Mekanism; import mekanism.common.PacketHandler; +import mekanism.common.Tier.BaseTier; import mekanism.common.Tier.BinTier; import mekanism.common.base.IActiveState; import mekanism.common.base.ILogisticalTransporter; +import mekanism.common.base.ITierUpgradeable; import mekanism.common.base.ITransporterTile; import mekanism.common.content.transporter.TransporterManager; import mekanism.common.item.ItemBlockBasic; @@ -32,7 +34,7 @@ import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; import cpw.mods.fml.common.Optional.Interface; @Interface(iface = "powercrystals.minefactoryreloaded.api.IDeepStorageUnit", modid = "MineFactoryReloaded") -public class TileEntityBin extends TileEntityBasicBlock implements ISidedInventory, IActiveState, IDeepStorageUnit, IConfigurable +public class TileEntityBin extends TileEntityBasicBlock implements ISidedInventory, IActiveState, IDeepStorageUnit, IConfigurable, ITierUpgradeable { public boolean isActive; @@ -56,6 +58,22 @@ public class TileEntityBin extends TileEntityBasicBlock implements ISidedInvento public int prevCount; public int clientAmount; + + @Override + public boolean upgrade(BaseTier upgradeTier) + { + if(upgradeTier.ordinal() != tier.ordinal()+1) + { + return false; + } + + tier = BinTier.values()[upgradeTier.ordinal()]; + + Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), new Range4D(Coord4D.get(this))); + markDirty(); + + return true; + } public void sortStacks() { @@ -574,6 +592,7 @@ public class TileEntityBin extends TileEntityBasicBlock implements ISidedInvento { setActive(!getActive()); worldObj.playSoundEffect(xCoord, yCoord, zCoord, "random.click", 0.3F, 1); + return true; } diff --git a/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java b/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java index 0010f168a..25c7e744f 100644 --- a/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java +++ b/src/main/java/mekanism/common/tile/TileEntityDigitalMiner.java @@ -598,6 +598,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I oresToMine.clear(); replaceMap.clear(); missingStack = null; + setActive(false); MekanismUtils.saveChunk(this); } @@ -1253,7 +1254,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I numPowering--; } - public String[] methods = {"setRadius", "setMin", "setMax", "addFilter", "removeFilter", "addOreFilter", "removeOreFilter", "reset", "start", "stop"}; + public String[] methods = {"setRadius", "setMin", "setMax", "addFilter", "removeFilter", "addOreFilter", "removeOreFilter", "reset", "start", "stop", "getToMine"}; @Override public String[] getMethods() @@ -1352,18 +1353,22 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I } } } - else if(method == 7) - { - reset(); - } - else if(method == 8) - { - start(); - } - else if(method == 9) - { - stop(); - } + } + else if(method == 7) + { + reset(); + } + else if(method == 8) + { + start(); + } + else if(method == 9) + { + stop(); + } + else if(method == 10) + { + return new Object[] {searcher != null ? searcher.found : 0}; } } diff --git a/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java b/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java index 8517ae36e..8574fc099 100644 --- a/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java +++ b/src/main/java/mekanism/common/tile/TileEntityElectricMachine.java @@ -5,7 +5,9 @@ import mekanism.api.transmitters.TransmissionType; import mekanism.common.MekanismBlocks; import mekanism.common.MekanismItems; import mekanism.common.SideData; +import mekanism.common.Tier.BaseTier; import mekanism.common.Upgrade; +import mekanism.common.base.ITierUpgradeable; import mekanism.common.base.IFactory.RecipeType; import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.inputs.ItemStackInput; @@ -20,7 +22,7 @@ import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import net.minecraft.item.ItemStack; -public abstract class TileEntityElectricMachine> extends TileEntityBasicMachine +public abstract class TileEntityElectricMachine> extends TileEntityBasicMachine implements ITierUpgradeable { /** * A simple electrical machine. This has 3 slots - the input slot (0), the energy slot (1), @@ -55,12 +57,19 @@ public abstract class TileEntityElectricMachine 0) { - pushUp(new FluidStack(ret.getFluid(), rejects), true); + pushUp(PipeUtils.copy(ret, rejects), true); } } } @@ -204,13 +235,13 @@ public class TileEntityFluidTank extends TileEntityContainerBlock implements IAc if(ret != null) { - fluidTank.setFluid(new FluidStack(ret.getFluid(), Math.min(fluidTank.getCapacity(), ret.amount))); + fluidTank.setFluid(PipeUtils.copy(ret, Math.min(fluidTank.getCapacity(), ret.amount))); int rejects = Math.max(0, ret.amount - fluidTank.getCapacity()); if(rejects > 0) { - pushUp(new FluidStack(ret.getFluid(), rejects), true); + pushUp(PipeUtils.copy(ret, rejects), true); } } } @@ -352,6 +383,12 @@ public class TileEntityFluidTank extends TileEntityContainerBlock implements IAc } } + public int getRedstoneLevel() + { + double fractionFull = (float)fluidTank.getFluidAmount()/(float)fluidTank.getCapacity(); + return MathHelper.floor_float((float)(fractionFull * 14.0F)) + (fractionFull > 0 ? 1 : 0); + } + public int getCurrentNeeded() { int needed = fluidTank.getCapacity()-fluidTank.getFluidAmount(); @@ -464,7 +501,7 @@ public class TileEntityFluidTank extends TileEntityContainerBlock implements IAc if(filled < resource.amount && !isActive) { - filled += pushUp(new FluidStack(resource.getFluid(), resource.amount-filled), doFill); + filled += pushUp(PipeUtils.copy(resource, resource.amount-filled), doFill); } if(filled > 0 && from == ForgeDirection.UP) diff --git a/src/main/java/mekanism/common/tile/TileEntityGasTank.java b/src/main/java/mekanism/common/tile/TileEntityGasTank.java index c1c6a4e15..02cf24199 100644 --- a/src/main/java/mekanism/common/tile/TileEntityGasTank.java +++ b/src/main/java/mekanism/common/tile/TileEntityGasTank.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import mekanism.api.Coord4D; import mekanism.api.EnumColor; +import mekanism.api.Range4D; import mekanism.api.gas.Gas; import mekanism.api.gas.GasRegistry; import mekanism.api.gas.GasStack; @@ -17,9 +18,11 @@ import mekanism.api.gas.ITubeConnection; import mekanism.api.transmitters.TransmissionType; import mekanism.common.Mekanism; import mekanism.common.SideData; +import mekanism.common.Tier.BaseTier; import mekanism.common.Tier.GasTankTier; import mekanism.common.base.IRedstoneControl; import mekanism.common.base.ISideConfiguration; +import mekanism.common.base.ITierUpgradeable; import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.security.ISecurityTile; import mekanism.common.tile.component.TileComponentConfig; @@ -35,7 +38,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityGasTank extends TileEntityContainerBlock implements IGasHandler, ITubeConnection, IRedstoneControl, ISideConfiguration, ISecurityTile +public class TileEntityGasTank extends TileEntityContainerBlock implements IGasHandler, ITubeConnection, IRedstoneControl, ISideConfiguration, ISecurityTile, ITierUpgradeable { public enum GasMode { @@ -52,6 +55,8 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH public GasMode dumping; public int currentGasAmount; + + public int currentRedstoneLevel; /** This machine's current RedstoneControl type. */ public RedstoneControl controlType; @@ -127,9 +132,34 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasH } currentGasAmount = newGasAmount; + + int newRedstoneLevel = getRedstoneLevel(); + + if(newRedstoneLevel != currentRedstoneLevel) + { + markDirty(); + currentRedstoneLevel = newRedstoneLevel; + } } } + @Override + public boolean upgrade(BaseTier upgradeTier) + { + if(upgradeTier.ordinal() != tier.ordinal()+1) + { + return false; + } + + tier = GasTankTier.values()[upgradeTier.ordinal()]; + gasTank.setMaxGas(tier.storage); + + Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), new Range4D(Coord4D.get(this))); + markDirty(); + + return true; + } + @Override public String getInventoryName() { diff --git a/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java b/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java index 4ef9fc5ee..41123b1e1 100644 --- a/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java +++ b/src/main/java/mekanism/common/tile/TileEntityLaserAmplifier.java @@ -17,11 +17,13 @@ import mekanism.common.integration.IComputerIntegration; import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.security.ISecurityTile; import mekanism.common.tile.component.TileComponentSecurity; +import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraftforge.common.util.ForgeDirection; @@ -44,7 +46,9 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement public double diggingProgress; public boolean emittingRedstone; - public boolean entityDetection; + public int currentRedstoneLevel; + + public RedstoneOutput outputMode = RedstoneOutput.OFF; public TileComponentSecurity securityComponent = new TileComponentSecurity(this); @@ -91,7 +95,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement if(!(hardness < 0 || (tileHit instanceof ILaserReceptor && !((ILaserReceptor)tileHit).canLasersDig()))) { diggingProgress += lastFired; - + if(diggingProgress < hardness*general.laserEnergyNeededPerHardness) { Mekanism.proxy.addHitEffects(hitCoord, mop); @@ -163,11 +167,19 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement Mekanism.packetHandler.sendToAllAround(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), Coord4D.get(this).getTargetPoint(50D)); } - if(!entityDetection) + if(outputMode != RedstoneOutput.ENTITY_DETECTION) { emittingRedstone = false; } + int newRedstoneLevel = getRedstoneLevel(); + + if(newRedstoneLevel != currentRedstoneLevel) + { + markDirty(); + currentRedstoneLevel = newRedstoneLevel; + } + if(emittingRedstone != prevRedstone) { worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); @@ -196,6 +208,17 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement { return shouldFire() ? Math.min(collectedEnergy, maxThreshold) : 0; } + + public int getRedstoneLevel() + { + if(outputMode != RedstoneOutput.ENERGY_CONTENTS) + { + return 0; + } + + double fractionFull = getEnergy()/getMaxEnergy(); + return MathHelper.floor_float((float)(fractionFull * 14.0F)) + (fractionFull > 0 ? 1 : 0); + } @Override public ArrayList getNetworkedData(ArrayList data) @@ -210,7 +233,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement data.add(lastFired); data.add(controlType.ordinal()); data.add(emittingRedstone); - data.add(entityDetection); + data.add(outputMode.ordinal()); return data; } @@ -232,7 +255,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement time = dataStream.readInt(); break; case 3: - entityDetection = !entityDetection; + outputMode = RedstoneOutput.values()[outputMode.ordinal() == RedstoneOutput.values().length-1 ? 0 : outputMode.ordinal()+1]; break; } @@ -251,7 +274,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement lastFired = dataStream.readDouble(); controlType = RedstoneControl.values()[dataStream.readInt()]; emittingRedstone = dataStream.readBoolean(); - entityDetection = dataStream.readBoolean(); + outputMode = RedstoneOutput.values()[dataStream.readInt()]; } } @@ -267,7 +290,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement collectedEnergy = nbtTags.getDouble("collectedEnergy"); lastFired = nbtTags.getDouble("lastFired"); controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")]; - entityDetection = nbtTags.getBoolean("entityDetection"); + outputMode = RedstoneOutput.values()[nbtTags.getInteger("outputMode")]; } @Override @@ -282,7 +305,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement nbtTags.setDouble("collectedEnergy", collectedEnergy); nbtTags.setDouble("lastFired", lastFired); nbtTags.setInteger("controlType", controlType.ordinal()); - nbtTags.setBoolean("entityDetection", entityDetection); + nbtTags.setInteger("outputMode", outputMode.ordinal()); } @Override @@ -342,4 +365,23 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement { return securityComponent; } + + public static enum RedstoneOutput + { + OFF("off"), + ENTITY_DETECTION("entityDetection"), + ENERGY_CONTENTS("energyContents"); + + private String unlocalizedName; + + private RedstoneOutput(String name) + { + unlocalizedName = name; + } + + public String getName() + { + return LangUtils.localize("gui." + unlocalizedName); + } + } } diff --git a/src/main/java/mekanism/common/tile/TileEntityLogisticalSorter.java b/src/main/java/mekanism/common/tile/TileEntityLogisticalSorter.java index d77f6757f..ffc377dd9 100644 --- a/src/main/java/mekanism/common/tile/TileEntityLogisticalSorter.java +++ b/src/main/java/mekanism/common/tile/TileEntityLogisticalSorter.java @@ -8,6 +8,7 @@ import java.util.EnumSet; import mekanism.api.Coord4D; import mekanism.api.EnumColor; import mekanism.api.IConfigCardAccess.ISpecialConfigData; +import mekanism.api.MekanismConfig.client; import mekanism.api.Range4D; import mekanism.common.HashList; import mekanism.common.Mekanism; @@ -557,7 +558,7 @@ public class TileEntityLogisticalSorter extends TileEntityElectricBlock implemen { Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), new Range4D(Coord4D.get(this))); - if(active) + if(active && client.enableMachineSounds) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "mekanism:etc.Click", 0.3F, 1); } diff --git a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java index 2a59a6e14..301051e64 100644 --- a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java +++ b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java @@ -19,10 +19,12 @@ import mekanism.common.MekanismBlocks; import mekanism.common.MekanismItems; import mekanism.common.PacketHandler; import mekanism.common.SideData; +import mekanism.common.Tier.BaseTier; import mekanism.common.Upgrade; import mekanism.common.base.IFactory.RecipeType; import mekanism.common.base.IRedstoneControl; import mekanism.common.base.ISideConfiguration; +import mekanism.common.base.ITierUpgradeable; import mekanism.common.base.IUpgradeTile; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.integration.IComputerIntegration; @@ -42,7 +44,7 @@ import mekanism.common.util.MekanismUtils; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock implements IComputerIntegration, ISideConfiguration, IUpgradeTile, IRedstoneControl, IConfigCardAccess, ISecurityTile +public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock implements IComputerIntegration, ISideConfiguration, IUpgradeTile, IRedstoneControl, IConfigCardAccess, ISecurityTile, ITierUpgradeable { /** The maxiumum amount of infuse this machine can store. */ public int MAX_INFUSE = 1000; @@ -199,12 +201,19 @@ public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock i } } - public void upgrade(RecipeType type) + @Override + public boolean upgrade(BaseTier upgradeTier) { + if(upgradeTier != BaseTier.BASIC) + { + return false; + } + worldObj.setBlockToAir(xCoord, yCoord, zCoord); worldObj.setBlock(xCoord, yCoord, zCoord, MekanismBlocks.MachineBlock, 5, 3); TileEntityFactory factory = (TileEntityFactory)worldObj.getTileEntity(xCoord, yCoord, zCoord); + RecipeType type = RecipeType.INFUSING; //Basic factory.facing = facing; @@ -257,8 +266,9 @@ public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock i } factory.upgraded = true; - factory.markDirty(); + + return true; } @Override diff --git a/src/main/java/mekanism/common/tile/TileEntityPRC.java b/src/main/java/mekanism/common/tile/TileEntityPRC.java index c0fea36e5..a220cf3f2 100644 --- a/src/main/java/mekanism/common/tile/TileEntityPRC.java +++ b/src/main/java/mekanism/common/tile/TileEntityPRC.java @@ -76,6 +76,8 @@ public class TileEntityPRC extends TileEntityBasicMachine> 4, zCoord >> 4) instanceof BiomeGenDesert; @@ -168,9 +172,13 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im return recipe != null && recipe.canOperate(inputTank, outputTank); } - public void operate(SolarNeutronRecipe recipe) + public int operate(SolarNeutronRecipe recipe) { - recipe.operate(inputTank, outputTank); + int operations = getUpgradedUsage(); + + recipe.operate(inputTank, outputTank, operations); + + return operations; } @Override @@ -181,7 +189,6 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im if(worldObj.isRemote) { isActive = dataStream.readBoolean(); - recipeTicks = dataStream.readInt(); controlType = RedstoneControl.values()[dataStream.readInt()]; if(dataStream.readBoolean()) @@ -210,7 +217,6 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im super.getNetworkedData(data); data.add(isActive); - data.add(recipeTicks); data.add(controlType.ordinal()); if(inputTank.getGas() != null) @@ -242,7 +248,6 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im super.readFromNBT(nbtTags); isActive = nbtTags.getBoolean("isActive"); - recipeTicks = nbtTags.getInteger("recipeTicks"); controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")]; inputTank.read(nbtTags.getCompoundTag("inputTank")); @@ -255,7 +260,6 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im super.writeToNBT(nbtTags); nbtTags.setBoolean("isActive", isActive); - nbtTags.setInteger("recipeTicks", recipeTicks); nbtTags.setInteger("controlType", controlType.ordinal()); nbtTags.setTag("inputTank", inputTank.write(new NBTTagCompound())); @@ -417,6 +421,18 @@ public class TileEntitySolarNeutronActivator extends TileEntityContainerBlock im return securityComponent; } + @Override + public TileComponentUpgrade getComponent() + { + return upgradeComponent; + } + + @Override + public List getInfo(Upgrade upgrade) + { + return upgrade == Upgrade.SPEED ? upgrade.getExpScaledInfo(this) : upgrade.getMultScaledInfo(this); + } + @Override @SideOnly(Side.CLIENT) public AxisAlignedBB getRenderBoundingBox() diff --git a/src/main/java/mekanism/common/tile/TileEntityThermalEvaporationController.java b/src/main/java/mekanism/common/tile/TileEntityThermalEvaporationController.java index 9590681d7..1fb9d6928 100644 --- a/src/main/java/mekanism/common/tile/TileEntityThermalEvaporationController.java +++ b/src/main/java/mekanism/common/tile/TileEntityThermalEvaporationController.java @@ -65,6 +65,7 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva public boolean structured = false; public boolean controllerConflict = false; public boolean isLeftOnFace; + public int renderY; public boolean updatedThisTick = false; @@ -110,10 +111,12 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva { int outputNeeded = outputTank.getCapacity()-outputTank.getFluidAmount(); int inputStored = inputTank.getFluidAmount(); + double outputRatio = (double)recipe.recipeOutput.output.amount/(double)recipe.recipeInput.ingredient.amount; double tempMult = Math.max(0, getTemperature())*general.evaporationTempMultiplier; double inputToUse = (tempMult*recipe.recipeInput.ingredient.amount)*((float)height/(float)MAX_HEIGHT); inputToUse = Math.min(inputTank.getFluidAmount(), inputToUse); + inputToUse = Math.min(inputToUse, outputNeeded/outputRatio); lastGain = (float)inputToUse/(float)recipe.recipeInput.ingredient.amount; partialInput += inputToUse; @@ -370,6 +373,8 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva middlePointer = middlePointer.getFromSide(ForgeDirection.DOWN); } + renderY = middlePointer.yCoord+1; + if(height < 3 || height > MAX_HEIGHT) { height = 0; @@ -570,7 +575,7 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva startPoint = isLeftOnFace ? startPoint.getFromSide(right) : startPoint; startPoint = startPoint.getFromSide(right.getOpposite()).getFromSide(MekanismUtils.getBack(facing)); - startPoint.translate(0, -(height-2), 0); + startPoint.yCoord = renderY; return startPoint; } @@ -609,6 +614,7 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva isLeftOnFace = dataStream.readBoolean(); lastGain = dataStream.readFloat(); totalLoss = dataStream.readFloat(); + renderY = dataStream.readInt(); if(structured != prev) { @@ -665,6 +671,7 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva data.add(isLeftOnFace); data.add(lastGain); data.add(totalLoss); + data.add(renderY); return data; } @@ -702,6 +709,12 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva { return side != 0 && side != 1; } + + @Override + public TileEntityThermalEvaporationController getController() + { + return structured ? this : null; + } public void clearStructure() { diff --git a/src/main/java/mekanism/common/tile/component/TileComponentEjector.java b/src/main/java/mekanism/common/tile/component/TileComponentEjector.java index 305534e6f..8cb9418c0 100644 --- a/src/main/java/mekanism/common/tile/component/TileComponentEjector.java +++ b/src/main/java/mekanism/common/tile/component/TileComponentEjector.java @@ -138,7 +138,7 @@ public class TileComponentEjector implements ITileComponent if(tank.getFluidAmount() > 0) { - FluidStack toEmit = new FluidStack(tank.getFluid().getFluid(), Math.min(FLUID_OUTPUT, tank.getFluidAmount())); + FluidStack toEmit = PipeUtils.copy(tank.getFluid(), Math.min(FLUID_OUTPUT, tank.getFluidAmount())); int emit = PipeUtils.emit(outputSides, toEmit, tileEntity); tank.drain(emit, true); } @@ -154,9 +154,11 @@ public class TileComponentEjector implements ITileComponent for(int i = 0; i < configurable.getConfig().getConfig(type).length; i++) { - if(configurable.getConfig().getConfig(type)[i] == configurable.getConfig().getOutputs(type).indexOf(data)) + int side = MekanismUtils.getBaseOrientation(i, tileEntity.facing); + + if(configurable.getConfig().getConfig(type)[side] == configurable.getConfig().getOutputs(type).indexOf(data)) { - outputSides.add(ForgeDirection.getOrientation(MekanismUtils.getBaseOrientation(i, tileEntity.facing))); + outputSides.add(ForgeDirection.getOrientation(i)); } } diff --git a/src/main/java/mekanism/common/tile/component/TileComponentSecurity.java b/src/main/java/mekanism/common/tile/component/TileComponentSecurity.java index 27059b29e..c2c1010d7 100644 --- a/src/main/java/mekanism/common/tile/component/TileComponentSecurity.java +++ b/src/main/java/mekanism/common/tile/component/TileComponentSecurity.java @@ -5,6 +5,7 @@ import io.netty.buffer.ByteBuf; import java.util.ArrayList; import mekanism.api.Coord4D; +import mekanism.api.MekanismConfig.general; import mekanism.common.Mekanism; import mekanism.common.PacketHandler; import mekanism.common.base.ITileComponent; @@ -58,7 +59,11 @@ public class TileComponentSecurity implements ITileComponent public SecurityMode getMode() { - return securityMode; + if(general.allowProtection) { + return securityMode; + } else { + return SecurityMode.PUBLIC; + } } public void setMode(SecurityMode mode) diff --git a/src/main/java/mekanism/common/util/MekanismUtils.java b/src/main/java/mekanism/common/util/MekanismUtils.java index 7540d655c..c4edc1871 100644 --- a/src/main/java/mekanism/common/util/MekanismUtils.java +++ b/src/main/java/mekanism/common/util/MekanismUtils.java @@ -160,28 +160,6 @@ public final class MekanismUtils return false; } - /** - * Gets the latest version using getHTML and returns it as a string. - * @return latest version - */ - public static String getLatestVersion() - { - String[] text = merge(getHTML("https://dl.dropbox.com/u/90411166/Mod%20Versions/Mekanism.txt")).split(":"); - if(text.length > 1 && !text[0].contains("UTF-8") && !text[0].contains("HTML") && !text[0].contains("http")) return text[0]; - return "null"; - } - - /** - * Gets the recent news using getHTML and returns it as a string. - * @return recent news - */ - public static String getRecentNews() - { - String[] text = merge(getHTML("https://dl.dropbox.com/u/90411166/Mod%20Versions/Mekanism.txt")).split(":"); - if(text.length > 1 && !text[1].contains("UTF-8") && !text[1].contains("HTML") && !text[1].contains("http")) return text[1]; - return "null"; - } - /** * Updates the donator list by retrieving the most recent information from a foreign document. */ @@ -189,7 +167,7 @@ public final class MekanismUtils { Mekanism.donators.clear(); - for(String s : getHTML("https://dl.dropbox.com/u/90411166/Donators/Mekanism.txt")) + for(String s : getHTML("http://aidancbrady.com/data/capes/Mekanism.txt")) { Mekanism.donators.add(s); } @@ -202,17 +180,14 @@ public final class MekanismUtils */ public static List getHTML(String urlToRead) { - URL url; - HttpURLConnection conn; - BufferedReader rd; String line; List result = new ArrayList(); try { - url = new URL(urlToRead); - conn = (HttpURLConnection)url.openConnection(); + URL url = new URL(urlToRead); + HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); - rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); + BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); while((line = rd.readLine()) != null) { @@ -1501,8 +1476,15 @@ public final class MekanismUtils * @param player - player to check * @return if the player has operator privileges */ - public static boolean isOp(EntityPlayerMP player) + public static boolean isOp(EntityPlayer p) { + if(!(p instanceof EntityPlayerMP)) + { + return false; + } + + EntityPlayerMP player = (EntityPlayerMP)p; + return general.opsBypassRestrictions && player.mcServer.getConfigurationManager().func_152596_g(player.getGameProfile()); } diff --git a/src/main/java/mekanism/common/util/PipeUtils.java b/src/main/java/mekanism/common/util/PipeUtils.java index 5f241fab8..b77c2de04 100644 --- a/src/main/java/mekanism/common/util/PipeUtils.java +++ b/src/main/java/mekanism/common/util/PipeUtils.java @@ -115,10 +115,18 @@ public final class PipeUtils } ForgeDirection dir = ForgeDirection.getOrientation(Arrays.asList(possibleAcceptors).indexOf(acceptor)).getOpposite(); - toSend -= acceptor.fill(dir, new FluidStack(stack.getFluid(), currentSending), true); + toSend -= acceptor.fill(dir, copy(stack, currentSending), true); } } return prevSending-toSend; } + + public static FluidStack copy(FluidStack fluid, int amount) + { + FluidStack ret = fluid.copy(); + ret.amount = amount; + + return ret; + } } diff --git a/src/main/java/mekanism/common/util/SecurityUtils.java b/src/main/java/mekanism/common/util/SecurityUtils.java index 4ab1ba075..b96d5e60e 100644 --- a/src/main/java/mekanism/common/util/SecurityUtils.java +++ b/src/main/java/mekanism/common/util/SecurityUtils.java @@ -34,6 +34,11 @@ public final class SecurityUtils ISecurityItem security = (ISecurityItem)stack.getItem(); + if(MekanismUtils.isOp(player)) + { + return true; + } + return canAccess(security.getSecurity(stack), player.getCommandSenderName(), security.getOwner(stack)); } @@ -46,6 +51,11 @@ public final class SecurityUtils ISecurityTile security = (ISecurityTile)tile; + if(MekanismUtils.isOp(player)) + { + return true; + } + return canAccess(security.getSecurity().getMode(), player.getCommandSenderName(), security.getSecurity().getOwner()); } diff --git a/src/main/java/mekanism/common/util/TransporterUtils.java b/src/main/java/mekanism/common/util/TransporterUtils.java index 40591cc96..8b9fbeee5 100644 --- a/src/main/java/mekanism/common/util/TransporterUtils.java +++ b/src/main/java/mekanism/common/util/TransporterUtils.java @@ -1,6 +1,5 @@ package mekanism.common.util; -import java.util.Arrays; import java.util.List; import mekanism.api.Coord4D; @@ -25,33 +24,6 @@ public final class TransporterUtils public static List colors = ListUtils.asList(EnumColor.DARK_BLUE, EnumColor.DARK_GREEN, EnumColor.DARK_AQUA, EnumColor.DARK_RED, EnumColor.PURPLE, EnumColor.INDIGO, EnumColor.BRIGHT_GREEN, EnumColor.AQUA, EnumColor.RED, EnumColor.PINK, EnumColor.YELLOW, EnumColor.BLACK); - /** - * Gets all the transporters around a tile entity. - * @param tileEntity - center tile entity - * @return array of TileEntities - */ - public static ILogisticalTransporter[] getConnectedTransporters(ILogisticalTransporter tileEntity) - { - ILogisticalTransporter[] transporters = new ILogisticalTransporter[] {null, null, null, null, null, null}; - - for(ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS) - { - TileEntity tile = tileEntity.coord().getFromSide(orientation).getTileEntity(tileEntity.world()); - - if(tile instanceof ITransporterTile) - { - ILogisticalTransporter otherTransporter = ((ITransporterTile)tile).getTransmitter(); - - if(otherTransporter.getColor() == null || tileEntity.getColor() == null || otherTransporter.getColor() == tileEntity.getColor()) - { - transporters[orientation.ordinal()] = otherTransporter; - } - } - } - - return transporters; - } - public static boolean isValidAcceptorOnSide(TileEntity tile, ForgeDirection side) { if(tile instanceof ITransmitterTile || !(tile instanceof IInventory)) @@ -76,68 +48,6 @@ public final class TransporterUtils return false; } - /** - * Gets all the adjacent connections to a TileEntity. - * @param transporter - center TileEntity - * @return boolean[] of adjacent connections - */ - public static boolean[] getConnections(ILogisticalTransporter transporter) - { - boolean[] connectable = new boolean[] {false, false, false, false, false, false}; - - ILogisticalTransporter[] connectedTransporters = getConnectedTransporters(transporter); - IInventory[] connectedInventories = getConnectedInventories(transporter); - - for(IInventory inventory : connectedInventories) - { - if(inventory != null) - { - int side = Arrays.asList(connectedInventories).indexOf(inventory); - - if(!transporter.canConnect(ForgeDirection.getOrientation(side))) - { - continue; - } - - ForgeDirection forgeSide = ForgeDirection.getOrientation(side).getOpposite(); - - if(inventory.getSizeInventory() > 0) - { - if(inventory instanceof ISidedInventory) - { - ISidedInventory sidedInventory = (ISidedInventory)inventory; - - if(sidedInventory.getAccessibleSlotsFromSide(forgeSide.ordinal()) != null) - { - if(sidedInventory.getAccessibleSlotsFromSide(forgeSide.ordinal()).length > 0) - { - connectable[side] = true; - } - } - } - else { - connectable[side] = true; - } - } - } - } - - for(ILogisticalTransporter trans : connectedTransporters) - { - if(trans != null) - { - int side = Arrays.asList(connectedTransporters).indexOf(trans); - - if(transporter.canConnectMutual(ForgeDirection.getOrientation(side))) - { - connectable[side] = true; - } - } - } - - return connectable; - } - /** * Gets all the inventories around a tile entity. * @param transporter - center tile entity diff --git a/src/main/java/mekanism/generators/client/gui/GuiHeatGenerator.java b/src/main/java/mekanism/generators/client/gui/GuiHeatGenerator.java index e7ff30ba6..67382b89e 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiHeatGenerator.java +++ b/src/main/java/mekanism/generators/client/gui/GuiHeatGenerator.java @@ -2,6 +2,7 @@ package mekanism.generators.client.gui; import java.util.List; +import mekanism.api.MekanismConfig.general; import mekanism.api.util.ListUtils; import mekanism.api.util.UnitDisplayUtils; import mekanism.api.util.UnitDisplayUtils.TemperatureUnit; @@ -66,8 +67,9 @@ public class GuiHeatGenerator extends GuiMekanism @Override public List getInfo() { - String transfer = UnitDisplayUtils.getDisplayShort(tileEntity.lastTransferLoss, TemperatureUnit.KELVIN); - String environment = UnitDisplayUtils.getDisplayShort(tileEntity.lastEnvironmentLoss, TemperatureUnit.KELVIN); + TemperatureUnit unit = TemperatureUnit.values()[general.tempUnit.ordinal()]; + String transfer = UnitDisplayUtils.getDisplayShort(tileEntity.lastTransferLoss, false, unit); + String environment = UnitDisplayUtils.getDisplayShort(tileEntity.lastEnvironmentLoss, false, unit); return ListUtils.asList(LangUtils.localize("gui.transferred") + ": " + transfer + "/t", LangUtils.localize("gui.dissipated") + ": " + environment + "/t"); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiHeatGenerator.png"))); diff --git a/src/main/java/mekanism/generators/client/gui/GuiIndustrialTurbine.java b/src/main/java/mekanism/generators/client/gui/GuiIndustrialTurbine.java index 7fcef55fb..f13caf4c6 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiIndustrialTurbine.java +++ b/src/main/java/mekanism/generators/client/gui/GuiIndustrialTurbine.java @@ -1,7 +1,9 @@ package mekanism.generators.client.gui; +import java.util.ArrayList; import java.util.List; +import mekanism.api.Coord4D; import mekanism.api.MekanismConfig.general; import mekanism.api.MekanismConfig.generators; import mekanism.api.util.ListUtils; @@ -12,7 +14,11 @@ import mekanism.client.gui.element.GuiPowerBar; import mekanism.client.gui.element.GuiRateBar; import mekanism.client.gui.element.GuiRateBar.IRateInfoHandler; import mekanism.client.render.MekanismRenderer; +import mekanism.client.sound.SoundHandler; +import mekanism.common.Mekanism; import mekanism.common.inventory.container.ContainerFilter; +import mekanism.common.network.PacketTileEntity.TileEntityMessage; +import mekanism.common.tile.TileEntityGasTank; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; @@ -53,6 +59,11 @@ public class GuiIndustrialTurbine extends GuiMekanism double rate = tileEntity.structure.lowerVolume*(tileEntity.structure.clientDispersers*generators.turbineDisperserGasFlow); rate = Math.min(rate, tileEntity.structure.vents*generators.turbineVentGasFlow); + if(rate == 0) + { + return 0; + } + return (double)tileEntity.structure.lastSteamInput/rate; } }, MekanismUtils.getResource(ResourceType.GUI, "GuiIndustrialTurbine.png"), 40, 13)); @@ -89,6 +100,9 @@ public class GuiIndustrialTurbine extends GuiMekanism renderScaledText(LangUtils.localize("gui.capacity") + ": " + tileEntity.structure.getFluidCapacity() + " mB", 53, 44, 0x00CD00, 106); renderScaledText(LangUtils.localize("gui.maxFlow") + ": " + rate + " mB/t", 53, 53, 0x00CD00, 106); + String name = chooseByMode(tileEntity.structure.dumpMode, LangUtils.localize("gui.idle"), LangUtils.localize("gui.dumping"), LangUtils.localize("gui.dumping_excess")); + renderScaledText(name, 156-(int)(fontRendererObj.getStringWidth(name)*getNeededScale(name, 66)), 73, 0x404040, 66); + if(xAxis >= 7 && xAxis <= 39 && yAxis >= 14 && yAxis <= 72) { drawCreativeTabHoveringText(tileEntity.structure.fluidStored != null ? LangUtils.localizeFluidStack(tileEntity.structure.fluidStored) + ": " + tileEntity.structure.fluidStored.amount + "mB" : LangUtils.localize("gui.empty"), xAxis, yAxis); @@ -106,6 +120,9 @@ public class GuiIndustrialTurbine extends GuiMekanism int guiHeight = (height - ySize) / 2; drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize); + int displayInt = chooseByMode(tileEntity.structure.dumpMode, 142, 150, 158); + drawTexturedModalRect(guiWidth + 160, guiHeight + 73, 176, displayInt, 8, 8); + if(tileEntity.getScaledFluidLevel(58) > 0) { displayGauge(7, 14, tileEntity.getScaledFluidLevel(58), tileEntity.structure.fluidStored, 0); @@ -154,4 +171,40 @@ public class GuiIndustrialTurbine extends GuiMekanism mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiIndustrialTurbine.png")); drawTexturedModalRect(guiWidth + xPos, guiHeight + yPos, 176, side == 0 ? 0 : 54, 16, 54); } + + @Override + protected void mouseClicked(int x, int y, int button) + { + super.mouseClicked(x, y, button); + + int xAxis = (x - (width - xSize) / 2); + int yAxis = (y - (height - ySize) / 2); + + if(xAxis > 160 && xAxis < 169 && yAxis > 73 && yAxis < 82) + { + ArrayList data = new ArrayList(); + data.add((byte)0); + + Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data)); + SoundHandler.playSound("gui.button.press"); + } + } + + private T chooseByMode(TileEntityGasTank.GasMode dumping, T idleOption, T dumpingOption, T dumpingExcessOption) + { + if(dumping.equals(TileEntityGasTank.GasMode.IDLE)) + { + return idleOption; + } + else if(dumping.equals(TileEntityGasTank.GasMode.DUMPING)) + { + return dumpingOption; + } + else if(dumping.equals(TileEntityGasTank.GasMode.DUMPING_EXCESS)) + { + return dumpingExcessOption; + } + + return idleOption; //should not happen; + } } diff --git a/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java b/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java index 737348932..a7d41e704 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java +++ b/src/main/java/mekanism/generators/client/gui/GuiReactorFuel.java @@ -180,7 +180,7 @@ public class GuiReactorFuel extends GuiMekanism } } - if(Character.isDigit(c) || i == Keyboard.KEY_BACK || i == Keyboard.KEY_DELETE || i == Keyboard.KEY_LEFT || i == Keyboard.KEY_RIGHT) + if(Character.isDigit(c) || isTextboxKey(c, i)) { injectionRateField.textboxKeyTyped(c, i); } diff --git a/src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java b/src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java index a389fde46..d77efc545 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java +++ b/src/main/java/mekanism/generators/client/gui/GuiTurbineStats.java @@ -82,6 +82,7 @@ public class GuiTurbineStats extends GuiMekanism rate = Math.min(rate, tileEntity.structure.vents*generators.turbineVentGasFlow); fontRendererObj.drawString(LangUtils.localize("gui.maxProduction") + ": " + MekanismUtils.getEnergyDisplay(rate*energyMultiplier), 8, 104, 0x404040); + fontRendererObj.drawString(LangUtils.localize("gui.maxWaterOutput") + ": " + tileEntity.structure.condensers*generators.condenserRate + " mB/t", 8, 113, 0x404040); super.drawGuiContainerForegroundLayer(mouseX, mouseY); } diff --git a/src/main/java/mekanism/generators/client/gui/GuiWindGenerator.java b/src/main/java/mekanism/generators/client/gui/GuiWindGenerator.java index 94289a00c..07d21b127 100644 --- a/src/main/java/mekanism/generators/client/gui/GuiWindGenerator.java +++ b/src/main/java/mekanism/generators/client/gui/GuiWindGenerator.java @@ -46,7 +46,7 @@ public class GuiWindGenerator extends GuiMekanism public List getInfo() { return ListUtils.asList( - LangUtils.localize("gui.producing") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.isActive ? generators.windGenerationMin*tileEntity.getMultiplier() : 0) + "/t", + LangUtils.localize("gui.producing") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.isActive ? generators.windGenerationMin*tileEntity.currentMultiplier : 0) + "/t", LangUtils.localize("gui.maxOutput") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxOutput()) + "/t"); } }, this, MekanismUtils.getResource(ResourceType.GUI, "GuiWindTurbine.png"))); @@ -62,12 +62,12 @@ public class GuiWindGenerator extends GuiMekanism fontRendererObj.drawString(tileEntity.getInventoryName(), 45, 6, 0x404040); fontRendererObj.drawString(LangUtils.localize("container.inventory"), 8, (ySize - 96) + 2, 0x404040); fontRendererObj.drawString(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), 51, 26, 0x00CD00); - fontRendererObj.drawString(LangUtils.localize("gui.power") + ": " + powerFormat.format(MekanismUtils.convertToDisplay(generators.windGenerationMin*tileEntity.getMultiplier())), 51, 35, 0x00CD00); + fontRendererObj.drawString(LangUtils.localize("gui.power") + ": " + powerFormat.format(MekanismUtils.convertToDisplay(generators.windGenerationMin*tileEntity.currentMultiplier)), 51, 35, 0x00CD00); fontRendererObj.drawString(LangUtils.localize("gui.out") + ": " + MekanismUtils.getEnergyDisplay(tileEntity.getMaxOutput()) + "/t", 51, 44, 0x00CD00); int size = 44; - if(!tileEntity.getWorldObj().canBlockSeeTheSky(tileEntity.xCoord, tileEntity.yCoord+4, tileEntity.zCoord)) + if(!tileEntity.getActive()) { size += 9; fontRendererObj.drawString(EnumColor.DARK_RED + LangUtils.localize("gui.skyBlocked"), 51, size, 0x00CD00); diff --git a/src/main/java/mekanism/generators/client/render/RenderWindGenerator.java b/src/main/java/mekanism/generators/client/render/RenderWindGenerator.java index 35744a2a2..610ef98ef 100644 --- a/src/main/java/mekanism/generators/client/render/RenderWindGenerator.java +++ b/src/main/java/mekanism/generators/client/render/RenderWindGenerator.java @@ -36,8 +36,7 @@ public class RenderWindGenerator extends TileEntitySpecialRenderer GL11.glRotatef(180, 0F, 0F, 1F); - if(!Mekanism.proxy.isPaused() && - tileEntity.getWorldObj().canBlockSeeTheSky(tileEntity.xCoord, tileEntity.yCoord+4, tileEntity.zCoord)) + if(!Mekanism.proxy.isPaused() && tileEntity.getActive()) { tileEntity.angle = (tileEntity.angle+((tileEntity.yCoord+4F)/256F)*8) % 360; } diff --git a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java index a714aa4dd..63bc3f00f 100644 --- a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java +++ b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java @@ -28,6 +28,7 @@ import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture; import mekanism.generators.common.tile.reactor.TileEntityReactorPort; import mekanism.generators.common.tile.turbine.TileEntityElectromagneticCoil; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; +import mekanism.generators.common.tile.turbine.TileEntitySaturatingCondenser; import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import mekanism.generators.common.tile.turbine.TileEntityTurbineValve; @@ -61,6 +62,7 @@ public class GeneratorsCommonProxy implements IGuiProvider GameRegistry.registerTileEntity(TileEntityReactorLogicAdapter.class, "ReactorLogicAdapter"); GameRegistry.registerTileEntity(TileEntityRotationalComplex.class, "RotationalComplex"); GameRegistry.registerTileEntity(TileEntityElectromagneticCoil.class, "ElectromagneticCoil"); + GameRegistry.registerTileEntity(TileEntitySaturatingCondenser.class, "SaturatingCondenser"); } /** @@ -103,6 +105,7 @@ public class GeneratorsCommonProxy implements IGuiProvider generators.turbineBladesPerCoil = Mekanism.configuration.get("generation", "TurbineBladesPerCoil", 4).getInt(); generators.turbineVentGasFlow = Mekanism.configuration.get("generation", "TurbineVentGasFlow", 16000D).getDouble(); generators.turbineDisperserGasFlow = Mekanism.configuration.get("generation", "TurbineDisperserGasFlow", 640D).getDouble(); + generators.condenserRate = Mekanism.configuration.get("generation", "TurbineCondenserFlowRate", 32000).getInt(); if(Mekanism.configuration.hasChanged()) { diff --git a/src/main/java/mekanism/generators/common/MekanismGenerators.java b/src/main/java/mekanism/generators/common/MekanismGenerators.java index a283661a3..e2203bc66 100644 --- a/src/main/java/mekanism/generators/common/MekanismGenerators.java +++ b/src/main/java/mekanism/generators/common/MekanismGenerators.java @@ -24,6 +24,7 @@ import mekanism.common.recipe.ShapedMekanismRecipe; import mekanism.common.util.MekanismUtils; import mekanism.generators.common.content.turbine.SynchronizedTurbineData; import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraftforge.fluids.FluidContainerRegistry; @@ -43,7 +44,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.NetworkRegistry; -@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "9.0.2", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory") +@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "9.1.1", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory") public class MekanismGenerators implements IModule { @SidedProxy(clientSide = "mekanism.generators.client.GeneratorsClientProxy", serverSide = "mekanism.generators.common.GeneratorsCommonProxy") @@ -53,7 +54,7 @@ public class MekanismGenerators implements IModule public static MekanismGenerators instance; /** MekanismGenerators version number */ - public static Version versionNumber = new Version(9, 0, 2); + public static Version versionNumber = new Version(9, 1, 1); public static MultiblockManager turbineManager = new MultiblockManager("industrialTurbine"); @@ -155,6 +156,9 @@ public class MekanismGenerators implements IModule CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 2, 12), new Object[] { " I ", "IFI", " I ", Character.valueOf('I'), new ItemStack(GeneratorsBlocks.Generator, 1, 10), Character.valueOf('F'), Blocks.iron_bars })); + CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Generator, 1, 13), new Object[] { + "STS", "TBT", "STS", Character.valueOf('S'), "ingotSteel", Character.valueOf('T'), "ingotTin", Character.valueOf('B'), Items.bucket + })); //Reactor Recipes CraftingManager.getInstance().getRecipeList().add(new ShapedMekanismRecipe(new ItemStack(GeneratorsBlocks.Reactor, 4, 1), new Object[] { @@ -210,6 +214,7 @@ public class MekanismGenerators implements IModule dataStream.writeInt(generators.turbineBladesPerCoil); dataStream.writeDouble(generators.turbineVentGasFlow); dataStream.writeDouble(generators.turbineDisperserGasFlow); + dataStream.writeInt(generators.condenserRate); } @Override @@ -231,6 +236,7 @@ public class MekanismGenerators implements IModule generators.turbineBladesPerCoil = dataStream.readInt(); generators.turbineVentGasFlow = dataStream.readDouble(); generators.turbineDisperserGasFlow = dataStream.readDouble(); + generators.condenserRate = dataStream.readInt(); } @Override diff --git a/src/main/java/mekanism/generators/common/block/BlockGenerator.java b/src/main/java/mekanism/generators/common/block/BlockGenerator.java index 7c7de7678..4bffd2895 100644 --- a/src/main/java/mekanism/generators/common/block/BlockGenerator.java +++ b/src/main/java/mekanism/generators/common/block/BlockGenerator.java @@ -22,6 +22,7 @@ import mekanism.common.security.ISecurityTile; import mekanism.common.tile.TileEntityBasicBlock; import mekanism.common.tile.TileEntityContainerBlock; import mekanism.common.tile.TileEntityElectricBlock; +import mekanism.common.tile.TileEntityMultiblock; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.common.util.SecurityUtils; @@ -36,6 +37,7 @@ import mekanism.generators.common.tile.TileEntitySolarGenerator; import mekanism.generators.common.tile.TileEntityWindGenerator; import mekanism.generators.common.tile.turbine.TileEntityElectromagneticCoil; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; +import mekanism.generators.common.tile.turbine.TileEntitySaturatingCondenser; import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import mekanism.generators.common.tile.turbine.TileEntityTurbineValve; @@ -77,6 +79,7 @@ import cpw.mods.fml.relauncher.SideOnly; * 10: Turbine Casing * 11: Turbine Valve * 12: Turbine Vent + * 13: Saturating Condenser * @author AidanBrady * */ @@ -108,6 +111,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IB ctms[10] = new CTMData("ctm/TurbineCasing", this, Arrays.asList(10, 11, 12)).registerIcons(register); ctms[11] = new CTMData("ctm/TurbineValve", this, Arrays.asList(10, 11, 12)).registerIcons(register); ctms[12] = new CTMData("ctm/TurbineVent", this, Arrays.asList(10, 11, 12)).registerIcons(register); + ctms[13] = new CTMData("ctm/SaturatingCondenser", this, Arrays.asList(13)).registerIcons(register); icons[7][0] = register.registerIcon("mekanism:TurbineRod"); icons[8][0] = register.registerIcon("mekanism:RotationalComplexSide"); @@ -117,6 +121,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IB icons[10][0] = ctms[10].mainTextureData.icon; icons[11][0] = ctms[11].mainTextureData.icon; icons[12][0] = ctms[12].mainTextureData.icon; + icons[13][0] = ctms[13].mainTextureData.icon; } @Override @@ -665,7 +670,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IB TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getTileEntity(x, y, z); ItemStack itemStack = new ItemStack(GeneratorsBlocks.Generator, 1, world.getBlockMetadata(x, y, z)); - if(itemStack.stackTagCompound == null) + if(itemStack.stackTagCompound == null && !(tileEntity instanceof TileEntityMultiblock)) { itemStack.setTagCompound(new NBTTagCompound()); } @@ -692,7 +697,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IB electricItem.setEnergy(itemStack, ((TileEntityElectricBlock)tileEntity).electricityStored); } - if(tileEntity instanceof TileEntityContainerBlock) + if(tileEntity instanceof TileEntityContainerBlock && ((TileEntityContainerBlock)tileEntity).handleInventory()) { ISustainedInventory inventory = (ISustainedInventory)itemStack.getItem(); inventory.setInventory(((TileEntityContainerBlock)tileEntity).getInventory(), itemStack); @@ -767,7 +772,8 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IB ELECTROMAGNETIC_COIL(9, "ElectromagneticCoil", -1, -1, TileEntityElectromagneticCoil.class, false), TURBINE_CASING(10, "TurbineCasing", -1, -1, TileEntityTurbineCasing.class, false), TURBINE_VALVE(11, "TurbineValve", -1, -1, TileEntityTurbineValve.class, false), - TURBINE_VENT(12, "TurbineVent", -1, -1, TileEntityTurbineVent.class, false); + TURBINE_VENT(12, "TurbineVent", -1, -1, TileEntityTurbineVent.class, false), + SATURATING_CONDENSER(13, "SaturatingCondenser", -1, -1, TileEntitySaturatingCondenser.class, false); public int meta; public String name; diff --git a/src/main/java/mekanism/generators/common/block/BlockReactor.java b/src/main/java/mekanism/generators/common/block/BlockReactor.java index eec2b1cff..f9e1edcb5 100644 --- a/src/main/java/mekanism/generators/common/block/BlockReactor.java +++ b/src/main/java/mekanism/generators/common/block/BlockReactor.java @@ -62,7 +62,8 @@ public class BlockReactor extends BlockContainer implements IBlockCTM ctms[0][1] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3, 4)).addSideOverride(ForgeDirection.UP, "ctm/ReactorControllerOn").registerIcons(register); ctms[1][0] = new CTMData("ctm/ReactorFrame", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register); ctms[2][0] = new CTMData("ctm/ReactorNeutronCapture", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register); - ctms[3][0] = new CTMData("ctm/ReactorPort", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register); + ctms[3][0] = new CTMData("ctm/ReactorPortInput", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register); + ctms[3][1] = new CTMData("ctm/ReactorPortOutput", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register); ctms[4][0] = new CTMData("ctm/ReactorLogicAdapter", this, Arrays.asList(0, 1, 2, 3, 4)).registerIcons(register); icons[0][0] = ctms[0][0].sideOverrides[1].icon; @@ -71,6 +72,7 @@ public class BlockReactor extends BlockContainer implements IBlockCTM icons[1][0] = ctms[1][0].mainTextureData.icon; icons[2][0] = ctms[2][0].mainTextureData.icon; icons[3][0] = ctms[3][0].mainTextureData.icon; + icons[3][1] = ctms[3][1].mainTextureData.icon; icons[4][0] = ctms[4][0].mainTextureData.icon; } else if(this == GeneratorsBlocks.ReactorGlass) @@ -120,9 +122,14 @@ public class BlockReactor extends BlockContainer implements IBlockCTM return MekanismUtils.isActive(world, x, y, z) ? icons[0][1] : icons[0][0]; } else { - return icons[0][2]; + return icons[metadata][2]; } } + else if(metadata == 3) + { + TileEntityReactorPort tileEntity = (TileEntityReactorPort)world.getTileEntity(x, y, z); + return icons[metadata][tileEntity.fluidEject ? 1 : 0]; + } else { return icons[metadata][0]; } @@ -301,6 +308,13 @@ public class BlockReactor extends BlockContainer implements IBlockCTM { return ctms[meta][1]; } + + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntityReactorPort) + { + return ctms[meta][((TileEntityReactorPort)tile).fluidEject ? 1 : 0]; + } return ctms[meta][0]; } diff --git a/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java b/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java index 667324ddf..906e67cbc 100644 --- a/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java +++ b/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java @@ -5,6 +5,7 @@ import java.util.Map; import mekanism.api.Coord4D; import mekanism.common.multiblock.SynchronizedData; +import mekanism.common.tile.TileEntityGasTank.GasMode; import net.minecraftforge.fluids.FluidStack; public class SynchronizedTurbineData extends SynchronizedData @@ -19,9 +20,12 @@ public class SynchronizedTurbineData extends SynchronizedData { public FluidStack fluid; public double electricity; + public GasMode dumpMode = GasMode.IDLE; @Override public void apply(SynchronizedTurbineData data) { data.fluidStored = fluid; data.electricityStored = electricity; + data.dumpMode = dumpMode; } @Override @@ -21,6 +24,7 @@ public class TurbineCache extends MultiblockCache { fluid = data.fluidStored; electricity = data.electricityStored; + dumpMode = data.dumpMode; } @Override @@ -32,6 +36,7 @@ public class TurbineCache extends MultiblockCache } electricity = nbtTags.getDouble("electricity"); + dumpMode = GasMode.values()[nbtTags.getInteger("dumpMode")]; } @Override @@ -43,5 +48,6 @@ public class TurbineCache extends MultiblockCache } nbtTags.setDouble("electricity", electricity); + nbtTags.setInteger("dumpMode", dumpMode.ordinal()); } } diff --git a/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java b/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java index 85910ea3f..888089c70 100644 --- a/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java +++ b/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java @@ -15,6 +15,7 @@ import mekanism.generators.common.MekanismGenerators; import mekanism.generators.common.block.BlockGenerator.GeneratorType; import mekanism.generators.common.tile.turbine.TileEntityElectromagneticCoil; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; +import mekanism.generators.common.tile.turbine.TileEntitySaturatingCondenser; import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import mekanism.generators.common.tile.turbine.TileEntityTurbineVent; @@ -50,7 +51,8 @@ public class TurbineUpdateProtocol extends UpdateProtocol turbines = new HashSet(); Set dispersers = new HashSet(); Set coils = new HashSet(); + Set condensers = new HashSet(); //Scan for complex for(Coord4D coord : innerNodes) @@ -107,6 +110,10 @@ public class TurbineUpdateProtocol extends UpdateProtocol 0); } - else { - setActive(false); + + if(getActive()) + { + setEnergy(electricityStored + (generators.windGenerationMin*currentMultiplier)); } } } + + @Override + public void handlePacketData(ByteBuf dataStream) + { + super.handlePacketData(dataStream); + + if(worldObj.isRemote) + { + currentMultiplier = dataStream.readFloat(); + } + } + + @Override + public ArrayList getNetworkedData(ArrayList data) + { + super.getNetworkedData(data); + + data.add(currentMultiplier); + + return data; + } /** Determines the current output multiplier, taking sky visibility and height into account. **/ public float getMultiplier() diff --git a/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java b/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java index 52a08b13f..f2340e74b 100644 --- a/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java +++ b/src/main/java/mekanism/generators/common/tile/reactor/TileEntityReactorPort.java @@ -1,36 +1,68 @@ package mekanism.generators.common.tile.reactor; +import io.netty.buffer.ByteBuf; + +import java.util.ArrayList; import java.util.EnumSet; import mekanism.api.Coord4D; +import mekanism.api.EnumColor; +import mekanism.api.IConfigurable; import mekanism.api.IHeatTransfer; +import mekanism.api.Range4D; import mekanism.api.gas.Gas; import mekanism.api.gas.GasRegistry; import mekanism.api.gas.GasStack; import mekanism.api.gas.IGasHandler; import mekanism.api.gas.ITubeConnection; import mekanism.api.reactor.IReactorBlock; +import mekanism.common.Mekanism; +import mekanism.common.network.PacketTileEntity.TileEntityMessage; import mekanism.common.util.CableUtils; import mekanism.common.util.HeatUtils; import mekanism.common.util.InventoryUtils; +import mekanism.common.util.LangUtils; +import mekanism.common.util.MekanismUtils; import mekanism.generators.common.item.ItemHohlraum; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; +import net.minecraftforge.fluids.IFluidTank; -public class TileEntityReactorPort extends TileEntityReactorBlock implements IFluidHandler, IGasHandler, ITubeConnection, IHeatTransfer +public class TileEntityReactorPort extends TileEntityReactorBlock implements IFluidHandler, IGasHandler, ITubeConnection, IHeatTransfer, IConfigurable { + public boolean fluidEject; + public TileEntityReactorPort() { super("name", 1); inventory = new ItemStack[0]; } + + @Override + public void readFromNBT(NBTTagCompound nbtTags) + { + super.readFromNBT(nbtTags); + + fluidEject = nbtTags.getBoolean("fluidEject"); + } + + @Override + public void writeToNBT(NBTTagCompound nbtTags) + { + super.writeToNBT(nbtTags); + + nbtTags.setBoolean("fluidEject", fluidEject); + } @Override public boolean isFrame() @@ -48,13 +80,34 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl super.onUpdate(); - CableUtils.emit(this); + if(!worldObj.isRemote) + { + CableUtils.emit(this); + + if(fluidEject && getReactor() != null && getReactor().getSteamTank().getFluid() != null) + { + IFluidTank tank = getReactor().getSteamTank(); + + for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) + { + TileEntity tile = Coord4D.get(this).getFromSide(side).getTileEntity(worldObj); + + if(tile instanceof IFluidHandler && !(tile instanceof TileEntityReactorPort)) + { + if(((IFluidHandler)tile).canFill(side.getOpposite(), tank.getFluid().getFluid())) + { + tank.drain(((IFluidHandler)tile).fill(side.getOpposite(), tank.getFluid(), true), true); + } + } + } + } + } } @Override public int fill(ForgeDirection from, FluidStack resource, boolean doFill) { - if(resource.getFluid() == FluidRegistry.WATER && getReactor() != null) + if(resource.getFluid() == FluidRegistry.WATER && getReactor() != null && !fluidEject) { return getReactor().getWaterTank().fill(resource, doFill); } @@ -87,13 +140,13 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl @Override public boolean canFill(ForgeDirection from, Fluid fluid) { - return (getReactor() != null && fluid == FluidRegistry.WATER); + return (getReactor() != null && fluid == FluidRegistry.WATER && !fluidEject); } @Override public boolean canDrain(ForgeDirection from, Fluid fluid) { - return (getReactor() != null && fluid == FluidRegistry.WATER); + return (getReactor() != null && fluid == FluidRegistry.getFluid("steam")); } @Override @@ -363,4 +416,49 @@ public class TileEntityReactorPort extends TileEntityReactorBlock implements IFl return false; } + + @Override + public void handlePacketData(ByteBuf dataStream) + { + super.handlePacketData(dataStream); + + if(worldObj.isRemote) + { + fluidEject = dataStream.readBoolean(); + + MekanismUtils.updateBlock(worldObj, xCoord, yCoord, zCoord); + } + } + + @Override + public ArrayList getNetworkedData(ArrayList data) + { + super.getNetworkedData(data); + + data.add(fluidEject); + + return data; + } + + @Override + public boolean onSneakRightClick(EntityPlayer player, int side) + { + if(!worldObj.isRemote) + { + fluidEject = !fluidEject; + String modeText = " " + (fluidEject ? EnumColor.DARK_RED : EnumColor.DARK_GREEN) + LangUtils.transOutputInput(fluidEject) + "."; + player.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism] " + EnumColor.GREY + LangUtils.localize("tooltip.configurator.reactorPortEject") + modeText)); + + Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), new Range4D(Coord4D.get(this))); + markDirty(); + } + + return true; + } + + @Override + public boolean onRightClick(EntityPlayer player, int side) + { + return false; + } } \ No newline at end of file diff --git a/src/main/java/mekanism/generators/common/tile/turbine/TileEntitySaturatingCondenser.java b/src/main/java/mekanism/generators/common/tile/turbine/TileEntitySaturatingCondenser.java new file mode 100644 index 000000000..0e28d2422 --- /dev/null +++ b/src/main/java/mekanism/generators/common/tile/turbine/TileEntitySaturatingCondenser.java @@ -0,0 +1,15 @@ +package mekanism.generators.common.tile.turbine; + +import mekanism.common.tile.TileEntityBasicBlock; + +public class TileEntitySaturatingCondenser extends TileEntityBasicBlock +{ + @Override + public boolean canUpdate() + { + return false; + } + + @Override + public void onUpdate() {} +} diff --git a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineCasing.java b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineCasing.java index 7dbb56939..be8876c17 100644 --- a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineCasing.java +++ b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineCasing.java @@ -14,6 +14,7 @@ import mekanism.common.multiblock.MultiblockCache; import mekanism.common.multiblock.MultiblockManager; import mekanism.common.multiblock.UpdateProtocol; import mekanism.common.network.PacketTileEntity.TileEntityMessage; +import mekanism.common.tile.TileEntityGasTank.GasMode; import mekanism.common.tile.TileEntityMultiblock; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; @@ -75,7 +76,8 @@ public class TileEntityTurbineCasing extends TileEntityMultiblock 0) + { + FluidStack fluidStack = new FluidStack(FluidRegistry.WATER, structure.flowRemaining); + + for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) + { + TileEntity tile = Coord4D.get(this).getFromSide(side).getTileEntity(worldObj); + + if(tile instanceof IFluidHandler) + { + if(((IFluidHandler)tile).canFill(side.getOpposite(), fluidStack.getFluid())) + { + structure.flowRemaining -= ((IFluidHandler)tile).fill(side.getOpposite(), fluidStack, true); + } + } + } + } + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) + { + return ((!worldObj.isRemote && structure != null) || (worldObj.isRemote && clientHasStructure)) ? new FluidTankInfo[] {fakeInfo} : PipeUtils.EMPTY; + } + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) + { + return 0; + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) + { + return null; + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) + { + return null; + } + + @Override + public boolean canFill(ForgeDirection from, Fluid fluid) + { + return false; + } + + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) + { + return fluid == FluidRegistry.WATER; + } } diff --git a/src/main/java/mekanism/tools/common/MekanismTools.java b/src/main/java/mekanism/tools/common/MekanismTools.java index 3e6a82efb..88fa2cdf4 100644 --- a/src/main/java/mekanism/tools/common/MekanismTools.java +++ b/src/main/java/mekanism/tools/common/MekanismTools.java @@ -29,7 +29,7 @@ import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -@Mod(modid = "MekanismTools", name = "MekanismTools", version = "9.0.2", dependencies = "required-after:Mekanism", guiFactory = "mekanism.tools.client.gui.ToolsGuiFactory") +@Mod(modid = "MekanismTools", name = "MekanismTools", version = "9.1.1", dependencies = "required-after:Mekanism", guiFactory = "mekanism.tools.client.gui.ToolsGuiFactory") public class MekanismTools implements IModule { @SidedProxy(clientSide = "mekanism.tools.client.ToolsClientProxy", serverSide = "mekanism.tools.common.ToolsCommonProxy") @@ -39,7 +39,7 @@ public class MekanismTools implements IModule public static MekanismTools instance; /** MekanismTools version number */ - public static Version versionNumber = new Version(9, 0, 2); + public static Version versionNumber = new Version(9, 1, 1); //Enums: Tools public static ToolMaterial toolOBSIDIAN; diff --git a/src/main/resources/assets/mekanism/gui/GuiDigitalMinerConfig.png b/src/main/resources/assets/mekanism/gui/GuiDigitalMinerConfig.png index 0051bf133..d1e2b14ff 100644 Binary files a/src/main/resources/assets/mekanism/gui/GuiDigitalMinerConfig.png and b/src/main/resources/assets/mekanism/gui/GuiDigitalMinerConfig.png differ diff --git a/src/main/resources/assets/mekanism/gui/GuiIndustrialTurbine.png b/src/main/resources/assets/mekanism/gui/GuiIndustrialTurbine.png index 332dc370d..31b8335b9 100644 Binary files a/src/main/resources/assets/mekanism/gui/GuiIndustrialTurbine.png and b/src/main/resources/assets/mekanism/gui/GuiIndustrialTurbine.png differ diff --git a/src/main/resources/assets/mekanism/gui/GuiLogisticalSorter.png b/src/main/resources/assets/mekanism/gui/GuiLogisticalSorter.png index 42220f9c8..757bbbd0b 100644 Binary files a/src/main/resources/assets/mekanism/gui/GuiLogisticalSorter.png and b/src/main/resources/assets/mekanism/gui/GuiLogisticalSorter.png differ diff --git a/src/main/resources/assets/mekanism/gui/elements/GuiAmplifierTab.png b/src/main/resources/assets/mekanism/gui/elements/GuiAmplifierTab.png new file mode 100644 index 000000000..b756df363 Binary files /dev/null and b/src/main/resources/assets/mekanism/gui/elements/GuiAmplifierTab.png differ diff --git a/src/main/resources/assets/mekanism/gui/elements/GuiDetectionTab.png b/src/main/resources/assets/mekanism/gui/elements/GuiDetectionTab.png deleted file mode 100644 index 3a46a5286..000000000 Binary files a/src/main/resources/assets/mekanism/gui/elements/GuiDetectionTab.png and /dev/null differ diff --git a/src/main/resources/assets/mekanism/lang/cs_CZ.lang b/src/main/resources/assets/mekanism/lang/cs_CZ.lang new file mode 100644 index 000000000..9bf6184c3 --- /dev/null +++ b/src/main/resources/assets/mekanism/lang/cs_CZ.lang @@ -0,0 +1,1085 @@ +//********// +//MEKANISM// +//********// + +//Items +tile.ObsidianTNT.name=Obsidiánové TNT +item.EnrichedAlloy.name=Obohacená Slitina +item.ReinforcedAlloy.name=Tvrzená Slitina +item.AtomicAlloy.name=Atomická Slitina +item.EnergyTablet.name=Energický Tablet +item.SpeedUpgrade.name=Vylepšení Rychlosti +item.EnergyUpgrade.name=Vylepšení Energie +item.FilterUpgrade.name=Vylepšení Filtru +item.MufflingUpgrade.name=Vylepšení Dušení +item.GasUpgrade.name=Vylepšení Plynu +item.Robit.name=Robit +item.AtomicDisassembler.name=Atomický Rozkladač +item.ElectricBow.name=Elektrický Luk +item.EnrichedIron.name=Obohacené Železo +item.CompressedCarbon.name=Zkompresovaný Uhlík +item.CompressedRedstone.name=Zkompresovaný Rudit +item.CompressedDiamond.name=Zkompresovaný Diamant +item.CompressedObsidian.name=Zkompresovaný Obsidián +item.PortableTeleporter.name=Přenosný Teleportér +item.TeleportationCore.name=Teleportační Jádro +item.Configurator.name=Konfigurátor +item.NetworkReader.name=Čtečka sítě +item.WalkieTalkie.name=Vysílačka +item.Jetpack.name=Jetpack +item.ScubaTank.name=Potápěcí Nádrž +item.GasMask.name=Plynová Maska +item.Dictionary.name=Slovník +item.ElectrolyticCore.name=Elektrolytické Jádro +item.Sawdust.name=Piliny +item.Salt.name=Sůl +item.BrineBucket.name=Kyblík Solanky +item.LithiumBucket.name=Kyblík Lithia +item.HeavyWaterBucket.name=Kyblík Těžké Vody +item.FreeRunners.name=Volnoběžky +item.ArmoredJetpack.name=Obrněný Jetpack +item.ConfigurationCard.name=Konfigurační Karta +item.SeismicReader.name=Seismická Čtečka +item.HDPEPellet.name=HDPE Kulička +item.HDPERod.name=HDPE Tyč +item.HDPESheet.name=HDPE List +item.PlaStick.name=PlaTyčka +item.Substrate.name=Substrát +item.Flamethrower.name=Plamenomet +item.GaugeDropper.name=Kapátko +item.BioFuel.name=Bio Palivo +item.CraftingFormula.name=Výrobní Formule + +//Control Circuits +item.BasicControlCircuit.name=Základní Ovládací Obvod +item.AdvancedControlCircuit.name=Pokročilý Ovládací Obvod +item.EliteControlCircuit.name=Elitní Ovládací Obvod +item.UltimateControlCircuit.name=Ultimátní Ovládací Obvod + +//Gas Tank +tile.GasTankBasic.name=Základní Plynová Nádrž +tile.GasTankAdvanced.name=Pokročilá Plynová Nádrž +tile.GasTankElite.name=Elitní Plynová Nádrž +tile.GasTankUltimate.name=Ultimátní Plynová Nádrž + +//Fluid Tank (part of MachineBlock2, naming handled differently) +tile.FluidTankBasic.name=Základní Kapalinová Nádrž +tile.FluidTankAdvanced.name=Pokročilá Kapalinová Nádrž +tile.FluidTankElite.name=Elitní Kapalinová Nádrž +tile.FluidTankUltimate.name=Ultimátní Kapalinová Nádrž + +//Cardboard Box +tile.CardboardBox.name=Kartonová Krabice + +//Bounding Block +tile.BoundingBlock.name=Vázací Blok + +//Salt +tile.SaltBlock.name=Solný Blok + +//Basic Block +tile.BasicBlock.OsmiumBlock.name=Blok Osmia +tile.BasicBlock.BronzeBlock.name=Blok Bronzu +tile.BasicBlock.RefinedObsidian.name=Rafinovaný Obsidián +tile.BasicBlock.CharcoalBlock.name=Blok Dřevěného Uhlí +tile.BasicBlock.RefinedGlowstone.name=Rafinovaný Světlit +tile.BasicBlock.SteelBlock.name=Blok Oceli +tile.BasicBlock.BinBasic.name=Základní Koš +tile.BasicBlock.BinAdvanced.name=Pokročilý Koš +tile.BasicBlock.BinElite.name=Elitní Koš +tile.BasicBlock.BinUltimate.name=Ultimátní Koš +tile.BasicBlock.TeleporterFrame.name=Rám Teleportéru +tile.BasicBlock.SteelCasing.name=Ocelový Plášť +tile.BasicBlock.DynamicTank.name=Dynamická Nádrž +tile.BasicBlock.StructuralGlass.name=Strukturální Sklo +tile.BasicBlock.DynamicValve.name=Dynamický Ventil +tile.BasicBlock.CopperBlock.name=Blok Měďi +tile.BasicBlock.TinBlock.name=Blok Cínu +tile.BasicBlock.ThermalEvaporationController.name=Ovladač Slunečního Výparu +tile.BasicBlock.ThermalEvaporationValve.name=Ventil Slunečního Výparu + +//Basic Block 2 (second ID iteration) +tile.BasicBlock2.ThermalEvaporationBlock.name=Blok Slunečního Výparu +tile.BasicBlock2.InductionCasing.name=Indukční Plášť +tile.BasicBlock2.InductionPort.name=Indukční Port +tile.BasicBlock2.InductionCellBasic.name=Základní Indukční Článek +tile.BasicBlock2.InductionCellAdvanced.name=Pokročilý Indukční Článek +tile.BasicBlock2.InductionCellElite.name=Elitní Indukční Článek +tile.BasicBlock2.InductionCellUltimate.name=Ultimátní Indukční Článek +tile.BasicBlock2.InductionProviderBasic.name=Základní Poskytovatel Indukce +tile.BasicBlock2.InductionProviderAdvanced.name=Pokročilý Poskytovatel Indukce +tile.BasicBlock2.InductionProviderElite.name=Elitní Poskytovatel Indukce +tile.BasicBlock2.InductionProviderUltimate.name=Ultimátní Poskytovatel Indukce +tile.BasicBlock2.SuperheatingElement.name=Superohřívací Element +tile.BasicBlock2.PressureDisperser.name=Rozprašovač Tlaku +tile.BasicBlock2.BoilerCasing.name=Plášť Bojleru +tile.BasicBlock2.BoilerValve.name=Ventil Bojleru +tile.BasicBlock2.SecurityDesk.name=Bezpečnostní Pult + +//Machine Block +tile.MachineBlock.EnrichmentChamber.name=Obohacovací Komora +tile.MachineBlock.OsmiumCompressor.name=Osmiový Kompresor +tile.MachineBlock.Combiner.name=Kombinér +tile.MachineBlock.Crusher.name=Drtička +tile.MachineBlock.Factory.name=Továrna +tile.MachineBlock.MetallurgicInfuser.name=Infúzer Kovů +tile.MachineBlock.PurificationChamber.name=Purifikační Komora +tile.MachineBlock.EnergizedSmelter.name=Elektrifikovaná Výpalovna +tile.MachineBlock.Teleporter.name=Teleportér +tile.MachineBlock.ElectricPump.name=Elektrická Pumpa +tile.MachineBlock.PersonalChest.name=Osobní Truhla +tile.MachineBlock.Chargepad.name=Nabíječka +tile.MachineBlock.LogisticalSorter.name=Dopravní Třídič +tile.MachineBlock.DigitalMiner.name=Digitální Těžička + +//Machine Block 2 (second ID iteration) +tile.MachineBlock2.RotaryCondensentrator.name=Rotační Kondenzátor +tile.MachineBlock2.ChemicalOxidizer.name=Chemický Oxidovač +tile.MachineBlock2.ChemicalInfuser.name=Chemický Infúzer +tile.MachineBlock2.ChemicalCombiner.name=Chemický Kombinér +tile.MachineBlock2.ChemicalInjectionChamber.name=Chemická Vstřikovací Komora +tile.MachineBlock2.ElectrolyticSeparator.name=Elektrolytická Oddělovačka +tile.MachineBlock2.PrecisionSawmill.name=Precizní Pila +tile.MachineBlock2.ChemicalDissolutionChamber.name=Chemicky Rozkládací Komora +tile.MachineBlock2.ChemicalWasher.name=Chemická Myčka +tile.MachineBlock2.ChemicalCrystallizer.name=Chemický Krystalizér +tile.MachineBlock2.SeismicVibrator.name=Seismický Vibrátor +tile.MachineBlock2.PressurizedReactionChamber.name=Tlaková Reakční Komora +tile.MachineBlock2.PressurizedReactionChamber.short.name=TRK +tile.MachineBlock2.FluidicPlenisher.name=Obohacovač Kapalin +tile.MachineBlock2.Laser.name=Laser +tile.MachineBlock2.LaserAmplifier.name=Zesilovač Laseru +tile.MachineBlock2.LaserTractorBeam.name=Laserový Tažný Paprsek + +//Machine Block 3 (third ID iteration) +tile.MachineBlock3.QuantumEntangloporter.name=Kvantový Vztahoportač +tile.MachineBlock3.SolarNeutronActivator.name=Solární Aktivátor Neutronů +tile.MachineBlock3.Oredictionificator.name=Rudo-Slovníkovač +tile.MachineBlock3.ResistiveHeater.name=Odporový Ohřívač +tile.MachineBlock3.FormulaicAssemblicator.name=Skladač Formulí +tile.MachineBlock3.FuelwoodHeater.name=Ohřívač na Palivové Dřevo + +//Plastic +tile.PlasticBlock.name=Plastový Blok +tile.SlickPlasticBlock.name=Uhlazený Plastový Blok +tile.GlowPlasticBlock.name=Svítivý Plastový Blok +tile.ReinforcedPlasticBlock.name=Tvrzený Plastový Blok +tile.RoadPlasticBlock.name=Plastová Cesta + +tile.PlasticFence.name=Plastová Bariéra + +//Infuse types +infuse.carbon=Uhlík +infuse.tin=Cín +infuse.diamond=Diamant +infuse.redstone=Rudit +infuse.fungi=Houba +infuse.obsidian=Obsidián +infuse.bio=Biomasa + +//Ore Block +tile.OreBlock.OsmiumOre.name=Ruda Osmia +tile.OreBlock.CopperOre.name=Ruda Mědi +tile.OreBlock.TinOre.name=Ruda Cínu + +//Transmitters +item.MultipartTransmitter.BasicPressurizedTube.name=Základní Trubka pod Tlakem +item.MultipartTransmitter.AdvancedPressurizedTube.name=Pokročilá Trubka pod Tlakem +item.MultipartTransmitter.ElitePressurizedTube.name=Elitní Trubka pod Tlakem +item.MultipartTransmitter.UltimatePressurizedTube.name=Ultimátní Trubka pod Tlakem +item.MultipartTransmitter.BasicUniversalCable.name=Základní Univerzální Kabel +item.MultipartTransmitter.AdvancedUniversalCable.name=Pokročilý Univerzální Kabel +item.MultipartTransmitter.EliteUniversalCable.name=Elitní Univerzální Kabel +item.MultipartTransmitter.UltimateUniversalCable.name=Ultimátní Univerzální Kabel +item.MultipartTransmitter.BasicMechanicalPipe.name=Základní Mechanická Trubka +item.MultipartTransmitter.AdvancedMechanicalPipe.name=Pokročilá Mechanická Trubka +item.MultipartTransmitter.EliteMechanicalPipe.name=Elitní Mechanická Trubka +item.MultipartTransmitter.UltimateMechanicalPipe.name=Ultimátní Mechanická Trubka +item.MultipartTransmitter.BasicLogisticalTransporter.name=Základní Přepravní Transportér +item.MultipartTransmitter.AdvancedLogisticalTransporter.name=Pokročilý Přepravní Transportér +item.MultipartTransmitter.EliteLogisticalTransporter.name=Elitní Přepravní Transportér +item.MultipartTransmitter.UltimateLogisticalTransporter.name=Ultimátní Přepravní Transportér +item.MultipartTransmitter.RestrictiveTransporter.name=Omezovací Transportér +item.MultipartTransmitter.DiversionTransporter.name=Diverzní Transportér +item.MultipartTransmitter.BasicThermodynamicConductor.name=Základní Termodynamický Vodič +item.MultipartTransmitter.AdvancedThermodynamicConductor.name=Pokročilý Termodynamický Vodič +item.MultipartTransmitter.EliteThermodynamicConductor.name=Elitní Termodynamický Vodič +item.MultipartTransmitter.UltimateThermodynamicConductor.name=Ultimátní Termodynamický Vodič + +//Glow Panel +item.GlowPanel.name=Svítící Panel + +//Energy Cubes +tile.EnergyCubeBasic.name=Základní Energetická Kostka +tile.EnergyCubeAdvanced.name=Pokročilá Energetická Kostka +tile.EnergyCubeElite.name=Elitní Energetická Kostka +tile.EnergyCubeUltimate.name=Ultimátní Energetická Kostka +tile.EnergyCubeCreative.name=Kreativní Energetická Kostka + +//Factory Installers +item.basicFactoryInstaller.name=Základní Instalátor Továrny +item.advancedFactoryInstaller.name=Pokročilý Instalátor Továrny +item.eliteFactoryInstaller.name=Elitní Instalátor Továrny + +//Dust +item.ironDust.name=Železný Prášek +item.goldDust.name=Zlatý Prášek +item.osmiumDust.name=Osmiový Prášek +item.obsidianDust.name=Obsidiánový Prášek +item.refinedobsidianDust.name=Rafinovaný Obsidiánový Prášek +item.diamondDust.name=Diamantový Prášek +item.steelDust.name=Ocelový Prášek +item.copperDust.name=Měděný Prášek +item.tinDust.name=Cínový Prášek +item.silverDust.name=Stříbrný Prášek +item.leadDust.name=Olověný Prášek +item.sulfurDust.name=Sírový Prášek +item.lithiumDust.name=Lithný Prášek + +//Clumps +item.ironClump.name=Železný Chomáč +item.goldClump.name=Zlatý Chomáč +item.osmiumClump.name=Osmiový Chomáč +item.copperClump.name=Měděný Chomáč +item.tinClump.name=Cínový Chomáč +item.silverClump.name=Stříbrný Chomáč +item.leadClump.name=Olověný Chomáč + +//Shards +item.ironShard.name=Železný Střep +item.goldShard.name=Zlatý Střep +item.osmiumShard.name=Osmiový Střep +item.copperShard.name=Měděný Střep +item.tinShard.name=Cínový Střep +item.silverShard.name=Stříbrný Střep +item.leadShard.name=Olověný Střep + +//Crystals +item.ironCrystal.name=Železný Krystal +item.goldCrystal.name=Zlatý Krystal +item.osmiumCrystal.name=Osmiový Krystal +item.copperCrystal.name=Měděný Krystal +item.tinCrystal.name=Cínový Krystal +item.silverCrystal.name=Stříbrný Krystal +item.leadCrystal.name=Olověný Krystal + +//Dirty Dust +item.dirtyIronDust.name=Špinavý Železný Prášek +item.dirtyGoldDust.name=Špinavý Zlatý Prášek +item.dirtyOsmiumDust.name=Špinavý Osmiový Prášek +item.dirtyCopperDust.name=Špinavý Měděný Prášek +item.dirtyTinDust.name=Špinavý Cínový Prášek +item.dirtySilverDust.name=Špinavý Stříbrný Prášek +item.dirtyLeadDust.name=Špinavý Olověný Prášek + +//Ingots +item.obsidianIngot.name=Rafinovaný Obsidiánový Ingot +item.osmiumIngot.name=Osmiový Ingot +item.bronzeIngot.name=Bronzový Ingot +item.glowstoneIngot.name=Světlitový Ingot +item.steelIngot.name=Ocelový Ingot +item.copperIngot.name=Měďený Ingot +item.tinIngot.name=Cínový Ingot + +//Gasses +gas.hydrogen=Vodík +gas.oxygen=Kyslík +gas.water=Vodní Pára +gas.chlorine=Chlor +gas.sulfurDioxideGas=Oxid Siřičitý +gas.sulfurTrioxideGas=Oxid Sírový +gas.sulfuricAcid=Kyselina Sírová +gas.hydrogenChloride=Chlorid Vodnatý +gas.liquidOsmium=Tekuté Osmium +gas.liquidStone=Tekutý Kámen +gas.ethene=Ethylen +gas.sodium=Sodík +gas.brine=Plynná Solanka +gas.deuterium=Deutérium +gas.tritium=Tritium +gas.lithium=Lithium +gas.fusionFuelDT=D-T Palivo + +gas.iron=Železná Kaše +gas.gold=Zlatá Kaše +gas.osmium=Osmiová Kaše +gas.copper=Měděná Kaše +gas.tin=Cínová Kaše +gas.silver=Stříbrná Kaše +gas.obsidian=Obsidiánová Kaše +gas.lead=Olovnatá Kaše + +gas.cleanIron=Čistá Železná Kaše +gas.cleanGold=Čistá Zlatá Kaše +gas.cleanOsmium=Čistá Osmiová Kaše +gas.cleanCopper=Čistá Měděná Kaše +gas.cleanTin=Čistá Cínová Kaše +gas.cleanSilver=Čistá Stříbrná Kaše +gas.cleanObsidian=Čistá Obsidiánová Kaše +gas.cleanLead=Čistá Olovnatá Kaše + +//BC Fuel Gases +gas.fuel=Vypařené Palivo +gas.oil=Vypařený Olej + +//Fluids +fluid.hydrogen=Tekutý Vodík +fluid.oxygen=Tekutý Kyslík +fluid.chlorine=Tekutý Chlor +fluid.sulfurDioxideGas=Tekutý Oxid Siřičitý +fluid.sulfurTrioxideGas=Tekutý Oxid Sirný +fluid.sulfuricAcid=Tekutá Kyselina Sírová +fluid.hydrogenChloride=Tekutý Chlorid Vodnatý +fluid.brine=Solanka +fluid.ethene=Tekutý Ethylen +fluid.sodium=Tekutý Sodík +fluid.heavyWater=Těžká Voda +fluid.lithium=Tekuté Lithium +fluid.deuterium=Tekuté Deutérium +fluid.tritium=Tekuté Tritium +fluid.fusionFuelDT=Tekuté D-T Palivo +fluid.steam=Pára + +//OreGas names +oregas.iron=Ruda Železa +oregas.gold=Ruda Zlata +oregas.osmium=Ruda Osmia +oregas.copper=Ruda Měďi +oregas.tin=Ruda Cínu +oregas.silver=Ruda Stříbra +oregas.obsidian=Ruda Obsidiánu +oregas.lead=Ruda Olova + +//Tier names +tier.Basic=Základní +tier.Advanced=Pokročilý +tier.Elite=Elitní +tier.Ultimate=Ultimátní +tier.Creative=Kreativní + +//Transmission types +transmission.Energy=Energie +transmission.Fluids=Tekutiny +transmission.Gases=Plyny +transmission.Items=Předměty +transmission.Heat=Teplo + +//Update handler text +update.consider=Zvaž update na verzi +update.newFeatures=Nové funkce +update.visit=Navštiv +update.toDownload=pro stažení +update.devBuild=Je používáno vývojářské sestavení +update.outdated=Je používána stará verze jednoho nebo více modulů + +//Upgrades +upgrade.energy=Energie +upgrade.energy.desc=Zvyšuje energetickou efektivitu a kapacitu stroje. +upgrade.speed=Rychlost +upgrade.speed.desc=Zvyšuje rychlost stroje. +upgrade.filter=Filtr +upgrade.filter.desc=Filtr, který odděluje těžkou vodu od běžné vody. +upgrade.gas=Plyn +upgrade.gas.desc=Zvyšuje efektivitu strojů využívajících plyn. +upgrade.muffling=Dušení +upgrade.muffling.desc=Snižuje hluk generovaný strojem. + +//Key description text +key.mode=Přepínání Módů Předmětů +key.armorMode=Přepínání Módů Brnění +key.voice=Hlas + +//Entities +entity.Mekanism.Robit.name=Robit +entity.Mekanism.BabySkeleton.name=Dítě Kostlivce + +//Config Gui +mekanism.configgui.ctgy.general=Základní Nastavení Mekanismu +mekanism.configgui.ctgy.machines=Nastavení Strojů +mekanism.configgui.ctgy.tier=Nastavení Stupňů +mekanism.configgui.ctgy.usage=Nastavení Odběru +mekanism.configgui.ctgy.client=Nastavení Klienta + +//Config Tooltips +mekanism.configgui.ctgy.general.tooltip=Základní nastavení týkající se Mekanismu a všech jeho modulů +mekanism.configgui.ctgy.machines.tooltip=Nastavení týkající se zápínání a vypínání specifických strojů +mekanism.configgui.ctgy.tier.tooltip=Nastavení týkající se stupňů Mekanismu a jejich souvisejících hodnot +mekanism.configgui.ctgy.usage.tooltip=Nastavení týkající se strojů a jejich odběru energie +mekanism.configgui.ctgy.client.tooltip=Klientská nastavení týkající se Mekanismu a všech jeho modulů + +//Gui text +gui.condensentrating=Kondenzace +gui.decondensentrating=Dekondenzace +gui.power=Energie +gui.confirm=Potvrdit +gui.open=Otevřít +gui.allOK=Vše je OK +gui.none=Nic +gui.new=Nový +gui.edit=Upravit +gui.save=Uložit +gui.output=Výstup +gui.delete=Smazat +gui.status=Status +gui.autoEject=Auto-vyhazování +gui.itemstack=ItemStack +gui.oredict=Rudo-Slovník +gui.material=Materiál +gui.out=Ven +gui.noFluid=Žádná kapalina +gui.empty=Prázdný +gui.volume=Objem +gui.start=Start +gui.stop=Stop +gui.config=Konfig +gui.teleport=Teleport +gui.eject=Vyhodit +gui.input=Vstup +gui.strictInput=Striktní Vstup +gui.slots=Sloty +gui.state=Stav +gui.on=Zapnuto +gui.off=Vypnuto +gui.filters=Filtry +gui.filter=Filtr +gui.idle=Nečinný +gui.data=Data +gui.newFilter=Nový Filtr +gui.energy=Energie +gui.gas=Plyn +gui.dumping=Vyhazování +gui.dumping_excess=Vyhazování Přebytku +gui.modID=ID Módu +gui.key=Klíč +gui.id=ID +gui.finished=Dokončeno +gui.well=Vše je OK! +gui.upgrade=Vylepšení +gui.infinite=Nekonečno +gui.min=Min +gui.max=Max +gui.delay=Prodleva +gui.noDelay=Bez Prodlevy +gui.fuel=Palivo +gui.heat=Teplo +gui.formed=Postaven +gui.incomplete=Nedokončen +gui.inductionMatrix=Indukční Matice +gui.matrixStats=Statistiky Matice +gui.turbineStats=Statistiky Turbíny +gui.boilerStats=Statistiky Bojleru +gui.main=Hlavní +gui.outputting=Výstup +gui.receiving=Příjem +gui.dimensions=Dimenze +gui.constituents=Složky +gui.cells=články +gui.providers=poskytovatelé +gui.structure=Struktura +gui.dynamicTank=Dynamická Nádrž +gui.industrialTurbine=Průmyslová Turbína +gui.thermoelectricBoiler=Termoelektrický Bojler +gui.visuals=Vizuály +gui.noEject=Nelze Vyhodit +gui.undefined=Nedefinovaný +gui.owner=Vlastník +gui.public=Veřejný +gui.private=Soukromý +gui.add=Přidat +gui.set=Nastavit +gui.freq=Frekv +gui.security=Bezpečnost +gui.index=Index +gui.producing=Vyrábí +gui.maxOutput=Max Výstup +gui.storing=Skladuje +gui.skyBlocked=Obloha zablokována +gui.using=Využívá +gui.needed=Potřebuje +gui.noRecipe=Žádný recept +gui.conflict=Konflikt +gui.height=Výška +gui.mult=Více +gui.chunk=Chunk +gui.vibrating=Vibruje +gui.abundancy=Hojnost +gui.nextItem=Další Předmět +gui.lastItem=Poslední Předmět +gui.oreDictCompat=Kompatibilní Rudo-Slovníkový Klíč +gui.toggleCooling=Sepnout Výpočty Chlazení +gui.coolingMeasurements=Aktivní chlazení +gui.redstoneOutputMode=Ruditový mód +gui.entityDetection=Detekce Entit +gui.moveUp=Pohnout Nahoru +gui.moveDown=Pohnout Dolů +gui.flowRate=Rychlost průtoku +gui.maxFlow=Max průtok +gui.tankVolume=Objem nádrže +gui.steamFlow=Průtok Páry +gui.production=Produkce +gui.blades=Lopatky +gui.coils=Cívky +gui.dispersers=Rozprašovač +gui.vents=Ventily +gui.maxProduction=Max Produkce +gui.limiting=Limitace +gui.steamInput=Vstup Páry +gui.capacity=Kapacita +gui.unit=Jednotka +gui.temp=Tepl +gui.usage=Využití +gui.transferred=Přeneseno +gui.dissipated=Rozptýleno +gui.boilRate=Rychlost Varu +gui.maxBoil=Max Var +gui.maxWater=Max Vody +gui.maxSteam=Max Páry +gui.heatTransfer=Přenesení Tepla +gui.superheaters=Superohřívače +gui.boilCapacity=Varná kapacita +gui.encodeFormula=Kódovací Formule +gui.autoModeToggle=Sepnout Auto-mód +gui.craftSingle=Vyrobit Jeden Předmět +gui.craftAvailable=Vyrobit Dostupné Předměty +gui.fillEmpty=Naplnit/Vyprázdnit Mřížku +gui.noOwner=Žádný Vlastník +gui.securityOverride=Přepis Bezpečnosti +gui.remove=Odebrat +gui.trustedPlayers=Důvěřovaní Hráči +gui.publicMode=Veřejný Mód +gui.privateMode=Privátní Mód +gui.trustedMode=Důvěřivý Mód +gui.securityOffline=Bezpečnost Offline +gui.noAccessDesc=Nemáš přístup. +gui.overridden=Přepsáno +gui.nowOwn=Nyní vlastníš tento předmět. +gui.frequency=Frekvence +gui.mode=Mód +gui.burnRate=Rychlost Spalování + +gui.reactor.injectionRate=Rychlost Vstřikování + +gui.upgrades=Vylepšení +gui.upgrades.supported=Podporováno +gui.upgrades.noSelection=Nevybráno +gui.upgrades.amount=Množství +gui.upgrades.max=Max +gui.upgrades.effect=Efekt + +gui.chemicalInfuser.short=Ch. Infúzer +gui.chemicalDissolutionChamber.short=Ch. Rozkládací Komora +gui.thermalEvaporationController.short=Ovl. Solárního Výp. + +gui.dictionary.noKey=Žádný klíč. + +gui.configuration=Konfigurace +gui.config=Konfig +gui.configuration.side=Konfigurace Stran +gui.configuration.transporter=Konfigurace Transportérů +gui.configuration.strictInput=Striktní Vstup + +gui.rotaryCondensentrator.toggleOperation=Sepnout operaci + +gui.factory.secondaryEnergy=Sekundární energie +gui.factory.autoSort=Auto-třídění + +//Recipe types +gui.factory.Smelting=Vypalování +gui.factory.Enriching=Obohacování +gui.factory.Crushing=Drcení +gui.factory.Compressing=Komprese +gui.factory.Combining=Kombinování +gui.factory.Purifying=Purifikace +gui.factory.Injecting=Vstřikování +gui.factory.Infusing=Infúze + +gui.seismicReader.short=S. Čtečka +gui.seismicReader.solids=Pevné +gui.seismicReader.fluids=Kapaliny +gui.seismicReader.reading=Čtení + +gui.filterSelect.title=Vytvořit Nový Filtr + +gui.oredictFilter=Rudo-Slovníkový Filtr +gui.oredictFilter.noKey=Žádný klíč +gui.oredictFilter.sameKey=Stejný klíč + +gui.modIDFilter=Filtr Mód ID +gui.modIDFilter.noID=Žádné ID +gui.modIDFilter.sameID=Stejné ID + +gui.oredictionificatorFilter=Rudo-Slovníkovač Filtr + +gui.itemFilter=Filtr Předmětů +gui.itemFilter.noItem=Žádný předmět +gui.itemFilter.details=ItemStack Detaily +gui.itemFilter.min=Min +gui.itemFilter.max=Max + +gui.materialFilter=Filtr Materiálu +gui.materialFilter.details=Využíván materiál + +gui.portableTeleporter=Přenosný Teleportér + +gui.robit=Robit +gui.robit.smelting=Robit Výpalovna +gui.robit.inventory=Robit Onventář +gui.robit.crafting=Robit Výroba +gui.robit.greeting=Ahoj, jsem +gui.robit.toggleFollow=Sepnout 'následovat' mód +gui.robit.rename=Přejmenovat tohoto Robita +gui.robit.teleport=Teleportovat zpět domů +gui.robit.togglePickup=Sepnout 'sbírat dropy' mód +gui.robit.following=Následuje +gui.robit.dropPickup=Sbírá dropy +gui.robit.owner=Vlastník + +gui.password.setPassword=Nastavit heslo +gui.password.enterPassword=Zadat heslo +gui.password.fieldsEmpty=Pole je(jsou) prázdné +gui.password.notMatching=Neshoduje se +gui.password.identical=Identické +gui.password.invalid=Neplatné +gui.password=Heslo + +gui.logisticalSorter.default=Výchozí +gui.logisticalSorter.auto=Auto +gui.logisticalSorter.roundRobin=Zaoblená-červenka +//previous DEFINITELLY wrong, dunno what the original means +gui.teleporter.notReady=Nepřipraven +gui.teleporter.ready=Připraven +gui.teleporter.noFrame=Není rám +gui.teleporter.noLink=Není spojení +gui.teleporter.exceeds=Spojení > 2 +gui.teleporter.needsEnergy=Potřebuje energii +gui.teleporter.noAccess=Nemáš přístup k tomuto Teleportéru. +gui.teleporter.noFreq=Žádná frekvence + +gui.entangloporter.noAccess=Nemáš přístup k tomuto Vztahoportači. + +gui.digitalMinerConfig=Konfig Digitální Těžičky + +gui.digitalMiner.autoPull=Auto-výtah +gui.digitalMiner.replaceBlock=Nahrazovací blok +gui.digitalMiner.reset=Resetovat +gui.digitalMiner.silkTouch=Něžný dotek +gui.digitalMiner.pull=Výtah +gui.digitalMiner.silk=Něžně +gui.digitalMiner.toMine=K těžbě +gui.digitalMiner.running=Běží +gui.digitalMiner.inverse=Opečný mód +gui.digitalMiner.requireReplace=Vyžaduje nahrazení +gui.digitalMiner.fuzzyMode=Nejasný mód +gui.digitalMiner.missingBlock=Chybějící blok + +//Recipe names +recipe.mekanismShaped=Tvarovaný +recipe.mekanismShapeless=Beztvarý + +//Security types +security.public=Veřejný +security.private=Privátní +security.trusted=Důvěřivý + +//Item and block tooltip text +tooltip.configurator.configurate=Konfigurovat +tooltip.configurator.empty=Prázdný +tooltip.configurator.rotate=Otočit +tooltip.configurator.wrench=Klíč +tooltip.configurator.pumpReset=Resetovat kalkulace Elektrické Pumpy +tooltip.configurator.toggleDiverter=Mód rozdělovače změněn na +tooltip.configurator.toggleMode=Chování %s změněno na +tooltip.configurator.viewMode=Aktuální chování %s +tooltip.configurator.noLink=Žádný spoj +tooltip.configurator.linkMsg=Svázat s +tooltip.configurator.dim=dimenze +tooltip.configurator.setLink=Nastavit spojení s blokem +tooltip.configurator.plenisherReset=Resetovat kalkulace Obohacovače Kapalin +tooltip.configurator.inductionPortMode=Mód vysílání Indukčního Portu nastaven na +tooltip.configurator.toggleColor=Barva nastavena na +tooltip.configurator.viewColor=Aktuální barva + +tooltip.upgrade.speed=Rychlost +tooltip.upgrade.energy=Energie + +tooltip.inventory=Inventář +tooltip.storedEnergy=Uskladněná energie +tooltip.auth=Autorizován +tooltip.locked=Uzamčeno +tooltip.recipeType=Typ receptu +tooltip.hold=Drž +tooltip.forDesc=pro popis +tooltip.forDetails=pro detaily +tooltip.fireMode=Ohnivý Mód +tooltip.capacity=Kapacita +tooltip.pumpRate=Rychlost Pumpy +tooltip.items=Předměty +tooltip.blocks=Bloky +tooltip.universal=univerzální +tooltip.fluids=Kapaliny +tooltip.gasses=Plyny +tooltip.capableTrans=Schopný přenášet +tooltip.restrictiveDesc=Využit pouze když není jiná cesta +tooltip.diversionDesc=Ovladatelný ruditem +tooltip.noGas=Neuložen žádný plyn +tooltip.stored=Uloženo +tooltip.channel=Kanál +tooltip.mode=Mód +tooltip.efficiency=Efektivita +tooltip.modeToggle=Mód nastaven na +tooltip.flowing=Tekoucí +tooltip.yes=ano +tooltip.no=ne +tooltip.name=Název +tooltip.blockData=Data bloku +tooltip.block=Blok +tooltip.meta=Metadata +tooltip.tile=Dlaždice +tooltip.keysFound=Klíč(e) nalezen(y) +tooltip.noKey=Žádný klíč +tooltip.hp=HP +tooltip.configureState=Konfigurovat Stav +tooltip.outputRate=Rychlost Výstupu +tooltip.insufficientFuel=Nedostatek Paliva +tooltip.readyForReaction=Připraven na Reakci +tooltip.speed=Rychlost +tooltip.and=a +tooltip.heat=Teplota +tooltip.itemAmount=Množství položek +tooltip.invalid=Neplatný +tooltip.encoded=Zakódovaný +tooltip.ingredients=Ingredience + +tooltip.portableTank.bucketMode=Kyblíkový Mód +//totally legit and not funny sounding :D +tooltip.disassembler.normal=normální +tooltip.disassembler.slow=pomalý +tooltip.disassembler.fast=rychlý +tooltip.disassembler.vein=žilný +tooltip.disassembler.off=vyplý + +tooltip.configurationCard.got=Získaná konfigurační data z %s +tooltip.configurationCard.set=Vložená konfigurační data typu %s +tooltip.configurationCard.unequal=Nerovné formáty konfiguračních dat + +tooltip.balloon=Balón + +tooltip.jetpack.regular=Normální +tooltip.jetpack.hover=Vznášecí +tooltip.jetpack.disabled=Deaktivovaný + +tooltip.flamethrower.combat=Souboj +tooltip.flamethrower.heat=Teplo +tooltip.flamethrower.inferno=Peklo +tooltip.flamethrower.modeBump=Mód plamenometu změněn na + +tooltip.seismicReader.needsEnergy=Nedostatek energie na interpretaci vibrací +tooltip.seismicReader.noVibrations=Nenalezeny žádné vibrace + +tooltip.Bin=Blok schopný skladovat velká kvanta jednoho typu předmětu. +tooltip.TeleporterFrame=Rám využívaný k postavení Teleportačního multibloku, umožnující portálu se vygenerovat uvnitř struktury. +tooltip.SteelCasing=Solidní, ocelově založený plášť využívaný jako základ strojírenství. +tooltip.DynamicTank=Plášť využívaný v multibloku Dynamická Nádrž, struktuře schopné skladovat enormní množství kapaliny. +tooltip.StructuralGlass=Pokročilý, tvrzený materiál skla který se dropuje a může být využit v každém multibloku. +tooltip.DynamicValve=Ventil, který lze umístit na multiblok Dynamická Nádrž, umožnujíc kapalinám být extrahovány a vkládány externím systémem trubek. +tooltip.ThermalEvaporationController=Ovladač multibloku Teplotní Výparovna fungující jako srdce systému. Pouze jeden může být na multibloku. +tooltip.ThermalEvaporationValve=Ventil, který lze umístit na multiblok Teplotní Výparovna, umožnujíc kapalinám být extrahovány a vkládány externím systémem trubek. +tooltip.ThermalEvaporationBlock=Měděný plášť použitý v multibloku Teplotní Výparovna, využívající svůj materiál k přenosu tepla potřebného pro výrobu. +tooltip.InductionCasing=Type energeticky odolného pláště využívaného k výrobě multibloku Energizovaná Indukční Matice. +tooltip.InductionPort=Port který může být umístěn na multiblok Energizovaná Indukční Matice, umožnujíc energii být vložená či vytažená externí kabeláží. +tooltip.InductionCell=Velmi vodivý energetický kapacitor schopný skladovat masivní množství energie v jednom bloku. Pro expanzi využijte multiblok Energizovaná Indukční Matice. +tooltip.InductionProvider=Pokročilý komplex chladících systémů, vodičů a transformerů umožnujících zvyšovat maximální výstupní frekvenci energie multibloku Energizovaná Indukční Matice. +tooltip.SuperheatingElement=Modulární, nějak nebezpečnýradiátor schopný vysílat obrovská množství tepla do svého okolí. +tooltip.PressureDisperser=Blok používaný k rozptýlení páry v multibloku. Měli by tvořit bezmezerovou horizontální plošinu pro optimální ovládání toku páry. +tooltip.BoilerCasing=Tlakuvzdorný hustý plášť využitý při stavbě multibloku Termoelektrický Bojler. +tooltip.BoilerValve=Ventil který lze umístit na multiblok Termoelektrický Bojler, umožnující vstup vody a energie a výstup páry. +tooltip.SecurityDesk=Centrální ovládací pult na kontrolu bezpečnosti všech vašich strojů. + +tooltip.EnrichmentChamber=Jednoduchý stroj obohacující rudy do jejich práškových protějšků a zároveň dělající mnoho dalších operací. +tooltip.OsmiumCompressor=Poměrně pokročilý stroj kompresující osmium do různorodých prášků za účelem výroby jejich ingotových protějšků. +tooltip.Combiner=Stroj kombinující prášky a cobblestone na zformování jejich rudných protějšků. +tooltip.Crusher=Stroj drtící ingoty do jejich práškových protějšků a zároveň dělající mnoho dalších operací. +tooltip.DigitalMiner=Velmi pokročilý, založený na filtrech, automatický těžič který dokáže vytěžit jakýkoli blok zadáš do max 32 bloků X, Y. +tooltip.MetallurgicInfuser=Stroj infúzující různorodé materiály do (v podstatě) kovů pro výrobu slitin a dalších složek. +tooltip.PurificationChamber=Pokročilý stroj drtící rudy do třech kupek, slouží jako počáteční stupeň 300% zpracování rud. +tooltip.EnergizedSmelter=Jednoduchý stroj - pec na energii. +tooltip.Teleporter=Stroj teleportující hráče na různorodé lokace definované jiným Teleportérem. +tooltip.ElectricPump=Pokročilá, vylepšitelná pumpa, schopná extrahovat každý druh kapaliny. +tooltip.PersonalChest=54 slotová truhla, která jde otevřít odkudkoli (dokonce i z inventáře) +tooltip.Chargepad=Univerzální nabíječka která dokáže nabít jakýkoli energetický předmět z jakéhokoli módu. +tooltip.LogisticalSorter=Pokročilý stroj založený na filtrech, dokáže vyhazovat věci z přilehlých inventářů do přilehlých inventářů a Přepravních Transportérů. +tooltip.RotaryCondensentrator=Stroj konvertující plyny do jejich kapalinových protějšků a zpět. +tooltip.ChemicalInjectionChamber=Elitní stroj drtící rudy do čtyř úlomků, slouží jako počáteční fáze 400% zpracování rud. +tooltip.ElectrolyticSeparator=Stroj elektrolyzující kapalinu a rozdělující ji na dva plyny. +tooltip.PrecisionSawmill=Stroj zpracovávající kmeny a jiné dřevěné věci efektivněji a zároveň zdroj pilin. +tooltip.ChemicalDissolutionChamber=Ultimátní stroj chemicky rozkládající všechny nečistoty z rud a zanechávající je jako břečku. +tooltip.ChemicalWasher=Ultimátní stroj čistící břečku a připravující ji na krystalizaci. +tooltip.ChemicalCrystallizer=Ultimátní stroj krystalizující purifikovanou břečku do rudných krystalů. +tooltip.ChemicalOxidizer=Stroj oxidující pevné materiály do jejich plynné fáze. +tooltip.ChemicalInfuser=Stroj tvořící nový plyn ze dvou starých. +tooltip.SeismicVibrator=Stroj využívající seismické otřesy k poskytnutí informací o rozdílném složení vrstev ve světě. +tooltip.PressurizedReactionChamber=Pokročilý stroj, který vezme pevnou, tekutou i plynnou složku a vytvoří jak plynný, tak pevný produkt. +tooltip.FluidTank=Užitečná přenosná nádrž umožňující vzít více kyblíků kapaliny kamkoli chcete. +tooltip.FluidicPlenisher=Stroj schopný tvorby celých jezer zaplavováním místa pod sebou. +tooltip.Laser=Pokročilá forma lineárního přenosu energie která zprostředkovává extrémně zhuštěný paprsek světla. +tooltip.LaserAmplifier=Blok schopný slučovat a přesměrovávat laserové paprsky s kompletní kontrolou, kdy vystřelit. +tooltip.LaserTractorBeam=Blok schopný slučovat a přesměrovávat laserové paprsky. Sbírá dropy z bloků které zničil. +tooltip.SolarNeutronActivator=Stroj směřující neutronovou radiaci ze Slunce do svého zásobiště, umožňující pomalou tvorbu různorodých izotopů. +tooltip.Oredictionificator=Stroj sjednocující různé předměty a rudy pomoci Rudo-Slovníku. +tooltip.Factory=Stroj sloužící jako vylepšení k běžným strojům, umožňuje více operací najednou. +tooltip.ResistiveHeater=Kondenzovaný, vinutý rezistor schopný převádět elektrickou energii přímo do tepelné energie. +tooltip.FormulaicAssemblicator=Stroj využívající energii pro rychlou výrobu předmětů či bloků z Výrobních Formulí. +tooltip.FuelwoodHeater=Stroj schopný generovat hodně energie spalováním hořlavých předmětů. +tooltip.QuantumEntangloporter=Velmi pokročilý blok schopný přenášet jakýkoli zdroj napříč velkými vzdálenostmi a dimenzemi. + +tooltip.HeatGenerator=Generátor využívající teplo lávy nebo jiného spalovatelného zdroje k výrobě energie. +tooltip.SolarGenerator=Generátor využívající energie Slunce k výrobě energie. +tooltip.GasGenerator=Generátor využívající různorodost plynů k výrobě energie. +tooltip.BioGenerator=Generátor spalující organické materiály ze světa k výrobě energie. +tooltip.AdvancedSolarGenerator=Pokročilý generátor který přímo pohlcuje sluneční paprsky s minimální ztrátou k výrobě energie. +tooltip.WindGenerator=Generátor využívající sílu větru k výrobě energie. Efektivita se zvyšuje úměrně s výškou. +tooltip.TurbineRotor=Ocelová tyč použitá k udržení Turbínových Lopatek v Průmyslové Turbíně. +tooltip.RotationalComplex=Konektor který je položen na nejvyšší Turbínový Rotor Průmyslové Turbíny pro přenášení kinetické energie do jeho Elektromagnetických Cívek. +tooltip.ElectromagneticCoil=Blok konvertující energii z Rotačního Komplexu do využitelné energie. Tyto mohou být položeny do jakéhokoli uspořádání nad Rotačním Komplexem, pakliže se stále dotýkají jeden druhého a samotného komplexu. +tooltip.TurbineCasing=Tlakuvzdorný plášť využitý k výrobě Průmyslové Turbíny. +tooltip.TurbineValve=Typ Turbínového Pláště zahrnující port na přenos energie a páry. +tooltip.TurbineVent=Typ Turbínového Pláště s integrovaným ventilem pro vypouštění páry. Tyto by měly být umístěny na úrovni nebo výše Turbínového Rotačního Komplexu. + +tooltip.ReactorGlass=Tvrzené sklo které může být použito v multibloku Fúzní Reaktor. +tooltip.ReactorLaserFocusMatrix=Panel Reaktorového Skla který je schopný absorbovat optickou energii a tím zahřívat Fúzní Reaktor. +tooltip.ReactorController=Kontrolní blok pro celou strukturu Fúzního Reaktoru. +tooltip.ReactorFrame=Tvrzený rám který může být využit v multibloku Fúzní Reaktor. +tooltip.ReactorNeutronCapturePlate=Blok který může být využit jak k zablokování radiace Fúzního Reaktoru tak k asistenci u produkce Trinia. +tooltip.ReactorPort=Blok tvrzeného rámu který je schopen zpracovávat zároveň plyn i energii z a do Fúzního Reaktoru. +tooltip.ReactorLogicAdapter=Blok který umožňuje základní sledování stavu reaktoru pomocí ruditu. + +tooltip.OsmiumOre=Silný minerál který lze nalézt v jakékoli hloubce. Je znám pro své využití v konstrukci strojů. +tooltip.CopperOre=Běžný, vodivý materiál který se využívá k výrobě kabelů. Jeho schopnost vydržet velké teploty ho činí podstatným pro pokročilé stroje. +tooltip.TinOre=Lehký, ale tvrdý, vodivý materiál který je o trochu vzácnější než Měď. + +//Side data +sideData.None=Nic +sideData.Input=Vstup +sideData.Output=Výstup +sideData.Energy=Energie +sideData.Gas=Plyn +sideData.Extra=Extra +sideData.Infuse=Infúze +sideData.Fluid=Kapalina +sideData.Fill=Náplň +sideData.Empty=Prázdný +sideData.Charge=Náboj +sideData.Discharge=Výboj + +//Redstone control +control.disabled=Vyplý +control.high=Silný +control.low=Slabý +control.pulse=Pulz +control.disabled.desc=Vždy aktivní +control.high.desc=Vždy se signálem +control.low.desc=Vždy bez signálu +control.pulse.desc=Pouze aktivní s prvním příchozím signálem + +//Container edit modes +fluidedit.both=Oboje +fluidedit.fill=Plný +fluidedit.empty=Prázdný + +//Colors +color.black=Černá +color.darkBlue=Tmavě Modrá +color.darkGreen=Tmavě Zelená +color.darkAqua=Tmavá Aqua +color.darkRed=Tmavě Červená +color.purple=Fialová +color.orange=Oranžová +color.grey=Šedá +color.darkGrey=Tmavě Šedá +color.indigo=Indigo +color.brightGreen=Světle Zelená +color.aqua=Aqua +color.red=Červená +color.pink=Růžová +color.yellow=Žlutá +color.white=Bílá +color.brown=Hnědá +color.brightPink=Světle Růžová + +//Dyes +dye.black=Černá +dye.darkBlue=Modrá +dye.brown=Hnědá +dye.darkGreen=Zelená +dye.darkAqua=Tyrkysová +dye.darkRed=Tmavě Červená +dye.purple=Nachová +dye.orange=Oranžová +dye.grey=Světle Šedá +dye.darkGrey=Šedá +dye.indigo=Světle Modrá +dye.brightGreen=Limetka +dye.aqua=Aqua +dye.red=Červená +dye.brightPink=Růžová +dye.pink=Magenta +dye.yellow=Žlutá +dye.white=Bílá + +//Reactor Logic modes +reactor.disabled=Deaktivovaný +reactor.disabled.desc=Nebude vysílat ruditový signál +reactor.ready=Připraven na Zážeh +reactor.ready.desc=Reaktor dosáhl potřebné teploty pro zážeh +reactor.capacity=Dosažena Tepelná Kapacita +reactor.capacity.desc=Tepelná kapacita jádra reaktoru byla dosažena +reactor.depleted=Nedostatek Paliva +reactor.depleted.desc=Reaktor má nedostatek paliva k udržení reakce + +//Creative tab +itemGroup.tabMekanism=Mekanism + +//NEI stuff +nei.chemicalInjectionChamber=Ch. Vstřikovací Komora +nei.rotaryCondensentrator=R. Kondenzátor + +//**********// +//GENERATORS// +//**********// + +//Items +item.SolarPanel.name=Solární Panel +item.Hohlraum.name=Hohlraum +item.TurbineBlade.name=Turbínová Lopatka + +//Generators +tile.Generator.HeatGenerator.name=Tepelný Generátor +tile.Generator.SolarGenerator.name=Solární Generátor +tile.Generator.GasGenerator.name=Plyno-Spalovací Generátor +tile.Generator.BioGenerator.name=Bio-Generátor +tile.Generator.AdvancedSolarGenerator.name=Pokročilý Solární Generátor +tile.Generator.WindGenerator.name=Větrný Generátor +tile.Generator.TurbineRotor.name=Turbínový Rotor +tile.Generator.RotationalComplex.name=Rotační Komplex +tile.Generator.ElectromagneticCoil.name=Elektromagnetická Cívka +tile.Generator.TurbineCasing.name=Plášť Turbíny +tile.Generator.TurbineValve.name=Turbínový Ventil +tile.Generator.TurbineVent.name=Turbínový Průduch + +tile.Reactor.ReactorController.name=Kontroler Reaktoru +tile.Reactor.ReactorFrame.name=Rám Reaktoru +tile.Reactor.ReactorNeutronCapturePlate.name=Neutronový Zachytávací Plát +tile.Reactor.ReactorPort.name=Port Reaktoru +tile.Reactor.ReactorLogicAdapter.name=Logický Adaptér Reaktoru + +tile.ReactorGlass.ReactorGlass.name=Sklo Reaktoru +tile.ReactorGlass.ReactorLaserFocusMatrix.name=Laserová Zaměřovací Matice + +//Gui text +gui.heatGenerator.fuel=Palivo +gui.solarGenerator.sun=Slunce +gui.bioGenerator.bioFuel=Bio Palivo +gui.electrolyticSeparator.dump=Vyhodit + +gui.passive=Chlazen vzduchem +gui.active=Chalzen vodou + +gui.minInject=Min. Rychlost Vstřikování +gui.ignition=Zážehová Teplota +gui.maxPlasma=Max. Teplota Plasmy +gui.maxCasing=Max. Teplota Pláště +gui.passiveGeneration=Pasivní Generace +gui.steamProduction=Produkce Páry + +//*****// +//TOOLS// +//*****// + +//Vanilla Paxels +item.WoodPaxel.name=Dřevěný Sekrumpáč +item.StonePaxel.name=Kamenný Sekrumpáč +item.IronPaxel.name=Železný Sekrumpáč +item.DiamondPaxel.name=Diamantový Sekrumpáč +item.GoldPaxel.name=Zlatý Sekrumpáč + +//Obsidian +item.ObsidianHelmet.name=Obsidiánová Helma +item.ObsidianChestplate.name=Obsidiánové Brnění +item.ObsidianLeggings.name=Obsidiánové Kalhoty +item.ObsidianBoots.name=Obsidiánové Boty +item.ObsidianPaxel.name=Obsidiánový Sekrumpáč +item.ObsidianPickaxe.name=Obsidiánový Krumpáč +item.ObsidianAxe.name=Obsidiánová Sekyra +item.ObsidianShovel.name=Obsidiánová Lopata +item.ObsidianHoe.name=Obsidiánová Motyka +item.ObsidianSword.name=Obsidiánový Meč + +//Lapis Lazuli +item.LazuliHelmet.name=Lapis Lazuli Helma +item.LazuliChestplate.name=Lapis Lazuli Brnění +item.LazuliLeggings.name=Lapis Lazuli Kalhoty +item.LazuliBoots.name=Lapis Lazuli Boty +item.LazuliPaxel.name=Lapis Lazuli Sekrumpáč +item.LazuliPickaxe.name=Lapis Lazuli Krumpáč +item.LazuliAxe.name=Lapis Lazuli Sekyra +item.LazuliShovel.name=Lapis Lazuli Lopata +item.LazuliHoe.name=Lapis Lazuli Motyka +item.LazuliSword.name=Lapis Lazuli Meč + +//Osmium +item.OsmiumHelmet.name=Osmiová Helma +item.OsmiumChestplate.name=Osmiové Brnění +item.OsmiumLeggings.name=Osmiové Kalhoty +item.OsmiumBoots.name=Osmiové Boty +item.OsmiumPaxel.name=Osmiový Sekrumpáč +item.OsmiumPickaxe.name=Osmiový Krumpáč +item.OsmiumAxe.name=Osmiová Sekyra +item.OsmiumShovel.name=Osmiová Lopata +item.OsmiumHoe.name=Osmiová Motyka +item.OsmiumSword.name=Osmiový Meč + +//Bronze +item.BronzeHelmet.name=Bronzová Helma +item.BronzeChestplate.name=Bronzové Brnění +item.BronzeLeggings.name=Bronzové Kalhoty +item.BronzeBoots.name=Bronzové Boty +item.BronzePaxel.name=Bronzový Sekrumpáč +item.BronzePickaxe.name=Bronzový Krumpáč +item.BronzeAxe.name=Bronzová Sekyra +item.BronzeShovel.name=Bronzová Lopata +item.BronzeHoe.name=Bronzová Motyka +item.BronzeSword.name=Bronzový Meč + +//Glow +item.GlowstoneHelmet.name=Světlitová Helma +item.GlowstoneChestplate.name=Světlitové Brnění +item.GlowstoneLeggings.name=Světlitové Kalhoty +item.GlowstoneBoots.name=Světlitové Boty +item.GlowstonePaxel.name=Světlitový Sekrumpáč +item.GlowstonePickaxe.name=Světlitový Krumpáč +item.GlowstoneAxe.name=Světlitová Sekyra +item.GlowstoneShovel.name=Světlitová Lopata +item.GlowstoneHoe.name=Světlitová Motyka +item.GlowstoneSword.name=Světlitový Meč + +//Steel +item.SteelHelmet.name=Ocelová Helma +item.SteelChestplate.name=Ocelové Brnění +item.SteelLeggings.name=Ocelové Kalhoty +item.SteelBoots.name=Ocelové Boty +item.SteelPaxel.name=Ocelový Sekrumpáč +item.SteelPickaxe.name=Ocelový Krumpáč +item.SteelAxe.name=Ocelová Sekyra +item.SteelShovel.name=Ocelová Lopata +item.SteelHoe.name=Ocelová Motyka +item.SteelSword.name=Ocelové Meč + +//Config Gui +mekanism.configgui.ctgy.tools.general=Základní +mekanism.configgui.ctgy.tools.armor=Vyvážení Brnění +mekanism.configgui.ctgy.tools.tools=Vyvážení Nástrojů + +//Config Tooltips +mekanism.configgui.ctgy.tools.general.tooltip=Nastavení týkající se základní konfigurace MekanismTools +mekanism.configgui.ctgy.tools.armor.tooltip=Nastavení týkající se protekčních hodnot a vyvážení setů brnění MekanismTools +mekanism.configgui.ctgy.tools.tools.tooltip=Nastavení týkající se efektivních hodnot a vyvážení setů nástrojů MekanismTools \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/lang/en_US.lang b/src/main/resources/assets/mekanism/lang/en_US.lang index e0917cd4d..71c4aebfe 100644 --- a/src/main/resources/assets/mekanism/lang/en_US.lang +++ b/src/main/resources/assets/mekanism/lang/en_US.lang @@ -216,10 +216,11 @@ tile.EnergyCubeElite.name=Elite Energy Cube tile.EnergyCubeUltimate.name=Ultimate Energy Cube tile.EnergyCubeCreative.name=Creative Energy Cube -//Factory Installers -item.basicFactoryInstaller.name=Basic Factory Installer -item.advancedFactoryInstaller.name=Advanced Factory Installer -item.eliteFactoryInstaller.name=Elite Factory Installer +//Tier Installers +item.basicTierInstaller.name=Basic Tier Installer +item.advancedTierInstaller.name=Advanced Tier Installer +item.eliteTierInstaller.name=Elite Tier Installer +item.ultimateTierInstaller.name=Ultimate Tier Installer //Dust item.ironDust.name=Iron Dust @@ -509,7 +510,6 @@ gui.oreDictCompat=Compatible OreDict Key gui.toggleCooling=Toggle Cooling Measurements gui.coolingMeasurements=Active cooling gui.redstoneOutputMode=Redstone mode -gui.entityDetection=Entity Detection gui.moveUp=Move Up gui.moveDown=Move Down gui.flowRate=Flow rate @@ -556,6 +556,10 @@ gui.nowOwn=You now own this item. gui.frequency=Frequency gui.mode=Mode gui.burnRate=Burn Rate +gui.entityDetection=Entity Detection +gui.energyContents=Energy Contents +gui.redstoneOutput=Redstone Output +gui.maxWaterOutput=Max Water Output gui.reactor.injectionRate=Injection Rate @@ -698,6 +702,7 @@ tooltip.configurator.plenisherReset=Reset Fluidic Plenisher calculation tooltip.configurator.inductionPortMode=Toggled Induction Port transfer mode to tooltip.configurator.toggleColor=Color bumped to tooltip.configurator.viewColor=Current color +tooltip.configurator.reactorPortEject=Toggled Reactor Port eject mode to tooltip.upgrade.speed=Speed tooltip.upgrade.energy=Energy @@ -844,6 +849,7 @@ tooltip.ElectromagneticCoil=A block that converts kinetic energy from a Rotation tooltip.TurbineCasing=Pressure-resistant casing used in the creation of an Industrial Turbine. tooltip.TurbineValve=A type of Turbine Casing that includes a port for the transfer of energy and steam. tooltip.TurbineVent=A type of Turbine Casing with an integrated vent for the release of steam. These should be placed on the level of or above the turbine's Rotational Complex. +tooltip.SaturatingCondenser=A block that condenses steam processed by an Industrial Turbine into reusable water. These can be placed in any arrangement above your rotational complex. tooltip.ReactorGlass=Reinforced glass that can be used in the Fusion Reactor multiblock. tooltip.ReactorLaserFocusMatrix=A panel of Reactor Glass that is capable of absorbing optical energy and thereby heating up the Fusion Reactor. @@ -965,6 +971,7 @@ tile.Generator.ElectromagneticCoil.name=Electromagnetic Coil tile.Generator.TurbineCasing.name=Turbine Casing tile.Generator.TurbineValve.name=Turbine Valve tile.Generator.TurbineVent.name=Turbine Vent +tile.Generator.SaturatingCondenser.name=Saturating Condenser tile.Reactor.ReactorController.name=Reactor Controller tile.Reactor.ReactorFrame.name=Reactor Frame diff --git a/src/main/resources/assets/mekanism/lang/ja_JP.lang b/src/main/resources/assets/mekanism/lang/ja_JP.lang index dc84c4a6c..632aad3d7 100644 --- a/src/main/resources/assets/mekanism/lang/ja_JP.lang +++ b/src/main/resources/assets/mekanism/lang/ja_JP.lang @@ -95,11 +95,11 @@ tile.BasicBlock.StructuralGlass.name=構造用ガラス tile.BasicBlock.DynamicValve.name=ダイナミックバルブ tile.BasicBlock.CopperBlock.name=銅ブロック tile.BasicBlock.TinBlock.name=錫ブロック -tile.BasicBlock.ThermalEvaporationController.name=加温採鹹コントローラ -tile.BasicBlock.ThermalEvaporationValve.name=加温採鹹バルブ +tile.BasicBlock.ThermalEvaporationController.name=加温蒸発濃縮コントローラ +tile.BasicBlock.ThermalEvaporationValve.name=加温蒸発濃縮バルブ //Basic Block 2 (second ID iteration) -tile.BasicBlock2.ThermalEvaporationBlock.name=加温採鹹ブロック +tile.BasicBlock2.ThermalEvaporationBlock.name=加温蒸発濃縮ブロック tile.BasicBlock2.InductionCasing.name=インダクションケーシング tile.BasicBlock2.InductionPort.name=インダクションポート tile.BasicBlock2.InductionCellBasic.name=ベーシックインダクションセル @@ -522,7 +522,7 @@ gui.coils=コイル数 gui.dispersers=圧力分散器 gui.vents=蒸気排出口 gui.maxProduction=最大発電量 -gui.limiting=限界 +gui.limiting=限定的 gui.steamInput=蒸気搬入量 gui.capacity=容量 gui.unit=単位 @@ -782,13 +782,13 @@ tooltip.SteelCasing=頑丈な鋼鉄製の筐体です。マシンの作成に使 tooltip.DynamicTank=ダイナミックタンクの組み立てに使います。沢山の液体を貯蔵します。 tooltip.StructuralGlass=強化されたガラスで破壊してもアイテム化します。マルチブロックの窓として使用することが出来ます。 tooltip.DynamicValve=ダイナミックタンクの組み立てに使います。パイプからの液体の搬入出をサポートします。 -tooltip.ThermalEvaporationController=加温採鹹装置の根幹となるブロックです。加温採鹹装置に一つだけ置くことが出来ます。 -tooltip.ThermalEvaporationValve=加温採鹹装置のバルブです。パイプからの液体の搬入出をサポートします。 -tooltip.ThermalEvaporationBlock=加温採鹹装置の組み立てに使う銅合金製の筐体です。処理に必要な沢山の熱を素材が伝導します。 -tooltip.InductionCasing=大きなエネルギーに耐えられる筐体です。インダクションマトリックスの組み立てに使います。 -tooltip.InductionPort=インダクションマトリックスの組み立てに使い、インダクションマトリックスのエネルギーの搬入出を担います。 -tooltip.InductionCell=多大なエネルギーを蓄えることが出来る、高伝導性のキャパシタです。 インダクションマトリックスの内部に組み込んで、蓄電容量を増大するのに使用します。 -tooltip.InductionProvider=先進的な冷却システム、伝導体と変圧器の統合体です。 インダクションマトリックスの内部に組み込み、エネルギーの入出力上限を増強するのに使います。 +tooltip.ThermalEvaporationController=加温蒸発濃縮装置の根幹となるブロックです。加温蒸発濃縮装置につき一つだけ置くことが出来ます。 +tooltip.ThermalEvaporationValve=加温蒸発濃縮装置のバルブです。サーモダイナミックコンダクターからの導熱、パイプからの液体の搬入出をサポートします。 +tooltip.ThermalEvaporationBlock=加温蒸発濃縮装置の組み立てに使う銅合金製の筐体です。処理に必要な沢山の熱を素材が伝導します。 +tooltip.InductionCasing=莫大なエネルギーに耐えられる筐体です。インダクションマトリックスの組み立てに使います。 +tooltip.InductionPort=インダクションマトリックスの組み立てに用い、インダクションマトリックスにおけるエネルギーの搬入出を担います。 +tooltip.InductionCell=甚大なエネルギーを蓄えることが出来る、高伝導性のキャパシタです。 インダクションマトリックスの内部に組み込み、蓄電容量を増やします。 +tooltip.InductionProvider=先進的な、冷却システム、伝導体と変圧器の統合体です。 インダクションマトリックスの内部に組み込み、エネルギーの入出力上限を増やします。 tooltip.SuperheatingElement=周囲に高熱を放出する、何だか危ない部品です。 tooltip.PressureDisperser=蒸気を分散させるためのマルチブロックの部品です。 蒸気の流れを適切に制御するために、隙間なく水平に置く必要があります。 tooltip.BoilerCasing=耐圧性の高密な筐体です。ボイラー室の組み立てに使います。 diff --git a/src/main/resources/assets/mekanism/lang/pt_BR.lang b/src/main/resources/assets/mekanism/lang/pt_BR.lang index d98203a54..89d3a9ecf 100644 --- a/src/main/resources/assets/mekanism/lang/pt_BR.lang +++ b/src/main/resources/assets/mekanism/lang/pt_BR.lang @@ -11,15 +11,16 @@ item.EnergyTablet.name=Tablete de Energia item.SpeedUpgrade.name=Upgrade de Velocidade item.EnergyUpgrade.name=Upgrade de Energia item.FilterUpgrade.name=Upgrade de Filtro +item.MufflingUpgrade.name=Upgrade Silenciador item.GasUpgrade.name=Upgrade de Gás item.Robit.name=Robit item.AtomicDisassembler.name=Desintegrador Atômico item.ElectricBow.name=Arco Elétrico -item.EnrichedIron.name=Ferro Enriquecido -item.CompressedCarbon.name=Carbono Compactado -item.CompressedRedstone.name=Redstone Compactada -item.CompressedDiamond.name=Diamante Compressado -item.CompressedObsidian.name=Obsidiana Compressada +item.EnrichedIron.name=Ferro Enriquecido +item.CompressedCarbon.name=Carbono Prensado +item.CompressedRedstone.name=Redstone Prensada +item.CompressedDiamond.name=Diamante Prensado +item.CompressedObsidian.name=Obsidiana Prensada item.PortableTeleporter.name=Teletransportador Portátil item.TeleportationCore.name=Núcleo de Teletransporte item.Configurator.name=Configurador @@ -37,7 +38,7 @@ item.LithiumBucket.name=Balde de Lítio item.HeavyWaterBucket.name=Balde de Água Pesada item.FreeRunners.name=Corredores item.ArmoredJetpack.name=Jetpack Blindado -item.FilterCard.name=Cartão de Filtro +item.ConfigurationCard.name=Cartão de Configuração item.SeismicReader.name=Leitor Sísmico item.HDPEPellet.name=Pelota de PEAD item.HDPERod.name=Vara de PEAD @@ -47,6 +48,7 @@ item.Substrate.name=Substrato item.Flamethrower.name=Lança-Chamas item.GaugeDropper.name=Medidor Conta-Gotas item.BioFuel.name=Biocombustível +item.CraftingFormula.name=Fórmula //Control Circuits item.BasicControlCircuit.name=Circuito de Controle Básico @@ -55,7 +57,16 @@ item.EliteControlCircuit.name=Circuito de Controle Elite item.UltimateControlCircuit.name=Circuito de Controle Final //Gas Tank -tile.GasTank.GasTank.name=Tanque de Gás +tile.GasTankBasic.name=Tanque de Gás Básico +tile.GasTankAdvanced.name=Tanque de Gás Avançado +tile.GasTankElite.name=Tanque de Gás Elite +tile.GasTankUltimate.name=Tanque de Gás Final + +//Fluid Tank (part of MachineBlock2, naming handled differently) +tile.FluidTankBasic.name=Tanque Líquido Básico +tile.FluidTankAdvanced.name=Tanque Líquido Avançado +tile.FluidTankElite.name=Tanque Líquido Elite +tile.FluidTankUltimate.name=Tanque Líquido Final //Cardboard Box tile.CardboardBox.name=Caixa de Papelão @@ -73,19 +84,22 @@ tile.BasicBlock.RefinedObsidian.name=Obsidiana Refinada tile.BasicBlock.CharcoalBlock.name=Bloco de Carvão Vegetal tile.BasicBlock.RefinedGlowstone.name=Pedra Luminosa Refinada tile.BasicBlock.SteelBlock.name=Bloco de Aço -tile.BasicBlock.Bin.name=Silo +tile.BasicBlock.BinBasic.name=Silo Básico +tile.BasicBlock.BinAdvanced.name=Silo Avançado +tile.BasicBlock.BinElite.name=Silo de Elite +tile.BasicBlock.BinUltimate.name=Silo Final tile.BasicBlock.TeleporterFrame.name=Moldura do Teletransportador tile.BasicBlock.SteelCasing.name=Carcaça de Aço tile.BasicBlock.DynamicTank.name=Tanque Dinâmico -tile.BasicBlock.DynamicGlass.name=Vidro Dinâmico +tile.BasicBlock.StructuralGlass.name=Vidro Estrutural tile.BasicBlock.DynamicValve.name=Válvula Dinâmica tile.BasicBlock.CopperBlock.name=Bloco de Cobre tile.BasicBlock.TinBlock.name=Bloco de Estanho -tile.BasicBlock.SolarEvaporationController.name=Controlador de Salinização -tile.BasicBlock.SolarEvaporationValve.name=Válvula de Salinização +tile.BasicBlock.ThermalEvaporationController.name=Controlador de Evaporação Térmica +tile.BasicBlock.ThermalEvaporationValve.name=Válvula de Evaporação Térmica //Basic Block 2 (second ID iteration) -tile.BasicBlock2.SolarEvaporationBlock.name=Bloco de Salinização +tile.BasicBlock2.ThermalEvaporationBlock.name=Bloco de Evaporação Térmica tile.BasicBlock2.InductionCasing.name=Caixa de Indução tile.BasicBlock2.InductionPort.name=Porta de Indução tile.BasicBlock2.InductionCellBasic.name=Célula de Indução Básica @@ -96,10 +110,15 @@ tile.BasicBlock2.InductionProviderBasic.name=Provedor de Indução Básico tile.BasicBlock2.InductionProviderAdvanced.name=Provedor de Indução Avançado tile.BasicBlock2.InductionProviderElite.name=Provedor de Indução Elite tile.BasicBlock2.InductionProviderUltimate.name=Provedor de Indução Final +tile.BasicBlock2.SuperheatingElement.name=Elemento de Superaquecimento +tile.BasicBlock2.PressureDisperser.name=Dispersor de Pressão +tile.BasicBlock2.BoilerCasing.name=Carcaça da Caldeira +tile.BasicBlock2.BoilerValve.name=Válvula da Caldeira +tile.BasicBlock2.SecurityDesk.name=Mesa de Segurança //Machine Block tile.MachineBlock.EnrichmentChamber.name=Câmara de Enriquecimento -tile.MachineBlock.OsmiumCompressor.name=Compressor de Ósmio +tile.MachineBlock.OsmiumCompressor.name=Prensa de Ósmio tile.MachineBlock.Combiner.name=Combinador tile.MachineBlock.Crusher.name=Triturador tile.MachineBlock.Factory.name=Fábrica @@ -108,7 +127,7 @@ tile.MachineBlock.PurificationChamber.name=Câmara de Purificação tile.MachineBlock.EnergizedSmelter.name=Fundição Energizada tile.MachineBlock.Teleporter.name=Teletransportador tile.MachineBlock.ElectricPump.name=Bomba Elétrica -tile.MachineBlock.ElectricChest.name=Baú Elétrico +tile.MachineBlock.PersonalChest.name=Baú Pessoal tile.MachineBlock.Chargepad.name=Base de Recarga tile.MachineBlock.LogisticalSorter.name=Classificador Logístico tile.MachineBlock.DigitalMiner.name=Minerador Digital @@ -127,15 +146,18 @@ tile.MachineBlock2.ChemicalCrystallizer.name=Cristalizador Químico tile.MachineBlock2.SeismicVibrator.name=Vibrador Sísmico tile.MachineBlock2.PressurizedReactionChamber.name=Câmara de Reação Pressurizada tile.MachineBlock2.PressurizedReactionChamber.short.name=CRP -tile.MachineBlock2.PortableTank.name=Tanque Portátil tile.MachineBlock2.FluidicPlenisher.name=Abastecedor Fluídico tile.MachineBlock2.Laser.name=Laser tile.MachineBlock2.LaserAmplifier.name=Amplificador de Laser tile.MachineBlock2.LaserTractorBeam.name=Feixe Trator do Laser //Machine Block 3 (third ID iteration) +tile.MachineBlock3.QuantumEntangloporter.name=Transportador Quântico tile.MachineBlock3.SolarNeutronActivator.name=Ativador Neutrônico Solar tile.MachineBlock3.Oredictionificator.name=Oredictionificador +tile.MachineBlock3.ResistiveHeater.name=Aquecedor Resistivo +tile.MachineBlock3.FormulaicAssemblicator.name=Montador Formular +tile.MachineBlock3.FuelwoodHeater.name=Aquecedor Sólido //Plastic tile.PlasticBlock.name=Bloco de Plástico @@ -179,9 +201,13 @@ item.MultipartTransmitter.EliteLogisticalTransporter.name=Transportador Logísti item.MultipartTransmitter.UltimateLogisticalTransporter.name=Transportador Logístico Final item.MultipartTransmitter.RestrictiveTransporter.name=Transportador Restritivo item.MultipartTransmitter.DiversionTransporter.name=Transportador Redirecionador +item.MultipartTransmitter.BasicThermodynamicConductor.name=Conduíte Térmico Básico +item.MultipartTransmitter.AdvancedThermodynamicConductor.name=Conduíte Térmico Avançado +item.MultipartTransmitter.EliteThermodynamicConductor.name=Conduíte Térmico Elite +item.MultipartTransmitter.UltimateThermodynamicConductor.name=Conduíte Térmico Final //Glow Panel -item.GlowPanel.name=Painel de Pedra Luminosa +item.GlowPanel.name=Painel Luminoso //Energy Cubes tile.EnergyCubeBasic.name=Cubo de Energia Básico @@ -247,13 +273,13 @@ item.dirtySilverDust.name=Pó de Prata Sujo item.dirtyLeadDust.name=Pó de Chumbo Sujo //Ingots -item.obsidianIngot.name=Lingote de Obsidiana -item.osmiumIngot.name=Lingote de Ósmio -item.bronzeIngot.name=Lingote de Bronze -item.glowstoneIngot.name=Lingote de Glowstone -item.steelIngot.name=Lingote de Aço -item.copperIngot.name=Lingote de Cobre -item.tinIngot.name=Lingote de Estanho +item.obsidianIngot.name=Barra de Obsidiana +item.osmiumIngot.name=Barra de Ósmio +item.bronzeIngot.name=Barra de Bronze +item.glowstoneIngot.name=Barra de Pedra Luminosa +item.steelIngot.name=Barra de Aço +item.copperIngot.name=Barra de Cobre +item.tinIngot.name=Barra de Estanho //Gasses gas.hydrogen=Hidrogênio @@ -274,23 +300,23 @@ gas.tritium=Trítio gas.lithium=Lítio gas.fusionFuelDT=Combustível D-T -gas.iron=Lodo de Ferro -gas.gold=Lodo de Ouro -gas.osmium=Lodo de Ósmio -gas.copper=Lodo de Cobre -gas.tin=Lodo de Estanho -gas.silver=Lodo de Prata -gas.obsidian=Lodo de Obsidiana -gas.lead=Lodo de Chumbo +gas.iron=Polpa de Ferro +gas.gold=Polpa de Ouro +gas.osmium=Polpa de Ósmio +gas.copper=Polpa de Cobre +gas.tin=Polpa de Estanho +gas.silver=Polpa de Prata +gas.obsidian=Polpa de Obsidiana +gas.lead=Polpa de Chumbo -gas.cleanIron=Lodo Puro de Ferro -gas.cleanGold=Lodo Puro de Ouro -gas.cleanOsmium=Lodo Puro de Ósmio -gas.cleanCopper=Lodo Puro de Cobre -gas.cleanTin=Lodo Puro de Estanho -gas.cleanSilver=Lodo Puro de Prata -gas.cleanObsidian=Lodo Puro de Obsidiana -gas.cleanLead=Lodo Puro de Chumbo +gas.cleanIron=Polpa de Ferro Pura +gas.cleanGold=Polpa de Ouro Pura +gas.cleanOsmium=Polpa de Ósmio Pura +gas.cleanCopper=Polpa de Cobre Pura +gas.cleanTin=Polpa de Estanho Pura +gas.cleanSilver=Polpa de Prata Pura +gas.cleanObsidian=Polpa de Obsidiana Pura +gas.cleanLead=Polpa de Chumbo Pura //BC Fuel Gases gas.fuel=Combustível Vaporizado @@ -312,6 +338,7 @@ fluid.lithium=Lítio Líquido fluid.deuterium=Deutério Líquido fluid.tritium=Trítio Líquido fluid.fusionFuelDT=Combustível D-T Líquido +fluid.steam=Vapor Aquecido //OreGas names oregas.iron=Minério de Ferro @@ -347,13 +374,15 @@ update.outdated=Usando a versão desatualizada em um ou mais módulos //Upgrades upgrade.energy=Energia -upgrade.energy.desc=Aumenta a eficiência energética !ne a capacidade das máquinas. -upgrade.speed=Velocidade -upgrade.speed.desc=Aumenta a velocidade das máquinas. +upgrade.energy.desc=Aumenta a eficiência e capacidade energética. +upgrade.speed=Velocid. +upgrade.speed.desc=Aumenta a velocidade. upgrade.filter=Filtro -upgrade.filter.desc=Um filtro que separa !nágua pesada da água regular. +upgrade.filter.desc=Separa Água Pesada de água comum. upgrade.gas=Gás -upgrade.gas.desc=Aumenta a eficiência de !nmáquinas a gás. +upgrade.gas.desc=Aumenta a eficiência de uso de gás. +upgrade.muffling=Silenc. +upgrade.muffling.desc=Reduz ruídos causados por maquinários. //Key description text key.mode=Alternar Modo de Ferramenta @@ -373,14 +402,12 @@ mekanism.configgui.ctgy.client=Configurações do Cliente //Config Tooltips mekanism.configgui.ctgy.general.tooltip=Configurações gerais relativas a Mekanism e todos os seus módulos -mekanism.configgui.ctgy.machines.tooltip=Configurações relativas a habilitar e desabilitar de maquinário especifico +mekanism.configgui.ctgy.machines.tooltip=Configurações relativas a habilitar e desabilitar maquinário especifico mekanism.configgui.ctgy.tier.tooltip=Configurações relativas a níveis do Mekanism e seus valores correspondentes mekanism.configgui.ctgy.usage.tooltip=Configurações relativas a máquinas e seu consumo de energia mekanism.configgui.ctgy.client.tooltip=Configurações específicas do cliente sobre Mekanism e todos os seus módulos //Gui text -gui.removeSpeedUpgrade=Remover upgrade de velocidade -gui.removeEnergyUpgrade=Remover upgrade de energia gui.condensentrating=Condensentrando gui.decondensentrating=Descondensentrando gui.power=Energia @@ -395,7 +422,7 @@ gui.output=Saída gui.delete=Deletar gui.status=Estado gui.autoEject=Autoejetar -gui.itemstack=PilhaDeItems +gui.itemstack=ItemStack gui.oredict=OreDict gui.material=Material gui.out=Saída @@ -411,8 +438,8 @@ gui.input=Entrada gui.strictInput=Entrada Estrita gui.slots=Aberturas gui.state=Estado -gui.on=SIM -gui.off=NãO +gui.on=Lig +gui.off=Desl gui.filters=Filtros gui.filter=Filtro gui.idle=Inativo @@ -429,8 +456,8 @@ gui.finished=Terminou gui.well=Tudo está bem! gui.upgrade=Aprimorar gui.infinite=Infinito -gui.min=Min. -gui.max=Máx. +gui.min=Min +gui.max=Máx gui.delay=Atraso gui.noDelay=Sem atraso gui.fuel=Combustível @@ -439,6 +466,8 @@ gui.formed=Formado gui.incomplete=Incompleto gui.inductionMatrix=Matriz de Indução gui.matrixStats=Estatísticas da Matriz +gui.turbineStats=Estatísticas da Turbina +gui.boilerStats=Estatísticas da Caldeira gui.main=Principal gui.outputting=Emitindo gui.receiving=Recebendo @@ -448,6 +477,8 @@ gui.cells=células gui.providers=provedores gui.structure=Estrutura gui.dynamicTank=Tanque Dinâmico +gui.industrialTurbine=Turbina Industrial +gui.thermoelectricBoiler=Caldeira Termoelétrica gui.visuals=Aparência gui.noEject=Não Ejeta gui.undefined=Indefinido @@ -481,6 +512,50 @@ gui.redstoneOutputMode=Modo Redstone gui.entityDetection=Detecção de Entidades gui.moveUp=Subir gui.moveDown=Descer +gui.flowRate=Fluxo +gui.maxFlow=Fluxo máximo +gui.tankVolume=Volume do Tanque +gui.steamFlow=Fluxo de Vapor +gui.production=Produção +gui.blades=Hélices +gui.coils=Bobinas +gui.dispersers=Dispersores +gui.vents=Saídas de ventilação +gui.maxProduction=Produção máxima +gui.limiting=Limitando +gui.steamInput=Saída de Vapor +gui.capacity=Capacidade +gui.unit=Unidade +gui.temp=Temp +gui.usage=Uso +gui.transferred=Transferido +gui.dissipated=Dissipado +gui.boilRate=Taxa de ebulição +gui.maxBoil=Ebulição máxima +gui.maxWater=Água máxima +gui.maxSteam=Vapor máximo +gui.heatTransfer=Condução de calor +gui.superheaters=Superaquecedores +gui.boilCapacity=Capacidade de ebulição +gui.encodeFormula=Codificar Fórmula +gui.autoModeToggle=Ligar modo automático +gui.craftSingle=Montar um item +gui.craftAvailable=Montar itens disponíveis +gui.fillEmpty=Encher/Esvaziar grid +gui.noOwner=Sem dono +gui.securityOverride=Sobreposição de segurança +gui.remove=Remover +gui.trustedPlayers=Jogadores confiáveis +gui.publicMode=Modo Público +gui.privateMode=Mode Privado +gui.trustedMode=Modo de Confiança +gui.securityOffline=Segurança Offline +gui.noAccessDesc=Você não tem acesso +gui.overridden=Sobreposto +gui.nowOwn=Você é o novo dono +gui.frequency=Frequência +gui.mode=Modo +gui.burnRate=Taxa de queima gui.reactor.injectionRate=Taxa de Injeção @@ -493,12 +568,12 @@ gui.upgrades.effect=Efeito gui.chemicalInfuser.short=Infusor Quím. gui.chemicalDissolutionChamber.short=Câm. Dissolução Quím. -gui.solarEvaporationController.short=Ctrl. Evaporação Solar +gui.thermalEvaporationController.short=Controlador Ev. Térmica gui.dictionary.noKey=Sem Entrada. gui.configuration=Configuração -gui.config=Config +gui.config=Configurar gui.configuration.side=Configurar Lados gui.configuration.transporter=Configurar Transportador gui.configuration.strictInput=Entrada Restrita @@ -509,13 +584,14 @@ gui.factory.secondaryEnergy=Energia Secundária gui.factory.autoSort=Autoclassificar //Recipe types -gui.factory.Smelting=Fundindo -gui.factory.Enriching=Enriquecendo -gui.factory.Crushing=Triturando -gui.factory.Compressing=Comprimindo -gui.factory.Combining=Combinando -gui.factory.Purifying=Purificando -gui.factory.Injecting=Injetando +gui.factory.Smelting=||Fundição|| +gui.factory.Enriching=||Enriquecimento|| +gui.factory.Crushing=||Trituração|| +gui.factory.Compressing=||Prensagem|| +gui.factory.Combining=||Combinação|| +gui.factory.Purifying=||Purificação|| +gui.factory.Injecting=||Injeção|| +gui.factory.Infusing=||Infusão|| gui.seismicReader.short=Leitor Sís. gui.seismicReader.solids=Sólidos @@ -530,7 +606,7 @@ gui.oredictFilter.sameKey=Mesma entrada gui.modIDFilter=Filtro Mod ID gui.modIDFilter.noID=Nenhuma ID inserido -gui.modIDFilter.sameID=O mesmo ID +gui.modIDFilter.sameID=Mesmo ID gui.oredictionificatorFilter=Filtro Oredictionificador @@ -570,8 +646,6 @@ gui.logisticalSorter.default=Padrão gui.logisticalSorter.auto=Auto gui.logisticalSorter.roundRobin=Rodízio -gui.electricChest.editPassword=Editar Senha - gui.teleporter.notReady=Não Pronto gui.teleporter.ready=Pronto gui.teleporter.noFrame=Nenhum quadro @@ -581,6 +655,8 @@ gui.teleporter.needsEnergy=Requer Energia gui.teleporter.noAccess=Você não tem acesso a este teletransportador. gui.teleporter.noFreq=Sem frequência +gui.entangloporter.noAccess=Você não tem acesso a esse Transportador. + gui.digitalMinerConfig=Config Minerador Digital gui.digitalMiner.autoPull=Autopuxar @@ -588,17 +664,22 @@ gui.digitalMiner.replaceBlock=Substituir bloco gui.digitalMiner.reset=Reiniciar gui.digitalMiner.silkTouch=Toque Suave gui.digitalMiner.pull=Puxar -gui.digitalMiner.silk=Suave +gui.digitalMiner.silk=TqSv gui.digitalMiner.toMine=Minerar gui.digitalMiner.running=Rodando gui.digitalMiner.inverse=Modo Inverso gui.digitalMiner.requireReplace=Requer substituição -gui.digitalMiner.fuzzyMode=Modo Distorcido +gui.digitalMiner.fuzzyMode=Modo Impreciso gui.digitalMiner.missingBlock=Falta de Bloco //Recipe names -recipe.mekanismShaped=Em Formato de -recipe.mekanismShapeless=Sem Formato +recipe.mekanismShaped=Exata +recipe.mekanismShapeless=Disforme + +//Security types +security.public=Público +security.private=Privado +security.trusted=Confiável //Item and block tooltip text tooltip.configurator.configurate=Configurar @@ -609,7 +690,6 @@ tooltip.configurator.pumpReset=Reiniciar cálculo da Bomba Elétrica tooltip.configurator.toggleDiverter=Modo do Redirecionador alterado para tooltip.configurator.toggleMode=Comportamento de %s mudado para tooltip.configurator.viewMode=Comportamento de %s atual -tooltip.configurator.unauth=Este baú está trancado tooltip.configurator.noLink=Sem ligação tooltip.configurator.linkMsg=Ligado a tooltip.configurator.dim=dimensão @@ -627,12 +707,12 @@ tooltip.storedEnergy=Energia Armazenada tooltip.auth=Autenticado tooltip.locked=Trancado tooltip.recipeType=Tipo de Receita -tooltip.hold=Segurar +tooltip.hold=Segure tooltip.forDesc=para uma descrição tooltip.forDetails=para mais detalhes tooltip.fireMode=Modo Fogo tooltip.capacity=Capacidade -tooltip.pumpRate=Taxa de Bobeio +tooltip.pumpRate=Taxa de Bombeio tooltip.items=Itens tooltip.blocks=Blocos tooltip.universal=universal @@ -664,6 +744,11 @@ tooltip.insufficientFuel=Pouco Combustível tooltip.readyForReaction=Pronto para Reação tooltip.speed=Velocidade tooltip.and=e +tooltip.heat=Calor +tooltip.itemAmount=Quantidade do item +tooltip.invalid=Inválido +tooltip.encoded=Codificado +tooltip.ingredients=Ingredientes tooltip.portableTank.bucketMode=Modo Balde @@ -673,12 +758,9 @@ tooltip.disassembler.fast=rápido tooltip.disassembler.vein=veio tooltip.disassembler.off=desligado -tooltip.filterCard.got=Filtrar dados recuperados de %s -tooltip.filterCard.set=Filtrar dados injetados do tipo %s -tooltip.filterCard.unequal=Formatos de dados do filtro desiguais -tooltip.filterCard.logisticalSorter=Classificador Logístico -tooltip.filterCard.digitalMiner=Minerador Digital -tooltip.filterCard.oredictionificator=Oredictionificador +tooltip.configurationCard.got=Dados de configuração de %s salvos +tooltip.configurationCard.set=Dados de configuração de %s inseridos +tooltip.configurationCard.unequal=Dados desiguais tooltip.balloon=Balão @@ -694,59 +776,86 @@ tooltip.flamethrower.modeBump=Modo do Lança-Chamas mudado para tooltip.seismicReader.needsEnergy=Energia não suficiente para interpretar a vibração tooltip.seismicReader.noVibrations=Incapaz de descobrir quaisquer vibrações -tooltip.EnrichmentChamber=Uma máquina simples usada para enriquecer minérios !ntornando-os em duas porções de pó, como também !nrealizar muitas outras operações. -tooltip.OsmiumCompressor=Uma máquina um tanto avançada usada para comprimir !nósmio com pós de outros materiais parar convertê-los !nem lingotes. -tooltip.Combiner=Uma máquina usada para combinar pedregulho com pós de outros !nmateriais para convertê-los em minério. -tooltip.Crusher=Uma máquina usada para triturar lingotes em pó, !ncomo também fazer várias outtas operações. -tooltip.DigitalMiner=Uma automineradora altamente avançada com filtros que pode !nminerar qualquer bloco que ordenar !nnum raio de 32 blocos (máx.). -tooltip.BasicFactory=O menor nível da linha de Fábricas, que pode !nser usada para processar múltiplas operações de máquinas !nde uma vez. -tooltip.AdvancedFactory=O nível intermediário da linha de Fábricas, que pode !nser usada para processar múltiplas operações de máquinas !nde uma vez. -tooltip.EliteFactory=O maior nível da linha de Fábricas, que pode !nser usada para processar múltiplas operações de máquinas !nde uma vez. -tooltip.MetallurgicInfuser=Uma máquina usada para infundir vários materiais !nem (geralmente) materiais para criar ligas metálicas !ne outros compostos -tooltip.PurificationChamber=Uma máquina avançada capaz de processar !nminérios em aglomerados, servindo como o estágio !ninicial do processamento de minérios 300%. -tooltip.EnergizedSmelter=Uma máquina simples que serve como uma fornalha !nbaseada no Mekanism que usa energia. -tooltip.Teleporter=Uma máquina capaz de teletransportar jogadores pra vários !nlugares definidos por outros Teletransportadores. -tooltip.ElectricPump=Uma bomba capaz de bombear um lago de !nlava inteiro. -tooltip.ElectricChest=Um baú portátil de 54 slots que usa energia para se !ntrancar de outros por meios de proteção por senha. -tooltip.Chargepad=Uma plataforma recarregadora capaz de carregar qualquer item energizado de !nqualquer mod. -tooltip.LogisticalSorter=Uma máquina de triagem avançada com filtros que !npode autoejetar itens especificados para dentro e para fora de !ninventários adjacentes e Transportadores Logísticos. -tooltip.RotaryCondensentrator=Uma máquina capaz de converter gases em !nsuas formas líquidas e vice-versa. -tooltip.ChemicalInjectionChamber=Uma máquina elite capaz de processar !nminérios em estilhaços, servindo como estágio !ninicial do processamento de minérios a 400%. -tooltip.ElectrolyticSeparator=Uma máquina que usa o processo de !neletrólise para quebrar um !ngás em dois gases diferentes. -tooltip.PrecisionSawmill=Uma máquina usada para processar lenha e outros itens !nde madeira mais eficientemente, como também !nobter serragem. -tooltip.ChemicalDissolutionChamber=Uma máquina definitiva usada para !ndissolver quimicamente todas impurezas de um !nminério, deixando um lodo!nnão-processado atrás. -tooltip.ChemicalWasher=Uma máquina definitiva que limpa lodo !nnão-processado e o prepara para cristalização. -tooltip.ChemicalCrystallizer=Uma máquina definitiva usada para cristalizar lodo !nde minério purificado em cristais de minério. -tooltip.ChemicalOxidizer=Uma máquina capaz de oxidar !nmateriais sólidos em fase gasosa. -tooltip.ChemicalInfuser=Uma máquina que produz um novo tipo de !ngás por infusão de dois outros. -tooltip.SeismicVibrator=Uma máquina que usa vibrações sísmicas para !nfornecer informações sobre diversas camadas !ndo mundo. +tooltip.Bin=Um bloco usado para armazenat grandes quantidades de um item. +tooltip.TeleporterFrame=Moldura usada para a construção do Teletransportador. +tooltip.SteelCasing=Uma forte carcaça feita de aço usada como fundação para máquinas. +tooltip.DynamicTank=Moldura usada para construção do Tanque Dinâmico. +tooltip.StructuralGlass=Um vidro de material reforçado usado na construção de vários multiblocos. +tooltip.DynamicValve=Vávula usada para a construção do Tanque Dinâmico. +tooltip.ThermalEvaporationController=Bloco mestre da Torre de Evaporação. Apenas um desses deve ser usado na estrutura. +tooltip.ThermalEvaporationValve=Válvula usada na construção da Torre de Evaporação. +tooltip.ThermalEvaporationBlock=Moldura de cobre usada para a construção da Torre de Evaporação. +tooltip.InductionCasing=Bloco resistente à tensão usado na construção da Matriz Energética. +tooltip.InductionPort=Porta de energia usada na construção da Matriz Energética. +tooltip.InductionCell=Célula capaz de armazenar altas quantidades de energia. Usada no interior da Matriz Energética para expandir o armazenamento. +tooltip.InductionProvider=Complexo de resfriadores, condutores e transformadores capazes de expandir a taxa de transferência da Matriz Energética. +tooltip.SuperheatingElement=Um radiador modular e decentemente pergiso capaz de emitir altas quantidades de calor ao seu redor. +tooltip.PressureDisperser=Bloco usado para dispersar vapor em um multibloco. Deve formar um tubo horizontal sem deformações para controlar o fluxo de vapor. +tooltip.BoilerCasing=Um bloco resistente à pressão, usado na construção da Caldeira Termoelétrica. +tooltip.BoilerValve=Vávula usada na construção da Caldeira Termoelétrica. +tooltip.SecurityDesk=Central de segurança para todas suas máquinas. + +tooltip.EnrichmentChamber=Uma máquina simples usada para enriquecer minérios tornando-os em duas porções de pó, como também realizar muitas outras operações. +tooltip.OsmiumCompressor=Uma máquina um tanto avançada usada para prensar ósmio com pós de outros materiais parar convertê-los em barras. +tooltip.Combiner=Uma máquina usada para combinar pedregulho com pós de outros materiais para convertê-los em minério. +tooltip.Crusher=Uma máquina usada para triturar barras em pó, como também fazer várias outras operações. +tooltip.DigitalMiner=Uma automineradora altamente avançada com filtros que pode minerar qualquer bloco que ordenar num raio de 32 blocos (máx.). +tooltip.MetallurgicInfuser=Uma máquina usada para infundir vários materiais em (geralmente) materiais para criar ligas metálicas e outros compostos +tooltip.PurificationChamber=Uma máquina avançada capaz de processar minérios em aglomerados, servindo como o estágio inicial do processamento de minérios 300%. +tooltip.EnergizedSmelter=Uma máquina simples que serve como uma fornalha baseada no Mekanism que usa energia. +tooltip.Teleporter=Uma máquina capaz de teletransportar jogadores pra vários lugares definidos por outros Teletransportadores. +tooltip.ElectricPump=Uma bomba capaz de bombear um lago de lava inteiro. +tooltip.PersonalChest=Um baú de 54 lugares que pode ser aberto em qualquer lugar - mesmo a partir de seu próprio inventário. +tooltip.Chargepad=Uma plataforma recarregadora capaz de carregar qualquer item energizado de qualquer mod. +tooltip.LogisticalSorter=Uma máquina de triagem avançada com filtros que pode autoejetar itens especificados para dentro e para fora de inventários adjacentes e Transportadores Logísticos. +tooltip.RotaryCondensentrator=Uma máquina capaz de converter gases em suas formas líquidas e vice-versa. +tooltip.ChemicalInjectionChamber=Uma máquina elite capaz de processar minérios em estilhaços, servindo como estágio inicial do processamento de minérios a 400%. +tooltip.ElectrolyticSeparator=Uma máquina que usa o processo de eletrólise para quebrar um gás em dois gases diferentes. +tooltip.PrecisionSawmill=Uma máquina usada para processar lenha e outros itens de madeira mais eficientemente, como também obter serragem. +tooltip.ChemicalDissolutionChamber=Uma máquina definitiva usada para dissolver quimicamente todas impurezas de um minério, deixando uma polpa não processada para trás. +tooltip.ChemicalWasher=Uma máquina definitiva que limpa polpa não processada e a prepara para cristalização. +tooltip.ChemicalCrystallizer=Uma máquina definitiva usada para cristalizar polpa de minério purificada em cristais de minério. +tooltip.ChemicalOxidizer=Uma máquina capaz de oxidar materiais sólidos em fase gasosa. +tooltip.ChemicalInfuser=Uma máquina que produz um novo tipo de gás por infusão de dois outros. +tooltip.SeismicVibrator=Uma máquina que usa vibrações sísmicas para fornecer informações sobre diversas camadas do mundo. tooltip.PressurizedReactionChamber=Uma máquina avançada que processa uma mistura líquida, gasosa e sólida e cria um produto gasoso e um sólido. -tooltip.PortableTank=Um tanque portátil útil que lhe permite carregar 14 !nbaldes de fluido para onde !nquiser. Também serve como balde! -tooltip.FluidicPlenisher=Uma máquina que é capaz de criar lagos !ninteiros enchendo ravinas com fluidos. -tooltip.Laser=Uma forma avançada de transferência !nlinear de energia que utiliza um feixe extremamente !nalinhado de luz. -tooltip.LaserAmplifier=Um bloco que pode ser usado !npara fundir, redirecionar e ampliar raios laser, com !ncontroles finos sobre quando disparar. -tooltip.LaserTractorBeam=Um bloco usado para mesclar !ne redirecionar os raios laser. Recolhe itens de blocos !nque foram quebrados. -tooltip.SolarNeutronActivator=Uma máquina que direciona a radiação de !nnêutrons do sol para seu armazenamento interno, !npermitindo a criação lenta de vários isótopos. -tooltip.Oredictionificator=A máquina usada para unificar e traduzir vários itens !nblocos usando o Ore Dictionary. +tooltip.FluidTank=Um tanque portátil útil que lhe permite carregar 14 baldes de fluido para onde quiser. Também serve como balde! +tooltip.FluidicPlenisher=Uma máquina que é capaz de criar lagos inteiros enchendo ravinas com fluidos. +tooltip.Laser=Uma forma avançada de transferência linear de energia que utiliza um feixe extremamente alinhado de luz. +tooltip.LaserAmplifier=Um bloco que pode ser usado para fundir, redirecionar e ampliar raios laser, com controles finos sobre quando disparar. +tooltip.LaserTractorBeam=Um bloco usado para mesclar e redirecionar os raios laser. Recolhe itens de blocos que foram quebrados. +tooltip.SolarNeutronActivator=Uma máquina que direciona a radiação de nêutrons do sol para seu armazenamento interno, permitindo a criação lenta de vários isótopos. +tooltip.Oredictionificator=A máquina usada para unificar e traduzir vários itens blocos usando o Ore Dictionary. +tooltip.Factory=Uma máquina que serve de melhoria para máquinas comuns, permitindo várias operações simultâneas. +tooltip.ResistiveHeater=Um resistor condensado que converter energia diretamente em calor. +tooltip.FormulaicAssemblicator=Uma máquina que usa energia para rapidamente montar itens com Fórmulas. Também serve se mesa de montagem avançada. +tooltip.FuelwoodHeater=Uma máquina que produz calor através de combustíveis sólidos. +tooltip.QuantumEntangloporter=Uma máquina altamente avançada que transporta virtualmente qualquer recurso através de longas distâncias ou dimensões. -tooltip.HeatGenerator=Um gerador que usa o calor da lava ou !noutros recursos combustíveis para produzir energia. -tooltip.SolarGenerator=Um gerador que usa o poder do !nsol para produzir energia. -tooltip.GasGenerator=Um gerador que se aproveita dos gases !nmolecularmente variantes para produzir energia. -tooltip.BioGenerator=Um gerador que queima materiais orgânicos do !nmundo para produzir energia. -tooltip.AdvancedSolarGenerator=Um gerador que diretamente !nabsorve os raios solares com pequena perda !npara produzir energia -tooltip.WindTurbine=Um gerador que usa a força do vento !npara produzir energia, com maior eficiência !nem camadas mais altas. +tooltip.HeatGenerator=Um gerador que usa o calor da lava ou outros recursos combustíveis para produzir energia. +tooltip.SolarGenerator=Um gerador que usa o poder do sol para produzir energia. +tooltip.GasGenerator=Um gerador que se aproveita dos gases molecularmente variantes para produzir energia. +tooltip.BioGenerator=Um gerador que queima materiais orgânicos do mundo para produzir energia. +tooltip.AdvancedSolarGenerator=Um gerador que diretamente absorve os raios solares com pequena perda para produzir energia +tooltip.WindGenerator=Um gerador que usa a força do vento para produzir energia, com eficiência maior em locais mais altos. +tooltip.TurbineRotor=Haste de aço usada para segurar Hélices de Turbina na Turbina Industrial. +tooltip.RotationalComplex=Conector colocado na Hélice mais alta da Turbina Industrial para transportar energia cinética para Bobinas Eletromagnéticas. +tooltip.ElectromagneticCoil=Bloco que converte energia cinética em energia usável. Podem ser colocadas em qualquer forma acima do Complexo Rotacional, desde que todos se conectem. +tooltip.TurbineCasing=Moldura resistente à pressão usada na construção da Turbina Industrial. +tooltip.TurbineValve=Moldura de turbina que possui portas de transferência de energia e vapor. +tooltip.TurbineVent=Moldura de turbina com uma porta de ventilação. Deve ser colocada no mesmo nível ou no nível acima do Complexo Rotacional. -tooltip.ReactorGlass=Vidro Reforçado que pode ser utilizado !nno multibloco do Reator de Fusão. -tooltip.ReactorLaserFocusMatrix=Um painel do Vidro do Reator !nque é capaz de absorver energia óptica e !ndessa forma aquecendo o Reator de Fusão. -tooltip.ReactorController=O bloco controlador para a !nEstrutura Reator de Fusão toda. -tooltip.ReactorFrame=Armação reforçada que pode ser utilizada no !nmultibloco do Reator de Fusão. -tooltip.ReactorNeutronCapturePlate=Um bloco que pode ser usado para !nbloquear a radiação do Reator de Fusão e para !najudar na produção de Trítio. -tooltip.ReactorPort=Um bloco de armação reforçada que é capaz de !ngerenciar a transferência de gás e de energia !ndo Reator de Fusão. -tooltip.ReactorLogicAdapter=Um bloco que pode ser usado para !npermitir monitoramento básico de um reactor usando redstone. +tooltip.ReactorGlass=Vidro Reforçado que pode ser utilizado no multibloco do Reator de Fusão. +tooltip.ReactorLaserFocusMatrix=Um painel do Vidro do Reator que é capaz de absorver energia óptica e dessa forma aquecendo o Reator de Fusão. +tooltip.ReactorController=O bloco controlador para a Estrutura Reator de Fusão toda. +tooltip.ReactorFrame=Armação reforçada que pode ser utilizada no multibloco do Reator de Fusão. +tooltip.ReactorNeutronCapturePlate=Um bloco que pode ser usado para bloquear a radiação do Reator de Fusão e para ajudar na produção de Trítio. +tooltip.ReactorPort=Um bloco de armação reforçada que é capaz de gerenciar a transferência de gás e de energia do Reator de Fusão. +tooltip.ReactorLogicAdapter=Um bloco que pode ser usado para permitir monitoramento básico de um reactor usando redstone. -tooltip.OsmiumOre=Um mineral forte que pode ser achado !nem quase qualquer altura do mundo. !nÉ conhecido por ter muitos usos na !nconstrução de maquinaria. -tooltip.CopperOre=Um material condutivo e comum que !npode ser usado na produção de !nfios. Sua habilidade de suportar !naltas temperaturas também o faz importante !nem maquinaria avançada. -tooltip.TinOre=Um material condutivo leve, porém resistente, !nque é encontrado com um pouco menos de !nfrequência que Cobre. +tooltip.OsmiumOre=Um mineral forte que pode ser achado em quase qualquer altura do mundo. É conhecido por ter muitos usos na construção de maquinaria. +tooltip.CopperOre=Um material condutivo e comum que pode ser usado na produção de fios. Sua habilidade de suportar altas temperaturas também o faz importante em maquinaria avançada. +tooltip.TinOre=Um material condutivo leve, porém resistente, que é encontrado com um pouco menos de frequência que Cobre. //Side data sideData.None=Nada @@ -757,6 +866,10 @@ sideData.Gas=Gás sideData.Extra=Extra sideData.Infuse=Infusão sideData.Fluid=Fluido +sideData.Fill=Encher +sideData.Empty=Esvaziar +sideData.Charge=Carga +sideData.Discharge=Descarga //Redstone control control.disabled=Desativado @@ -775,17 +888,17 @@ fluidedit.empty=Vazio //Colors color.black=Preto -color.darkBlue=Azul Escuro -color.darkGreen=Verde Escuro -color.darkAqua=Ciano Escuro +color.darkBlue=Azul +color.darkGreen=Verde +color.darkAqua=Ciano color.darkRed=Vermelho Escuro -color.purple=Roxo +color.purple=Lilás color.orange=Laranja -color.grey=Cinza -color.darkGrey=Cinza Escuro -color.indigo=Índigo -color.brightGreen=Verde Claro -color.aqua=Ciano +color.grey=Cinza Claro +color.darkGrey=Cinza +color.indigo=Azul Claro +color.brightGreen=Verde Limão +color.aqua=Ciano Claro color.red=Vermelho color.pink=Magenta color.yellow=Amarelo @@ -795,18 +908,18 @@ color.brightPink=Rosa //Dyes dye.black=Preto -dye.darkBlue=Azul Escuro +dye.darkBlue=Azul dye.brown=Marrom -dye.darkGreen=Verde Escuro -dye.darkAqua=Ciano Escuro +dye.darkGreen=Verde +dye.darkAqua=Ciano dye.darkRed=Vermelho Escuro -dye.purple=Roxo +dye.purple=Lilás dye.orange=Laranja -dye.grey=Cinza +dye.grey=Cinza Claro dye.darkGrey=Cinza -dye.indigo=Índigo -dye.brightGreen=Verde Claro -dye.aqua=Ciano +dye.indigo=Azul Claro +dye.brightGreen=Verde Limão +dye.aqua=Ciano Claro dye.red=Vermelho dye.brightPink=Rosa dye.pink=Magenta @@ -821,7 +934,7 @@ reactor.ready.desc=Reactor atingiu o nível necessário de calor para ignição reactor.capacity=Capacidade de calor atendida reactor.capacity.desc=A capacidade de calor do núcleo do reator foi atendida reactor.depleted=Pouco Combustível -reactor.depleted.desc=O reactor tem combustível insuficiente para manter uma reação +reactor.depleted.desc=O reator tem combustível insuficiente para manter uma reação //Creative tab itemGroup.tabMekanism=Mekanism @@ -837,6 +950,7 @@ nei.rotaryCondensentrator=Condensentrador Rot. //Items item.SolarPanel.name=Painel Solar item.Hohlraum.name=Hohlraum +item.TurbineBlade.name=Hélice de Turbina //Generators tile.Generator.HeatGenerator.name=Gerador a Calor @@ -844,7 +958,13 @@ tile.Generator.SolarGenerator.name=Gerador a Energia Solar tile.Generator.GasGenerator.name=Gerador a Queima de Gás tile.Generator.BioGenerator.name=Biogerador tile.Generator.AdvancedSolarGenerator.name=Gerador a Energia Solar Avançado -tile.Generator.WindTurbine.name=Turbina Eólica +tile.Generator.WindGenerator.name=Gerador Eólico +tile.Generator.TurbineRotor.name=Rotor de Turbina +tile.Generator.RotationalComplex.name=Complexo Rotacional +tile.Generator.ElectromagneticCoil.name=Bobina Eletromagnética +tile.Generator.TurbineCasing.name=Moldura de Turbina +tile.Generator.TurbineValve.name=Válvula de Turbina +tile.Generator.TurbineVent.name=Respiradouro de Turbine tile.Reactor.ReactorController.name=Controlador do Reator tile.Reactor.ReactorFrame.name=Armação do Reator @@ -931,16 +1051,16 @@ item.BronzeHoe.name=Enxada de Bronze item.BronzeSword.name=Espada de Bronze //Glow -item.GlowstoneHelmet.name=Elmo de Glowstone -item.GlowstoneChestplate.name=Peitoral de Glowstone -item.GlowstoneLeggings.name=Calças de Glowstone -item.GlowstoneBoots.name=Botas de Glowstone -item.GlowstonePaxel.name=Pacachado de Glowstone -item.GlowstonePickaxe.name=Picareta de Glowstone -item.GlowstoneAxe.name=Machado de Glowstone -item.GlowstoneShovel.name=Pá de Glowstone -item.GlowstoneHoe.name=Enxada de Glowstone -item.GlowstoneSword.name=Espada de Glowstone +item.GlowstoneHelmet.name=Elmo de Pedra Luminosa +item.GlowstoneChestplate.name=Peitoral de Pedra Luminosa +item.GlowstoneLeggings.name=Calças de Pedra Luminosa +item.GlowstoneBoots.name=Botas de Pedra Luminosa +item.GlowstonePaxel.name=Pacachado de Pedra Luminosa +item.GlowstonePickaxe.name=Picareta de Pedra Luminosa +item.GlowstoneAxe.name=Machado de Pedra Luminosa +item.GlowstoneShovel.name=Pá de Pedra Luminosa +item.GlowstoneHoe.name=Enxada de Pedra Luminosa +item.GlowstoneSword.name=Espada de Pedra Luminosa //Steel item.SteelHelmet.name=Elmo de Aço diff --git a/src/main/resources/assets/mekanism/lang/pt_PT.lang b/src/main/resources/assets/mekanism/lang/pt_PT.lang new file mode 100644 index 000000000..97a5510d6 --- /dev/null +++ b/src/main/resources/assets/mekanism/lang/pt_PT.lang @@ -0,0 +1,1085 @@ +//********// +//MEKANISM// +//********// + +//Items +tile.ObsidianTNT.name=TNT de Obsidiana +item.EnrichedAlloy.name=Liga Enriquecida +item.ReinforcedAlloy.name=Liga Reforçada +item.AtomicAlloy.name=Liga Atómica +item.EnergyTablet.name=Tablete de Energia +item.SpeedUpgrade.name=Upgrade de Velocidade +item.EnergyUpgrade.name=Upgrade de Energia +item.FilterUpgrade.name=Upgrade de Filtro +item.MufflingUpgrade.name=Upgrade Silenciador +item.GasUpgrade.name=Upgrade de Gás +item.Robit.name=Robit +item.AtomicDisassembler.name=Desintegrador Atómico +item.ElectricBow.name=Arco Elétrico +item.EnrichedIron.name=Ferro Enriquecido +item.CompressedCarbon.name=Carbono Prensado +item.CompressedRedstone.name=Redstone Prensada +item.CompressedDiamond.name=Diamante Prensado +item.CompressedObsidian.name=Obsidiana Prensada +item.PortableTeleporter.name=Teletransportador Portátil +item.TeleportationCore.name=Núcleo de Teletransporte +item.Configurator.name=Configurador +item.NetworkReader.name=Leitor de Rede +item.WalkieTalkie.name=Rádio Transmissor +item.Jetpack.name=Jetpack +item.ScubaTank.name=Tanque de Mergulho +item.GasMask.name=Máscara de Gás +item.Dictionary.name=Dicionário +item.ElectrolyticCore.name=Núcleo Eletrolítico +item.Sawdust.name=Serragem +item.Salt.name=Sal +item.BrineBucket.name=Balde de Salmoura +item.LithiumBucket.name=Balde de Lítio +item.HeavyWaterBucket.name=Balde de Água Pesada +item.FreeRunners.name=Corredores +item.ArmoredJetpack.name=Jetpack Blindado +item.ConfigurationCard.name=Cartão de Configuração +item.SeismicReader.name=Leitor Sísmico +item.HDPEPellet.name=Pelota de PEAD +item.HDPERod.name=Vara de PEAD +item.HDPESheet.name=Folha de PEAD +item.PlaStick.name=Plástico +item.Substrate.name=Substrato +item.Flamethrower.name=Lança-Chamas +item.GaugeDropper.name=Medidor Conta-Gotas +item.BioFuel.name=Biocombustível +item.CraftingFormula.name=Fórmula + +//Control Circuits +item.BasicControlCircuit.name=Circuito de Controle Básico +item.AdvancedControlCircuit.name=Circuito de Controle Avançado +item.EliteControlCircuit.name=Circuito de Controle Elite +item.UltimateControlCircuit.name=Circuito de Controle Final + +//Gas Tank +tile.GasTankBasic.name=Tanque de Gás Básico +tile.GasTankAdvanced.name=Tanque de Gás Avançado +tile.GasTankElite.name=Tanque de Gás Elite +tile.GasTankUltimate.name=Tanque de Gás Final + +//Fluid Tank (part of MachineBlock2, naming handled differently) +tile.FluidTankBasic.name=Tanque Líquido Básico +tile.FluidTankAdvanced.name=Tanque Líquido Avançado +tile.FluidTankElite.name=Tanque Líquido Elite +tile.FluidTankUltimate.name=Tanque Líquido Final + +//Cardboard Box +tile.CardboardBox.name=Caixa de Papelão + +//Bounding Block +tile.BoundingBlock.name=Delimitador de Bloco + +//Salt +tile.SaltBlock.name=Bloco de Sal + +//Basic Block +tile.BasicBlock.OsmiumBlock.name=Bloco de Ósmio +tile.BasicBlock.BronzeBlock.name=Bloco de Bronze +tile.BasicBlock.RefinedObsidian.name=Obsidiana Refinada +tile.BasicBlock.CharcoalBlock.name=Bloco de Carvão Vegetal +tile.BasicBlock.RefinedGlowstone.name=Pedra Luminosa Refinada +tile.BasicBlock.SteelBlock.name=Bloco de Aço +tile.BasicBlock.BinBasic.name=Silo Básico +tile.BasicBlock.BinAdvanced.name=Silo Avançado +tile.BasicBlock.BinElite.name=Silo de Elite +tile.BasicBlock.BinUltimate.name=Silo Final +tile.BasicBlock.TeleporterFrame.name=Moldura do Teletransportador +tile.BasicBlock.SteelCasing.name=Carcaça de Aço +tile.BasicBlock.DynamicTank.name=Tanque Dinâmico +tile.BasicBlock.StructuralGlass.name=Vidro Estrutural +tile.BasicBlock.DynamicValve.name=Válvula Dinâmica +tile.BasicBlock.CopperBlock.name=Bloco de Cobre +tile.BasicBlock.TinBlock.name=Bloco de Estanho +tile.BasicBlock.ThermalEvaporationController.name=Controlador de Evaporação Térmica +tile.BasicBlock.ThermalEvaporationValve.name=Válvula de Evaporação Térmica + +//Basic Block 2 (second ID iteration) +tile.BasicBlock2.ThermalEvaporationBlock.name=Bloco de Evaporação Térmica +tile.BasicBlock2.InductionCasing.name=Caixa de Indução +tile.BasicBlock2.InductionPort.name=Porta de Indução +tile.BasicBlock2.InductionCellBasic.name=Célula de Indução Básica +tile.BasicBlock2.InductionCellAdvanced.name=Célula de Indução Avançada +tile.BasicBlock2.InductionCellElite.name=Célula de Indução Elite +tile.BasicBlock2.InductionCellUltimate.name=Célula de Indução Final +tile.BasicBlock2.InductionProviderBasic.name=Provedor de Indução Básico +tile.BasicBlock2.InductionProviderAdvanced.name=Provedor de Indução Avançado +tile.BasicBlock2.InductionProviderElite.name=Provedor de Indução Elite +tile.BasicBlock2.InductionProviderUltimate.name=Provedor de Indução Final +tile.BasicBlock2.SuperheatingElement.name=Elemento de Superaquecimento +tile.BasicBlock2.PressureDisperser.name=Dispersor de Pressão +tile.BasicBlock2.BoilerCasing.name=Carcaça da Caldeira +tile.BasicBlock2.BoilerValve.name=Válvula da Caldeira +tile.BasicBlock2.SecurityDesk.name=Mesa de Segurança + +//Machine Block +tile.MachineBlock.EnrichmentChamber.name=Câmara de Enriquecimento +tile.MachineBlock.OsmiumCompressor.name=Prensa de Ósmio +tile.MachineBlock.Combiner.name=Combinador +tile.MachineBlock.Crusher.name=Triturador +tile.MachineBlock.Factory.name=Fábrica +tile.MachineBlock.MetallurgicInfuser.name=Infusor Metalúrgico +tile.MachineBlock.PurificationChamber.name=Câmara de Purificação +tile.MachineBlock.EnergizedSmelter.name=Fundição Energizada +tile.MachineBlock.Teleporter.name=Teletransportador +tile.MachineBlock.ElectricPump.name=Bomba Elétrica +tile.MachineBlock.PersonalChest.name=Baú Pessoal +tile.MachineBlock.Chargepad.name=Base de Recarga +tile.MachineBlock.LogisticalSorter.name=Classificador Logístico +tile.MachineBlock.DigitalMiner.name=Minerador Digital + +//Machine Block 2 (second ID iteration) +tile.MachineBlock2.RotaryCondensentrator.name=Condensentrador Rotativo +tile.MachineBlock2.ChemicalOxidizer.name=Oxidador Químico +tile.MachineBlock2.ChemicalInfuser.name=Infusor Químico +tile.MachineBlock2.ChemicalCombiner.name=Combinador Químico +tile.MachineBlock2.ChemicalInjectionChamber.name=Câmara de Injeção Química +tile.MachineBlock2.ElectrolyticSeparator.name=Separador Eletrolítico +tile.MachineBlock2.PrecisionSawmill.name=Serraria de Precisão +tile.MachineBlock2.ChemicalDissolutionChamber.name=Câmara de Dissolução Química +tile.MachineBlock2.ChemicalWasher.name=Lavador Químico +tile.MachineBlock2.ChemicalCrystallizer.name=Cristalizador Químico +tile.MachineBlock2.SeismicVibrator.name=Vibrador Sísmico +tile.MachineBlock2.PressurizedReactionChamber.name=Câmara de Reação Pressurizada +tile.MachineBlock2.PressurizedReactionChamber.short.name=CRP +tile.MachineBlock2.FluidicPlenisher.name=Abastecedor Fluídico +tile.MachineBlock2.Laser.name=Laser +tile.MachineBlock2.LaserAmplifier.name=Amplificador de Laser +tile.MachineBlock2.LaserTractorBeam.name=Feixe Trator do Laser + +//Machine Block 3 (third ID iteration) +tile.MachineBlock3.QuantumEntangloporter.name=Transportador Quântico +tile.MachineBlock3.SolarNeutronActivator.name=Ativador Neutrônico Solar +tile.MachineBlock3.Oredictionificator.name=Oredictionificador +tile.MachineBlock3.ResistiveHeater.name=Aquecedor Resistivo +tile.MachineBlock3.FormulaicAssemblicator.name=Montador Formular +tile.MachineBlock3.FuelwoodHeater.name=Aquecedor Sólido + +//Plastic +tile.PlasticBlock.name=Bloco de Plástico +tile.SlickPlasticBlock.name=Bloco de Plástico Liso +tile.GlowPlasticBlock.name=Bloco de Plástico Fluorescente +tile.ReinforcedPlasticBlock.name=Bloco de Plástico Reforçado +tile.RoadPlasticBlock.name=Estrada de Plástico + +tile.PlasticFence.name=Barreira de Plástico + +//Infuse types +infuse.carbon=Carbono +infuse.tin=Estanho +infuse.diamond=Diamante +infuse.redstone=Redstone +infuse.fungi=Fungos +infuse.obsidian=Obsidiana +infuse.bio=Biomassa + +//Ore Block +tile.OreBlock.OsmiumOre.name=Minério de Ósmio +tile.OreBlock.CopperOre.name=Minério de Cobre +tile.OreBlock.TinOre.name=Minério de Estanho + +//Transmitters +item.MultipartTransmitter.BasicPressurizedTube.name=Tubo Pressurizado Básico +item.MultipartTransmitter.AdvancedPressurizedTube.name=Tubo Pressurizado Avançado +item.MultipartTransmitter.ElitePressurizedTube.name=Tubo Pressurizado Elite +item.MultipartTransmitter.UltimatePressurizedTube.name=Tubo Pressurizado Final +item.MultipartTransmitter.BasicUniversalCable.name=Cabo Universal Básico +item.MultipartTransmitter.AdvancedUniversalCable.name=Cabo Universal Avançado +item.MultipartTransmitter.EliteUniversalCable.name=Cabo Universal Elite +item.MultipartTransmitter.UltimateUniversalCable.name=Cabo Universal Final +item.MultipartTransmitter.BasicMechanicalPipe.name=Tubo Mecânico Básico +item.MultipartTransmitter.AdvancedMechanicalPipe.name=Tubo Mecânico Avançado +item.MultipartTransmitter.EliteMechanicalPipe.name=Tubo Mecânico Elite +item.MultipartTransmitter.UltimateMechanicalPipe.name=Tubo Mecânico Final +item.MultipartTransmitter.BasicLogisticalTransporter.name=Transportador Logístico Básico +item.MultipartTransmitter.AdvancedLogisticalTransporter.name=Transportador Logístico Avançado +item.MultipartTransmitter.EliteLogisticalTransporter.name=Transportador Logístico Elite +item.MultipartTransmitter.UltimateLogisticalTransporter.name=Transportador Logístico Final +item.MultipartTransmitter.RestrictiveTransporter.name=Transportador Restritivo +item.MultipartTransmitter.DiversionTransporter.name=Transportador Redirecionador +item.MultipartTransmitter.BasicThermodynamicConductor.name=Conduíte Térmico Básico +item.MultipartTransmitter.AdvancedThermodynamicConductor.name=Conduíte Térmico Avançado +item.MultipartTransmitter.EliteThermodynamicConductor.name=Conduíte Térmico Elite +item.MultipartTransmitter.UltimateThermodynamicConductor.name=Conduíte Térmico Final + +//Glow Panel +item.GlowPanel.name=Painel Luminoso + +//Energy Cubes +tile.EnergyCubeBasic.name=Cubo de Energia Básico +tile.EnergyCubeAdvanced.name=Cubo de Energia Avançado +tile.EnergyCubeElite.name=Cubo de Energia de Elite +tile.EnergyCubeUltimate.name=Cubo de Energia Final +tile.EnergyCubeCreative.name=Cubo de Energia Criativo + +//Factory Installers +item.basicFactoryInstaller.name=Instalador Fabril Básico +item.advancedFactoryInstaller.name=Instalador Fabril Avançado +item.eliteFactoryInstaller.name=Instalador Fabril Elite + +//Dust +item.ironDust.name=Pó de Ferro +item.goldDust.name=Pó de Ouro +item.osmiumDust.name=Pó de Ósmio +item.obsidianDust.name=Pó de Obsidiana +item.refinedobsidianDust.name=Pó de Obsidiana Refinado +item.diamondDust.name=Pó de Diamante +item.steelDust.name=Pó de Aço +item.copperDust.name=Pó de Cobre +item.tinDust.name=Pó de Estanho +item.silverDust.name=Pó de Prata +item.leadDust.name=Pó de Chumbo +item.sulfurDust.name=Pó de Enxofre +item.lithiumDust.name=Pó de Lítio + +//Clumps +item.ironClump.name=Aglomerado de Ferro +item.goldClump.name=Aglomerado de Ouro +item.osmiumClump.name=Aglomerado de Ósmio +item.copperClump.name=Aglomerado de Cobre +item.tinClump.name=Aglomerado de Estanho +item.silverClump.name=Aglomerado de Prata +item.leadClump.name=Aglomerado de Chumbo + +//Shards +item.ironShard.name=Estilhaço de Ferro +item.goldShard.name=Estilhaço de Ouro +item.osmiumShard.name=Estilhaço de Ósmio +item.copperShard.name=Estilhaço de Cobre +item.tinShard.name=Estilhaço de Estanho +item.silverShard.name=Estilhaço de Prata +item.leadShard.name=Estilhaço de Chumbo + +//Crystals +item.ironCrystal.name=Cristal de Ferro +item.goldCrystal.name=Cristal de Ouro +item.osmiumCrystal.name=Cristal de Ósmio +item.copperCrystal.name=Cristal de Cobre +item.tinCrystal.name=Cristal de Estanho +item.silverCrystal.name=Cristal de Prata +item.leadCrystal.name=Cristal de Chumbo + +//Dirty Dust +item.dirtyIronDust.name=Pó de Ferro Sujo +item.dirtyGoldDust.name=Pó de Ouro Sujo +item.dirtyOsmiumDust.name=Pó de Ósmio Sujo +item.dirtyCopperDust.name=Pó de Cobre Sujo +item.dirtyTinDust.name=Pó de Estanho Sujo +item.dirtySilverDust.name=Pó de Prata Sujo +item.dirtyLeadDust.name=Pó de Chumbo Sujo + +//Ingots +item.obsidianIngot.name=Barra de Obsidiana +item.osmiumIngot.name=Barra de Ósmio +item.bronzeIngot.name=Barra de Bronze +item.glowstoneIngot.name=Barra de Pedra Luminosa +item.steelIngot.name=Barra de Aço +item.copperIngot.name=Barra de Cobre +item.tinIngot.name=Barra de Estanho + +//Gasses +gas.hydrogen=Hidrogénio +gas.oxygen=Oxigénio +gas.water=Vapor de Água +gas.chlorine=Cloro +gas.sulfurDioxideGas=Dióxido de Enxofre +gas.sulfurTrioxideGas=Trióxido de Enxofre +gas.sulfuricAcid=Ácido Sulfúrico +gas.hydrogenChloride=Cloreto de Hidrogénio +gas.liquidOsmium=Ósmio Líquido +gas.liquidStone=Pedra Líquida +gas.ethene=Etileno +gas.sodium=Sódio +gas.brine=Salmoura Gasosa +gas.deuterium=Deutério +gas.tritium=Trítio +gas.lithium=Lítio +gas.fusionFuelDT=Combustível D-T + +gas.iron=Polpa de Ferro +gas.gold=Polpa de Ouro +gas.osmium=Polpa de Ósmio +gas.copper=Polpa de Cobre +gas.tin=Polpa de Estanho +gas.silver=Polpa de Prata +gas.obsidian=Polpa de Obsidiana +gas.lead=Polpa de Chumbo + +gas.cleanIron=Polpa de Ferro Pura +gas.cleanGold=Polpa de Ouro Pura +gas.cleanOsmium=Polpa de Ósmio Pura +gas.cleanCopper=Polpa de Cobre Pura +gas.cleanTin=Polpa de Estanho Pura +gas.cleanSilver=Polpa de Prata Pura +gas.cleanObsidian=Polpa de Obsidiana Pura +gas.cleanLead=Polpa de Chumbo Pura + +//BC Fuel Gases +gas.fuel=Combustível Vaporizado +gas.oil=Óleo Vaporizado + +//Fluids +fluid.hydrogen=Hidrogénio Líquido +fluid.oxygen=Oxigénio Líquido +fluid.chlorine=Cloro Líquido +fluid.sulfurDioxideGas=Dióxido de Enxofre Líquido +fluid.sulfurTrioxideGas=Trióxido de Enxofre Líquido +fluid.sulfuricAcid=Ácido Sulfúrico Líquido +fluid.hydrogenChloride=Cloreto de Hidrogénio Líquido +fluid.brine=Salmoura +fluid.ethene=Etileno Líquido +fluid.sodium=Sódio Líquido +fluid.heavyWater=Água Pesada +fluid.lithium=Lítio Líquido +fluid.deuterium=Deutério Líquido +fluid.tritium=Trítio Líquido +fluid.fusionFuelDT=Combustível D-T Líquido +fluid.steam=Vapor Aquecido + +//OreGas names +oregas.iron=Minério de Ferro +oregas.gold=Minério de Ouro +oregas.osmium=Minério de Ósmio +oregas.copper=Minério de Cobre +oregas.tin=Minério de Estanho +oregas.silver=Minério de Prata +oregas.obsidian=Minério de Obsidiana +oregas.lead=Minério de Chumbo + +//Tier names +tier.Basic=Básico +tier.Advanced=Avançado +tier.Elite=Elite +tier.Ultimate=Final +tier.Creative=Criativo + +//Transmission types +transmission.Energy=Energia +transmission.Fluids=Fluidos +transmission.Gases=Gases +transmission.Items=Itens +transmission.Heat=Calor + +//Update handler text +update.consider=Considere atualizar para a versão +update.newFeatures=Novas funcionalidades +update.visit=Visite +update.toDownload=para fazer o download +update.devBuild=Usando a versão de desenvolvedor +update.outdated=Usando a versão desatualizada em um ou mais módulos + +//Upgrades +upgrade.energy=Energia +upgrade.energy.desc=Aumenta a eficiência e capacidade energética. +upgrade.speed=Velocid. +upgrade.speed.desc=Aumenta a velocidade. +upgrade.filter=Filtro +upgrade.filter.desc=Separa Água Pesada de água comum. +upgrade.gas=Gás +upgrade.gas.desc=Aumenta a eficiência de uso de gás. +upgrade.muffling=Silenc. +upgrade.muffling.desc=Reduz ruídos causados por maquinários. + +//Key description text +key.mode=Alternar Modo de Ferramenta +key.armorMode=Alternar Modo de Armadura +key.voice=Voz + +//Entities +entity.Mekanism.Robit.name=Robit +entity.Mekanism.BabySkeleton.name=Esqueleto Bebé + +//Config Gui +mekanism.configgui.ctgy.general=Configurações Gerais do Mekanism +mekanism.configgui.ctgy.machines=Configurações das Máquinas +mekanism.configgui.ctgy.tier=Configurações dos Níveis +mekanism.configgui.ctgy.usage=Configurações de Uso +mekanism.configgui.ctgy.client=Configurações do Cliente + +//Config Tooltips +mekanism.configgui.ctgy.general.tooltip=Configurações gerais relativas a Mekanism e todos os seus módulos +mekanism.configgui.ctgy.machines.tooltip=Configurações relativas a habilitar e desabilitar maquinário especifico +mekanism.configgui.ctgy.tier.tooltip=Configurações relativas a níveis do Mekanism e seus valores correspondentes +mekanism.configgui.ctgy.usage.tooltip=Configurações relativas a máquinas e seu consumo de energia +mekanism.configgui.ctgy.client.tooltip=Configurações específicas do cliente sobre Mekanism e todos os seus módulos + +//Gui text +gui.condensentrating=Condensentrando +gui.decondensentrating=Descondensentrando +gui.power=Energia +gui.confirm=Confirmar +gui.open=Abrir +gui.allOK=Tudo OK +gui.none=Nenhum +gui.new=Novo +gui.edit=Editar +gui.save=Salvar +gui.output=Saída +gui.delete=Deletar +gui.status=Estado +gui.autoEject=Autoejetar +gui.itemstack=ItemStack +gui.oredict=OreDict +gui.material=Material +gui.out=Saída +gui.noFluid=Sem Fluidos +gui.empty=Vazio +gui.volume=Volume +gui.start=Iniciar +gui.stop=Parar +gui.config=Configurar +gui.teleport=Teletransporte +gui.eject=Ejetar +gui.input=Entrada +gui.strictInput=Entrada Estrita +gui.slots=Aberturas +gui.state=Estado +gui.on=Lig +gui.off=Desl +gui.filters=Filtros +gui.filter=Filtro +gui.idle=Inativo +gui.data=Dados +gui.newFilter=Novo Filtro +gui.energy=Energia +gui.gas=Gás +gui.dumping=Despejar +gui.dumping_excess=Despejar Excesso +gui.modID=Mod ID +gui.key=Chave +gui.id=ID +gui.finished=Terminou +gui.well=Tudo está bem! +gui.upgrade=Aprimorar +gui.infinite=Infinito +gui.min=Min +gui.max=Máx +gui.delay=Atraso +gui.noDelay=Sem atraso +gui.fuel=Combustível +gui.heat=Calor +gui.formed=Formado +gui.incomplete=Incompleto +gui.inductionMatrix=Matriz de Indução +gui.matrixStats=Estatísticas da Matriz +gui.turbineStats=Estatísticas da Turbina +gui.boilerStats=Estatísticas da Caldeira +gui.main=Principal +gui.outputting=Emitindo +gui.receiving=Recebendo +gui.dimensions=Dimensões +gui.constituents=Componentes +gui.cells=células +gui.providers=provedores +gui.structure=Estrutura +gui.dynamicTank=Tanque Dinâmico +gui.industrialTurbine=Turbina Industrial +gui.thermoelectricBoiler=Caldeira Termoelétrica +gui.visuals=Aparência +gui.noEject=Não Ejeta +gui.undefined=Indefinido +gui.owner=Proprietário +gui.public=Público +gui.private=Privado +gui.add=Adicionar +gui.set=Definir +gui.freq=Freq +gui.security=Segurança +gui.index=Índice +gui.producing=Produzindo +gui.maxOutput=Saída Máx. +gui.storing=Armazenando +gui.skyBlocked=Céu obstruído +gui.using=Usando +gui.needed=Necessário +gui.noRecipe=Sem receita +gui.conflict=Conflito +gui.height=Altura +gui.mult=Multi +gui.chunk=Chunk +gui.vibrating=Vibrando +gui.abundancy=Abundância +gui.nextItem=Próximo Item +gui.lastItem=Último Item +gui.oreDictCompat=Chave OreDict Compatível +gui.toggleCooling=Alternar Medições de Refrigeração +gui.coolingMeasurements=Resfriamento Ativo +gui.redstoneOutputMode=Modo Redstone +gui.entityDetection=Detecção de Entidades +gui.moveUp=Subir +gui.moveDown=Descer +gui.flowRate=Fluxo +gui.maxFlow=Fluxo máximo +gui.tankVolume=Volume do Tanque +gui.steamFlow=Fluxo de Vapor +gui.production=Produção +gui.blades=Hélices +gui.coils=Bobinas +gui.dispersers=Dispersores +gui.vents=Saídas de ventilação +gui.maxProduction=Produção máxima +gui.limiting=Limitando +gui.steamInput=Saída de Vapor +gui.capacity=Capacidade +gui.unit=Unidade +gui.temp=Temp +gui.usage=Uso +gui.transferred=Transferido +gui.dissipated=Dissipado +gui.boilRate=Taxa de ebulição +gui.maxBoil=Ebulição máxima +gui.maxWater=Água máxima +gui.maxSteam=Vapor máximo +gui.heatTransfer=Condução de calor +gui.superheaters=Superaquecedores +gui.boilCapacity=Capacidade de ebulição +gui.encodeFormula=Codificar Fórmula +gui.autoModeToggle=Ligar modo automático +gui.craftSingle=Montar um item +gui.craftAvailable=Montar itens disponíveis +gui.fillEmpty=Encher/Esvaziar grid +gui.noOwner=Sem dono +gui.securityOverride=Sobreposição de segurança +gui.remove=Remover +gui.trustedPlayers=Jogadores confiáveis +gui.publicMode=Modo Público +gui.privateMode=Mode Privado +gui.trustedMode=Modo de Confiança +gui.securityOffline=Segurança Offline +gui.noAccessDesc=Você não tem acesso +gui.overridden=Sobreposto +gui.nowOwn=Você é o novo dono +gui.frequency=Frequência +gui.mode=Modo +gui.burnRate=Taxa de queima + +gui.reactor.injectionRate=Taxa de Injeção + +gui.upgrades=Aprimorações +gui.upgrades.supported=Suportado +gui.upgrades.noSelection=Sem seleção +gui.upgrades.amount=Quantidade +gui.upgrades.max=Máx. +gui.upgrades.effect=Efeito + +gui.chemicalInfuser.short=Infusor Quím. +gui.chemicalDissolutionChamber.short=Câm. Dissolução Quím. +gui.thermalEvaporationController.short=Controlador Ev. Térmica + +gui.dictionary.noKey=Sem Entrada. + +gui.configuration=Configuração +gui.config=Configurar +gui.configuration.side=Configurar Lados +gui.configuration.transporter=Configurar Transportador +gui.configuration.strictInput=Entrada Restrita + +gui.rotaryCondensentrator.toggleOperation=Alternar Operação + +gui.factory.secondaryEnergy=Energia Secundária +gui.factory.autoSort=Autoclassificar + +//Recipe types +gui.factory.Smelting=||Fundição|| +gui.factory.Enriching=||Enriquecimento|| +gui.factory.Crushing=||Trituração|| +gui.factory.Compressing=||Prensagem|| +gui.factory.Combining=||Combinação|| +gui.factory.Purifying=||Purificação|| +gui.factory.Injecting=||Injeção|| +gui.factory.Infusing=||Infusão|| + +gui.seismicReader.short=Leitor Sís. +gui.seismicReader.solids=Sólidos +gui.seismicReader.fluids=Líquidos +gui.seismicReader.reading=Lendo + +gui.filterSelect.title=Criar Novo Filtro + +gui.oredictFilter=Filtro OreDict +gui.oredictFilter.noKey=Nenhuma entrada digitada +gui.oredictFilter.sameKey=Mesma entrada + +gui.modIDFilter=Filtro Mod ID +gui.modIDFilter.noID=Nenhuma ID inserido +gui.modIDFilter.sameID=Mesmo ID + +gui.oredictionificatorFilter=Filtro Oredictionificador + +gui.itemFilter=Filtro de Itens +gui.itemFilter.noItem=Sem Itens +gui.itemFilter.details=Detalhes da Pilha De Itens +gui.itemFilter.min=Min +gui.itemFilter.max=Máx + +gui.materialFilter=Filtrar Material +gui.materialFilter.details=Utilizando material de + +gui.portableTeleporter=Teletransportador Portátil + +gui.robit=Robit +gui.robit.smelting=Fundição Robit +gui.robit.inventory=Inventário Robit +gui.robit.crafting=Criação Robit +gui.robit.greeting=Olá, eu sou +gui.robit.toggleFollow=Alternar modo 'seguir' +gui.robit.rename=Renomear este Robit +gui.robit.teleport=Teletransportar para casa +gui.robit.togglePickup=Alternar modo 'coletar itens' +gui.robit.following=Seguindo +gui.robit.dropPickup=Coleta de itens +gui.robit.owner=Proprietário + +gui.password.setPassword=Definir senha +gui.password.enterPassword=Digitar senha +gui.password.fieldsEmpty=Campo(s) em branco +gui.password.notMatching=Não Corresponde +gui.password.identical=Idêntica +gui.password.invalid=Inválida +gui.password=Senha + +gui.logisticalSorter.default=Padrão +gui.logisticalSorter.auto=Auto +gui.logisticalSorter.roundRobin=Rodízio + +gui.teleporter.notReady=Não Pronto +gui.teleporter.ready=Pronto +gui.teleporter.noFrame=Nenhum quadro +gui.teleporter.noLink=Nenhuma conexão localizada +gui.teleporter.exceeds=Conexões > 2 +gui.teleporter.needsEnergy=Requer Energia +gui.teleporter.noAccess=Você não tem acesso a este teletransportador. +gui.teleporter.noFreq=Sem frequência + +gui.entangloporter.noAccess=Você não tem acesso a esse Transportador. + +gui.digitalMinerConfig=Config Minerador Digital + +gui.digitalMiner.autoPull=Autopuxar +gui.digitalMiner.replaceBlock=Substituir bloco +gui.digitalMiner.reset=Reiniciar +gui.digitalMiner.silkTouch=Toque Suave +gui.digitalMiner.pull=Puxar +gui.digitalMiner.silk=TqSv +gui.digitalMiner.toMine=Minerar +gui.digitalMiner.running=Rodando +gui.digitalMiner.inverse=Modo Inverso +gui.digitalMiner.requireReplace=Requer substituição +gui.digitalMiner.fuzzyMode=Modo Impreciso +gui.digitalMiner.missingBlock=Falta de Bloco + +//Recipe names +recipe.mekanismShaped=Exata +recipe.mekanismShapeless=Disforme + +//Security types +security.public=Público +security.private=Privado +security.trusted=Confiável + +//Item and block tooltip text +tooltip.configurator.configurate=Configurar +tooltip.configurator.empty=Vazio +tooltip.configurator.rotate=Girar +tooltip.configurator.wrench=Chave Inglesa +tooltip.configurator.pumpReset=Reiniciar cálculo da Bomba Elétrica +tooltip.configurator.toggleDiverter=Modo do Redirecionador alterado para +tooltip.configurator.toggleMode=Comportamento de %s mudado para +tooltip.configurator.viewMode=Comportamento de %s atual +tooltip.configurator.noLink=Sem ligação +tooltip.configurator.linkMsg=Ligado a +tooltip.configurator.dim=dimensão +tooltip.configurator.setLink=Defina ligação ao bloco de +tooltip.configurator.plenisherReset=Cálculo de Abastecedor Fluídico reiniciado +tooltip.configurator.inductionPortMode=Modo de transferência de Porta de Indução alternado para +tooltip.configurator.toggleColor=Cor mudada para +tooltip.configurator.viewColor=Cor atual + +tooltip.upgrade.speed=Velocidade +tooltip.upgrade.energy=Energia + +tooltip.inventory=Inventário +tooltip.storedEnergy=Energia Armazenada +tooltip.auth=Autenticado +tooltip.locked=Trancado +tooltip.recipeType=Tipo de Receita +tooltip.hold=Segure +tooltip.forDesc=para uma descrição +tooltip.forDetails=para mais detalhes +tooltip.fireMode=Modo Fogo +tooltip.capacity=Capacidade +tooltip.pumpRate=Taxa de Bombeio +tooltip.items=Itens +tooltip.blocks=Blocos +tooltip.universal=universal +tooltip.fluids=Fluídos +tooltip.gasses=Gases +tooltip.capableTrans=Capaz de transferir +tooltip.restrictiveDesc=Só é usado se não houver outros caminhos disponíveis +tooltip.diversionDesc=Controlável por redstone +tooltip.noGas=Sem gás armazenado +tooltip.stored=Armazenado +tooltip.channel=Canal +tooltip.mode=Modo +tooltip.efficiency=Eficiência +tooltip.modeToggle=Modo alternado para +tooltip.flowing=Corrente +tooltip.yes=sim +tooltip.no=não +tooltip.name=Nome +tooltip.blockData=Bloco de dados +tooltip.block=Bloco +tooltip.meta=Metadados +tooltip.tile=Telha +tooltip.keysFound=Chave(s) encontradas +tooltip.noKey=Sem chave +tooltip.hp=HP +tooltip.configureState=Configurar Estado +tooltip.outputRate=Taxa de Emissão +tooltip.insufficientFuel=Pouco Combustível +tooltip.readyForReaction=Pronto para Reação +tooltip.speed=Velocidade +tooltip.and=e +tooltip.heat=Calor +tooltip.itemAmount=Quantidade do item +tooltip.invalid=Inválido +tooltip.encoded=Codificado +tooltip.ingredients=Ingredientes + +tooltip.portableTank.bucketMode=Modo Balde + +tooltip.disassembler.normal=normal +tooltip.disassembler.slow=lento +tooltip.disassembler.fast=rápido +tooltip.disassembler.vein=veio +tooltip.disassembler.off=desligado + +tooltip.configurationCard.got=Dados de configuração de %s salvos +tooltip.configurationCard.set=Dados de configuração de %s inseridos +tooltip.configurationCard.unequal=Dados desiguais + +tooltip.balloon=Balão + +tooltip.jetpack.regular=Normal +tooltip.jetpack.hover=Pairar +tooltip.jetpack.disabled=Desativado + +tooltip.flamethrower.combat=Combate +tooltip.flamethrower.heat=Calor +tooltip.flamethrower.inferno=Inferno +tooltip.flamethrower.modeBump=Modo do Lança-Chamas mudado para + +tooltip.seismicReader.needsEnergy=Energia não suficiente para interpretar a vibração +tooltip.seismicReader.noVibrations=Incapaz de descobrir quaisquer vibrações + +tooltip.Bin=Um bloco usado para armazenat grandes quantidades de um item. +tooltip.TeleporterFrame=Moldura usada para a construção do Teletransportador. +tooltip.SteelCasing=Uma forte carcaça feita de aço usada como fundação para máquinas. +tooltip.DynamicTank=Moldura usada para construção do Tanque Dinâmico. +tooltip.StructuralGlass=Um vidro de material reforçado usado na construção de vários multiblocos. +tooltip.DynamicValve=Vávula usada para a construção do Tanque Dinâmico. +tooltip.ThermalEvaporationController=Bloco mestre da Torre de Evaporação. Apenas um desses deve ser usado na estrutura. +tooltip.ThermalEvaporationValve=Válvula usada na construção da Torre de Evaporação. +tooltip.ThermalEvaporationBlock=Moldura de cobre usada para a construção da Torre de Evaporação. +tooltip.InductionCasing=Bloco resistente à tensão usado na construção da Matriz Energética. +tooltip.InductionPort=Porta de energia usada na construção da Matriz Energética. +tooltip.InductionCell=Célula capaz de armazenar altas quantidades de energia. Usada no interior da Matriz Energética para expandir o armazenamento. +tooltip.InductionProvider=Complexo de resfriadores, condutores e transformadores capazes de expandir a taxa de transferência da Matriz Energética. +tooltip.SuperheatingElement=Um radiador modular e decentemente pergiso capaz de emitir altas quantidades de calor ao seu redor. +tooltip.PressureDisperser=Bloco usado para dispersar vapor em um multibloco. Deve formar um tubo horizontal sem deformações para controlar o fluxo de vapor. +tooltip.BoilerCasing=Um bloco resistente à pressão, usado na construção da Caldeira Termoelétrica. +tooltip.BoilerValve=Vávula usada na construção da Caldeira Termoelétrica. +tooltip.SecurityDesk=Central de segurança para todas suas máquinas. + +tooltip.EnrichmentChamber=Uma máquina simples usada para enriquecer minérios tornando-os em duas porções de pó, como também realizar muitas outras operações. +tooltip.OsmiumCompressor=Uma máquina um tanto avançada usada para prensar ósmio com pós de outros materiais parar convertê-los em barras. +tooltip.Combiner=Uma máquina usada para combinar pedregulho com pós de outros materiais para convertê-los em minério. +tooltip.Crusher=Uma máquina usada para triturar barras em pó, como também fazer várias outras operações. +tooltip.DigitalMiner=Uma automineradora altamente avançada com filtros que pode minerar qualquer bloco que ordenar num raio de 32 blocos (máx.). +tooltip.MetallurgicInfuser=Uma máquina usada para infundir vários materiais em (geralmente) materiais para criar ligas metálicas e outros compostos +tooltip.PurificationChamber=Uma máquina avançada capaz de processar minérios em aglomerados, servindo como o estágio inicial do processamento de minérios 300%. +tooltip.EnergizedSmelter=Uma máquina simples que serve como uma fornalha baseada no Mekanism que usa energia. +tooltip.Teleporter=Uma máquina capaz de teletransportar jogadores pra vários lugares definidos por outros Teletransportadores. +tooltip.ElectricPump=Uma bomba capaz de bombear um lago de lava inteiro. +tooltip.PersonalChest=Um baú de 54 lugares que pode ser aberto em qualquer lugar - mesmo a partir de seu próprio inventário. +tooltip.Chargepad=Uma plataforma recarregadora capaz de carregar qualquer item energizado de qualquer mod. +tooltip.LogisticalSorter=Uma máquina de triagem avançada com filtros que pode autoejetar itens especificados para dentro e para fora de inventários adjacentes e Transportadores Logísticos. +tooltip.RotaryCondensentrator=Uma máquina capaz de converter gases em suas formas líquidas e vice-versa. +tooltip.ChemicalInjectionChamber=Uma máquina elite capaz de processar minérios em estilhaços, servindo como estágio inicial do processamento de minérios a 400%. +tooltip.ElectrolyticSeparator=Uma máquina que usa o processo de eletrólise para quebrar um gás em dois gases diferentes. +tooltip.PrecisionSawmill=Uma máquina usada para processar lenha e outros itens de madeira mais eficientemente, como também obter serragem. +tooltip.ChemicalDissolutionChamber=Uma máquina definitiva usada para dissolver quimicamente todas impurezas de um minério, deixando uma polpa não processada para trás. +tooltip.ChemicalWasher=Uma máquina definitiva que limpa polpa não processada e a prepara para cristalização. +tooltip.ChemicalCrystallizer=Uma máquina definitiva usada para cristalizar polpa de minério purificada em cristais de minério. +tooltip.ChemicalOxidizer=Uma máquina capaz de oxidar materiais sólidos em fase gasosa. +tooltip.ChemicalInfuser=Uma máquina que produz um novo tipo de gás por infusão de dois outros. +tooltip.SeismicVibrator=Uma máquina que usa vibrações sísmicas para fornecer informações sobre diversas camadas do mundo. +tooltip.PressurizedReactionChamber=Uma máquina avançada que processa uma mistura líquida, gasosa e sólida e cria um produto gasoso e um sólido. +tooltip.FluidTank=Um tanque portátil útil que lhe permite carregar 14 baldes de fluido para onde quiser. Também serve como balde! +tooltip.FluidicPlenisher=Uma máquina que é capaz de criar lagos inteiros enchendo ravinas com fluidos. +tooltip.Laser=Uma forma avançada de transferência linear de energia que utiliza um feixe extremamente alinhado de luz. +tooltip.LaserAmplifier=Um bloco que pode ser usado para fundir, redirecionar e ampliar raios laser, com controles finos sobre quando disparar. +tooltip.LaserTractorBeam=Um bloco usado para mesclar e redirecionar os raios laser. Recolhe itens de blocos que foram quebrados. +tooltip.SolarNeutronActivator=Uma máquina que direciona a radiação de nêutrons do sol para seu armazenamento interno, permitindo a criação lenta de vários isótopos. +tooltip.Oredictionificator=A máquina usada para unificar e traduzir vários itens blocos usando o Ore Dictionary. +tooltip.Factory=Uma máquina que serve de melhoria para máquinas comuns, permitindo várias operações simultâneas. +tooltip.ResistiveHeater=Um resistor condensado que converter energia diretamente em calor. +tooltip.FormulaicAssemblicator=Uma máquina que usa energia para rapidamente montar itens com Fórmulas. Também serve se mesa de montagem avançada. +tooltip.FuelwoodHeater=Uma máquina que produz calor através de combustíveis sólidos. +tooltip.QuantumEntangloporter=Uma máquina altamente avançada que transporta virtualmente qualquer recurso através de longas distâncias ou dimensões. + +tooltip.HeatGenerator=Um gerador que usa o calor da lava ou outros recursos combustíveis para produzir energia. +tooltip.SolarGenerator=Um gerador que usa o poder do sol para produzir energia. +tooltip.GasGenerator=Um gerador que se aproveita dos gases molecularmente variantes para produzir energia. +tooltip.BioGenerator=Um gerador que queima materiais orgânicos do mundo para produzir energia. +tooltip.AdvancedSolarGenerator=Um gerador que diretamente absorve os raios solares com pequena perda para produzir energia +tooltip.WindGenerator=Um gerador que usa a força do vento para produzir energia, com eficiência maior em locais mais altos. +tooltip.TurbineRotor=Haste de aço usada para segurar Hélices de Turbina na Turbina Industrial. +tooltip.RotationalComplex=Conector colocado na Hélice mais alta da Turbina Industrial para transportar energia cinética para Bobinas Eletromagnéticas. +tooltip.ElectromagneticCoil=Bloco que converte energia cinética em energia usável. Podem ser colocadas em qualquer forma acima do Complexo Rotacional, desde que todos se conectem. +tooltip.TurbineCasing=Moldura resistente à pressão usada na construção da Turbina Industrial. +tooltip.TurbineValve=Moldura de turbina que possui portas de transferência de energia e vapor. +tooltip.TurbineVent=Moldura de turbina com uma porta de ventilação. Deve ser colocada no mesmo nível ou no nível acima do Complexo Rotacional. + +tooltip.ReactorGlass=Vidro Reforçado que pode ser utilizado no multibloco do Reator de Fusão. +tooltip.ReactorLaserFocusMatrix=Um painel do Vidro do Reator que é capaz de absorver energia óptica e dessa forma aquecendo o Reator de Fusão. +tooltip.ReactorController=O bloco controlador para a Estrutura Reator de Fusão toda. +tooltip.ReactorFrame=Armação reforçada que pode ser utilizada no multibloco do Reator de Fusão. +tooltip.ReactorNeutronCapturePlate=Um bloco que pode ser usado para bloquear a radiação do Reator de Fusão e para ajudar na produção de Trítio. +tooltip.ReactorPort=Um bloco de armação reforçada que é capaz de gerenciar a transferência de gás e de energia do Reator de Fusão. +tooltip.ReactorLogicAdapter=Um bloco que pode ser usado para permitir monitoramento básico de um reactor usando redstone. + +tooltip.OsmiumOre=Um mineral forte que pode ser achado em quase qualquer altura do mundo. É conhecido por ter muitos usos na construção de maquinaria. +tooltip.CopperOre=Um material condutivo e comum que pode ser usado na produção de fios. Sua habilidade de suportar altas temperaturas também o faz importante em maquinaria avançada. +tooltip.TinOre=Um material condutivo leve, porém resistente, que é encontrado com um pouco menos de frequência que Cobre. + +//Side data +sideData.None=Nada +sideData.Input=Entrada +sideData.Output=Saída +sideData.Energy=Energia +sideData.Gas=Gás +sideData.Extra=Extra +sideData.Infuse=Infusão +sideData.Fluid=Fluido +sideData.Fill=Encher +sideData.Empty=Esvaziar +sideData.Charge=Carga +sideData.Discharge=Descarga + +//Redstone control +control.disabled=Desativado +control.high=Alto +control.low=Fraco +control.pulse=Pulso +control.disabled.desc=Sempre ativo +control.high.desc=Ativo com sinal +control.low.desc=Ativo sem sinal +control.pulse.desc=Apenas ativo mediante ao primeiro sinal + +//Container edit modes +fluidedit.both=Ambos +fluidedit.fill=Encher +fluidedit.empty=Vazio + +//Colors +color.black=Preto +color.darkBlue=Azul +color.darkGreen=Verde +color.darkAqua=Ciano +color.darkRed=Vermelho Escuro +color.purple=Lilás +color.orange=Laranja +color.grey=Cinza Claro +color.darkGrey=Cinza +color.indigo=Azul Claro +color.brightGreen=Verde Limão +color.aqua=Ciano Claro +color.red=Vermelho +color.pink=Magenta +color.yellow=Amarelo +color.white=Branco +color.brown=Marrom +color.brightPink=Rosa + +//Dyes +dye.black=Preto +dye.darkBlue=Azul +dye.brown=Marrom +dye.darkGreen=Verde +dye.darkAqua=Ciano +dye.darkRed=Vermelho Escuro +dye.purple=Lilás +dye.orange=Laranja +dye.grey=Cinza Claro +dye.darkGrey=Cinza +dye.indigo=Azul Claro +dye.brightGreen=Verde Limão +dye.aqua=Ciano Claro +dye.red=Vermelho +dye.brightPink=Rosa +dye.pink=Magenta +dye.yellow=Amarelo +dye.white=Branco + +//Reactor Logic modes +reactor.disabled=Desativado +reactor.disabled.desc=Não irá emitir sinal de redstone +reactor.ready=Pronto para ignição +reactor.ready.desc=Reactor atingiu o nível necessário de calor para ignição +reactor.capacity=Capacidade de calor atendida +reactor.capacity.desc=A capacidade de calor do núcleo do reator foi atendida +reactor.depleted=Pouco Combustível +reactor.depleted.desc=O reator tem combustível insuficiente para manter uma reação + +//Creative tab +itemGroup.tabMekanism=Mekanism + +//NEI stuff +nei.chemicalInjectionChamber=Câm. Injeção Quím. +nei.rotaryCondensentrator=Condensentrador Rot. + +//**********// +//GENERATORS// +//**********// + +//Items +item.SolarPanel.name=Painel Solar +item.Hohlraum.name=Hohlraum +item.TurbineBlade.name=Hélice de Turbina + +//Generators +tile.Generator.HeatGenerator.name=Gerador a Calor +tile.Generator.SolarGenerator.name=Gerador a Energia Solar +tile.Generator.GasGenerator.name=Gerador a Queima de Gás +tile.Generator.BioGenerator.name=Biogerador +tile.Generator.AdvancedSolarGenerator.name=Gerador a Energia Solar Avançado +tile.Generator.WindGenerator.name=Gerador Eólico +tile.Generator.TurbineRotor.name=Rotor de Turbina +tile.Generator.RotationalComplex.name=Complexo Rotacional +tile.Generator.ElectromagneticCoil.name=Bobina Eletromagnética +tile.Generator.TurbineCasing.name=Moldura de Turbina +tile.Generator.TurbineValve.name=Válvula de Turbina +tile.Generator.TurbineVent.name=Respiradouro de Turbine + +tile.Reactor.ReactorController.name=Controlador do Reator +tile.Reactor.ReactorFrame.name=Armação do Reator +tile.Reactor.ReactorNeutronCapturePlate.name=Placa de Captura de Nêutrons +tile.Reactor.ReactorPort.name=Porta do Reator +tile.Reactor.ReactorLogicAdapter.name=Adaptador Lógica do Reator + +tile.ReactorGlass.ReactorGlass.name=Vidro do Reator +tile.ReactorGlass.ReactorLaserFocusMatrix.name=Matriz Focal do Laser + +//Gui text +gui.heatGenerator.fuel=Combustível +gui.solarGenerator.sun=Sol +gui.bioGenerator.bioFuel=Biocombustível +gui.electrolyticSeparator.dump=Despejar + +gui.passive=Refrigerado a Ar +gui.active=Refrigerado a Água + +gui.minInject=Taxa Min. de Injeção +gui.ignition=Temp de Ignição +gui.maxPlasma=Temp. Máx. do Plasma +gui.maxCasing=Temp. Máx. da Carcaça +gui.passiveGeneration=Geração Passiva +gui.steamProduction=Produção de Vapor + +//*****// +//TOOLS// +//*****// + +//Vanilla Paxels +item.WoodPaxel.name=Pacachado de Madeira +item.StonePaxel.name=Pacachado de Pedra +item.IronPaxel.name=Pacachado de Ferro +item.DiamondPaxel.name=Pacachado de Diamante +item.GoldPaxel.name=Pacachado de Ouro + +//Obsidian +item.ObsidianHelmet.name=Capacete de Obsidiana +item.ObsidianChestplate.name=Peitoral de Obsidiana +item.ObsidianLeggings.name=Perneiras de Obsidiana +item.ObsidianBoots.name=Botas de Obsidiana +item.ObsidianPaxel.name=Pacachado de Obsidiana +item.ObsidianPickaxe.name=Picareta de Obsidiana +item.ObsidianAxe.name=Machado de Obsidiana +item.ObsidianShovel.name=Pá de Obsidiana +item.ObsidianHoe.name=Enxada de Obsidiana +item.ObsidianSword.name=Espada de Obsidiana + +//Lapis Lazuli +item.LazuliHelmet.name=Capacete de Lápis-Lazúli +item.LazuliChestplate.name=Peitoral de Lápis-Lazúli +item.LazuliLeggings.name=Perneiras de Lápis-Lazúli +item.LazuliBoots.name=Botas de Lápis-Lazúli +item.LazuliPaxel.name=Pacachado de Lápis-Lazúli +item.LazuliPickaxe.name=Picareta de Lápis-Lazúli +item.LazuliAxe.name=Machado de Lápis-Lazúli +item.LazuliShovel.name=Pá de Lápis-Lazúli +item.LazuliHoe.name=Enxada de Lápis-Lazúli +item.LazuliSword.name=Espada de Lápis-Lazúli + +//Osmium +item.OsmiumHelmet.name=Capacete de Ósmio +item.OsmiumChestplate.name=Peitoral de Ósmio +item.OsmiumLeggings.name=Perneiras de Ósmio +item.OsmiumBoots.name=Botas de Ósmio +item.OsmiumPaxel.name=Pacachado de Ósmio +item.OsmiumPickaxe.name=Picareta de Ósmio +item.OsmiumAxe.name=Machado de Ósmio +item.OsmiumShovel.name=Pá de Ósmio +item.OsmiumHoe.name=Enxada de Ósmio +item.OsmiumSword.name=Espada de Ósmio + +//Bronze +item.BronzeHelmet.name=Capacete de Bronze +item.BronzeChestplate.name=Peitoral de Bronze +item.BronzeLeggings.name=Perneiras de Bronze +item.BronzeBoots.name=Botas de Bronze +item.BronzePaxel.name=Pacachado de Bronze +item.BronzePickaxe.name=Picareta de Bronze +item.BronzeAxe.name=Machado de Bronze +item.BronzeShovel.name=Pá de Bronze +item.BronzeHoe.name=Enxada de Bronze +item.BronzeSword.name=Espada de Bronze + +//Glow +item.GlowstoneHelmet.name=Capacete de Pedra Luminosa +item.GlowstoneChestplate.name=Peitoral de Pedra Luminosa +item.GlowstoneLeggings.name=Perneiras de Pedra Luminosa +item.GlowstoneBoots.name=Botas de Pedra Luminosa +item.GlowstonePaxel.name=Pacachado de Pedra Luminosa +item.GlowstonePickaxe.name=Picareta de Pedra Luminosa +item.GlowstoneAxe.name=Machado de Pedra Luminosa +item.GlowstoneShovel.name=Pá de Pedra Luminosa +item.GlowstoneHoe.name=Enxada de Pedra Luminosa +item.GlowstoneSword.name=Espada de Pedra Luminosa + +//Steel +item.SteelHelmet.name=Capacete de Aço +item.SteelChestplate.name=Peitoral de Aço +item.SteelLeggings.name=Perneiras de Aço +item.SteelBoots.name=Botas de Aço +item.SteelPaxel.name=Pacachado de Aço +item.SteelPickaxe.name=Picareta de Aço +item.SteelAxe.name=Machado de Aço +item.SteelShovel.name=Pá de Aço +item.SteelHoe.name=Enxada de Aço +item.SteelSword.name=Espada de Aço + +//Config Gui +mekanism.configgui.ctgy.tools.general=Geral +mekanism.configgui.ctgy.tools.armor=Balanceamento de Armadura +mekanism.configgui.ctgy.tools.tools=Balanceamento de Ferramentas + +//Config Tooltips +mekanism.configgui.ctgy.tools.general.tooltip=Definições relativas a configuração geral do MekanismTools +mekanism.configgui.ctgy.tools.armor.tooltip=Configurações relativas aos valores de proteção e balanço de armaduras do MekanismTools +mekanism.configgui.ctgy.tools.tools.tooltip=Configurações relativas aos valores de eficiência e balanço de ferramentas do MekanismTools diff --git a/src/main/resources/assets/mekanism/render/DigitalMiner.png b/src/main/resources/assets/mekanism/render/DigitalMiner.png index b9eefd990..6585d6284 100644 Binary files a/src/main/resources/assets/mekanism/render/DigitalMiner.png and b/src/main/resources/assets/mekanism/render/DigitalMiner.png differ diff --git a/src/main/resources/assets/mekanism/render/DigitalMinerOn.png b/src/main/resources/assets/mekanism/render/DigitalMinerOn.png deleted file mode 100644 index 5c5187413..000000000 Binary files a/src/main/resources/assets/mekanism/render/DigitalMinerOn.png and /dev/null differ diff --git a/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOff.png b/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOff.png index 066761bcb..9bca26686 100644 Binary files a/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOff.png and b/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOff.png differ diff --git a/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOn.png b/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOn.png index a9cb86786..bd2186b7d 100644 Binary files a/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOn.png and b/src/main/resources/assets/mekanism/render/DigitalMiner_OverlayOn.png differ diff --git a/src/main/resources/assets/mekanism/sounds.json b/src/main/resources/assets/mekanism/sounds.json index 88b8ee63a..3a6e2e3e9 100644 --- a/src/main/resources/assets/mekanism/sounds.json +++ b/src/main/resources/assets/mekanism/sounds.json @@ -49,7 +49,7 @@ "tile.gen.gas": {"category": "block", "sounds": [{"name": "GasGenerator", "stream": false}]}, "tile.gen.heat": {"category": "block", "sounds": [{"name": "HeatGenerator", "stream": false}]}, "tile.gen.solar": {"category": "block", "sounds": [{"name": "SolarGenerator", "stream": false}]}, - "tile.gen.wind": {"category": "block", "sounds": [{"name": "WindTurbine", "stream": false}]}, + "tile.gen.wind": {"category": "weather", "sounds": [{"name": "WindTurbine", "stream": false}]}, "item.flamethrower.idle": {"category": "player", "sounds": [{"name": "FlamethrowerIdle", "stream": false}]}, "item.flamethrower.active": {"category": "player", "sounds": [{"name": "FlamethrowerActive", "stream": false}]}, diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPort-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPort-ctm.png deleted file mode 100644 index 128faeb3e..000000000 Binary files a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPort-ctm.png and /dev/null differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPort.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPort.png deleted file mode 100644 index 373b8c12a..000000000 Binary files a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPort.png and /dev/null differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortInput-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortInput-ctm.png new file mode 100644 index 000000000..081cb28e5 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortInput-ctm.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortInput.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortInput.png new file mode 100644 index 000000000..3e38845f3 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortInput.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortOutput-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortOutput-ctm.png new file mode 100644 index 000000000..d8e53759a Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortOutput-ctm.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortOutput.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortOutput.png new file mode 100644 index 000000000..9919066e3 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/ctm/ReactorPortOutput.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/SaturatingCondenser-ctm.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/SaturatingCondenser-ctm.png new file mode 100644 index 000000000..c1823f283 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/ctm/SaturatingCondenser-ctm.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/ctm/SaturatingCondenser.png b/src/main/resources/assets/mekanism/textures/blocks/ctm/SaturatingCondenser.png new file mode 100644 index 000000000..20c6ae1f4 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/ctm/SaturatingCondenser.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporter.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporter.png new file mode 100644 index 000000000..f5303866a Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporter.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporterHorizontal.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporterHorizontal.png new file mode 100644 index 000000000..9b00b786f Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporterHorizontal.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporterVertical.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporterVertical.png new file mode 100644 index 000000000..8e9d68151 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/DiversionTransporterVertical.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterAdvanced.png new file mode 100644 index 000000000..a1b6d79f8 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterBasic.png new file mode 100644 index 000000000..525e2baa9 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterElite.png new file mode 100644 index 000000000..056e14f9b Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterGlass.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterGlass.png new file mode 100644 index 000000000..7d24d36fb Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterGlass.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterGlassColored.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterGlassColored.png new file mode 100644 index 000000000..d9495a01e Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterGlassColored.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalAdvanced.png new file mode 100644 index 000000000..4eb2d1685 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalBasic.png new file mode 100644 index 000000000..e3a411820 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalElite.png new file mode 100644 index 000000000..e4cf32ee6 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalGlass.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalGlass.png new file mode 100644 index 000000000..c34ea126b Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalGlass.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalGlassColored.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalGlassColored.png new file mode 100644 index 000000000..9a13e4e5f Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalGlassColored.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalUltimate.png new file mode 100644 index 000000000..d5defca3e Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterHorizontalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterUltimate.png new file mode 100644 index 000000000..577806f9d Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalAdvanced.png new file mode 100644 index 000000000..158c1e1fe Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalBasic.png new file mode 100644 index 000000000..45bdd474e Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalElite.png new file mode 100644 index 000000000..72e69e959 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalGlass.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalGlass.png new file mode 100644 index 000000000..90ea0180b Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalGlass.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalGlassColored.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalGlassColored.png new file mode 100644 index 000000000..0a7d53512 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalGlassColored.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalUltimate.png new file mode 100644 index 000000000..a38ca108f Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/LogisticalTransporterVerticalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeAdvanced.png new file mode 100644 index 000000000..c7e110d61 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeBasic.png new file mode 100644 index 000000000..384adb41b Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeElite.png new file mode 100644 index 000000000..dc08dc89e Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalAdvanced.png new file mode 100644 index 000000000..9a19cf524 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalBasic.png new file mode 100644 index 000000000..54d46e7ca Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalElite.png new file mode 100644 index 000000000..329067275 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalUltimate.png new file mode 100644 index 000000000..ffe6f80ea Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeHorizontalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeUltimate.png new file mode 100644 index 000000000..453b778af Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalAdvanced.png new file mode 100644 index 000000000..cf7227df7 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalBasic.png new file mode 100644 index 000000000..81b9b7ef6 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalElite.png new file mode 100644 index 000000000..1a7c7e2d7 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalUltimate.png new file mode 100644 index 000000000..692a5a51e Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/MechanicalPipeVerticalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeAdvanced.png new file mode 100644 index 000000000..45e7a8195 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeBasic.png new file mode 100644 index 000000000..2b281deb0 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeElite.png new file mode 100644 index 000000000..4ef95050c Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalAdvanced.png new file mode 100644 index 000000000..e94b3eaa6 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalBasic.png new file mode 100644 index 000000000..a0fed322f Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalElite.png new file mode 100644 index 000000000..fac091167 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalUltimate.png new file mode 100644 index 000000000..f4f21779b Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeHorizontalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeUltimate.png new file mode 100644 index 000000000..7508a7f7a Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalAdvanced.png new file mode 100644 index 000000000..44497054a Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalBasic.png new file mode 100644 index 000000000..c24f4709b Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalElite.png new file mode 100644 index 000000000..ffde48b01 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalUltimate.png new file mode 100644 index 000000000..5cd7e1c8f Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/PressurizedTubeVerticalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporter.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporter.png new file mode 100644 index 000000000..496338a45 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporter.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporterHorizontal.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporterHorizontal.png new file mode 100644 index 000000000..d22f2e4b1 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporterHorizontal.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporterVertical.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporterVertical.png new file mode 100644 index 000000000..a611001ca Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/RestrictiveTransporterVertical.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorAdvanced.png new file mode 100644 index 000000000..892815da8 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorBasic.png new file mode 100644 index 000000000..9d9437527 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorElite.png new file mode 100644 index 000000000..ca3d14994 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalAdvanced.png new file mode 100644 index 000000000..362814616 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalBasic.png new file mode 100644 index 000000000..0a3e5b40c Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalElite.png new file mode 100644 index 000000000..06e49cee6 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalUltimate.png new file mode 100644 index 000000000..f1835ca97 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorHorizontalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorUltimate.png new file mode 100644 index 000000000..6e77a0a11 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalAdvanced.png new file mode 100644 index 000000000..ca42645b9 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalBasic.png new file mode 100644 index 000000000..f37c9ed06 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalElite.png new file mode 100644 index 000000000..650d217eb Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalUltimate.png new file mode 100644 index 000000000..1a082971f Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/ThermodynamicConductorVerticalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableAdvanced.png new file mode 100644 index 000000000..d45989bf9 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableBasic.png new file mode 100644 index 000000000..f9b8e06c4 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableElite.png new file mode 100644 index 000000000..4470d888d Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalAdvanced.png new file mode 100644 index 000000000..9551b9ec2 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalBasic.png new file mode 100644 index 000000000..286f0eff3 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalElite.png new file mode 100644 index 000000000..4972ee794 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalUltimate.png new file mode 100644 index 000000000..982dbb188 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableHorizontalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableUltimate.png new file mode 100644 index 000000000..4c39e9863 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalAdvanced.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalAdvanced.png new file mode 100644 index 000000000..aee09b335 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalAdvanced.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalBasic.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalBasic.png new file mode 100644 index 000000000..9a3aba9ab Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalBasic.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalElite.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalElite.png new file mode 100644 index 000000000..83d7856cd Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalElite.png differ diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalUltimate.png b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalUltimate.png new file mode 100644 index 000000000..f91f28830 Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/blocks/models/opaque/UniversalCableVerticalUltimate.png differ diff --git a/src/main/resources/assets/mekanism/textures/items/AdvancedFactoryInstaller.png b/src/main/resources/assets/mekanism/textures/items/AdvancedTierInstaller.png similarity index 100% rename from src/main/resources/assets/mekanism/textures/items/AdvancedFactoryInstaller.png rename to src/main/resources/assets/mekanism/textures/items/AdvancedTierInstaller.png diff --git a/src/main/resources/assets/mekanism/textures/items/BasicFactoryInstaller.png b/src/main/resources/assets/mekanism/textures/items/BasicTierInstaller.png similarity index 100% rename from src/main/resources/assets/mekanism/textures/items/BasicFactoryInstaller.png rename to src/main/resources/assets/mekanism/textures/items/BasicTierInstaller.png diff --git a/src/main/resources/assets/mekanism/textures/items/EliteFactoryInstaller.png b/src/main/resources/assets/mekanism/textures/items/EliteTierInstaller.png similarity index 100% rename from src/main/resources/assets/mekanism/textures/items/EliteFactoryInstaller.png rename to src/main/resources/assets/mekanism/textures/items/EliteTierInstaller.png diff --git a/src/main/resources/assets/mekanism/textures/items/UltimateTierInstaller.png b/src/main/resources/assets/mekanism/textures/items/UltimateTierInstaller.png new file mode 100644 index 000000000..0dd5a217f Binary files /dev/null and b/src/main/resources/assets/mekanism/textures/items/UltimateTierInstaller.png differ