diff --git a/gradle.properties b/gradle.properties index 7d9db30..575a4d7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,23 +2,23 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_base_version=1.19.3 -minecraft_version=1.19.3 -yarn_mappings=1.19.3+build.4 -loader_version=0.14.12 +minecraft_base_version=1.19.4 +minecraft_version=1.19.4 +yarn_mappings=1.19.4+build.1 +loader_version=0.14.18 # Mod Properties mod_version=0.3.2 maven_group=com.glisco archives_base_name=deathlog # Dependencies -fabric_version=0.76.0+1.19.3 +fabric_version=0.76.0+1.19.4 # https://github.com/emilyploszaj/trinkets/releases -trinkets_version=3.5.1 +trinkets_version=3.6.0 # https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu -modmenu_version=5.0.2 +modmenu_version=6.1.0-rc.4 # https://maven.wispforest.io/io/wispforest/owo-lib/ -owo_version=0.10.3+1.19.3 +owo_version=0.10.3+1.19.4 diff --git a/src/main/java/com/glisco/deathlog/client/gui/DeathLogScreen.java b/src/main/java/com/glisco/deathlog/client/gui/DeathLogScreen.java index 844e845..1f15024 100644 --- a/src/main/java/com/glisco/deathlog/client/gui/DeathLogScreen.java +++ b/src/main/java/com/glisco/deathlog/client/gui/DeathLogScreen.java @@ -32,7 +32,6 @@ public class DeathLogScreen extends BaseUIModelScreen { private final DirectDeathLogStorage storage; private FlowLayout detailPanel; - private DropdownComponent activeDropdown = null; private final Observable currentSearchTerm = Observable.of(""); private boolean canRestore = true; @@ -118,28 +117,29 @@ private void buildDeathList() { container.mouseDown().subscribe((mouseX, mouseY, button) -> { if (button != GLFW.GLFW_MOUSE_BUTTON_RIGHT) return false; - this.uiAdapter.rootComponent.removeChild(this.activeDropdown); - this.uiAdapter.rootComponent.child(Components.dropdown(Sizing.content()).configure(dropdown -> { - this.activeDropdown = dropdown; - - if (this.canRestore) { - dropdown.button(Text.translatable("text.deathlog.action.restore"), dropdown_ -> { - this.storage.restore(infoIndex); - this.removeDropdown(); - }); - } - - dropdown.button(Text.translatable("text.deathlog.action.delete"), dropdown_ -> { + var root = this.uiAdapter.rootComponent; + DropdownComponent.openContextMenu( + this, + root, FlowLayout::child, + container.x() - root.padding().get().left() + mouseX, + container.y() - root.padding().get().top() + mouseY, + dropdown -> { + dropdown.surface(Surface.flat(0xBB000000).and(Surface.outline(0xA75F5F5F))); + + if (this.canRestore) { + dropdown.button(Text.translatable("text.deathlog.action.restore"), dropdown_ -> { + this.storage.restore(infoIndex); + dropdown.remove(); + }); + } + + dropdown.button(Text.translatable("text.deathlog.action.delete"), dropdown_ -> { this.storage.delete(deathInfo); this.buildDeathList(); - this.removeDropdown(); - }) - .surface(Surface.flat(0xBB000000)) - .positioning(Positioning.absolute( - container.x() + (int) mouseX - this.uiAdapter.rootComponent.padding().get().left(), - container.y() + (int) mouseY - this.uiAdapter.rootComponent.padding().get().top() - )); - })); + dropdown.remove(); + }); + } + ); return true; }); @@ -242,20 +242,6 @@ private ItemComponent makeItem(ItemStack stack, Insets margins) { return item; } - private void removeDropdown() { - this.uiAdapter.rootComponent.removeChild(this.activeDropdown); - this.activeDropdown = null; - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (this.activeDropdown != null && !this.activeDropdown.isInBoundingBox(mouseX, mouseY)) { - this.removeDropdown(); - } - - return super.mouseClicked(mouseX, mouseY, button); - } - @Override public void close() { this.client.setScreen(this.parent);