Compare commits

..
17 Commits
Author SHA1 Message Date
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
Maya f43936c29a update 2025-02-14 11:57:41 -06:00
Maya c6471ed6b0 Mark EnderCore as a required dependency (#185) 2025-02-14 17:57:27 +00:00
Maya 654b95da1a update 2025-02-03 15:05:58 -06:00
Dioxop d70263f3af Adding "show range" button to multiple machines (#184) 2025-02-03 15:04:20 -06:00
Martin Robertz c10f74486b update 2024-12-31 14:36:18 +01:00
glowredman c7db2c4840 Add Localizations (#183) 2024-12-30 17:44:29 -06:00
Martin Robertz 948a021f3e update 2024-12-29 18:01:20 +01:00
Simon Zünd 346bbf4e53 Remove left-over code and textures for ultra dense ME conduits (#182) 2024-12-29 16:25:03 +00:00
Martin Robertz 5769ebe3cb update 2024-12-22 01:21:47 +01:00
Pascal 4558f194be ensure TileLightNode instance at breakBlock (#181) 2024-12-21 10:31:30 -06:00
54 changed files with 676 additions and 124 deletions

No files matched your search

+1
View File
@@ -27,3 +27,4 @@ whitelist.json
*.iws
src/main/resources/mixins.*.json
*.bat
layout.json
+13 -12
View File
@@ -2,21 +2,22 @@
dependencies {
api('com.github.GTNewHorizons:EnderCore:0.4.6:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForestryMC:4.9.21:dev')
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.6.53-GTNH:dev')
api("com.github.GTNewHorizons:GTNHLib:0.5.23:dev")
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.39:dev')
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.5:dev')
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.34-GTNH:dev')
api("com.github.GTNewHorizons:GTNHLib:0.6.18: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')
compileOnly('com.github.GTNewHorizons:waila:1.8.2:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-484-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-576-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Baubles:1.0.4:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.50.113:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.15.16:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:StorageDrawers:2.0.5-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Chisel:2.15.4-GTNH:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.10.28-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.227:dev') {transitive = false}
compileOnly("com.github.GTNewHorizons:ModularUI2:2.2.6-1.7.10:dev") {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.7: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.12-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 +25,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-beta28:api') {transitive = false}
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta40: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.30'
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.38'
}
@@ -107,7 +107,7 @@ import crazypants.enderio.machine.power.BlockCapacitorBank;
import crazypants.enderio.machine.power.CapBankRenderer2;
import crazypants.enderio.machine.power.CapacitorBankRenderer;
import crazypants.enderio.machine.ranged.RangeEntity;
import crazypants.enderio.machine.ranged.RangeRenerer;
import crazypants.enderio.machine.ranged.RangeRenderer;
import crazypants.enderio.machine.reservoir.ReservoirRenderer;
import crazypants.enderio.machine.reservoir.TileReservoir;
import crazypants.enderio.machine.solar.BlockSolarPanel;
@@ -419,7 +419,7 @@ public class ClientProxy extends CommonProxy {
FMLCommonHandler.instance().bus().register(KeyTracker.instance);
RenderingRegistry.registerEntityRenderingHandler(SoundEntity.class, new SoundRenderer());
RenderingRegistry.registerEntityRenderingHandler(RangeEntity.class, new RangeRenerer());
RenderingRegistry.registerEntityRenderingHandler(RangeEntity.class, new RangeRenderer());
MinecraftForge.EVENT_BUS.register(SoundDetector.instance);
FMLCommonHandler.instance().bus().register(SoundDetector.instance);
@@ -186,7 +186,7 @@ import crazypants.util.EE3Util;
modid = MODID,
name = MOD_NAME,
version = VERSION,
dependencies = "required-after:CoFHLib@(1.0.3B3,);after:endercore;after:MineFactoryReloaded;after:Forestry;after:Waila@[1.5.8,);after:Thaumcraft;after:appliedenergistics2@[rv2-beta-8,);after:chisel;required-after:gtnhlib@[0.2.10,)",
dependencies = "required-after:CoFHLib@(1.0.3B3,);required-after:endercore;after:MineFactoryReloaded;after:Forestry;after:Waila@[1.5.8,);after:Thaumcraft;after:appliedenergistics2@[rv2-beta-8,);after:chisel;required-after:gtnhlib@[0.2.10,)",
guiFactory = "crazypants.enderio.config.ConfigFactoryEIO")
public class EnderIO {
@@ -697,10 +697,6 @@ public class ConduitRecipes {
res.stackSize = 1;
ItemStack resDense = new ItemStack(EnderIO.itemMEConduit, 1, 1);
ItemStack resUltra = new ItemStack(EnderIO.itemMEConduit, 1, 2);
addShaped(resDense, "bCb", "CbC", "bCb", 'b', conduitBinder, 'C', res);
if (Config.enableMEUltraDenseConduits) {
addShaped(resUltra, "bCb", "CbC", "bCb", 'b', conduitBinder, 'C', resDense);
}
}
}
@@ -14,7 +14,5 @@ public interface IMEConduit extends IConduit {
boolean isDense();
boolean isDenseUltra();
int getChannelsInUse();
}
@@ -16,7 +16,6 @@ import com.enderio.core.client.render.IconUtil;
import com.enderio.core.common.util.BlockCoord;
import appeng.api.AEApi;
import appeng.api.networking.GridFlags;
import appeng.api.networking.IGridConnection;
import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode;
@@ -51,7 +50,6 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
public static IIcon[] longTextures;
private boolean isDense;
private boolean isDenseUltra;
private int playerID = -1;
public MEConduit() {
@@ -59,7 +57,6 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
}
public MEConduit(int itemDamage) {
isDenseUltra = itemDamage == 2;
isDense = itemDamage == 1;
}
@@ -68,16 +65,14 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
@Override
public void registerIcons(IIconRegister register) {
coreTextures = new IIcon[3];
longTextures = new IIcon[3];
coreTextures = new IIcon[2];
longTextures = new IIcon[2];
coreTextures[0] = register.registerIcon(EnderIO.DOMAIN + ":meConduitCore");
coreTextures[1] = register.registerIcon(EnderIO.DOMAIN + ":meConduitCoreDense");
coreTextures[2] = register.registerIcon(EnderIO.DOMAIN + ":meConduitCoreDenseUltra");
longTextures[0] = register.registerIcon(EnderIO.DOMAIN + ":meConduit");
longTextures[1] = register.registerIcon(EnderIO.DOMAIN + ":meConduitDense");
longTextures[2] = register.registerIcon(EnderIO.DOMAIN + ":meConduitDenseUltra");
}
@Override
@@ -87,10 +82,7 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
});
}
public static int getDamageForState(boolean isDense, boolean isDenseUltra) {
if (isDenseUltra) {
return 2;
}
public static int getDamageForState(boolean isDense) {
if (isDense) {
return 1;
}
@@ -104,7 +96,7 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
@Override
public ItemStack createItem() {
return new ItemStack(EnderIO.itemMEConduit, 1, getDamageForState(isDense, isDenseUltra));
return new ItemStack(EnderIO.itemMEConduit, 1, getDamageForState(isDense));
}
@Override
@@ -122,7 +114,6 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
public void writeToNBT(NBTTagCompound nbtRoot) {
super.writeToNBT(nbtRoot);
nbtRoot.setBoolean("isDense", isDense);
nbtRoot.setBoolean("isDenseUltra", isDenseUltra);
nbtRoot.setInteger("playerID", playerID);
}
@@ -135,9 +126,6 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
} else {
playerID = -1;
}
if (nbtRoot.hasKey("isDenseUltra")) {
isDenseUltra = nbtRoot.getBoolean("isDenseUltra");
}
}
public void setPlayerID(int playerID) {
@@ -208,22 +196,12 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
@Method(modid = "appliedenergistics2")
private Boolean canConnectToGridNode(IGridNode node, ForgeDirection dir) {
if (node.getGridBlock().getConnectableSides().contains(dir.getOpposite())) {
if (isDenseUltra()) {
return node.hasFlag(GridFlags.ULTRA_DENSE_CAPACITY)
|| ((node.hasFlag(GridFlags.DENSE_CAPACITY)) && !node.hasFlag(GridFlags.CANNOT_CARRY));
} else if (isDense()) {
return true;
} else {
return !node.hasFlag(GridFlags.ULTRA_DENSE_CAPACITY);
}
}
return false;
return node.getGridBlock().getConnectableSides().contains(dir.getOpposite());
}
@Override
public IIcon getTextureForState(CollidableComponent component) {
int state = getDamageForState(isDense, isDenseUltra);
int state = getDamageForState(isDense);
if (component.dir == ForgeDirection.UNKNOWN) {
return coreTextures[state];
} else {
@@ -400,9 +378,4 @@ public class MEConduit extends AbstractConduit implements IMEConduit {
public boolean isDense() {
return isDense;
}
@Override
public boolean isDenseUltra() {
return isDenseUltra;
}
}
@@ -43,9 +43,6 @@ public class MEConduitGrid implements IGridBlock {
@Override
public EnumSet<GridFlags> getFlags() {
if (conduit.isDenseUltra()) {
return EnumSet.of(GridFlags.ULTRA_DENSE_CAPACITY);
}
if (conduit.isDense()) {
return EnumSet.of(GridFlags.DENSE_CAPACITY);
}
@@ -285,6 +285,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;
@@ -475,7 +477,6 @@ public final class Config {
public static boolean isGasConduitEnabled = true;
public static boolean enableMEConduits = true;
public static boolean enableMEUltraDenseConduits = false;
public static boolean enableOCConduits = true;
public static boolean enableOCConduitsAnimatedTexture = true;
@@ -1610,6 +1611,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",
@@ -2415,11 +2424,6 @@ public final class Config {
sectionItems.name,
enableMEConduits,
"Allows ME conduits. Only has an effect with AE2 installed.");
enableMEUltraDenseConduits = config.getBoolean(
"enableMEUltraDenseConduits",
sectionItems.name,
enableMEUltraDenseConduits,
"Allows ME Ultra Dense conduits. Only has an effect with AE2 installed.");
enableOCConduits = config.getBoolean(
"enableOCConduits",
sectionItems.name,
@@ -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") })
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")
@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") })
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")
@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();
}
}
@@ -1,5 +1,7 @@
package crazypants.enderio.machine.farm;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
@@ -10,9 +12,11 @@ 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.ColorUtil;
import com.enderio.core.client.render.RenderUtil;
import com.enderio.core.common.vecmath.Vector4f;
import com.google.common.collect.Lists;
import crazypants.enderio.EnderIO;
import crazypants.enderio.gui.IconEIO;
@@ -20,11 +24,42 @@ import crazypants.enderio.machine.gui.GuiPoweredMachineBase;
public class GuiFarmStation extends GuiPoweredMachineBase<TileFarmStation> {
private static final int RANGE_ID = 8738924;
private static final int LOCK_ID = 1234;
private final ToggleButton showRangeB;
public GuiFarmStation(InventoryPlayer par1InventoryPlayer, TileFarmStation machine) {
super(machine, new FarmStationContainer(par1InventoryPlayer, machine), "farmStation");
int x = getXSize() - 5 - BUTTON_SIZE / 2;
int y = getGuiTop() + 5;
getRedstoneBtn().setPosition(x, y);
y += BUTTON_SIZE + 2;
getConfigBtn().setPosition(x, y);
y += BUTTON_SIZE + 2;
showRangeB = new ToggleButton(this, RANGE_ID, x, y, IconEIO.PLUS, IconEIO.MINUS);
showRangeB.setSize(BUTTON_SIZE, BUTTON_SIZE);
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
@Override
public List<String> getToolTipText() {
return Lists.newArrayList(
EnderIO.lang.localize(
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
}
});
setYSize(ySize + 3);
setXSize(xSize + 8);
}
@Override
protected int getPowerU() {
return 184;
}
@SuppressWarnings("unchecked")
@@ -32,6 +67,9 @@ public class GuiFarmStation extends GuiPoweredMachineBase<TileFarmStation> {
public void initGui() {
super.initGui();
showRangeB.onGuiInit();
showRangeB.setSelected(getTileEntity().isShowingRange());
int x = getGuiLeft() + 36;
int y = getGuiTop() + 43;
@@ -94,7 +132,10 @@ public class GuiFarmStation extends GuiPoweredMachineBase<TileFarmStation> {
protected void actionPerformed(GuiButton b) {
if (b.id >= LOCK_ID + TileFarmStation.minSupSlot && b.id <= LOCK_ID + TileFarmStation.maxSupSlot) {
getTileEntity().toggleLockedState(b.id - LOCK_ID);
} else if (b.id == RANGE_ID) {
getTileEntity().setShowRange(showRangeB.isSelected());
}
super.actionPerformed(b);
}
@@ -15,12 +15,17 @@ import net.minecraft.item.ItemShears;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import com.enderio.core.common.util.BlockCoord;
import com.enderio.core.common.vecmath.Vector3d;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.ModObject;
import crazypants.enderio.config.Config;
@@ -32,13 +37,52 @@ import crazypants.enderio.machine.SlotDefinition;
import crazypants.enderio.machine.farm.farmers.FarmersCommune;
import crazypants.enderio.machine.farm.farmers.IHarvestResult;
import crazypants.enderio.machine.farm.farmers.RubberTreeFarmerIC2;
import crazypants.enderio.machine.ranged.IRanged;
import crazypants.enderio.machine.ranged.RangeEntity;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.power.BasicCapacitor;
import crazypants.enderio.tool.ArrayMappingTool;
public class TileFarmStation extends AbstractPoweredTaskEntity {
public class TileFarmStation extends AbstractPoweredTaskEntity implements IRanged {
private static final int TICKS_PER_WORK = 20;
private boolean showingRange;
@Override
public World getWorld() {
return worldObj;
}
@Override
public AxisAlignedBB getBounds() {
return null;
}
@Override
public Vector3d getRange() {
return new Vector3d(getFarmSize(), 0, getFarmSize());
}
@Override
public boolean isShowingRange() {
return showingRange;
}
@SideOnly(Side.CLIENT)
public void setShowRange(boolean showRange) {
if (showingRange == showRange) {
return;
}
showingRange = showRange;
if (showingRange) {
worldObj.spawnEntityInWorld(new RangeEntity(this));
}
}
@Override
public int getColor() {
return 0x66FFAA00;
}
public enum ToolType {
@@ -13,6 +13,7 @@ import org.lwjgl.opengl.GL11;
import com.enderio.core.api.common.util.IProgressTile;
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;
import com.enderio.core.common.util.BlockCoord;
@@ -211,4 +212,12 @@ public abstract class GuiMachineBase<T extends AbstractMachineEntity> extends Gu
}
return 0;
}
protected RedstoneModeButton getRedstoneBtn() {
return redstoneButton;
}
protected ToggleButton getConfigBtn() {
return configB;
}
}
@@ -1,6 +1,7 @@
package crazypants.enderio.machine.killera;
import java.awt.Rectangle;
import java.util.List;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.InventoryPlayer;
@@ -8,9 +9,11 @@ import net.minecraft.entity.player.InventoryPlayer;
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;
import com.enderio.core.common.util.SoundUtil;
import com.google.common.collect.Lists;
import crazypants.enderio.EnderIO;
import crazypants.enderio.fluid.Fluids;
@@ -23,6 +26,9 @@ import crazypants.enderio.xp.PacketGivePlayerXP;
public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
private static final int RANGE_ID = 8738924;
private final ToggleButton showRangeB;
private static final int XP_ID = 3489;
private static final int XP10_ID = 34892;
@@ -32,6 +38,18 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
public GuiKillerJoe(InventoryPlayer inventory, final TileKillerJoe tileEntity) {
super(tileEntity, new ContainerKillerJoe(inventory, tileEntity), "killerJoe");
showRangeB = new ToggleButton(this, RANGE_ID, 155, 24 + 18, IconEIO.PLUS, IconEIO.MINUS);
showRangeB.setSize(BUTTON_SIZE, BUTTON_SIZE);
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
@Override
public List<String> getToolTipText() {
return Lists.newArrayList(
EnderIO.lang.localize(
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
}
});
addToolTip(new GuiToolTip(new Rectangle(18, 11, 15, 47), "") {
@Override
@@ -46,11 +64,17 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
}
});
xpB = new IconButton(this, XP_ID, 128, 56, IconEIO.XP);
xpB.setToolTip(EnderIO.lang.localize("killerJoe.giveXp.tooltip"));
int size = 14;
int x = guiLeft + 56 + (65 / 2);
int y = guiTop + 62 + 6;
xp10B = new IconButton(this, XP10_ID, 148, 56, IconEIO.XP_PLUS);
xpB = new IconButton(this, XP_ID, x - 16, y, IconEIO.XP);
xpB.setToolTip(EnderIO.lang.localize("killerJoe.giveXp.tooltip"));
xpB.setSize(size, size);
xp10B = new IconButton(this, XP10_ID, x + 2, y, IconEIO.XP_PLUS);
xp10B.setToolTip(EnderIO.lang.localize("killerJoe.giveXp10.tooltip"));
xp10B.setSize(size, size);
}
@Override
@@ -58,6 +82,9 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
super.initGui();
xpB.onGuiInit();
xp10B.onGuiInit();
showRangeB.onGuiInit();
showRangeB.setSelected(getTileEntity().isShowingRange());
((ContainerKillerJoe) inventorySlots).createGhostSlots(getGhostSlots());
}
@@ -70,6 +97,8 @@ public class GuiKillerJoe extends GuiMachineBase<TileKillerJoe> {
} else if (b.id == XP10_ID) {
PacketHandler.INSTANCE.sendToServer(new PacketGivePlayerXP(getTileEntity(), 10));
SoundUtil.playClientSoundFX("random.orb", getTileEntity());
} else if (b.id == RANGE_ID) {
getTileEntity().setShowRange(showRangeB.isSelected());
}
}
@@ -16,6 +16,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.FakePlayer;
@@ -39,6 +40,8 @@ import com.mojang.authlib.GameProfile;
import cpw.mods.fml.common.eventhandler.Event.Result;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.ModObject;
import crazypants.enderio.config.Config;
@@ -47,6 +50,8 @@ import crazypants.enderio.machine.FakePlayerEIO;
import crazypants.enderio.machine.SlotDefinition;
import crazypants.enderio.machine.generator.zombie.IHasNutrientTank;
import crazypants.enderio.machine.generator.zombie.PacketNutrientTank;
import crazypants.enderio.machine.ranged.IRanged;
import crazypants.enderio.machine.ranged.RangeEntity;
import crazypants.enderio.machine.wireless.WirelessChargedLocation;
import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.tool.SmartTank;
@@ -56,7 +61,46 @@ import crazypants.enderio.xp.PacketExperianceContainer;
import crazypants.enderio.xp.XpUtil;
public class TileKillerJoe extends AbstractMachineEntity
implements IFluidHandler, IEntitySelector, IHaveExperience, ITankAccess, IHasNutrientTank {
implements IFluidHandler, IEntitySelector, IHaveExperience, ITankAccess, IHasNutrientTank, IRanged {
private boolean showingRange;
@Override
public World getWorld() {
return worldObj;
}
@Override
public AxisAlignedBB getBounds() {
return getKillBounds();
}
@Override
public Vector3d getRange() {
return null;
}
@Override
@SideOnly(Side.CLIENT)
public boolean isShowingRange() {
return showingRange;
}
@SideOnly(Side.CLIENT)
public void setShowRange(boolean showRange) {
if (showingRange == showRange) {
return;
}
showingRange = showRange;
if (showingRange) {
worldObj.spawnEntityInWorld(new RangeEntity(this));
}
}
@Override
public int getColor() {
return 0x66FF0000;
}
public static class ZombieCache {
@@ -67,7 +67,7 @@ public class GuiAttractor extends GuiPoweredMachineBase<TileAttractor> {
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
int range = (int) getTileEntity().getRange();
int range = (int) getTileEntity().getRange().x;
drawCenteredString(
fontRendererObj,
EnderIO.lang.localize("gui.spawnGurad.range") + " " + range,
@@ -61,8 +61,13 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
}
@Override
public float getRange() {
return range;
public AxisAlignedBB getBounds() {
return null;
}
@Override
public Vector3d getRange() {
return new Vector3d(range, range, range);
}
@Override
@@ -71,6 +76,11 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
return showingRange;
}
@Override
public int getColor() {
return 0x66FFFFFF;
}
@SideOnly(Side.CLIENT)
public void setShowRange(boolean showRange) {
if (showingRange == showRange) {
@@ -317,8 +327,7 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
ent.faceEntity(getTarget(), 10.0F, 20.0F);
return true;
} else if (ent instanceof EntitySilverfish) {
PathEntity pathentity = worldObj
.getPathEntityToEntity(ent, getTarget(), getRange(), true, false, false, true);
PathEntity pathentity = worldObj.getPathEntityToEntity(ent, getTarget(), range, true, false, false, true);
((EntityCreature) ent).setPathToEntity(pathentity);
return true;
} else if (ent instanceof EntityBlaze) {
@@ -339,8 +348,7 @@ public class TileAttractor extends AbstractPowerConsumerEntity implements IRange
return;
}
EntitySilverfish sf = (EntitySilverfish) ent;
PathEntity pathentity = worldObj
.getPathEntityToEntity(ent, getTarget(), getRange(), true, false, false, true);
PathEntity pathentity = worldObj.getPathEntityToEntity(ent, getTarget(), range, true, false, false, true);
sf.setPathToEntity(pathentity);
} else if (ent instanceof EntityBlaze) {
EntityBlaze mob = (EntityBlaze) ent;
@@ -58,7 +58,7 @@ public class GuiAversionObelisk extends GuiPoweredMachineBase<TileAversionObelis
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
int range = (int) getTileEntity().getRange();
int range = (int) getTileEntity().getRange().x;
drawCenteredString(
fontRendererObj,
EnderIO.lang.localize("gui.spawnGurad.range") + " " + range,
@@ -9,6 +9,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import com.enderio.core.client.render.BoundingBox;
import com.enderio.core.common.vecmath.Vector3d;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -40,6 +41,11 @@ public class TileAversionObelisk extends AbstractPowerConsumerEntity implements
return showingRange;
}
@Override
public int getColor() {
return 0x66FFFFFF;
}
@SideOnly(Side.CLIENT)
public void setShowRange(boolean showRange) {
if (showingRange == showRange) {
@@ -64,8 +70,13 @@ public class TileAversionObelisk extends AbstractPowerConsumerEntity implements
}
@Override
public float getRange() {
return range;
public AxisAlignedBB getBounds() {
return null;
}
@Override
public Vector3d getRange() {
return new Vector3d(range, range, range);
}
@Override
@@ -28,7 +28,7 @@ public class GuiInhibitorObelisk extends GuiPoweredMachineBase<TileInhibitorObel
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
int range = (int) getTileEntity().getRange();
int range = (int) getTileEntity().getRange().x;
drawCenteredString(
fontRendererObj,
EnderIO.lang.localize("gui.spawnGurad.range") + " " + range,
@@ -1,8 +1,11 @@
package crazypants.enderio.machine.obelisk.inhibitor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import com.enderio.core.common.vecmath.Vector3d;
import crazypants.enderio.ModObject;
import crazypants.enderio.machine.AbstractPowerConsumerEntity;
import crazypants.enderio.machine.SlotDefinition;
@@ -42,8 +45,13 @@ public class TileInhibitorObelisk extends AbstractPowerConsumerEntity implements
}
@Override
public float getRange() {
return range;
public AxisAlignedBB getBounds() {
return null;
}
@Override
public Vector3d getRange() {
return new Vector3d(range, range, range);
}
public void setRange(float range) {
@@ -56,6 +64,11 @@ public class TileInhibitorObelisk extends AbstractPowerConsumerEntity implements
return false;
}
@Override
public int getColor() {
return 0x66FFFFFF;
}
@Override
public void validate() {
super.validate();
@@ -1,8 +1,10 @@
package crazypants.enderio.machine.ranged;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import com.enderio.core.common.util.BlockCoord;
import com.enderio.core.common.vecmath.Vector3d;
public interface IRanged {
@@ -10,7 +12,11 @@ public interface IRanged {
BlockCoord getLocation();
float getRange();
AxisAlignedBB getBounds();
Vector3d getRange();
boolean isShowingRange();
int getColor();
}
@@ -5,6 +5,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import com.enderio.core.common.util.BlockCoord;
import com.enderio.core.common.vecmath.Vector3d;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -13,16 +14,22 @@ public class RangeEntity extends Entity {
int totalLife = 20;
int lifeSpan = totalLife;
float range;
private IRanged spawnGuard;
private Vector3d lastRange;
private AxisAlignedBB lastBounds;
private final IRanged spawnGuard;
private int color;
private AxisAlignedBB rangeBounds;
private Vector3d range;
public RangeEntity(IRanged sg) {
super(sg.getWorld());
spawnGuard = sg;
BlockCoord bc = spawnGuard.getLocation();
setPosition(bc.x + 0.5, bc.y + 0.5, bc.z + 0.5);
setPosition(bc.x - 0.01, bc.y - 0.01, bc.z - 0.01);
ignoreFrustumCheck = true;
range = sg.getRange() + 0.5f;
color = sg.getColor();
lastRange = spawnGuard.getRange();
lastBounds = spawnGuard.getBounds();
}
@Override
@@ -41,7 +48,14 @@ public class RangeEntity extends Entity {
@Override
public AxisAlignedBB getBoundingBox() {
return null;
return spawnGuard.getBounds() != null ? spawnGuard.getBounds()
: AxisAlignedBB.getBoundingBox(
posX - lastRange.x,
posY - lastRange.y,
posZ - lastRange.z,
posX + lastRange.x + 1,
posY + lastRange.y + 1,
posZ + lastRange.z + 1);
}
@Override
@@ -49,6 +63,8 @@ public class RangeEntity extends Entity {
super.onUpdate();
lifeSpan--;
BlockCoord bc = spawnGuard.getLocation();
updateRange();
if (!(worldObj.getTileEntity(bc.x, bc.y, bc.z) instanceof IRanged)) {
setDead();
}
@@ -62,4 +78,17 @@ public class RangeEntity extends Entity {
@Override
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) {}
private void updateRange() {
if (lastRange != null && !lastRange.equals(spawnGuard.getRange())) {
lastRange = spawnGuard.getRange();
} else if (lastBounds != null && !lastBounds.equals(spawnGuard.getBounds())) {
lastBounds = spawnGuard.getBounds();
}
}
public float[] getColor() {
return new float[] { (float) (this.color >> 16 & 255) / 255.0F, (float) (this.color >> 8 & 255) / 255.0F,
(float) (this.color & 255) / 255.0F, (float) (this.color >> 24 & 255) / 255.0F };
}
}
@@ -3,6 +3,7 @@ package crazypants.enderio.machine.ranged;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderEntity;
import net.minecraft.entity.Entity;
import net.minecraft.util.AxisAlignedBB;
import org.lwjgl.opengl.GL11;
@@ -10,17 +11,19 @@ import com.enderio.core.client.render.BoundingBox;
import com.enderio.core.client.render.CubeRenderer;
import com.enderio.core.client.render.IconUtil;
import com.enderio.core.client.render.RenderUtil;
import com.enderio.core.common.vecmath.Vector3d;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class RangeRenerer extends RenderEntity {
public class RangeRenderer extends RenderEntity {
@Override
public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) {
RangeEntity se = ((RangeEntity) entity);
AxisAlignedBB rangeBB = se.getBoundingBox();
final Tessellator tessellator = Tessellator.instance;
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
@@ -30,21 +33,29 @@ public class RangeRenerer extends RenderEntity {
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glDepthMask(false);
float scale = 1 - (se.lifeSpan / (float) se.totalLife);
scale = Math.min(scale, 1);
scale *= se.range;
Vector3d translate = new Vector3d(
-(se.posX - rangeBB.minX + 0.01),
-(se.posY - rangeBB.minY + 0.01),
-(se.posZ - rangeBB.minZ + 0.01));
Vector3d scale = new Vector3d(
1 - (se.lifeSpan / (float) se.totalLife),
1 - (se.lifeSpan / (float) se.totalLife),
rangeBB.maxZ - rangeBB.minZ);
scale.x = Math.min(scale.x, 1);
scale.y = Math.min(scale.y, 1);
scale.x *= (rangeBB.maxX - rangeBB.minX);
scale.y *= (rangeBB.maxY - rangeBB.minY);
GL11.glPushMatrix();
GL11.glTranslatef((float) x, (float) y, (float) z);
GL11.glTranslatef(0.5f, 0.5f, 0.5f);
GL11.glScalef(scale, scale, scale);
GL11.glTranslatef(-0.5f, -0.5f, -0.5f);
GL11.glColor4f(1, 1, 1, 0.4f);
GL11.glColor4f(se.getColor()[0], se.getColor()[1], se.getColor()[2], se.getColor()[3]);
RenderUtil.bindBlockTexture();
tessellator.startDrawingQuads();
GL11.glTranslated(x, y, z);
GL11.glTranslated(translate.x, translate.y, translate.z);
GL11.glScaled(scale.x, scale.y, scale.z);
tessellator.setBrightness(15 << 20 | 15 << 4);
CubeRenderer.get().render(BoundingBox.UNIT_CUBE, IconUtil.whiteTexture);
tessellator.draw();
@@ -2,6 +2,7 @@ package crazypants.enderio.machine.spawner;
import java.awt.Color;
import java.awt.Rectangle;
import java.util.List;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
@@ -10,22 +11,40 @@ import net.minecraft.entity.player.InventoryPlayer;
import org.lwjgl.opengl.GL11;
import com.enderio.core.client.gui.button.MultiIconButton;
import com.enderio.core.client.gui.button.ToggleButton;
import com.enderio.core.client.gui.widget.GuiToolTip;
import com.enderio.core.client.render.ColorUtil;
import com.google.common.collect.Lists;
import crazypants.enderio.EnderIO;
import crazypants.enderio.gui.IconEIO;
import crazypants.enderio.machine.gui.GuiPoweredMachineBase;
import crazypants.enderio.network.PacketHandler;
public class GuiPoweredSpawner extends GuiPoweredMachineBase<TilePoweredSpawner> {
private static final int RANGE_ID = 8738924;
private final MultiIconButton modeB;
private final Rectangle progressTooltipRect;
private final ToggleButton showRangeB;
private boolean wasSpawnMode;
private String header;
public GuiPoweredSpawner(InventoryPlayer par1InventoryPlayer, TilePoweredSpawner te) {
super(te, new ContainerPoweredSpawner(par1InventoryPlayer, te), "poweredSpawner");
showRangeB = new ToggleButton(this, RANGE_ID, 155, 24 + 18, IconEIO.PLUS, IconEIO.MINUS);
showRangeB.setSize(BUTTON_SIZE, BUTTON_SIZE);
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
@Override
public List<String> getToolTipText() {
return Lists.newArrayList(
EnderIO.lang.localize(
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
}
});
modeB = MultiIconButton.createRightArrowButton(this, 8888, 115, 10);
modeB.setSize(10, 16);
@@ -38,6 +57,8 @@ public class GuiPoweredSpawner extends GuiPoweredMachineBase<TilePoweredSpawner>
@Override
public void initGui() {
super.initGui();
showRangeB.onGuiInit();
showRangeB.setSelected(getTileEntity().isShowingRange());
modeB.onGuiInit();
((ContainerPoweredSpawner) inventorySlots).createGhostSlots(getGhostSlots());
}
@@ -47,9 +68,9 @@ public class GuiPoweredSpawner extends GuiPoweredMachineBase<TilePoweredSpawner>
if (par1GuiButton == modeB) {
getTileEntity().setSpawnMode(!getTileEntity().isSpawnMode());
PacketHandler.INSTANCE.sendToServer(new PacketMode(getTileEntity()));
} else {
super.actionPerformed(par1GuiButton);
}
} else if (par1GuiButton.id == RANGE_ID) {
getTileEntity().setShowRange(showRangeB.isSelected());
} else super.actionPerformed(par1GuiButton);
}
private void updateSpawnMode(boolean spawnMode) {
@@ -7,7 +7,12 @@ import net.minecraft.entity.EnumCreatureType;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import com.enderio.core.common.vecmath.Vector3d;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.ModObject;
import crazypants.enderio.config.Config;
@@ -16,11 +21,13 @@ import crazypants.enderio.machine.IMachineRecipe;
import crazypants.enderio.machine.IPoweredTask;
import crazypants.enderio.machine.PoweredTask;
import crazypants.enderio.machine.SlotDefinition;
import crazypants.enderio.machine.ranged.IRanged;
import crazypants.enderio.machine.ranged.RangeEntity;
import crazypants.enderio.power.BasicCapacitor;
import crazypants.enderio.power.Capacitors;
import crazypants.enderio.power.ICapacitor;
public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
public class TilePoweredSpawner extends AbstractPoweredTaskEntity implements IRanged {
public static final int MIN_SPAWN_DELAY_BASE = Config.poweredSpawnerMinDelayTicks;
public static final int MAX_SPAWN_DELAY_BASE = Config.poweredSpawnerMaxDelayTicks;
@@ -94,6 +101,7 @@ public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
private boolean isSpawnMode = true;
private int powerUsePerTick;
private int remainingSpawnTries;
private boolean showingRange;
public TilePoweredSpawner() {
super(new SlotDefinition(1, 1, 1));
@@ -178,6 +186,7 @@ public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
basePowerUse = POWER_PER_TICK_TEN;
break;
}
double multiplier = PoweredSpawnerConfig.getInstance().getCostMultiplierFor(getEntityName());
setCapacitor(
new BasicCapacitor(
@@ -375,4 +384,41 @@ public class TilePoweredSpawner extends AbstractPoweredTaskEntity {
public boolean hasEntityName() {
return !NULL_ENTITY_NAME.equals(entityTypeName);
}
@Override
public World getWorld() {
return worldObj;
}
@Override
public AxisAlignedBB getBounds() {
return null;
}
@Override
public Vector3d getRange() {
int range = Config.poweredSpawnerSpawnRange - 1;
return new Vector3d(range, 1, range);
}
@Override
public boolean isShowingRange() {
return showingRange;
}
@SideOnly(Side.CLIENT)
public void setShowRange(boolean showRange) {
if (showingRange == showRange) {
return;
}
showingRange = showRange;
if (showingRange) {
worldObj.spawnEntityInWorld(new RangeEntity(this));
}
}
@Override
public int getColor() {
return 0x66FF0000;
}
}
@@ -2,6 +2,7 @@ package crazypants.enderio.machine.vacuum;
import java.awt.Color;
import java.awt.Rectangle;
import java.util.List;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
@@ -18,6 +19,7 @@ import com.enderio.core.client.gui.widget.GuiToolTip;
import com.enderio.core.client.render.ColorUtil;
import com.enderio.core.client.render.EnderWidget;
import com.enderio.core.common.util.BlockCoord;
import com.google.common.collect.Lists;
import crazypants.enderio.EnderIO;
import crazypants.enderio.conduit.item.filter.ItemFilter;
@@ -28,6 +30,7 @@ import crazypants.enderio.network.PacketHandler;
public class GuiVacuumChest extends GuiContainerBaseEIO {
private static final int RANGE_ID = 8738924;
private static final int RANGE_LEFT = 145;
private static final int RANGE_TOP = 86;
private static final int RANGE_WIDTH = 16;
@@ -43,6 +46,7 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
private final TileVacuumChest te;
private final ToggleButton showRangeB;
private final GuiToolTip rangeTooltip;
private final MultiIconButton rangeUpB;
private final MultiIconButton rangeDownB;
@@ -75,6 +79,18 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
y = 104;
rsB = new RedstoneModeButton(this, ID_REDSTONE, x, y, te, new BlockCoord(te));
showRangeB = new ToggleButton(this, RANGE_ID, x - 18, y, IconEIO.PLUS, IconEIO.MINUS);
showRangeB.setSize(16, 16);
addToolTip(new GuiToolTip(showRangeB.getBounds(), "null") {
@Override
public List<String> getToolTipText() {
return Lists.newArrayList(
EnderIO.lang.localize(
showRangeB.isSelected() ? "gui.spawnGurad.hideRange" : "gui.spawnGurad.showRange"));
}
});
x = FILTER_LEFT + TileVacuumChest.FILTER_SLOTS * 18 + 2;
y = 86;
whiteListB = new ToggleButton(this, ID_WHITELIST, x, y, IconEIO.FILTER_WHITELIST, IconEIO.FILTER_BLACKLIST);
@@ -110,6 +126,8 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
public void initGui() {
super.initGui();
showRangeB.onGuiInit();
showRangeB.setSelected(te.isShowingRange());
rangeUpB.onGuiInit();
rangeDownB.onGuiInit();
rsB.onGuiInit();
@@ -124,11 +142,13 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
ItemFilter itemFilter;
switch (guiButton.id) {
case ID_RANGE_UP:
setRange(te.getRange() + 1);
setRange((int) te.getRange().x + 1);
break;
case ID_RANGE_DOWN:
setRange(te.getRange() - 1);
setRange((int) te.getRange().x - 1);
break;
case RANGE_ID:
te.setShowRange(showRangeB.isSelected());
case ID_WHITELIST:
itemFilter = te.getItemFilter();
if (itemFilter != null) {
@@ -193,7 +213,7 @@ public class GuiVacuumChest extends GuiContainerBaseEIO {
fr.drawString(headerInventory, sx + 7, sy + 111, headerColor);
IconEIO.map.render(EnderWidget.BUTTON_DOWN, sx + RANGE_LEFT, sy + RANGE_TOP, RANGE_WIDTH, 16, 0, true);
String str = Integer.toString(te.getRange());
String str = Integer.toString((int) te.getRange().x);
int sw = fr.getStringWidth(str);
fr.drawString(str, sx + RANGE_LEFT + RANGE_WIDTH - sw - 5, sy + RANGE_TOP + 5, ColorUtil.getRGB(Color.black));
@@ -13,10 +13,14 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import com.enderio.core.client.render.BoundingBox;
import com.enderio.core.common.util.ItemUtil;
import com.enderio.core.common.vecmath.Vector3d;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.EnderIO;
import crazypants.enderio.ModObject;
import crazypants.enderio.TileEntityEio;
@@ -26,8 +30,11 @@ import crazypants.enderio.conduit.item.filter.ItemFilter;
import crazypants.enderio.config.Config;
import crazypants.enderio.machine.IRedstoneModeControlable;
import crazypants.enderio.machine.RedstoneControlMode;
import crazypants.enderio.machine.ranged.IRanged;
import crazypants.enderio.machine.ranged.RangeEntity;
public class TileVacuumChest extends TileEntityEio implements IEntitySelector, IInventory, IRedstoneModeControlable {
public class TileVacuumChest extends TileEntityEio
implements IEntitySelector, IInventory, IRedstoneModeControlable, IRanged {
public static final int ITEM_ROWS = 3;
public static final int ITEM_SLOTS = 9 * ITEM_ROWS;
@@ -42,6 +49,8 @@ public class TileVacuumChest extends TileEntityEio implements IEntitySelector, I
protected boolean redstoneCheckPassed;
private boolean redstoneStateDirty = true;
private boolean showingRange;
@Override
public void doUpdate() {
if (redstoneStateDirty) {
@@ -226,8 +235,41 @@ public class TileVacuumChest extends TileEntityEio implements IEntitySelector, I
&& itemstack.getItemDamage() == 0;
}
public int getRange() {
return range;
@Override
public World getWorld() {
return worldObj;
}
@Override
public AxisAlignedBB getBounds() {
return null;
}
@Override
public Vector3d getRange() {
return new Vector3d(range, range, range);
}
@Override
@SideOnly(Side.CLIENT)
public boolean isShowingRange() {
return showingRange;
}
@Override
public int getColor() {
return 0x660000FF;
}
@SideOnly(Side.CLIENT)
public void setShowRange(boolean showRange) {
if (showingRange == showRange) {
return;
}
showingRange = showRange;
if (showingRange) {
worldObj.spawnEntityInWorld(new RangeEntity(this));
}
}
private int limitRange(int range) {
@@ -344,14 +344,13 @@ public class WailaCompat implements IWailaDataProvider {
} else if (itemStack.getItem() == EnderIO.itemMEConduit) {
NBTTagCompound nbtRoot = accessor.getNBTData();
if (nbtRoot.hasKey("isDense")) {
boolean isDenseUltra = nbtRoot.getBoolean("isDenseUltra");
boolean isDense = nbtRoot.getBoolean("isDense");
int channelsInUse = nbtRoot.getInteger("channelsInUse");
currenttip.add(
MessageFormat.format(
EnderIO.lang.localize("itemMEConduit.channelsUsed"),
channelsInUse,
isDenseUltra ? 128 : (isDense ? 32 : 8)));
isDense ? 32 : 8));
}
}
}
@@ -387,7 +386,6 @@ public class WailaCompat implements IWailaDataProvider {
if (mec != null) {
tag.setInteger("channelsInUse", mec.getChannelsInUse());
tag.setBoolean("isDense", mec.isDense());
tag.setBoolean("isDenseUltra", mec.isDenseUltra());
}
} else if (te instanceof IInternalPoweredTile) {
IInternalPoweredTile ipte = (IInternalPoweredTile) te;
@@ -1130,6 +1130,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 +1220,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
@@ -130,7 +130,6 @@ enderio.itemGasConduit.tooltip.detailed.line1=Transportiert Mekanism-kompatible
enderio.itemMEConduit.name=ME-Leitung
enderio.itemMEConduitDense.name=Dichte ME-Leitung
enderio.itemMEConduitDenseUltra.name=Extrem Dichte ME-Leitungen
enderio.itemMEConduit.channelsUsed={0,number} von {1,number} Kanälen
enderio.itemOCConduit.name=Netzwerkleitung (OC)
@@ -907,6 +906,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
@@ -1242,6 +1243,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
@@ -146,7 +146,6 @@ enderio.itemGasConduit.tooltip.detailed.line1=Transfers Mekanism-compatible gase
item.itemMEConduit.name=ME Conduit
enderio.itemMEConduit.name=ME Conduit
enderio.itemMEConduitDense.name=Dense ME Conduit
enderio.itemMEConduitDenseUltra.name=Ultra Dense ME Conduit
enderio.itemMEConduit.channelsUsed={0,number} of {1,number} Channels
item.itemOCConduit.name=Network Conduit (OC)
@@ -975,6 +974,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
@@ -1413,6 +1415,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
@@ -660,6 +660,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 +981,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
@@ -662,6 +662,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 +983,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
@@ -660,6 +660,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 +981,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
@@ -660,6 +660,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 +981,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
@@ -979,6 +979,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
@@ -683,6 +683,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 +998,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
@@ -949,6 +949,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 +1294,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=Скорость
@@ -949,6 +949,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 +1374,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=速度
Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB