mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
update SaveLoadScene, InventoryScene
- fix layout, add table header and scrollable content - update textratypist
This commit is contained in:
@@ -34,8 +34,8 @@ public class InventoryScene extends UIScene {
|
||||
Button deleteButton;
|
||||
Texture equipOverlay;
|
||||
int columns = 0;
|
||||
public InventoryScene()
|
||||
{
|
||||
|
||||
public InventoryScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/inventory.json" : "ui/inventory_portrait.json");
|
||||
equipOverlay = new Texture(Config.instance().getFile(Paths.ITEMS_EQUIP));
|
||||
ui.onButtonPress("return", () -> done());
|
||||
@@ -48,15 +48,15 @@ public class InventoryScene extends UIScene {
|
||||
useButton.setDisabled(true);
|
||||
deleteButton = ui.findActor("delete");
|
||||
itemDescription = ui.findActor("item_description");
|
||||
ScrollPane pane = new ScrollPane(itemDescription);
|
||||
pane.setBounds(itemDescription.getX(), itemDescription.getY(), itemDescription.getWidth() - 5, itemDescription.getHeight() - 5);
|
||||
itemDescription.setAlignment(Align.topLeft);
|
||||
|
||||
ui.addActor(pane);
|
||||
|
||||
Array<Actor> children = ui.getChildren();
|
||||
for (int i = 0, n = children.size; i < n; i++)
|
||||
{
|
||||
for (int i = 0, n = children.size; i < n; i++) {
|
||||
|
||||
if(children.get(i).getName()!=null&&children.get(i).getName().startsWith("Equipment"))
|
||||
{
|
||||
if (children.get(i).getName() != null && children.get(i).getName().startsWith("Equipment")) {
|
||||
String slotName = children.get(i).getName().split("_")[1];
|
||||
equipmentSlots.put(slotName, (Button) children.get(i));
|
||||
Actor slot = children.get(i);
|
||||
@@ -64,31 +64,24 @@ public class InventoryScene extends UIScene {
|
||||
@Override
|
||||
public void changed(ChangeEvent event, Actor actor) {
|
||||
Button button = ((Button) actor);
|
||||
if(button.isChecked())
|
||||
{
|
||||
for(Button otherButton:equipmentSlots.values())
|
||||
{
|
||||
if (button.isChecked()) {
|
||||
for (Button otherButton : equipmentSlots.values()) {
|
||||
if (button != otherButton && otherButton.isChecked()) {
|
||||
otherButton.setChecked(false);
|
||||
}
|
||||
}
|
||||
String item = Current.player().itemInSlot(slotName);
|
||||
if(item!=null&& !item.equals(""))
|
||||
{
|
||||
if (item != null && !item.equals("")) {
|
||||
Button changeButton = null;
|
||||
for(Button invButton:inventoryButtons)
|
||||
{
|
||||
if(itemLocation.get(invButton)!=null&&itemLocation.get(invButton).equals(item))
|
||||
{
|
||||
for (Button invButton : inventoryButtons) {
|
||||
if (itemLocation.get(invButton) != null && itemLocation.get(invButton).equals(item)) {
|
||||
changeButton = invButton;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (changeButton != null)
|
||||
changeButton.setChecked(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
setSelected(null);
|
||||
}
|
||||
}
|
||||
@@ -105,10 +98,7 @@ public class InventoryScene extends UIScene {
|
||||
columns -= 1;
|
||||
if (columns <= 0) columns = 1;
|
||||
scrollPane.setActor(inventory);
|
||||
|
||||
itemDescription.setWrap(true);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void showConfirm() {
|
||||
@@ -140,6 +130,7 @@ public class InventoryScene extends UIScene {
|
||||
updateInventory();
|
||||
|
||||
}
|
||||
|
||||
public void equip() {
|
||||
if (selected == null) return;
|
||||
ItemData data = ItemData.getItem(itemLocation.get(selected));
|
||||
@@ -153,7 +144,6 @@ public class InventoryScene extends UIScene {
|
||||
stage.act(delta);
|
||||
}
|
||||
|
||||
|
||||
private void triggerUse() {
|
||||
if (selected == null) return;
|
||||
|
||||
@@ -163,6 +153,7 @@ public class InventoryScene extends UIScene {
|
||||
done();
|
||||
ConsoleCommandInterpreter.getInstance().command(data.commandOnUse);
|
||||
}
|
||||
|
||||
private void use() {
|
||||
ItemData data = ItemData.getItem(itemLocation.get(selected));
|
||||
if (data == null) return;
|
||||
@@ -173,14 +164,12 @@ public class InventoryScene extends UIScene {
|
||||
|
||||
private void setSelected(Button actor) {
|
||||
selected = actor;
|
||||
if(actor==null)
|
||||
{
|
||||
if (actor == null) {
|
||||
itemDescription.setText("");
|
||||
deleteButton.setDisabled(true);
|
||||
equipButton.setDisabled(true);
|
||||
useButton.setDisabled(true);
|
||||
for(Button button:inventoryButtons)
|
||||
{
|
||||
for (Button button : inventoryButtons) {
|
||||
button.setChecked(false);
|
||||
}
|
||||
return;
|
||||
@@ -200,31 +189,23 @@ public class InventoryScene extends UIScene {
|
||||
if (Current.player().getShards() < data.shardsNeeded)
|
||||
useButton.setDisabled(true);
|
||||
|
||||
if(data.equipmentSlot==null|| data.equipmentSlot.equals(""))
|
||||
{
|
||||
if (data.equipmentSlot == null || data.equipmentSlot.equals("")) {
|
||||
equipButton.setDisabled(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
equipButton.setDisabled(false);
|
||||
if(equipButton instanceof TextraButton)
|
||||
{
|
||||
if (equipButton instanceof TextraButton) {
|
||||
TextraButton button = (TextraButton) equipButton;
|
||||
String item = Current.player().itemInSlot(data.equipmentSlot);
|
||||
if(item!=null&&item.equals(data.name))
|
||||
{
|
||||
if (item != null && item.equals(data.name)) {
|
||||
button.setText("Unequip");
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
button.setText("Equip");
|
||||
}
|
||||
button.layout();
|
||||
}
|
||||
}
|
||||
|
||||
for(Button button:inventoryButtons)
|
||||
{
|
||||
for (Button button : inventoryButtons) {
|
||||
if (actor != button && button.isChecked()) {
|
||||
button.setChecked(false);
|
||||
}
|
||||
@@ -232,8 +213,6 @@ public class InventoryScene extends UIScene {
|
||||
itemDescription.setText(data.name + "\n" + data.getDescription());
|
||||
itemDescription.setWrap(true);
|
||||
itemDescription.layout();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void updateInventory() {
|
||||
@@ -255,13 +234,11 @@ public class InventoryScene extends UIScene {
|
||||
});
|
||||
inventoryButtons.add(newActor);
|
||||
ItemData item = ItemData.getItem(Current.player().getItems().get(i));
|
||||
if(item==null)
|
||||
{
|
||||
if (item == null) {
|
||||
System.err.print("Can not find item name " + Current.player().getItems().get(i) + "\n");
|
||||
continue;
|
||||
}
|
||||
if(item.sprite()==null)
|
||||
{
|
||||
if (item.sprite() == null) {
|
||||
System.err.print("Can not find sprite name " + item.iconName + "\n");
|
||||
continue;
|
||||
}
|
||||
@@ -270,8 +247,7 @@ public class InventoryScene extends UIScene {
|
||||
img.setY((newActor.getHeight() - img.getHeight()) / 2);
|
||||
newActor.addActor(img);
|
||||
itemLocation.put(newActor, Current.player().getItems().get(i));
|
||||
if(Current.player().getEquippedItems().contains(item.name))
|
||||
{
|
||||
if (Current.player().getEquippedItems().contains(item.name)) {
|
||||
Image overlay = new Image(equipOverlay);
|
||||
overlay.setX((newActor.getWidth() - img.getWidth()) / 2);
|
||||
overlay.setY((newActor.getHeight() - img.getHeight()) / 2);
|
||||
@@ -280,8 +256,7 @@ public class InventoryScene extends UIScene {
|
||||
newActor.addListener(new ChangeListener() {
|
||||
@Override
|
||||
public void changed(ChangeEvent event, Actor actor) {
|
||||
if(((Button) actor).isChecked())
|
||||
{
|
||||
if (((Button) actor).isChecked()) {
|
||||
setSelected((Button) actor);
|
||||
}
|
||||
}
|
||||
@@ -311,9 +286,7 @@ public class InventoryScene extends UIScene {
|
||||
}
|
||||
|
||||
public Button createInventorySlot() {
|
||||
|
||||
ImageButton button = new ImageButton(Controls.getSkin(), "item_frame");
|
||||
return button;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -56,8 +56,11 @@ public class SaveLoadScene extends UIScene {
|
||||
private SaveLoadScene() {
|
||||
super(Forge.isLandscapeMode() ? "ui/save_load.json" : "ui/save_load_portrait.json");
|
||||
|
||||
Table root = new Table();
|
||||
layout = new Table();
|
||||
stage.addActor(layout);
|
||||
scrollPane = new ScrollPane(layout);
|
||||
Window window = ui.findActor("saveSlots");
|
||||
window.add(root);
|
||||
textInput = Controls.newTextField("");
|
||||
int c = 0;
|
||||
String[] diffList = new String[Config.instance().getConfigData().difficulties.length];
|
||||
@@ -78,9 +81,11 @@ public class SaveLoadScene extends UIScene {
|
||||
playerLocation.setY(previewImage.getY() + 5);
|
||||
ui.addActor(playerLocation);
|
||||
header = Controls.newTextraLabel(Forge.getLocalizer().getMessage("lblSave"));
|
||||
header.setAlignment(Align.center);
|
||||
layout.add(header).pad(2).colspan(4).align(Align.center).expandX();
|
||||
layout.row();
|
||||
root.row();
|
||||
root.add(header).grow();
|
||||
root.add(difficulty);
|
||||
root.row();
|
||||
root.add(scrollPane).colspan(2).width(window.getWidth() - 20);
|
||||
autoSave = addSaveSlot(Forge.getLocalizer().getMessage("lblAutoSave"), WorldSave.AUTO_SAVE_SLOT);
|
||||
quickSave = addSaveSlot(Forge.getLocalizer().getMessage("lblQuickSave"), WorldSave.QUICK_SAVE_SLOT);
|
||||
for (int i = 1; i < NUMBEROFSAVESLOTS; i++)
|
||||
@@ -91,10 +96,6 @@ public class SaveLoadScene extends UIScene {
|
||||
ui.onButtonPress("save", () -> SaveLoadScene.this.loadSave());
|
||||
back = ui.findActor("return");
|
||||
ui.onButtonPress("return", () -> SaveLoadScene.this.back());
|
||||
|
||||
scrollPane = ui.findActor("saveSlots");
|
||||
scrollPane.setActor(layout);
|
||||
ui.addActor(difficulty);
|
||||
difficulty.setSelectedIndex(1);
|
||||
difficulty.setAlignment(Align.center);
|
||||
difficulty.getStyle().fontColor = Color.GOLD;
|
||||
@@ -137,7 +138,6 @@ public class SaveLoadScene extends UIScene {
|
||||
super.onSelect(scene);
|
||||
updateSlot(slotNumber);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Selectable<TextraButton> addSaveSlot(String name, int i) {
|
||||
@@ -151,7 +151,6 @@ public class SaveLoadScene extends UIScene {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public boolean select(int slot) {
|
||||
if (!buttons.containsKey(slot))
|
||||
return false;
|
||||
@@ -193,7 +192,6 @@ public class SaveLoadScene extends UIScene {
|
||||
if (previewDate != null)
|
||||
previewDate.setVisible(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -247,7 +245,6 @@ public class SaveLoadScene extends UIScene {
|
||||
Forge.clearTransitionScreen();
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,7 +278,6 @@ public class SaveLoadScene extends UIScene {
|
||||
for (File name : names) {
|
||||
if (WorldSave.isSafeFile(name.getName())) {
|
||||
try {
|
||||
|
||||
try (FileInputStream fos = new FileInputStream(name.getAbsolutePath());
|
||||
InflaterInputStream inf = new InflaterInputStream(fos);
|
||||
ObjectInputStream oos = new ObjectInputStream(inf)) {
|
||||
@@ -298,10 +294,7 @@ public class SaveLoadScene extends UIScene {
|
||||
}
|
||||
previews.put(slot, header);
|
||||
}
|
||||
|
||||
} catch (ClassNotFoundException | IOException | GdxRuntimeException e) {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -353,5 +346,4 @@ public class SaveLoadScene extends UIScene {
|
||||
}
|
||||
super.enter();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<dependency>
|
||||
<groupId>com.github.tommyettinger</groupId>
|
||||
<artifactId>textratypist</artifactId>
|
||||
<version>0.7.8</version>
|
||||
<version>0.7.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.thoughtworks.xstream</groupId>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"height": 270
|
||||
},
|
||||
{
|
||||
"type": "Scroll",
|
||||
"type": "Window",
|
||||
"name": "saveSlots",
|
||||
"x": 15,
|
||||
"y": 18,
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"height": 480
|
||||
},
|
||||
{
|
||||
"type": "Scroll",
|
||||
"type": "Window",
|
||||
"name": "saveSlots",
|
||||
"x": 10,
|
||||
"y": 106,
|
||||
|
||||
Reference in New Issue
Block a user