Compare 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
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
20 changed files with 198 additions and 66 deletions

No files matched your search

+5 -5
View File
@@ -3,8 +3,8 @@
dependencies {
api('com.github.GTNewHorizons:EnderCore:0.4.6:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.7:dev')
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.38-GTNH:dev')
api("com.github.GTNewHorizons:GTNHLib:0.6.20: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')
@@ -13,9 +13,9 @@ dependencies {
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.254:dev') {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.21: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.13-GTNH:api') {transitive = false}
@@ -26,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-beta40:api') {transitive = false}
compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-beta41:api') {transitive = false}
}
@@ -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");
@@ -544,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;
@@ -600,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);
@@ -2746,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",
@@ -2990,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() {
@@ -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
@@ -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
@@ -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
@@ -1101,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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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=Энергобуфер
@@ -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=能量缓存器
@@ -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