Compare commits

...
2 Commits
Author SHA1 Message Date
Martin Robertz e829c4168b update 2025-05-23 23:46:07 +02:00
dibbydoda b1f8d99da9 Comparator refactor and Vacuum Chest logic (#196)
Add comparator logic to the Vacuum Chest and refactor comparator logic for Capacitor Banks and Tanks
2025-05-20 04:24:45 -04:00
8 changed files with 26 additions and 55 deletions

No files matched your search

+4 -4
View File
@@ -3,7 +3,7 @@
dependencies {
api('com.github.GTNewHorizons:EnderCore:0.4.8:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:ForestryMC:4.10.8:dev')
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.44-GTNH:dev')
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.45-GTNH:dev')
api("com.github.GTNewHorizons:GTNHLib:0.6.22: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
@@ -11,14 +11,14 @@ dependencies {
api("com.github.GTNewHorizons:TinkersConstruct:1.13.28-GTNH:dev")
compileOnly('com.github.GTNewHorizons:waila:1.8.4:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-608-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta-613-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Baubles:1.0.4:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.51.291:dev') {transitive = false}
compileOnly("com.github.GTNewHorizons:ModularUI2:2.2.11-1.7.10:dev") {transitive = false}
compileOnly("com.github.GTNewHorizons:ModularUI2:2.2.15-1.7.10:dev") {transitive = false}
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.28:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:StorageDrawers:2.1.0-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:Chisel:2.16.4-GTNH:dev') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.11.13-GTNH:api') {transitive = false}
compileOnly('com.github.GTNewHorizons:OpenComputers:1.11.15-GTNH:api') {transitive = false}
compileOnly('curse.maven:minefactory-reloaded-66672:2366150') // https://www.curseforge.com/minecraft/mc-mods/minefactory-reloaded/files/2366150
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
compileOnly('curse.maven:ee3-65509:2305023') // https://www.curseforge.com/minecraft/mc-mods/ee3/files/2305023
@@ -523,20 +523,6 @@ public class BlockCapBank extends BlockEio
return AxisAlignedBB.getBoundingBox(min.x, min.y, min.z, max.x, max.y, max.z);
}
@Override
public boolean hasComparatorInputOverride() {
return true;
}
@Override
public int getComparatorInputOverride(World w, int x, int y, int z, int side) {
TileEntity te = w.getTileEntity(x, y, z);
if (te instanceof TileCapBank) {
return ((TileCapBank) te).getComparatorOutput();
}
return 0;
}
@Override
public void getWailaInfo(List<String> tooltip, EntityPlayer player, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
@@ -18,6 +18,7 @@ import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import com.enderio.core.common.interfaces.IComparatorOutput;
import com.enderio.core.common.util.BlockCoord;
import com.enderio.core.common.util.EntityUtil;
import com.enderio.core.common.util.Util;
@@ -46,7 +47,7 @@ import crazypants.enderio.power.IPowerStorage;
import crazypants.enderio.power.PowerHandlerUtil;
public class TileCapBank extends TileEntityEio
implements IInternalPowerReceiver, IInventory, IIoConfigurable, IPowerStorage {
implements IInternalPowerReceiver, IInventory, IIoConfigurable, IPowerStorage, IComparatorOutput {
private Map<ForgeDirection, IoMode> faceModes;
private Map<ForgeDirection, InfoDisplayType> faceDisplayTypes;
@@ -692,9 +693,10 @@ public class TileCapBank extends TileEntityEio
return getIoMode(from) != IoMode.DISABLED;
}
@Override
public int getComparatorOutput() {
double stored = getEnergyStored();
return stored == 0 ? 0 : (int) (1 + stored / getMaxEnergyStored() * 14);
int stored = getEnergyStored();
return stored == 0 ? 0 : 1 + (stored * 14) / getMaxEnergyStored();
}
@Override
@@ -330,20 +330,6 @@ public class BlockCapacitorBank extends BlockEio implements IGuiHandler, IAdvanc
return AxisAlignedBB.getBoundingBox(min.x, min.y, min.z, max.x, max.y, max.z);
}
@Override
public boolean hasComparatorInputOverride() {
return true;
}
@Override
public int getComparatorInputOverride(World w, int x, int y, int z, int side) {
TileEntity te = w.getTileEntity(x, y, z);
if (te instanceof TileCapacitorBank) {
return ((TileCapacitorBank) te).getComparatorOutput();
}
return 0;
}
@Override
public void getWailaInfo(List<String> tooltip, EntityPlayer player, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
@@ -17,6 +17,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraftforge.common.util.ForgeDirection;
import com.enderio.core.common.interfaces.IComparatorOutput;
import com.enderio.core.common.util.BlockCoord;
import com.enderio.core.common.util.Util;
import com.enderio.core.common.vecmath.VecmathUtil;
@@ -40,7 +41,7 @@ import crazypants.enderio.power.IPowerStorage;
import crazypants.enderio.power.PowerHandlerUtil;
public class TileCapacitorBank extends TileEntityEio
implements IInternalPowerHandler, IInventory, IIoConfigurable, IPowerStorage {
implements IInternalPowerHandler, IInventory, IIoConfigurable, IPowerStorage, IComparatorOutput {
static final BasicCapacitor BASE_CAP = new BasicCapacitor(
Config.capacitorBankMaxIoRF,
@@ -273,9 +274,10 @@ public class TileCapacitorBank extends TileEntityEio
}
}
@Override
public int getComparatorOutput() {
double stored = getEnergyStored();
return stored == 0 ? 0 : (int) (1 + stored / getMaxEnergyStored() * 14);
int stored = getEnergyStored();
return stored == 0 ? 0 : 1 + (stored * 14) / getMaxEnergyStored();
}
public List<GaugeBounds> getGaugeBounds() {
@@ -184,20 +184,6 @@ public class BlockTank extends AbstractMachineBlock<TileTank> implements IAdvanc
}
}
@Override
public boolean hasComparatorInputOverride() {
return true;
}
@Override
public int getComparatorInputOverride(World w, int x, int y, int z, int side) {
TileEntity te = w.getTileEntity(x, y, z);
if (te instanceof TileTank) {
return ((TileTank) te).getComparatorOutput();
}
return 0;
}
@Override
@SideOnly(Side.CLIENT)
public void addBasicEntries(ItemStack itemstack, EntityPlayer entityplayer, List<String> list, boolean flag) {
@@ -15,6 +15,7 @@ import net.minecraftforge.fluids.IFluidContainerItem;
import net.minecraftforge.fluids.IFluidHandler;
import com.enderio.core.api.common.util.ITankAccess;
import com.enderio.core.common.interfaces.IComparatorOutput;
import com.enderio.core.common.util.BlockCoord;
import com.enderio.core.common.util.FluidUtil;
import com.enderio.core.common.util.FluidUtil.FluidAndStackResult;
@@ -28,7 +29,7 @@ import crazypants.enderio.network.PacketHandler;
import crazypants.enderio.tool.ArrayMappingTool;
import crazypants.enderio.tool.SmartTank;
public class TileTank extends AbstractMachineEntity implements IFluidHandler, ITankAccess {
public class TileTank extends AbstractMachineEntity implements IFluidHandler, ITankAccess, IComparatorOutput {
private static int IO_MB_TICK = 100;
@@ -297,13 +298,14 @@ public class TileTank extends AbstractMachineEntity implements IFluidHandler, IT
return res;
}
@Override
public int getComparatorOutput() {
FluidTankInfo info = getTankInfo(null)[0];
if (info == null || info.fluid == null) {
return 0;
}
return info.fluid.amount == 0 ? 0 : (int) (1 + ((double) info.fluid.amount / (double) info.capacity) * 14);
return info.fluid.amount == 0 ? 0 : 1 + (info.fluid.amount * 14) / info.capacity;
}
private boolean processItems(boolean redstoneCheckPassed) {
@@ -8,6 +8,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.IProjectile;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -16,6 +17,7 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import com.enderio.core.client.render.BoundingBox;
import com.enderio.core.common.interfaces.IComparatorOutput;
import com.enderio.core.common.util.ItemUtil;
import com.enderio.core.common.vecmath.Vector3d;
@@ -34,7 +36,7 @@ import crazypants.enderio.machine.ranged.IRanged;
import crazypants.enderio.machine.ranged.RangeEntity;
public class TileVacuumChest extends TileEntityEio
implements IEntitySelector, IInventory, IRedstoneModeControlable, IRanged {
implements IEntitySelector, IInventory, IRedstoneModeControlable, IRanged, IComparatorOutput {
public static final int ITEM_ROWS = 3;
public static final int ITEM_SLOTS = 9 * ITEM_ROWS;
@@ -407,4 +409,9 @@ public class TileVacuumChest extends TileEntityEio
}
nbtRoot.setInteger("redstoneControlMode", redstoneControlMode.ordinal());
}
@Override
public int getComparatorOutput() {
return Container.calcRedstoneFromInventory(this);
}
}