Compare commits

..
37 Commits
Author SHA1 Message Date
Martin Robertz da69def382 update 2025-05-04 12:27:15 +02:00
Martin Robertz b4848767b6 Merge remote-tracking branch 'origin/fused-quartz-blast-resistance' into dev 2025-05-04 12:26:52 +02:00
Martin Robertz 199e209854 Merge remote-tracking branch 'dibbydoda/automatable-weather-obelisk' into dev 2025-05-04 12:26:48 +02:00
dibbydoda 7247514672 Merge pull request #1 from GTNewHorizons/weather-obelisk
Weather Obelisk Changes
2025-05-04 15:09:20 +10:00
glowredman 1bb8d77b45 Do requested changes 2025-05-02 10:47:49 +02:00
koolkrafter5 dc1ffe08a1 Fix issue with cooldown not counting down for the client. 2025-05-01 17:41:21 -04:00
koolkrafter5 9254415739 Fix tooltips for the weather obelisk. The old information was from an older version of the mod. 2025-05-01 17:18:22 -04:00
koolkrafter5 0d95173f45 Use the cooldown to disable the button so it can't be clicked while the previous rocket is flying. 2025-05-01 17:05:11 -04:00
koolkrafter5 dfc9bb9cff The Launch button now displays an icon for the weather (or a red - if no fluid is supplied) and is now disabled (rather than hidden) when the Control Mode button is set to automatic 2025-05-01 16:47:17 -04:00
Martin Robertz 3cd91b0112 update 2025-04-28 20:37:39 +02:00
Martin Robertz 29f8752c98 Merge remote-tracking branch 'origin/fused-quartz-blast-resistance' into dev
# Conflicts:
#	dependencies.gradle
2025-04-28 20:37:07 +02:00
glowredman 41657d44b1 Make Fused Quartz blast resistance configurable 2025-04-27 20:06:41 +02:00
Martin Robertz 4d2ace0d3f Merge remote-tracking branch 'dibbydoda/automatable-weather-obelisk' into dev 2025-04-25 13:46:07 +02:00
Martin Robertz 38845890c1 update 2025-04-25 13:46:01 +02:00
Martin Robertz be92550e42 Merge branch 'master' into automatable-weather-obelisk 2025-04-25 13:44:27 +02:00
Maya 63971381cc update 2025-04-24 17:20:42 -05:00
__felix__and__felix__ 09238b09ef Change hazmat Optional decorators' modid from gregtech to gregtech_nh to add gt6 compat (#191)
Co-authored-by: __felix__ <134875831+48a3efa65c881ef567345b17f3910e06@users.noreply.github.com>
2025-04-24 17:19:59 -05:00
dibbydoda 6e5087dac1 sa 2025-04-22 20:53:48 +10:00
dibbydoda a12e5f37ba tweak cooldown logic and timing 2025-04-22 20:53:10 +10:00
dibbydoda d023c347cb Remove unused weather obelisk config items 2025-04-22 20:47:47 +10:00
dibbydoda 56a642cebf sa 2025-04-22 19:55:04 +10:00
dibbydoda 68bc2116b4 Rename feature to launch on redstone 2025-04-22 19:42:36 +10:00
dibbydoda 3e72fe00ac Add serverside cooldown to prevent double launch 2025-04-22 19:38:52 +10:00
dibbydoda efbe0ba259 Save control mode state 2025-04-22 19:33:54 +10:00
dibbydoda 0ef9ce80ea Logic for serverside startTask() 2025-04-22 18:48:35 +10:00
dibbydoda bc7975f26c Remove unused return type 2025-04-22 18:47:27 +10:00
dibbydoda b3acdd8f35 Server notify client of startTask() 2025-04-22 18:46:54 +10:00
dibbydoda 559c64e82c PacketActivateWeather now can start/stop on client or server 2025-04-22 18:46:01 +10:00
dibbydoda 2fe6acc762 Make UI elements and lang entries 2025-04-22 18:44:15 +10:00
dibbydoda 80c83d3fce Create Packet for Relaying Control Mode 2025-04-22 18:44:15 +10:00
Maya 32556e078e update 2025-04-08 16:28:20 -05:00
Niclas Klugmann ace514f628 Move End Steel/ Stellar Armor to GT Hazard API (#189) 2025-04-08 16:27:01 -05:00
Niclas Klugmann 0102b89c33 fix trackman's goggles config (#188) 2025-03-22 14:45:52 +00:00
Maya b65afde754 fix dependencies 2025-03-22 09:01:45 -05:00
Maya 4a0a427186 update 2025-03-22 08:55:17 -05:00
Niclas KlugmannandMaya e04e2e3411 Add trackman's goggles upgrade support to the Dark Helm (#186)
Co-authored-by: Maya <[email protected]>
2025-03-22 08:54:08 -05:00
Niclas Klugmann 316db4bd77 Fix naturalist's eyes (#187) 2025-03-22 08:32:29 -05:00
32 changed files with 437 additions and 81 deletions

No files matched your search

+11 -9
View File
@@ -2,21 +2,23 @@
dependencies {
api('com.github.GTNewHorizons:EnderCore:0.4.6:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.2:dev')
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.29-GTNH:dev')
api("com.github.GTNewHorizons:GTNHLib:0.6.10:dev")
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.7:dev')
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.40-GTNH:dev')
api("com.github.GTNewHorizons:GTNHLib:0.6.21:dev")
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.42:dev')
api('curse.maven:cofh-lib-220333:2388748') // https://www.curseforge.com/minecraft/mc-mods/cofh-lib/files/2388748
shadowImplementation('cglib:cglib-nodep:3.3.0')
api("com.github.GTNewHorizons:TinkersConstruct:1.13.21-GTNH:dev")
compileOnly('com.github.GTNewHorizons:waila:1.8.2:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-544-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:waila:1.8.4:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-586-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Baubles:1.0.4:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.134:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.3:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.266:dev') {transitive = false}
compileOnly("com.github.GTNewHorizons:ModularUI2:2.2.7-1.7.10:dev") {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.23:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:StorageDrawers:2.1.0-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Chisel:2.16.2-GTNH:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.11.8-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.11.13-GTNH:api') {transitive = false}
compileOnly('curse.maven:minefactory-reloaded-66672:2366150') // https://www.curseforge.com/minecraft/mc-mods/minefactory-reloaded/files/2366150
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
compileOnly('curse.maven:ee3-65509:2305023') // https://www.curseforge.com/minecraft/mc-mods/ee3/files/2305023
@@ -24,5 +26,5 @@ dependencies {
compileOnly(rfg.deobf('curse.maven:mekanism-268560:2475797')) // https://www.curseforge.com/minecraft/mc-mods/mekanism/files/2475797
compileOnly(rfg.deobf('maven.modrinth:immibis-microblocks:59.1.2')) // https://modrinth.com/mod/immibis-microblocks/version/59.1.2
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta33:api') {transitive = false}
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta41:api') {transitive = false}
}
+1 -1
View File
@@ -14,7 +14,7 @@ modId = EnderIO
modGroup = crazypants.enderio
# Whether to use modGroup as the maven publishing group.
# Due to a history of using JitPack, the default is com.github.GTNewHorizons for all mods.
# When false, com.github.GTNewHorizons is used.
useModGroupForPublishing = false
# Updates your build.gradle and settings.gradle automatically whenever an update is available.
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Vendored
+2 -3
View File
@@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -206,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
+1 -1
View File
@@ -17,7 +17,7 @@ pluginManagement {
}
plugins {
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.32'
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.38'
}
@@ -208,7 +208,7 @@ public class EnderIO {
public static final Lang lang = new Lang("enderio");
public static final boolean hasLwjgl3 = Loader.isModLoaded("lwjgl3ify");
public static final boolean hasGT5 = Loader.isModLoaded("gregtech") && !Loader.isModLoaded("gregapi_post");
public static final boolean hasGT5 = Loader.isModLoaded("gregtech") && !Loader.isModLoaded("gregapi");
// Materials
public static ItemCapacitor itemBasicCapacitor;
@@ -74,7 +74,6 @@ public final class Config {
public static final Section sectionMobConfig = new Section("Mob Config", "mobconfig");
public static final Section sectionRailConfig = new Section("Rail", "railconfig");
public static final Section sectionEnchantments = new Section("Enchantments", "enchantments");
public static final Section sectionWeather = new Section("Weather", "weather");
public static final Section sectionTelepad = new Section("Telepad", "telepad");
public static final Section sectionInventoryPanel = new Section("InventoryPanel", "inventorypanel");
public static final Section sectionMisc = new Section("Misc", "misc");
@@ -285,6 +284,8 @@ public final class Config {
public static int darkSteelApiaristArmorCost = 10;
public static int darkSteelTrackmanGogglesCost = 10;
public static int darkSteelSwimCost = 10;
public static int darkSteelNightVisionCost = 10;
@@ -542,10 +543,6 @@ public final class Config {
public static boolean spawnGuardStopAllSlimesDebug = false;
public static boolean spawnGuardStopAllSquidSpawning = false;
public static int weatherObeliskClearFluid = 2000;
public static int weatherObeliskRainFluid = 500;
public static int weatherObeliskThunderFluid = 1000;
// Loot Defaults
public static boolean lootDarkSteel = true;
public static boolean lootItemConduitProbe = true;
@@ -598,6 +595,8 @@ public final class Config {
public static boolean strictTPItemChecking = true;
public static float fusedQuartzExplosionResistance = 2000.0f;
public static void load(FMLPreInitializationEvent event) {
PacketHandler.INSTANCE
.registerMessage(PacketConfigSync.class, PacketConfigSync.class, PacketHandler.nextID(), Side.CLIENT);
@@ -1609,6 +1608,14 @@ public final class Config {
darkSteelApiaristArmorCost,
"Number of levels required for the Apiarist Armor upgrade.").getInt(darkSteelApiaristArmorCost);
darkSteelTrackmanGogglesCost = config
.get(
sectionDarkSteel.name,
"darkSteelTrackmanGogglesCost",
darkSteelTrackmanGogglesCost,
"Number of levels required for the Trackman's Goggles upgrade.")
.getInt(darkSteelTrackmanGogglesCost);
darkSteelTravelCost = config.get(
sectionDarkSteel.name,
"darkSteelTravelCost",
@@ -2736,22 +2743,6 @@ public final class Config {
spawnGuardStopAllSquidSpawning,
"When true no squid will be spawned.");
weatherObeliskClearFluid = config.get(
sectionWeather.name,
"weatherObeliskClearFluid",
weatherObeliskClearFluid,
"The fluid required (in mB) to set the world to clear weather").getInt();
weatherObeliskRainFluid = config.get(
sectionWeather.name,
"weatherObeliskRainFluid",
weatherObeliskRainFluid,
"The fluid required (in mB) to set the world to rainy weather").getInt();
weatherObeliskThunderFluid = config.get(
sectionWeather.name,
"weatherObeliskThunderFluid",
weatherObeliskThunderFluid,
"The fluid required (in mB) to set the world to thundering weather").getInt();
// Loot Config
lootDarkSteel = config.getBoolean(
"lootDarkSteel",
@@ -2980,6 +2971,13 @@ public final class Config {
strictTPItemChecking,
"If true, turn on strict checking of item energy checking. This might cause traveling tools from third party mods to fire fake security warnings on server side and not function correctly.")
.getBoolean(strictTPItemChecking);
fusedQuartzExplosionResistance = config.getFloat(
"fusedQuartzExplosionResistance",
sectionMisc.name,
fusedQuartzExplosionResistance,
0.0f,
Float.MAX_VALUE,
"How blast resistant the three Fused Quartz blocks should be.");
}
public static void checkYetaAccess() {
@@ -25,16 +25,19 @@ import crazypants.enderio.config.Config;
import crazypants.enderio.item.PacketMagnetState.SlotType;
import crazypants.enderio.item.darksteel.DarkSteelController;
import crazypants.enderio.item.darksteel.DarkSteelItems;
import crazypants.enderio.item.darksteel.ItemDarkSteelArmor;
import crazypants.enderio.item.darksteel.PacketUpgradeState;
import crazypants.enderio.item.darksteel.PacketUpgradeState.Type;
import crazypants.enderio.item.darksteel.SoundDetector;
import crazypants.enderio.item.darksteel.upgrade.JumpUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SoundDetectorUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpeedUpgrade;
import crazypants.enderio.item.darksteel.upgrade.TrackmanGogglesUpgrade;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.teleport.TravelController;
import crazypants.enderio.thaumcraft.GogglesOfRevealingUpgrade;
import crazypants.util.BaublesUtil;
import mods.railcraft.api.core.items.IToolGoggles;
public class KeyTracker {
@@ -54,6 +57,8 @@ public class KeyTracker {
private final KeyBinding gogglesKey;
private final KeyBinding trackmansGogglesKey;
private final KeyBinding yetaWrenchMode;
private final KeyBinding magnetKey;
@@ -84,6 +89,12 @@ public class KeyTracker {
EnderIO.lang.localize("category.darksteelarmor"));
ClientRegistry.registerKeyBinding(gogglesKey);
trackmansGogglesKey = new KeyBinding(
EnderIO.lang.localize("keybind.trackmansgoggles"),
Keyboard.KEY_NONE,
EnderIO.lang.localize("category.darksteelarmor"));
ClientRegistry.registerKeyBinding(trackmansGogglesKey);
stepAssistKey = new KeyBinding(
EnderIO.lang.localize("keybind.stepassist"),
Keyboard.KEY_NONE,
@@ -128,6 +139,7 @@ public class KeyTracker {
handleNightVision();
handleYetaWrench();
handleGoggles();
handleTrackmanGoggles();
handleStepAssist();
handleSpeed();
handleJump();
@@ -232,6 +244,22 @@ public class KeyTracker {
}
}
private void handleTrackmanGoggles() {
if (trackmansGogglesKey.isPressed()) {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (!TrackmanGogglesUpgrade.isUpgradeEquipped(player)) {
return;
}
ItemStack helmet = player.getEquipmentInSlot(4);
((ItemDarkSteelArmor) helmet.getItem()).incrementAura(helmet);
IToolGoggles.displaySwitchMessage(
Minecraft.getMinecraft().theWorld,
Minecraft.getMinecraft().thePlayer,
((ItemDarkSteelArmor) helmet.getItem()).getCurrentAura(helmet));
return;
}
}
private void handleGoggles() {
if (gogglesKey.isPressed()) {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
@@ -33,6 +33,7 @@ import crazypants.enderio.item.darksteel.upgrade.SoundDetectorUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpeedUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SpoonUpgrade;
import crazypants.enderio.item.darksteel.upgrade.SwimUpgrade;
import crazypants.enderio.item.darksteel.upgrade.TrackmanGogglesUpgrade;
import crazypants.enderio.item.darksteel.upgrade.TravelUpgrade;
import crazypants.enderio.material.Alloy;
import crazypants.enderio.material.endergy.AlloyEndergy;
@@ -75,6 +76,9 @@ public class DarkSteelRecipeManager {
upgrades.add(ApiaristArmorUpgrade.LEGS);
upgrades.add(ApiaristArmorUpgrade.BOOTS);
}
if (Loader.isModLoaded("Railcraft")) {
upgrades.add(TrackmanGogglesUpgrade.INSTANCE);
}
}
@SubscribeEvent
@@ -10,6 +10,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.common.ISpecialArmor;
@@ -34,9 +35,13 @@ import crazypants.enderio.item.darksteel.upgrade.ApiaristArmorUpgrade;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.IDarkSteelUpgrade;
import crazypants.enderio.item.darksteel.upgrade.NaturalistEyeUpgrade;
import crazypants.enderio.item.darksteel.upgrade.TrackmanGogglesUpgrade;
import crazypants.enderio.thaumcraft.GogglesOfRevealingUpgrade;
import forestry.api.apiculture.IArmorApiarist;
import forestry.api.core.IArmorNaturalist;
import mods.railcraft.api.core.items.IToolGoggles;
import mods.railcraft.common.core.RailcraftConfig;
import mods.railcraft.common.items.ItemGoggles.GoggleAura;
import thaumcraft.api.IGoggles;
import thaumcraft.api.IVisDiscountGear;
import thaumcraft.api.aspects.Aspect;
@@ -45,11 +50,12 @@ import thaumcraft.api.nodes.IRevealer;
@InterfaceList({ @Interface(iface = "thaumcraft.api.IGoggles", modid = "Thaumcraft"),
@Interface(iface = "thaumcraft.api.IVisDiscountGear", modid = "Thaumcraft"),
@Interface(iface = "thaumcraft.api.nodes.IRevealer", modid = "Thaumcraft"),
@Interface(iface = "mods.railcraft.api.core.items.IToolGoggles", modid = "Railcraft"),
@Interface(iface = "forestry.api.apiculture.IArmorApiarist", modid = "Forestry"),
@Interface(iface = "forestry.api.core.IArmorNaturalist", modid = "Forestry") })
public class ItemDarkSteelArmor extends ItemArmor
implements IEnergyContainerItem, ISpecialArmor, IAdvancedTooltipProvider, IDarkSteelItem, IGoggles, IRevealer,
IVisDiscountGear, IArmorApiarist, IArmorNaturalist {
IVisDiscountGear, IArmorApiarist, IArmorNaturalist, IToolGoggles {
public static final ArmorMaterial MATERIAL = EnumHelper
.addArmorMaterial("darkSteel", 35, new int[] { 2, 6, 5, 2 }, 15);
@@ -322,9 +328,45 @@ public class ItemDarkSteelArmor extends ItemArmor
@Override
@Method(modid = "Forestry")
public boolean canSeePollination(EntityPlayer player, ItemStack armor, boolean doSee) {
if (armor == null || DarkSteelItems.isArmorPart(armor.getItem(), 0)) {
if (armor == null || !DarkSteelItems.isArmorPart(armor.getItem(), 0)) {
return false;
}
return NaturalistEyeUpgrade.isUpgradeEquipped(player);
}
// Railcraft
public void incrementAura(ItemStack goggles) {
if (goggles != null && goggles.getItem() instanceof ItemDarkSteelArmor
&& DarkSteelItems.isArmorPart(goggles.getItem(), 0)) {
NBTTagCompound data = goggles.getTagCompound();
if (data == null) {
data = new NBTTagCompound();
goggles.setTagCompound(data);
}
byte aura = data.getByte("aura");
aura++;
if (aura >= GoggleAura.VALUES.length) aura = 0;
data.setByte("aura", aura);
if (this.getCurrentAura(goggles) == GoggleAura.TRACKING && !RailcraftConfig.isTrackingAuraEnabled()) {
incrementAura(goggles);
}
}
}
@Override
@Method(modid = "Railcraft")
public GoggleAura getCurrentAura(ItemStack goggles) {
if (TrackmanGogglesUpgrade.loadFromItem(goggles) != null) {
NBTTagCompound data = goggles.getTagCompound();
if (data != null) {
return GoggleAura.VALUES[data.getByte("aura")];
} else {
return GoggleAura.NONE;
}
} else {
return GoggleAura.NONE;
}
}
}
@@ -8,13 +8,17 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.EnumHelper;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.item.darksteel.IDarkSteelItem.IEndSteelItem;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.IDarkSteelUpgrade;
import gregtech.api.hazards.Hazard;
import gregtech.api.hazards.IHazardProtector;
public class ItemEndSteelArmor extends ItemDarkSteelArmor implements IEndSteelItem {
@Optional.InterfaceList({ @Optional.Interface(iface = "gregtech.api.hazards.IHazardProtector", modid = "gregtech_nh") })
public class ItemEndSteelArmor extends ItemDarkSteelArmor implements IEndSteelItem, IHazardProtector {
public static final ArmorMaterial MATERIAL = EnumHelper
.addArmorMaterial("endSteel", 50, new int[] { 4, 7, 10, 5 }, 25);
@@ -77,4 +81,11 @@ public class ItemEndSteelArmor extends ItemDarkSteelArmor implements IEndSteelIt
par3List.add(is);
}
/// GT5 Hazmat protection
@Optional.Method(modid = "gregtech_nh")
@Override
public boolean protectsAgainst(ItemStack itemStack, Hazard hazard) {
return true;
}
}
@@ -8,13 +8,17 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.EnumHelper;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.item.darksteel.IDarkSteelItem.IStellarItem;
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
import crazypants.enderio.item.darksteel.upgrade.IDarkSteelUpgrade;
import gregtech.api.hazards.Hazard;
import gregtech.api.hazards.IHazardProtector;
public class ItemStellarArmor extends ItemDarkSteelArmor implements IStellarItem {
@Optional.InterfaceList({ @Optional.Interface(iface = "gregtech.api.hazards.IHazardProtector", modid = "gregtech_nh") })
public class ItemStellarArmor extends ItemDarkSteelArmor implements IStellarItem, IHazardProtector {
public static final ArmorMaterial MATERIAL = EnumHelper
.addArmorMaterial("stellarAlloy", 75, new int[] { 8, 14, 18, 7 }, 25);
@@ -78,4 +82,11 @@ public class ItemStellarArmor extends ItemDarkSteelArmor implements IStellarItem
par3List.add(is);
}
/// GT5 Hazmat protection
@Optional.Method(modid = "gregtech_nh")
@Override
public boolean protectsAgainst(ItemStack itemStack, Hazard hazard) {
return true;
}
}
@@ -0,0 +1,85 @@
package crazypants.enderio.item.darksteel.upgrade;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import cpw.mods.fml.common.registry.GameRegistry;
import crazypants.enderio.config.Config;
import crazypants.enderio.item.darksteel.DarkSteelItems;
public class TrackmanGogglesUpgrade extends AbstractUpgrade {
private static String UPGRADE_NAME = "trackmansGoggles";
public static final TrackmanGogglesUpgrade INSTANCE = new TrackmanGogglesUpgrade();
public static ItemStack getGoggles() {
Item i = GameRegistry.findItem("Railcraft", "armor.goggles");
if (i != null) {
return new ItemStack(i);
}
return null;
}
public static TrackmanGogglesUpgrade loadFromItem(ItemStack stack) {
if (stack == null) {
return null;
}
if (stack.stackTagCompound == null) {
return null;
}
if (!stack.stackTagCompound.hasKey(KEY_UPGRADE_PREFIX + UPGRADE_NAME)) {
return null;
}
return new TrackmanGogglesUpgrade(
(NBTTagCompound) stack.stackTagCompound.getTag(KEY_UPGRADE_PREFIX + UPGRADE_NAME));
}
public static boolean isUpgradeEquipped(EntityPlayer player) {
ItemStack helmet = player.getEquipmentInSlot(4);
return TrackmanGogglesUpgrade.loadFromItem(helmet) != null;
}
public TrackmanGogglesUpgrade(NBTTagCompound tag) {
super(UPGRADE_NAME, tag);
}
public TrackmanGogglesUpgrade() {
super(
UPGRADE_NAME,
"enderio.darksteel.upgrade.trackmansGoggles",
getGoggles(),
Config.darkSteelTrackmanGogglesCost);
}
@Override
public boolean canAddToItem(ItemStack stack) {
if (stack == null || !DarkSteelItems.isArmorPart(stack.getItem(), 0) || getUpgradeItem() == null) {
return false;
}
TrackmanGogglesUpgrade up = loadFromItem(stack);
return up == null;
}
@Override
public void writeUpgradeToNBT(NBTTagCompound upgradeRoot) {}
@Override
public ItemStack getUpgradeItem() {
if (upgradeItem != null) {
return upgradeItem;
}
upgradeItem = getGoggles();
return upgradeItem;
}
@Override
public String getUpgradeItemName() {
if (getUpgradeItem() == null) {
return "Trackman's Helmet";
}
return super.getUpgradeItemName();
}
}
@@ -31,6 +31,11 @@ public class BlockWeatherObelisk extends BlockObeliskAbstract<TileWeatherObelisk
Side.CLIENT);
PacketHandler.INSTANCE
.registerMessage(PacketWeatherTank.class, PacketWeatherTank.class, PacketHandler.nextID(), Side.CLIENT);
PacketHandler.INSTANCE.registerMessage(
PacketControlModeWeather.class,
PacketControlModeWeather.class,
PacketHandler.nextID(),
Side.SERVER);
EntityRegistry
.registerModEntity(EntityWeatherRocket.class, "weather_rocket", 33, EnderIO.instance, 64, 3, false);
@@ -11,6 +11,7 @@ import net.minecraftforge.fluids.FluidTank;
import org.lwjgl.opengl.GL11;
import com.enderio.core.client.gui.button.IconButton;
import com.enderio.core.client.gui.button.ToggleButton;
import com.enderio.core.client.gui.widget.GuiToolTip;
import com.enderio.core.client.render.RenderUtil;
@@ -24,6 +25,7 @@ import crazypants.enderio.network.PacketHandler;
public class GuiWeatherObelisk extends GuiPoweredMachineBase<TileWeatherObelisk> {
private IconButton buttonStart;
private ToggleButton buttonMode;
public GuiWeatherObelisk(InventoryPlayer inventory, TileWeatherObelisk tileEntity) {
super(tileEntity, new ContainerWeatherObelisk(inventory, tileEntity), "weatherObelisk");
@@ -50,10 +52,23 @@ public class GuiWeatherObelisk extends GuiPoweredMachineBase<TileWeatherObelisk>
public void initGui() {
super.initGui();
int x = (xSize / 2) - (BUTTON_SIZE / 2);
int x_mode = xSize - 5 - BUTTON_SIZE;
int x_start = (xSize / 2) - (BUTTON_SIZE / 2);
int y = 58;
addButton(buttonStart = new IconButton(this, 0, x, y, IconEIO.TICK));
buttonMode = new ToggleButton(this, 1, x_mode, y, IconEIO.TICK, IconEIO.REDSTONE_MODE_WITH_SIGNAL);
buttonMode.setToolTip(EnderIO.lang.localize("gui.machine.weather.control"));
buttonMode.setSelectedToolTip(EnderIO.lang.localize("gui.machine.weather.redstone"));
buttonMode.setUnselectedToolTip(EnderIO.lang.localize("gui.machine.weather.manual"));
buttonMode.setSelected(getTileEntity().getLaunchOnRedstone());
addButton(buttonMode);
buttonMode.onGuiInit();
buttonStart = new IconButton(this, 0, x_start, y, IconEIO.MINUS);
buttonStart.setToolTip(EnderIO.lang.localize("gui.machine.weather.run"));
addButton(buttonStart);
buttonStart.onGuiInit();
refreshButtons();
@@ -68,13 +83,34 @@ public class GuiWeatherObelisk extends GuiPoweredMachineBase<TileWeatherObelisk>
}
private void refreshButtons() {
FluidStack fs = getTileEntity().getInputTank().getFluid();
if (fs == null) {
boolean pulseControl = getTileEntity().getLaunchOnRedstone();
pulseControlAction(pulseControl);
WeatherTask task = getCurrentTask();
if (task == null) {
buttonStart.setIcon(IconEIO.MINUS);
buttonStart.enabled = false;
return;
}
WeatherTask task = WeatherTask.fromFluid(fs.getFluid());
buttonStart.enabled = getTileEntity().canStartTask(task);
switch (task) {
case CLEAR:
buttonStart.setIcon(IconEIO.SUN);
break;
case RAIN:
buttonStart.setIcon(IconEIO.RAIN);
break;
case STORM:
buttonStart.setIcon(IconEIO.THUNDER);
break;
}
}
protected WeatherTask getCurrentTask() {
FluidStack fs = getTileEntity().getInputTank().getFluid();
if (fs == null) {
return null;
}
return WeatherTask.fromFluid(fs.getFluid());
}
@Override
@@ -143,9 +179,23 @@ public class GuiWeatherObelisk extends GuiPoweredMachineBase<TileWeatherObelisk>
@Override
protected void actionPerformed(GuiButton b) {
super.actionPerformed(b);
if (b.id >= 0 && b.id <= 2) {
if (b.id == 0) {
// Start Button
getTileEntity().startTask();
PacketHandler.INSTANCE.sendToServer(new PacketActivateWeather(getTileEntity()));
PacketHandler.INSTANCE.sendToServer(new PacketActivateWeather(getTileEntity(), true));
buttonStart.setEnabled(false);
} else if (b.id == 1) {
// Control Mode Button
boolean pulseControl = buttonMode.isSelected();
getTileEntity().setLaunchOnRedstone(pulseControl);
pulseControlAction(pulseControl);
PacketControlModeWeather packet = new PacketControlModeWeather(getTileEntity());
PacketHandler.INSTANCE.sendToServer(packet);
}
}
protected void pulseControlAction(boolean pulseControl) {
redstoneButton.setVisible(!pulseControl);
buttonStart.setEnabled(!pulseControl && getTileEntity().canStartTask(getCurrentTask()));
}
}
@@ -7,14 +7,30 @@ import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import crazypants.enderio.EnderIO;
import crazypants.enderio.network.PacketUtil;
import io.netty.buffer.ByteBuf;
public class PacketActivateWeather extends MessageTileEntity<TileWeatherObelisk>
implements IMessageHandler<PacketActivateWeather, IMessage> {
private boolean start;
public PacketActivateWeather() {}
public PacketActivateWeather(TileWeatherObelisk te) {
public PacketActivateWeather(TileWeatherObelisk te, boolean start) {
super(te);
this.start = start;
}
@Override
public void toBytes(ByteBuf buf) {
super.toBytes(buf);
buf.writeBoolean(start);
}
@Override
public void fromBytes(ByteBuf buf) {
super.fromBytes(buf);
start = buf.readBoolean();
}
@Override
@@ -24,6 +40,8 @@ public class PacketActivateWeather extends MessageTileEntity<TileWeatherObelisk>
if (te != null) {
if (ctx.side.isServer()) {
if (PacketUtil.isInvalidPacketForGui(ctx, te, getClass())) return null;
}
if (message.start) {
te.startTask();
} else {
te.stopTask();
@@ -0,0 +1,44 @@
package crazypants.enderio.machine.obelisk.weather;
import com.enderio.core.common.network.MessageTileEntity;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import crazypants.enderio.network.PacketUtil;
import io.netty.buffer.ByteBuf;
public class PacketControlModeWeather extends MessageTileEntity<TileWeatherObelisk>
implements IMessageHandler<PacketControlModeWeather, IMessage> {
private boolean pulse;
public PacketControlModeWeather() {}
public PacketControlModeWeather(TileWeatherObelisk te) {
super(te);
this.pulse = te.getLaunchOnRedstone();
}
@Override
public void toBytes(ByteBuf buf) {
super.toBytes(buf);
buf.writeBoolean(pulse);
}
@Override
public void fromBytes(ByteBuf buf) {
super.fromBytes(buf);
pulse = buf.readBoolean();
}
@Override
public IMessage onMessage(PacketControlModeWeather message, MessageContext ctx) {
TileWeatherObelisk te = message.getTileEntity(message.getWorld(ctx));
if (te != null) {
if (PacketUtil.isInvalidPacketForGui(ctx, te, getClass())) return null;
te.setLaunchOnRedstone(message.pulse);
}
return null;
}
}
@@ -24,6 +24,7 @@ import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.ModObject;
import crazypants.enderio.machine.AbstractPowerConsumerEntity;
import crazypants.enderio.machine.RedstoneControlMode;
import crazypants.enderio.machine.SlotDefinition;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.power.Capacitors;
@@ -100,6 +101,9 @@ public class TileWeatherObelisk extends AbstractPowerConsumerEntity
private boolean canBeActive = true;
private boolean tanksDirty;
private boolean launchOnRedstone = false;
private int cooldown = 0;
private static final ICapacitor cap = Capacitors.BASIC_CAPACITOR.capacitor;
private FluidTank inputTank = new FluidTank(8000);
@@ -164,6 +168,9 @@ public class TileWeatherObelisk extends AbstractPowerConsumerEntity
@Override
public void doUpdate() {
super.doUpdate();
if (cooldown > 0) {
cooldown--;
}
if (worldObj.isRemote && isActive() && worldObj.getTotalWorldTime() % 2 == 0) {
doLoadingParticles();
}
@@ -228,14 +235,18 @@ public class TileWeatherObelisk extends AbstractPowerConsumerEntity
@Override
protected boolean processTasks(boolean redstoneCheckPassed) {
if (cooldown > 0) {
return true;
}
boolean res = false;
if (!redstoneCheckPassed) {
if (!redstoneCheckPassed && !launchOnRedstone) {
if (canBeActive) {
canBeActive = false;
res = true;
return true;
}
return res;
return false;
} else {
canBeActive = true;
@@ -254,9 +265,13 @@ public class TileWeatherObelisk extends AbstractPowerConsumerEntity
EntityWeatherRocket e = new EntityWeatherRocket(worldObj, activeTask);
e.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);
worldObj.spawnEntityInWorld(e);
cooldown = 200;
stopTask();
res = true;
}
} else if (launchOnRedstone && RedstoneControlMode.isConditionMet(RedstoneControlMode.ON, this)) {
startTask();
res = true;
}
}
@@ -277,31 +292,33 @@ public class TileWeatherObelisk extends AbstractPowerConsumerEntity
public boolean canStartTask(WeatherTask task) {
return getActiveTask() == null && !WeatherTask.worldIsState(task, worldObj)
&& getStackInSlot(0) != null
&& inputTank.getFluidAmount() >= 1000;
&& inputTank.getFluidAmount() >= 1000
&& cooldown <= 0;
}
/**
* @return If the operation was successful.
*/
public boolean startTask() {
public void startTask() {
if (getActiveTask() == null && inputTank.getFluidAmount() > 0) {
fluidUsed = 0;
WeatherTask task = WeatherTask.fromFluid(inputTank.getFluid().getFluid());
if (canStartTask(task)) {
if (!worldObj.isRemote) {
PacketHandler.INSTANCE
.sendToDimension(new PacketActivateWeather(this, true), worldObj.provider.dimensionId);
}
decrStackSize(0, 1);
activeTask = task;
return true;
}
}
return false;
}
public void stopTask() {
if (getActiveTask() != null) {
activeTask = null;
fluidUsed = 0;
cooldown = 200;
if (!worldObj.isRemote) {
PacketHandler.INSTANCE.sendToDimension(new PacketActivateWeather(this), worldObj.provider.dimensionId);
PacketHandler.INSTANCE
.sendToDimension(new PacketActivateWeather(this, false), worldObj.provider.dimensionId);
} else {
playedFuse = false;
}
@@ -312,12 +329,14 @@ public class TileWeatherObelisk extends AbstractPowerConsumerEntity
public void writeCommon(NBTTagCompound nbtRoot) {
super.writeCommon(nbtRoot);
nbtRoot.setTag("tank", inputTank.writeToNBT(new NBTTagCompound()));
nbtRoot.setBoolean("weatherobeliskcontrolmode", launchOnRedstone);
}
@Override
public void readCommon(NBTTagCompound nbtRoot) {
super.readCommon(nbtRoot);
inputTank.readFromNBT(nbtRoot.getCompoundTag("tank"));
launchOnRedstone = nbtRoot.getBoolean("weatherobeliskcontrolmode");
}
private boolean isValidFluid(Fluid f) {
@@ -382,4 +401,12 @@ public class TileWeatherObelisk extends AbstractPowerConsumerEntity
public FluidTankInfo[] getTankInfo(ForgeDirection from) {
return new FluidTankInfo[] { inputTank.getInfo() };
}
public void setLaunchOnRedstone(boolean launchOnRedstone) {
this.launchOnRedstone = launchOnRedstone;
}
public boolean getLaunchOnRedstone() {
return this.launchOnRedstone;
}
}
@@ -129,7 +129,7 @@ public class BlockFusedQuartz extends BlockEio {
int meta = world.getBlockMetadata(x, y, z);
Type type = Type.byMeta(meta);
if (type.blastResistance) {
return 20;
return Config.fusedQuartzExplosionResistance;
} else {
return super.getExplosionResistance(par1Entity);
}
@@ -982,8 +982,11 @@ enderio.gui.void.mode.never.desc=Void slot does not accept items
enderio.tile.blockPoweredSpawner.tooltip.none=None
tile.blockWeatherObelisk.name=Weather Obelisk
tile.blockWeatherObelisk.tooltip.detailed.line1=Changes the current weather
tile.blockWeatherObelisk.tooltip.detailed.line2=Requires a lot of power and
tile.blockWeatherObelisk.tooltip.detailed.line3=a catalyst item
tile.blockWeatherObelisk.tooltip.detailed.line2=Requires a firework rocket and 1000 L
tile.blockWeatherObelisk.tooltip.detailed.line3=of one of the following liquids:
tile.blockWeatherObelisk.tooltip.detailed.line4=Liquid Sunshine: Sun
tile.blockWeatherObelisk.tooltip.detailed.line5=Cloud Seed: Rain
tile.blockWeatherObelisk.tooltip.detailed.line6=Concentrated Cloud Seed: Thunder
tile.blockBuffer.item.name=Item Buffer
tile.blockBuffer.power.name=Power Buffer
tile.blockBuffer.omni.name=Omni Buffer
@@ -1130,6 +1133,7 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.name=Apiarist's Pants
enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Protection against bees
enderio.darksteel.upgrade.apiaristArmor.boots.name=Apiarist's Shoes
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Protection against bees
enderio.darksteel.upgrade.trackmansGoggles.name=Brýle strojvůdce
enderio.darksteel.upgrade.jump.enabled=Jump Enabled
enderio.darksteel.upgrade.jump.disabled=Jump Disabled
enderio.darksteel.upgrade.solar_one.name=Solar I
@@ -1219,6 +1223,7 @@ enderio.category.darksteelarmor=Dark Steel Armor
enderio.category.tools=EnderIO - Tools
enderio.keybind.glidertoggle=Glider Toggle
enderio.keybind.gogglesofrevealing=Goggles of Revealing
enderio.keybind.trackmansgoggles=Brýle strojvůdce
enderio.keybind.nightvision=Night Vision
enderio.keybind.soundlocator=Sound Locator
enderio.keybind.speed=Speed
@@ -564,8 +564,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line3=anliegende Tanks abgeben.
tile.blockWeatherObelisk.name=Wetterobelisk
tile.blockWeatherObelisk.tooltip.detailed.line1=Ändere das derzeitige Wetter
tile.blockWeatherObelisk.tooltip.detailed.line2=Benötigt eine Menge an Energie
tile.blockWeatherObelisk.tooltip.detailed.line3=und ein Katalysator-Item
tile.blockBuffer.item.name=Item-Puffer
tile.blockBuffer.power.name=Energiepuffer
@@ -906,6 +904,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Schutz g
enderio.darksteel.upgrade.apiaristArmor.boots.name=Imkerschuhe
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Schutz gegen Beinen
enderio.darksteel.upgrade.trackmansGoggles.name=Schienenwartbrille
item.itemGliderWing.name=Gleiterflügel
item.itemGliderWings.name=Gleiterflügelpaar
item.itemGliderWings.tooltip.detailed.line1=Upgrade für den
@@ -1241,6 +1241,7 @@ enderio.category.darksteelarmor=Dunkelstahlrüstung
enderio.category.tools=EnderIO - Werkzeuge
enderio.keybind.glidertoggle=Gleiterschaltung
enderio.keybind.gogglesofrevealing=Brille der Enthüllung
enderio.keybind.trackmansgoggles=Schienenwartbrille
enderio.keybind.nightvision=Nachtsicht
enderio.keybind.soundlocator=Schalldetektor
enderio.keybind.speed=Schnelligkeit
@@ -642,8 +642,11 @@ tile.blockExperienceObelisk.tooltip.detailed.line3=adjacent tanks
tile.blockWeatherObelisk.name=Weather Obelisk
tile.blockWeatherObelisk.tooltip.detailed.line1=Changes the current weather
tile.blockWeatherObelisk.tooltip.detailed.line2=Requires a lot of power and
tile.blockWeatherObelisk.tooltip.detailed.line3=a catalyst item
tile.blockWeatherObelisk.tooltip.detailed.line2=Requires a firework rocket and 1000 L
tile.blockWeatherObelisk.tooltip.detailed.line3=of one of the following liquids:
tile.blockWeatherObelisk.tooltip.detailed.line4=Liquid Sunshine: Sun
tile.blockWeatherObelisk.tooltip.detailed.line5=Cloud Seed: Rain
tile.blockWeatherObelisk.tooltip.detailed.line6=Concentrated Cloud Seed: Thunder
tile.blockBuffer.name=Buffer
tile.blockBuffer.item.name=Item Buffer
@@ -974,6 +977,9 @@ enderio.darksteel.upgrade.gogglesOfRevealing.tooltip.detailed.line1=Vis Discount
enderio.darksteel.upgrade.gogglesOfRevealing.enabled=Magic is being revealed
enderio.darksteel.upgrade.gogglesOfRevealing.disabled=Magic is hidden from plain sight
enderio.darksteel.upgrade.trackmansGoggles.name=Trackman's Goggles
enderio.darksteel.upgrade.trackmansGoggles.tooltip.detailed.line1=Show infrastructure and anchor auras
enderio.darksteel.upgrade.naturalistEye.name=Naturalist's Eye
enderio.darksteel.upgrade.naturalistEye.tooltip.detailed.line1=Shows pollinated tree leaves
@@ -1098,6 +1104,10 @@ enderio.gui.machine.side.west=West
enderio.gui.machine.side.east=East
enderio.gui.machine.side.up=Up
enderio.gui.machine.side.down=Down
enderio.gui.machine.weather.control=Control Mode
enderio.gui.machine.weather.redstone=Launch on Redstone Signal
enderio.gui.machine.weather.manual=Launch Manually
enderio.gui.machine.weather.run=Launch
#Power Monitor
@@ -1412,6 +1422,7 @@ enderio.category.darksteelarmor=Dark Steel Armor
enderio.category.tools=EnderIO - Tools
enderio.keybind.glidertoggle=Glider Toggle
enderio.keybind.gogglesofrevealing=Goggles of Revealing
enderio.keybind.trackmansgoggles=Trackman's Goggles
enderio.keybind.nightvision=Night Vision
enderio.keybind.soundlocator=Sound Locator
enderio.keybind.speed=Speed
@@ -425,7 +425,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line2=Puede extraer XP Líquida hac
tile.blockWeatherObelisk.name=Obelisco del Clima
tile.blockWeatherObelisk.tooltip.detailed.line1=Cambia el clima actual.
tile.blockWeatherObelisk.tooltip.detailed.line2=Requiere mucha energía y un objeto catalizador.
tile.blockBuffer.item.name=Búfer de Objetos
tile.blockBuffer.power.name=Búfer de Energía
@@ -660,6 +659,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Protecci
enderio.darksteel.upgrade.apiaristArmor.boots.name=Zapatos del Apicultor
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Protección contra abejas.
enderio.darksteel.upgrade.trackmansGoggles.name=Gafas de Ferroviario
item.itemGliderWing.name=Ala de Planeador
item.itemGliderWings.name=Alas de Planeador
item.itemGliderWings.tooltip.detailed.line1=Mejora para la pechera de Acero Oscuro.
@@ -979,6 +980,7 @@ enderio.category.darksteelarmor=Armadura de Acero Oscuro
enderio.category.tools=EnderIO - Herramientas
enderio.keybind.glidertoggle=Activar/Desactivar Planeador
enderio.keybind.gogglesofrevealing=Gafas de Revelación
enderio.keybind.trackmansgoggles=Gafas de Ferroviario
enderio.keybind.nightvision=Visión Nocturna
enderio.keybind.soundlocator=Localizador de Sonidos
enderio.keybind.speed=Velocidad
@@ -427,7 +427,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line2=Puede extraer XP Líquida hac
tile.blockWeatherObelisk.name=Obelisco del Clima
tile.blockWeatherObelisk.tooltip.detailed.line1=Cambia el clima actual.
tile.blockWeatherObelisk.tooltip.detailed.line2=Requiere mucha energía y un objeto catalizador.
tile.blockBuffer.item.name=Búfer de Objetos
tile.blockBuffer.power.name=Búfer de Energía
@@ -662,6 +661,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Protecci
enderio.darksteel.upgrade.apiaristArmor.boots.name=Zapatos del Apicultor
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Protección contra abejas.
enderio.darksteel.upgrade.trackmansGoggles.name=Gafas de Ferroviario
item.itemGliderWing.name=Ala de Planeador
item.itemGliderWings.name=Alas de Planeador
item.itemGliderWings.tooltip.detailed.line1=Mejora para la pechera de Acero Oscuro.
@@ -981,6 +982,7 @@ enderio.category.darksteelarmor=Armadura de Acero Oscuro
enderio.category.tools=EnderIO - Herramientas
enderio.keybind.glidertoggle=Activar/Desactivar Planeador
enderio.keybind.gogglesofrevealing=Gafas de Revelación
enderio.keybind.trackmansgoggles=Gafas de Ferroviario
enderio.keybind.nightvision=Visión Nocturna
enderio.keybind.soundlocator=Localizador de Sonidos
enderio.keybind.speed=Velocidad
@@ -425,7 +425,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line2=Puede extraer XP Líquida hac
tile.blockWeatherObelisk.name=Obelisco del Clima
tile.blockWeatherObelisk.tooltip.detailed.line1=Cambia el clima actual.
tile.blockWeatherObelisk.tooltip.detailed.line2=Requiere mucha energía y un objeto catalizador.
tile.blockBuffer.item.name=Búfer de Objetos
tile.blockBuffer.power.name=Búfer de Energía
@@ -660,6 +659,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Protecci
enderio.darksteel.upgrade.apiaristArmor.boots.name=Zapatos del Apicultor
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Protección contra abejas.
enderio.darksteel.upgrade.trackmansGoggles.name=Gafas de Ferroviario
item.itemGliderWing.name=Ala de Planeador
item.itemGliderWings.name=Alas de Planeador
item.itemGliderWings.tooltip.detailed.line1=Mejora para la pechera de Acero Oscuro.
@@ -979,6 +980,7 @@ enderio.category.darksteelarmor=Armadura de Acero Oscuro
enderio.category.tools=EnderIO - Herramientas
enderio.keybind.glidertoggle=Activar/Desactivar Planeador
enderio.keybind.gogglesofrevealing=Gafas de Revelación
enderio.keybind.trackmansgoggles=Gafas de Ferroviario
enderio.keybind.nightvision=Visión Nocturna
enderio.keybind.soundlocator=Localizador de Sonidos
enderio.keybind.speed=Velocidad
@@ -425,7 +425,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line2=Puede extraer XP Líquida hac
tile.blockWeatherObelisk.name=Obelisco del Clima
tile.blockWeatherObelisk.tooltip.detailed.line1=Cambia el clima actual.
tile.blockWeatherObelisk.tooltip.detailed.line2=Requiere mucha energía y un objeto catalizador.
tile.blockBuffer.item.name=Búfer de Objetos
tile.blockBuffer.power.name=Búfer de Energía
@@ -660,6 +659,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Protecci
enderio.darksteel.upgrade.apiaristArmor.boots.name=Zapatos del Apicultor
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Protección contra abejas.
enderio.darksteel.upgrade.trackmansGoggles.name=Gafas de Ferroviario
item.itemGliderWing.name=Ala de Planeador
item.itemGliderWings.name=Alas de Planeador
item.itemGliderWings.tooltip.detailed.line1=Mejora para la pechera de Acero Oscuro.
@@ -979,6 +980,7 @@ enderio.category.darksteelarmor=Armadura de Acero Oscuro
enderio.category.tools=EnderIO - Herramientas
enderio.keybind.glidertoggle=Activar/Desactivar Planeador
enderio.keybind.gogglesofrevealing=Gafas de Revelación
enderio.keybind.trackmansgoggles=Gafas de Ferroviario
enderio.keybind.nightvision=Visión Nocturna
enderio.keybind.soundlocator=Localizador de Sonidos
enderio.keybind.speed=Velocidad
@@ -425,7 +425,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line2=Puede extraer XP Líquida hac
tile.blockWeatherObelisk.name=Obelisco del Clima
tile.blockWeatherObelisk.tooltip.detailed.line1=Cambia el clima actual.
tile.blockWeatherObelisk.tooltip.detailed.line2=Requiere mucha energía y un objeto catalizador.
tile.blockBuffer.item.name=Búfer de Objetos
tile.blockBuffer.power.name=Búfer de Energía
@@ -979,6 +978,8 @@ enderio.category.darksteelarmor=Armadura de Acero Oscuro
enderio.category.tools=EnderIO - Herramientas
enderio.keybind.glidertoggle=Activar/Desactivar Planeador
enderio.keybind.gogglesofrevealing=Gafas de Revelación
enderio.keybind.trackmansgoggles=Gafas de Ferroviario
enderio.darksteel.upgrade.trackmansGoggles.name=Gafas de Ferroviario
enderio.keybind.nightvision=Visión Nocturna
enderio.keybind.soundlocator=Localizador de Sonidos
enderio.keybind.speed=Velocidad
@@ -464,8 +464,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line3=aux réservoirs adjacents
tile.blockWeatherObelisk.name=Obélisque Météo
tile.blockWeatherObelisk.tooltip.detailed.line1=Change la météo
tile.blockWeatherObelisk.tooltip.detailed.line2=Requiert beaucoup d'énergie et
tile.blockWeatherObelisk.tooltip.detailed.line3=un objet catalyste
tile.blockBuffer.item.name=Stock Tampon d'objet
tile.blockBuffer.power.name=Stock Tampon d'énergie
@@ -683,6 +681,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Protecti
enderio.darksteel.upgrade.apiaristArmor.boots.name=Chaussures d'Apiculteur
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Protection contre les abeilles
enderio.darksteel.upgrade.trackmansGoggles.name=Lunettes de l'agent de voie
item.itemGliderWing.name=Aile de Planeur
item.itemGliderWings.name=Ailes de Planeur
item.itemGliderWings.tooltip.detailed.line1=Amélioration pour
@@ -996,6 +996,7 @@ enderio.category.darksteelarmor=Armure d'Acier Sombre
enderio.category.tools=EnderIO - Outils
enderio.keybind.glidertoggle=Mode Planeur
enderio.keybind.gogglesofrevealing=Lunettes de Révélation
enderio.keybind.trackmansgoggles=Lunettes de l'agent de voie
enderio.keybind.nightvision=Vision Nocturne
enderio.keybind.soundlocator=Détecteur de Sons
enderio.keybind.speed=Vitesse
@@ -613,8 +613,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line3=присоединённым
tile.blockWeatherObelisk.name=Погодный обелиск
tile.blockWeatherObelisk.tooltip.detailed.line1=Изменяет текущую погоду
tile.blockWeatherObelisk.tooltip.detailed.line2=Требует много энергии и
tile.blockWeatherObelisk.tooltip.detailed.line3=предмет в качестве катализатора
tile.blockBuffer.item.name=Предметный буфер
tile.blockBuffer.power.name=Энергобуфер
@@ -949,6 +947,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=Защи
enderio.darksteel.upgrade.apiaristArmor.boots.name=Обувь пчеловода
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=Защита от пчёл
enderio.darksteel.upgrade.trackmansGoggles.name=Очки обходчика путей
item.itemGliderWing.name=Крыло планёра
item.itemGliderWings.name=Крылья планёра
item.itemGliderWings.tooltip.detailed.line1=Улучшается кирасой
@@ -1292,6 +1292,7 @@ enderio.category.darksteelarmor=Броня из тёмной стали
enderio.category.tools=EnderIO - Инструменты
enderio.keybind.glidertoggle=Переключить планер
enderio.keybind.gogglesofrevealing=Очки откровения
enderio.keybind.trackmansgoggles=Очки обходчика путей
enderio.keybind.nightvision=Ночное зрение
enderio.keybind.soundlocator=Звуколокатор
enderio.keybind.speed=Скорость
@@ -613,8 +613,6 @@ tile.blockExperienceObelisk.tooltip.detailed.line3=至相邻的储罐中
tile.blockWeatherObelisk.name=气象方尖碑
tile.blockWeatherObelisk.tooltip.detailed.line1=改变当前天气
tile.blockWeatherObelisk.tooltip.detailed.line2=需要大量能量
tile.blockWeatherObelisk.tooltip.detailed.line3=和催化物品
tile.blockBuffer.item.name=物品缓存器
tile.blockBuffer.power.name=能量缓存器
@@ -949,6 +947,8 @@ enderio.darksteel.upgrade.apiaristArmor.leggings.tooltip.detailed.line1=提供
enderio.darksteel.upgrade.apiaristArmor.boots.name=养蜂员之鞋
enderio.darksteel.upgrade.apiaristArmor.boots.tooltip.detailed.line1=提供保护以减少蜜蜂的伤害
enderio.darksteel.upgrade.trackmansGoggles.name=铁路工护目镜
item.itemGliderWing.name=滑翔翼
item.itemGliderWings.name=滑翔翼
item.itemGliderWings.tooltip.detailed.line1=用于升级
@@ -1372,6 +1372,7 @@ enderio.category.darksteelarmor=玄铁护甲
enderio.category.tools=EnderIO - 工具
enderio.keybind.glidertoggle=滑翔开关
enderio.keybind.gogglesofrevealing=揭示护目镜
enderio.keybind.trackmansgoggles=铁路工护目镜
enderio.keybind.nightvision=夜视
enderio.keybind.soundlocator=声波定位
enderio.keybind.speed=速度
@@ -1009,8 +1009,11 @@ enderio.gui.void.mode.never.desc=Void slot does not accept items
enderio.tile.blockPoweredSpawner.tooltip.none=None
tile.blockWeatherObelisk.name=Weather Obelisk
tile.blockWeatherObelisk.tooltip.detailed.line1=Changes the current weather
tile.blockWeatherObelisk.tooltip.detailed.line2=Requires a lot of power and
tile.blockWeatherObelisk.tooltip.detailed.line3=a catalyst item
tile.blockWeatherObelisk.tooltip.detailed.line2=Requires a firework rocket and 1000 L
tile.blockWeatherObelisk.tooltip.detailed.line3=of one of the following liquids:
tile.blockWeatherObelisk.tooltip.detailed.line4=Liquid Sunshine: Sun
tile.blockWeatherObelisk.tooltip.detailed.line5=Cloud Seed: Rain
tile.blockWeatherObelisk.tooltip.detailed.line6=Concentrated Cloud Seed: Thunder
tile.blockBuffer.item.name=Item Buffer
tile.blockBuffer.power.name=Power Buffer
tile.blockBuffer.omni.name=Omni Buffer