aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java3
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java2
-rw-r--r--src/main/java/gregtech/api/interfaces/tileentity/IGregtechWailaProvider.java17
-rw-r--r--src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java24
-rw-r--r--src/main/java/gregtech/api/metatileentity/CoverableGregTechTileEntity.java31
-rw-r--r--src/main/java/gregtech/api/metatileentity/MetaTileEntity.java14
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java20
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java36
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java51
-rw-r--r--src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java24
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java24
-rw-r--r--src/main/java/gregtech/crossmod/GregtechWailaDataProvider.java149
12 files changed, 248 insertions, 147 deletions
diff --git a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
index 2bf61f6679..de69419fa5 100644
--- a/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
@@ -5,6 +5,7 @@ import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGearEnergyTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.interfaces.tileentity.IGregtechWailaProvider;
import gregtech.api.interfaces.tileentity.IMachineBlockUpdateable;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.GT_Config;
@@ -32,7 +33,7 @@ import java.util.List;
* <p/>
* Don't implement this yourself and expect it to work. Extend @MetaTileEntity itself.
*/
-public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHandler, IGearEnergyTileEntity, IMachineBlockUpdateable {
+public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHandler, IGearEnergyTileEntity, IMachineBlockUpdateable, IGregtechWailaProvider {
/**
* This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
* <p/>
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
index cf002d9e95..7b3e3fee6c 100644
--- a/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
@@ -21,7 +21,7 @@ import java.util.UUID;
* <p/>
* It can cause Problems to include this Interface!
*/
-public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable {
+public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable, IGregtechWailaProvider {
/**
* gets the Error displayed on the GUI
*/
diff --git a/src/main/java/gregtech/api/interfaces/tileentity/IGregtechWailaProvider.java b/src/main/java/gregtech/api/interfaces/tileentity/IGregtechWailaProvider.java
new file mode 100644
index 0000000000..ee3da0fa6f
--- /dev/null
+++ b/src/main/java/gregtech/api/interfaces/tileentity/IGregtechWailaProvider.java
@@ -0,0 +1,17 @@
+package gregtech.api.interfaces.tileentity;
+
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+public interface IGregtechWailaProvider {
+ default void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {}
+
+ default void getWailaNBTData(final EntityPlayerMP player, final TileEntity tile, final NBTTagCompound tag, final World world, int x, int y, int z) {}
+}
diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
index 5786edc8ce..562a566b2b 100644
--- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
@@ -26,18 +26,24 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IEnergyConnected;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.interfaces.tileentity.IGregtechWailaProvider;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Transformer;
import gregtech.api.net.GT_Packet_TileEntity;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.*;
import gregtech.common.GT_Pollution;
+import gregtech.crossmod.GregtechWailaDataProvider;
import ic2.api.Direction;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFire;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -73,7 +79,7 @@ import static gregtech.api.objects.XSTR.XSTR_INSTANCE;
@Optional.InterfaceList(value = {
@Optional.Interface(iface = "appeng.api.networking.security.IActionHost", modid = "appliedenergistics2", striprefs = true),
@Optional.Interface(iface = "appeng.me.helpers.IGridProxyable", modid = "appliedenergistics2", striprefs = true)})
-public class BaseMetaTileEntity extends CoverableGregTechTileEntity implements IGregTechTileEntity, IActionHost, IGridProxyable, IAlignmentProvider, IConstructableProvider {
+public class BaseMetaTileEntity extends CoverableGregTechTileEntity implements IGregTechTileEntity, IActionHost, IGridProxyable, IAlignmentProvider, IConstructableProvider, IGregtechWailaProvider {
protected MetaTileEntity mMetaTileEntity;
protected long mStoredEnergy = 0, mStoredSteam = 0;
protected int mAverageEUInputIndex = 0, mAverageEUOutputIndex = 0;
@@ -536,6 +542,22 @@ public class BaseMetaTileEntity extends CoverableGregTechTileEntity implements I
mWorkUpdate = mInventoryChanged = mRunningThroughTick = false;
}
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ if(hasValidMetaTileEntity() && getMetaTileEntity() != null) {
+ getMetaTileEntity().getWailaBody(itemStack, currenttip, accessor, config);
+ }
+ super.getWailaBody(itemStack, currenttip, accessor, config);
+ }
+
+ @Override
+ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ super.getWailaNBTData(player, tile, tag, world, x, y, z);
+ if(hasValidMetaTileEntity() && getMetaTileEntity() != null) {
+ getMetaTileEntity().getWailaNBTData(player, tile, tag, world, x, y, z);
+ }
+ }
+
private void sendClientData() {
if (mSendClientData) {
NW.sendPacketToAllPlayersInRange(
diff --git a/src/main/java/gregtech/api/metatileentity/CoverableGregTechTileEntity.java b/src/main/java/gregtech/api/metatileentity/CoverableGregTechTileEntity.java
index 13bb70dbda..a782e01569 100644
--- a/src/main/java/gregtech/api/metatileentity/CoverableGregTechTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/CoverableGregTechTileEntity.java
@@ -15,15 +15,20 @@ import gregtech.api.util.GT_Utility;
import gregtech.api.util.ISerializableObject;
import gregtech.common.GT_Client;
import gregtech.common.covers.GT_Cover_Fluidfilter;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidRegistry;
import java.util.Arrays;
+import java.util.List;
import static gregtech.GT_Mod.GT_FML_LOGGER;
import static gregtech.api.enums.GT_Values.NW;
@@ -327,4 +332,30 @@ public abstract class CoverableGregTechTileEntity extends BaseTileEntity impleme
}
}
}
+
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ final NBTTagCompound tag = accessor.getNBTData();
+ final int side = (byte)accessor.getSide().ordinal();
+ final String filterKey = "filterInfo" + side;
+
+ if (tag.hasKey(filterKey)) {
+ currenttip.add(tag.getString(filterKey));
+ }
+
+ // No super implementation
+ // super.getWailaBody(itemStack, currenttip, accessor, config);
+ }
+
+ @Override
+ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ // No super implementation
+ // super.getWailaNBTData(player, tile, tag, world, x, y, z);
+ for(byte side=0 ; side < 6 ; side++) {
+ if(getCoverBehaviorAtSideNew(side) instanceof GT_Cover_Fluidfilter) {
+ tag.setString("filterInfo" + side, getCoverBehaviorAtSideNew(side).getDescription(side, getCoverIDAtSide(side), getComplexCoverDataAtSide(side), this));
+ }
+ }
+ }
+
}
diff --git a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
index 15fa9a9228..068c02297e 100644
--- a/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
+++ b/src/main/java/gregtech/api/metatileentity/MetaTileEntity.java
@@ -14,11 +14,14 @@ import gregtech.api.metatileentity.implementations.GT_MetaPipeEntity_Cable;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.*;
import gregtech.common.GT_Client;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
@@ -975,4 +978,15 @@ public abstract class MetaTileEntity implements IMetaTileEntity {
@Optional.Method(modid = "appliedenergistics2")
public void gridChanged() {}
+
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ currenttip.add(String.format("Facing: %s", ForgeDirection.getOrientation(mBaseMetaTileEntity.getFrontFacing()).name()));
+ }
+
+ @Override
+ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ /* Empty */
+ }
+
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
index 5cd01376cd..6cdbe77526 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
@@ -18,13 +18,17 @@ import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gregtech.api.util.GT_ClientPreference;
import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_Cleanroom;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
@@ -1051,4 +1055,20 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
public ITexture[] getSideFacingPipeInactive(byte aColor) {
return new ITexture[]{MACHINE_CASINGS[mTier][aColor + 1], TextureFactory.of(OVERLAY_PIPE_OUT)};
}
+
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ final NBTTagCompound tag = accessor.getNBTData();
+
+ currenttip.add(String.format("Progress: %d s / %d s", tag.getInteger("progressSingleBlock"), tag.getInteger("maxProgressSingleBlock")));
+ super.getWailaBody(itemStack, currenttip, accessor, config);
+ }
+
+ @Override
+ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ super.getWailaNBTData(player, tile, tag, world, x, y, z);
+
+ tag.setInteger("progressSingleBlock", mProgresstime / 20);
+ tag.setInteger("maxProgressSingleBlock", mMaxProgresstime / 20);
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index 5564ff6b88..4b6ff53acf 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -18,12 +18,17 @@ import gregtech.api.util.GT_Single_Recipe_Check;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Pollution;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
import org.lwjgl.input.Keyboard;
@@ -32,6 +37,9 @@ import java.util.List;
import static gregtech.api.enums.GT_Values.V;
import static gregtech.api.enums.GT_Values.VN;
+import static mcp.mobius.waila.api.SpecialChars.GREEN;
+import static mcp.mobius.waila.api.SpecialChars.RED;
+import static mcp.mobius.waila.api.SpecialChars.RESET;
public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
@@ -1096,4 +1104,32 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
return tFluidList.toArray(new FluidStack[0]);
}
+
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ final NBTTagCompound tag = accessor.getNBTData();
+
+ if(tag.getBoolean("incompleteStructure")) {
+ currenttip.add(RED + "** INCOMPLETE STRUCTURE **" + RESET);
+ }
+ currenttip.add((tag.getBoolean("hasProblems") ? (RED + "** HAS PROBLEMS **") : GREEN + "Running Fine") + RESET
+ + " Efficiency: " + tag.getFloat("efficiency") + "%");
+
+ currenttip.add(String.format("Progress: %d s / %d s", tag.getInteger("progress"), tag.getInteger("maxProgress")));
+
+
+ super.getWailaBody(itemStack, currenttip, accessor, config);
+ }
+
+ @Override
+ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ super.getWailaNBTData(player, tile, tag, world, x, y, z);
+
+ tag.setBoolean("hasProblems", (getIdealStatus() - getRepairStatus()) > 0);
+ tag.setFloat("efficiency", mEfficiency / 100.0F);
+ tag.setInteger("progress", mProgresstime/20);
+ tag.setInteger("maxProgress", mMaxProgresstime/20);
+ tag.setBoolean("incompleteStructure", (getBaseMetaTileEntity().getErrorDisplayID() & 64) != 0);
+
+ }
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java
index 8e8cc6de76..1d52e3c41d 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Transformer.java
@@ -11,13 +11,24 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.util.GT_Utility;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
+import java.util.List;
+
import static gregtech.api.enums.GT_Values.V;
+import static mcp.mobius.waila.api.SpecialChars.RESET;
+import static mcp.mobius.waila.api.SpecialChars.GOLD;
+import static mcp.mobius.waila.api.SpecialChars.BLUE;
+import static mcp.mobius.waila.api.SpecialChars.GREEN;
+import static mcp.mobius.waila.api.SpecialChars.RED;
/**
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
@@ -221,4 +232,44 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi
public boolean shouldJoinIc2Enet() {
return true;
}
+
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ final int facing = getBaseMetaTileEntity().getFrontFacing();
+ final NBTTagCompound tag = accessor.getNBTData();
+ final int side = (byte)accessor.getSide().ordinal();
+ final boolean allowedToWork = tag.getBoolean("isAllowedToWork");
+
+ currenttip.add(
+ String.format(
+ "%s %d(%dA) -> %d(%dA)",
+ (allowedToWork ? (GREEN + "Step Down") : (RED + "Step Up")) + RESET,
+ tag.getLong("maxEUInput"),
+ tag.getLong("maxAmperesIn"),
+ tag.getLong("maxEUOutput"),
+ tag.getLong("maxAmperesOut")
+ )
+ );
+
+ if ((side == facing && allowedToWork) || (side != facing && !allowedToWork)) {
+ currenttip.add(String.format(GOLD + "Input:" + RESET + " %d(%dA)", tag.getLong("maxEUInput"), tag.getLong("maxAmperesIn")));
+ } else {
+ currenttip.add(String.format(BLUE + "Output:" + RESET + " %d(%dA)", tag.getLong("maxEUOutput"), tag.getLong("maxAmperesOut")));
+ }
+
+ super.getWailaBody(itemStack, currenttip, accessor, config);
+
+ }
+
+ @Override
+ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ super.getWailaNBTData(player, tile, tag, world, x, y, z);
+ tag.setBoolean("isAllowedToWork", getBaseMetaTileEntity().isAllowedToWork());
+ tag.setLong("maxEUInput", maxEUInput());
+ tag.setLong("maxAmperesIn", maxAmperesIn());
+ tag.setLong("maxEUOutput", maxEUOutput());
+ tag.setLong("maxAmperesOut", maxAmperesOut());
+ }
+
+
}
diff --git a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java
index 5723865baf..5aa481ecd0 100644
--- a/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java
+++ b/src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Solar.java
@@ -10,14 +10,23 @@ import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Utility;
import gregtech.common.gui.GT_Container_Boiler;
import gregtech.common.gui.GT_GUIContainer_Boiler;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
+import java.util.List;
+
import static gregtech.api.GregTech_API.sMachineFile;
import static gregtech.api.enums.ConfigCategories.machineconfig;
+import static mcp.mobius.waila.api.SpecialChars.GOLD;
+import static mcp.mobius.waila.api.SpecialChars.RESET;
public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
public static final String LPS_FMT = "%s L/s";
@@ -264,6 +273,21 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler {
return new GT_MetaTileEntity_Boiler_Solar(mName, mTier, mDescriptionArray, mTextures, mConfig);
}
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ final NBTTagCompound tag = accessor.getNBTData();
+ currenttip.add(String.format((GOLD + "Solar Boiler Output: " + RESET + "%d/%d L/s"), tag.getInteger("calcificationOutput"), tag.getInteger("maxCalcificationOutput")));
+
+ super.getWailaBody(itemStack, currenttip, accessor, config);
+ }
+
+ @Override
+ public void getWailaNBTData(EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ super.getWailaNBTData(player, tile, tag, world, x, y, z);
+ tag.setInteger("calcificationOutput", (getProductionPerSecond()));
+ tag.setInteger("maxCalcificationOutput", (getMaxOutputPerSecond()));
+ }
+
protected static class Config {
private final int calcificationTicks;
private final int minOutputPerSecond;
diff --git a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
index 14663f7d68..faa4991c1d 100644
--- a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
+++ b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java
@@ -30,6 +30,8 @@ import gregtech.api.items.GT_Block_LongDistancePipe;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicHull_NonElectric;
import gregtech.api.util.GT_Utility;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@@ -37,14 +39,20 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
+import java.util.List;
import java.util.Queue;
+import static mcp.mobius.waila.api.SpecialChars.GOLD;
+import static mcp.mobius.waila.api.SpecialChars.BLUE;
+import static mcp.mobius.waila.api.SpecialChars.RESET;
+
public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_MetaTileEntity_BasicHull_NonElectric {
public static int minimalDistancePoints = 64;
protected GT_MetaTileEntity_LongDistancePipelineBase mTarget = null, mSender = null;
@@ -264,4 +272,20 @@ public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_Meta
@Override
public boolean shouldTriggerBlockUpdate() { return true; }
+ @Override
+ public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ final int facing = getBaseMetaTileEntity().getFrontFacing();
+ final int side = (byte)accessor.getSide().ordinal();
+
+ if (side == facing)
+ currenttip.add(GOLD + "Pipeline Input" + RESET);
+ else if (side == ForgeDirection.OPPOSITES[facing])
+ currenttip.add(BLUE + "Pipeline Output" + RESET);
+ else
+ currenttip.add("Pipeline Side");
+
+ super.getWailaBody(itemStack, currenttip, accessor, config);
+
+ }
+
}
diff --git a/src/main/java/gregtech/crossmod/GregtechWailaDataProvider.java b/src/main/java/gregtech/crossmod/GregtechWailaDataProvider.java
index 94591c60df..1c3f3ae2c7 100644
--- a/src/main/java/gregtech/crossmod/GregtechWailaDataProvider.java
+++ b/src/main/java/gregtech/crossmod/GregtechWailaDataProvider.java
@@ -1,15 +1,6 @@
package gregtech.crossmod;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.BaseMetaPipeEntity;
-import gregtech.api.metatileentity.BaseMetaTileEntity;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Transformer;
-import gregtech.common.covers.GT_Cover_Fluidfilter;
-import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler_Solar;
-import gregtech.common.tileentities.machines.long_distance.GT_MetaTileEntity_LongDistancePipelineBase;
+import gregtech.api.interfaces.tileentity.IGregtechWailaProvider;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
@@ -17,23 +8,11 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
-
-import static mcp.mobius.waila.api.SpecialChars.RESET;
-import static mcp.mobius.waila.api.SpecialChars.GOLD;
-import static mcp.mobius.waila.api.SpecialChars.BLUE;
-import static mcp.mobius.waila.api.SpecialChars.GREEN;
-import static mcp.mobius.waila.api.SpecialChars.RED;
import java.util.List;
public class GregtechWailaDataProvider implements IWailaDataProvider {
- private String getKey(String key) {
- return "Gregtech5U:" + key;
- }
-
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config) {
return null;
@@ -46,82 +25,10 @@ public class GregtechWailaDataProvider implements IWailaDataProvider {
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
final TileEntity tile = accessor.getTileEntity();
- MovingObjectPosition pos = accessor.getPosition();
- NBTTagCompound tag = accessor.getNBTData();
- final int side = (byte)accessor.getSide().ordinal();
-
- final IGregTechTileEntity tBaseMetaTile = tile instanceof IGregTechTileEntity ? ((IGregTechTileEntity) tile) : null;
- final IMetaTileEntity tMeta = tBaseMetaTile != null ? tBaseMetaTile.getMetaTileEntity() : null;
- final BaseMetaTileEntity mBaseMetaTileEntity = tile instanceof BaseMetaTileEntity ? ((BaseMetaTileEntity) tile) : null;
- final GT_MetaTileEntity_BasicMachine BasicMachine = tMeta instanceof GT_MetaTileEntity_BasicMachine ? ((GT_MetaTileEntity_BasicMachine) tMeta) : null;
- final GT_MetaTileEntity_MultiBlockBase multiBlockBase = tMeta instanceof GT_MetaTileEntity_MultiBlockBase ? ((GT_MetaTileEntity_MultiBlockBase) tMeta) : null;
-
- final boolean showTransformer = tMeta instanceof GT_MetaTileEntity_Transformer && config.getConfig(getKey("transformer"));
- final boolean showLDP = tMeta instanceof GT_MetaTileEntity_LongDistancePipelineBase && config.getConfig(getKey("LDP"));
- final boolean showSolar = tMeta instanceof GT_MetaTileEntity_Boiler_Solar && config.getConfig(getKey("solar"));
- final boolean allowedToWork = tag.hasKey("isAllowedToWork") && tag.getBoolean("isAllowedToWork");
-
- if (tBaseMetaTile != null && config.getConfig(getKey("fluidFilter"))) {
- final String filterKey = "filterInfo" + side;
- if (tag.hasKey(filterKey)) {
- currenttip.add(tag.getString(filterKey));
- }
+ if(tile instanceof IGregtechWailaProvider) {
+ ((IGregtechWailaProvider)tile).getWailaBody(itemStack, currenttip, accessor, config);
}
- if (tMeta != null) {
- String facingStr = "Facing";
- if (showTransformer && tag.hasKey("isAllowedToWork")) {
- currenttip.add(
- String.format(
- "%s %d(%dA) -> %d(%dA)",
- (allowedToWork ? (GREEN + "Step Down") : (RED + "Step Up")) + RESET,
- tag.getLong("maxEUInput"),
- tag.getLong("maxAmperesIn"),
- tag.getLong("maxEUOutput"),
- tag.getLong("maxAmperesOut")
- )
- );
- facingStr = tag.getBoolean("isAllowedToWork") ? "Input" : "Output";
- }
- if (showSolar && tag.hasKey("calcificationOutput")) {
- currenttip.add(String.format((GOLD + "Solar Boiler Output: " + RESET + "%d/%d L/s"), tag.getInteger("calcificationOutput"), tag.getInteger("maxCalcificationOutput")));
- }
-
- if (mBaseMetaTileEntity != null && config.getConfig(getKey("machineFacing"))) {
- final int facing = mBaseMetaTileEntity.getFrontFacing();
- if(showTransformer) {
- if((side == facing && allowedToWork) || (side != facing && !allowedToWork)) {
- currenttip.add(String.format(GOLD + "Input:" + RESET + " %d(%dA)", tag.getLong("maxEUInput"), tag.getLong("maxAmperesIn")));
- } else {
- currenttip.add(String.format(BLUE + "Output:" + RESET + " %d(%dA)", tag.getLong("maxEUOutput"), tag.getLong("maxAmperesOut")));
- }
- } else if (showLDP) {
- if(side == facing)
- currenttip.add(GOLD + "Pipeline Input" + RESET);
- else if (side == ForgeDirection.OPPOSITES[facing])
- currenttip.add(BLUE + "Pipeline Output" + RESET);
- else
- currenttip.add("Pipeline Side");
- } else {
- currenttip.add(String.format("%s: %s", facingStr, ForgeDirection.getOrientation(facing).name()));
- }
- }
-
- if (BasicMachine != null && config.getConfig(getKey("basicmachine"))) {
- currenttip.add(String.format("Progress: %d s / %d s", tag.getInteger("progressSingleBlock"), tag.getInteger("maxProgressSingleBlock")));
- }
-
- if(multiBlockBase != null && config.getConfig(getKey("multiblock"))) {
- if(tag.getBoolean("incompleteStructure")) {
- currenttip.add(RED + "** INCOMPLETE STRUCTURE **" + RESET);
- }
- currenttip.add((tag.getBoolean("hasProblems") ? (RED + "** HAS PROBLEMS **") : GREEN + "Running Fine") + RESET
- + " Efficiency: " + tag.getFloat("efficiency") + "%");
-
- currenttip.add(String.format("Progress: %d s / %d s", tag.getInteger("progress"), tag.getInteger("maxProgress")));
-
- }
- }
return currenttip;
}
@Override
@@ -132,54 +39,8 @@ public class GregtechWailaDataProvider implements IWailaDataProvider {
@Override
public NBTTagCompound getNBTData(final EntityPlayerMP player, final TileEntity tile, final NBTTagCompound tag, final World world, int x, int y, int z) {
- final IGregTechTileEntity tBaseMetaTile = tile instanceof IGregTechTileEntity ? ((IGregTechTileEntity) tile) : null;
- final IMetaTileEntity tMeta = tBaseMetaTile != null ? tBaseMetaTile.getMetaTileEntity() : null;
- final GT_MetaTileEntity_BasicMachine BasicMachine = tMeta instanceof GT_MetaTileEntity_BasicMachine ? ((GT_MetaTileEntity_BasicMachine) tMeta) : null;
- final GT_MetaTileEntity_MultiBlockBase multiBlockBase = tMeta instanceof GT_MetaTileEntity_MultiBlockBase ? ((GT_MetaTileEntity_MultiBlockBase) tMeta) : null;
-
- if (tMeta != null) {
- if (tMeta instanceof GT_MetaTileEntity_Transformer) {
- final GT_MetaTileEntity_Transformer transformer = (GT_MetaTileEntity_Transformer)tMeta;
- tag.setBoolean("isAllowedToWork", tMeta.getBaseMetaTileEntity().isAllowedToWork());
- tag.setLong("maxEUInput", transformer.maxEUInput());
- tag.setLong("maxAmperesIn", transformer.maxAmperesIn());
- tag.setLong("maxEUOutput", transformer.maxEUOutput());
- tag.setLong("maxAmperesOut", transformer.maxAmperesOut());
- } else if (tMeta instanceof GT_MetaTileEntity_Boiler_Solar) {
- final GT_MetaTileEntity_Boiler_Solar solar = (GT_MetaTileEntity_Boiler_Solar)tMeta;
- tag.setInteger("calcificationOutput", (solar.getProductionPerSecond()));
- tag.setInteger("maxCalcificationOutput", (solar.getMaxOutputPerSecond()));
- }
-
- if (BasicMachine != null) {
- final int progressSingleBlock = BasicMachine.mProgresstime/20;
- final int maxProgressSingleBlock = BasicMachine.mMaxProgresstime/20;
- tag.setInteger("progressSingleBlock", progressSingleBlock);
- tag.setInteger("maxProgressSingleBlock", maxProgressSingleBlock);
- }
-
- if (multiBlockBase != null) {
- final int problems = multiBlockBase.getIdealStatus() - multiBlockBase.getRepairStatus();
- final float efficiency = multiBlockBase.mEfficiency / 100.0F;
- final int progress = multiBlockBase.mProgresstime/20;
- final int maxProgress = multiBlockBase.mMaxProgresstime/20;
-
- tag.setBoolean("hasProblems", problems > 0);
- tag.setFloat("efficiency", efficiency);
- tag.setInteger("progress", progress);
- tag.setInteger("maxProgress", maxProgress);
- tag.setBoolean("incompleteStructure", (tBaseMetaTile.getErrorDisplayID() & 64) != 0);
-
- }
- }
- if (tBaseMetaTile != null) {
- if (tBaseMetaTile instanceof BaseMetaPipeEntity) {
- for(byte side=0 ; side < 6 ; side++) {
- if(tBaseMetaTile.getCoverBehaviorAtSideNew(side) instanceof GT_Cover_Fluidfilter) {
- tag.setString("filterInfo" + side, ((GT_Cover_Fluidfilter) tBaseMetaTile.getCoverBehaviorAtSideNew(side)).getDescription(side, tBaseMetaTile.getCoverIDAtSide(side), tBaseMetaTile.getComplexCoverDataAtSide(side), tBaseMetaTile));
- }
- }
- }
+ if(tile instanceof IGregtechWailaProvider) {
+ ((IGregtechWailaProvider)tile).getWailaNBTData(player, tile, tag, world, x, y, z);
}
return tag;