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>
|
||||
</option>
|
||||
</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" />
|
||||
</component>
|
||||
</project>
|
@ -12,7 +12,6 @@ import org.jline.terminal.TerminalBuilder;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
|
@ -317,7 +317,7 @@ public class Inventory {
|
||||
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 toData = getItem(indexTo, i);
|
||||
|
||||
@ -325,15 +325,15 @@ public class Inventory {
|
||||
InventoryItem toItem = toData.getObj()[toData.getIndex()];
|
||||
|
||||
if (fromItem == null || toItem == null) {
|
||||
return; // Nothing to merge
|
||||
return false; // Nothing to merge
|
||||
}
|
||||
|
||||
if (!fromItem.getItem().getFirst().isStackable() || !toItem.getItem().getFirst().isStackable()) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!fromItem.getItem().getFirst().equals(toItem.getItem().getFirst())) {
|
||||
return; // Different items cannot be merged
|
||||
return false; // Different items cannot be merged
|
||||
}
|
||||
|
||||
while (true) {
|
||||
@ -351,6 +351,8 @@ public class Inventory {
|
||||
}
|
||||
|
||||
selectedItemInv = -1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void mergeOne(int fromIndex, int toIndex, Optional<InventoryItem[]> i) {
|
||||
|
@ -91,6 +91,7 @@ public class InventoryClickHandler {
|
||||
int actualIndex = index + offset;
|
||||
|
||||
if (inventory.getSelectedItemInv() == actualIndex) {
|
||||
inventory.setSelectedItemInv(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -101,7 +102,9 @@ public class InventoryClickHandler {
|
||||
} else if (items[index] != null) {
|
||||
if (inventory.hasSelectedItem()) {
|
||||
// Merge items
|
||||
inventory.mergeItems(inventory.getSelectedItemInv(), actualIndex, i);
|
||||
if (!inventory.mergeItems(inventory.getSelectedItemInv(), actualIndex, i)) {
|
||||
inventory.setSelectedItemInv(index + offset);
|
||||
}
|
||||
} else {
|
||||
inventory.setSelectedItemInv(index + offset);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user