diff --git a/build.gradle b/build.gradle index 08f594f..f32675c 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { id 'net.minecraftforge.gradle' version '5.1.+' } -version = '1.19-2.37' +version = '1.19-2.38' group = 'nl.requios.effortlessbuilding' 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 82c3407..f3b9d1e 100644 --- a/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java +++ b/src/main/java/nl/requios/effortlessbuilding/gui/buildmode/RadialMenu.java @@ -46,6 +46,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); @@ -57,15 +59,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; @@ -165,7 +166,8 @@ 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); @@ -174,14 +176,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 @@ -230,6 +233,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; @@ -274,7 +278,8 @@ 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); @@ -303,7 +308,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 @@ -474,7 +479,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, RandomSource.create(), Minecraft.getInstance().player.blockPosition()); + SimpleSoundInstance sound = new SimpleSoundInstance(SoundEvents.UI_BUTTON_CLICK, SoundSource.MASTER, volume, + 1.0f, RandomSource.create(), 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 c9afbbd..9976bd2 100644 Binary files a/src/main/resources/assets/effortlessbuilding/textures/icons/cube.png and b/src/main/resources/assets/effortlessbuilding/textures/icons/cube.png differ diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade1.png b/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade1.png index 783dde0..37a1939 100644 Binary files a/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade1.png and b/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade1.png differ diff --git a/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade2.png b/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade2.png index 37a1939..783dde0 100644 Binary files a/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade2.png and b/src/main/resources/assets/effortlessbuilding/textures/items/reachupgrade2.png differ diff --git a/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade1.json b/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade1.json index 220bcd2..42b39f5 100644 --- a/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade1.json +++ b/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade1.json @@ -10,7 +10,7 @@ "item": "minecraft:ender_pearl" }, "#": { - "item": "minecraft:prismarine_crystals" + "item": "minecraft:slime_ball" } }, "result": { diff --git a/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade2.json b/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade2.json index 34e8ce2..201a030 100644 --- a/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade2.json +++ b/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade2.json @@ -1,20 +1,17 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "x#x", + " # ", "#O#", - "x#x" + " # " ], "key": { "O": { "item": "minecraft:ender_pearl" }, "#": { - "item": "minecraft:slime_ball" - }, - "x": { - "item": "minecraft:chorus_fruit" - } + "item": "minecraft:blaze_powder" + } }, "result": { "item": "effortlessbuilding:reach_upgrade2" diff --git a/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade3.json b/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade3.json index 39a42ae..916fbe1 100644 --- a/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade3.json +++ b/src/main/resources/data/effortlessbuilding/recipes/reach_upgrade3.json @@ -7,13 +7,13 @@ ], "key": { "O": { - "item": "minecraft:nether_star" + "item": "minecraft:end_crystal" }, "#": { - "item": "minecraft:diamond" + "item": "minecraft:chorus_fruit" }, "x": { - "item": "minecraft:amethyst_shard" + "item": "minecraft:ghast_tear" } }, "result": {