mirror of
https://github.com/GTNewHorizons/WirelessCraftingTerminal.git
synced 2026-10-26 14:34:11 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
28 files changed
+275
-2788
No files matched your search
@@ -1,4 +1,5 @@
|
||||
// Add any additional repositories for your dependencies here
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.client.gui;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.NetworkHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketSwitchGuis;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WirelessTerminalGuiObject;
|
||||
import net.p455w0rd.wirelesscraftingterminal.items.ItemEnum;
|
||||
import net.p455w0rd.wirelesscraftingterminal.items.ItemWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.definitions.IDefinitions;
|
||||
import appeng.api.definitions.IParts;
|
||||
import appeng.api.storage.ITerminalHost;
|
||||
import appeng.client.gui.widgets.GuiTabButton;
|
||||
import appeng.container.implementations.ContainerCraftAmount;
|
||||
import appeng.helpers.Reflected;
|
||||
|
||||
public class GuiCraftAmount extends appeng.client.gui.implementations.GuiCraftAmount {
|
||||
|
||||
private GuiTabButton originalGuiBtn;
|
||||
|
||||
private ItemStack myIcon;
|
||||
|
||||
private int originalGui;
|
||||
|
||||
@Reflected
|
||||
public GuiCraftAmount(final InventoryPlayer inventoryPlayer, final ITerminalHost te) {
|
||||
super(inventoryPlayer, te);
|
||||
ItemStack is = new ItemStack(ItemEnum.WIRELESS_CRAFTING_TERMINAL.getItem());
|
||||
((ItemWirelessCraftingTerminal) is.getItem()).injectAEPower(is, 6400001);
|
||||
myIcon = is;
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "unused" })
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
// Remove the autogenerated button which takes you to the AE2 wireless terminal GUI
|
||||
if (this.buttonList.get(this.buttonList.size() - 1) instanceof GuiTabButton) {
|
||||
this.buttonList.remove(this.buttonList.size() - 1);
|
||||
}
|
||||
|
||||
final Object target = ((ContainerCraftAmount) this.inventorySlots).getTarget();
|
||||
final IDefinitions definitions = AEApi.instance().definitions();
|
||||
final IParts parts = definitions.parts();
|
||||
|
||||
if (target instanceof WirelessTerminalGuiObject) {
|
||||
this.originalGui = Reference.GUI_WCT;
|
||||
}
|
||||
|
||||
if (this.originalGui > 0 && myIcon != null) {
|
||||
this.buttonList.add(
|
||||
this.originalGuiBtn = new GuiTabButton(
|
||||
this.guiLeft + 154,
|
||||
this.guiTop - 4,
|
||||
myIcon,
|
||||
myIcon.getDisplayName(),
|
||||
itemRender));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void actionPerformed(final GuiButton btn) {
|
||||
super.actionPerformed(btn);
|
||||
|
||||
if (btn == this.originalGuiBtn) {
|
||||
NetworkHandler.instance.sendToServer(new PacketSwitchGuis(this.originalGui));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.client.gui;
|
||||
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.NetworkHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketSwitchGuis;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.storage.ITerminalHost;
|
||||
|
||||
public class GuiCraftConfirm extends appeng.client.gui.implementations.GuiCraftConfirm {
|
||||
|
||||
public GuiCraftConfirm(final InventoryPlayer inventoryPlayer, final ITerminalHost te) {
|
||||
super(inventoryPlayer, te);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void switchToOriginalGUI() {
|
||||
NetworkHandler.instance.sendToServer(new PacketSwitchGuis(Reference.GUI_WCT));
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.client.gui;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.NetworkHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketSwitchGuis;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WirelessTerminalGuiObject;
|
||||
import net.p455w0rd.wirelesscraftingterminal.items.ItemEnum;
|
||||
import net.p455w0rd.wirelesscraftingterminal.items.ItemWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.definitions.IDefinitions;
|
||||
import appeng.api.definitions.IParts;
|
||||
import appeng.api.storage.ITerminalHost;
|
||||
import appeng.client.gui.widgets.GuiTabButton;
|
||||
import appeng.container.implementations.ContainerCraftingStatus;
|
||||
|
||||
public class GuiCraftingStatus extends appeng.client.gui.implementations.GuiCraftingStatus {
|
||||
|
||||
private GuiTabButton originalGuiBtn;
|
||||
private int originalGui;
|
||||
private ItemStack myIcon = null;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public GuiCraftingStatus(final InventoryPlayer inventoryPlayer, final ITerminalHost te) {
|
||||
super(inventoryPlayer, te);
|
||||
|
||||
ContainerCraftingStatus status = (ContainerCraftingStatus) this.inventorySlots;
|
||||
final Object target = status.getTarget();
|
||||
final IDefinitions definitions = AEApi.instance().definitions();
|
||||
final IParts parts = definitions.parts();
|
||||
|
||||
if (target instanceof WirelessTerminalGuiObject) {
|
||||
for (final ItemStack wirelessTerminalStack : definitions.items().wirelessTerminal().maybeStack(1).asSet()) {
|
||||
this.myIcon = wirelessTerminalStack;
|
||||
}
|
||||
|
||||
ItemStack is = new ItemStack(ItemEnum.WIRELESS_CRAFTING_TERMINAL.getItem());
|
||||
((ItemWirelessCraftingTerminal) is.getItem()).injectAEPower(is, 6400001);
|
||||
myIcon = is;
|
||||
|
||||
this.originalGui = Reference.GUI_WCT;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void actionPerformed(final GuiButton btn) {
|
||||
super.actionPerformed(btn);
|
||||
|
||||
if (btn == this.originalGuiBtn) {
|
||||
NetworkHandler.instance.sendToServer(new PacketSwitchGuis(this.originalGui));
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
|
||||
if (this.myIcon != null) {
|
||||
this.buttonList.add(
|
||||
this.originalGuiBtn = new GuiTabButton(
|
||||
this.guiLeft + 213,
|
||||
this.guiTop - 4,
|
||||
this.myIcon,
|
||||
this.myIcon.getDisplayName(),
|
||||
itemRender));
|
||||
this.originalGuiBtn.setHideEdge(13);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ public class GuiMagnet extends GuiContainer {
|
||||
public boolean ignoreNBT = false;
|
||||
public boolean ignoreMeta = false;
|
||||
public boolean useOreDict = false;
|
||||
private ItemStack magnetItem;
|
||||
private final ItemStack magnetItem;
|
||||
private WCTGuiCheckBox ignoreNBTBox;
|
||||
private WCTGuiCheckBox ignoreMetaBox;
|
||||
private WCTGuiCheckBox useOreDictBox;
|
||||
|
||||
+58
-695
@@ -1,342 +1,111 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.client.gui;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.text.NumberFormat;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.inventory.GuiInventory;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.widgets.GuiTrashButton;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.container.ContainerWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.container.slot.SlotTrash;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.WCTLog;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.NetworkHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketEmptyTrash;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketInventoryAction;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketSwitchGuis;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketValueConfig;
|
||||
import net.p455w0rd.wirelesscraftingterminal.handlers.LocaleHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
import org.lwjgl.input.Mouse;
|
||||
|
||||
import appeng.api.config.ActionItems;
|
||||
import appeng.api.config.SearchBoxMode;
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.config.TerminalFontSize;
|
||||
import appeng.api.config.TerminalStyle;
|
||||
import appeng.api.config.YesNo;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.storage.data.IDisplayRepo;
|
||||
import appeng.api.util.IConfigManager;
|
||||
import appeng.api.util.IConfigurableObject;
|
||||
import appeng.client.ActionKey;
|
||||
import appeng.client.gui.AEBaseGui;
|
||||
import appeng.api.parts.ICraftingTerminal;
|
||||
import appeng.client.gui.implementations.GuiMEMonitorable;
|
||||
import appeng.client.gui.slots.VirtualMEPinSlot;
|
||||
import appeng.client.gui.widgets.GuiImgButton;
|
||||
import appeng.client.gui.widgets.GuiScrollbar;
|
||||
import appeng.client.gui.widgets.GuiTabButton;
|
||||
import appeng.client.gui.widgets.ISortSource;
|
||||
import appeng.client.gui.widgets.MEGuiTextField;
|
||||
import appeng.client.me.InternalSlotME;
|
||||
import appeng.client.me.ItemRepo;
|
||||
import appeng.client.me.SlotME;
|
||||
import appeng.container.AEBaseContainer;
|
||||
import appeng.container.slot.AppEngSlot;
|
||||
import appeng.container.slot.SlotCraftingMatrix;
|
||||
import appeng.container.slot.SlotFakeCraftingMatrix;
|
||||
import appeng.core.AEConfig;
|
||||
import appeng.core.CommonHelper;
|
||||
import appeng.core.localization.ButtonToolTips;
|
||||
import appeng.core.localization.GuiText;
|
||||
import appeng.helpers.InventoryAction;
|
||||
import appeng.util.IConfigManagerHost;
|
||||
import appeng.util.Platform;
|
||||
import codechicken.nei.TextField;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import yalter.mousetweaks.api.IMTModGuiContainer;
|
||||
|
||||
@Optional.Interface(modid = "MouseTweaks", iface = "yalter.mousetweaks.api.IMTModGuiContainer")
|
||||
public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
implements ISortSource, IConfigManagerHost, IMTModGuiContainer {
|
||||
public class GuiWirelessCraftingTerminal extends GuiMEMonitorable implements IMTModGuiContainer {
|
||||
|
||||
private float xSize_lo;
|
||||
private float ySize_lo;
|
||||
public static int tick = 0, GUI_HEIGHT = 240, GUI_WIDTH = 230, AE_ROW_HEIGHT = 18, AE_NUM_ROWS = 0,
|
||||
GUI_UPPER_HEIGHT = 35, GUI_SEARCH_ROW = 35, SEARCH_X = 80, SEARCH_Y = 4, SEARCH_WIDTH = 88,
|
||||
SEARCH_HEIGHT = 12, SEARCH_MAXCHARS = 15, GUI_LOWER_HEIGHT, AE_TOTAL_ROWS_HEIGHT,
|
||||
BUTTON_SEARCH_MODE_POS_X = -18, BUTTON_SEARCH_MODE_POS_Y = 68, BUTTON_SIZE = 16, NEI_EXTRA_SPACE = 30,
|
||||
slotYOffset;
|
||||
protected static final int BUTTON_SEARCH_MODE_ID = 5;
|
||||
protected static final long TOOLTIP_UPDATE_INTERVAL = 3000L;
|
||||
private int currScreenWidth, currScreenHeight;
|
||||
private static final String bgTexturePath = "gui/crafting_viewcell.png";
|
||||
|
||||
final ResourceLocation BackgroundTexture = new ResourceLocation(
|
||||
Reference.MODID,
|
||||
"textures/gui/crafting_viewcell.png");
|
||||
private final ContainerWirelessCraftingTerminal containerWCT;
|
||||
private boolean isFullScreen, init = true, reInit, wasResized = false;
|
||||
public static GuiWirelessCraftingTerminal INSTANCE;
|
||||
private static boolean switchingGuis;
|
||||
public static int craftingGridOffsetX = 80;
|
||||
public static int craftingGridOffsetY;
|
||||
private static String memoryText = "";
|
||||
private final IDisplayRepo repo;
|
||||
private final int offsetX = 8;
|
||||
private final IConfigManager configSrc;
|
||||
|
||||
private GuiTabButton craftingStatusBtn;
|
||||
private MEGuiTextField searchField;
|
||||
private int perRow = 9;
|
||||
private boolean customSortOrder = true;
|
||||
private GuiImgButton ViewBox;
|
||||
private GuiImgButton SortByBox;
|
||||
private GuiImgButton SortDirBox;
|
||||
private GuiImgButton searchBoxSettings;
|
||||
private GuiImgButton clearBtn;
|
||||
private GuiTrashButton trashBtn;
|
||||
private GuiImgButton terminalStyleBox;
|
||||
private GuiImgButton searchStringSave;
|
||||
private boolean isAutoFocus = false;
|
||||
|
||||
private int currentMouseX = 0;
|
||||
private int currentMouseY = 0;
|
||||
public boolean devicePowered = false;
|
||||
private boolean isNEIEnabled;
|
||||
private boolean wasTextboxFocused = false;
|
||||
private int screenResTicks = 0;
|
||||
private int reservedSpace = 0;
|
||||
private int maxRows = Integer.MAX_VALUE;
|
||||
private int standardSize;
|
||||
private final int lowerTextureOffset = 0;
|
||||
private int rows = 0;
|
||||
private final ItemStack[] myCurrentViewCells = new ItemStack[5];
|
||||
|
||||
public GuiWirelessCraftingTerminal(Container container) {
|
||||
super(container);
|
||||
GuiWirelessCraftingTerminal.INSTANCE = this;
|
||||
this.xSize = GUI_WIDTH;
|
||||
this.ySize = GUI_HEIGHT;
|
||||
this.standardSize = this.xSize;
|
||||
public GuiWirelessCraftingTerminal(final InventoryPlayer inventoryPlayer, ICraftingTerminal host) {
|
||||
super(inventoryPlayer, host, new ContainerWirelessCraftingTerminal(inventoryPlayer, host));
|
||||
this.setReservedSpace(73);
|
||||
this.containerWCT = (ContainerWirelessCraftingTerminal) container;
|
||||
this.setScrollBar(new GuiScrollbar());
|
||||
this.repo = new ItemRepo(getScrollBar(), this);
|
||||
this.configSrc = ((IConfigurableObject) this.inventorySlots).getConfigManager();
|
||||
this.devicePowered = containerWCT.isPowered();
|
||||
this.offsetRepoX -= 1;
|
||||
|
||||
this.containerWCT = (ContainerWirelessCraftingTerminal) this.inventorySlots;
|
||||
((ContainerWirelessCraftingTerminal) this.inventorySlots).setGui(this);
|
||||
}
|
||||
|
||||
public void postUpdate(final List<IAEItemStack> list) {
|
||||
for (final IAEItemStack is : list) {
|
||||
this.repo.postUpdate(is);
|
||||
}
|
||||
this.repo.updateView();
|
||||
this.setScrollBar();
|
||||
}
|
||||
|
||||
private void setScrollBar() {
|
||||
this.getScrollBar().setTop(18).setLeft(174).setHeight(this.rows * 18 - 2);
|
||||
this.getScrollBar().setRange(
|
||||
0,
|
||||
(this.repo.size() + this.perRow - 1) / this.perRow - this.rows,
|
||||
Math.max(1, this.rows / 6));
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
protected void actionPerformed(final GuiButton btn) {
|
||||
if (btn == this.craftingStatusBtn) {
|
||||
NetworkHandler.instance.sendToServer(new PacketSwitchGuis(Reference.GUI_CRAFTING_STATUS));
|
||||
}
|
||||
|
||||
if (btn instanceof GuiImgButton) {
|
||||
final boolean backwards = Mouse.isButtonDown(1);
|
||||
|
||||
final GuiImgButton iBtn = (GuiImgButton) btn;
|
||||
if (iBtn.getSetting() != Settings.ACTIONS) {
|
||||
final Enum cv = iBtn.getCurrentValue();
|
||||
final Enum next = Platform.rotateEnum(cv, backwards, iBtn.getSetting().getPossibleValues());
|
||||
|
||||
if (btn == this.terminalStyleBox) {
|
||||
AEConfig.instance.settings.putSetting(iBtn.getSetting(), next);
|
||||
}
|
||||
if (btn == this.searchBoxSettings) {
|
||||
AEConfig.instance.settings.putSetting(iBtn.getSetting(), next);
|
||||
} else if (btn == this.searchStringSave) {
|
||||
AEConfig.instance.preserveSearchBar = next == YesNo.YES;
|
||||
} else {
|
||||
try {
|
||||
NetworkHandler.instance
|
||||
.sendToServer(new PacketValueConfig(iBtn.getSetting().name(), next.name()));
|
||||
} catch (final IOException e) {
|
||||
WCTLog.debug(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
iBtn.set(next);
|
||||
|
||||
if (next.getClass() == SearchBoxMode.class || next.getClass() == TerminalStyle.class) {
|
||||
this.reinitalize();
|
||||
// if (btn == this.craftingStatusBtn) {
|
||||
// NetworkHandler.instance.sendToServer(new PacketSwitchGuis(Reference.GUI_CRAFTING_STATUS));
|
||||
// } else
|
||||
if (this.clearBtn == btn) {
|
||||
Slot s = null;
|
||||
final Container c = this.inventorySlots;
|
||||
for (final Object j : c.inventorySlots) {
|
||||
if (j instanceof SlotCraftingMatrix) {
|
||||
s = (Slot) j;
|
||||
}
|
||||
}
|
||||
if (this.clearBtn == btn) {
|
||||
Slot s = null;
|
||||
final Container c = this.inventorySlots;
|
||||
for (final Object j : c.inventorySlots) {
|
||||
if (j instanceof SlotCraftingMatrix) {
|
||||
s = (Slot) j;
|
||||
}
|
||||
}
|
||||
|
||||
if (s != null) {
|
||||
final PacketInventoryAction p = new PacketInventoryAction(
|
||||
InventoryAction.MOVE_REGION,
|
||||
s.slotNumber,
|
||||
0);
|
||||
NetworkHandler.instance.sendToServer(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (btn instanceof GuiTrashButton) {
|
||||
if (this.trashBtn == btn) {
|
||||
Slot s = null;
|
||||
final Container c = this.inventorySlots;
|
||||
for (final Object j : c.inventorySlots) {
|
||||
if (j instanceof SlotTrash) {
|
||||
s = (Slot) j;
|
||||
}
|
||||
}
|
||||
|
||||
if (s != null) {
|
||||
if (s.getHasStack()) {
|
||||
containerWCT.trashSlot.clearStack();
|
||||
NetworkHandler.instance.sendToServer(new PacketEmptyTrash());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleMouseClick(Slot slot, int slotIdx, int ctrlDown, int mouseButton) {
|
||||
// Handle autocraft requests ourselves to spawn the right GUI classes
|
||||
final EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
|
||||
if (slot instanceof SlotME) {
|
||||
InventoryAction action = null;
|
||||
IAEItemStack stack = null;
|
||||
|
||||
switch (mouseButton) {
|
||||
case 0: // pickup / set-down.
|
||||
action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
|
||||
stack = ((SlotME) slot).getAEStack();
|
||||
|
||||
if (stack != null && action == InventoryAction.PICKUP_OR_SET_DOWN
|
||||
&& stack.getStackSize() == 0
|
||||
&& player.inventory.getItemStack() == null) {
|
||||
action = InventoryAction.AUTO_CRAFT;
|
||||
}
|
||||
|
||||
break;
|
||||
case 3: // creative dupe:
|
||||
stack = ((SlotME) slot).getAEStack();
|
||||
if (stack != null && stack.isCraftable()) {
|
||||
action = InventoryAction.AUTO_CRAFT;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
if (action == InventoryAction.AUTO_CRAFT) {
|
||||
((AEBaseContainer) this.inventorySlots).setTargetStack(stack);
|
||||
final PacketInventoryAction p = new PacketInventoryAction(
|
||||
action,
|
||||
this.inventorySlots.inventorySlots.size(),
|
||||
0);
|
||||
if (s != null) {
|
||||
final PacketInventoryAction p = new PacketInventoryAction(InventoryAction.MOVE_REGION, s.slotNumber, 0);
|
||||
NetworkHandler.instance.sendToServer(p);
|
||||
return;
|
||||
}
|
||||
} else if (this.trashBtn == btn) {
|
||||
Slot s = null;
|
||||
final Container c = this.inventorySlots;
|
||||
for (final Object j : c.inventorySlots) {
|
||||
if (j instanceof SlotTrash) {
|
||||
s = (Slot) j;
|
||||
}
|
||||
}
|
||||
|
||||
if (s != null) {
|
||||
if (s.getHasStack()) {
|
||||
containerWCT.trashSlot.clearStack();
|
||||
NetworkHandler.instance.sendToServer(new PacketEmptyTrash());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
super.actionPerformed(btn);
|
||||
}
|
||||
super.handleMouseClick(slot, slotIdx, ctrlDown, mouseButton);
|
||||
}
|
||||
|
||||
private void reinitalize() {
|
||||
this.buttonList.clear();
|
||||
this.initGui();
|
||||
}
|
||||
|
||||
int getReservedSpace() {
|
||||
return this.reservedSpace;
|
||||
}
|
||||
|
||||
void setReservedSpace(final int reservedSpace) {
|
||||
this.reservedSpace = reservedSpace;
|
||||
}
|
||||
|
||||
public int getStandardSize() {
|
||||
return this.standardSize;
|
||||
}
|
||||
|
||||
void setStandardSize(final int standardSize) {
|
||||
this.standardSize = standardSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes the GUI
|
||||
*/
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
@SuppressWarnings({ "unchecked" })
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
|
||||
Keyboard.enableRepeatEvents(true);
|
||||
this.maxRows = this.getMaxRows();
|
||||
this.perRow = AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) != TerminalStyle.FULL ? 9
|
||||
: 9 + ((this.width - this.standardSize) / 18);
|
||||
this.isNEIEnabled = Loader.isModLoaded("NotEnoughItems");
|
||||
int top = isNEIEnabled ? 22 : 0;
|
||||
final int magicNumber = 114 + 1;
|
||||
final int extraSpace = this.height - magicNumber - top - this.reservedSpace;
|
||||
this.rows = (int) Math.floor(extraSpace / 18);
|
||||
if (this.rows > this.maxRows) {
|
||||
top += (this.rows - this.maxRows) * 18 / 2;
|
||||
this.rows = this.maxRows;
|
||||
}
|
||||
|
||||
if (isNEIEnabled) {
|
||||
this.rows--;
|
||||
}
|
||||
|
||||
if (this.rows < 3) {
|
||||
this.rows = 3;
|
||||
}
|
||||
|
||||
this.getMeSlots().clear();
|
||||
for (int y = 0; y < this.rows; y++) {
|
||||
for (int x = 0; x < this.perRow; x++) {
|
||||
this.getMeSlots()
|
||||
.add(new InternalSlotME(this.repo, x + y * this.perRow, this.offsetX + x * 18, 18 + y * 18));
|
||||
}
|
||||
}
|
||||
if (AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) != TerminalStyle.FULL) {
|
||||
this.xSize = this.standardSize + ((this.perRow - 9) * 18);
|
||||
} else {
|
||||
this.xSize = this.standardSize;
|
||||
}
|
||||
super.initGui();
|
||||
|
||||
this.ySize = magicNumber + this.rows * 18 + this.reservedSpace;
|
||||
final int unusedSpace = this.height - this.ySize;
|
||||
this.guiTop = (int) Math.floor(unusedSpace / (unusedSpace < 0 ? 3.8f : 2.0f));
|
||||
int offset = this.guiTop + 8;
|
||||
|
||||
this.buttonList.clear();
|
||||
this.buttonList.add(
|
||||
this.clearBtn = new GuiImgButton(
|
||||
this.guiLeft + 134,
|
||||
@@ -345,58 +114,6 @@ public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
ActionItems.STASH));
|
||||
this.buttonList.add(this.trashBtn = new GuiTrashButton(this.guiLeft + 98, this.guiTop + this.ySize - 104));
|
||||
this.clearBtn.setHalfSize(true);
|
||||
if (this.customSortOrder) {
|
||||
this.buttonList.add(
|
||||
this.SortByBox = new GuiImgButton(
|
||||
this.guiLeft - 18,
|
||||
offset,
|
||||
Settings.SORT_BY,
|
||||
this.configSrc.getSetting(Settings.SORT_BY)));
|
||||
offset += 20;
|
||||
}
|
||||
|
||||
this.buttonList.add(
|
||||
this.ViewBox = new GuiImgButton(
|
||||
this.guiLeft - 18,
|
||||
offset,
|
||||
Settings.VIEW_MODE,
|
||||
this.configSrc.getSetting(Settings.VIEW_MODE)));
|
||||
offset += 20;
|
||||
|
||||
this.buttonList.add(
|
||||
this.SortDirBox = new GuiImgButton(
|
||||
this.guiLeft - 18,
|
||||
offset,
|
||||
Settings.SORT_DIRECTION,
|
||||
this.configSrc.getSetting(Settings.SORT_DIRECTION)));
|
||||
offset += 20;
|
||||
|
||||
this.buttonList.add(
|
||||
this.searchBoxSettings = new GuiImgButton(
|
||||
this.guiLeft - 18,
|
||||
offset,
|
||||
Settings.SEARCH_MODE,
|
||||
AEConfig.instance.settings.getSetting(Settings.SEARCH_MODE)));
|
||||
offset += 20;
|
||||
|
||||
this.buttonList.add(
|
||||
this.searchStringSave = new GuiImgButton(
|
||||
this.guiLeft - 18,
|
||||
offset,
|
||||
Settings.SAVE_SEARCH,
|
||||
AEConfig.instance.preserveSearchBar ? YesNo.YES : YesNo.NO));
|
||||
offset += 20;
|
||||
|
||||
this.buttonList.add(
|
||||
this.terminalStyleBox = new GuiImgButton(
|
||||
this.guiLeft - 18,
|
||||
offset,
|
||||
Settings.TERMINAL_STYLE,
|
||||
AEConfig.instance.settings.getSetting(Settings.TERMINAL_STYLE)));
|
||||
|
||||
this.searchField = new MEGuiTextField(SEARCH_WIDTH, SEARCH_HEIGHT);
|
||||
this.searchField.x = SEARCH_X;
|
||||
this.searchField.y = SEARCH_Y;
|
||||
|
||||
this.buttonList.add(
|
||||
this.craftingStatusBtn = new GuiTabButton(
|
||||
@@ -407,20 +124,6 @@ public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
itemRender));
|
||||
this.craftingStatusBtn.setHideEdge(13);
|
||||
|
||||
final Enum searchMode = AEConfig.instance.settings.getSetting(Settings.SEARCH_MODE);
|
||||
this.isAutoFocus = SearchBoxMode.AUTOSEARCH == searchMode || SearchBoxMode.NEI_AUTOSEARCH == searchMode;
|
||||
|
||||
this.searchField.setFocused(this.isAutoFocus);
|
||||
|
||||
if (AEConfig.instance.preserveSearchBar || this.isSubGui()) {
|
||||
this.searchField.setText(memoryText);
|
||||
this.repo.setSearchString(memoryText);
|
||||
}
|
||||
if (this.isSubGui()) {
|
||||
this.repo.updateView();
|
||||
this.setScrollBar();
|
||||
}
|
||||
|
||||
craftingGridOffsetX = Integer.MAX_VALUE;
|
||||
craftingGridOffsetY = Integer.MAX_VALUE;
|
||||
|
||||
@@ -441,81 +144,9 @@ public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
}
|
||||
}
|
||||
|
||||
int getMaxRows() {
|
||||
return AEConfig.instance.getConfigManager().getSetting(Settings.TERMINAL_STYLE) == TerminalStyle.SMALL ? 6
|
||||
: Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
protected void repositionSlot(final AppEngSlot s) {
|
||||
s.yDisplayPosition = s.getY() + this.ySize - 78 - 5;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called every tick. It is used in this instance to detect screen size changes to automatically update the gui
|
||||
* height.
|
||||
* <p>
|
||||
* reInit variable is used to call initGui() on the next tick. It has to be called this way to update correctly.
|
||||
*
|
||||
* @author p455w0rd
|
||||
*/
|
||||
@Override
|
||||
public void updateScreen() {
|
||||
this.devicePowered = containerWCT.isPowered();
|
||||
this.repo.setPowered(devicePowered);
|
||||
|
||||
super.updateScreen();
|
||||
if (this.init) {
|
||||
this.currScreenWidth = this.mc.displayWidth;
|
||||
this.currScreenHeight = this.mc.displayHeight;
|
||||
this.isFullScreen = this.mc.isFullScreen();
|
||||
this.reInit = true;
|
||||
this.init = false;
|
||||
}
|
||||
++screenResTicks;
|
||||
if (screenResTicks == 20) {
|
||||
this.wasTextboxFocused = this.searchField.isFocused();
|
||||
screenResTicks = 0;
|
||||
}
|
||||
if (this.reInit) {
|
||||
if (tick != 1) {
|
||||
tick++;
|
||||
} else {
|
||||
this.initGui();
|
||||
this.setScrollBar();
|
||||
if (this.wasResized) {
|
||||
this.searchField.setFocused(this.wasTextboxFocused);
|
||||
this.searchField.setText(this.repo.getSearchString());
|
||||
this.wasTextboxFocused = false;
|
||||
this.wasResized = false;
|
||||
}
|
||||
this.reInit = false;
|
||||
tick = 0;
|
||||
}
|
||||
}
|
||||
if (hasScreenResChanged()) {
|
||||
this.reInit = true;
|
||||
this.wasResized = true;
|
||||
}
|
||||
if (!this.mc.thePlayer.isEntityAlive() || this.mc.thePlayer.isDead) {
|
||||
this.mc.thePlayer.closeScreen();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Detects if the window has been resized
|
||||
*
|
||||
* @return True if window has been resized
|
||||
* @author p455w0rd
|
||||
*/
|
||||
private boolean hasScreenResChanged() {
|
||||
if ((this.currScreenWidth != this.mc.displayWidth) || (this.currScreenHeight != this.mc.displayHeight)
|
||||
|| (this.isFullScreen != this.mc.isFullScreen())) {
|
||||
this.currScreenWidth = this.mc.displayWidth;
|
||||
this.currScreenHeight = this.mc.displayHeight;
|
||||
this.isFullScreen = this.mc.isFullScreen();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
protected int getPinButtonY() {
|
||||
return super.getPinButtonY() + 31;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -529,22 +160,21 @@ public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
}
|
||||
|
||||
public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY) {
|
||||
|
||||
String s = LocaleHandler.WirelessTermLabel.getLocal();
|
||||
this.mc.fontRenderer.drawString(s, 7, 5, 4210752);
|
||||
this.mc.fontRenderer.drawString(I18n.format("container.inventory"), 7, this.ySize - 172 + 3, 4210752);
|
||||
if (this.searchField != null) {
|
||||
this.searchField.drawTextBox();
|
||||
}
|
||||
|
||||
VirtualMEPinSlot.drawSlotsBackground(this.pinSlots, this.mc, this.zLevel);
|
||||
|
||||
this.currentMouseX = mouseX;
|
||||
this.currentMouseY = mouseY;
|
||||
}
|
||||
|
||||
public void drawBG(final int offsetX, final int offsetY, final int mouseX, final int mouseY) {
|
||||
this.bindMyTexture(bgTexturePath);
|
||||
final int x_width = 199;
|
||||
|
||||
// draw "over inventory area"
|
||||
this.mc.getTextureManager().bindTexture(BackgroundTexture);
|
||||
final int x_width = 199;
|
||||
this.drawTexturedModalRect(offsetX, offsetY, 0, 0, x_width, 18);
|
||||
|
||||
for (int x = 0; x < this.rows; x++) {
|
||||
@@ -554,13 +184,13 @@ public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
// draw player inv
|
||||
this.drawTexturedModalRect(
|
||||
offsetX,
|
||||
offsetY + 16 + this.rows * 18 + this.lowerTextureOffset,
|
||||
offsetY + 16 + this.rows * 18,
|
||||
0,
|
||||
106 - 18 - 18,
|
||||
x_width,
|
||||
99 + this.reservedSpace - this.lowerTextureOffset);
|
||||
99 + this.getReservedSpace());
|
||||
|
||||
// draw view cells
|
||||
// draw view cells background
|
||||
this.drawTexturedModalRect(offsetX + x_width, offsetY, x_width, 0, 32, 104);
|
||||
|
||||
if (Reference.WCT_BOOSTER_ENABLED) {
|
||||
@@ -574,275 +204,9 @@ public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
(float) ((this.guiTop + this.rows * 18) + 50) - this.ySize_lo,
|
||||
this.mc.thePlayer);
|
||||
|
||||
boolean update = false;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (myCurrentViewCells[i] != containerWCT.getCellViewSlot(i).getStack()) {
|
||||
update = true;
|
||||
myCurrentViewCells[i] = containerWCT.getCellViewSlot(i).getStack();
|
||||
}
|
||||
}
|
||||
this.searchField.drawTextBox();
|
||||
|
||||
if (update) {
|
||||
repo.setViewCell(myCurrentViewCells);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
protected void mouseClicked(final int xCoord, final int yCoord, final int btn) {
|
||||
|
||||
if (!this.isAutoFocus) {
|
||||
this.searchField.mouseClicked(xCoord - this.guiLeft, yCoord - this.guiTop, btn);
|
||||
}
|
||||
|
||||
if (btn == 1 && this.searchField.isMouseIn(xCoord - this.guiLeft, yCoord - this.guiTop)) {
|
||||
this.searchField.setText("");
|
||||
this.repo.setSearchString("");
|
||||
this.repo.updateView();
|
||||
this.setScrollBar();
|
||||
}
|
||||
|
||||
super.mouseClicked(xCoord, yCoord, btn);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGuiClosed() {
|
||||
super.onGuiClosed();
|
||||
Keyboard.enableRepeatEvents(false);
|
||||
if (this.searchField.getText() != null) {
|
||||
memoryText = this.searchField.getText();
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean enableSpaceClicking() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void keyTyped(final char character, final int key) {
|
||||
if (!this.checkHotbarKeys(key)) {
|
||||
if (isNEIFocused()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (CommonHelper.proxy.isActionKey(ActionKey.TOGGLE_FOCUS, key)) {
|
||||
this.searchField.setFocused(!this.searchField.isFocused());
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.searchField.isFocused() && key == Keyboard.KEY_RETURN) {
|
||||
this.searchField.setFocused(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (character == ' ' && this.searchField.getText().isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final boolean mouseInGui = this
|
||||
.isPointInRegion(0, 0, this.xSize, this.ySize, this.currentMouseX, this.currentMouseY);
|
||||
if (this.isAutoFocus && !this.searchField.isFocused() && mouseInGui) {
|
||||
this.searchField.setFocused(true);
|
||||
}
|
||||
|
||||
if (this.searchField.textboxKeyTyped(character, key)) {
|
||||
this.repo.setSearchString(this.searchField.getText());
|
||||
this.repo.updateView();
|
||||
this.setScrollBar();
|
||||
} else {
|
||||
super.keyTyped(character, key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleKeyboardInput() {
|
||||
super.handleKeyboardInput();
|
||||
|
||||
// Pause the terminal when holding shift
|
||||
this.repo.setPaused(hasShiftDown());
|
||||
}
|
||||
|
||||
private boolean hasShiftDown() {
|
||||
return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT);
|
||||
}
|
||||
|
||||
protected boolean isPowered() {
|
||||
return this.repo.hasPower();
|
||||
}
|
||||
|
||||
public void bindMyTexture(final String file) {
|
||||
final ResourceLocation loc = new ResourceLocation(Reference.MODID, "textures/" + file);
|
||||
this.mc.getTextureManager().bindTexture(loc);
|
||||
}
|
||||
|
||||
public List<String> handleItemTooltip(final ItemStack stack, final int mouseX, final int mouseY,
|
||||
final List<String> currentToolTip) {
|
||||
if (stack != null) {
|
||||
final Slot s = this.getSlot(mouseX, mouseY);
|
||||
if (s instanceof SlotME) {
|
||||
final int BigNumber = AEConfig.instance.getTerminalFontSize() == TerminalFontSize.SMALL ? 9999 : 999;
|
||||
|
||||
IAEItemStack myStack = null;
|
||||
|
||||
try {
|
||||
final SlotME theSlotField = (SlotME) s;
|
||||
myStack = theSlotField.getAEStack();
|
||||
} catch (final Throwable ignore) {}
|
||||
|
||||
if (myStack != null) {
|
||||
if (myStack.getStackSize() > BigNumber || (myStack.getStackSize() > 1 && stack.isItemDamaged())) {
|
||||
final String local = ButtonToolTips.ItemsStored.getLocal();
|
||||
final String formattedAmount = NumberFormat.getNumberInstance(Locale.US)
|
||||
.format(myStack.getStackSize());
|
||||
final String format = String.format(local, formattedAmount);
|
||||
|
||||
currentToolTip.add("\u00a77" + format);
|
||||
}
|
||||
|
||||
if (myStack.getCountRequestable() > 0) {
|
||||
final String local = ButtonToolTips.ItemsRequestable.getLocal();
|
||||
final String formattedAmount = NumberFormat.getNumberInstance(Locale.US)
|
||||
.format(myStack.getCountRequestable());
|
||||
final String format = String.format(local, formattedAmount);
|
||||
|
||||
currentToolTip.add("\u00a77" + format);
|
||||
}
|
||||
} else if (stack.stackSize > BigNumber || (stack.stackSize > 1 && stack.isItemDamaged())) {
|
||||
final String local = ButtonToolTips.ItemsStored.getLocal();
|
||||
final String formattedAmount = NumberFormat.getNumberInstance(Locale.US).format(stack.stackSize);
|
||||
final String format = String.format(local, formattedAmount);
|
||||
|
||||
currentToolTip.add("\u00a77" + format);
|
||||
}
|
||||
}
|
||||
}
|
||||
return currentToolTip;
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
@Override
|
||||
public void renderToolTip(final ItemStack stack, final int x, final int y) {
|
||||
final Slot s = this.getSlot(x, y);
|
||||
if (s instanceof SlotME && stack != null) {
|
||||
final int BigNumber = AEConfig.instance.getTerminalFontSize() == TerminalFontSize.SMALL ? 9999 : 999;
|
||||
|
||||
IAEItemStack myStack = null;
|
||||
|
||||
try {
|
||||
final SlotME theSlotField = (SlotME) s;
|
||||
myStack = theSlotField.getAEStack();
|
||||
} catch (final Throwable ignore) {}
|
||||
|
||||
if (myStack != null) {
|
||||
final List<String> currentToolTip = stack
|
||||
.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips);
|
||||
|
||||
if (myStack.getStackSize() > BigNumber || (myStack.getStackSize() > 1 && stack.isItemDamaged())) {
|
||||
currentToolTip.add(
|
||||
"Items Stored: "
|
||||
+ NumberFormat.getNumberInstance(Locale.US).format(myStack.getStackSize()));
|
||||
}
|
||||
|
||||
if (myStack.getCountRequestable() > 0) {
|
||||
currentToolTip.add(
|
||||
"Items Requestable: "
|
||||
+ NumberFormat.getNumberInstance(Locale.US).format(myStack.getCountRequestable()));
|
||||
}
|
||||
|
||||
this.drawTooltip(x, y, 0, join(currentToolTip, "\n"));
|
||||
} else if (stack.stackSize > BigNumber) {
|
||||
final List var4 = stack.getTooltip(this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips);
|
||||
var4.add("Items Stored: " + NumberFormat.getNumberInstance(Locale.US).format(stack.stackSize));
|
||||
this.drawTooltip(x, y, 0, join(var4, "\n"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
super.renderToolTip(stack, x, y);
|
||||
// super.drawItemStackTooltip( stack, x, y );
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public void updateSetting(final IConfigManager manager, final Enum settingName, final Enum newValue) {
|
||||
if (this.SortByBox != null) {
|
||||
this.SortByBox.set(this.configSrc.getSetting(Settings.SORT_BY));
|
||||
}
|
||||
|
||||
if (this.SortDirBox != null) {
|
||||
this.SortDirBox.set(this.configSrc.getSetting(Settings.SORT_DIRECTION));
|
||||
}
|
||||
|
||||
if (this.ViewBox != null) {
|
||||
this.ViewBox.set(this.configSrc.getSetting(Settings.VIEW_MODE));
|
||||
}
|
||||
|
||||
this.repo.updateView();
|
||||
this.setScrollBar();
|
||||
}
|
||||
|
||||
public boolean isCustomSortOrder() {
|
||||
return this.customSortOrder;
|
||||
}
|
||||
|
||||
void setCustomSortOrder(final boolean customSortOrder) {
|
||||
this.customSortOrder = customSortOrder;
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public Enum getSortBy() {
|
||||
return this.configSrc.getSetting(Settings.SORT_BY);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public Enum getSortDir() {
|
||||
return this.configSrc.getSetting(Settings.SORT_DIRECTION);
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
@Override
|
||||
public Enum getSortDisplay() {
|
||||
return this.configSrc.getSetting(Settings.VIEW_MODE);
|
||||
}
|
||||
|
||||
public boolean isOverSearchField(int x, int y) {
|
||||
return searchField.isMouseIn(x - guiLeft, y - guiTop);
|
||||
}
|
||||
|
||||
public void setSearchString(String memoryText) {
|
||||
this.searchField.setText(memoryText);
|
||||
this.repo.setSearchString(memoryText);
|
||||
this.repo.updateView();
|
||||
this.setScrollBar();
|
||||
}
|
||||
|
||||
@SuppressWarnings("SameParameterValue")
|
||||
protected boolean isPointInRegion(int rectX, int rectY, int rectWidth, int rectHeight, int pointX, int pointY) {
|
||||
int i = this.guiLeft;
|
||||
int j = this.guiTop;
|
||||
pointX -= i;
|
||||
pointY -= j;
|
||||
return pointX >= rectX - 1 && pointX < rectX + rectWidth + 1
|
||||
&& pointY >= rectY - 1
|
||||
&& pointY < rectY + rectHeight + 1;
|
||||
}
|
||||
|
||||
private boolean isNEIFocused() {
|
||||
if (!Loader.isModLoaded("NotEnoughItems")) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
final Class<? super Object> c = ReflectionHelper
|
||||
.getClass(this.getClass().getClassLoader(), "codechicken.nei.LayoutManager");
|
||||
final Field fldSearchField = c.getField("searchField");
|
||||
final TextField searchField = (TextField) fldSearchField.get(c);
|
||||
return searchField.focused();
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
this.updateViewCells();
|
||||
}
|
||||
|
||||
// MouseTweaks compat
|
||||
@@ -898,8 +262,7 @@ public class GuiWirelessCraftingTerminal extends AEBaseGui
|
||||
@Override
|
||||
@Optional.Method(modid = "MouseTweaks")
|
||||
public Object getModSelectedSlot(Object modContainer, int slotCount) {
|
||||
Slot s = getSlot(currentMouseX, currentMouseY);
|
||||
return s;
|
||||
return getSlot(currentMouseX, currentMouseY);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.client.gui;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.WCTGuiHandler;
|
||||
|
||||
import appeng.container.PrimaryGui;
|
||||
|
||||
public class WCTPrimaryGui extends PrimaryGui {
|
||||
|
||||
public WCTPrimaryGui(Object gui, ItemStack guiIcon, TileEntity te, ForgeDirection side) {
|
||||
super(gui, guiIcon, te, side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void open(EntityPlayer player) {
|
||||
WCTGuiHandler.launchGui(
|
||||
(int) this.gui,
|
||||
player,
|
||||
player.worldObj,
|
||||
(int) player.posX,
|
||||
(int) player.posY,
|
||||
(int) player.posZ);
|
||||
}
|
||||
}
|
||||
@@ -1,28 +1,23 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.common;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.IWirelessCraftingTermHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftAmount;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftConfirm;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftingStatus;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiMagnet;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.container.ContainerCraftAmount;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.container.ContainerCraftConfirm;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.container.ContainerMagnet;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.container.ContainerWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.RandomUtils;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WirelessTerminalGuiObject;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WTCGuiObject;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.implementations.guiobjects.IPortableCell;
|
||||
import appeng.container.AEBaseContainer;
|
||||
import appeng.container.ContainerOpenContext;
|
||||
import appeng.container.implementations.ContainerCraftingStatus;
|
||||
import cpw.mods.fml.common.network.IGuiHandler;
|
||||
import it.unimi.dsi.fastutil.ints.IntObjectPair;
|
||||
|
||||
public class WCTGuiHandler implements IGuiHandler {
|
||||
|
||||
@@ -40,43 +35,12 @@ public class WCTGuiHandler implements IGuiHandler {
|
||||
return null;
|
||||
}
|
||||
|
||||
final WirelessTerminalGuiObject term = new WirelessTerminalGuiObject(
|
||||
wh,
|
||||
RandomUtils.getWirelessTerm(player.inventory),
|
||||
player,
|
||||
world,
|
||||
x,
|
||||
y,
|
||||
z);
|
||||
final IntObjectPair<ItemStack> termItem = RandomUtils.getWirelessTermWithSlot(player.inventory);
|
||||
final WTCGuiObject term = new WTCGuiObject(wh, termItem.second(), player, world, x, y, z, termItem.firstInt());
|
||||
|
||||
return switch (guiId) {
|
||||
case Reference.GUI_WCT -> updateGui(
|
||||
new ContainerWirelessCraftingTerminal(player, player.inventory),
|
||||
world,
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
ForgeDirection.UNKNOWN,
|
||||
term);
|
||||
case Reference.GUI_CRAFTING_STATUS -> updateGui(
|
||||
new ContainerCraftingStatus(player.inventory, term),
|
||||
world,
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
ForgeDirection.UNKNOWN,
|
||||
term);
|
||||
|
||||
case Reference.GUI_CRAFT_AMOUNT -> updateGui(
|
||||
new ContainerCraftAmount(player, term),
|
||||
world,
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
ForgeDirection.UNKNOWN,
|
||||
term);
|
||||
case Reference.GUI_CRAFT_CONFIRM -> updateGui(
|
||||
new ContainerCraftConfirm(player, term),
|
||||
new ContainerWirelessCraftingTerminal(player.inventory, term),
|
||||
world,
|
||||
x,
|
||||
y,
|
||||
@@ -91,35 +55,18 @@ public class WCTGuiHandler implements IGuiHandler {
|
||||
public Object getClientGuiElement(int guiId, EntityPlayer player, World world, int x, int y, int z) {
|
||||
final IWirelessCraftingTermHandler wh = (IWirelessCraftingTermHandler) AEApi.instance().registries().wireless()
|
||||
.getWirelessTerminalHandler(RandomUtils.getWirelessTerm(player.inventory));
|
||||
if (wh != null) {
|
||||
final WirelessTerminalGuiObject obj = new WirelessTerminalGuiObject(
|
||||
if (wh != null && guiId == Reference.GUI_WCT) {
|
||||
final IntObjectPair<ItemStack> termItem = RandomUtils.getWirelessTermWithSlot(player.inventory);
|
||||
final WTCGuiObject obj = new WTCGuiObject(
|
||||
wh,
|
||||
RandomUtils.getWirelessTerm(player.inventory),
|
||||
termItem.second(),
|
||||
player,
|
||||
world,
|
||||
x,
|
||||
y,
|
||||
z);
|
||||
if (obj != null) {
|
||||
final IPortableCell terminal = obj;
|
||||
|
||||
if (guiId == Reference.GUI_WCT) {
|
||||
return new GuiWirelessCraftingTerminal(
|
||||
new ContainerWirelessCraftingTerminal(player, player.inventory));
|
||||
}
|
||||
|
||||
if (guiId == Reference.GUI_CRAFTING_STATUS) {
|
||||
return new GuiCraftingStatus(player.inventory, terminal);
|
||||
}
|
||||
|
||||
if (guiId == Reference.GUI_CRAFT_AMOUNT) {
|
||||
return new GuiCraftAmount(player.inventory, terminal);
|
||||
}
|
||||
|
||||
if (guiId == Reference.GUI_CRAFT_CONFIRM) {
|
||||
return new GuiCraftConfirm(player.inventory, terminal);
|
||||
}
|
||||
}
|
||||
z,
|
||||
termItem.firstInt());
|
||||
return new GuiWirelessCraftingTerminal(player.inventory, obj);
|
||||
}
|
||||
if (guiId == Reference.GUI_MAGNET) {
|
||||
return new GuiMagnet(new ContainerMagnet(player, player.inventory));
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.common.container;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.WCTGuiHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.implementations.guiobjects.IPortableCell;
|
||||
|
||||
public class ContainerCraftAmount extends appeng.container.implementations.ContainerCraftAmount {
|
||||
|
||||
public ContainerCraftAmount(EntityPlayer player, IPortableCell terminal) {
|
||||
super(player.inventory, terminal);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openConfirmationGUI(EntityPlayer player, TileEntity te) {
|
||||
int x = (int) player.posX;
|
||||
int y = (int) player.posY;
|
||||
int z = (int) player.posZ;
|
||||
WCTGuiHandler.launchGui(Reference.GUI_CRAFT_CONFIRM, player, player.worldObj, x, y, z);
|
||||
setupConfirmationGUI(player);
|
||||
}
|
||||
}
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.common.container;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.WCTGuiHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.implementations.guiobjects.IPortableCell;
|
||||
|
||||
public class ContainerCraftConfirm extends appeng.container.implementations.ContainerCraftConfirm {
|
||||
|
||||
private final EntityPlayer player;
|
||||
|
||||
public ContainerCraftConfirm(EntityPlayer player, IPortableCell terminal) {
|
||||
super(player.inventory, terminal);
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void switchToOriginalGUI() {
|
||||
int x = (int) player.posX;
|
||||
int y = (int) player.posY;
|
||||
int z = (int) player.posZ;
|
||||
WCTGuiHandler.launchGui(Reference.GUI_WCT, player, player.worldObj, x, y, z);
|
||||
}
|
||||
}
|
||||
+35
-914
File diff suppressed because it is too large.
Load diff
@@ -13,6 +13,8 @@ import baubles.api.BaublesApi;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import it.unimi.dsi.fastutil.ints.IntObjectImmutablePair;
|
||||
import it.unimi.dsi.fastutil.ints.IntObjectPair;
|
||||
|
||||
public class RandomUtils {
|
||||
|
||||
@@ -86,6 +88,48 @@ public class RandomUtils {
|
||||
return wirelessTerm;
|
||||
}
|
||||
|
||||
public static IntObjectPair<ItemStack> getWirelessTermWithSlot(InventoryPlayer playerInv) {
|
||||
if (playerInv.player.getHeldItem() != null
|
||||
&& playerInv.player.getHeldItem().getItem() instanceof IWirelessCraftingTerminalItem) {
|
||||
return new IntObjectImmutablePair<>(playerInv.player.inventory.currentItem, playerInv.player.getHeldItem());
|
||||
}
|
||||
IntObjectPair<ItemStack> wirelessTerm = null;
|
||||
|
||||
int invSize = playerInv.getSizeInventory();
|
||||
if (invSize <= 0) {
|
||||
return null;
|
||||
}
|
||||
for (int i = 0; i < invSize; ++i) {
|
||||
ItemStack item = playerInv.getStackInSlot(i);
|
||||
if (item == null) {
|
||||
continue;
|
||||
}
|
||||
if (item.getItem() instanceof IWirelessCraftingTerminalItem) {
|
||||
wirelessTerm = new IntObjectImmutablePair<>(i, item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isBaublesLoaded) {
|
||||
IInventory handler = BaublesApi.getBaubles(playerInv.player);
|
||||
if (handler != null) {
|
||||
invSize = handler.getSizeInventory();
|
||||
for (int i = 0; i < invSize; ++i) {
|
||||
ItemStack item = handler.getStackInSlot(i);
|
||||
if (item == null) {
|
||||
continue;
|
||||
}
|
||||
if (item.getItem() instanceof IWirelessCraftingTerminalItem) {
|
||||
wirelessTerm = new IntObjectImmutablePair<>(i + playerInv.getSizeInventory(), item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return wirelessTerm;
|
||||
}
|
||||
|
||||
public static ItemStack getMagnet(InventoryPlayer playerInv) {
|
||||
// Is player holding a Magnet Card?
|
||||
if (playerInv.player.getHeldItem() != null && playerInv.player.getHeldItem().getItem() instanceof ItemMagnet) {
|
||||
|
||||
-12
@@ -6,16 +6,12 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketConfigSync;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketCraftRequest;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketEmptyTrash;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketInventoryAction;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketMEInventoryUpdate;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketMagnetFilter;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketNEIRecipe;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketOpenGui;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketSetMagnet;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketSwitchGuis;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketValueConfig;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.handler.codec.DecoderException;
|
||||
@@ -28,16 +24,8 @@ public class WCTPacketHandlerBase {
|
||||
|
||||
PACKET_INVENTORY_ACTION(PacketInventoryAction.class),
|
||||
|
||||
PACKET_ME_INVENTORY_UPDATE(PacketMEInventoryUpdate.class),
|
||||
|
||||
PACKET_VALUE_CONFIG(PacketValueConfig.class),
|
||||
|
||||
PACKET_SWITCH_GUIS(PacketSwitchGuis.class),
|
||||
|
||||
PACKET_RECIPE_NEI(PacketNEIRecipe.class),
|
||||
|
||||
PACKET_CRAFTING_REQUEST(PacketCraftRequest.class),
|
||||
|
||||
PACKET_MAGNETFILTER_MODE(PacketMagnetFilter.class),
|
||||
|
||||
PACKET_OPENWIRELESSTERM(PacketOpenGui.class),
|
||||
|
||||
-88
@@ -1,88 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.core.sync.packets;
|
||||
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.WCTGuiHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.WCTPacket;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.INetworkInfo;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.networking.IGrid;
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.networking.crafting.ICraftingGrid;
|
||||
import appeng.api.networking.crafting.ICraftingJob;
|
||||
import appeng.container.implementations.ContainerCraftAmount;
|
||||
import appeng.container.implementations.ContainerCraftConfirm;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
|
||||
public class PacketCraftRequest extends WCTPacket {
|
||||
|
||||
private final long amount;
|
||||
private final boolean heldShift;
|
||||
|
||||
public PacketCraftRequest(final ByteBuf stream) {
|
||||
this.heldShift = stream.readBoolean();
|
||||
this.amount = stream.readLong();
|
||||
}
|
||||
|
||||
public PacketCraftRequest(final int craftAmt, final boolean shift) {
|
||||
this.amount = craftAmt;
|
||||
this.heldShift = shift;
|
||||
|
||||
final ByteBuf data = Unpooled.buffer();
|
||||
|
||||
data.writeInt(this.getPacketID());
|
||||
data.writeBoolean(shift);
|
||||
data.writeLong(this.amount);
|
||||
|
||||
this.configureWrite(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serverPacketData(final INetworkInfo manager, final WCTPacket packet, final EntityPlayer player) {
|
||||
if (player.openContainer instanceof ContainerCraftAmount) {
|
||||
final ContainerCraftAmount cca = (ContainerCraftAmount) player.openContainer;
|
||||
final Object target = cca.getTarget();
|
||||
if (target instanceof IGridHost) {
|
||||
final IGrid g = cca.getGrid();
|
||||
if (g == null || cca.getItemToCraft() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
cca.getItemToCraft().setStackSize(this.amount);
|
||||
|
||||
Future<ICraftingJob> futureJob = null;
|
||||
try {
|
||||
final ICraftingGrid cg = g.getCache(ICraftingGrid.class);
|
||||
futureJob = cg.beginCraftingJob(
|
||||
cca.getWorld(),
|
||||
cca.getGrid(),
|
||||
cca.getActionSrc(),
|
||||
cca.getItemToCraft(),
|
||||
null);
|
||||
|
||||
int x = (int) player.posX;
|
||||
int y = (int) player.posY;
|
||||
int z = (int) player.posZ;
|
||||
|
||||
WCTGuiHandler.launchGui(Reference.GUI_CRAFT_CONFIRM, player, player.worldObj, x, y, z);
|
||||
|
||||
if (player.openContainer instanceof ContainerCraftConfirm) {
|
||||
final ContainerCraftConfirm ccc = (ContainerCraftConfirm) player.openContainer;
|
||||
ccc.setItemToCraft(cca.getItemToCraft());
|
||||
ccc.setAutoStart(this.heldShift);
|
||||
ccc.setJob(futureJob);
|
||||
cca.detectAndSendChanges();
|
||||
}
|
||||
} catch (final Throwable e) {
|
||||
if (futureJob != null) {
|
||||
futureJob.cancel(true);
|
||||
}
|
||||
// WCTLog.debug(e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
-50
@@ -5,18 +5,14 @@ import java.io.IOException;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.WCTGuiHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.container.ContainerWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.RandomUtils;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.WCTPacket;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.INetworkInfo;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.client.ClientHelper;
|
||||
import appeng.container.AEBaseContainer;
|
||||
import appeng.container.ContainerOpenContext;
|
||||
import appeng.container.implementations.ContainerCraftAmount;
|
||||
import appeng.helpers.InventoryAction;
|
||||
import appeng.util.Platform;
|
||||
import appeng.util.item.AEItemStack;
|
||||
@@ -96,55 +92,16 @@ public class PacketInventoryAction extends WCTPacket {
|
||||
public void serverPacketData(final INetworkInfo manager, final WCTPacket packet, final EntityPlayer player) {
|
||||
final EntityPlayerMP sender = (EntityPlayerMP) player;
|
||||
Container baseContainer = sender.openContainer;
|
||||
ContainerOpenContext context = null;
|
||||
|
||||
if (baseContainer instanceof ContainerWirelessCraftingTerminal) {
|
||||
if (RandomUtils.getWirelessTerm(player.inventory) == null)
|
||||
((ContainerWirelessCraftingTerminal) baseContainer).setValidContainer(false);
|
||||
else((ContainerWirelessCraftingTerminal) baseContainer).doAction(sender, this.action, this.slot, this.id);
|
||||
}
|
||||
if (baseContainer instanceof AEBaseContainer) {
|
||||
context = ((AEBaseContainer) baseContainer).getOpenContext();
|
||||
((AEBaseContainer) baseContainer).doAction(sender, this.action, this.slot, this.id);
|
||||
}
|
||||
|
||||
if (this.action == InventoryAction.AUTO_CRAFT) {
|
||||
// if( context != null )
|
||||
// {
|
||||
// final TileEntity te = context.getTile();
|
||||
|
||||
int x = (int) player.posX;
|
||||
int y = (int) player.posY;
|
||||
int z = (int) player.posZ;
|
||||
|
||||
WCTGuiHandler.launchGui(Reference.GUI_CRAFT_AMOUNT, player, player.worldObj, x, y, z);
|
||||
|
||||
if (sender.openContainer instanceof ContainerCraftAmount) {
|
||||
final ContainerCraftAmount cca = (ContainerCraftAmount) sender.openContainer;
|
||||
|
||||
if (baseContainer instanceof ContainerWirelessCraftingTerminal) {
|
||||
if (((ContainerWirelessCraftingTerminal) baseContainer).getTargetStack() != null) {
|
||||
cca.getCraftingItem().putStack(
|
||||
((ContainerWirelessCraftingTerminal) baseContainer).getTargetStack().getItemStack());
|
||||
cca.setItemToCraft(((ContainerWirelessCraftingTerminal) baseContainer).getTargetStack());
|
||||
}
|
||||
}
|
||||
|
||||
if (baseContainer instanceof AEBaseContainer) {
|
||||
if (((AEBaseContainer) baseContainer).getTargetStack() != null) {
|
||||
cca.getCraftingItem()
|
||||
.putStack(((AEBaseContainer) baseContainer).getTargetStack().getItemStack());
|
||||
cca.setItemToCraft(((AEBaseContainer) baseContainer).getTargetStack());
|
||||
}
|
||||
}
|
||||
|
||||
cca.detectAndSendChanges();
|
||||
}
|
||||
// }
|
||||
} else {
|
||||
if (baseContainer instanceof ContainerWirelessCraftingTerminal) {
|
||||
if (RandomUtils.getWirelessTerm(player.inventory) == null)
|
||||
((ContainerWirelessCraftingTerminal) baseContainer).setValidContainer(false);
|
||||
else((ContainerWirelessCraftingTerminal) baseContainer)
|
||||
.doAction(sender, this.action, this.slot, this.id);
|
||||
}
|
||||
if (baseContainer instanceof AEBaseContainer) {
|
||||
((AEBaseContainer) baseContainer).doAction(sender, this.action, this.slot, this.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
-162
@@ -1,162 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.core.sync.packets;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.BufferOverflowException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiCraftConfirm;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.WCTLog;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.WCTPacket;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.INetworkInfo;
|
||||
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.util.item.AEItemStack;
|
||||
import cpw.mods.fml.common.network.internal.FMLProxyPacket;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
|
||||
public class PacketMEInventoryUpdate extends WCTPacket {
|
||||
|
||||
private static final int UNCOMPRESSED_PACKET_BYTE_LIMIT = 16 * 1024 * 1024;
|
||||
private static final int OPERATION_BYTE_LIMIT = 2 * 1024;
|
||||
private static final int TEMP_BUFFER_SIZE = 1024;
|
||||
private static final int STREAM_MASK = 0xff;
|
||||
|
||||
// input.
|
||||
@Nullable
|
||||
private final List<IAEItemStack> list;
|
||||
// output...
|
||||
private final byte ref;
|
||||
|
||||
@Nullable
|
||||
private final ByteBuf data;
|
||||
|
||||
@Nullable
|
||||
private final GZIPOutputStream compressFrame;
|
||||
|
||||
private int writtenBytes = 0;
|
||||
private boolean empty = true;
|
||||
|
||||
// automatic.
|
||||
public PacketMEInventoryUpdate(final ByteBuf stream) throws IOException {
|
||||
this.data = null;
|
||||
this.compressFrame = null;
|
||||
this.list = new LinkedList<IAEItemStack>();
|
||||
this.ref = stream.readByte();
|
||||
|
||||
final GZIPInputStream gzReader = new GZIPInputStream(new InputStream() {
|
||||
|
||||
@Override
|
||||
public int read() throws IOException {
|
||||
if (stream.readableBytes() <= 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return stream.readByte() & STREAM_MASK;
|
||||
}
|
||||
});
|
||||
|
||||
final ByteBuf uncompressed = Unpooled.buffer(stream.readableBytes());
|
||||
final byte[] tmp = new byte[TEMP_BUFFER_SIZE];
|
||||
while (gzReader.available() != 0) {
|
||||
final int bytes = gzReader.read(tmp);
|
||||
if (bytes > 0) {
|
||||
uncompressed.writeBytes(tmp, 0, bytes);
|
||||
}
|
||||
}
|
||||
gzReader.close();
|
||||
|
||||
while (uncompressed.readableBytes() > 0) {
|
||||
this.list.add(AEItemStack.loadItemStackFromPacket(uncompressed));
|
||||
}
|
||||
|
||||
this.empty = this.list.isEmpty();
|
||||
}
|
||||
|
||||
// api
|
||||
public PacketMEInventoryUpdate() throws IOException {
|
||||
this((byte) 0);
|
||||
}
|
||||
|
||||
// api
|
||||
public PacketMEInventoryUpdate(final byte ref) throws IOException {
|
||||
this.ref = ref;
|
||||
this.data = Unpooled.buffer(OPERATION_BYTE_LIMIT);
|
||||
this.data.writeInt(this.getPacketID());
|
||||
this.data.writeByte(this.ref);
|
||||
|
||||
this.compressFrame = new GZIPOutputStream(new OutputStream() {
|
||||
|
||||
@Override
|
||||
public void write(final int value) throws IOException {
|
||||
PacketMEInventoryUpdate.this.data.writeByte(value);
|
||||
}
|
||||
});
|
||||
|
||||
this.list = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void clientPacketData(final INetworkInfo network, final WCTPacket packet, final EntityPlayer player) {
|
||||
final GuiScreen gs = Minecraft.getMinecraft().currentScreen;
|
||||
|
||||
if (gs instanceof GuiCraftConfirm) {
|
||||
((GuiCraftConfirm) gs).postUpdate(this.list, this.ref);
|
||||
}
|
||||
|
||||
if (gs instanceof GuiWirelessCraftingTerminal) {
|
||||
((GuiWirelessCraftingTerminal) gs).postUpdate(this.list);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public FMLProxyPacket getProxy() {
|
||||
try {
|
||||
this.compressFrame.close();
|
||||
|
||||
this.configureWrite(this.data);
|
||||
return super.getProxy();
|
||||
} catch (final IOException e) {
|
||||
WCTLog.debug(e.getMessage());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void appendItem(final IAEItemStack is) throws IOException, BufferOverflowException {
|
||||
final ByteBuf tmp = Unpooled.buffer(OPERATION_BYTE_LIMIT);
|
||||
is.writeToPacket(tmp);
|
||||
|
||||
this.compressFrame.flush();
|
||||
if (this.writtenBytes + tmp.readableBytes() > UNCOMPRESSED_PACKET_BYTE_LIMIT) {
|
||||
throw new BufferOverflowException();
|
||||
} else {
|
||||
this.writtenBytes += tmp.readableBytes();
|
||||
this.compressFrame.write(tmp.array(), 0, tmp.readableBytes());
|
||||
this.empty = false;
|
||||
}
|
||||
}
|
||||
|
||||
public int getLength() {
|
||||
return this.data.readableBytes();
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return this.empty;
|
||||
}
|
||||
}
|
||||
+7
-4
@@ -21,7 +21,7 @@ import net.p455w0rd.wirelesscraftingterminal.common.container.ContainerWirelessC
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.RandomUtils;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.WCTPacket;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.INetworkInfo;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WirelessTerminalGuiObject;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WTCGuiObject;
|
||||
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.config.FuzzyMode;
|
||||
@@ -43,6 +43,7 @@ import appeng.util.item.AEItemStack;
|
||||
import appeng.util.prioitylist.IPartitionList;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import it.unimi.dsi.fastutil.ints.IntObjectPair;
|
||||
|
||||
public class PacketNEIRecipe extends WCTPacket {
|
||||
|
||||
@@ -93,13 +94,15 @@ public class PacketNEIRecipe extends WCTPacket {
|
||||
IGridNode node = cct.getNetworkNode();
|
||||
|
||||
if (node == null) {
|
||||
WirelessTerminalGuiObject obj = ContainerWirelessCraftingTerminal.getGuiObject(
|
||||
RandomUtils.getWirelessTerm(player.inventory),
|
||||
IntObjectPair<ItemStack> termItem = RandomUtils.getWirelessTermWithSlot(player.inventory);
|
||||
WTCGuiObject obj = ContainerWirelessCraftingTerminal.getGuiObject(
|
||||
termItem.second(),
|
||||
player,
|
||||
player.worldObj,
|
||||
(int) player.posX,
|
||||
(int) player.posY,
|
||||
(int) player.posZ);
|
||||
(int) player.posZ,
|
||||
termItem.firstInt());
|
||||
node = obj.getActionableNode(true);
|
||||
}
|
||||
if (node != null) {
|
||||
|
||||
-52
@@ -1,52 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.core.sync.packets;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.WCTGuiHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.WCTPacket;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.INetworkInfo;
|
||||
|
||||
import appeng.util.Platform;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
|
||||
public class PacketSwitchGuis extends WCTPacket {
|
||||
|
||||
private final int newGui;
|
||||
|
||||
// automatic.
|
||||
public PacketSwitchGuis(final ByteBuf stream) {
|
||||
this.newGui = stream.readInt();
|
||||
}
|
||||
|
||||
// api
|
||||
public PacketSwitchGuis(final int newGui) {
|
||||
this.newGui = newGui;
|
||||
|
||||
if (Platform.isClient()) {
|
||||
GuiWirelessCraftingTerminal.setSwitchingGuis(true);
|
||||
}
|
||||
|
||||
final ByteBuf data = Unpooled.buffer();
|
||||
|
||||
data.writeInt(this.getPacketID());
|
||||
data.writeInt(newGui);
|
||||
|
||||
this.configureWrite(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serverPacketData(final INetworkInfo manager, final WCTPacket packet, final EntityPlayer player) {
|
||||
World world = player.worldObj;
|
||||
int x = (int) player.posX;
|
||||
int y = (int) player.posY;
|
||||
int z = (int) player.posZ;
|
||||
WCTGuiHandler.launchGui(newGui, player, world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clientPacketData(final INetworkInfo network, final WCTPacket packet, final EntityPlayer player) {
|
||||
GuiWirelessCraftingTerminal.setSwitchingGuis(true);
|
||||
}
|
||||
}
|
||||
-112
@@ -1,112 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.core.sync.packets;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.RandomUtils;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.WCTPacket;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.network.INetworkInfo;
|
||||
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.util.IConfigManager;
|
||||
import appeng.api.util.IConfigurableObject;
|
||||
import appeng.container.AEBaseContainer;
|
||||
import appeng.helpers.IMouseWheelItem;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
|
||||
public class PacketValueConfig extends WCTPacket {
|
||||
|
||||
private final String Name;
|
||||
private final String Value;
|
||||
|
||||
// automatic.
|
||||
public PacketValueConfig(final ByteBuf stream) throws IOException {
|
||||
final DataInputStream dis = new DataInputStream(
|
||||
new ByteArrayInputStream(stream.array(), stream.readerIndex(), stream.readableBytes()));
|
||||
this.Name = dis.readUTF();
|
||||
this.Value = dis.readUTF();
|
||||
}
|
||||
|
||||
// api
|
||||
public PacketValueConfig(final String name, final String value) throws IOException {
|
||||
this.Name = name;
|
||||
this.Value = value;
|
||||
|
||||
final ByteBuf data = Unpooled.buffer();
|
||||
|
||||
data.writeInt(this.getPacketID());
|
||||
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
final DataOutputStream dos = new DataOutputStream(bos);
|
||||
dos.writeUTF(name);
|
||||
dos.writeUTF(value);
|
||||
data.writeBytes(bos.toByteArray());
|
||||
this.configureWrite(data);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void serverPacketData(final INetworkInfo manager, final WCTPacket packet, final EntityPlayer player) {
|
||||
final Container c = player.openContainer;
|
||||
|
||||
if (this.Name.equals("Item") && RandomUtils.getWirelessTerm(player.inventory) != null
|
||||
&& RandomUtils.getWirelessTerm(player.inventory).getItem() instanceof IMouseWheelItem) {
|
||||
final ItemStack is = RandomUtils.getWirelessTerm(player.inventory);
|
||||
final IMouseWheelItem si = (IMouseWheelItem) is.getItem();
|
||||
si.onWheel(is, this.Value.equals("WheelUp"));
|
||||
} else if (c instanceof IConfigurableObject) {
|
||||
final IConfigManager cm = ((IConfigurableObject) c).getConfigManager();
|
||||
|
||||
for (final Settings e : cm.getSettings()) {
|
||||
if (e.name().equals(this.Name)) {
|
||||
final Enum<?> def = cm.getSetting(e);
|
||||
|
||||
try {
|
||||
cm.putSetting(e, Enum.valueOf(def.getClass(), this.Value));
|
||||
} catch (final IllegalArgumentException err) {
|
||||
// :P
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void clientPacketData(final INetworkInfo network, final WCTPacket packet, final EntityPlayer player) {
|
||||
final Container c = player.openContainer;
|
||||
|
||||
if (this.Name.equals("CustomName")) {
|
||||
if (c instanceof AEBaseContainer) {
|
||||
((AEBaseContainer) c).setCustomName(this.Value);
|
||||
}
|
||||
} else if (this.Name.startsWith("SyncDat.")) {
|
||||
if (c instanceof AEBaseContainer) {
|
||||
((AEBaseContainer) c).stringSync(Integer.parseInt(this.Name.substring(8)), this.Value);
|
||||
}
|
||||
} else if (c instanceof IConfigurableObject) {
|
||||
final IConfigManager cm = ((IConfigurableObject) c).getConfigManager();
|
||||
|
||||
for (final Settings e : cm.getSettings()) {
|
||||
if (e.name().equals(this.Name)) {
|
||||
final Enum<?> def = cm.getSetting(e);
|
||||
|
||||
try {
|
||||
cm.putSetting(e, Enum.valueOf(def.getClass(), this.Value));
|
||||
} catch (final IllegalArgumentException err) {
|
||||
// :P
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.helpers;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.networking.security.WCTIActionHost;
|
||||
|
||||
import appeng.api.features.IWirelessTermHandler;
|
||||
import appeng.api.networking.IGridNode;
|
||||
import appeng.items.contents.WirelessCraftingTerminalGuiObject;
|
||||
|
||||
public class WTCGuiObject extends WirelessCraftingTerminalGuiObject implements WCTIActionHost {
|
||||
|
||||
private final int slotIndex;
|
||||
|
||||
public WTCGuiObject(IWirelessTermHandler wh, ItemStack is, EntityPlayer ep, World w, int x, int y, int z,
|
||||
final int slotIndex) {
|
||||
super(wh, is, ep, w, x, y, z);
|
||||
this.slotIndex = slotIndex;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGridNode getActionableNode(boolean ignoreRange) {
|
||||
IGridNode node = this.getActionableNode();
|
||||
if (node != null) return node;
|
||||
if (ignoreRange && this.getGrid() != null) {
|
||||
return this.getGrid().getPivot();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventorySlot() {
|
||||
return this.slotIndex;
|
||||
}
|
||||
}
|
||||
-339
@@ -1,339 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.helpers;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.IWirelessCraftingTerminalItem;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.networking.security.WCTIActionHost;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.config.AccessRestriction;
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.config.PowerMultiplier;
|
||||
import appeng.api.features.ILocatable;
|
||||
import appeng.api.features.IWirelessTermHandler;
|
||||
import appeng.api.implementations.guiobjects.IGuiItemObject;
|
||||
import appeng.api.implementations.guiobjects.IPortableCell;
|
||||
import appeng.api.implementations.tiles.IWirelessAccessPoint;
|
||||
import appeng.api.networking.IGrid;
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.networking.IGridNode;
|
||||
import appeng.api.networking.IMachineSet;
|
||||
import appeng.api.networking.security.BaseActionSource;
|
||||
import appeng.api.networking.security.IActionHost;
|
||||
import appeng.api.networking.storage.IStorageGrid;
|
||||
import appeng.api.storage.IMEMonitor;
|
||||
import appeng.api.storage.IMEMonitorHandlerReceiver;
|
||||
import appeng.api.storage.StorageChannel;
|
||||
import appeng.api.storage.data.IAEFluidStack;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
import appeng.api.util.AECableType;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
import appeng.api.util.IConfigManager;
|
||||
import appeng.container.interfaces.IInventorySlotAware;
|
||||
import appeng.tile.networking.TileWireless;
|
||||
|
||||
public class WirelessTerminalGuiObject
|
||||
implements IActionHost, IPortableCell, IInventorySlotAware, WCTIActionHost, IGuiItemObject {
|
||||
|
||||
private final ItemStack effectiveItem;
|
||||
private final IWirelessTermHandler wth;
|
||||
private final String encryptionKey;
|
||||
private final EntityPlayer myPlayer;
|
||||
private IGrid targetGrid;
|
||||
private IStorageGrid sg;
|
||||
private IMEMonitor<IAEItemStack> itemStorage;
|
||||
private IWirelessAccessPoint myWap;
|
||||
private double sqRange = Double.MAX_VALUE;
|
||||
private double myRange = Double.MAX_VALUE;
|
||||
private final int inventorySlot;
|
||||
|
||||
public WirelessTerminalGuiObject(final IWirelessTermHandler wh, final ItemStack is, final EntityPlayer ep,
|
||||
final World w, final int x, final int y, final int z) {
|
||||
this.encryptionKey = wh.getEncryptionKey(is);
|
||||
this.effectiveItem = is;
|
||||
this.myPlayer = ep;
|
||||
this.wth = wh;
|
||||
this.inventorySlot = x;
|
||||
ILocatable obj = null;
|
||||
try {
|
||||
final long encKey = Long.parseLong(this.encryptionKey);
|
||||
obj = AEApi.instance().registries().locatable().getLocatableBy(encKey);
|
||||
} catch (final NumberFormatException err) {
|
||||
// :P
|
||||
}
|
||||
|
||||
if (obj instanceof IGridHost) {
|
||||
final IGridNode n = ((IGridHost) obj).getGridNode(ForgeDirection.UNKNOWN);
|
||||
if (n != null) {
|
||||
this.targetGrid = n.getGrid();
|
||||
if (this.targetGrid != null) {
|
||||
this.sg = this.targetGrid.getCache(IStorageGrid.class);
|
||||
if (this.sg != null) {
|
||||
this.itemStorage = this.sg.getItemInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Whether an infinity booster card is installed on the WCT.
|
||||
*/
|
||||
private boolean checkForBooster() {
|
||||
if (effectiveItem != null && effectiveItem.getItem() instanceof IWirelessCraftingTerminalItem) {
|
||||
IWirelessCraftingTerminalItem wct = (IWirelessCraftingTerminalItem) effectiveItem.getItem();
|
||||
return wct.checkForBooster(effectiveItem);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public IGrid getTargetGrid() {
|
||||
return this.targetGrid;
|
||||
}
|
||||
|
||||
public double getRange() {
|
||||
return this.myRange;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMEMonitor<IAEItemStack> getItemInventory() {
|
||||
if (this.sg == null) {
|
||||
return null;
|
||||
}
|
||||
return this.sg.getItemInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMEMonitor<IAEFluidStack> getFluidInventory() {
|
||||
if (this.sg == null) {
|
||||
return null;
|
||||
}
|
||||
return this.sg.getFluidInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(final IMEMonitorHandlerReceiver<IAEItemStack> l, final Object verificationToken) {
|
||||
if (this.itemStorage != null) {
|
||||
this.itemStorage.addListener(l, verificationToken);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener(final IMEMonitorHandlerReceiver<IAEItemStack> l) {
|
||||
if (this.itemStorage != null) {
|
||||
this.itemStorage.removeListener(l);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
@Override
|
||||
public IItemList<IAEItemStack> getAvailableItems(final IItemList out, int iteration) {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.getAvailableItems(out, iteration);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemList<IAEItemStack> getStorageList() {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.getStorageList();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getAccess() {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.getAccess();
|
||||
}
|
||||
return AccessRestriction.NO_ACCESS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPrioritized(final IAEItemStack input) {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.isPrioritized(input);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAccept(final IAEItemStack input) {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.canAccept(input);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.getPriority();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlot() {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.getSlot();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validForPass(final int i) {
|
||||
return this.itemStorage.validForPass(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEItemStack injectItems(final IAEItemStack input, final Actionable type, final BaseActionSource src) {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.injectItems(input, type, src);
|
||||
}
|
||||
return input;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IAEItemStack extractItems(final IAEItemStack request, final Actionable mode, final BaseActionSource src) {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.extractItems(request, mode, src);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StorageChannel getChannel() {
|
||||
if (this.itemStorage != null) {
|
||||
return this.itemStorage.getChannel();
|
||||
}
|
||||
return StorageChannel.ITEMS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double extractAEPower(final double amt, final Actionable mode, final PowerMultiplier usePowerMultiplier) {
|
||||
if (this.wth != null && this.effectiveItem != null) {
|
||||
if (mode == Actionable.SIMULATE) {
|
||||
return this.wth.hasPower(this.myPlayer, amt, this.effectiveItem) ? amt : 0;
|
||||
}
|
||||
return this.wth.usePower(this.myPlayer, amt, this.effectiveItem) ? amt : 0;
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItemStack() {
|
||||
return this.effectiveItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IConfigManager getConfigManager() {
|
||||
return this.wth.getConfigManager(this.effectiveItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IGridNode getGridNode(final ForgeDirection dir) {
|
||||
return this.getActionableNode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AECableType getCableConnectionType(final ForgeDirection dir) {
|
||||
return AECableType.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void securityBreak() {}
|
||||
|
||||
@Override
|
||||
public IGridNode getActionableNode() {
|
||||
return getActionableNode(checkForBooster());
|
||||
}
|
||||
|
||||
public IGridNode getActionableNode(boolean ignoreRange) {
|
||||
this.rangeCheck(ignoreRange);
|
||||
if (this.myWap != null) {
|
||||
// return this.getTargetGrid().getPivot();
|
||||
return this.myWap.getActionableNode();
|
||||
} else {
|
||||
if (ignoreRange && this.getTargetGrid() != null) {
|
||||
return this.getTargetGrid().getPivot();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean rangeCheck() {
|
||||
return rangeCheck(checkForBooster());
|
||||
}
|
||||
|
||||
public boolean rangeCheck(boolean ignoreRange) {
|
||||
this.sqRange = this.myRange = Double.MAX_VALUE;
|
||||
|
||||
if (this.targetGrid != null && this.itemStorage != null) {
|
||||
if (this.myWap != null) {
|
||||
if (this.myWap.getGrid() == this.targetGrid) {
|
||||
if (this.testWap(this.myWap)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
final IMachineSet tw = this.targetGrid.getMachines(TileWireless.class);
|
||||
|
||||
this.myWap = null;
|
||||
|
||||
for (final IGridNode n : tw) {
|
||||
final IWirelessAccessPoint wap = (IWirelessAccessPoint) n.getMachine();
|
||||
if (this.testWap(wap, ignoreRange)) {
|
||||
this.myWap = wap;
|
||||
}
|
||||
}
|
||||
|
||||
return this.myWap != null;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean testWap(final IWirelessAccessPoint wap) {
|
||||
return testWap(wap, checkForBooster());
|
||||
}
|
||||
|
||||
private boolean testWap(final IWirelessAccessPoint wap, boolean ignoreRange) {
|
||||
double rangeLimit = wap.getRange();
|
||||
rangeLimit *= rangeLimit;
|
||||
|
||||
final DimensionalCoord dc = wap.getLocation();
|
||||
|
||||
if (dc.getWorld() == this.myPlayer.worldObj) {
|
||||
final double offX = dc.x - this.myPlayer.posX;
|
||||
final double offY = dc.y - this.myPlayer.posY;
|
||||
final double offZ = dc.z - this.myPlayer.posZ;
|
||||
|
||||
final double r = offX * offX + offY * offY + offZ * offZ;
|
||||
if (r < rangeLimit && this.sqRange > r && !ignoreRange) {
|
||||
if (wap.isActive()) {
|
||||
this.sqRange = r;
|
||||
this.myRange = Math.sqrt(r);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (wap.isActive() && ignoreRange) {
|
||||
this.sqRange = r;
|
||||
this.myRange = Math.sqrt(r);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventorySlot() {
|
||||
return this.inventorySlot;
|
||||
}
|
||||
}
|
||||
+1
-3
@@ -3,7 +3,6 @@ package net.p455w0rd.wirelesscraftingterminal.implementation;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.IWCTInteractionHelper;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.IWirelessCraftingTermHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.RandomUtils;
|
||||
@@ -19,8 +18,7 @@ public class WCTInteractionHelper implements IWCTInteractionHelper {
|
||||
|
||||
@Override
|
||||
public void openWirelessCraftingTerminalGui(final EntityPlayer player) {
|
||||
if ((player == null) || (player instanceof FakePlayer)
|
||||
|| (player instanceof EntityPlayerMP)
|
||||
if (player == null || player instanceof EntityPlayerMP
|
||||
|| FMLCommonHandler.instance().getSide() == Side.SERVER) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import net.p455w0rd.wirelesscraftingterminal.integration.IIntegrationModule;
|
||||
import net.p455w0rd.wirelesscraftingterminal.integration.IntegrationHelper;
|
||||
import net.p455w0rd.wirelesscraftingterminal.integration.abstraction.INEI;
|
||||
import net.p455w0rd.wirelesscraftingterminal.integration.modules.NEIHelpers.NEIAEShapedRecipeHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.integration.modules.NEIHelpers.NEIGUIHandler;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
@@ -72,7 +71,6 @@ public class NEI implements INEI, IContainerTooltipHandler, IIntegrationModule {
|
||||
"crafting");
|
||||
API.registerRecipeHandler(new NEIAEShapedRecipeHandler());
|
||||
API.registerRecipeHandler(new NEIAEShapelessRecipeHandler());
|
||||
API.registerNEIGuiHandler(new NEIGUIHandler());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
package net.p455w0rd.wirelesscraftingterminal.integration.modules.NEIHelpers;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.p455w0rd.wirelesscraftingterminal.client.gui.GuiWirelessCraftingTerminal;
|
||||
|
||||
import codechicken.nei.api.INEIGuiAdapter;
|
||||
|
||||
public class NEIGUIHandler extends INEIGuiAdapter {
|
||||
|
||||
protected Pattern SPECIAL_REGEX_CHARS = Pattern.compile("[{}()\\[\\].+*?^$\\\\|]");
|
||||
|
||||
@Override
|
||||
public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button) {
|
||||
if (gui instanceof GuiWirelessCraftingTerminal && draggedStack != null && draggedStack.getItem() != null) {
|
||||
GuiWirelessCraftingTerminal gmm = (GuiWirelessCraftingTerminal) gui;
|
||||
if (gmm.isOverSearchField(mousex, mousey)) {
|
||||
gmm.setSearchString(SPECIAL_REGEX_CHARS.matcher(draggedStack.getDisplayName()).replaceAll("\\\\$0"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.handleDragNDrop(gui, mousex, mousey, draggedStack, button);
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ import net.p455w0rd.wirelesscraftingterminal.core.sync.network.NetworkHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.core.sync.packets.PacketMagnetFilter;
|
||||
import net.p455w0rd.wirelesscraftingterminal.handlers.KeybindHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.handlers.LocaleHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WirelessTerminalGuiObject;
|
||||
import net.p455w0rd.wirelesscraftingterminal.helpers.WTCGuiObject;
|
||||
import net.p455w0rd.wirelesscraftingterminal.reference.Reference;
|
||||
|
||||
import org.apache.commons.lang3.text.WordUtils;
|
||||
@@ -54,7 +54,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
public class ItemMagnet extends Item {
|
||||
|
||||
private int distanceFromPlayer;
|
||||
public WirelessTerminalGuiObject obj;
|
||||
public WTCGuiObject obj;
|
||||
public IPortableCell civ;
|
||||
public IEnergySource powerSrc;
|
||||
public IMEMonitor<IAEItemStack> monitor;
|
||||
@@ -392,7 +392,7 @@ public class ItemMagnet extends Item {
|
||||
if (player.capabilities.isCreativeMode) {
|
||||
return true;
|
||||
}
|
||||
final IGrid g = obj.getTargetGrid();
|
||||
final IGrid g = obj.getGrid();
|
||||
if (g != null) {
|
||||
if (requirePower) {
|
||||
final IEnergyGrid eg = g.getCache(IEnergyGrid.class);
|
||||
|
||||
+36
-38
@@ -14,7 +14,7 @@ import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.IWirelessCraftingTerminalItem;
|
||||
import net.p455w0rd.wirelesscraftingterminal.api.WCTApi;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.WCTGuiHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.common.utils.RandomUtils;
|
||||
import net.p455w0rd.wirelesscraftingterminal.handlers.LocaleHandler;
|
||||
import net.p455w0rd.wirelesscraftingterminal.integration.EnderIO;
|
||||
@@ -25,7 +25,6 @@ import org.lwjgl.input.Keyboard;
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
import appeng.api.config.AccessRestriction;
|
||||
import appeng.api.config.PowerMultiplier;
|
||||
import appeng.api.config.PowerUnits;
|
||||
import appeng.api.config.Settings;
|
||||
import appeng.api.config.SortDir;
|
||||
@@ -40,7 +39,6 @@ import appeng.util.IConfigManagerHost;
|
||||
import appeng.util.Platform;
|
||||
import baubles.api.BaubleType;
|
||||
import baubles.api.expanded.IBaubleExpanded;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
@@ -49,14 +47,13 @@ public class ItemWirelessCraftingTerminal extends AERootPoweredItem
|
||||
implements IWirelessCraftingTerminalItem, IWirelessTermHandler, IBaubleExpanded {
|
||||
|
||||
public static final String LINK_KEY_STRING = "key";
|
||||
public static double GLOBAL_POWER_MULTIPLIER = PowerMultiplier.CONFIG.multiplier;
|
||||
private static final String POWER_NBT_KEY = "internalCurrentPower";
|
||||
private static final String BOOSTER_SLOT_NBT = "BoosterSlot";
|
||||
private static final String MAGNET_SLOT_NBT = "MagnetSlot";
|
||||
private EntityPlayer entityPlayer;
|
||||
|
||||
public ItemWirelessCraftingTerminal() {
|
||||
super(Reference.WCT_MAX_POWER, Optional.<String>absent());
|
||||
super(Reference.WCT_MAX_POWER, Optional.absent());
|
||||
setUnlocalizedName("wirelessCraftingTerminal");
|
||||
setTextureName(Reference.MODID + ":wirelessCraftingTerminal");
|
||||
setMaxStackSize(1);
|
||||
@@ -149,16 +146,16 @@ public class ItemWirelessCraftingTerminal extends AERootPoweredItem
|
||||
|
||||
@Override
|
||||
public void onUpdate(final ItemStack is, final World w, final Entity e, int i, boolean f) {
|
||||
if (!(e instanceof EntityPlayer)) {
|
||||
if (!(e instanceof EntityPlayer p)) {
|
||||
return;
|
||||
}
|
||||
EntityPlayer p = (EntityPlayer) e;
|
||||
|
||||
if (entityPlayer == null) {
|
||||
entityPlayer = p;
|
||||
}
|
||||
ItemStack wirelessTerminal = null;
|
||||
|
||||
InventoryPlayer inv = p.inventory;
|
||||
wirelessTerminal = RandomUtils.getWirelessTerm(inv);
|
||||
ItemStack wirelessTerminal = RandomUtils.getWirelessTerm(inv);
|
||||
if (wirelessTerminal == null || !(wirelessTerminal.getItem() instanceof IWirelessCraftingTerminalItem)) {
|
||||
return;
|
||||
}
|
||||
@@ -167,10 +164,16 @@ public class ItemWirelessCraftingTerminal extends AERootPoweredItem
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(final ItemStack itemStack, final World world, final EntityPlayer player) {
|
||||
if (FMLCommonHandler.instance().getSide() == Side.CLIENT) {
|
||||
// Open the gui
|
||||
WCTApi.instance().interact().openWirelessCraftingTerminalGui(player);
|
||||
if (!world.isRemote) {
|
||||
WCTGuiHandler.launchGui(
|
||||
Reference.GUI_WCT,
|
||||
player,
|
||||
player.worldObj,
|
||||
(int) player.posX,
|
||||
(int) player.posY,
|
||||
(int) player.posZ);
|
||||
}
|
||||
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
@@ -216,14 +219,17 @@ public class ItemWirelessCraftingTerminal extends AERootPoweredItem
|
||||
return getAECurrentPower(is) >= amt;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInfinityRange(ItemStack is) {
|
||||
return this.checkForBooster(is);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IConfigManager getConfigManager(final ItemStack target) {
|
||||
final ConfigManager out = new ConfigManager(new IConfigManagerHost() {
|
||||
|
||||
@Override
|
||||
public void updateSetting(final IConfigManager manager,
|
||||
@SuppressWarnings("rawtypes") final Enum settingName,
|
||||
@SuppressWarnings("rawtypes") final Enum newValue) {
|
||||
public void updateSetting(final IConfigManager manager, final Enum settingName, final Enum newValue) {
|
||||
final NBTTagCompound data = Platform.openNbtData(target);
|
||||
manager.writeToNBT(data);
|
||||
}
|
||||
@@ -237,44 +243,39 @@ public class ItemWirelessCraftingTerminal extends AERootPoweredItem
|
||||
return out;
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
@SuppressWarnings({ "unchecked" })
|
||||
@Override
|
||||
public void getCheckedSubItems(Item item, CreativeTabs creativeTab, List itemList) {
|
||||
List itemList2 = itemList;
|
||||
itemList2.add(new ItemStack(item));
|
||||
itemList.add(new ItemStack(item));
|
||||
ItemStack is = new ItemStack(item);
|
||||
injectAEPower(is, Reference.WCT_MAX_POWER);
|
||||
itemList2.add(is);
|
||||
itemList.add(is);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean showDurabilityBar(ItemStack is) {
|
||||
double aeCurrPower = getAECurrentPower(is);
|
||||
double aeMaxPower = getAEMaxPower(is);
|
||||
if ((int) aeCurrPower >= (int) aeMaxPower) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
return (int) aeCurrPower < (int) aeMaxPower;
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
@SuppressWarnings({ "unchecked" })
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void addCheckedInformation(ItemStack is, EntityPlayer player, List list, boolean displayMore) {
|
||||
String shift = LocaleHandler.PressShift.getLocal().replace(
|
||||
"Shift",
|
||||
color("yellow") + "" + color("bold") + "" + color("italics") + "Shift" + color("gray"));
|
||||
String shift = LocaleHandler.PressShift.getLocal()
|
||||
.replace("Shift", color("yellow") + color("bold") + color("italics") + "Shift" + color("gray"));
|
||||
final NBTTagCompound tag = ensureTagCompound(is);
|
||||
|
||||
String encKey = tag.getString("key");
|
||||
String pctTxtColor = color("white") + "";
|
||||
String pctTxtColor = color("white");
|
||||
double aeCurrPower = getAECurrentPower(is);
|
||||
double aeCurrPowerPct = (int) Math.floor(aeCurrPower / Reference.WCT_MAX_POWER * 1e4) / 1e2;
|
||||
if ((int) aeCurrPowerPct >= 75) {
|
||||
pctTxtColor = color("green") + "";
|
||||
pctTxtColor = color("green");
|
||||
}
|
||||
if ((int) aeCurrPowerPct <= 5) {
|
||||
pctTxtColor = color("red") + "";
|
||||
pctTxtColor = color("red");
|
||||
}
|
||||
list.add(color("aqua") + "==============================");
|
||||
list.add(
|
||||
@@ -290,10 +291,10 @@ public class ItemWirelessCraftingTerminal extends AERootPoweredItem
|
||||
linked = color("blue") + StatCollector.translateToLocal("gui.appliedenergistics2.Linked");
|
||||
}
|
||||
list.add(LocaleHandler.LinkStatus.getLocal() + ": " + linked);
|
||||
String boosterStatus = (checkForBooster(is) ? color("green") + "" + LocaleHandler.Installed.getLocal()
|
||||
: color("red") + "" + LocaleHandler.NotInstalled.getLocal());
|
||||
String magnetStatus = (isMagnetInstalled(is) ? color("green") + "" + LocaleHandler.Installed.getLocal()
|
||||
: color("red") + "" + LocaleHandler.NotInstalled.getLocal());
|
||||
String boosterStatus = (checkForBooster(is) ? color("green") + LocaleHandler.Installed.getLocal()
|
||||
: color("red") + LocaleHandler.NotInstalled.getLocal());
|
||||
String magnetStatus = (isMagnetInstalled(is) ? color("green") + LocaleHandler.Installed.getLocal()
|
||||
: color("red") + LocaleHandler.NotInstalled.getLocal());
|
||||
if (Reference.WCT_BOOSTER_ENABLED) {
|
||||
list.add(getItemName("infinityBoosterCard") + ": " + boosterStatus);
|
||||
}
|
||||
@@ -355,10 +356,7 @@ public class ItemWirelessCraftingTerminal extends AERootPoweredItem
|
||||
}
|
||||
|
||||
private NBTTagCompound ensureTagCompound(ItemStack is) {
|
||||
if (!is.hasTagCompound()) {
|
||||
is.setTagCompound(new NBTTagCompound());
|
||||
}
|
||||
return is.getTagCompound();
|
||||
return RandomUtils.getTag(is);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -45,6 +45,7 @@ import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;
|
||||
import cpw.mods.fml.common.gameevent.TickEvent;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import it.unimi.dsi.fastutil.ints.IntObjectPair;
|
||||
|
||||
public class CommonProxy {
|
||||
|
||||
@@ -204,7 +205,8 @@ public class CommonProxy {
|
||||
}
|
||||
}
|
||||
if (RandomUtils.getWirelessTerm(playerInv) != null) {
|
||||
ItemStack WCTStack = RandomUtils.getWirelessTerm(playerInv);
|
||||
IntObjectPair<ItemStack> termItemPair = RandomUtils.getWirelessTermWithSlot(playerInv);
|
||||
ItemStack WCTStack = termItemPair.second();
|
||||
if (RandomUtils.isMagnetInstalled(playerInv)) {
|
||||
ItemStack magnetStack = RandomUtils.getMagnet(playerInv);
|
||||
if (magnetStack.getItem() instanceof ItemMagnet) {
|
||||
@@ -216,7 +218,8 @@ public class CommonProxy {
|
||||
world,
|
||||
(int) player.posX,
|
||||
(int) player.posY,
|
||||
(int) player.posZ);
|
||||
(int) player.posZ,
|
||||
termItemPair.firstInt());
|
||||
magnet.civ = magnet.obj;
|
||||
magnet.powerSrc = magnet.civ;
|
||||
magnet.monitor = magnet.civ.getItemInventory();
|
||||
@@ -225,7 +228,7 @@ public class CommonProxy {
|
||||
|
||||
boolean ignoreRange = (magnet.isBoosterInstalled(WCTStack) && Reference.WCT_BOOSTER_ENABLED);
|
||||
boolean hasAxxess = magnet.hasNetworkAccess(SecurityPermissions.INJECT, true, player, WCTStack);
|
||||
if ((ignoreRange && hasAxxess) || (magnet.obj.rangeCheck(false) && hasAxxess)) {
|
||||
if ((ignoreRange && hasAxxess) || (magnet.obj.rangeCheck() && hasAxxess)) {
|
||||
if (magnet.isActivated(magnetStack)) {
|
||||
List<ItemStack> filteredList = magnet.getFilteredItems(magnetStack);
|
||||
IAEItemStack ais = AEApi.instance().storage().createItemStack(stack);
|
||||
|
||||
@@ -23,8 +23,5 @@ public class Reference {
|
||||
|
||||
// Gui IDs
|
||||
public static final int GUI_WCT = 0;
|
||||
public static final int GUI_CRAFTING_STATUS = 1;
|
||||
public static final int GUI_CRAFT_AMOUNT = 2;
|
||||
public static final int GUI_CRAFT_CONFIRM = 3;
|
||||
public static final int GUI_MAGNET = 4;
|
||||
}
|
||||
Reference in new issue
Block a user