diff --git a/src/main/java/com/cellterminal/container/ContainerCellTerminalBase.java b/src/main/java/com/cellterminal/container/ContainerCellTerminalBase.java index b567956..d045093 100644 --- a/src/main/java/com/cellterminal/container/ContainerCellTerminalBase.java +++ b/src/main/java/com/cellterminal/container/ContainerCellTerminalBase.java @@ -391,7 +391,7 @@ protected void addTerminalPosition(NBTTagCompound data) { @Override public boolean canInteractWith(EntityPlayer player) { - return true; + return this.isValidContainer(); } /** diff --git a/src/main/java/com/cellterminal/container/ContainerWirelessCellTerminal.java b/src/main/java/com/cellterminal/container/ContainerWirelessCellTerminal.java index a13b1ca..98b9914 100644 --- a/src/main/java/com/cellterminal/container/ContainerWirelessCellTerminal.java +++ b/src/main/java/com/cellterminal/container/ContainerWirelessCellTerminal.java @@ -1,16 +1,13 @@ package com.cellterminal.container; -import appeng.api.config.Actionable; -import appeng.api.config.PowerMultiplier; -import com.cellterminal.integration.AE2WUTIntegration; -import com.cellterminal.items.ItemWirelessCellTerminal; -import com.cellterminal.util.AE2OldVersionSupport; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.Optional; import appeng.api.AEApi; +import appeng.api.config.Actionable; +import appeng.api.config.PowerMultiplier; import appeng.api.features.IWirelessTermHandler; import appeng.core.AEConfig; import appeng.core.localization.PlayerMessages; @@ -18,6 +15,10 @@ import baubles.api.BaublesApi; +import com.cellterminal.integration.AE2WUTIntegration; +import com.cellterminal.items.ItemWirelessCellTerminal; +import com.cellterminal.util.AE2OldVersionSupport; + /** * Container for the Wireless Cell Terminal GUI. @@ -29,7 +30,7 @@ public class ContainerWirelessCellTerminal extends ContainerCellTerminalBase { private final WirelessTerminalGuiObject wirelessTerminalGuiObject; private final int slot; private final boolean isBauble; - + private double powerMultiplier = 0.5; private int ticks = 0; public ContainerWirelessCellTerminal(InventoryPlayer ip, WirelessTerminalGuiObject wth) { @@ -78,11 +79,10 @@ protected boolean canSendUpdates() { // Drain power periodically (every 20 ticks = 1 second) this.ticks++; if (this.ticks >= 20) { - ItemWirelessCellTerminal terminal = (ItemWirelessCellTerminal) currentStack.getItem(); - double powerDrain = AEConfig.instance().wireless_getDrainRate(0); - double extracted = terminal.extractAEPower(currentStack, powerDrain, Actionable.MODULATE); + double powerDrain = this.getPowerMultiplier() * this.ticks; + double powerUsed = this.wirelessTerminalGuiObject.extractAEPower(powerDrain, Actionable.MODULATE, PowerMultiplier.CONFIG); - if (extracted < powerDrain * 0.9) { + if (powerDrain != powerUsed) { if (this.isValidContainer()) { getPlayerInv().player.sendMessage(PlayerMessages.DeviceNotPowered.get()); } @@ -93,6 +93,16 @@ protected boolean canSendUpdates() { this.ticks = 0; } + if (!this.wirelessTerminalGuiObject.rangeCheck()) { + if (this.isValidContainer()) { + this.getPlayerInv().player.sendMessage(PlayerMessages.OutOfRange.get()); + } + + this.setValidContainer(false); + } else { + this.setPowerMultiplier(AEConfig.instance().wireless_getDrainRate(this.wirelessTerminalGuiObject.getRange())); + } + // Check range (simplified - just check grid is still valid) if (this.grid == null) { if (this.isValidContainer()) { @@ -105,4 +115,13 @@ protected boolean canSendUpdates() { return true; } + + + public double getPowerMultiplier() { + return powerMultiplier; + } + + public void setPowerMultiplier(double powerMultiplier) { + this.powerMultiplier = powerMultiplier; + } }