aboutsummaryrefslogtreecommitdiff
path: root/mod/src
diff options
context:
space:
mode:
authorsyeyoung <42869671+cyoung06@users.noreply.github.com>2023-01-13 13:11:13 +0900
committerGitHub <noreply@github.com>2023-01-13 13:11:13 +0900
commit87df9a914624b295e3e93db621ed2a8256eaf846 (patch)
tree538414a186e12b7ad1846462e8406c761a156a69 /mod/src
parentd3f5b4df809fd03919952285a1906652097f00e6 (diff)
downloadSkyblock-Dungeons-Guide-87df9a914624b295e3e93db621ed2a8256eaf846.tar.gz
Skyblock-Dungeons-Guide-87df9a914624b295e3e93db621ed2a8256eaf846.tar.bz2
Skyblock-Dungeons-Guide-87df9a914624b295e3e93db621ed2a8256eaf846.zip
Dg4.0 guisystem (#269)
* - XML Like configuration for GUI Signed-off-by: syeyoung <cyoung06@naver.com> * - Stylesheets were never a good idea Signed-off-by: syeyoung <cyoung06@naver.com> * - Ref's are always bindable Signed-off-by: syeyoung <cyoung06@naver.com> * - cool components Column Background (color_ Row SizedBox Stack Padding Signed-off-by: syeyoung <cyoung06@naver.com> * - Update copyright header v2 Signed-off-by: syeyoung <cyoung06@naver.com> * - Bunch of stuff Signed-off-by: syeyoung <cyoung06@naver.com> * - Few more elements Signed-off-by: syeyoung <cyoung06@naver.com> * - View!! Signed-off-by: syeyoung <cyoung06@naver.com> * - Better click handlign - Popups Signed-off-by: syeyoung <cyoung06@naver.com> * - ComponentCreator for DX - test view (for testin Signed-off-by: syeyoung <cyoung06@naver.com> * - Column and Row shrink to crossAxisSize if its max is infinity - Gui test. Signed-off-by: syeyoung <cyoung06@naver.com> * - Load attributes after super constructor - Fix Stackoverflow in RootDom.setCursor - Test Gui Command - Test Gui to testview.gui - XML Parser settings to ignore comments - Controller check if element is actually an element, not a textnode. Signed-off-by: syeyoung <cyoung06@naver.com> * - Component Parent propagation - better placeholder Signed-off-by: syeyoung <cyoung06@naver.com> * - Line needs texture2d Signed-off-by: syeyoung <cyoung06@naver.com> * - igitignore update Signed-off-by: syeyoung <cyoung06@naver.com> * - gradle build file update Signed-off-by: syeyoung <cyoung06@naver.com> * - Flexible - Background uses singlehcildpassinglayouter - Helper methods in ConstraintBox Signed-off-by: syeyoung <cyoung06@naver.com> * - Line and Border - add updating code Signed-off-by: syeyoung <cyoung06@naver.com> * - Textfield Signed-off-by: syeyoung <cyoung06@naver.com> * - Column and Row with flex elements when given maximum mainAxis now throws an error - Column and Row when given maximum mainAxis now shrinks to children Signed-off-by: syeyoung <cyoung06@naver.com> * - Better architecture - I'll document it later on separate repo Signed-off-by: syeyoung <cyoung06@naver.com> * LGTM. - Might change rendering architecture. Separate child rendering and itself rendering Signed-off-by: syeyoung <cyoung06@naver.com> * - Fix some typo's and issues Signed-off-by: syeyoung <cyoung06@naver.com> * - make it work Signed-off-by: syeyoung <cyoung06@naver.com> * - smth Signed-off-by: syeyoung <cyoung06@naver.com> * - Button Signed-off-by: syeyoung <cyoung06@naver.com> * - colored button - passthroughs Signed-off-by: syeyoung <cyoung06@naver.com> * - fix issue in text Signed-off-by: syeyoung <cyoung06@naver.com> * - Delegating widgets and scrollbar Signed-off-by: syeyoung <cyoung06@naver.com> * - scrollbar Signed-off-by: syeyoung <cyoung06@naver.com> * - list Signed-off-by: syeyoung <cyoung06@naver.com> * - popup - align - stack now only propagates events to first child (lol) Signed-off-by: syeyoung <cyoung06@naver.com> * - Event propagation changes - some presets Signed-off-by: syeyoung <cyoung06@naver.com> * - moving stuff Signed-off-by: syeyoung <cyoung06@naver.com> Signed-off-by: syeyoung <cyoung06@naver.com>
Diffstat (limited to 'mod/src')
-rwxr-xr-xmod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java2
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDgDebug.java11
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/BindableAttribute.java99
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/Context.java31
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/DomElement.java242
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/ElementTreeWalkIterator.java48
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/GuiScreenAdapter.java284
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/RootDom.java74
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/Widget.java94
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/AbsXY.java69
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Align.java64
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/AspectRatioFitter.java87
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Background.java61
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Border.java140
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Button.java127
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Clip.java70
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Column.java193
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Flexible.java77
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Line.java122
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Measure.java59
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Padding.java80
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Placeholder.java66
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/PopupMgr.java68
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Row.java196
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Scaler.java99
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/ScrollablePanel.java136
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Scrollbar.java166
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/SizedBox.java72
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Slot.java43
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Stack.java98
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/Text.java214
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/TextField.java433
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/UnconstrainedBox.java60
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/image/Image.java63
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/elements/image/ResourceImage.java54
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/layouter/Layouter.java32
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/layouter/NullLayouter.java33
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/layouter/SingleChildPassingLayouter.java42
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/Animation.java38
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/ConstraintBox.java40
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/IPosition.java25
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/IRect.java34
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/ISize.java29
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/Position.java28
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/Rect.java32
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/primitive/Size.java28
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/DrawNothingRenderer.java29
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/OnlyChildrenRenderer.java51
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/Renderer.java34
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/RenderingContext.java138
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/renderer/SingleChildRenderer.java51
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/view/TestPopup.java38
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/view/TestView.java51
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/AnnotatedExportOnlyWidget.java86
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/AnnotatedImportOnlyWidget.java124
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/AnnotatedWidget.java149
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/DelegatingWidget.java96
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/DelegatingWidgetConverter.java54
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/DomElementRegistry.java91
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/ExportedWidget.java25
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/ExportedWidgetConverter.java48
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/ImportingWidget.java29
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/ParsedWidgetConverter.java43
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/PropByPropParsedWidgetConverter.java140
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/StringConversions.java51
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/annotations/Bind.java30
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/annotations/Export.java30
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/annotations/On.java30
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/annotations/Passthrough.java32
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/annotations/Passthroughs.java27
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/data/Parser.java25
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/data/ParserElement.java34
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/data/ParserElementList.java26
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/data/ParserException.java38
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/data/W3CBackedParser.java70
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/data/W3CBackedParserElement.java72
-rw-r--r--mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/xml/data/WidgetList.java26
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/button.gui6
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/popupmgr.gui3
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/ratioResourceImage.gui26
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/scrollBar.gui28
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/scrollablePanel.gui46
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/simpleButton.gui41
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/simpleHorizontalScrollBar.gui38
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/simpleVerticalScrollBar.gui38
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/elements/slowlist.gui23
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/testpopup.gui36
-rw-r--r--mod/src/main/resources/assets/dungeonsguide/gui/testview.gui83
88 files changed, 6299 insertions, 0 deletions
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java
index 0bdcacfc..9dd515c7 100755
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/DungeonsGuide.java
@@ -38,6 +38,7 @@ import kr.syeyoung.dungeonsguide.mod.events.listener.PacketListener;
import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry;
import kr.syeyoung.dungeonsguide.mod.party.PartyManager;
import kr.syeyoung.dungeonsguide.mod.resources.DGTexturePack;
+import kr.syeyoung.dungeonsguide.mod.stomp.StompManager;
import kr.syeyoung.dungeonsguide.mod.utils.AhUtils;
import kr.syeyoung.dungeonsguide.mod.utils.BlockCache;
import kr.syeyoung.dungeonsguide.mod.utils.TimeScoreUtil;
@@ -238,6 +239,7 @@ public class DungeonsGuide implements DGInterface {
progressbar.step("Opening connection");
+ StompManager.getInstance().init();
registerEventsForge(cosmeticsManager = new CosmeticsManager());
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDgDebug.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDgDebug.java
index ab69fec6..5b553bdc 100644
--- a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDgDebug.java
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/commands/CommandDgDebug.java
@@ -40,6 +40,10 @@ import kr.syeyoung.dungeonsguide.mod.dungeon.roomprocessor.bossfight.BossfightPr
import kr.syeyoung.dungeonsguide.mod.events.impl.DungeonLeftEvent;
import kr.syeyoung.dungeonsguide.mod.features.AbstractFeature;
import kr.syeyoung.dungeonsguide.mod.features.FeatureRegistry;
+import kr.syeyoung.dungeonsguide.mod.guiv2.xml.DomElementRegistry;
+import kr.syeyoung.dungeonsguide.mod.guiv2.GuiScreenAdapter;
+import kr.syeyoung.dungeonsguide.mod.guiv2.RootDom;
+import kr.syeyoung.dungeonsguide.mod.guiv2.view.TestView;
import kr.syeyoung.dungeonsguide.mod.party.PartyContext;
import kr.syeyoung.dungeonsguide.mod.party.PartyManager;
import kr.syeyoung.dungeonsguide.mod.utils.*;
@@ -452,6 +456,13 @@ public class CommandDgDebug extends CommandBase {
} catch (Exception e) {
e.printStackTrace();
}
+ } else if ("testgui".equals(arg)) {
+ GuiScreenAdapter adapter = new GuiScreenAdapter(new TestView());
+ new Thread(DungeonsGuide.THREAD_GROUP, () -> {
+ Minecraft.getMinecraft().addScheduledTask(() -> {
+ Minecraft.getMinecraft().displayGuiScreen(adapter);
+ });
+ }).start();
} else {
sender.addChatMessage(new ChatComponentText("ain't gonna find much anything here"));
sender.addChatMessage(new ChatComponentText("§eDungeons Guide §7:: §e/dg loadrooms §7-§f Reloads dungeon roomdata."));
diff --git a/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/BindableAttribute.java b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/BindableAttribute.java
new file mode 100644
index 00000000..2070aef3
--- /dev/null
+++ b/mod/src/main/java/kr/syeyoung/dungeonsguide/mod/guiv2/BindableAttribute.java
@@ -0,0 +1,99 @@
+/*
+ * Dungeons Guide - The most intelligent Hypixel Skyblock Dungeons Mod
+ * Copyright (C) 2022 cyoung06 (syeyoung)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License