Skip to content

Commit 880bdd9

Browse files
Merge pull request #1029 from officereso/lightFixes
Light fixes
2 parents 1db7fe3 + d6c4288 commit 880bdd9

File tree

5 files changed

+57
-44
lines changed

5 files changed

+57
-44
lines changed

src/main/java/me/eccentric_nz/TARDIS/control/TARDISPowerButton.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public void clickButton() {
148148
Location location = TARDISStaticLocationGetters.getLocationFromBukkitString(rslls.getLocation());
149149
ItemFrame frame = getFrame(location.getBlock());
150150
if (frame != null) {
151-
setFrame(frame, powered, Control.LIGHT_LEVEL);
151+
setFrame(frame, !powered, Control.LIGHT_LEVEL);
152152
}
153153
}
154154
// exterior
@@ -157,7 +157,7 @@ public void clickButton() {
157157
Location location = TARDISStaticLocationGetters.getLocationFromBukkitString(rsllx.getLocation());
158158
ItemFrame frame = getFrame(location.getBlock());
159159
if (frame != null) {
160-
setFrame(frame, powered, Control.EXTERIOR_LAMP);
160+
setFrame(frame, !powered, Control.EXTERIOR_LAMP);
161161
}
162162
}
163163
}

src/main/java/me/eccentric_nz/TARDIS/lights/TARDISLightLevelsGUIListener.java

Lines changed: 49 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717
package me.eccentric_nz.TARDIS.lights;
1818

19-
import com.mojang.datafixers.util.Pair;
2019
import me.eccentric_nz.TARDIS.TARDIS;
2120
import me.eccentric_nz.TARDIS.builders.utility.LightLevel;
2221
import me.eccentric_nz.TARDIS.control.actions.ConsoleLampAction;
@@ -40,6 +39,18 @@
4039

4140
public class TARDISLightLevelsGUIListener extends TARDISMenuListener {
4241

42+
private static class StateResult {
43+
Boolean success;
44+
Integer strength;
45+
Integer level;
46+
47+
public StateResult(Boolean success, Integer strength, Integer level) {
48+
this.success = success;
49+
this.strength = strength;
50+
this.level = level;
51+
}
52+
}
53+
4354
private final TARDIS plugin;
4455

4556
public TARDISLightLevelsGUIListener(TARDIS plugin) {
@@ -76,67 +87,67 @@ public void onLightLevelsMenuClick(InventoryClickEvent event) {
7687
switch (slot) {
7788
case 9 -> {
7889
// interior minus
79-
Pair<Boolean, Integer> setLevel = getNewState(view, 10, false);
80-
if (setLevel.getFirst()) {
90+
StateResult setLevel = getNewState(view, 10, false);
91+
if (setLevel.success) {
8192
// update indicator
82-
setState(view, 10, setLevel.getSecond());
93+
setState(view, 10, setLevel.strength);
8394
// set light level
84-
setLightLevel(setLevel.getSecond(), 50, id);
95+
setLightLevel(setLevel.level, 50, id);
8596
// TODO update control?
8697
}
8798
}
8899
case 11 -> {
89100
// interior plus
90-
Pair<Boolean, Integer> setLevel = getNewState(view, 10, true);
91-
if (setLevel.getFirst()) {
101+
StateResult setLevel = getNewState(view, 10, true);
102+
if (setLevel.success) {
92103
// update indicator
93-
setState(view, 10, setLevel.getSecond());
104+
setState(view, 10, setLevel.strength);
94105
// set light level
95-
setLightLevel(setLevel.getSecond(), 50, id);
106+
setLightLevel(setLevel.level, 50, id);
96107
// TODO update control?
97108
}
98109
}
99110
case 15 -> {
100111
// exterior minus
101-
Pair<Boolean, Integer> setLevel = getNewState(view, 16, false);
102-
if (setLevel.getFirst()) {
112+
StateResult setLevel = getNewState(view, 16, false);
113+
if (setLevel.success) {
103114
// update indicator
104-
setState(view, 16, setLevel.getSecond());
115+
setState(view, 16, setLevel.strength);
105116
// set light level
106-
setLightLevel(setLevel.getSecond(), 49, id);
117+
setLightLevel(setLevel.level, 49, id);
107118
// TODO update control?
108119
}
109120
}
110121
case 17 -> {
111122
// exterior plus
112-
Pair<Boolean, Integer> setLevel = getNewState(view, 16, true);
113-
if (setLevel .getFirst()) {
123+
StateResult setLevel = getNewState(view, 16, true);
124+
if (setLevel.success) {
114125
// update indicator
115-
setState(view, 16, setLevel.getSecond());
126+
setState(view, 16, setLevel.strength);
116127
// set light level
117-
setLightLevel(setLevel.getSecond(), 49, id);
128+
setLightLevel(setLevel.level, 49, id);
118129
// TODO update control?
119130
}
120131
}
121132
case 30 -> {
122133
// console minus
123-
Pair<Boolean, Integer> setLevel = getNewState(view, 31, false);
124-
if (setLevel.getFirst()) {
134+
StateResult setLevel = getNewState(view, 31, false);
135+
if (setLevel.success) {
125136
// update indicator
126-
setState(view, 31, setLevel.getSecond());
137+
setState(view, 31, setLevel.strength);
127138
// set light level
128-
setLightLevel(setLevel.getSecond(), 56, id);
139+
setLightLevel(setLevel.level, 56, id);
129140
// TODO update control?
130141
}
131142
}
132143
case 32 -> {
133144
// console plus
134-
Pair<Boolean, Integer> setLevel = getNewState(view, 31, true);
135-
if (setLevel.getFirst()) {
145+
StateResult setLevel = getNewState(view, 31, true);
146+
if (setLevel.success) {
136147
// update indicator
137-
setState(view, 31, setLevel.getSecond());
148+
setState(view, 31, setLevel.strength);
138149
// set light level
139-
setLightLevel(setLevel.getSecond(), 56, id);
150+
setLightLevel(setLevel.level, 56, id);
140151
// TODO update control?
141152
}
142153
}
@@ -147,35 +158,35 @@ public void onLightLevelsMenuClick(InventoryClickEvent event) {
147158
}
148159
}
149160

150-
private Pair<Boolean, Integer> getNewState(InventoryView view, int slot, boolean next) {
161+
private StateResult getNewState(InventoryView view, int slot, boolean next) {
151162
ItemStack is = view.getItem(slot);
152163
ItemMeta im = is.getItemMeta();
153164
String lore = ComponentUtils.stripColour(im.lore().getFirst());
154-
int state = TARDISNumberParsers.parseInt(lore);
165+
int currentStrength = TARDISNumberParsers.parseInt(lore);
155166
int index;
156167
if (slot == 16) {
157-
index = ArrayUtils.indexOf(LightLevel.exterior_level, state);
168+
index = ArrayUtils.indexOf(LightLevel.exterior_level, currentStrength);
158169
if (next && index - 1 >= 0) {
159-
return new Pair<>(true, LightLevel.exterior_level[index - 1]);
160-
} else if (index + 1 < LightLevel.exterior_level.length) {
161-
return new Pair<>(true, LightLevel.exterior_level[index + 1]);
170+
return new StateResult(true, LightLevel.exterior_level[index - 1], index - 1);
171+
} else if (!next && index + 1 < LightLevel.exterior_level.length) {
172+
return new StateResult(true, LightLevel.exterior_level[index + 1], index + 1);
162173
}
163174
} else {
164-
index = ArrayUtils.indexOf(LightLevel.interior_level, state);
175+
index = ArrayUtils.indexOf(LightLevel.interior_level, currentStrength);
165176
if (next && index - 1 >= 0) {
166-
return new Pair<>(true, LightLevel.interior_level[index - 1]);
167-
} else if (index + 1 < LightLevel.interior_level.length) {
168-
return new Pair<>(true, LightLevel.interior_level[index + 1]);
177+
return new StateResult(true, LightLevel.interior_level[index - 1], index - 1);
178+
} else if (!next && index + 1 < LightLevel.interior_level.length) {
179+
return new StateResult(true, LightLevel.interior_level[index + 1], index + 1);
169180
}
170181
}
171-
return new Pair<>(false, state);
182+
return new StateResult(false, currentStrength, 0);
172183
}
173184

174-
private void setState(InventoryView view, int slot, int level) {
185+
private void setState(InventoryView view, int slot, int strength) {
175186
ItemStack is = view.getItem(slot);
176187
ItemMeta im = is.getItemMeta();
177188
List<Component> lore = im.lore();
178-
lore.set(0, Component.text(level));
189+
lore.set(0, Component.text(strength));
179190
im.lore(lore);
180191
is.setItemMeta(im);
181192
}

src/main/java/me/eccentric_nz/TARDIS/lights/TARDISLightSequence.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package me.eccentric_nz.TARDIS.lights;
1818

1919
import me.eccentric_nz.TARDIS.TARDIS;
20+
import me.eccentric_nz.TARDIS.builders.utility.LightLevel;
2021
import me.eccentric_nz.TARDIS.customblocks.TARDISDisplayItemUtils;
2122
import me.eccentric_nz.TARDIS.customblocks.VariableLight;
2223
import me.eccentric_nz.TARDIS.database.resultset.ResultSetLamps;
@@ -43,11 +44,11 @@ public TARDISLightSequence(TARDIS plugin, int id, UUID uuid) {
4344
}
4445

4546
public void play() {
46-
plugin.getTrackerKeeper().getLightChangers().add(uuid);
4747
// get current light level
4848
ResultSetLightLevel lightLevel = new ResultSetLightLevel(plugin);
4949
if (lightLevel.fromTypeAndID(50, id)) {
50-
int currentLevel = lightLevel.getLevel();
50+
plugin.getTrackerKeeper().getLightChangers().add(uuid);
51+
int currentLevel = LightLevel.interior_level[lightLevel.getLevel()];
5152
// get light sequence + delays + levels , current light type
5253
ResultSetLightPrefs rs = new ResultSetLightPrefs(plugin);
5354
if (rs.fromID(id)) {

src/main/java/me/eccentric_nz/TARDIS/listeners/controls/TARDISLightLevelFrameListener.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import me.eccentric_nz.TARDIS.control.actions.ConsoleLampAction;
2121
import me.eccentric_nz.TARDIS.control.actions.LightLevelAction;
2222
import me.eccentric_nz.TARDIS.database.resultset.ResultSetLightLevel;
23-
import me.eccentric_nz.TARDIS.utility.TARDISNumberParsers;
2423
import org.bukkit.Location;
2524
import org.bukkit.NamespacedKey;
2625
import org.bukkit.entity.ItemFrame;
@@ -59,7 +58,7 @@ public void onLightLevelClick(PlayerInteractEntityEvent event) {
5958
boolean isOff = current.endsWith("_off");
6059
String[] split = current.replace("_off", "").split("_");
6160
String num = split[split.length - 1];
62-
int which = TARDISNumberParsers.parseInt(num);
61+
int which = rs.getLevel();
6362
int cmd = which + 1;
6463
if (cmd > 7) {
6564
cmd = start;

src/main/java/me/eccentric_nz/TARDIS/recipes/shaped/ExteriorLampLevelSwitchRecipe.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import me.eccentric_nz.TARDIS.TARDIS;
2020
import me.eccentric_nz.TARDIS.enumeration.CraftingDifficulty;
21+
import me.eccentric_nz.TARDIS.enumeration.RecipeItem;
2122
import me.eccentric_nz.TARDIS.utility.ComponentUtils;
2223
import org.bukkit.Material;
2324
import org.bukkit.NamespacedKey;
@@ -52,6 +53,7 @@ public void addRecipe() {
5253
ItemStack is = ItemStack.of(Material.LEVER, 1);
5354
ItemMeta im = is.getItemMeta();
5455
im.displayName(ComponentUtils.toWhite("Exterior Lamp Level Switch"));
56+
im.setItemModel(RecipeItem.EXTERIOR_LAMP_LEVEL_SWITCH.getModel());
5557
is.setItemMeta(im);
5658
NamespacedKey key = new NamespacedKey(plugin, "exterior_lamp_level_switch");
5759
ShapedRecipe r = new ShapedRecipe(key, is);

0 commit comments

Comments
 (0)