From b4af7a45b08636fa4e8a5686cdaaadec69468018 Mon Sep 17 00:00:00 2001 From: Eugene <59817721+SKZGx@users.noreply.github.com> Date: Tue, 11 Apr 2023 19:25:12 +0300 Subject: [PATCH 1/5] Create uk_ua.json --- .../assets/buildinggadgets/lang/uk_ua.json | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 src/main/resources/assets/buildinggadgets/lang/uk_ua.json diff --git a/src/main/resources/assets/buildinggadgets/lang/uk_ua.json b/src/main/resources/assets/buildinggadgets/lang/uk_ua.json new file mode 100644 index 00000000..ecb36585 --- /dev/null +++ b/src/main/resources/assets/buildinggadgets/lang/uk_ua.json @@ -0,0 +1,190 @@ +{ + "_comment": "інтерфейс - довідка:", + "itemGroup.buildinggadgets": "Будівничі ґаджети", + "item.buildinggadgets.gadget_building": "Ґаджет будівництва", + "item.buildinggadgets.gadget_copy_paste": "Ґаджет копіювання і вставки", + "item.buildinggadgets.gadget_destruction": "Ґаджет руйнування", + "item.buildinggadgets.gadget_exchanging": "Ґаджет заміни", + "item.buildinggadgets.construction_paste": "Будівельна паста", + "item.buildinggadgets.construction_chunk_dense": "Щільний шматочок пасти", + "item.buildinggadgets.construction_paste_container_t1": "Контейтер пасти", + "item.buildinggadgets.construction_paste_container_t2": "Контейтер пасти Р2", + "item.buildinggadgets.construction_paste_container_t3": "Контейтер пасти Р3", + "item.buildinggadgets.construction_paste_container_creative": "Творчий контейтер пасти", + "item.buildinggadgets.template": "Шаблон", + "block.buildinggadgets.construction_block": "Щільна паста", + "block.buildinggadgets.construction_block_dense": "Щільний шматочок пасти", + "block.buildinggadgets.construction_block_powder": "Порошок будівельного блоку", + "block.buildinggadgets.effect_block": "(Не використовується) Блок ефектів", + "block.buildinggadgets.template_manager": "Менеджер шаблонів", + "block.buildinggadgets.charging_station": "Зарядна станція", + "key.buildinggadgets.category": "Будівничі ґаджети", + "key.buildinggadgets.anchor": "Якір", + "key.buildinggadgets.settings_menu": "Меню налаштувань", + "key.buildinggadgets.range": "Діапазон / Накладення", + "key.buildinggadgets.rotate_mirror": "Обертати / Відзеркалити", + "key.buildinggadgets.undo": "Скасувати", + "key.buildinggadgets.fuzzy": "Нечіткість", + "key.buildinggadgets.connected_area": "Під’єднана зона", + "key.buildinggadgets.material_list": "Відкрити список матеріалів", + "tooltip.constructionblockpowder.helptext": "Розмістити поруч з водою", + "tooltip.gadget.block": "Блок: %s", + "tooltip.gadget.destroyshowoverlay": "Показувати накладення: %s", + "tooltip.gadget.destroywarning": "УВАГА: Цей інструмент знищує блоки.", + "tooltip.gadget.energy": "Енергія: %s/%s", + "tooltip.gadget.mode": "Режим: %s", + "tooltip.gadget.rotate": "Обернути", + "tooltip.gadget.mirror": "Дзеркало", + "tooltip.gadget.range": "Діапазон: %s (%s блоків)", + "tooltip.gadget.anchor": "Якір", + "tooltip.gadget.undo": "Скасувати", + "tooltip.gadget.fuzzy": "Нечіткість: %s", + "tooltip.gadget.raytrace_fluid": "Рідини: %s", + "tooltip.gadget.building.place_atop": "Розташувати зверху: %s", + "tooltip.gadget.connected": "Під'єднано %s", + "tooltip.gadget.connected_area": "Під’єднана зона: %s", + "tooltip.gadget.connected_surface": "Під’єднана поверхня", + "tooltip.pasteContainer.amount": "Кількість: %d / %d", + "tooltip.pasteContainer.creative.amountMsg": "Кількість: Нескінченно!", + "tooltip.charger.energy": "Енергія: %s FE", + "tooltip.charger.burn_time": "Залишилось часу горіти: %sс", + "tooltip.charger.fuel_empty": "Немає палива", + "tooltip.template.name": "Ім'я: %s", + "tooltip.template.author": "Автор: %s", + "tooltip.donotuse": "НЕ ВИКОРИСТОВУЄТЬСЯ (WIP)", + "buildinggadgets.commands.force_unloaded.no_player": "Не можна перемкнути статус гравця без статусу вивантаження гравця для цілі!", + "buildinggadgets.commands.force_unloaded.toggled": "Встановлення ForceLoadedChunks для гравця %s на %b.", + "buildinggadgets.commands.force_unloaded.list": "Гравець з UUID %s має ForceLoadedChunks встановлено на %b.", + "buildinggadgets.commands.override_copy_size.no_player": "Не можна перемкнути статус гравця без копіювання статусу гравця для цілі!", + "buildinggadgets.commands.override_copy_size.toggled": "Встановлення OverrideCopySize для гравця %s на %b.", + "buildinggadgets.commands.override_copy_size.list": "Гравець з UUID %s має OverrideCopySize встановлено на %b.", + "buildinggadgets.commands.override_build_size.no_player": "Не можна перемкнути статус гравця без побудованого статусу гравця для цілі!", + "buildinggadgets.commands.override_build_size.toggled": "Встановлення OverrideBuildSize для гравця %s на %b.", + "buildinggadgets.commands.override_build_size.list": "Гравець з UUID %s має OverrideBuildSize встановлено на %b.", + "buildinggadgets.radialmenu.destruction_overlay": "Показувати накладення", + "buildinggadgets.radialmenu.fluid_only": "Режим лише рідини", + "buildinggadgets.radialmenu.rotate": "Обернути", + "buildinggadgets.radialmenu.mirror": "Дзеркало", + "buildinggadgets.radialmenu.fuzzy": "Нечіткість", + "buildinggadgets.radialmenu.connected_area": "Під’єднана зона", + "buildinggadgets.radialmenu.connected_surface": "Під’єднана зона", + "buildinggadgets.radialmenu.open_gui": "Відкрити інтерфейс", + "buildinggadgets.radialmenu.open_material-list": "Відкрити список матеріалів", + "buildinggadgets.radialmenu.raytrace_fluid": "Рідини", + "buildinggadgets.radialmenu.place_on_top": "Розташувати зверху", + "buildinggadgets.radialmenu.anchor": "Якір", + "buildinggadgets.radialmenu.undo": "Скасувати", + "buildinggadgets.modes.surface": "Поверхня", + "buildinggadgets.modes.grid": "Сітка", + "buildinggadgets.modes.horizontal_column": "Горизонтальна колона", + "buildinggadgets.modes.horizontal_wall": "Горизонтальна стіна", + "buildinggadgets.modes.vertical_column": "Вертикальна колона", + "buildinggadgets.modes.vertical_wall": "Вертикальна стіна", + "buildinggadgets.modes.stairs": "Сходи", + "buildinggadgets.modes.build_to_me": "До мене", + "buildinggadgets.modes.copy": "Копіювати", + "buildinggadgets.modes.paste": "Вставити", + "buildinggadgets.message.copy_unloaded": "Спроба скопіювати чанки (%d штук). Якщо ви все ще хочете скопіювати, використайте команду ForceLoadChunks.", + "buildinggadgets.message.undo_unloaded": "Спроба скасувати операцію, яка охопила незавантажені чанки (%d штук). Якщо ви все ще хочете скасувати, використайте команду ForceLoadChunks.", + "buildinggadgets.message.build_unloaded": "Спроба побудувати щось, що охопить незавантажені чанки (%d штук). Якщо ви все ще хочете побудувати, використайте команду ForceLoadChunks.", + "buildinggadgets.message.copy_too_large": "Спроба копіювання об'єкту розміром (%d, %d, %d), що перевищує максимальний розмір, визначений на вашому сервері (%d, %d, %d). Якщо ви все ж хочете скопіювати, будь ласка, скористайтеся командою OverrideCopySize.", + "buildinggadgets.message.build_too_large": "Спроба створення будівлі розміром (%d, %d, %d) більше, ніж максимальний розмір, визначений на вашому сервері (%d, %d, %d). Якщо ви все ж хочете побудувати, будь ласка, скористайтеся командою OverrideBuildSize.", + "buildinggadgets.message.server_busy": "Сервер зайнятий. Будь ласка, зачекайте.", + "buildinggadgets.message.gadget_busy": "Ґаджет зайнятий. Будь ласка, зачекайте.", + "buildinggadgets.message.area_too_big": "Зона занадто велика, максимальна зона - 65 536 X 256 X 65 536. Клацніть правою кнопкою миші на порожньому повітрі, щоб скинути налаштування", + "buildinggadgets.message.too_many_blocks": "Занадто багато блоків, ліміт 2 147 483 647 (клацніть правою кнопкою миші на порожньому повітрі, щоб скинути)", + "buildinggadgets.message.too_many_dif_blocks": "Занадто багато різних блоків, ліміт 16 777 216 (клацніть правою кнопкою миші на порожньому повітрі, щоб скинути)", + "buildinggadgets.message.template_build": "Збудувати шаблон", + "buildinggadgets.message.copied": "Зона скопійована", + "buildinggadgets.message.not_copied": "Помилка копіювання зони", + "buildinggadgets.message.anchor_removed": "Якір видалено", + "buildinggadgets.message.anchor_set": "Якір розташовано", + "buildinggadgets.message.area_reset": "Скинути зону копіювання", + "buildinggadgets.message.copy_failed.template_write": "Не вдалося записати файл шаблону.", + "buildinggadgets.message.copy_failed.error": "Не вдалося скопіювати до буфера обміну.", + "buildinggadgets.message.copy_clipboard_success": "Копіювання в буфер обміну успішно", + "buildinggadgets.message.destroy_size_too_large": "Максимальний розмір руйнування становить %1$dx%1$dx%1$d", + "buildinggadgets.message.fuzzy_mode": "Режим нечіткості: %s", + "buildinggadgets.message.raytrace_fluid": "Рідини: %s", + "buildinggadgets.message.building.placement": "Розміщення блоків: %s", + "buildinggadgets.message.place.atop": "Зверху", + "buildinggadgets.message.place.inside": "Всередині", + "buildinggadgets.message.connected_area": "Під’єднана зона: %s", + "buildinggadgets.message.connected_surface": "Під’єднана поверхня: %s", + "buildinggadgets.message.invalid_block": "Некоректний блок (%s)", + "buildinggadgets.message.undo_missing_items": "Відсутні елементи для скасування", + "buildinggadgets.message.undo_failed": "Невдале скасування (надто далеко?)", + "buildinggadgets.message.nothing_to_undo": "Нічого скасувати", + "buildinggadgets.message.paste_failed": "Не вдалося вставити шаблон до буфера обміну.", + "buildinggadgets.message.paste_failed.wrong_mc_version": "Не вдалося вставити, версія майнкрафт %s не підтримується. Будь ласка, використовуйте лише шаблони, які було створено для (%s) -> (%s)", + "buildinggadgets.message.paste_failed.too_recent_version": "Помилка вставки, версія шаблону %s невідома для цього екземпляра. Будь ласка, використовуйте лише ті шаблони, які було створено до версії формату %s.", + "buildinggadgets.message.paste_failed.invalid_json": "Помилка вставки, неправильний JSON", + "buildinggadgets.message.paste_failed.corrupt_json": "Помилка вставки, пошкоджений JSON", + "buildinggadgets.message.paste_failed.corrupt_body": "Не вдалося вставити, тіло шаблону пошкоджено!", + "buildinggadgets.message.paste_failed.link_copied": "Не вдалося вставити дані. Будь ласка, скопіюйте необроблені json-дані замість посилання.", + "buildinggadgets.message.paste_success": "Вставлення з буферу обміну успішно", + "buildinggadgets.message.rotated": "Обертання блоків", + "buildinggadgets.message.mirrored": "Віддзеркалені блоки", + "buildinggadgets.message.tool_mode": "Режим інструмента: %s", + "buildinggadgets.message.range_set": "Діапозон інструментів: %d", + "buildinggadgets.message.boundTE": "Ґаджет пов'язаний з Інвентарем", + "buildinggadgets.message.unboundTE": "Неприв'язаний ґаджет з інвентарем", + "buildinggadgets.message.failed_to_bind": "Не вдалося прив'язати до інвентарю", + "buildinggadgets.message.invalid_inventory": "Цей блок не є коректним інвентарем", + "buildinggadgets.message.first_copy": "Перша позиція встановлена", + "buildinggadgets.easter_eggs.9x9.for_the_collection": "Ще 9 на 9 для занурення... Йдіть сабміть!", + "buildinggadgets.easter_eggs.9x9.just_like_dire": "9 на 9, подібно до \"Дір\".", + "buildinggadgets.easter_eggs.9x9.dire_would_be_proud": "Дір пишався б тобою.", + "buildinggadgets.easter_eggs.9x9.no_dire_wire": "Тільки без дротів, будь ласка.", + "buildinggadgets.easter_eggs.dire_9x9.another_one": "Ще один... Дійсно жахливо?!?", + "buildinggadgets.easter_eggs.dire_9x9.dont_tell": "Не кажіть своїм глядачам.", + "buildinggadgets.easter_eggs.dire_9x9.correct_size": "Ви впевнені, що це правильний розмір?", + "buildinggadgets.easter_eggs.dire_9x9.no_dire_wire": "Цього разу броні відсутні. Будь ласка.", + "gui.buildinggadgets.tm.button.copy": "Копіювати", + "gui.buildinggadgets.tm.button.paste": "Вставити", + "gui.buildinggadgets.tm.button.save": "Зберегти", + "gui.buildinggadgets.tm.button.load": "Завантажено", + "gui.buildinggadgets.tm.name_field.text": "ім'я?", + "gui.buildinggadgets.tm.field.placeholder": "Назва шаблону", + "gui.buildinggadgets.single.confirm": "Підтвердити", + "gui.buildinggadgets.single.cancel": "Скасувати", + "gui.buildinggadgets.single.close": "Закрити", + "gui.buildinggadgets.single.clear": "Очистити", + "gui.buildinggadgets.single.reset": "Скинути", + "gui.buildinggadgets.single.range": "Діапозон", + "gui.buildinggadgets.field.start": "Почати", + "gui.buildinggadgets.field.end": "Кінець", + "gui.buildinggadgets.copy.button.absolute": "Абсолютні координати", + "gui.buildinggadgets.copy.label.heading": "Внести коригування", + "gui.buildinggadgets.copy.label.subheading": "Використовуйте абсолютний режим, щоб використовувати розташування блоків.", + "gui.buildinggadgets.destruction.field.depth": "Глибина", + "gui.buildinggadgets.destruction.field.down": "Вниз", + "gui.buildinggadgets.destruction.field.left": "Вліво", + "gui.buildinggadgets.destruction.field.right": "Вправо", + "gui.buildinggadgets.destruction.field.up": "Вгору", + "gui.buildinggadgets.materialList.button.close": "Закрити", + "gui.buildinggadgets.materialList.button.copyList": "Копіювати", + "gui.buildinggadgets.materialList.button.sorting.nameAZ": "А-Я", + "gui.buildinggadgets.materialList.button.sorting.nameZA": "Я-А", + "gui.buildinggadgets.materialList.button.sorting.requiredAcse": "Необхідно ↓", + "gui.buildinggadgets.materialList.button.sorting.requiredDesc": "Необхідно ↓", + "gui.buildinggadgets.materialList.button.sorting.missingAcse": "Бракує ↓", + "gui.buildinggadgets.materialList.button.sorting.missingDesc": "Бракує ↑", + "gui.buildinggadgets.materialList.message.copyList.success": "Список матеріалів скопійовано", + "gui.buildinggadgets.materialList.titleEmpty": "Список матеріалів", + "gui.buildinggadgets.materialList.titleNameOnly": "Список матеріалів для %s", + "gui.buildinggadgets.materialList.titleAuthorOnly": "Список матеріалів від %s", + "gui.buildinggadgets.materialList.title": "Список матеріалів для %s від %s", + "gui.buildinggadgets.materialList.help.copyList": "Скопіюйте текстову версію списку матеріалів.\nНатисніть Ctrl / Command, щоб створити детальну версію з кодовими назвами", + "gui.buildinggadgets.help.area.arrow.data_flow": "Представляє потік даних з одного елементу до іншого; або від шаблону до ґаджета/шаблону, або від ґаджета/шаблону до шаблону чи аркуша паперу", + "gui.buildinggadgets.help.area.field.template_name": "Коли дані зберігаються/вставляються, шаблон матиме це ім'я", + "gui.buildinggadgets.help.area.preview": "Попередній перегляд даних, що зберігаються в ґаджеті/шаблоні", + "gui.buildinggadgets.help.area.slot.gadget": "Приймає §nґаджет копіювання і вставки§r або §nшаблон§r для збереження / копіювання з та завантаження у\\n\\n§9Кольорове накладення§r показує, що елемент отримає дані", + "gui.buildinggadgets.help.area.slot.template": "Приймає §нпапір§р або §nшаблон§r для завантаження та збереження/вставки\\n\\n§9Кольорове накладення§r показує, що цей елемент отримає дані", + "gui.buildinggadgets.help.button.copy": "Копіює дані з ґаджету/шаблону в буфер обміну комп'ютера", + "gui.buildinggadgets.help.button.help.enter": "Показати довідку з наведенням", + "gui.buildinggadgets.help.button.help.exit": "Вийти з режиму довідки", + "gui.buildinggadgets.help.button.load": "Завантажує дані до ґаджету/шаблону з шаблону", + "gui.buildinggadgets.help.button.paste": "Копіює дані з буферу обміну комп'ютера до попереднього шаблону або до аркуша паперу, створюючи шаблон", + "gui.buildinggadgets.help.button.save": "Зберігає дані в ґаджет/шаблон до попереднього шаблону або до аркуша паперу, створюючи шаблон" +} From a99e45da6206ffbfb4c7c8fda6671c07aa4199d9 Mon Sep 17 00:00:00 2001 From: "unrealdinnerbone@gmail.com" Date: Thu, 4 May 2023 16:31:51 -0500 Subject: [PATCH 2/5] fix: commands not registering --- .../com/direwolf20/buildinggadgets/common/BuildingGadgets.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java b/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java index c9d61157..4957c924 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java +++ b/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java @@ -73,6 +73,7 @@ public BuildingGadgets() { MinecraftForge.EVENT_BUS.addListener(this::serverLoaded); MinecraftForge.EVENT_BUS.addListener(this::serverStopped); + MinecraftForge.EVENT_BUS.addListener(this::commandRegister); eventBus.addListener(this::setup); eventBus.addListener(this::clientSetup); From 9c80b4c04dfba05ca1cb7a70371efe4bfe6de33e Mon Sep 17 00:00:00 2001 From: Neko Boi Nick <950594+thakyZ@users.noreply.github.com> Date: Sun, 11 Jun 2023 15:41:58 -0700 Subject: [PATCH 3/5] Update ConstructionBlock.java Might be a good idea to check if the `BlockState` is null prior to calling a function from it. --- .../buildinggadgets/common/blocks/ConstructionBlock.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/direwolf20/buildinggadgets/common/blocks/ConstructionBlock.java b/src/main/java/com/direwolf20/buildinggadgets/common/blocks/ConstructionBlock.java index 38acb67c..32c33d64 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/common/blocks/ConstructionBlock.java +++ b/src/main/java/com/direwolf20/buildinggadgets/common/blocks/ConstructionBlock.java @@ -184,7 +184,7 @@ public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, @Override public VoxelShape getOcclusionShape(BlockState state, BlockGetter worldIn, BlockPos pos) { BlockState mimic = getActualMimicBlock(worldIn, pos); - if (!mimic.canOcclude()) { + if (!isMimicNull(mimic) && !mimic.canOcclude()) { return Shapes.empty(); } return !isMimicNull(mimic) ? mimic.getBlockSupportShape(worldIn, pos) : super.getOcclusionShape(state, worldIn, pos); From 91a5add574ce2928fb21cab40ec34543de90d609 Mon Sep 17 00:00:00 2001 From: Michael Hillcox Date: Mon, 20 May 2024 11:33:46 +0100 Subject: [PATCH 4/5] chore: version bumps --- CHANGELOG.md | 8 ++++---- gradle.properties | 2 +- update.json | 7 ++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 413440cd..2da3d233 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,10 @@ # Changelog -## Changed +## Added -- Ported to 1.19.3 +- `uk_ua` translation [#732](https://github.com/direworlf20-mc/issues/732) ## Fixed -- An old issue where the construction paste containers don't render their filled amount. This used to happen pre 1.16.5... -- Couple odd issues here and there, nothing special +- Crashes being caused by construction blocks not checking for null correctly [#738](https://github.com/direworlf20-mc/issues/738) +- Commands not being registered correctly [#734](https://github.com/direworlf20-mc/issues/734) diff --git a/gradle.properties b/gradle.properties index 42cab0be..ab5ef2fd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,5 +2,5 @@ org.gradle.jvmargs=-Xmx2G org.gradle.daemon=false minecraft_version=1.19.3 forge_version=44.1.20 -version=3.17.0 +version=3.17.1 jei_version=12.2.0.17 diff --git a/update.json b/update.json index 9f6a40ac..fe8385ff 100644 --- a/update.json +++ b/update.json @@ -65,7 +65,8 @@ "1.19": { "3.14.0": "Changelog: https://github.com/Direwolf20-MC/BuildingGadgets/releases/tag/release%2F3.14.0", "3.14.1": "Changelog: https://github.com/Direwolf20-MC/BuildingGadgets/releases/tag/release%2F3.14.1", - "3.14.2": "Changelog: https://github.com/Direwolf20-MC/BuildingGadgets/releases/tag/release%2F3.14.2" + "3.14.2": "Changelog: https://github.com/Direwolf20-MC/BuildingGadgets/releases/tag/release%2F3.14.2", + "3.16.3": "Changelog: https://github.com/Direwolf20-MC/BuildingGadgets/releases/tag/release%2F3.16.3" }, "promos": { "1.12.2-latest": "2.8.2", @@ -92,7 +93,7 @@ "1.18.1-recommended": "3.10.1", "1.18.2-latest": "3.13.0", "1.18.2-recommended": "3.13.0", - "1.19-latest": "3.14.2", - "1.19-recommended": "3.14.2" + "1.19-latest": "3.16.3", + "1.19-recommended": "3.16.3" } } From 1e3d977be8f3eebc08bfd09717a45fdb51acb48d Mon Sep 17 00:00:00 2001 From: Michael Hillcox Date: Mon, 20 May 2024 12:48:53 +0100 Subject: [PATCH 5/5] feat: port to 1.19.4 --- CHANGELOG.md | 5 +++ gradle.properties | 8 ++--- .../client/events/EventTooltip.java | 12 +++---- .../client/screen/MaterialListGUI.java | 2 -- .../client/screen/ModeRadialMenu.java | 4 +-- .../client/screen/ScrollingMaterialList.java | 36 ++++--------------- .../client/screen/TemplateManagerGUI.java | 7 ++-- .../client/screen/widgets/EntryList.java | 4 +-- .../client/screen/widgets/GuiIncrementer.java | 8 +---- .../widgets/IncrementalSliderWidget.java | 2 +- .../common/BuildingGadgets.java | 2 +- .../config/RecipeConstructionPaste.java | 8 +++-- .../common/network/PacketHandler.java | 2 +- 13 files changed, 38 insertions(+), 62 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2da3d233..0e4985f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,15 @@ # Changelog +## Changed + +- Ported to 1.19.4 + ## Added - `uk_ua` translation [#732](https://github.com/direworlf20-mc/issues/732) ## Fixed +- A couple of long standing porting issues - Crashes being caused by construction blocks not checking for null correctly [#738](https://github.com/direworlf20-mc/issues/738) - Commands not being registered correctly [#734](https://github.com/direworlf20-mc/issues/734) diff --git a/gradle.properties b/gradle.properties index ab5ef2fd..ce8a642c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ org.gradle.jvmargs=-Xmx2G org.gradle.daemon=false -minecraft_version=1.19.3 -forge_version=44.1.20 -version=3.17.1 -jei_version=12.2.0.17 +minecraft_version=1.19.4 +forge_version=45.2.15 +version=3.18.0 +jei_version=13.1.0.16 diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/events/EventTooltip.java b/src/main/java/com/direwolf20/buildinggadgets/client/events/EventTooltip.java index 0a8af849..3e208c9d 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/events/EventTooltip.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/events/EventTooltip.java @@ -63,7 +63,7 @@ public int getWidth(Font font) { } @Override - public void renderImage(Font font, int x, int y, PoseStack poseStack, ItemRenderer itemRenderer, int p_194053_) { + public void renderImage(Font font, int x, int y, PoseStack poseStack, ItemRenderer itemRenderer) { if (this.tooltipData.stack == null || !(this.tooltipData.stack.getItem() instanceof GadgetCopyPaste)) return; @@ -155,13 +155,13 @@ private static int renderRequiredBlocks(PoseStack matrices, ItemRenderer itemRen boolean hasReq = req > 0; - itemRenderer.renderAndDecorateItem(itemStack, x, y); - itemRenderer.renderGuiItemDecorations(mc.font, itemStack, x, y); + itemRenderer.renderAndDecorateItem(matrices, itemStack, x, y); + itemRenderer.renderGuiItemDecorations(matrices, mc.font, itemStack, x, y); MultiBufferSource.BufferSource irendertypebuffer$impl = Minecraft.getInstance().renderBuffers().bufferSource(); matrices.pushPose(); - matrices.translate(x + 8 - w1 / 4f, y + (hasReq ? 12 : 14), itemRenderer.blitOffset + 250); + matrices.translate(x + 8 - w1 / 4f, y + (hasReq ? 12 : 14), ItemRenderer.ITEM_COUNT_BLIT_OFFSET + 250); matrices.scale(.5f, .5f, 0); mc.font.draw(matrices, s1, 0, 0, 0xFFFFFF); matrices.popPose(); @@ -175,9 +175,9 @@ private static int renderRequiredBlocks(PoseStack matrices, ItemRenderer itemRen int w2 = mc.font.width(s2); matrices.pushPose(); - matrices.translate(x + 8 - w2 / 4f, y + 17, itemRenderer.blitOffset + 250); + matrices.translate(x + 8 - w2 / 4f, y + 17, ItemRenderer.ITEM_COUNT_BLIT_OFFSET + 250); matrices.scale(.5f, .5f, 0); - mc.font.drawInBatch(s2, 0, 0, 0xFF0000, true, matrices.last().pose(), irendertypebuffer$impl, false, 0, 15728880); + mc.font.drawInBatch(s2, 0, 0, 0xFF0000, true, matrices.last().pose(), irendertypebuffer$impl, Font.DisplayMode.NORMAL, 0, 15728880); matrices.popPose(); missingCount = (req - count); diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/screen/MaterialListGUI.java b/src/main/java/com/direwolf20/buildinggadgets/client/screen/MaterialListGUI.java index 3f5149ea..0840136d 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/screen/MaterialListGUI.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/screen/MaterialListGUI.java @@ -269,14 +269,12 @@ public static int getYForAlignedCenter(int top, int bottom, int height) { public static void renderTextVerticalCenter(PoseStack matrices, String text, int leftX, int top, int bottom, int color) { Font fontRenderer = Minecraft.getInstance().font; int y = getYForAlignedCenter(top, bottom, fontRenderer.lineHeight); - RenderSystem.enableTexture(); fontRenderer.draw(matrices, text, leftX, y, color); } public static void renderTextHorizontalRight(PoseStack matrices, String text, int right, int y, int color) { Font fontRenderer = Minecraft.getInstance().font; int x = getXForAlignedRight(right, fontRenderer.width(text)); - RenderSystem.enableTexture(); fontRenderer.draw(matrices, text, x, y, color); } diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/screen/ModeRadialMenu.java b/src/main/java/com/direwolf20/buildinggadgets/client/screen/ModeRadialMenu.java index 478c0efd..a5a679bf 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/screen/ModeRadialMenu.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/screen/ModeRadialMenu.java @@ -261,7 +261,7 @@ private void updateButtons(ItemStack tool) { button.setWidth(dim); button.setHeight(dim); if (isDestruction) - button.setX(height / 2 + (isRight ? 10 : -button.getHeight() - 10)); + button.setY(height / 2 + (isRight ? 10 : -button.getHeight() - 10)); else button.setX(width / 2 + offset); } @@ -453,7 +453,7 @@ public void render(PoseStack matrices, int mx, int my, float partialTicks) { stack.scale(s, s, s); matrices.popPose(); stack.translate(x / s - (tool.getItem() instanceof GadgetCopyPaste ? 8 : 8.5), y / s - 8, 0); - this.itemRenderer.renderAndDecorateItem(tool, 0, 0); + this.itemRenderer.renderAndDecorateItem(stack, tool, 0, 0); stack.popPose(); } diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/screen/ScrollingMaterialList.java b/src/main/java/com/direwolf20/buildinggadgets/client/screen/ScrollingMaterialList.java index 699062c5..e555730d 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/screen/ScrollingMaterialList.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/screen/ScrollingMaterialList.java @@ -11,15 +11,14 @@ import com.google.common.collect.ImmutableMultiset; import com.google.common.collect.Iterators; import com.google.common.collect.Multiset; +import com.mojang.blaze3d.platform.Lighting; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.ObjectSelectionList; -import com.mojang.blaze3d.platform.Lighting; import net.minecraft.network.chat.Component; +import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -import net.minecraft.util.Mth; import org.lwjgl.glfw.GLFW; import java.awt.*; @@ -28,7 +27,6 @@ import static com.direwolf20.buildinggadgets.client.screen.MaterialListGUI.*; import static com.direwolf20.buildinggadgets.client.screen.ScrollingMaterialList.Entry; -import static org.lwjgl.opengl.GL11.*; // Todo change to AbstractList as it's an easy fix compared to duping the class class ScrollingMaterialList extends EntryList { @@ -149,9 +147,11 @@ public void render(PoseStack matrices, int index, int topY, int leftX, int entry int slotX = leftX + MARGIN; int slotY = topY + MARGIN; + matrices.pushPose(); drawIcon(matrices, stack, slotX, slotY); drawTextOverlay(matrices, right, topY, bottom, slotX); drawHoveringText(stack, slotX, slotY, mouseX, mouseY); + matrices.popPose(); } private void drawTextOverlay(PoseStack matrices, int right, int top, int bottom, int slotX) { @@ -159,28 +159,6 @@ private void drawTextOverlay(PoseStack matrices, int right, int top, int bottom, // -1 because the bottom x coordinate is exclusive renderTextVerticalCenter(matrices, itemName, itemNameX, top, bottom, Color.WHITE.getRGB()); renderTextHorizontalRight(matrices, amount, right, getYForAlignedCenter(top, bottom, Minecraft.getInstance().font.lineHeight), getTextColor()); - - drawGuidingLine(right, top, bottom, itemNameX, widthItemName, widthAmount); - } - - private void drawGuidingLine(int right, int top, int bottom, int itemNameX, int widthItemName, int widthAmount) { - if (!isSelected()) { - int lineXStart = itemNameX + widthItemName + LINE_SIDE_MARGIN; - int lineXEnd = right - widthAmount - LINE_SIDE_MARGIN; - int lineY = getYForAlignedCenter(top, bottom - 1, 1); - RenderSystem.enableBlend(); - RenderSystem.disableTexture(); - RenderSystem.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - RenderSystem.setShaderColor(255, 255, 255, 34); - -// glLineWidth(1); -// glBegin(GL_LINES); -// glVertex3f(lineXStart, lineY, 0); -// glVertex3f(lineXEnd, lineY, 0); -// glEnd(); - - RenderSystem.enableTexture(); - } } private void drawHoveringText(ItemStack item, int slotX, int slotY, int mouseX, int mouseY) { @@ -189,10 +167,10 @@ private void drawHoveringText(ItemStack item, int slotX, int slotY, int mouseX, } private void drawIcon(PoseStack matrices, ItemStack item, int slotX, int slotY) { - Lighting.setupForFlatItems(); - Minecraft.getInstance().getItemRenderer().renderAndDecorateItem(item, slotX, slotY); -// RenderSystem.color3f(1, 1, 1); Lighting.setupFor3DItems(); + Minecraft.getInstance().getItemRenderer().renderAndDecorateItem(matrices, item, slotX, slotY); +// RenderSystem.color3f(1, 1, 1); + Lighting.setupForFlatItems(); } private boolean hasEnoughItems() { diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/screen/TemplateManagerGUI.java b/src/main/java/com/direwolf20/buildinggadgets/client/screen/TemplateManagerGUI.java index aa53a08e..a5a96d3b 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/screen/TemplateManagerGUI.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/screen/TemplateManagerGUI.java @@ -43,6 +43,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import net.minecraft.SharedConstants; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.EditBox; @@ -274,8 +275,8 @@ private void renderRequirement(PoseStack matrices, int mouseX, int mouseY) { ItemStack stack = e.getElement().createStack(); int x = (-20 - (column * 25)), y = (20 + (index * 25)); - itemRenderer.renderAndDecorateItem(stack, x + 4, y + 4); - itemRenderer.renderGuiItemDecorations(Minecraft.getInstance().font, stack, x + 4, y + 4, GadgetUtils.withSuffix(foundItems.count(e.getElement()))); + itemRenderer.renderAndDecorateItem(matrices, stack, x + 4, y + 4); + itemRenderer.renderGuiItemDecorations(matrices, Minecraft.getInstance().font, stack, x + 4, y + 4, GadgetUtils.withSuffix(foundItems.count(e.getElement()))); int space = (int) (25 - (.2f * 25)); int zoneX = ((leftPos - 32) + (-15 - (column * space))), zoneY = (topPos - 9) + (20 + (index * space)); @@ -631,7 +632,7 @@ private void onPaste() { if (!tagFromJson.contains("header")) { BuildingGadgets.LOG.error("Attempted to use a 1.12 compound on a newer MC version"); getMinecraft().player.displayClientMessage(MessageTranslation.PASTE_FAILED_WRONG_MC_VERSION - .componentTranslation("(1.12.x)", Minecraft.getInstance().getGame().getVersion().getName()).setStyle(Styles.RED), false); + .componentTranslation("(1.12.x)", "1.14.x", SharedConstants.VERSION_STRING).setStyle(Styles.RED), false); return; } diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/EntryList.java b/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/EntryList.java index be049656..3b088b9b 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/EntryList.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/EntryList.java @@ -47,7 +47,7 @@ private void renderParts(PoseStack matrices, int mouseX, int mouseY, float parti int k = getRowLeft(); int l = getTop() + 4 - (int) getScrollAmount(); - renderHeader(matrices, k, l, tessellator); + renderHeader(matrices, k, l); renderList(matrices, k, l, partialTicks); RenderSystem.disableDepthTest(); @@ -63,7 +63,6 @@ private void renderParts(PoseStack matrices, int mouseX, int mouseY, float parti int x1 = getScrollbarPosition(); int x2 = x1 + 6; - RenderSystem.disableTexture(); bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); bufferbuilder.vertex(x1, getBottom(), 0.0D).color(0, 0, 0, 255).endVertex(); bufferbuilder.vertex(x2, getBottom(), 0.0D).color(0, 0, 0, 255).endVertex(); @@ -83,7 +82,6 @@ private void renderParts(PoseStack matrices, int mouseX, int mouseY, float parti } renderDecorations(matrices, mouseX, mouseX); - RenderSystem.enableTexture(); RenderSystem.disableBlend(); } diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/GuiIncrementer.java b/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/GuiIncrementer.java index 776f1241..c7aa3722 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/GuiIncrementer.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/GuiIncrementer.java @@ -73,7 +73,7 @@ public void setValue(int value) { } @Override - public void render(PoseStack matrices, int mouseX, int mouseY, float partialTick) { + public void renderWidget(PoseStack matrices, int mouseX, int mouseY, float partialTick) { this.plusButton.render(matrices, mouseX, mouseY, partialTick); this.minusButton.render(matrices, mouseX, mouseY, partialTick); this.field.render(matrices, mouseX, mouseY, partialTick); @@ -112,12 +112,6 @@ public boolean charTyped(char p_charTyped_1_, int p_charTyped_2_) { return true; } - @Override - protected void onFocusedChanged(boolean isFocused) { - this.field.changeFocus(isFocused); - super.onFocusedChanged(isFocused); - } - public int getX() { return x; } diff --git a/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/IncrementalSliderWidget.java b/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/IncrementalSliderWidget.java index 48bc5369..4f2e8be8 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/IncrementalSliderWidget.java +++ b/src/main/java/com/direwolf20/buildinggadgets/client/screen/widgets/IncrementalSliderWidget.java @@ -32,7 +32,7 @@ public IncrementalSliderWidget(int x, int y, int width, int height, double min, } @Override - public void renderButton(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { + public void renderWidget(PoseStack poseStack, int mouseX, int mouseY, float partialTick) { fill(poseStack, this.getX(), this.getY(), this.getX() + this.width, this.getY() + this.height, BACKGROUND); this.drawBorderedRect(poseStack, (this.getX() + (int)(this.value * (double)(this.width - 8)) + 4) - 4, this.getY(), 8, this.height); this.renderText(poseStack); diff --git a/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java b/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java index 4957c924..dad5597a 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java +++ b/src/main/java/com/direwolf20/buildinggadgets/common/BuildingGadgets.java @@ -93,7 +93,7 @@ private void registerCreativeTab(CreativeModeTabEvent.Register register) { stack.getOrCreateTag().putByte(NBTKeys.CREATIVE_MARKER, (byte) 0); return stack; }) - .displayItems((featureFlags, output, hasPermission) -> { + .displayItems((featureFlags, output) -> { // Register it alL! OurItems.ITEMS.getEntries() .forEach(e -> { diff --git a/src/main/java/com/direwolf20/buildinggadgets/common/config/RecipeConstructionPaste.java b/src/main/java/com/direwolf20/buildinggadgets/common/config/RecipeConstructionPaste.java index c144f73a..0d626d6a 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/common/config/RecipeConstructionPaste.java +++ b/src/main/java/com/direwolf20/buildinggadgets/common/config/RecipeConstructionPaste.java @@ -2,6 +2,7 @@ import com.direwolf20.buildinggadgets.common.items.ConstructionPasteContainer; import com.google.gson.JsonObject; +import net.minecraft.core.RegistryAccess; import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.CraftingBookCategory; @@ -19,8 +20,8 @@ public RecipeConstructionPaste(ResourceLocation id, String group, CraftingBookCa } @Override - public ItemStack assemble(CraftingContainer craftingInventory) { - final ItemStack output = super.assemble(craftingInventory); // Get the default output + public ItemStack assemble(CraftingContainer craftingInventory, RegistryAccess registryAccess) { + final ItemStack output = super.assemble(craftingInventory, registryAccess); // Get the default output if (!output.isEmpty()) { int totalPaste = 0; for (int i = 0; i < craftingInventory.getContainerSize(); i++) { // For each slot in the crafting inventory, @@ -40,11 +41,12 @@ public RecipeSerializer getSerializer() { public static final class Serializer extends ShapedRecipe.Serializer { public static final Serializer INSTANCE = new Serializer(); + @Override public ShapedRecipe fromJson(ResourceLocation recipeId, JsonObject json) { ShapedRecipe recipe = super.fromJson(recipeId, json); return new RecipeConstructionPaste(recipe.getId(), recipe.getGroup(), CraftingBookCategory.MISC, recipe.getRecipeWidth(), - recipe.getRecipeHeight(), recipe.getIngredients(), recipe.getResultItem()); + recipe.getRecipeHeight(), recipe.getIngredients(), recipe.getResultItem(RegistryAccess.EMPTY)); } } } diff --git a/src/main/java/com/direwolf20/buildinggadgets/common/network/PacketHandler.java b/src/main/java/com/direwolf20/buildinggadgets/common/network/PacketHandler.java index 1baff8b9..765f8c31 100644 --- a/src/main/java/com/direwolf20/buildinggadgets/common/network/PacketHandler.java +++ b/src/main/java/com/direwolf20/buildinggadgets/common/network/PacketHandler.java @@ -64,7 +64,7 @@ public static void register() { public static void sendTo(Object msg, ServerPlayer player) { if (!(player instanceof FakePlayer)) - HANDLER.sendTo(msg, player.connection.getConnection(), NetworkDirection.PLAY_TO_CLIENT); + HANDLER.sendTo(msg, player.connection.connection, NetworkDirection.PLAY_TO_CLIENT); } public static void sendToServer(Object msg) {