Fix ArrayIndexOutOfBoundsException and parameters in Diamond gates
This commit is contained in:
parent
851d447837
commit
387f0f0a36
1 changed files with 6 additions and 9 deletions
|
@ -220,6 +220,8 @@ public class GuiGateInterface extends GuiAdvancedInterface {
|
||||||
|
|
||||||
int position = 0;
|
int position = 0;
|
||||||
|
|
||||||
|
slots.clear();
|
||||||
|
|
||||||
if (gate.material == GateMaterial.REDSTONE) {
|
if (gate.material == GateMaterial.REDSTONE) {
|
||||||
slots.add(new TriggerSlot(62, 26, pipe, 0));
|
slots.add(new TriggerSlot(62, 26, pipe, 0));
|
||||||
slots.add(new ActionSlot(98, 26, pipe, 0));
|
slots.add(new ActionSlot(98, 26, pipe, 0));
|
||||||
|
@ -261,10 +263,10 @@ public class GuiGateInterface extends GuiAdvancedInterface {
|
||||||
|
|
||||||
for (int k = 0; k < 4; ++k) {
|
for (int k = 0; k < 4; ++k) {
|
||||||
slots.add(new TriggerParameterSlot(26, 26 + 18 * k, pipe, 0,
|
slots.add(new TriggerParameterSlot(26, 26 + 18 * k, pipe, 0,
|
||||||
(TriggerSlot) slots.get(k)));
|
(TriggerSlot) slots.get(position - 16)));
|
||||||
position++;
|
position++;
|
||||||
slots.add(new TriggerParameterSlot(116, 26 + 18 * k, pipe, 0,
|
slots.add(new TriggerParameterSlot(116, 26 + 18 * k, pipe, 0,
|
||||||
(TriggerSlot) slots.get(k + 4)));
|
(TriggerSlot) slots.get(position - 16)));
|
||||||
position++;
|
position++;
|
||||||
}
|
}
|
||||||
} else if (gate.material == GateMaterial.EMERALD) {
|
} else if (gate.material == GateMaterial.EMERALD) {
|
||||||
|
@ -332,21 +334,16 @@ public class GuiGateInterface extends GuiAdvancedInterface {
|
||||||
|
|
||||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||||
|
|
||||||
int actionTracker = 0;
|
|
||||||
|
|
||||||
actionTracker = 0;
|
|
||||||
for (AdvancedSlot slot : slots) {
|
for (AdvancedSlot slot : slots) {
|
||||||
if (slot instanceof TriggerSlot) {
|
if (slot instanceof TriggerSlot) {
|
||||||
boolean halfWidth = container.actionsState[actionTracker] == ActionActiveState.Partial;
|
boolean halfWidth = container.actionsState[((TriggerSlot) slot).slot] == ActionActiveState.Partial;
|
||||||
|
|
||||||
if (container.actionsState[actionTracker] != ActionActiveState.Deactivated) {
|
if (container.actionsState[((TriggerSlot) slot).slot] != ActionActiveState.Deactivated) {
|
||||||
mc.renderEngine.bindTexture(texture);
|
mc.renderEngine.bindTexture(texture);
|
||||||
|
|
||||||
drawTexturedModalRect(guiLeft + slot.x + 17 + 18 * gate.material.numTriggerParameters, guiTop
|
drawTexturedModalRect(guiLeft + slot.x + 17 + 18 * gate.material.numTriggerParameters, guiTop
|
||||||
+ slot.y + 6, 176, 18, halfWidth ? 9 : 18, 4);
|
+ slot.y + 6, 176, 18, halfWidth ? 9 : 18, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
actionTracker++;
|
|
||||||
} else if (slot instanceof StatementParameterSlot) {
|
} else if (slot instanceof StatementParameterSlot) {
|
||||||
StatementParameterSlot paramSlot = (StatementParameterSlot) slot;
|
StatementParameterSlot paramSlot = (StatementParameterSlot) slot;
|
||||||
StatementSlot statement = paramSlot.statementSlot;
|
StatementSlot statement = paramSlot.statementSlot;
|
||||||
|
|
Loading…
Reference in a new issue