mirror of
https://github.com/GTNewHorizons/AE2FluidCraft-Rework.git
synced 2026-11-11 15:57:55 +00:00
25 files changed
+674
-25
No files matched your search
@@ -5,6 +5,7 @@ import appeng.api.config.Upgrades;
|
||||
import com.glodblock.github.common.Config;
|
||||
import com.glodblock.github.common.storage.FluidCellHandler;
|
||||
import com.glodblock.github.crossmod.opencomputers.OCDriverInit;
|
||||
import com.glodblock.github.crossmod.waila.WailaInit;
|
||||
import com.glodblock.github.inventory.InventoryHandler;
|
||||
import com.glodblock.github.loader.ChannelLoader;
|
||||
import com.glodblock.github.loader.ItemAndBlockHolder;
|
||||
@@ -21,7 +22,7 @@ import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
@Mod(modid = FluidCraft.MODID, version = FluidCraft.VERSION, name = FluidCraft.MODNAME, dependencies = "required-after:appliedenergistics2")
|
||||
@Mod(modid = FluidCraft.MODID, version = FluidCraft.VERSION, name = FluidCraft.MODNAME, dependencies = "required-after:appliedenergistics2;after:waila")
|
||||
public class FluidCraft {
|
||||
|
||||
public static final String MODID = "GRADLETOKEN_MODID";
|
||||
@@ -47,6 +48,9 @@ public class FluidCraft {
|
||||
if (ModAndClassUtil.OC) {
|
||||
OCDriverInit.run();
|
||||
}
|
||||
if (ModAndClassUtil.WAILA) {
|
||||
WailaInit.run();
|
||||
}
|
||||
proxy.init(event);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,8 @@ import com.glodblock.github.common.parts.PartFluidInterface;
|
||||
import com.glodblock.github.common.tile.TileFluidInterface;
|
||||
import com.glodblock.github.inventory.IAEFluidTank;
|
||||
import com.glodblock.github.inventory.gui.GuiType;
|
||||
import com.glodblock.github.inventory.gui.MouseRegionManager;
|
||||
import com.glodblock.github.inventory.gui.TankMouseHandler;
|
||||
import com.glodblock.github.loader.ItemAndBlockHolder;
|
||||
import com.glodblock.github.network.CPacketSwitchGuis;
|
||||
import com.glodblock.github.util.NameConst;
|
||||
@@ -37,17 +39,29 @@ public class GuiFluidInterface extends AEBaseGui {
|
||||
private final ContainerFluidInterface cont;
|
||||
|
||||
private GuiTabButton switcher;
|
||||
private final MouseRegionManager mouseRegions = new MouseRegionManager(this);
|
||||
|
||||
public GuiFluidInterface(InventoryPlayer ipl, TileFluidInterface tile) {
|
||||
super(new ContainerFluidInterface(ipl, tile));
|
||||
this.cont = (ContainerFluidInterface) inventorySlots;
|
||||
this.ySize = 231;
|
||||
this.addMouseRegin();
|
||||
}
|
||||
|
||||
public GuiFluidInterface(InventoryPlayer ipl, PartFluidInterface tile) {
|
||||
super(new ContainerFluidInterface(ipl, tile));
|
||||
this.cont = (ContainerFluidInterface) inventorySlots;
|
||||
this.ySize = 231;
|
||||
this.addMouseRegin();
|
||||
}
|
||||
|
||||
private void addMouseRegin() {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
mouseRegions.addRegion(TANK_X + TANK_X_OFF * i, TANK_Y, TANK_WIDTH, TANK_HEIGHT,
|
||||
new TankMouseHandler(
|
||||
isPart() ? ((PartFluidInterface) cont.getTile()).getInternalFluid() : ((TileFluidInterface) cont.getTile()).getInternalFluid(),
|
||||
i));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -91,6 +105,7 @@ public class GuiFluidInterface extends AEBaseGui {
|
||||
fluidInv.getFluidInSlot(i), fluidInv.getTankInfo(ForgeDirection.UNKNOWN)[i].capacity);
|
||||
}
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
mouseRegions.render(mouseX, mouseY);
|
||||
}
|
||||
|
||||
public String dirName(int face) {
|
||||
|
||||
@@ -20,7 +20,6 @@ package com.glodblock.github.client.me;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.config.*;
|
||||
import appeng.api.storage.data.IAEFluidStack;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
import appeng.client.gui.widgets.IScrollSource;
|
||||
@@ -28,13 +27,13 @@ import appeng.client.gui.widgets.ISortSource;
|
||||
import appeng.client.me.ItemRepo;
|
||||
import appeng.core.AEConfig;
|
||||
import appeng.items.storage.ItemViewCell;
|
||||
import appeng.util.item.AEItemStack;
|
||||
import appeng.util.prioitylist.IPartitionList;
|
||||
import com.glodblock.github.common.item.ItemFluidDrop;
|
||||
import com.glodblock.github.util.FluidSorters;
|
||||
import com.glodblock.github.util.Util;
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.lang.reflect.Field;
|
||||
@@ -158,11 +157,16 @@ public class FluidRepo extends ItemRepo {
|
||||
if (viewMode == ViewItems.STORED && is.getStackSize() == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
final String dspName = searchMod ? Util.getFluidModID(ItemFluidDrop.getAeFluidStack(is).getFluid()) : ItemFluidDrop.getAeFluidStack(is).getFluid().getLocalizedName();
|
||||
|
||||
if (m.matcher(dspName.toLowerCase()).find()) {
|
||||
this.view.add(is);
|
||||
Fluid fluid = ItemFluidDrop.getAeFluidStack(is).getFluid();
|
||||
if (searchMod) {
|
||||
if (m.matcher(Util.getFluidModID(fluid).toLowerCase()).find() ||
|
||||
m.matcher(Util.getFluidModName(fluid).toLowerCase()).find()) {
|
||||
this.view.add(is);
|
||||
}
|
||||
} else {
|
||||
if (m.matcher(fluid.getLocalizedName().toLowerCase()).find()) {
|
||||
this.view.add(is);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -120,11 +120,9 @@ public abstract class PartSharedFluidBus extends PartUpgradeable implements IGri
|
||||
return null;
|
||||
}
|
||||
|
||||
protected int calculateAmountToSend()
|
||||
{
|
||||
public int calculateAmountToSend() {
|
||||
double amount = 1000D;
|
||||
switch( this.getInstalledUpgrades( Upgrades.SPEED ) )
|
||||
{
|
||||
switch (this.getInstalledUpgrades(Upgrades.SPEED)) {
|
||||
case 4:
|
||||
amount = amount * 1.5;
|
||||
case 3:
|
||||
|
||||
@@ -60,7 +60,12 @@ public class TileIngredientBuffer extends AEBaseInvTile implements IAEFluidInven
|
||||
markForUpdate();
|
||||
}
|
||||
|
||||
@TileEvent( TileEventType.NETWORK_WRITE )
|
||||
@Override
|
||||
public AEFluidInventory getInternalFluid() {
|
||||
return this.invFluids;
|
||||
}
|
||||
|
||||
@TileEvent(TileEventType.NETWORK_WRITE)
|
||||
protected void writeToStream(ByteBuf data) throws IOException {
|
||||
for (int i = 0; i < invItems.getSizeInventory(); i++) {
|
||||
ByteBufUtils.writeItemStack(data, invItems.getStackInSlot(i));
|
||||
|
||||
@@ -60,6 +60,11 @@ public class TileLargeIngredientBuffer extends AEBaseInvTile implements IAEFluid
|
||||
markForUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AEFluidInventory getInternalFluid() {
|
||||
return this.invFluids;
|
||||
}
|
||||
|
||||
@TileEvent(TileEventType.NETWORK_WRITE)
|
||||
protected void writeToStream(ByteBuf data) throws IOException {
|
||||
for (int i = 0; i < invItems.getSizeInventory(); i++) {
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.glodblock.github.crossmod.waila;
|
||||
|
||||
import com.glodblock.github.common.item.ItemFluidDrop;
|
||||
import com.glodblock.github.util.Util;
|
||||
import mcp.mobius.waila.handlers.nei.TooltipHandlerWaila;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class FCTooltipHandlerWaila extends TooltipHandlerWaila {
|
||||
@Override
|
||||
public List<String> handleItemDisplayName(GuiContainer arg0, ItemStack itemstack, List<String> currenttip) {
|
||||
return currenttip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> handleItemTooltip(GuiContainer arg0, ItemStack itemstack, int arg2, int arg3, List<String> currenttip) {
|
||||
if (itemstack != null && itemstack.getItem() instanceof ItemFluidDrop && currenttip.size() > 0) {
|
||||
FluidStack fs = ItemFluidDrop.getFluidStack(itemstack);
|
||||
if (fs == null) return currenttip;
|
||||
currenttip.set(0, Tooltip.partFluidTerminalFluidFormat(fs));
|
||||
if (Minecraft.getMinecraft().gameSettings.advancedItemTooltips) {
|
||||
currenttip.set(1, EnumChatFormatting.GRAY + String.format("%s:%s", Util.getFluidModID(fs.getFluid()), fs.getFluid().getName()) + EnumChatFormatting.RESET);
|
||||
}
|
||||
String modName = Util.getFluidModName(fs.getFluid());
|
||||
if (modName != null && !modName.equals(""))
|
||||
currenttip.set(currenttip.size() - 1, "\u00a79\u00a7o" + modName);
|
||||
}
|
||||
return currenttip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> handleTooltip(GuiContainer arg0, int arg1, int arg2, List<String> currenttip) {
|
||||
return currenttip;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
package com.glodblock.github.crossmod.waila;
|
||||
|
||||
import appeng.api.parts.IPart;
|
||||
import appeng.integration.modules.waila.part.IPartWailaDataProvider;
|
||||
import appeng.integration.modules.waila.part.PartAccessor;
|
||||
import appeng.integration.modules.waila.part.Tracer;
|
||||
import com.glodblock.github.crossmod.waila.part.FluidInvWailaDataProvider;
|
||||
import com.glodblock.github.crossmod.waila.part.SpeedWailaDataProvider;
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.common.collect.Lists;
|
||||
import mcp.mobius.waila.api.IWailaConfigHandler;
|
||||
import mcp.mobius.waila.api.IWailaDataAccessor;
|
||||
import mcp.mobius.waila.api.IWailaDataProvider;
|
||||
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 java.util.List;
|
||||
|
||||
public class PartWailaDataProvider implements IWailaDataProvider {
|
||||
private final List<IPartWailaDataProvider> providers;
|
||||
private final PartAccessor accessor = new PartAccessor();
|
||||
private final Tracer tracer = new Tracer();
|
||||
|
||||
public PartWailaDataProvider() {
|
||||
final IPartWailaDataProvider speed = new SpeedWailaDataProvider();
|
||||
final IPartWailaDataProvider fluidInv = new FluidInvWailaDataProvider();
|
||||
this.providers = Lists.newArrayList(speed, fluidInv);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getWailaStack(final IWailaDataAccessor accessor, final IWailaConfigHandler config) {
|
||||
final TileEntity te = accessor.getTileEntity();
|
||||
final MovingObjectPosition mop = accessor.getPosition();
|
||||
|
||||
final Optional<IPart> maybePart = this.accessor.getMaybePart(te, mop);
|
||||
|
||||
if (maybePart.isPresent()) {
|
||||
final IPart part = maybePart.get();
|
||||
|
||||
ItemStack wailaStack = null;
|
||||
|
||||
for (final IPartWailaDataProvider provider : this.providers) {
|
||||
wailaStack = provider.getWailaStack(part, config, wailaStack);
|
||||
if (wailaStack != null) break;
|
||||
}
|
||||
return wailaStack;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaHead(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
final TileEntity te = accessor.getTileEntity();
|
||||
final MovingObjectPosition mop = accessor.getPosition();
|
||||
|
||||
final Optional<IPart> maybePart = this.accessor.getMaybePart(te, mop);
|
||||
|
||||
if (maybePart.isPresent()) {
|
||||
final IPart part = maybePart.get();
|
||||
|
||||
for (final IPartWailaDataProvider provider : this.providers) {
|
||||
provider.getWailaHead(part, currentToolTip, accessor, config);
|
||||
}
|
||||
}
|
||||
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaBody(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
final TileEntity te = accessor.getTileEntity();
|
||||
final MovingObjectPosition mop = accessor.getPosition();
|
||||
|
||||
final Optional<IPart> maybePart = this.accessor.getMaybePart(te, mop);
|
||||
|
||||
if (maybePart.isPresent()) {
|
||||
final IPart part = maybePart.get();
|
||||
|
||||
for (final IPartWailaDataProvider provider : this.providers) {
|
||||
provider.getWailaBody(part, currentToolTip, accessor, config);
|
||||
}
|
||||
}
|
||||
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaTail(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
final TileEntity te = accessor.getTileEntity();
|
||||
final MovingObjectPosition mop = accessor.getPosition();
|
||||
|
||||
final Optional<IPart> maybePart = this.accessor.getMaybePart(te, mop);
|
||||
|
||||
if (maybePart.isPresent()) {
|
||||
final IPart part = maybePart.get();
|
||||
|
||||
for (final IPartWailaDataProvider provider : this.providers) {
|
||||
provider.getWailaTail(part, currentToolTip, accessor, config);
|
||||
}
|
||||
}
|
||||
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getNBTData(
|
||||
final EntityPlayerMP player,
|
||||
final TileEntity te,
|
||||
final NBTTagCompound tag,
|
||||
final World world,
|
||||
final int x,
|
||||
final int y,
|
||||
final int z) {
|
||||
final MovingObjectPosition mop = this.tracer.retraceBlock(world, player, x, y, z);
|
||||
|
||||
if (mop != null) {
|
||||
final Optional<IPart> maybePart = this.accessor.getMaybePart(te, mop);
|
||||
|
||||
if (maybePart.isPresent()) {
|
||||
final IPart part = maybePart.get();
|
||||
|
||||
for (final IPartWailaDataProvider provider : this.providers) {
|
||||
provider.getNBTData(player, part, te, tag, world, x, y, z);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.glodblock.github.crossmod.waila;
|
||||
|
||||
import com.glodblock.github.crossmod.waila.tile.FluidInvWailaDataProvider;
|
||||
import com.glodblock.github.crossmod.waila.tile.LevelMaintainerWailaDataProvide;
|
||||
import com.google.common.collect.Lists;
|
||||
import mcp.mobius.waila.api.IWailaConfigHandler;
|
||||
import mcp.mobius.waila.api.IWailaDataAccessor;
|
||||
import mcp.mobius.waila.api.IWailaDataProvider;
|
||||
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 class TileWailaDataProvider implements IWailaDataProvider {
|
||||
private final List<IWailaDataProvider> providers;
|
||||
|
||||
public TileWailaDataProvider() {
|
||||
final IWailaDataProvider fluidInv = new FluidInvWailaDataProvider();
|
||||
final IWailaDataProvider levelMaintainer = new LevelMaintainerWailaDataProvide();
|
||||
this.providers = Lists.newArrayList(fluidInv, levelMaintainer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getWailaStack(final IWailaDataAccessor accessor, final IWailaConfigHandler config) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaHead(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
for (final IWailaDataProvider provider : this.providers) {
|
||||
provider.getWailaHead(itemStack, currentToolTip, accessor, config);
|
||||
}
|
||||
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaBody(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
for (final IWailaDataProvider provider : this.providers) {
|
||||
provider.getWailaBody(itemStack, currentToolTip, accessor, config);
|
||||
}
|
||||
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getWailaTail(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
for (final IWailaDataProvider provider : this.providers) {
|
||||
provider.getWailaTail(itemStack, currentToolTip, accessor, config);
|
||||
}
|
||||
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getNBTData(
|
||||
final EntityPlayerMP player,
|
||||
final TileEntity te,
|
||||
final NBTTagCompound tag,
|
||||
final World world,
|
||||
final int x,
|
||||
final int y,
|
||||
final int z) {
|
||||
for (final IWailaDataProvider provider : this.providers) {
|
||||
provider.getNBTData(player, te, tag, world, x, y, z);
|
||||
}
|
||||
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.glodblock.github.crossmod.waila;
|
||||
|
||||
import appeng.util.Utility;
|
||||
import com.glodblock.github.util.NameConst;
|
||||
import com.glodblock.github.util.Util;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
public class Tooltip {
|
||||
public static String fluidFormat(String name, int amount) {
|
||||
return String.format("%s: %s mB", name, Utility.formatNumbers(amount));
|
||||
}
|
||||
|
||||
public static String partFluidBusFormat(int amount) {
|
||||
return String.format("%s: %s mB/t", I18n.format(NameConst.WAILA_SPEED), Utility.formatNumbers(amount / 5));
|
||||
}
|
||||
|
||||
public static String tileFluidInterfaceFormat(String name, int amount, int face) {
|
||||
return String.format("%s %s: %s mB", I18n.format(NameConst.GUI_FLUID_INTERFACE + "." + face), name, Utility.formatNumbers(amount));
|
||||
}
|
||||
|
||||
public static String tileLevelMaintainerFormat(String name, long quantity, long batch, boolean isEnable) {
|
||||
return String.format("%s: %s / %s %s",
|
||||
name, Utility.formatNumbers(quantity), Utility.formatNumbers(batch),
|
||||
isEnable ? I18n.format(NameConst.WAILA_ENABLE) : I18n.format(NameConst.WAILA_DISABLE)
|
||||
);
|
||||
}
|
||||
|
||||
public static String partFluidTerminalFluidFormat(FluidStack fs) {
|
||||
int fid = Util.getFluidID(fs.getFluid());
|
||||
if (fid == -1) {
|
||||
return fs.getFluid().getLocalizedName();
|
||||
} else if (Minecraft.getMinecraft().gameSettings.advancedItemTooltips) {
|
||||
return String.format("%s (#%s) %s", fs.getFluid().getLocalizedName(), fid, fid);
|
||||
} else {
|
||||
return String.format("%s %s", fs.getFluid().getLocalizedName(), fid);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.glodblock.github.crossmod.waila;
|
||||
|
||||
import appeng.api.parts.IPartHost;
|
||||
import appeng.tile.AEBaseTile;
|
||||
import codechicken.nei.guihook.GuiContainerManager;
|
||||
import cpw.mods.fml.common.event.FMLInterModComms;
|
||||
import mcp.mobius.waila.api.IWailaDataProvider;
|
||||
import mcp.mobius.waila.api.IWailaRegistrar;
|
||||
|
||||
public class WailaInit {
|
||||
|
||||
public static void run() {
|
||||
FMLInterModComms.sendMessage("Waila", "register", WailaInit.class.getName() + ".register");
|
||||
}
|
||||
|
||||
public static void register(final IWailaRegistrar registrar) {
|
||||
final IWailaDataProvider part = new PartWailaDataProvider();
|
||||
registrar.registerBodyProvider(part, IPartHost.class);
|
||||
registrar.registerNBTProvider(part, IPartHost.class);
|
||||
GuiContainerManager.addTooltipHandler(new FCTooltipHandlerWaila());
|
||||
|
||||
final IWailaDataProvider tile = new TileWailaDataProvider();
|
||||
registrar.registerBodyProvider(tile, AEBaseTile.class);
|
||||
registrar.registerNBTProvider(tile, AEBaseTile.class);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.glodblock.github.crossmod.waila.part;
|
||||
|
||||
import appeng.api.parts.IPart;
|
||||
import appeng.integration.modules.waila.part.BasePartWailaDataProvider;
|
||||
import com.glodblock.github.crossmod.waila.Tooltip;
|
||||
import com.glodblock.github.inventory.AEFluidInventory;
|
||||
import com.glodblock.github.inventory.IAEFluidInventory;
|
||||
import mcp.mobius.waila.api.IWailaConfigHandler;
|
||||
import mcp.mobius.waila.api.IWailaDataAccessor;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class FluidInvWailaDataProvider extends BasePartWailaDataProvider {
|
||||
@Override
|
||||
public List<String> getWailaBody(
|
||||
final IPart part,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
if (part instanceof IAEFluidInventory) {
|
||||
((IAEFluidInventory) part).getInternalFluid().readFromNBT(accessor.getNBTData(), "fluidInv");
|
||||
AEFluidInventory fluidInventory = ((IAEFluidInventory) part).getInternalFluid();
|
||||
for (int i = 0; i < fluidInventory.getSlots(); i++) {
|
||||
FluidStack fs = fluidInventory.getFluidStackInSlot(i);
|
||||
if (fs == null) continue;
|
||||
currentToolTip.add(Tooltip.fluidFormat(fs.getFluid().getLocalizedName(), fs.amount));
|
||||
}
|
||||
}
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getNBTData(
|
||||
final EntityPlayerMP player,
|
||||
final IPart part,
|
||||
final TileEntity te,
|
||||
final NBTTagCompound tag,
|
||||
final World world,
|
||||
final int x,
|
||||
final int y,
|
||||
final int z) {
|
||||
if (part instanceof IAEFluidInventory) {
|
||||
((IAEFluidInventory) part).getInternalFluid().writeToNBT(tag, "fluidInv");
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.glodblock.github.crossmod.waila.part;
|
||||
|
||||
import appeng.api.parts.IPart;
|
||||
import appeng.integration.modules.waila.part.BasePartWailaDataProvider;
|
||||
import com.glodblock.github.common.parts.PartSharedFluidBus;
|
||||
import com.glodblock.github.crossmod.waila.Tooltip;
|
||||
import mcp.mobius.waila.api.IWailaConfigHandler;
|
||||
import mcp.mobius.waila.api.IWailaDataAccessor;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SpeedWailaDataProvider extends BasePartWailaDataProvider {
|
||||
|
||||
@Override
|
||||
public List<String> getWailaBody(
|
||||
final IPart part,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
if (part instanceof PartSharedFluidBus) {
|
||||
part.readFromNBT(accessor.getNBTData());
|
||||
currentToolTip.add(Tooltip.partFluidBusFormat(((PartSharedFluidBus) part).calculateAmountToSend()));
|
||||
}
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getNBTData(
|
||||
final EntityPlayerMP player,
|
||||
final IPart part,
|
||||
final TileEntity te,
|
||||
final NBTTagCompound tag,
|
||||
final World world,
|
||||
final int x,
|
||||
final int y,
|
||||
final int z) {
|
||||
if (part instanceof PartSharedFluidBus) {
|
||||
part.writeToNBT(tag);
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.glodblock.github.crossmod.waila.tile;
|
||||
|
||||
import appeng.integration.modules.waila.BaseWailaDataProvider;
|
||||
import com.glodblock.github.common.item.ItemFluidPacket;
|
||||
import com.glodblock.github.common.tile.TileFluidInterface;
|
||||
import com.glodblock.github.common.tile.TileFluidPacketDecoder;
|
||||
import com.glodblock.github.crossmod.waila.Tooltip;
|
||||
import com.glodblock.github.inventory.IAEFluidInventory;
|
||||
import com.glodblock.github.inventory.IAEFluidTank;
|
||||
import mcp.mobius.waila.api.IWailaConfigHandler;
|
||||
import mcp.mobius.waila.api.IWailaDataAccessor;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class FluidInvWailaDataProvider extends BaseWailaDataProvider {
|
||||
|
||||
@Override
|
||||
public List<String> getWailaBody(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
final TileEntity te = accessor.getTileEntity();
|
||||
if (te instanceof TileFluidInterface) {
|
||||
((IAEFluidInventory) te).getInternalFluid().readFromNBT(accessor.getNBTData(), "fluidInv");
|
||||
addTooltip(currentToolTip, ((IAEFluidInventory) te).getInternalFluid(), true);
|
||||
} else if (te instanceof IAEFluidInventory) {
|
||||
((IAEFluidInventory) te).getInternalFluid().readFromNBT(accessor.getNBTData(), "fluidInv");
|
||||
addTooltip(currentToolTip, ((IAEFluidInventory) te).getInternalFluid());
|
||||
} else if (te instanceof TileFluidPacketDecoder) {
|
||||
te.readFromNBT(accessor.getNBTData());
|
||||
IInventory inv = ((TileFluidPacketDecoder) te).getInventory();
|
||||
for (int i = 0; i < inv.getSizeInventory(); i++) {
|
||||
ItemStack is = inv.getStackInSlot(i);
|
||||
if (is != null && is.getItem() instanceof ItemFluidPacket) {
|
||||
FluidStack fs = ItemFluidPacket.getFluidStack(is);
|
||||
currentToolTip.add(Tooltip.fluidFormat(fs.getFluid().getLocalizedName(), fs.amount));
|
||||
}
|
||||
}
|
||||
}
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
private void addTooltip(List<String> currentToolTip, IAEFluidTank ft, boolean prefix) {
|
||||
for (int i = 0; i < ft.getSlots(); i++) {
|
||||
if (ft.getFluidInSlot(i) == null) continue;
|
||||
FluidStack fs = ft.getFluidInSlot(i).getFluidStack();
|
||||
if (prefix) {
|
||||
currentToolTip.add(Tooltip.tileFluidInterfaceFormat(fs.getFluid().getLocalizedName(), fs.amount, i));
|
||||
} else {
|
||||
currentToolTip.add(Tooltip.fluidFormat(fs.getFluid().getLocalizedName(), fs.amount));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addTooltip(List<String> currentToolTip, IAEFluidTank ft) {
|
||||
this.addTooltip(currentToolTip, ft, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getNBTData(
|
||||
final EntityPlayerMP player,
|
||||
final TileEntity te,
|
||||
final NBTTagCompound tag,
|
||||
final World world,
|
||||
final int x,
|
||||
final int y,
|
||||
final int z) {
|
||||
if (te instanceof IAEFluidInventory) {
|
||||
((IAEFluidInventory) te).getInternalFluid().writeToNBT(tag, "fluidInv");
|
||||
} else if (te instanceof TileFluidPacketDecoder) {
|
||||
te.writeToNBT(tag);
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
package com.glodblock.github.crossmod.waila.tile;
|
||||
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.integration.modules.waila.BaseWailaDataProvider;
|
||||
import com.glodblock.github.common.tile.TileLevelMaintainer;
|
||||
import com.glodblock.github.crossmod.waila.Tooltip;
|
||||
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 class LevelMaintainerWailaDataProvide extends BaseWailaDataProvider {
|
||||
@Override
|
||||
public List<String> getWailaBody(
|
||||
final ItemStack itemStack,
|
||||
final List<String> currentToolTip,
|
||||
final IWailaDataAccessor accessor,
|
||||
final IWailaConfigHandler config) {
|
||||
final TileEntity te = accessor.getTileEntity();
|
||||
if (te instanceof TileLevelMaintainer) {
|
||||
te.readFromNBT(accessor.getNBTData());
|
||||
for (int i = 0; i < TileLevelMaintainer.REQ_COUNT; i++) {
|
||||
IAEItemStack ias = ((TileLevelMaintainer) te).requests.getRequestStacks().getStack(i);
|
||||
if (ias != null) {
|
||||
currentToolTip.add(Tooltip.tileLevelMaintainerFormat(
|
||||
ias.getItemStack().getDisplayName(),
|
||||
((TileLevelMaintainer) te).requests.getQuantity(i),
|
||||
((TileLevelMaintainer) te).requests.getBatchSize(i),
|
||||
((TileLevelMaintainer) te).requests.isEnable(i)
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public NBTTagCompound getNBTData(
|
||||
final EntityPlayerMP player,
|
||||
final TileEntity te,
|
||||
final NBTTagCompound tag,
|
||||
final World world,
|
||||
final int x,
|
||||
final int y,
|
||||
final int z) {
|
||||
if (te instanceof TileLevelMaintainer) {
|
||||
te.writeToNBT(tag);
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
@@ -352,7 +352,8 @@ public class AEFluidInventory implements IAEFluidTank
|
||||
}
|
||||
catch( final Exception e )
|
||||
{
|
||||
AELog.debug( e );
|
||||
this.fluids[x] = null;
|
||||
AELog.debug(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package com.glodblock.github.inventory;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface IAEFluidInventory
|
||||
{
|
||||
void onFluidInventoryChanged( final IAEFluidTank inv, final int slot );
|
||||
void onFluidInventoryChanged(final IAEFluidTank inv, final int slot);
|
||||
|
||||
AEFluidInventory getInternalFluid();
|
||||
}
|
||||
@@ -236,6 +236,11 @@ public class DualityFluidInterface implements IGridTickable, IStorageMonitorable
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AEFluidInventory getInternalFluid() {
|
||||
return this.tanks;
|
||||
}
|
||||
|
||||
private boolean hasWorkToDo() {
|
||||
for (IAEFluidStack requiredWork : this.requireWork) {
|
||||
if (requiredWork != null) {
|
||||
|
||||
@@ -20,9 +20,9 @@ public class FluidSorters {
|
||||
final Fluid f1 = ItemFluidDrop.getAeFluidStack(o1).getFluid();
|
||||
final Fluid f2 = ItemFluidDrop.getAeFluidStack(o2).getFluid();
|
||||
if (getDirection() == SortDir.ASCENDING) {
|
||||
return this.secondarySort(Util.getFluidModID(f2).compareToIgnoreCase(Util.getFluidModID(f1)), f1, f2);
|
||||
return this.secondarySort(Util.getFluidModName(f2).compareToIgnoreCase(Util.getFluidModName(f1)), f1, f2);
|
||||
}
|
||||
return this.secondarySort(Util.getFluidModID(f1).compareToIgnoreCase(Util.getFluidModID(f2)), f2, f1);
|
||||
return this.secondarySort(Util.getFluidModName(f1).compareToIgnoreCase(Util.getFluidModName(f2)), f2, f1);
|
||||
}
|
||||
|
||||
private int secondarySort(final int compareToIgnoreCase, final Fluid f1, final Fluid f2) {
|
||||
|
||||
@@ -24,7 +24,7 @@ public final class ModAndClassUtil {
|
||||
public static boolean NEI = false;
|
||||
public static boolean COFH = false;
|
||||
public static boolean GTPP = false;
|
||||
|
||||
public static boolean WAILA = false;
|
||||
public static boolean isDoubleButton;
|
||||
public static boolean isSaveText;
|
||||
public static boolean isSearchStringTooltip;
|
||||
@@ -132,5 +132,7 @@ public final class ModAndClassUtil {
|
||||
COFH = true;
|
||||
if (Loader.isModLoaded("miscutils"))
|
||||
GTPP = true;
|
||||
if (Loader.isModLoaded("Waila"))
|
||||
WAILA = true;
|
||||
}
|
||||
}
|
||||
@@ -35,6 +35,10 @@ public class NameConst {
|
||||
public static final String TT_REQUEST_SIZE = TT_KEY + "request_size";
|
||||
public static final String TT_BATCH_SIZE = TT_KEY + "batch_size";
|
||||
|
||||
public static final String WAILA_KEY = FluidCraft.MODID + ".waila.";
|
||||
public static final String WAILA_ENABLE = WAILA_KEY + "enable";
|
||||
public static final String WAILA_DISABLE = WAILA_KEY + "disable";
|
||||
public static final String WAILA_SPEED = WAILA_KEY + "speed";
|
||||
public static final String RES_KEY = FluidCraft.MODID + ":";
|
||||
|
||||
public static final String GUI_KEY = FluidCraft.MODID + ".gui.";
|
||||
|
||||
@@ -10,6 +10,8 @@ import appeng.api.parts.IPart;
|
||||
import appeng.api.storage.data.IAEFluidStack;
|
||||
import appeng.util.item.AEFluidStack;
|
||||
import com.glodblock.github.common.item.ItemFluidPacket;
|
||||
import cpw.mods.fml.common.ModContainer;
|
||||
import cpw.mods.fml.common.registry.GameData;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -145,6 +147,23 @@ public final class Util {
|
||||
} catch (Exception e) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static ModContainer getFluidMod(Fluid fluid) {
|
||||
return GameData.findModOwner(String.format("%s:%s", getFluidModID(fluid), fluid.getName()));
|
||||
}
|
||||
|
||||
public static int getFluidID(Fluid fluid) {
|
||||
return GameData.getBlockRegistry().getId(fluid.getBlock());
|
||||
}
|
||||
|
||||
public static String getFluidModName(Fluid fluid) {
|
||||
try {
|
||||
ModContainer mod = getFluidMod(fluid);
|
||||
return mod == null ? "Minecraft" : mod.getName();
|
||||
} catch (Exception e) {
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user