From 22644195f04bfaa63ba147f69939bd1a2f102b7d Mon Sep 17 00:00:00 2001 From: Christian Knaapen Date: Sat, 14 Jan 2023 15:42:36 +0100 Subject: [PATCH] Changed reach upgrade recipes. Made radial menu smaller. Cleaned up radial menu code. Added russian language. Tweaked cube icon. --- build.gradle | 2 +- .../gui/buildmode/RadialMenu.java | 30 ++++--- .../assets/effortlessbuilding/lang/ru_ru.json | 79 ++++++++++++++++++ .../textures/icons/cube.png | Bin 319 -> 4987 bytes .../textures/items/reachupgrade1.png | Bin 603 -> 625 bytes .../textures/items/reachupgrade2.png | Bin 625 -> 603 bytes .../recipes/reach_upgrade1.json | 2 +- .../recipes/reach_upgrade2.json | 11 +-- .../recipes/reach_upgrade3.json | 6 +- 9 files changed, 105 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/assets/effortlessbuilding/lang/ru_ru.json diff --git a/build.gradle b/build.gradle index b47f7be..74da67a 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.18-2.37' +version = '1.18-2.38' group = 'nl.requios.effortlessbuilding' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'effortlessbuilding' diff --git a/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java b/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java index d150e44..2a160e3 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java @@ -45,6 +45,8 @@ import nl.requios.effortlessbuilding.buildmode.ModeOptions.OptionEnum; @MethodsReturnNonnullByDefault public class RadialMenu extends Screen { + public static final RadialMenu instance = new RadialMenu(); + private final Vector4f radialButtonColor = new Vector4f(0f, 0f, 0f, .5f); private final Vector4f sideButtonColor = new Vector4f(.5f, .5f, .5f, .5f); private final Vector4f highlightColor = new Vector4f(.6f, .8f, 1f, .6f); @@ -56,15 +58,14 @@ public class RadialMenu extends Screen { private final int descriptionTextColor = 0xdd888888; private final int optionTextColor = 0xeeeeeeff; - private final double ringInnerEdge = 40; - private final double ringOuterEdge = 80; - private final double categoryLineOuterEdge = 42; - private final double textDistance = 90; - private final double buttonDistance = 120; + private final double ringInnerEdge = 30; + private final double ringOuterEdge = 65; + private final double categoryLineWidth = 1; + private final double textDistance = 75; + private final double buttonDistance = 105; private final float fadeSpeed = 0.3f; private final int descriptionHeight = 100; - public static final RadialMenu instance = new RadialMenu(); public BuildModeEnum switchTo = null; public ActionEnum doAction = null; public boolean performedActionUsingMouse; @@ -164,7 +165,7 @@ public class RadialMenu extends Screen { doAction = null; //Draw buildmode backgrounds - drawRadialButtonBackgrounds(currentBuildMode, buffer, middleX, middleY, mouseXCenter, mouseYCenter, mouseRadians, ringInnerEdge, ringOuterEdge, quarterCircle, modes); + drawRadialButtonBackgrounds(currentBuildMode, buffer, middleX, middleY, mouseXCenter, mouseYCenter, mouseRadians, quarterCircle, modes); //Draw action backgrounds drawSideButtonBackgrounds(buffer, middleX, middleY, mouseXCenter, mouseYCenter, buttons); @@ -173,14 +174,15 @@ public class RadialMenu extends Screen { RenderSystem.disableBlend(); RenderSystem.enableTexture(); - drawIcons(ms, tessellator, buffer, middleX, middleY, ringInnerEdge, ringOuterEdge, modes, buttons); + drawIcons(ms, middleX, middleY, modes, buttons); - drawTexts(ms, currentBuildMode, middleX, middleY, textDistance, buttonDistance, modes, buttons, options); + drawTexts(ms, currentBuildMode, middleX, middleY, modes, buttons, options); ms.popPose(); } - private void drawRadialButtonBackgrounds(BuildModeEnum currentBuildMode, BufferBuilder buffer, double middleX, double middleY, double mouseXCenter, double mouseYCenter, double mouseRadians, double ringInnerEdge, double ringOuterEdge, double quarterCircle, ArrayList modes) { + private void drawRadialButtonBackgrounds(BuildModeEnum currentBuildMode, BufferBuilder buffer, double middleX, double middleY, + double mouseXCenter, double mouseYCenter, double mouseRadians, double quarterCircle, ArrayList modes) { if (!modes.isEmpty()) { final int totalModes = Math.max(3, modes.size()); final double fragment = Math.PI * 0.005; //gap between buttons in radians at inner edge @@ -229,6 +231,7 @@ public class RadialMenu extends Screen { //Category line color = menuRegion.mode.category.color; + final double categoryLineOuterEdge = ringInnerEdge + categoryLineWidth; final double x1m3 = Math.cos(beginRadians + fragment) * categoryLineOuterEdge; final double x2m3 = Math.cos(endRadians - fragment) * categoryLineOuterEdge; @@ -273,7 +276,7 @@ public class RadialMenu extends Screen { } } - private void drawIcons(PoseStack ms, Tesselator tessellator, BufferBuilder buffer, double middleX, double middleY, double ringInnerEdge, double ringOuterEdge, ArrayList modes, ArrayList buttons) { + private void drawIcons(PoseStack ms, double middleX, double middleY, ArrayList modes, ArrayList buttons) { ms.pushPose(); RenderSystem.enableTexture(); RenderSystem.setShader(GameRenderer::getPositionColorTexShader); @@ -302,7 +305,7 @@ public class RadialMenu extends Screen { ms.popPose(); } - private void drawTexts(PoseStack ms, BuildModeEnum currentBuildMode, double middleX, double middleY, double textDistance, double buttonDistance, ArrayList modes, ArrayList buttons, OptionEnum[] options) { + private void drawTexts(PoseStack ms, BuildModeEnum currentBuildMode, double middleX, double middleY, ArrayList modes, ArrayList buttons, OptionEnum[] options) { //font.drawStringWithShadow("Actions", (int) (middleX - buttonDistance - 13) - font.getStringWidth("Actions") * 0.5f, (int) middleY - 38, 0xffffffff); //Draw option strings @@ -473,7 +476,8 @@ public class RadialMenu extends Screen { public static void playRadialMenuSound() { final float volume = 0.1f; if (volume >= 0.0001f) { - SimpleSoundInstance sound = new SimpleSoundInstance(SoundEvents.UI_BUTTON_CLICK, SoundSource.MASTER, volume, 1.0f, Minecraft.getInstance().player.blockPosition()); + SimpleSoundInstance sound = new SimpleSoundInstance(SoundEvents.UI_BUTTON_CLICK, SoundSource.MASTER, volume, + 1.0f, Minecraft.getInstance().player.blockPosition()); Minecraft.getInstance().getSoundManager().play(sound); } } diff --git a/src/main/resources/assets/effortlessbuilding/lang/ru_ru.json b/src/main/resources/assets/effortlessbuilding/lang/ru_ru.json new file mode 100644 index 0000000..e28a436 --- /dev/null +++ b/src/main/resources/assets/effortlessbuilding/lang/ru_ru.json @@ -0,0 +1,79 @@ +{ +"efortlessbuilding.screen.modifier_settings": "Настройки модификатора", +"efortlessbuilding.screen.radial_menu": "Режимы строительства", +"efortlessbuilding.screen.player_settings": "Настройки игрока", + +"key.efortlessbuilding.category": "Строительство без усилий", +"key.efortlessbuilding.hud.desc": "Меню модификаторов", +"key.effortlessbuilding.replace.desc": "Переключить быструю замену", +"key.efortlessbuilding.mode.desc": "Круговое меню", +"key.efortlessbuilding.undo.desc": "Отменить", +"key.effortlessbuilding.redo.desc": "Повторить", +"key.efortlessbuilding.altplacement.desc": "Альтернативное размещение", + +"efortlessbuilding:randomizer_bag": "Кожаная сумка рандомизатора", +"efortlessbuilding:golden_randomizer_bag": "Золотой мешок рандомизатора", +"efortlessbuilding:diamond_randomizer_bag": "Бриллиантовый рандомизатор", +"efortlessbuilding:reach_upgrade1": "Достичь улучшения 1", +"efortlessbuilding:reach_upgrade2": "Достичь улучшения 2", +"efortlessbuilding:reach_upgrade3": "Достичь улучшения 3", + +"efortlessbuilding.mode.normal": "Отключить", +"efortlessbuilding.mode.normal_plus": "Одиночный", +"efortlessbuilding.mode.line": "Линия", +"efortlessbuilding.mode.wall": "Стена", +"efortlessbuilding.mode.floor": "Этаж", +"efortlessbuilding.mode.diagonal_line": "Диагональная линия", +"efortlessbuilding.mode.diagonal_wall": "Диагональная стена", +"effortlessbuilding.mode.slope_floor": "Наклонный этаж", +"effortlessbuilding.mode.cube": "Куб", +"efortlessbuilding.mode.circle": "Круг", +"efortlessbuilding.mode.cylinder": "Цилиндр", +"efortlessbuilding.mode.sphere": "Сфера", +"efortlessbuilding.mode.pyramid": "Пирамида", +"effortlessbuilding.mode.cone": "Конус", +"efortlessbuilding.mode.dome": "Купол", + +"effortlessbuilding.modedescription.normal": "Отключить мод и использовать ванильные правила размещения", +"effortlessbuilding.modedescription.normal_plus": "Как и ваниль, но с увеличенным охватом и предварительным просмотром места размещения", +"efortlessbuilding.modedescription.line": "", +"efortlessbuilding.modedescription.wall": "", +"efortlessbuilding.modedescription.floor": "", +"efortlessbuilding.modedescription.diagonal_line": "", +"efortlessbuilding.modedescription.diagonal_wall": "", +"effortlessbuilding.modedescription.slope_floor": "", +"efortlessbuilding.modedescription.cube": "", +"efortlessbuilding.modedescription.circle": "", +"efortlessbuilding.modedescription.cylinder": "", +"efortlessbuilding.modedescription.sphere": "", +"efortlessbuilding.modedescription.pyramid": "", +"efortlessbuilding.modedescription.cone": "", +"efortlessbuilding.modedescription.dome": "", + +"efortlessbuilding.action.undo": "Отменить", +"efortlessbuilding.action.redo": "Повторить", +"efortlessbuilding.action.replace": "Заменить", +"efortlessbuilding.action.open_modifier_settings": "Открыть настройки модификатора", +"efortlessbuilding.action.open_player_settings": "Открыть настройки", + +"efortlessbuilding.action.build_speed": "Скорость сборки", +"efortlessbuilding.action.filling": "Заполнение", +"efortlessbuilding.action.raised_edge": "Приподнятый край", +"efortlessbuilding.action.thickness": "Толщина линии", +"efortlessbuilding.action.circle_start": "Начальная точка", + +"efortlessbuilding.action.normal_speed": "Нормальный", +"efortlessbuilding.action.fast_speed": "Быстро", +"efortlessbuilding.action.full": "Заполнено", +"efortlessbuilding.action.hollow": "Пустой", +"efortlessbuilding.action.skeleton": "Скелет", +"efortlessbuilding.action.short_edge": "Короткая кромка", +"efortlessbuilding.action.long_edge": "Длинный край", +"efortlessbuilding.action.thickness_1": "Толщиной 1 блок", +"efortlessbuilding.action.thickness_3": "Толщиной 3 блока", +"efortlessbuilding.action.thickness_5": "Толщиной 5 блоков", +"efortlessbuilding.action.start_center": "Посередине", +"efortlessbuilding.action.start_corner": "Угол", + +"commands.reach.usage": "/reach <уровень>" +} diff --git a/src/main/resources/assets/effortlessbuilding/textures/icons/cube.png b/src/main/resources/assets/effortlessbuilding/textures/icons/cube.png index c9afbbdea795c814ce80caa3e9196e1221b7a0a0..9976bd2e0f96542b93226583aeabd33d3c260241 100644 GIT binary patch literal 4987 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 H>g)dk%NBW# delta 267 zcmV+m0rdX+CcgrZBM<-vVoOIv0RI600RN!9r<0SW5*~l!0tf;DDk4;r`Tzg`%t=H+ zR5;6>lg$x?APj{cJ2n%C6UBJ64ok2NEXWH^D2F}4gz)3ezEhCAj~ECr5fLRKO0yg@ zG6DcI0|3@_1pvet%@m-GT0>ASRV##$y!Xv_`D=!Vl0NZyo)X{pUE+P;n~D|yxUQ>8 zu+~-}ZIo{ZEOMg<$}ny00!E;oG3z52&N-atS%IW^+qSAF4IoQGr1`aie^m9rS_@__ z4@N6r_vlld1jny26}X8&;B%ZMQ%d1)AH;m>5Y=5lKQKbc?cDsY z9l4&s(QT#2b_R<{!)xy+l6-+vbN|MDj`IyC$o0~LW0MU7E8iEWiVA`niwjHiT|Umh z)f1wDAR8;-(tkX7?fodS8AUd8q4N^4!_U0jeL|&H!P2UbOB7J;=0*iy-lR}X8kJg! z)o7U2Xc&Q@tEHDunKf3HUgPSsVWi6#>2f1Mo7+mOxeb7KKVC7?J;B4xdkl45pVKlx6~LLFRRDHs8qJJ? z(D1zm&mY`jq|adL*77eJz5B2{H>LVdTp%)*1|iTb8`YMC>^MWo5h4Sl*o_aF?EA*` z9~!M25F4IAw`_!_qgytz{u#|Mf4rd`;`Scjq&hA$M zK)qN%Go$F1y?-MP^(OGYHIdaKD4*VlMWynEK|2(5u$ZfX&`?St-7?ZGgYpq!i}r>~ z^~D0w)G3NzB_A6y2$&qO(89*H?Rtf9-yoioCmh=c%E$HEWS1V&>U7YB2m)TN>0;^b z4g6LU^S~qkN_u$3Jf4%|(3wjdNm#5@wlG$E#BXzO`+wp=HFJEF^-_iLV<)KVKlx6~LLFRRDHs8qJJ? z(D1zm&mY`jq|adL*77eJz5B2{H>LVdTp%)*1|iTb8`YMC>^MWo5h4Sl*o_aF?EA*` z9~!M25F4IAw`_!_qgytz{u#|Mf4rd`;`Scjq&hA$M zK)qN%Go$F1y?-MP^(OGYHIdaKD4*VlMWynEK|2(5u$ZfX&`?St-7?ZGgYpq!i}r>~ z^~D0w)G3NzB_A6y2$&qO(89*H?Rtf9-yoioCmh=c%E$HEWS1V&>U7YB2m)TN>0;^b z4g6LU^S~qkN_u$3Jf4%|(3wjdNm#5@wlG$E#BXzO`+wp=HFJEF^-_iLV<)Klld1jny26}X8&;B%ZMQ%d1)AH;m>5Y=5lKQKbc?cDsY z9l4&s(QT#2b_R<{!)xy+l6-+vbN|MDj`IyC$o0~LW0MU7E8iEWiVA`niwjHiT|Umh z)f1wDAR8;-(tkX7?fodS8AUd8q4N^4!_U0jeL|&H!P2UbOB7J;=0*iy-lR}X8kJg! z)o7U2Xc&Q@tEHDunKf3HUgPSsVWi6#>2f1Mo7+mOxeb7KKVC7?J;B4xdkl45p