allow shift-click to clear trigger/action slots

This commit is contained in:
asiekierka 2015-04-28 18:46:31 +02:00
parent 58c230f248
commit ae51723c82

View file

@ -9,6 +9,7 @@
package buildcraft.transport.gui; package buildcraft.transport.gui;
import java.util.Iterator; import java.util.Iterator;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse; import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
@ -271,28 +272,30 @@ public class GuiGateInterface extends GuiAdvancedInterface {
IStatement changed = null; IStatement changed = null;
if (triggerSlot.getStatement() == null) { if (isShiftKeyDown()) {
changed = null;
if (k == 0) {
changed = container.getFirstTrigger();
} else {
changed = container.getLastTrigger();
}
} else { } else {
Iterator<IStatement> it = container.getTriggerIterator(k != 0); if (triggerSlot.getStatement() == null) {
if (k == 0) {
for (; it.hasNext();) { changed = container.getFirstTrigger();
IStatement trigger = it.next(); } else {
changed = container.getLastTrigger();
if (!it.hasNext()) {
changed = null;
break;
} }
} else {
Iterator<IStatement> it = container.getTriggerIterator(k != 0);
if (trigger == triggerSlot.getStatement()) { for (; it.hasNext(); ) {
changed = it.next(); IStatement trigger = it.next();
break;
if (!it.hasNext()) {
changed = null;
break;
}
if (trigger == triggerSlot.getStatement()) {
changed = it.next();
break;
}
} }
} }
} }
@ -314,28 +317,32 @@ public class GuiGateInterface extends GuiAdvancedInterface {
ActionSlot actionSlot = (ActionSlot) slot; ActionSlot actionSlot = (ActionSlot) slot;
IStatement changed = null; IStatement changed = null;
if (actionSlot.getStatement() == null) {
if (k == 0) {
changed = container.getFirstAction();
} else {
changed = container.getLastAction();
}
if (isShiftKeyDown()) {
changed = null;
} else { } else {
Iterator<IStatement> it = container.getActionIterator(k != 0); if (actionSlot.getStatement() == null) {
if (k == 0) {
for (; it.hasNext();) { changed = container.getFirstAction();
IStatement action = it.next(); } else {
changed = container.getLastAction();
if (!it.hasNext()) {
changed = null;
break;
} }
if (action == actionSlot.getStatement()) { } else {
changed = it.next(); Iterator<IStatement> it = container.getActionIterator(k != 0);
break;
for (; it.hasNext(); ) {
IStatement action = it.next();
if (!it.hasNext()) {
changed = null;
break;
}
if (action == actionSlot.getStatement()) {
changed = it.next();
break;
}
} }
} }
} }