From 705141a240d345a118d460dc0f9308f7f8b8837e Mon Sep 17 00:00:00 2001 From: FullRisk Date: Mon, 6 Jul 2026 20:59:35 +0200 Subject: [PATCH] Added some important stuff again --- .../de/fullrisk/citrusDev/UI/MyScreen.java | 19 +- .../fullrisk/citrusDev/UI/OverviewScreen.java | 30 ++- .../citrus-dev/font/minecraft_five.json | 184 ++++++++++++++++++ .../citrus-dev/textures/font/accented.png | Bin 0 -> 13508 bytes .../assets/citrus-dev/textures/font/ascii.png | Bin 0 -> 1673 bytes .../textures/font/nonlatin_european.png | Bin 0 -> 5510 bytes .../textures/icons/block_culling_file.png | Bin 0 -> 27100 bytes 7 files changed, 228 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/assets/citrus-dev/font/minecraft_five.json create mode 100644 src/main/resources/assets/citrus-dev/textures/font/accented.png create mode 100644 src/main/resources/assets/citrus-dev/textures/font/ascii.png create mode 100644 src/main/resources/assets/citrus-dev/textures/font/nonlatin_european.png create mode 100644 src/main/resources/assets/citrus-dev/textures/icons/block_culling_file.png diff --git a/src/main/java/de/fullrisk/citrusDev/UI/MyScreen.java b/src/main/java/de/fullrisk/citrusDev/UI/MyScreen.java index b9c31f2..b4e0f91 100644 --- a/src/main/java/de/fullrisk/citrusDev/UI/MyScreen.java +++ b/src/main/java/de/fullrisk/citrusDev/UI/MyScreen.java @@ -9,6 +9,7 @@ import io.wispforest.owo.ui.core.*; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.sounds.SimpleSoundInstance; import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvents; import de.fullrisk.citrusDev.UIHelper.ScalableLabel; import de.fullrisk.citrusDev.UIHelper.ScalableButton; @@ -16,6 +17,8 @@ import de.fullrisk.citrusDev.UIHelper.ScaleValue; public class MyScreen extends BaseOwoScreen { + private static final Identifier MC_FIVE = Identifier.fromNamespaceAndPath("citrus-dev", "minecraft_five"); + public MyScreen() { super(Component.literal("Citrus Dev")); Minecraft.getInstance().getSoundManager().play( @@ -90,6 +93,20 @@ public class MyScreen extends BaseOwoScreen { friendsButton.verticalSizing(Sizing.fixed(20)); friendsButton.scale().animate(300, Easing.CUBIC, new ScaleValue(1f)).forwards(); +// --- Sidebar Button Animations (Pop-in) --- + sidebarButton.scale().set(new ScaleValue(0f)); + sidebarButton.scale().animate(400, Easing.CUBIC, new ScaleValue(1f)).forwards(); + + friendsButton.scale().set(new ScaleValue(0f)); + friendsButton.scale().animate(430, Easing.CUBIC, new ScaleValue(1f)).forwards(); + +// --- Sidebar Button Hover Interactions --- + sidebarButton.mouseEnter().subscribe(() -> sidebarButton.scale().animate(120, Easing.CUBIC, new ScaleValue(1.1f)).forwards()); + sidebarButton.mouseLeave().subscribe(() -> sidebarButton.scale().animate(120, Easing.CUBIC, new ScaleValue(1.0f)).forwards()); + + friendsButton.mouseEnter().subscribe(() -> friendsButton.scale().animate(120, Easing.CUBIC, new ScaleValue(1.1f)).forwards()); + friendsButton.mouseLeave().subscribe(() -> friendsButton.scale().animate(120, Easing.CUBIC, new ScaleValue(1.0f)).forwards()); + sidebar.child(friendsButton); sidebar.child(sidebarButton); panel.child(sidebar); @@ -138,7 +155,7 @@ public class MyScreen extends BaseOwoScreen { version.verticalTextAlignment(VerticalAlignment.BOTTOM); version.horizontalSizing(Sizing.fixed(202)); version.verticalSizing(Sizing.fixed(12)); - version.positioning(Positioning.relative(115, 100)); // bottom-right corner of `panel` + version.positioning(Positioning.relative(125, 100)); // bottom-right corner of `panel` version.scale().set(new ScaleValue(0.7f)); diff --git a/src/main/java/de/fullrisk/citrusDev/UI/OverviewScreen.java b/src/main/java/de/fullrisk/citrusDev/UI/OverviewScreen.java index e7b71f2..dd9b96c 100644 --- a/src/main/java/de/fullrisk/citrusDev/UI/OverviewScreen.java +++ b/src/main/java/de/fullrisk/citrusDev/UI/OverviewScreen.java @@ -11,11 +11,17 @@ import net.minecraft.network.chat.Component; import io.wispforest.owo.ui.core.*; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.sounds.SimpleSoundInstance; +import net.minecraft.network.chat.FontDescription; import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundEvents; +import de.fullrisk.citrusDev.UIHelper.ScalableLabel; +import de.fullrisk.citrusDev.UIHelper.ScalableButton; +import de.fullrisk.citrusDev.UIHelper.ScaleValue; public class OverviewScreen extends BaseOwoScreen { + private static final Identifier MC_FIVE = Identifier.fromNamespaceAndPath("citrus-dev", "minecraft_five"); + @Override protected OwoUIAdapter createAdapter() { return OwoUIAdapter.create(this, UIContainers::verticalFlow); @@ -33,16 +39,29 @@ public class OverviewScreen extends BaseOwoScreen { iconButton.verticalAlignment(VerticalAlignment.CENTER); iconButton.horizontalAlignment(HorizontalAlignment.CENTER); iconButton.padding(Insets.of(6)); + iconButton.horizontalSizing(Sizing.fixed(0)); + iconButton.verticalSizing(Sizing.fixed(0)); Surface glassPanel = Surface.blur(5f, 15f) .and(Surface.flat(0x40FFFFFF)) .and(Surface.outline(0xFFFFFFFF)); iconButton.surface(glassPanel); iconButton.child(UIComponents.texture( - Identifier.fromNamespaceAndPath("minecraft", "textures/item/diamond.png"), - 0, 0, 16, 16, 16, 16 - )); - iconButton.child(UIComponents.label(Component.literal("Click me"))); + Identifier.fromNamespaceAndPath("citrus-dev", "textures/icons/block_culling_file.png"), + 0, 0, 18, 12, 18, 12 + )).horizontalAlignment(HorizontalAlignment.LEFT); + iconButton.child(UIComponents.label( + Component.literal("FPS") + .withStyle(style -> style.withFont(new FontDescription.Resource(MC_FIVE)))) + .verticalTextAlignment(VerticalAlignment.TOP) + .verticalSizing(Sizing.fill(85)) // Forces the label component to span the full height + ); + iconButton.child(UIComponents.label( + Component.literal("Test") + .withStyle(style -> style.withFont(new FontDescription.Resource(MC_FIVE)))) + .verticalTextAlignment(VerticalAlignment.TOP) + .verticalSizing(Sizing.fill(85)) // Forces the label component to span the full height + ); iconButton.mouseEnter().subscribe(() -> { iconButton.surface(Surface.blur(5f, 15f) @@ -62,8 +81,11 @@ public class OverviewScreen extends BaseOwoScreen { ); return true; }); + iconButton.horizontalSizing().animate(150, Easing.CUBIC, Sizing.fixed(100)).forwards(); + iconButton.verticalSizing().animate(150, Easing.CUBIC, Sizing.fixed(35)).forwards(); rootComponent.child(iconButton); } + @Override public boolean isPauseScreen() { return false; diff --git a/src/main/resources/assets/citrus-dev/font/minecraft_five.json b/src/main/resources/assets/citrus-dev/font/minecraft_five.json new file mode 100644 index 0000000..ad54185 --- /dev/null +++ b/src/main/resources/assets/citrus-dev/font/minecraft_five.json @@ -0,0 +1,184 @@ +{ + "providers": [ + { + "type": "bitmap", + "file": "citrus-dev:font/nonlatin_european.png", + "ascent": 7, + "chars": [ + "\u00a1\u2030\u00ad\u00b7\u20b4\u2260\u00bf\u00d7\u00d8\u00de\u04bb\u00f0\u00f8\u00fe\u0391\u0392", + "\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3", + "\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba", + "\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c2\u03c3\u03c4\u03c5\u03c6\u03c7\u03c8\u03c9\u0402", + "\u0405\u0406\u0408\u0409\u040a\u040b\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u041a", + "\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a", + "\u042b\u042c\u042d\u042e\u042f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u043a\u043b", + "\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b", + "\u044c\u044d\u044e\u044f\u0454\u0455\u0456\u0458\u0459\u045a\u2013\u2014\u2018\u2019\u201c\u201d", + "\u201e\u2026\u204a\u2190\u2191\u2192\u2193\u21c4\uff0b\u018f\u0259\u025b\u026a\u04ae\u04af\u04e8", + "\u04e9\u02bb\u02cc\u037e\u0138\u1e9e\u00df\u20bd\u20ac\u0462\u0463\u0474\u0475\u04c0\u0472\u0473", + "\u2070\u00b9\u00b3\u2074\u2075\u2076\u2077\u2078\u2079\u207a\u207b\u207c\u207d\u207e\u2071\u2122", + "\u0294\u0295\u29c8\u2694\u2620\u049a\u049b\u0492\u0493\u04b0\u04b1\u04d8\u04d9\u0496\u0497\u04a2", + "\u04a3\u04ba\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05db\u05dc\u05de\u05dd", + "\u05e0\u05df\u05e1\u05e2\u05e4\u05e3\u05e6\u05e5\u05e7\u05e8\u00a2\u00a4\u00a5\u00a9\u00ae\u00b5", + "\u00b6\u00bc\u00bd\u00be\u0387\u2010\u201a\u2020\u2021\u2022\u2031\u2032\u2033\u2034\u2035\u2036", + "\u2037\u2039\u203a\u203b\u203c\u203d\u2042\u2048\u2049\u204b\u204e\u204f\u2051\u2052\u2057\u2117", + "\u2212\u2213\u221e\u2600\u2601\u2608\u0404\u2632\u2635\u263d\u2640\u2642\u26a5\u2660\u2663\u2665", + "\u2666\u2669\u266a\u266b\u266c\u266d\u266e\u266f\u2680\u2681\u2682\u2683\u2684\u2685\u02ac\u26a1", + "\u26cf\u2714\u2744\u274c\u2764\u2b50\u2e18\u2e2e\u2e35\u2e38\u2e41\u2e4b\u295d\u1614\u0190\u07c8", + "\u03db\u3125\u2c6f\u15fa\u0186\u15e1\u018e\u2132\u2141\ua7b0\ua780\u0500\ua779\u1d1a\u27d8\u2229", + "\u0245\u2144\u0250\u0254\u01dd\u025f\u1d77\u0265\u1d09\u027e\u029e\ua781\u026f\u0279\u0287\u028c", + "\u028d\u028e\u0531\u0532\u0533\u0534\u0536\u0537\u0539\u053a\u053b\u053c\u053d\u053e\u053f\u0540", + "\u0541\u0542\u0543\u0544\u0545\u0546\u0547\u0548\u0549\u054b\u054c\u054d\u054e\u054f\u0550\u0551", + "\u0552\u0553\u0554\u0555\u0556\u0559\u0561\u0562\u0563\u0564\u0565\u0566\u0567\u0568\u0569\u056a", + "\u056b\u056c\u056d\u056e\u056f\u0570\u0571\u0572\u0573\u0574\u0575\u0576\u0577\u0578\u0579\u057a", + "\u057b\u057c\u057d\u057e\u057f\u0580\u0581\u0582\u0583\u0584\u0585\u0586\u0587\u05e9\u05ea\u0538", + "\u055a\u055b\u055c\u055d\u055e\u055f\u0560\u0588\u058f\u00af\u017f\u01b7\u0292\u01f7\u01bf\u021c", + "\u021d\u0224\u0225\u02d9\ua75a\ua75b\u2011\u214b\u23cf\u23e9\u23ea\u23ed\u23ee\u23ef\u23f4\u23f5", + "\u23f6\u23f7\u23f8\u23f9\u23fa\u23fb\u23fc\u23fd\u2b58\u25b2\u25b6\u25bc\u25c0\u25cf\u25e6\u25d8", + "\u2693\u26e8\u0132\u0133\u01c9\ua728\ua729\ua739\ua73b\ufb00\ufb01\ufb02\ufb03\ufb05\ufffd\u0535", + "\u054a\u16a0\u16a2\u16a3\u16a4\u16a5\u16a6\u16a7\u16a8\u16a9\u16aa\u16ab\u16ac\u16ad\u16ae\u16af", + "\u16b0\u16b1\u16b2\u16b3\u16b4\u16b6\u16b7\u16b8\u16b9\u16ba\u16bb\u16bc\u16bd\u16be\u16bf\u16c0", + "\u16c1\u16c2\u16c3\u16c4\u16c5\u16c6\u16c7\u16c8\u16c9\u16ca\u16cb\u16cc\u16cd\u16ce\u16cf\u16d0", + "\u16d1\u16d2\u16d3\u16d4\u16d5\u16d6\u16d7\u16d8\u16d9\u16da\u16db\u16dc\u16dd\u16de\u16df\u16e0", + "\u16e1\u16e2\u16e3\u16e4\u16e5\u16e6\u16e7\u16e8\u16e9\u16ea\u16eb\u16ec\u16ed\u16ee\u16ef\u16f0", + "\u16f1\u16f2\u16f3\u16f4\u16f5\u16f6\u16f7\u16f8\u263a\u263b\u00a6\u2639\u05da\u05f3\u05f4\u05f0", + "\u05f1\u05f2\u05be\u05c3\u05c6\u00b4\u00a8\u1d00\u0299\u1d04\u1d05\u1d07\ua730\u0262\u029c\u1d0a", + "\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\ua7af\u0280\ua731\u1d1b\u1d1c\u1d20\u1d21\u028f\u1d22\u00a7", + "\u0271\u0273\u0272\u0288\u0256\u0261\u02a1\u0255\u0291\u0278\u029d\u02a2\u027b\u0281\u0266\u028b", + "\u0270\u026c\u026e\u0298\u01c0\u01c3\u01c2\u01c1\u0253\u0257\u1d91\u0284\u0260\u029b\u0267\u026b", + "\u0268\u0289\u028a\u0258\u0275\u0264\u025c\u025e\u0251\u0252\u025a\u025d\u0181\u0189\u0191\u01a9", + "\u01b2\u10a0\u10a1\u10a2\u10a3\u10a4\u10a5\u10a6\u10a7\u10a8\u10a9\u10aa\u10ab\u10ac\u10ad\u10ae", + "\u10af\u10b0\u10b1\u10b2\u10b3\u10b4\u10b5\u10b6\u10b7\u10b8\u10b9\u10ba\u10bb\u10bc\u10bd\u10be", + "\u10bf\u10c0\u10c1\u10c2\u10c3\u10c4\u10c5\u10c7\u10cd\u10d0\u10d1\u10d2\u10d3\u10d4\u10d5\u10d6", + "\u10d7\u10d8\u10d9\u10da\u10db\u10dc\u10dd\u10de\u10df\u10e0\u10e1\u10e2\u10e3\u10e4\u10e5\u10e6", + "\u10e7\u10e8\u10e9\u10ea\u10eb\u10ec\u10ed\u10ee\u10ef\u10f0\u10f1\u10f2\u10f3\u10f4\u10f5\u10f6", + "\u10f7\u10f8\u10f9\u10fa\u10fb\u10fc\u10fd\u10fe\u10ff\ufb4a\ufb2b\ufb4e\ufb44\ufb3b\ufb1f\ufb1d", + "\ufb4b\ufb35\ufb4c\ufb31\ua727\ua726\u027a\u2c71\u02a0\u0297\u0296\u026d\u0277\u027f\u0285\u0286", + "\u0293\u029a\u20aa\u20be\u058a\u2d00\u2d01\u2d02\u2d03\u2d04\u2d05\u2d06\u2d21\u2d07\u2d08\u2d09", + "\u2d0a\u2d0b\u2d0c\u2d22\u2d0d\u2d0e\u2d0f\u2d10\u2d11\u2d12\u2d23\u2d13\u2d14\u2d15\u2d16\u2d17", + "\u2d18\u2d19\u2d1a\u2d1b\u2d1c\u2d1d\u2d1e\u2d24\u2d1f\u2d20\u2d25\u215b\u215c\u215d\u215e\u2153", + "\u2154\u2709\u2602\u2614\u2604\u26c4\u2603\u231b\u231a\u2690\u270e\u2763\u2664\u2667\u2661\u2662", + "\u26c8\u2630\u2631\u2633\u2634\u2636\u2637\u2194\u21d2\u21cf\u21d4\u21f5\u2200\u2203\u2204\u2209", + "\u220b\u220c\u2282\u2283\u2284\u2285\u2227\u2228\u22bb\u22bc\u22bd\u2225\u2262\u22c6\u2211\u22a4", + "\u22a5\u22a2\u22a8\u2254\u2201\u2234\u2235\u221b\u221c\u2202\u22c3\u2286\u2287\u25a1\u25b3\u25b7", + "\u25bd\u25c1\u25c6\u25c7\u25cb\u25ce\u2606\u2605\u2718\u2080\u2081\u2082\u2083\u2084\u2085\u2086", + "\u2087\u2088\u2089\u208a\u208b\u208c\u208d\u208e\u222b\u222e\u221d\u2300\u2302\u2318\u3012\u027c", + "\u0184\u0185\u1e9f\u023d\u019a\u019b\u0220\u019e\u019f\u01a7\u01a8\u01aa\u01b8\u01b9\u01bb\u01bc", + "\u01bd\u01be\u0221\u0234\u0235\u0236\u023a\u2c65\u023b\u023c\u0246\u0247\u023e\u2c66\u0241\u0242", + "\u0243\u0244\u0248\u0249\u024a\u024b\u024c\u024d\u024e\u024f\u1e9c\u1e9d\u1efc\u1efd\u1efe\u1eff", + "\ua7a8\ua7a9\ud800\udf30\ud800\udf31\ud800\udf32\ud800\udf33\ud800\udf34\ud800\udf35\ud800\udf36\ud800\udf37\ud800\udf38\ud800\udf39\ud800\udf3a\ud800\udf3b\ud800\udf3c\ud800\udf3d", + "\ud800\udf3e\ud800\udf3f\ud800\udf40\ud800\udf41\ud800\udf42\ud800\udf43\ud800\udf44\ud800\udf45\ud800\udf46\ud800\udf47\ud800\udf48\ud800\udf49\ud800\udf4a\ud83c\udf27\ud83d\udd25\ud83c\udf0a", + "\u2150\u2151\u2155\u2156\u2157\u2159\u215a\u215f\u2189\ud83d\udde1\ud83c\udff9\ud83e\ude93\ud83d\udd31\ud83c\udfa3\ud83e\uddea\u2697", + "\u2bea\u2beb\u2c6d\ud83d\udee1\u2702\ud83c\udf56\ud83e\udea3\ud83d\udd14\u23f3\u2691\u20a0\u20a1\u20a2\u20a3\u20a4\u20a5", + "\u20a6\u20a9\u20ab\u20ad\u20ae\u20b0\u20b1\u20b2\u20b3\u20b5\u20b6\u20b7\u20b8\u20b9\u20ba\u20bb", + "\u20bc\u20bf\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + }, + { + "type": "bitmap", + "file": "citrus-dev:font/accented.png", + "height": 12, + "ascent": 10, + "chars": [ + "\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf", + "\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d9\u00da\u00db\u00dc\u00dd\u00e0\u00e1\u00e2\u00e3", + "\u00e4\u00e5\u00e6\u00e7\u00ec\u00ed\u00ee\u00ef\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f9\u00fa", + "\u00fb\u00fc\u00fd\u00ff\u0100\u0101\u0102\u0103\u0104\u0105\u0106\u0107\u0108\u0109\u010a\u010b", + "\u010c\u010d\u010e\u010f\u0110\u0111\u0112\u0113\u0114\u0115\u0116\u0117\u0118\u0119\u011a\u011b", + "\u011c\u011d\u1e20\u1e21\u011e\u011f\u0120\u0121\u0122\u0123\u0124\u0125\u0126\u0127\u0128\u0129", + "\u012a\u012b\u012c\u012d\u012e\u012f\u0130\u0131\u0134\u0135\u0136\u0137\u0139\u013a\u013b\u013c", + "\u013d\u013e\u013f\u0140\u0141\u0142\u0143\u0144\u0145\u0146\u0147\u0148\u014a\u014b\u014c\u014d", + "\u014e\u014f\u0150\u0151\u0152\u0153\u0154\u0155\u0156\u0157\u0158\u0159\u015a\u015b\u015c\u015d", + "\u015e\u015f\u0160\u0161\u0162\u0163\u0164\u0165\u0166\u0167\u0168\u0169\u016a\u016b\u016c\u016d", + "\u016e\u016f\u0170\u0171\u0172\u0173\u0174\u0175\u0176\u0177\u0178\u0179\u017a\u017b\u017c\u017d", + "\u017e\u01fc\u01fd\u01fe\u01ff\u0218\u0219\u021a\u021b\u0386\u0388\u0389\u038a\u038c\u038e\u038f", + "\u0390\u03aa\u03ab\u03ac\u03ad\u03ae\u03af\u03b0\u03ca\u03cb\u03cc\u03cd\u03ce\u0400\u0401\u0403", + "\u0407\u040c\u040d\u040e\u0419\u0439\u0450\u0451\u0452\u0453\u0457\u045b\u045c\u045d\u045e\u045f", + "\u0490\u0491\u1e02\u1e03\u1e0a\u1e0b\u1e1e\u1e1f\u1e22\u1e23\u1e30\u1e31\u1e40\u1e41\u1e56\u1e57", + "\u1e60\u1e61\u1e6a\u1e6b\u1e80\u1e81\u1e82\u1e83\u1e84\u1e85\u1ef2\u1ef3\u00e8\u00e9\u00ea\u00eb", + "\u0149\u01e7\u01eb\u040f\u1e0d\u1e25\u1e5b\u1e6d\u1e92\u1eca\u1ecb\u1ecc\u1ecd\u1ee4\u1ee5\u2116", + "\u0207\u0194\u0263\u0283\u2047\u01f1\u01f2\u01f3\u01c4\u01c5\u01c6\u01c7\u01c8\u01ca\u01cb\u01cc", + "\u2139\u1d6b\ua732\ua733\ua734\ua735\ua736\ua737\ua738\ua73a\ua73c\ua73d\ua74e\ua74f\ua760\ua761", + "\ufb04\ufb06\u16a1\u16b5\u01a0\u01a1\u01af\u01b0\u1eae\u1eaf\u1ea4\u1ea5\u1ebe\u1ebf\u1ed1\u1eda", + "\u1edb\u1ee8\u1ee9\u1eb0\u1eb1\u1ea6\u1ea7\u1ec0\u1ec1\u1ed3\u1edc\u1edd\u1eea\u1eeb\u1ea2\u1ea3", + "\u1eb2\u1eb3\u1ea8\u1ea9\u1eba\u1ebb\u1ed5\u1ede\u1ec2\u1ec3\u1ec8\u1ec9\u1ece\u1ecf\u1ed4\u1edf", + "\u1ee6\u1ee7\u1eec\u1eed\u1ef6\u1ef7\u1ea0\u1ea1\u1eb6\u1eb7\u1eac\u1ead\u1eb8\u1eb9\u1ec6\u1ec7", + "\u1ed8\u1ed9\u1ee2\u1ee3\u1ef0\u1ef1\u1ef4\u1ef5\u1ed0\u0195\u1eaa\u1eab\u1ed6\u1ed7\u1eef\u261e", + "\u261c\u262e\u1eb4\u1eb5\u1ebc\u1ebd\u1ec4\u1ec5\u1ed2\u1ee0\u1ee1\u1eee\u1ef8\u1ef9\u0498\u0499", + "\u04a0\u04a1\u04aa\u04ab\u01f6\u26a0\u24ea\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468", + "\u2469\u246a\u246b\u246c\u246d\u246e\u246f\u2470\u2471\u2472\u2473\u24b6\u24b7\u24b8\u24b9\u24ba", + "\u24bb\u24bc\u24bd\u24be\u24bf\u24c0\u24c1\u24c2\u24c3\u24c4\u24c5\u24c6\u24c7\u24c8\u24c9\u24ca", + "\u24cb\u24cc\u24cd\u24ce\u24cf\u24d0\u24d1\u24d2\u24d3\u24d4\u24d5\u24d6\u24d7\u24d8\u24d9\u24da", + "\u24db\u24dc\u24dd\u24de\u24df\u24e0\u24e1\u24e2\u24e3\u24e4\u24e5\u24e6\u24e7\u24e8\u24e9\u0327", + "\u0282\u0290\u0276\u01cd\u01ce\u01de\u01df\u01fa\u01fb\u0202\u0203\u0226\u0227\u01e0\u01e1\u1e00", + "\u1e01\u0200\u0201\u1e06\u1e07\u1e04\u1e05\u1d6c\u1e08\u1e09\u1e10\u1e11\u1e12\u1e13\u1e0e\u1e0f", + "\u1e0c\u1d6d\u1e14\u1e15\u1e16\u1e17\u1e18\u1e19\u1e1c\u1e1d\u0228\u0229\u1e1a\u1e1b\u0204\u0205", + "\u0206\u1d6e\u01f4\u01f5\u01e6\u1e26\u1e27\u1e28\u1e29\u1e2a\u1e2b\u021e\u021f\u1e24\u1e96\u1e2e", + "\u1e2f\u020a\u020b\u01cf\u01d0\u0208\u0209\u1e2c\u1e2d\u01f0\u0237\u01e8\u01e9\u1e32\u1e33\u1e34", + "\u1e35\u1e3a\u1e3b\u1e3c\u1e3d\u1e36\u1e37\u1e38\u1e39\u2c62\u1e3e\u1e3f\u1e42\u1e43\u1d6f\u1e44", + "\u1e45\u1e46\u1e47\u1e4a\u1e4b\u01f8\u01f9\u1e48\u1e49\u1d70\u01ec\u01ed\u022c\u022d\u1e4c\u1e4d", + "\u1e4e\u1e4f\u1e50\u1e51\u1e52\u1e53\u020e\u020f\u022a\u022b\u01d1\u01d2\u022e\u022f\u0230\u0231", + "\u020c\u020d\u01ea\u1e54\u1e55\u1d71\u0212\u0213\u1e58\u1e59\u1e5c\u1e5d\u1e5e\u1e5f\u0210\u0211", + "\u1e5a\u1d73\u1d72\u1e64\u1e65\u1e66\u1e67\u1e62\u1e63\u1e68\u1e69\u1d74\u1e70\u1e71\u1e6e\u1e6f", + "\u1e6c\u1e97\u1d75\u1e72\u1e73\u1e76\u1e77\u1e78\u1e79\u1e7a\u1e7b\u01d3\u01d4\u01d5\u01d6\u01d7", + "\u01d8\u01d9\u01da\u01db\u01dc\u1e74\u1e75\u0214\u0215\u0216\u1e7e\u1e7f\u1e7c\u1e7d\u1e86\u1e87", + "\u1e88\u1e89\u1e98\u1e8c\u1e8d\u1e8a\u1e8b\u0232\u0233\u1e8e\u1e8f\u1e99\u1e94\u1e95\u1e90\u1e91", + "\u1e93\u1d76\u01ee\u01ef\u1e9b\ua73e\ua73f\u01e2\u01e3\u1d7a\u1efb\u1d02\u1d14\uab63\u0238\u02a3", + "\u02a5\u02a4\u02a9\u02aa\u02ab\u0239\u02a8\u02a6\u02a7\uab50\uab51\u20a7\u1efa\ufb2e\ufb2f\u0180", + "\u0182\u0183\u0187\u0188\u018a\u018b\u018c\u0193\u01e4\u01e5\u0197\u0196\u0269\u0198\u0199\u019d", + "\u01a4\u01a5\u027d\u01a6\u01ac\u01ad\u01ab\u01ae\u0217\u01b1\u019c\u01b3\u01b4\u01b5\u01b6\u01a2", + "\u01a3\u0222\u0223\u02ad\u02ae\u02af\ufb14\ufb15\ufb17\ufb16\ufb13\u04d0\u04d1\u04d2\u04d3\u04f6", + "\u04f7\u0494\u0495\u04d6\u04d7\u04bc\u04bd\u04be\u04bf\u04da\u04db\u04dc\u04dd\u04c1\u04c2\u04de", + "\u04df\u04e2\u04e3\u04e4\u04e5\u04e6\u04e7\u04ea\u04eb\u04f0\u04f1\u04ee\u04ef\u04f2\u04f3\u04f4", + "\u04f5\u04f8\u04f9\u04ec\u04ed\u0476\u0477\u04d4\u04fa\u0502\ua682\ua680\ua688\u052a\u052c\ua684", + "\u0504\u0510\u04e0\u0506\u048a\u04c3\u049e\u049c\u051e\u051a\u04c5\u052e\u0512\u0520\u0508\u0514", + "\u04cd\u04c9\u0528\u04c7\u04a4\u0522\u050a\u04a8\u0524\u04a6\u048e\u0516\u050c\ua690\u04ac\ua68a", + "\ua68c\u050e\u04b2\u04fc\u04fe\u0526\ua694\u04b4\ua68e\u04b6\u04cb\u04b8\ua692\ua696\ua686\u048c", + "\u0518\u051c\u04d5\u04fb\u0503\ua683\ua681\ua689\u052b\u052d\ua685\u0505\u0511\u04e1\u0507\u048b", + "\u04c4\u049f\u049d\u051f\u051b\u04c6\u052f\u0513\u0521\u0509\u0515\u04ce\u04ca\u0529\u04c8\u04a5", + "\u0523\u050b\u04a9\u0525\u04a7\u048f\u0517\u050d\ua691\u04ad\ua68b\ua68d\u050f\u04b3\u04fd\u04ff", + "\u0527\ua695\u04b5\ua68f\u04b7\u04cc\u04b9\ua693\ua697\ua687\u048d\u0519\u051d\u1f08\u1f00\u1f09", + "\u1f01\u1f0a\u1f02\u1f0b\u1f03\u1f0c\u1f04\u1f0d\u1f05\u1f0e\u1f06\u1f0f\u1f07\u1fba\u1f70\u1fb8", + "\u1fb0\u1fb9\u1fb1\u1fbb\u1f71\u1f88\u1f80\u1f89\u1f81\u1f8a\u1f82\u1f8b\u1f83\u1f8c\u1f84\u1f8d", + "\u1f85\u1f8e\u1f86\u1f8f\u1f87\u1fbc\u1fb4\u1fb6\u1fb7\u1fb2\u1fb3\u1f18\u1f10\u1f19\u1f11\u1f1a", + "\u1f12\u1f1b\u1f13\u1f1c\u1f14\u1f1d\u1f15\u1fc8\u1fc9\u1f72\u1f73\u1f28\u1f20\u1fca\u1f74\u1f29", + "\u1f21\u1f2a\u1f22\u1f2b\u1f23\u1f2c\u1f24\u1f2d\u1f25\u1f2e\u1f26\u1f2f\u1f27\u1f98\u1f90\u1f99", + "\u1f91\u1f9a\u1f92\u1f9b\u1f93\u1f9c\u1f94\u1f9d\u1f95\u1f9e\u1f96\u1f9f\u1f97\u1fcb\u1f75\u1fcc", + "\u1fc3\u1fc2\u1fc4\u1fc6\u1fc7\u1fda\u1f76\u1fdb\u1f77\u1f38\u1f30\u1f39\u1f31\u1f3a\u1f32\u1f3b", + "\u1f33\u1f3c\u1f34\u1f3d\u1f35\u1f3e\u1f36\u1f3f\u1f37\u1fd8\u1fd0\u1fd9\u1fd1\u1fd2\u1fd3\u1fd6", + "\u1fd7\u1ff8\u1f78\u1ff9\u1f79\u1f48\u1f40\u1f49\u1f41\u1f4a\u1f42\u1f4b\u1f43\u1f4c\u1f44\u1f4d", + "\u1f45\u1fec\u1fe4\u1fe5\u1fea\u1f7a\u1feb\u1f7b\u1f59\u1f51\u1f5b\u1f53\u1f5d\u1f55\u1f5f\u1f57", + "\u1fe8\u1fe0\u1fe9\u1fe1\u03d3\u03d4\u1fe2\u1fe3\u1fe7\u1f50\u1f52\u1f54\u1fe6\u1f56\u1ffa\u1f7c", + "\u1ffb\u1f7d\u1f68\u1f60\u1f69\u1f61\u1f6a\u1f62\u1f6b\u1f63\u1f6c\u1f64\u1f6d\u1f65\u1f6e\u1f66", + "\u1f6f\u1f67\u1fa8\u1fa0\u1fa9\u1fa1\u1faa\u1fa2\u1fab\u1fa3\u1fac\u1fa4\u1fad\u1fa5\u1fae\u1fa6", + "\u1faf\u1fa7\u1ffc\u1ff3\u1ff2\u1ff4\u1ff6\u1ff7\u262f\u2610\u2611\u2612\u018d\u01ba\u2c7e\u023f", + "\u2c7f\u0240\u1d80\ua7c4\ua794\u1d81\u1d82\u1d83\ua795\u1d84\u1d85\u1d86\u1d87\u1d88\u1d89\u1d8a", + "\u1d8b\u1d8c\u1d8d\ua7c6\u1d8e\u1d8f\u1d90\u1d92\u1d93\u1d94\u1d95\u1d96\u1d97\u1d98\u1d99\u1d9a", + "\u1e9a\u2152\u2158\u20a8\u20af\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000" + ] + }, + { + "type": "bitmap", + "file": "citrus-dev:font/ascii.png", + "ascent": 7, + "chars": [ + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0020\u0021\u0022\u0023\u0024\u0025\u0026\u0027\u0028\u0029\u002a\u002b\u002c\u002d\u002e\u002f", + "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u003a\u003b\u003c\u003d\u003e\u003f", + "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f", + "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u005b\u005c\u005d\u005e\u005f", + "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f", + "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u007b\u007c\u007d\u007e\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u00a3\u0000\u0000\u0192", + "\u0000\u0000\u0000\u0000\u0000\u0000\u00aa\u00ba\u0000\u0000\u00ac\u0000\u0000\u0000\u00ab\u00bb", + "\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510", + "\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567", + "\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580", + "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u2205\u2208\u0000", + "\u2261\u00b1\u2265\u2264\u2320\u2321\u00f7\u2248\u00b0\u2219\u0000\u221a\u207f\u00b2\u25a0\u0000" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/citrus-dev/textures/font/accented.png b/src/main/resources/assets/citrus-dev/textures/font/accented.png new file mode 100644 index 0000000000000000000000000000000000000000..819c863a394f1dff5837731aef4fa7d4734a971c GIT binary patch literal 13508 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

PEgIA^Vn^ylC;_XV%WZKH}NoLia3 z+U-)rYnz@&hX=V>J33I3Wde_OwqiNs4g}jpjT}*I14X^H9eE$CYUO2{GGbJJ{t=Gn zAA48P@Z6I-vE1ib*Gz?aV7;&taZnc2%HsaoD9DPD=2_NZIswCcet#EHBea6c1*|p8#{z+_>L=}?d76m4qMZhD>Q8ygNk=a$?{idu zYil7RXXQbRsLiV8*VS>PHZT%6O+l8Z=@@ZAFPwTf)J863!cn`G(L-P`U0amYv7=_^ zlx!yaffXP%;lrj_vw}Sv=E66Zg#X6;K5|_cORXigv*@ty0bLI6mF`I^y0V20JXPlB ztoDGSVbGs7Vq8#w=z#_Ok{572j(OaT!YfQDe()Q^LCyTfZ+noo;R2CcGd}UVdggRi$!Eu24GBlf9N=uHEjNjRhl!S`Rz=!^%aI)pqsnA-jeg zxwe>2%LSxr1|vussK-v|jLBJN&$#!x)QAug)=#c$-I z-6u&8!2U&mj0S?W0MGK~h9=~Yojk0pH5SReT=KCk;xRo-V_vB5r$ibJDy9M6YzFI$ zi!p#O2oMs3dr5fD4^!)jn6n45)FSHZXn{28$%zpe@%0Dc%lkUCzH*=b#NiK#gs(5( zKfjv99WRk*wiJ=-`O8fuO}mSTK8I&uaHfKN(LgYZvY_8+VDu9kL-&b|t&J#o(mQvF zJmf2fs>@Dz*5bsMC)A7V%d~IBZ(b?2iMXJv`4=MuKK^3lu7}aSjrMWP_SLGbM>}t3 zkHJq^<>DfKx%p7f3KaJR{)QQb)FMbaNN+)Hm_vBBL&hnXnvlYHUf2%QEcnuL12#swPN_qOJ;3#p7QlvX;+zd5YO)IfxROljls* z?d645nBUP1siJ!POfje^V1=3=uO&C!?#Ktz(>IAAlqRKuFg-cPYyq73ji4FSgXUqF z+;zf?m4a$AW68G4?5+7NJ1=EhP$XZmDoHE7;lw1c(p zv#*ruU334rCxk_RS9IKS0!t0K4UrlWul-~u4@Pb~Y*KMO%t9P3ov}aJ=u$(0TD^vT zbBUB%7cqA~jw_AUkVd{RUBH)VE%@~SRq|8l*58&Ne>jKuVQty!KRQF{*WZ-J4b-X* zJo4JrJx@|iN{Do@hZ*zU={S9%vrxBTNW7G3@VI`BPf>jAEc3^6%!7;*3F?*jD(XZF zHtAZ6!)0OBOmb6}P)DD{KBk+YnbLzoH`e9}1=^rl(RB|6p>$9fl3#x#S^-CD0=vc^ z%uPs}QcQT^gEs6-vqlDmgZm?bwZSc`FRk)Ei%Hrw=X=HpwyXI5Mt2jjI4I;D%;FCm z1ykpR+N+)S5p?p&xxZOenT+WcEV{RuL>5-<=kGqskEV8g9=EJ0?2A~QTXwhdt>x|cB=F~b38gbzvA?}q>r+#T-99RRk&=q2~h{>U1$KZTBq;BD2tL? zs%>wr>ATfK_-zJ7?95Xs5~LE(Lt$MFnIw6qr}y5KzdFEqIn^Dy>V~idw|)zS?zX}z zewPPZ+WQ=biuj52(9Ue~YSfyZwkqB(?;RDr`;%YxTvPRyx5CZLUgqVNDyN40{?NQ1 zkw-WC#F%WKWh>WCN|&nzik`Nbr8W{BiR_pbl82q}o%M#)z1HtnFrd0}P$(Mu5hxJJ ziL3?FiixAz7X4dtWbIjK{hAu2xI_7f=k zWLU^b>TPDnaFgADB=lW(f+8=1>8qIvU?Jj595;3OazlVq-7EY|U{=)16pgZ0i#x$#;uJMjj`+Qz16))f0DQ=KZyP+$wcxA#Nl zPhUo-A%p&Wdgi5hSvRj9Wu}x3^lKaL5N6}xL|Jbfb7%p%uMn;Zx>7eX@CDSVgxX4k zSY|S;0Q5cuSFq?eyAf|>#M3OuWxlq1rX!HmAd&AnRLSmMsoJq)yw>_GA~DD?=Hz&f zYOxdE zm%4qRq>bQt!fi3EWyZvSbEA^H0wRvw;)4#>f6Vg(%HDWiQbWG(N5Z`Y^J?=p)N1Qg zwGZ!b;KXf4En)7DfC|kQz1@_dx9%w?uXK{yYZwd)iOP45&WgNOUi3J!hEZQKI5lS2 zIAn?YR7@|HAmZNf`BnCsbIc2~ngjQyLRToyuaVaQ88+ytgo7TIg!5euRn{v6=TAjV zouZhkttjT3en)o$Oc^WneGNQ~(PQBNznA++DluWQ{mHMpIXtd<2&{X2ZXxox+z@jV z?fUhzkeZo>QVnT1$;9S^o`~?FF0ek$fV=EvbwP04!p(Er4LnJQ#ec5) zm3T{K3Ie`c8N2D#XLBgB1(&)Sju5+6u=?d{@~QeXz$d#kfv0f*e>N}BY*L)mH$$j1 zG564JZYg&jJlB*C$DDh6SOrP=xoEy|38G$+jsPjCT)iTA&3LUy_``Ut_=a)UC0c7|oLmi7XwU<{cqJ=!rR~iJmws8A1ys9(Dqwy4P%0DYu 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 I{S#Dw0dZl}WB>pF literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/citrus-dev/textures/font/nonlatin_european.png b/src/main/resources/assets/citrus-dev/textures/font/nonlatin_european.png new file mode 100644 index 0000000000000000000000000000000000000000..3f65dedb217a4e3983900ccc479fec3930f5d83b GIT binary patch literal 5510 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/citrus-dev/textures/icons/block_culling_file.png b/src/main/resources/assets/citrus-dev/textures/icons/block_culling_file.png new file mode 100644 index 0000000000000000000000000000000000000000..3d8d1200cfbfb6eb75c9c5adc1899d23b74cb77b GIT binary patch literal 27100 zcmeI5T}YEr7{{M|=-&K%!%9tQn-@tr%#R4|V{LPiqG&~-fyqXG1$_*ZGIY4hIdoSC6NOeEuoq;}4qeKYrIi-hRptxUc4NM+mXn}MbXY*E%s zQNtceiD)_`zZ+7)$(_q1sjuZk>V>7H8{zCq+P%(3BoE_6tX#I07gKe%Ldwb=ts0Kz z6RkWeTS~-Aay*slSedTl0@MOp zSR~84R?npSPw?Dukd?OtzS{R7h95lU?pTc{n%BE0pHr0B*sA2kCga1;N2R)yEV=8W zA5nXTydct$rcfob#u=ae?a?I-SL&===_7K4IqTvir#M@2gNAd|JKOWtb5knwSPjbs zD`U*2VoR{qKEiXN-h}rH+r`SZ&QSN9m?-ylXjhP3$u~!`OfdXTRbjfq*6q@+9w(Y? zbPZe;?UD{Ar75J7gPyxGS0eso;6d|pJB*l}4N z9u98~%@TbM0R_<#;~WNYWGG0#kXs^g#*_#1IZReD6UQ z$3_Ttd9a0r{W)wtVrLb5;@I$qngLP`=ujZCfjkP@F9_S9+Jht!dP^u}Ap?fS83Jyo z(;>ZwX#$QA*j?b|fl&!AEcoYO4uta&woZ6fVaSD*8a{ED;NkEGz5r|nP&I%I0S^VR z7m#d#>G>02spehxi73)3{A=%vlO0L9BsZKMh(c-x5i#MBSm8e)eQ8P`F zFj)m@yevhX+rQG7jT%EBD*<|=GSbQh4RRP&l<*Zxu zlAcCHn;2i|CPOw^r*1N2lW~W6?1Lw4x1~C2HTlyF;F*%}Q|QIBouO~N9ED_AK66r6 zGh~yjp+@jh_PexIUeePv1u}S4E<-js<^|%Ey+vK-B|VKs8?*}50^@u}N300QCOn)P zZw}28eGUNy(Guev261F4NWYL<{>zE8h~j;i{{;g0pJ+@#|M&Xv|4qUn07RN(b_~E| zlFwNH#cWQ&J}=m8#WL)JKyDEZ2O!!h+#5fDDq1^50