forked from jzitnik/twodcraft
feat: Improved inventory item selection
This commit is contained in:
parent
e8e9d826bb
commit
c50184983b
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@ -8,7 +8,7 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="22" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="openjdk-23" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -12,7 +12,6 @@ import org.jline.terminal.TerminalBuilder;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
try {
|
try {
|
||||||
|
@ -317,7 +317,7 @@ public class Inventory {
|
|||||||
return selectedItemInv != -1;
|
return selectedItemInv != -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mergeItems(int indexFrom, int indexTo, Optional<InventoryItem[]> i) {
|
public boolean mergeItems(int indexFrom, int indexTo, Optional<InventoryItem[]> i) {
|
||||||
InventoryDTO fromData = getItem(indexFrom, i);
|
InventoryDTO fromData = getItem(indexFrom, i);
|
||||||
InventoryDTO toData = getItem(indexTo, i);
|
InventoryDTO toData = getItem(indexTo, i);
|
||||||
|
|
||||||
@ -325,15 +325,15 @@ public class Inventory {
|
|||||||
InventoryItem toItem = toData.getObj()[toData.getIndex()];
|
InventoryItem toItem = toData.getObj()[toData.getIndex()];
|
||||||
|
|
||||||
if (fromItem == null || toItem == null) {
|
if (fromItem == null || toItem == null) {
|
||||||
return; // Nothing to merge
|
return false; // Nothing to merge
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fromItem.getItem().getFirst().isStackable() || !toItem.getItem().getFirst().isStackable()) {
|
if (!fromItem.getItem().getFirst().isStackable() || !toItem.getItem().getFirst().isStackable()) {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fromItem.getItem().getFirst().equals(toItem.getItem().getFirst())) {
|
if (!fromItem.getItem().getFirst().equals(toItem.getItem().getFirst())) {
|
||||||
return; // Different items cannot be merged
|
return false; // Different items cannot be merged
|
||||||
}
|
}
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
@ -351,6 +351,8 @@ public class Inventory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectedItemInv = -1;
|
selectedItemInv = -1;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mergeOne(int fromIndex, int toIndex, Optional<InventoryItem[]> i) {
|
public void mergeOne(int fromIndex, int toIndex, Optional<InventoryItem[]> i) {
|
||||||
|
@ -91,6 +91,7 @@ public class InventoryClickHandler {
|
|||||||
int actualIndex = index + offset;
|
int actualIndex = index + offset;
|
||||||
|
|
||||||
if (inventory.getSelectedItemInv() == actualIndex) {
|
if (inventory.getSelectedItemInv() == actualIndex) {
|
||||||
|
inventory.setSelectedItemInv(-1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +102,9 @@ public class InventoryClickHandler {
|
|||||||
} else if (items[index] != null) {
|
} else if (items[index] != null) {
|
||||||
if (inventory.hasSelectedItem()) {
|
if (inventory.hasSelectedItem()) {
|
||||||
// Merge items
|
// Merge items
|
||||||
inventory.mergeItems(inventory.getSelectedItemInv(), actualIndex, i);
|
if (!inventory.mergeItems(inventory.getSelectedItemInv(), actualIndex, i)) {
|
||||||
|
inventory.setSelectedItemInv(index + offset);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
inventory.setSelectedItemInv(index + offset);
|
inventory.setSelectedItemInv(index + offset);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user