From c829115776ea4f52299603902de2a82bcc974582 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Sat, 21 Sep 2024 04:55:10 -0400 Subject: [PATCH 01/24] Fixed recipe condition encoding (#1992) --- .../com/gregtechceu/gtceu/api/recipe/RecipeCondition.java | 2 +- .../gtceu/common/recipe/condition/DimensionCondition.java | 2 +- .../gtceu/data/recipe/builder/GTRecipeBuilder.java | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeCondition.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeCondition.java index 5a0b7c052b..e8d6ecdeb4 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeCondition.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeCondition.java @@ -33,7 +33,7 @@ public abstract class RecipeCondition { public static < RC extends RecipeCondition> Products.P1, Boolean> isReverse(RecordCodecBuilder.Instance instance) { - return instance.group(Codec.BOOL.fieldOf("reverse").forGetter(val -> val.isReverse)); + return instance.group(Codec.BOOL.optionalFieldOf("reverse", false).forGetter(val -> val.isReverse)); } @Getter diff --git a/src/main/java/com/gregtechceu/gtceu/common/recipe/condition/DimensionCondition.java b/src/main/java/com/gregtechceu/gtceu/common/recipe/condition/DimensionCondition.java index 931b4854d4..31226a2f17 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/recipe/condition/DimensionCondition.java +++ b/src/main/java/com/gregtechceu/gtceu/common/recipe/condition/DimensionCondition.java @@ -103,7 +103,7 @@ public RecipeCondition createTemplate() { @Override public JsonObject serialize() { JsonObject config = super.serialize(); - config.addProperty("dim", dimension.toString()); + config.addProperty("dimension", dimension.toString()); return config; } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java index f20bc5bc6d..3292ec89e5 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/builder/GTRecipeBuilder.java @@ -1084,10 +1084,9 @@ public void toJson(JsonObject json) { if (!conditions.isEmpty()) { JsonArray array = new JsonArray(); for (RecipeCondition condition : conditions) { - JsonObject cond = new JsonObject(); - cond.addProperty("type", GTRegistries.RECIPE_CONDITIONS.getKey(condition.getType())); - cond.add("data", condition.serialize()); - array.add(cond); + var condJson = condition.serialize(); + condJson.addProperty("type", GTRegistries.RECIPE_CONDITIONS.getKey(condition.getType())); + array.add(condJson); } json.add("recipeConditions", array); } From eb89f6ea33f5996e5d7d9bde93d222daec6c9536 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Sat, 21 Sep 2024 21:36:53 -0400 Subject: [PATCH 02/24] Changed recipe decoding to not return immutables (#1995) --- gradle/scripts/publishing.gradle | 2 +- .../gtceu/api/codec/DispatchedMapCodec.java | 3 +-- .../gtceu/api/recipe/RecipeRunner.java | 26 +++++++++++-------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/gradle/scripts/publishing.gradle b/gradle/scripts/publishing.gradle index 5579fc7767..44e01da103 100644 --- a/gradle/scripts/publishing.gradle +++ b/gradle/scripts/publishing.gradle @@ -21,7 +21,7 @@ publishing { repositories { // Add repositories to publish to here. maven { - url "https://maven.firstdarkdev.xyz/snapshots" + url "https://maven.gtceu.com" credentials { username System.getenv("MAVEN_USER") password System.getenv("MAVEN_PASS") diff --git a/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java b/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java index f5e2b7b968..7d8abeda93 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java +++ b/src/main/java/com/gregtechceu/gtceu/api/codec/DispatchedMapCodec.java @@ -2,7 +2,6 @@ import com.gregtechceu.gtceu.GTCEu; -import com.google.common.collect.ImmutableMap; import com.mojang.datafixers.util.Pair; import com.mojang.datafixers.util.Unit; import com.mojang.serialization.*; @@ -44,7 +43,7 @@ public DataResult, T>> decode(final DynamicOps ops, final (result, entry) -> parseEntry(result, ops, entry, entries, failed), (r1, r2) -> r1.apply2stable((u1, u2) -> u1, r2)); - final Pair, T> pair = Pair.of(ImmutableMap.copyOf(entries), input); + final Pair, T> pair = Pair.of(new Object2ObjectArrayMap<>(entries), input); final T errors = ops.createMap(failed.build()); return finalResult.map(ignored -> pair).setPartial(pair) diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java index 599c2b861c..fb4c072e80 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeRunner.java @@ -110,17 +110,21 @@ private void fillContent(IRecipeCapabilityHolder holder, Map.Entry new ArrayList<>()).add(cont.content); + // Only roll if there's anything to roll for + if (!chancedContents.isEmpty()) { + int recipeTier = RecipeHelper.getPreOCRecipeEuTier(recipe); + int holderTier = holder.getChanceTier(); + var cache = this.chanceCaches.get(cap); + chancedContents = logic.roll(chancedContents, function, recipeTier, holderTier, cache, recipe.parallels, + cap); + + if (chancedContents == null) return; + for (Content cont : chancedContents) { + if (cont.slotName == null) { + this.content.content.add(cont.content); + } else { + this.content.slots.computeIfAbsent(cont.slotName, s -> new ArrayList<>()).add(cont.content); + } } } } From 09cf556b7e5a3daeb713f05df8c1c50207baac11 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Sat, 21 Sep 2024 21:43:28 -0400 Subject: [PATCH 03/24] Update publishing.gradle (#1996) --- gradle/scripts/publishing.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/scripts/publishing.gradle b/gradle/scripts/publishing.gradle index 44e01da103..76e7650e0a 100644 --- a/gradle/scripts/publishing.gradle +++ b/gradle/scripts/publishing.gradle @@ -24,7 +24,7 @@ publishing { url "https://maven.gtceu.com" credentials { username System.getenv("MAVEN_USER") - password System.getenv("MAVEN_PASS") + password System.getenv("MAVEN_PASSWORD") } } } From 32397c0ed9acc15fe254002414fca14e717039e0 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Sat, 21 Sep 2024 21:51:39 -0400 Subject: [PATCH 04/24] Fixed Publishing Workflows (#1997) --- .github/workflows/auto-build.yml | 2 +- .github/workflows/auto-publish.yml | 2 +- .github/workflows/changelog.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-build.yml b/.github/workflows/auto-build.yml index e96540aea7..fbd05675b6 100644 --- a/.github/workflows/auto-build.yml +++ b/.github/workflows/auto-build.yml @@ -13,7 +13,7 @@ jobs: build: runs-on: ubuntu-latest env: - MAVEN_PASS: ${{ secrets.MAVEN_PASS }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} MAVEN_USER: ${{ secrets.MAVEN_USER }} SNAPSHOT: true permissions: diff --git a/.github/workflows/auto-publish.yml b/.github/workflows/auto-publish.yml index 8e24226eba..5452b92798 100644 --- a/.github/workflows/auto-publish.yml +++ b/.github/workflows/auto-publish.yml @@ -27,7 +27,7 @@ jobs: build: runs-on: ubuntu-latest env: - MAVEN_PASS: ${{ secrets.MAVEN_PASS }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} MAVEN_USER: ${{ secrets.MAVEN_USER }} permissions: contents: write diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index fe09d26cf6..674911db19 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -12,7 +12,7 @@ jobs: build: runs-on: ubuntu-latest env: - MAVEN_PASS: ${{ secrets.MAVEN_PASS }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} MAVEN_USER: ${{ secrets.MAVEN_USER }} permissions: contents: write From 04e90efa3b6949a07a6bce74396d28b1a2fa9bf0 Mon Sep 17 00:00:00 2001 From: EasterFG <31056634+EasterFG@users.noreply.github.com> Date: Sun, 22 Sep 2024 12:46:34 +0800 Subject: [PATCH 05/24] fix MEInputHatch not showing tooltip (#1993) --- .../gui/widget/slot/AEConfigSlotWidget.java | 37 +++++++++++++------ .../widget/slot/AEItemConfigSlotWidget.java | 17 --------- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java index 25066b3d5f..71c10c62e2 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEConfigSlotWidget.java @@ -49,21 +49,34 @@ public AEConfigSlotWidget(Position pos, Size size, ConfigWidget widget, int inde public void drawInForeground(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { super.drawInForeground(graphics, mouseX, mouseY, partialTicks); IConfigurableSlot slot = this.parentWidget.getDisplay(this.index); - if (slot.getConfig() == null && mouseOverConfig(mouseX, mouseY)) { - List hoverStringList = new ArrayList<>(); - hoverStringList.add(Component.translatable("gtceu.gui.config_slot")); - if (parentWidget.isAutoPull()) { - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.auto_pull_managed")); - } else { - if (!parentWidget.isStocking()) { - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set")); - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.scroll")); + if (slot.getConfig() == null) { + if (mouseOverConfig(mouseX, mouseY)) { + List hoverStringList = new ArrayList<>(); + hoverStringList.add(Component.translatable("gtceu.gui.config_slot")); + if (parentWidget.isAutoPull()) { + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.auto_pull_managed")); } else { - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set_only")); + if (!parentWidget.isStocking()) { + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set")); + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.scroll")); + } else { + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.set_only")); + } + hoverStringList.add(Component.translatable("gtceu.gui.config_slot.remove")); } - hoverStringList.add(Component.translatable("gtceu.gui.config_slot.remove")); + graphics.renderTooltip(Minecraft.getInstance().font, hoverStringList, Optional.empty(), mouseX, mouseY); + } + } else { + GenericStack item = null; + if (mouseOverConfig(mouseX, mouseY)) { + item = slot.getConfig(); + } else if (mouseOverStock(mouseX, mouseY)) { + item = slot.getStock(); + } + if (item != null) { + graphics.renderTooltip(Minecraft.getInstance().font, GenericStack.wrapInItemStack(item), mouseX, + mouseY); } - graphics.renderTooltip(Minecraft.getInstance().font, hoverStringList, Optional.empty(), mouseX, mouseY); } } diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java index f9ed18b26d..ab122dbfb5 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/gui/widget/slot/AEItemConfigSlotWidget.java @@ -10,7 +10,6 @@ import com.lowdragmc.lowdraglib.utils.Position; import com.lowdragmc.lowdraglib.utils.Size; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.Rect2i; import net.minecraft.network.FriendlyByteBuf; @@ -88,22 +87,6 @@ private void drawSlots(GuiGraphics graphics, int mouseX, int mouseY, int x, int GuiTextures.SLOT_DARK.draw(graphics, mouseX, mouseY, x, y + 18, 18, 18); } - @OnlyIn(Dist.CLIENT) - @Override - public void drawInForeground(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float partialTicks) { - super.drawInForeground(graphics, mouseX, mouseY, partialTicks); - GenericStack item = null; - IConfigurableSlot slot = this.parentWidget.getDisplay(this.index); - if (mouseOverConfig(mouseX, mouseY)) { - item = slot.getConfig(); - } else if (mouseOverStock(mouseX, mouseY)) { - item = slot.getStock(); - } - if (item != null) { - graphics.renderTooltip(Minecraft.getInstance().font, GenericStack.wrapInItemStack(item), mouseX, mouseY); - } - } - @OnlyIn(Dist.CLIENT) @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { From 1ac9b94efc35679d5b2242ec04228c07f7307ca4 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Sat, 21 Sep 2024 22:48:15 -0600 Subject: [PATCH 06/24] Boiler Burnables, Chain Recipe and Crate Tags (#1998) --- .../gtceu/common/machine/storage/CrateMachine.java | 3 ++- .../gtceu/data/recipe/configurable/RecipeRemoval.java | 2 +- .../gregtechceu/gtceu/data/recipe/misc/FuelRecipes.java | 7 +++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java index 8b8df88dce..fcbe89b3f6 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/storage/CrateMachine.java @@ -127,12 +127,13 @@ public void onMachinePlaced(@Nullable LivingEntity player, ItemStack stack) { tag.remove("taped"); this.isTaped = false; } + stack.setTag(null); } @Override public void saveToItem(CompoundTag tag) { - IDropSaveMachine.super.saveToItem(tag); if (isTaped) { + IDropSaveMachine.super.saveToItem(tag); tag.putBoolean("taped", isTaped); tag.put("inventory", inventory.storage.serializeNBT()); } diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java index 614abe84ed..9e44650774 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/configurable/RecipeRemoval.java @@ -129,7 +129,6 @@ private static void hardIronRecipes(Consumer registry) { registry.accept(new ResourceLocation("minecraft:hopper")); registry.accept(new ResourceLocation("minecraft:iron_bars")); registry.accept(new ResourceLocation("minecraft:bucket")); - registry.accept(new ResourceLocation("minecraft:chain")); } private static void hardRedstoneRecipes(Consumer registry) { @@ -265,6 +264,7 @@ private static void hardMiscRecipes(Consumer registry) { registry.accept(new ResourceLocation("minecraft:brush")); registry.accept(new ResourceLocation("minecraft:recovery_compass")); registry.accept(new ResourceLocation("minecraft:spyglass")); + registry.accept(new ResourceLocation("minecraft:chain")); } private static void hardGlassRecipes(Consumer registry) { diff --git a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/FuelRecipes.java b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/FuelRecipes.java index 4a5177b97d..6f120c7a9d 100644 --- a/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/FuelRecipes.java +++ b/src/main/java/com/gregtechceu/gtceu/data/recipe/misc/FuelRecipes.java @@ -1,5 +1,6 @@ package com.gregtechceu.gtceu.data.recipe.misc; +import com.gregtechceu.gtceu.GTCEu; import com.gregtechceu.gtceu.api.fluids.store.FluidStorageKeys; import com.gregtechceu.gtceu.utils.GTUtil; @@ -27,7 +28,8 @@ public static void init(Consumer provider) { Set addedItems = new HashSet<>(); for (var fuelEntry : FurnaceBlockEntity.getFuel().entrySet()) { addedItems.add(fuelEntry.getKey()); - STEAM_BOILER_RECIPES.recipeBuilder(BuiltInRegistries.ITEM.getKey(fuelEntry.getKey())) + var resLoc = BuiltInRegistries.ITEM.getKey(fuelEntry.getKey()); + STEAM_BOILER_RECIPES.recipeBuilder(GTCEu.id(resLoc.getNamespace() + "_" + resLoc.getPath())) .inputItems(fuelEntry.getKey()) .duration(fuelEntry.getValue() * 12) // remove the * 12 if SteamBoilerMachine:240 is uncommented .save(provider); @@ -35,7 +37,8 @@ public static void init(Consumer provider) { for (Item item : BuiltInRegistries.ITEM) { var burnTime = GTUtil.getItemBurnTime(item); if (burnTime > 0 && !addedItems.contains(item)) { - STEAM_BOILER_RECIPES.recipeBuilder(BuiltInRegistries.ITEM.getKey(item)) + var resLoc = BuiltInRegistries.ITEM.getKey(item); + STEAM_BOILER_RECIPES.recipeBuilder(GTCEu.id(resLoc.getNamespace() + "_" + resLoc.getPath())) .inputItems(item) .duration(burnTime * 12) .save(provider); From 2d15bb6c37c8163a780723c7a61876a1af2d40a9 Mon Sep 17 00:00:00 2001 From: Spicierspace153 Date: Sun, 22 Sep 2024 20:34:21 -0600 Subject: [PATCH 07/24] fixes parallel for alloy smelters (#2004) Co-authored-by: Spicierspace153 <21964509+Spicierspace153@users.noreply.github.com> --- .../com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java index f935a43f1c..dbfa858207 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java @@ -246,8 +246,6 @@ public static GTRecipe multiSmelterParallel(MetaMachine machine, @NotNull GTReci // double durationForParallel = Math.max(1.0, FURNACE_DURATION * 2 * parallel.getSecond() / Math.max(1, // maxParallel * 1.0)); - recipe = parallel.getFirst() == recipe ? parallel.getFirst().copy() : parallel.getFirst(); - int parallelValue = parallel.getSecond(); long eut = 4 * (parallelValue / 8) / coilMachine.getCoilType().getEnergyDiscount(); result.init(eut, Math.max(1, 256 * parallelValue / maxParallel), parallelValue, params.getOcAmount()); From 5b2c4afe780969853e60cdbacdb456aff3517ea4 Mon Sep 17 00:00:00 2001 From: Zorbatron <46525467+Zorbatron@users.noreply.github.com> Date: Sun, 22 Sep 2024 23:23:39 -0400 Subject: [PATCH 08/24] Fix ME Pattern Buffer Proxies not having the hand animation when opening the GUI (#2005) --- .../ae2/machine/MEPatternBufferProxyPartMachine.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java index 2aee129f0d..aa3ada0532 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/ae2/machine/MEPatternBufferProxyPartMachine.java @@ -14,6 +14,7 @@ import com.gregtechceu.gtceu.integration.ae2.machine.trait.MEPatternBufferProxyRecipeHandler; import com.lowdragmc.lowdraglib.gui.modular.ModularUI; +import com.lowdragmc.lowdraglib.syncdata.annotation.DescSynced; import com.lowdragmc.lowdraglib.syncdata.annotation.Persisted; import com.lowdragmc.lowdraglib.syncdata.field.ManagedFieldHolder; @@ -49,6 +50,7 @@ public class MEPatternBufferProxyPartMachine extends TieredIOPartMachine impleme @Persisted @Getter + @DescSynced private BlockPos bufferPos; public MEPatternBufferProxyPartMachine(IMachineBlockEntity holder) { @@ -114,7 +116,7 @@ public MetaMachine self() { @Override public boolean shouldOpenUI(Player player, InteractionHand hand, BlockHitResult hit) { var buffer = getBuffer(); - return buffer != null && super.shouldOpenUI(player, hand, hit); + return buffer != null; } @Override From ebad95f45d339fbaa0e0fa598b53ee9b2707900c Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Mon, 23 Sep 2024 01:46:35 -0600 Subject: [PATCH 09/24] Wirecutter/wrench tool sounds (#2006) --- .../com/gregtechceu/gtceu/api/item/tool/GTToolType.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java b/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java index 6e80b727e6..3f189c7c38 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java +++ b/src/main/java/com/gregtechceu/gtceu/api/item/tool/GTToolType.java @@ -148,7 +148,7 @@ public class GTToolType { .attackDamage(1.0F).attackSpeed(-2.8F) .behaviors(BlockRotatingBehavior.INSTANCE, new EntityDamageBehavior(3.0F, IronGolem.class), ToolModeSwitchBehavior.INSTANCE)) - .sound(GTSoundEntries.WRENCH_TOOL) + .sound(GTSoundEntries.WRENCH_TOOL, true) .symbol('w') .build(); public static final GTToolType FILE = GTToolType.builder("file") @@ -164,7 +164,7 @@ public class GTToolType { .toolStats(b -> b.blockBreaking().crafting() .attackDamage(2.0F).attackSpeed(-2.4F) .sneakBypassUse().behaviors(RotateRailBehavior.INSTANCE)) - .sound(new ExistingSoundEntry(SoundEvents.ITEM_BREAK, SoundSource.BLOCKS)) + .sound(new ExistingSoundEntry(SoundEvents.ITEM_BREAK, SoundSource.BLOCKS), true) .symbol('c') .build(); public static final GTToolType SCREWDRIVER = GTToolType.builder("screwdriver") @@ -186,7 +186,7 @@ public class GTToolType { .harvestTag(TagUtil.createBlockTag("mineable/wire_cutter", false)) .toolStats(b -> b.blockBreaking().crafting().sneakBypassUse() .damagePerCraftingAction(4).attackDamage(-1.0F).attackSpeed(-2.4F)) - .sound(GTSoundEntries.WIRECUTTER_TOOL) + .sound(GTSoundEntries.WIRECUTTER_TOOL, true) .symbol('x') .build(); public static final GTToolType KNIFE = GTToolType.builder("knife") From 8ba38e19f13cf3fb7bab71a764ad933da28d4b4e Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Mon, 23 Sep 2024 14:49:10 -0600 Subject: [PATCH 10/24] I fix turbine (#2010) --- .../machine/multiblock/generator/LargeTurbineMachine.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java index 3aa735944d..33fca4e163 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/generator/LargeTurbineMachine.java @@ -123,7 +123,7 @@ public static GTRecipe recipeModifier(MetaMachine machine, @NotNull GTRecipe rec recipe.ingredientActions, recipe.data, recipe.duration, recipe.isFuel); - result.init(-eut, recipe.duration, parallelResult.getSecond(), params.getOcAmount()); + result.init(-eut, recipe.duration, 1, params.getOcAmount()); return recipe; } From b147de9c94e33be3d142da870bb422b9f56436dd Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:02:16 -0600 Subject: [PATCH 11/24] Fix Multi smelter not overclocking (#2008) --- .../gtceu/common/data/GTRecipeModifiers.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java index dbfa858207..03bb1057e1 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java +++ b/src/main/java/com/gregtechceu/gtceu/common/data/GTRecipeModifiers.java @@ -2,6 +2,7 @@ import com.gregtechceu.gtceu.api.GTValues; import com.gregtechceu.gtceu.api.capability.IParallelHatch; +import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability; import com.gregtechceu.gtceu.api.capability.recipe.IRecipeCapabilityHolder; import com.gregtechceu.gtceu.api.data.medicalcondition.MedicalCondition; import com.gregtechceu.gtceu.api.machine.MetaMachine; @@ -12,6 +13,8 @@ import com.gregtechceu.gtceu.api.recipe.GTRecipe; import com.gregtechceu.gtceu.api.recipe.OverclockingLogic; import com.gregtechceu.gtceu.api.recipe.RecipeHelper; +import com.gregtechceu.gtceu.api.recipe.chance.logic.ChanceLogic; +import com.gregtechceu.gtceu.api.recipe.content.Content; import com.gregtechceu.gtceu.api.recipe.content.ContentModifier; import com.gregtechceu.gtceu.api.recipe.logic.OCParams; import com.gregtechceu.gtceu.api.recipe.logic.OCResult; @@ -30,6 +33,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.List; import java.util.Optional; import java.util.function.BiFunction; import java.util.function.Function; @@ -243,17 +247,22 @@ public static GTRecipe multiSmelterParallel(MetaMachine machine, @NotNull GTReci var maxParallel = 32 * coilMachine.getCoilType().getLevel(); final int FURNACE_DURATION = 128; var parallel = GTRecipeModifiers.accurateParallel(machine, recipe, maxParallel, false); - // double durationForParallel = Math.max(1.0, FURNACE_DURATION * 2 * parallel.getSecond() / Math.max(1, - // maxParallel * 1.0)); int parallelValue = parallel.getSecond(); - long eut = 4 * (parallelValue / 8) / coilMachine.getCoilType().getEnergyDiscount(); - result.init(eut, Math.max(1, 256 * parallelValue / maxParallel), parallelValue, params.getOcAmount()); - /* - * recipe.duration = Math.max(1, 256 * parallelValue / maxParallel); - * recipe.tickInputs.put(EURecipeCapability.CAP, List.of(new Content(eut, - * ChanceLogic.getMaxChancedValue(), ChanceLogic.getMaxChancedValue(), 0, null, null))); - */ + long eut = 4 * Math.max(1, (parallelValue / 8) / coilMachine.getCoilType().getEnergyDiscount()); + int duration = (int) Math.max(1, FURNACE_DURATION * 2 * parallelValue / Math.max(1, maxParallel * 1.0)); + + recipe.duration = duration; + recipe.tickInputs.put(EURecipeCapability.CAP, List.of(new Content(eut, + ChanceLogic.getMaxChancedValue(), ChanceLogic.getMaxChancedValue(), + 0, null, null))); + + var re = RecipeHelper.applyOverclock(new OverclockingLogic((p, r, maxVoltage) -> { + OverclockingLogic.NON_PERFECT_OVERCLOCK.getLogic() + .runOverclockingLogic(params, result, maxVoltage); + }), recipe, coilMachine.getOverclockVoltage(), params, result); + recipe = recipe.copy(ContentModifier.multiplier(parallelValue), false); + return recipe; } return null; From 0acd903a7e62e5ca33ef852225e013ef44db0ac9 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:14:22 -0600 Subject: [PATCH 12/24] Optimized voltage tier lookups (#2007) --- .../com/gregtechceu/gtceu/api/GTValues.java | 12 ++++++- .../WorkableElectricMultiblockMachine.java | 3 +- .../gtceu/api/recipe/RecipeHelper.java | 4 +-- .../com/gregtechceu/gtceu/utils/GTUtil.java | 31 ++++++++++--------- 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java index a578c17d0d..a69521b6ee 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/GTValues.java +++ b/src/main/java/com/gregtechceu/gtceu/api/GTValues.java @@ -55,7 +55,7 @@ public class GTValues { * The Voltage Tiers. Use this Array instead of the old named Voltage Variables */ public static final long[] V = new long[] { 8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, 2097152, 8388608, - 33554432, 134217728, 536870912, Integer.MAX_VALUE }; + 33554432, 134217728, 536870912, 2147483648L }; /** * The Voltage Tiers divided by 2. @@ -75,6 +75,15 @@ public class GTValues { public static final int[] VHA = { 7, 16, 60, 240, 960, 3840, 15360, 61440, 245760, 983040, 3932160, 15728640, 62914560, 251658240, 1006632960 }; + /** + * The Voltage Tiers. Use this Array instead of the old named Voltage Variables + */ + public static final long[] VEX = new long[] { 8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, 2097152, 8388608, + 33554432, 134217728, 536870912, 2147483648L, 8589934592L, 34359738368L, 137438953472L, 549755813888L, + 2199023255552L, 8796093022208L, 35184372088832L, 140737488355328L, 562949953421312L, 2251799813685248L, + 9007199254740992L, 36028797018963968L, 144115188075855872L, 576460752303423488L, 2305843009213693952L, + Long.MAX_VALUE }; + public static final int ULV = 0; public static final int LV = 1; public static final int MV = 2; @@ -90,6 +99,7 @@ public class GTValues { public static final int UXV = 12; public static final int OpV = 13; public static final int MAX = 14; + public static final int MAX_TRUE = 30; public static final int[] ALL_TIERS = new int[] { ULV, LV, MV, HV, EV, IV, LuV, ZPM, UV, UHV, UEV, UIV, UXV, OpV, MAX }; diff --git a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java index 15c8109cfa..e518d25895 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java +++ b/src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java @@ -172,8 +172,7 @@ public long getOverclockVoltage() { if (amperage == 1) { // amperage is 1 when the energy is not exactly on a tier // the voltage for recipe search is always on tier, so take the closest lower tier - if (voltage > Integer.MAX_VALUE) return GTUtil.getVoltageFromFakeTier(GTUtil.getFakeVoltageTier(voltage)); - return GTValues.V[GTUtil.getFloorTierByVoltage(voltage)]; + return GTValues.VEX[GTUtil.getFloorTierByVoltage(voltage)]; } else { // amperage != 1 means the voltage is exactly on a tier // ignore amperage, since only the voltage is relevant for recipe search diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java index 75550ea8e9..565abf70d9 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java @@ -91,14 +91,12 @@ public static GTRecipe applyOverclock(OverclockingLogic logic, @NotNull GTRecipe * Then performs overclocking on the Recipe. * * @param recipe the recipe to overclock - * @return an int array of {OverclockedEUt, OverclockedDuration} */ public static void performOverclocking(OverclockingLogic logic, @NotNull GTRecipe recipe, long EUt, long maxOverclockVoltage, @NotNull OCParams params, @NotNull OCResult result) { int recipeTier = GTUtil.getTierByVoltage(EUt); - int maximumTier = maxOverclockVoltage < Integer.MAX_VALUE ? logic.getOverclockForTier(maxOverclockVoltage) : - GTUtil.getFakeVoltageTier(maxOverclockVoltage); + int maximumTier = logic.getOverclockForTier(maxOverclockVoltage); // The maximum number of overclocks is determined by the difference between the tier the recipe is running at, // and the maximum tier that the machine can overclock to. int numberOfOCs = maximumTier - recipeTier; diff --git a/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java b/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java index 81be0cd92e..9f20eec2e2 100644 --- a/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java +++ b/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java @@ -41,7 +41,6 @@ import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.Tags; -import com.google.common.math.LongMath; import com.mojang.blaze3d.platform.InputConstants; import com.mojang.datafixers.util.Pair; import org.jetbrains.annotations.NotNull; @@ -197,22 +196,17 @@ public static int nearestLesser(@NotNull long[] array, long value) { * tier that can handle it, {@code MAX} is returned. */ public static byte getTierByVoltage(long voltage) { - // Yes, yes we do need UHV+. - return (byte) Math.min(GTValues.MAX, nearestLesser(GTValues.V, voltage) + 1); - } - - public static int getFakeVoltageTier(long voltage) { - long a = voltage; - int b = 0; - while (a / 4L >= 8L) { - b++; - a /= 4L; + if (voltage > Integer.MAX_VALUE) { + return GTValues.MAX; } - return b; + return getOCTierByVoltage(voltage); } - public static long getVoltageFromFakeTier(int tier) { - return LongMath.pow(4L, tier + 1) * 2; + public static byte getOCTierByVoltage(long voltage) { + if (voltage <= GTValues.V[GTValues.ULV]) { + return GTValues.ULV; + } + return (byte) ((62 - Long.numberOfLeadingZeros(voltage - 1)) >> 1); } /** @@ -222,7 +216,14 @@ public static long getVoltageFromFakeTier(int tier) { * {@code ULV} if there's no tier below */ public static byte getFloorTierByVoltage(long voltage) { - return (byte) Math.max(GTValues.ULV, nearestLesserOrEqual(GTValues.V, voltage)); + if (voltage < GTValues.V[GTValues.ULV]) { + return GTValues.ULV; + } + if (voltage == GTValues.VEX[GTValues.MAX_TRUE]) { + return GTValues.MAX_TRUE; + } + + return (byte) ((60 - Long.numberOfLeadingZeros(voltage - 1)) >> 1); } public static ItemStack copy(ItemStack... stacks) { From 1a23c4ebf99e52057198cb511384acfa9ceb247d Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:05:11 -0400 Subject: [PATCH 13/24] 1.4.2 Release (#2011) --- .github/workflows/auto-publish.yml | 2 +- RELEASE.md | 34 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 RELEASE.md diff --git a/.github/workflows/auto-publish.yml b/.github/workflows/auto-publish.yml index 5452b92798..d531bc1dcd 100644 --- a/.github/workflows/auto-publish.yml +++ b/.github/workflows/auto-publish.yml @@ -75,7 +75,7 @@ jobs: name: GregTechCEu ${{ steps.var.outputs.version }} version: mc${{ steps.var.outputs.version }} version-type: ${{ inputs.releaseType }} - changelog-file: CHANGELOG.* + changelog-file: RELEASE.* loaders: | forge diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000000..40f3213df7 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,34 @@ +## What's Changed + +### Added +- Compressor recipe for snowballs to snow blocks ([#1969](https://github.com/GregTechCEu/GregTech-Modern/pull/1969)) +- Rubber Wood and Treated Wood boats ([#1980](https://github.com/GregTechCEu/GregTech-Modern/pull/1980)) + +### Fixed +- Coke Oven Hatches are now able to be automated again ([#1948](https://github.com/GregTechCEu/GregTech-Modern/pull/1948)) +- All sounds are now mono-audio (you will no longer be haunted by the global Research Station sound) ([#1966](https://github.com/GregTechCEu/GregTech-Modern/pull/1966)) +- Fixed Large Turbine logic which stopped them from running properly ([#1983](https://github.com/GregTechCEu/GregTech-Modern/pull/1983) and [#2010](https://github.com/GregTechCEu/GregTech-Modern/pull/2010)) +- Machine auto-export will now respect attached filter covers ([#1982](https://github.com/GregTechCEu/GregTech-Modern/pull/1982)) +- Quantum Tanks will no longer void fluids that don't match the stored fluid ([#1976](https://github.com/GregTechCEu/GregTech-Modern/pull/1976)) +- Quantum Chests will now properly drop items if your inventory is full rather than just voiding them ([#1976](https://github.com/GregTechCEu/GregTech-Modern/pull/1976)) +- The Multi Smelter now applies overclocks properly ([#2004](https://github.com/GregTechCEu/GregTech-Modern/pull/2004) and [#2008](https://github.com/GregTechCEu/GregTech-Modern/pull/2008)) +- ME Pattern Buffer Proxies now show a hand animation when opened ([#2005](https://github.com/GregTechCEu/GregTech-Modern/pull/2005)) +- Fixed ME parts not showing tooltips ([#1993](https://github.com/GregTechCEu/GregTech-Modern/pull/1993)) +- Rubber log variants now have the burnable tag ([#1914](https://github.com/GregTechCEu/GregTech-Modern/pull/1914)) +- Fixed solid boilers not being able to burn some vanilla furnace fuels ([#1998](https://github.com/GregTechCEu/GregTech-Modern/pull/1998)) +- Various texture fixes ([#1974](https://github.com/GregTechCEu/GregTech-Modern/pull/1974)) +- Other miscellaneous fixes + +### Changed +- **ADDON DEVS:** Recipe Conditions and the GTRegistry class have changed slightly - please take note ([#1955](https://github.com/GregTechCEu/GregTech-Modern/pull/1955)) +- **ADDON DEVS:** We now publish to the official GTCEu Maven - check the updated README for further information +- Chanced outputs for parallel recipes are now deterministic and guaranteed a minimum amount ([#1948](https://github.com/GregTechCEu/GregTech-Modern/pull/1948)) +- The highlight grid for tools and covers will now only appear if a possible interaction exists ([#1949](https://github.com/GregTechCEu/GregTech-Modern/pull/1949)) +- Optical Pipes can now hold covers ([#1953](https://github.com/GregTechCEu/GregTech-Modern/pull/1953)) + + +### Removed +- Covers that have no plan to be implemented have been removed ([#1961](https://github.com/GregTechCEu/GregTech-Modern/pull/1961)) + +\ +**Full Changelog found [here](https://github.com/GregTechCEu/GregTech-Modern/compare/1.20.1-1.4.1+patch.2...1.20.1-1.4.2)** \ No newline at end of file From 0eb17698c1db593eb059a35fbf7f3f574d4a698b Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:52:29 -0400 Subject: [PATCH 14/24] Version bump to 1.4.3 (#2014) --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 722d880041..e4d6257a80 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs = -Xmx6G # Mod Info mod_id = gtceu mod_name = GregTech -mod_version = 1.4.2 +mod_version = 1.4.3 mod_description = GregTech CE Unofficial, ported from 1.12.2 mod_license = LGPL-3.0 license mod_url = https://github.com/GregTechCEu/GregTech-Modern/ From 54bc84838bc54a2c9bfb392525c342ac0adc8f14 Mon Sep 17 00:00:00 2001 From: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> Date: Tue, 24 Sep 2024 09:31:41 -0600 Subject: [PATCH 15/24] fix off by one in oc finding (#2019) --- src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java b/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java index 9f20eec2e2..3a065f4742 100644 --- a/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java +++ b/src/main/java/com/gregtechceu/gtceu/utils/GTUtil.java @@ -223,7 +223,7 @@ public static byte getFloorTierByVoltage(long voltage) { return GTValues.MAX_TRUE; } - return (byte) ((60 - Long.numberOfLeadingZeros(voltage - 1)) >> 1); + return (byte) ((60 - Long.numberOfLeadingZeros(voltage)) >> 1); } public static ItemStack copy(ItemStack... stacks) { From ad1113c5a960af788ff675b3bc67005e61d25630 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Tue, 24 Sep 2024 17:27:05 -0400 Subject: [PATCH 16/24] Fix KubeJS deserialization for conditions (#2022) --- .../integration/kjs/recipe/components/GTRecipeComponents.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java index fc2524b1a2..6bc51fa278 100644 --- a/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java +++ b/src/main/java/com/gregtechceu/gtceu/integration/kjs/recipe/components/GTRecipeComponents.java @@ -207,7 +207,7 @@ public RecipeCondition read(RecipeJS recipe, Object from) { if (type != null) { RecipeCondition condition = type.factory.createDefault(); if (condition != null) { - return condition.deserialize(GsonHelper.getAsJsonObject(jsonObject, "data", new JsonObject())); + return condition.deserialize(jsonObject); } } } else if (from instanceof Tag tag) { From c5764e576ee8e34ecf9ca351b65f6056588df3d6 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Tue, 24 Sep 2024 19:29:05 -0400 Subject: [PATCH 17/24] Fix standard OC modifier for EUt outputs (#2023) --- .../java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java index 565abf70d9..11a0349b0b 100644 --- a/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java +++ b/src/main/java/com/gregtechceu/gtceu/api/recipe/RecipeHelper.java @@ -81,7 +81,7 @@ public static GTRecipe applyOverclock(OverclockingLogic logic, @NotNull GTRecipe } EUt = getOutputEUt(recipe); if (EUt > 0) { - performOverclocking(logic, recipe, EUt, maxOverclockVoltage, params, result); + performOverclocking(logic, recipe, -EUt, maxOverclockVoltage, params, result); } return recipe; } @@ -95,7 +95,7 @@ public static GTRecipe applyOverclock(OverclockingLogic logic, @NotNull GTRecipe public static void performOverclocking(OverclockingLogic logic, @NotNull GTRecipe recipe, long EUt, long maxOverclockVoltage, @NotNull OCParams params, @NotNull OCResult result) { - int recipeTier = GTUtil.getTierByVoltage(EUt); + int recipeTier = GTUtil.getTierByVoltage(Math.abs(EUt)); int maximumTier = logic.getOverclockForTier(maxOverclockVoltage); // The maximum number of overclocks is determined by the difference between the tier the recipe is running at, // and the maximum tier that the machine can overclock to. From 089dc2e9e9ca2484df374efc182a1f19a09d4cd8 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Tue, 24 Sep 2024 19:56:34 -0400 Subject: [PATCH 18/24] 1.4.3 Release (#2025) --- RELEASE.md | 33 +++------------------------------ 1 file changed, 3 insertions(+), 30 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 40f3213df7..518d151488 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,34 +1,7 @@ ## What's Changed -### Added -- Compressor recipe for snowballs to snow blocks ([#1969](https://github.com/GregTechCEu/GregTech-Modern/pull/1969)) -- Rubber Wood and Treated Wood boats ([#1980](https://github.com/GregTechCEu/GregTech-Modern/pull/1980)) - ### Fixed -- Coke Oven Hatches are now able to be automated again ([#1948](https://github.com/GregTechCEu/GregTech-Modern/pull/1948)) -- All sounds are now mono-audio (you will no longer be haunted by the global Research Station sound) ([#1966](https://github.com/GregTechCEu/GregTech-Modern/pull/1966)) -- Fixed Large Turbine logic which stopped them from running properly ([#1983](https://github.com/GregTechCEu/GregTech-Modern/pull/1983) and [#2010](https://github.com/GregTechCEu/GregTech-Modern/pull/2010)) -- Machine auto-export will now respect attached filter covers ([#1982](https://github.com/GregTechCEu/GregTech-Modern/pull/1982)) -- Quantum Tanks will no longer void fluids that don't match the stored fluid ([#1976](https://github.com/GregTechCEu/GregTech-Modern/pull/1976)) -- Quantum Chests will now properly drop items if your inventory is full rather than just voiding them ([#1976](https://github.com/GregTechCEu/GregTech-Modern/pull/1976)) -- The Multi Smelter now applies overclocks properly ([#2004](https://github.com/GregTechCEu/GregTech-Modern/pull/2004) and [#2008](https://github.com/GregTechCEu/GregTech-Modern/pull/2008)) -- ME Pattern Buffer Proxies now show a hand animation when opened ([#2005](https://github.com/GregTechCEu/GregTech-Modern/pull/2005)) -- Fixed ME parts not showing tooltips ([#1993](https://github.com/GregTechCEu/GregTech-Modern/pull/1993)) -- Rubber log variants now have the burnable tag ([#1914](https://github.com/GregTechCEu/GregTech-Modern/pull/1914)) -- Fixed solid boilers not being able to burn some vanilla furnace fuels ([#1998](https://github.com/GregTechCEu/GregTech-Modern/pull/1998)) -- Various texture fixes ([#1974](https://github.com/GregTechCEu/GregTech-Modern/pull/1974)) -- Other miscellaneous fixes - -### Changed -- **ADDON DEVS:** Recipe Conditions and the GTRegistry class have changed slightly - please take note ([#1955](https://github.com/GregTechCEu/GregTech-Modern/pull/1955)) -- **ADDON DEVS:** We now publish to the official GTCEu Maven - check the updated README for further information -- Chanced outputs for parallel recipes are now deterministic and guaranteed a minimum amount ([#1948](https://github.com/GregTechCEu/GregTech-Modern/pull/1948)) -- The highlight grid for tools and covers will now only appear if a possible interaction exists ([#1949](https://github.com/GregTechCEu/GregTech-Modern/pull/1949)) -- Optical Pipes can now hold covers ([#1953](https://github.com/GregTechCEu/GregTech-Modern/pull/1953)) - - -### Removed -- Covers that have no plan to be implemented have been removed ([#1961](https://github.com/GregTechCEu/GregTech-Modern/pull/1961)) +- Multiblock machines now calculate their tier correctly ([#2019](https://github.com/GregTechCEu/GregTech-Modern/pull/2019)) +- Recipe fixes 🔥 ([#2022](https://github.com/GregTechCEu/GregTech-Modern/pull/2022) and [#2023](https://github.com/GregTechCEu/GregTech-Modern/pull/2023)) -\ -**Full Changelog found [here](https://github.com/GregTechCEu/GregTech-Modern/compare/1.20.1-1.4.1+patch.2...1.20.1-1.4.2)** \ No newline at end of file +**Full Changelog found [here](https://github.com/GregTechCEu/GregTech-Modern/compare/1.20.1-1.4.2...1.20.1-1.4.3)** \ No newline at end of file From e3844ba943e2388c0856617ae4f8b473a0ae1b64 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Tue, 24 Sep 2024 19:57:29 -0400 Subject: [PATCH 19/24] Version bump to 1.4.4 (#2027) --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e4d6257a80..a39c79f3ee 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs = -Xmx6G # Mod Info mod_id = gtceu mod_name = GregTech -mod_version = 1.4.3 +mod_version = 1.4.4 mod_description = GregTech CE Unofficial, ported from 1.12.2 mod_license = LGPL-3.0 license mod_url = https://github.com/GregTechCEu/GregTech-Modern/ From cb82c66cc278ec132a03eea1edaf66c8bce570bc Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Tue, 24 Sep 2024 21:04:57 -0400 Subject: [PATCH 20/24] Version bump to 1.4.5 (#2029) --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a39c79f3ee..b9016ca249 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs = -Xmx6G # Mod Info mod_id = gtceu mod_name = GregTech -mod_version = 1.4.4 +mod_version = 1.4.5 mod_description = GregTech CE Unofficial, ported from 1.12.2 mod_license = LGPL-3.0 license mod_url = https://github.com/GregTechCEu/GregTech-Modern/ From 5e2f192b1990ec5e0f8293b1a1d30be6d00c6f13 Mon Sep 17 00:00:00 2001 From: kross <135918757+krossgg@users.noreply.github.com> Date: Thu, 26 Sep 2024 13:38:28 -0400 Subject: [PATCH 21/24] README changes (#2033) --- README.md | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index feb68c2f6b..579a95af16 100644 --- a/README.md +++ b/README.md @@ -11,18 +11,39 @@ GitHub -## Documentation / Wiki -[`Wiki`](https://gregtechceu.github.io/gtceu-modern-docs/) - - -## Dev Q&A -* [Todo List](https://github.com/GregTechCEu/GregTechCEu-1.19/issues/125) for potential contributors who are interested in this project -* [Dev Q&A](https://github.com/GregTechCEu/GregTechCEu-1.19/wiki/Dev-Q&A) illustrates common questions and answers related to development. - -## -## IDE Requirements (when using IntelliJ IDEA) - -For developing this mod, the [Lombok plugin](https://plugins.jetbrains.com/plugin/6317-lombok) for IntelliJ IDEA is strictly required. +### [Wiki](https://gregtechceu.github.io/gtceu-modern-docs/) + +## Developers + +To add GTCEu: Modern (GTM) to your project as a dependency, add the following to your `build.gradle`: +```groovy +repositories { + maven { + name = 'GTCEu Maven' + url = 'https://maven.gtceu.com' + content { + includeGroup 'com.gregtechceu.gtceu' + } + } +} +``` +Then, you can add it as a dependency, with `${mc_version}` being your Minecraft version target and `${gtm_version}` being the version of GTM you want to use. +```groovy +dependencies { + // Forge (see below block as well if you use Forge Gradle) + implementation fg.deobf("com.gregtechceu.gtceu:gtceu-${mc_version}:${gtm_version}") + + // NeoForge + implementation "com.gregtechceu.gtceu:gtceu-${mc_version}:${gtm_version}" + + // Architectury + modImplementation "com.gregtechceu.gtceu:gtceu-${mc_version}:${gtm_version}" +} +``` + +### IDE Requirements (when using IntelliJ IDEA) + +For contributing to this mod, the [Lombok plugin](https://plugins.jetbrains.com/plugin/6317-lombok) for IntelliJ IDEA is strictly required. Additionally, the [Minecraft Development plugin](https://plugins.jetbrains.com/plugin/8327-minecraft-development) is recommended. From ce41df161f689d6daeb284027939e1d9e7be901b Mon Sep 17 00:00:00 2001 From: screret <68943070+screret@users.noreply.github.com> Date: Thu, 26 Sep 2024 22:02:16 +0300 Subject: [PATCH 22/24] add some actions that'll come in handy later (#2034) --- .github/workflows/clean.yml | 22 +++++++++++++++ .github/workflows/manage-pr-labels.yml | 39 ++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 .github/workflows/clean.yml create mode 100644 .github/workflows/manage-pr-labels.yml diff --git a/.github/workflows/clean.yml b/.github/workflows/clean.yml new file mode 100644 index 0000000000..c18a35af0a --- /dev/null +++ b/.github/workflows/clean.yml @@ -0,0 +1,22 @@ +name: Clean Gradle + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: Setup Build + uses: ./.github/actions/build_setup + with: + update-cache: true + + - name: Clean + run: ./gradlew clean --build-cache diff --git a/.github/workflows/manage-pr-labels.yml b/.github/workflows/manage-pr-labels.yml new file mode 100644 index 0000000000..7dcddd620b --- /dev/null +++ b/.github/workflows/manage-pr-labels.yml @@ -0,0 +1,39 @@ +# Manages labels on PRs before allowing merging +name: Pull Request Labels + +on: + pull_request: + types: + - opened + - labeled + - unlabeled + - synchronize + +# if a second commit is pushed quickly after the first, cancel the first one's build +concurrency: + group: pr-labels-${{ github.head_ref }} + cancel-in-progress: true + +jobs: + Labels: + runs-on: ubuntu-latest + + permissions: + pull-requests: read # needed to utilize required-labels + + steps: + - name: Check for Merge-Blocking Labels # blocks merge if present + uses: mheap/github-action-required-labels@v5 + with: + mode: exactly + count: 0 + labels: 'status: do not merge' + exit_type: failure + + - name: Check for Required Labels # require at least one of these labels + uses: mheap/github-action-required-labels@v5 + with: + mode: minimum + count: 1 + labels: 'type: feature, type: bug, type: refactor, type: translation, ignore changelog' + exit_type: failure From 12462d69e5f60a2b43e753d2c63f4ec68479b5ba Mon Sep 17 00:00:00 2001 From: marisathewitch Date: Thu, 26 Sep 2024 23:03:47 +0400 Subject: [PATCH 23/24] Update for ru_RU (#2031) Co-authored-by: Western01 Co-authored-by: YoungOnion <39562198+YoungOnionMC@users.noreply.github.com> --- .../resources/assets/gtceu/lang/ru_ru.json | 116 ++++++++++++++++-- 1 file changed, 104 insertions(+), 12 deletions(-) diff --git a/src/main/resources/assets/gtceu/lang/ru_ru.json b/src/main/resources/assets/gtceu/lang/ru_ru.json index 125c39813a..cdbaa1028a 100644 --- a/src/main/resources/assets/gtceu/lang/ru_ru.json +++ b/src/main/resources/assets/gtceu/lang/ru_ru.json @@ -598,7 +598,7 @@ "block.gtceu.lv_output_hatch": "§7Жидкостный выходной люк (LV)§r", "block.gtceu.lv_packer": "Обычный упаковщик §r", "block.gtceu.lv_polarizer": "Обычный поляризатор §r", - "block.gtceu.lv_pump": "Обычная пампа §r", + "block.gtceu.lv_pump": "Обычная помпа §r", "block.gtceu.lv_rock_crusher": "Обычный камнелом §r", "block.gtceu.lv_sifter": "Обычный просеиватель §r", "block.gtceu.lv_steam_turbine": "Обычная паровая турбина §r", @@ -627,8 +627,8 @@ "block.gtceu.max_machine_hull": "Оболочка машины (§c§iMAX§r)", "block.gtceu.max_output_bus": "Предметный выходной люк (§c§lMAX§r)", "block.gtceu.max_output_hatch": "Жидкостный выходной люк (§c§lMAX§r)", - "block.gtceu.me_input_bus": "ME Накопительный предметный люк", - "block.gtceu.me_input_hatch": "ME Накопительный жидкостный люк", + "block.gtceu.me_input_bus": "ME предметный люк", + "block.gtceu.me_input_hatch": "ME жидкостный люк", "block.gtceu.me_output_bus": "ME Выходной предметный люк", "block.gtceu.me_output_hatch": "ME Выходной жидкостный люк", "block.gtceu.mega_blast_furnace": "Карусельная печь", @@ -2913,7 +2913,7 @@ "gtceu.multiblock.fusion_reactor.uv.description": "Термоядерный реактор модель 3 - это большая многоблочная структура использующаяся для термоядерного синтеза двух элементов в один. Может использовать UV+ энерг. разъемы. За каждый энерг. разъём, внутренний буфер увеличивается на 40млн. EU, максимум энергии для старта 640млн. EU.", "gtceu.multiblock.fusion_reactor.zpm.description": "Термоядерный реактор модель 2 - это большая многоблочная структура использующаяся для термоядерного синтеза двух элементов в один. Может использовать ZPM+ энерг. разъемы. За каждый энерг. разъём, внутренний буфер увеличивается на 20млн. EU, максимум энергии для старта 320млн. EU.", "gtceu.multiblock.generation_eu": "Генерирует:§a%s EU/t", - "gtceu.multiblock.idling": "Холостой ход.", + "gtceu.multiblock.idling": "§6Холостой ход.", "gtceu.multiblock.implosion_compressor.description": "Детонационный компрессор - это многоблочная структура, в которой используются взрывчатые вещества для превращения пыли в соответствующие камни.", "gtceu.multiblock.invalid_structure": "Неверная структура.", "gtceu.multiblock.invalid_structure.tooltip": "Этот блок является контроллером многоблочной структуры. для получения справки по созданию см. шаблон структуры в JEI.", @@ -3168,7 +3168,7 @@ "gtceu.universal.tooltip.requires_redstone": "§4Требуется сигнал Красного камня", "gtceu.universal.tooltip.silk_touch": "Шелковое касание: ", "gtceu.universal.tooltip.terrain_resist": "Эта машина не взорвется", - "gtceu.universal.tooltip.uses_per_hour_lubricant": "Использует §f%d мВ/ч §7Смазки когда работает", + "gtceu.universal.tooltip.uses_per_hour_lubricant": "Использует §f%d мВ/ч §6Смазки §7когда работает", "gtceu.universal.tooltip.uses_per_op": "Использует §f%d EU/операцию", "gtceu.universal.tooltip.uses_per_second": "Потребляет §f%d EU/с §7когда работает", "gtceu.universal.tooltip.uses_per_tick": "Потребляет §f%d EU/т §7когда работает", @@ -6567,8 +6567,8 @@ "behavior.portable_scanner.workable_progress": "Прогресс: %s с / %s с", "behavior.portable_scanner.workable_stored_energy": "Накопленная энергия: %s EU / %s EU", "block.gtceu.advanced_data_access_hatch": "Улучшенный люк доступа к данным", - "block.gtceu.computation_receiver_hatch": "Люк приема Данных Вычислений", - "block.gtceu.computation_transmitter_hatch": "Люк передачи Данных Вычислений", + "block.gtceu.computation_receiver_hatch": "Люк приема Данных вычислений", + "block.gtceu.computation_transmitter_hatch": "Люк передачи Данных вычислений", "block.gtceu.computer_casing": "Корпус компьютера", "block.gtceu.computer_heat_vent": "Компьютерный воздуходув", "block.gtceu.creative_data_access_hatch": "Творческий люк доступа к данным", @@ -6665,10 +6665,10 @@ "death.attack.gtceu.crowbar": "Произошёл полураспад %s благодаря %s", "death.attack.gtceu.drill_lv": "%s был засверлен 32V дрелью %s", "gtceu.jade.energy_stored": "%d / %d EU", - "gtceu.jade.progress_computation": "Вычисление: %s / %s", + "gtceu.jade.progress_computation": "%s / %s", "gtceu.jade.progress_sec": "%s / %s s", "gtceu.jade.progress_tick": "%s / %s т", - "gtceu.machine.computation_transmitter_hatch.tooltip": "Выход Данных Вычислений для многоблочной структуры", + "gtceu.machine.computation_transmitter_hatch.tooltip": "Выход Данных вычислений для многоблочной структуры", "gtceu.machine.data_access_hatch.tooltip.0": "Люк для данных для Многоблочной структуры", "gtceu.machine.data_access_hatch.tooltip.1": "Добавляет §a%s§7 слотов для Данных", "gtceu.machine.data_bank.tooltip.0": "Твой личный NAS", @@ -6678,7 +6678,7 @@ "gtceu.machine.data_receiver_hatch.tooltip": "Вход для Данных Исследований для многоблочной структуры", "gtceu.machine.data_transmitter_hatch.tooltip": "Выход для Данных Исследований для многоблочной структуры", "gtceu.machine.electric_blast_furnace.tooltip.0": "На каждые §f900K§7, превышающих температуру рецепта, перед разгоном используется §f95%%§7 энергии.", - "gtceu.machine.computation_receiver_hatch.tooltip": "Вход Данных Вычислений для многоблочной структуры", + "gtceu.machine.computation_receiver_hatch.tooltip": "Вход Данных вычислений для многоблочной структуры", "gtceu.machine.data_bank.tooltip.4": "Использует §f%s EU/t§7 для каждого Люка Данных/Опт. Данных когда они в цепочке.", "item.gtceu.opv_emitter": "Эмиттер (§9§lOpV§r)", "item.gtceu.portable_debug_scanner": "Портативный сканер", @@ -6708,7 +6708,7 @@ "gtceu.machine.network_switch.tooltip.0": "Ethernet-концентратор", "gtceu.machine.network_switch.tooltip.1": "Используется для маршрутизации и распределения §fВычислений§7.", "gtceu.machine.network_switch.tooltip.2": "Можно объединить любое кол-во §fПриемников§7 Вычислений в любое кол-во §fПередатчиков§7 Вычислений.", - "gtceu.machine.network_switch.tooltip.3": "Использует §f%s ЕУ/т за каждый Люк Данных Вычислений.", + "gtceu.machine.network_switch.tooltip.3": "Использует §f%s ЕУ/т за каждый Люк Данных вычислений.", "gtceu.machine.object_holder.tooltip": "Улучшенный держатель объекта для Станций исследований", "gtceu.machine.parallel_hatch_mk5.tooltip": "Позволяет запускать до 4 рецептов параллельно.", "gtceu.machine.parallel_hatch_mk6.tooltip": "Позволяет запускать до 16 рецептов параллельно.", @@ -7401,5 +7401,97 @@ "gtceu.tooltip.potion.each": " §e%s %s§r на §c%s§r тиков с §a%s%%§r шансом", "metaarmor.jetpack.flight.disable": "Джетпак: Полет выкл", "metaarmor.jetpack.flight.enable": "Джетпак: Полет вкл", - "config.jade.plugin_gtceu.primitive_pump": "[GTCEu] Примитивная помпа" + "config.jade.plugin_gtceu.primitive_pump": "[GTCEu] Примитивная помпа", + "block.gtceu.uiv_dual_input_hatch": "Двойной входной люк (§2UIV§r)", + "block.gtceu.uv_dual_input_hatch": "Двойной входной люк (§3UV§r)", + "block.gtceu.zpm_dual_input_hatch": "Двойной входной люк (§cZPM§r)", + "block.gtceu.uhv_dual_input_hatch": "Двойной входной люк (§4UHV§r)", + "block.gtceu.uxv_dual_input_hatch": "Двойной входной люк (§eUXV§r)", + "compass.node.gtceu.parts/dual_hatch": "Двойной люк", + "config.gtceu.option.enableMoreDualHatchAbility": "enableMoreDualHatchAbility", + "gtceu.gui.me_bus.auto_pull_button": "Нажмите для переключения авто. вытягивания предметов из МЕ сети", + "gtceu.gui.waiting_list": "Очередь на отправку:", + "gtceu.key.enable_boots": "Включить Прыгучесть", + "block.gtceu.luv_dual_input_hatch": "Двойной входной люк (§dLuV§r)", + "block.gtceu.luv_dual_output_hatch": "Двойной выходной люк (§dLuV§r)", + "block.gtceu.max_dual_input_hatch": "Двойной входной люк (§c§lMAX§r)", + "block.gtceu.max_dual_output_hatch": "Двойной выходной люк (§c§lMAX§r)", + "block.gtceu.me_stocking_input_bus": "ME Накопительный предметный люк", + "block.gtceu.me_pattern_buffer": "Буфер ME Шаблонов", + "block.gtceu.me_pattern_buffer_proxy": "Прокси-буфер МЕ Шаблонов", + "block.gtceu.me_stocking_input_hatch": "ME Накопительный жидкостный люк", + "block.gtceu.opv_dual_input_hatch": "Двойной входной люк (§9§lOpV§r)", + "block.gtceu.opv_dual_output_hatch": "Двойной выходной люк (§9§lOpV§r)", + "block.gtceu.uev_dual_input_hatch": "Двойной входной люк (§aUEV§r)", + "block.gtceu.uev_dual_output_hatch": "Двойной выходной люк (§aUEV§r)", + "block.gtceu.uhv_dual_output_hatch": "Двойной выходной люк (§4UHV§r)", + "block.gtceu.uiv_dual_output_hatch": "Двойной выходной люк (§2UIV§r)", + "block.gtceu.uv_dual_output_hatch": "Двойной выходной люк (§3UV§r)", + "block.gtceu.uxv_dual_output_hatch": "Двойной выходной люк (§eUXV§r)", + "block.gtceu.zpm_dual_output_hatch": "Двойной выходной люк (§cZPM§r)", + "compass.node.gtceu.items/basic_tape": "Обычная лента", + "compass.node.gtceu.misc/basic_tape": "Обычная лента", + "config.jade.plugin_gtceu.me_pattern_buffer": "[GTCEu] Буфер шаблонов", + "config.jade.plugin_gtceu.me_pattern_buffer_proxy": "[GTCEu] Прокси буфер шаблонов", + "gtceu.gui.config_slot.auto_pull_managed": "§4Отключено:§7 Управляется Авто-вытягиванием", + "gtceu.gui.config_slot.set_only": "§7Нажмите для §bНастройки§7.§r", + "gtceu.key.enable_jetpack": "Включить Реактивный ранец", + "gtceu.machine.dual_hatch.export.tooltip": "Предметный и Жидкостный вывод для Многоблочных структур", + "gtceu.machine.dual_hatch.import.tooltip": "Предметный и Жидкостный ввод для Многоблочных структур", + "gtceu.machine.me.copy_paste.tooltip": "ЛКМ с Флешкой для копирования, ПКМ для применения", + "gtceu.machine.me.fluid_import.data_stick.name": "§oНастройки ME жидкостного люка", + "gtceu.machine.me.import_copy_settings": "Настройки сохранены в Флешку", + "gtceu.machine.me.import_paste_settings": "Настройки из Флешки применены", + "gtceu.machine.me.item_import.data_stick.name": "§oНастройки ME предметного люка", + "gtceu.machine.me.stocking_auto_pull_disabled": "Авто-вытягивание выкл", + "gtceu.machine.me.stocking_auto_pull_enabled": "Авто-вытягивание вкл", + "gtceu.machine.me.stocking_fluid.tooltip.0": "Извлекает жидкости непосредственно из сети ME", + "gtceu.machine.me.stocking_fluid.tooltip.1": "Авто-вытягивание из МЕ сети будет автоматически пополнять первые 16 слотов жидкости в МЕ сети, обновляясь раз в 5 сек.", + "gtceu.machine.me.stocking_item.tooltip.0": "Извлекает предметы непосредственно из сети ME", + "gtceu.machine.me.stocking_item.tooltip.1": "Авто-вытягивание из МЕ сети будет автоматически пополнять первые 16 предметов в МЕ сети, обновляясь раз в 5 сек.", + "gtceu.machine.me_import_fluid_hatch.configs.tooltip": "Держит 16 жидкостей в наличии", + "gtceu.machine.me_import_item_hatch.configs.tooltip": "Держит 16 предметов в наличии", + "block.gtceu.pattern_buffer.desc.0": "§fПозволяет прямое использование §66AE2 хранилища шаблонов§f в Gregtech структурах.", + "block.gtceu.pattern_buffer_proxy.desc.2": "§fПусть фабрика растет!", + "gtceu.jei.bedrock_ore_diagram": "Схема руды коренной породы", + "entity.gtceu.chest_boat": "Лодка с сундуком", + "gtceu.dummy": "Заглушка", + "block.gtceu.pattern_buffer.desc.1": "§6Шаблоны AE2 могут использовать все что хранится в §6общих инвентарях§f.", + "block.gtceu.pattern_buffer.desc.2": "§fСоедини §6Прокси-буфер МЕ Шаблонов§f с помощью §bФлешки§f с другими машинами!", + "command.gtceu.dump_data.success": "Ресурсы %s скопированы из реестра %s в %s", + "command.gtceu.place_vein.failure": "Не удалось разместить жилу %s в позиции %s", + "block.gtceu.pattern_buffer_proxy.desc.0": "§fПозволяет соединить множество машин с одним §6Буфером ME Шаблонов§f.", + "block.gtceu.pattern_buffer_proxy.desc.1": "§fВсе подключенные прокси будут использовать шаблоны, хранящиеся в §6Исходном буфере§f.", + "command.gtceu.place_vein.success": "Жила %s размещена в позиции %s", + "gtceu.multiblock.active_transformer.average_in": "§bСред. Ввод: §f%s EU/т", + "material.gtceu.wax": "Воск", + "gtceu.multiblock.active_transformer.average_out": "§bСред. Вывод: §f%s EU/т", + "gtceu.multiblock.active_transformer.danger_enabled": "§c§bОПАСНО: Взрыв", + "gtceu.multiblock.active_transformer.max_input": "§аМакс. ввод: §f%s EU/т", + "gtceu.multiblock.active_transformer.max_output": "§аМакс. вывод: §f%s EU/т", + "gui.gtceu.refund_all.desc": "Вернуть хранимое содержимое в AE2", + "entity.gtceu.boat": "Лодка", + "gtceu.multiblock.exact_hatch_1.tooltip": "§fПринимает только §6Один§f Энергетический разьем.", + "gtceu.multiblock.universal.rotor_obstructed": "Ротор заблокирован!", + "gtceu.tooltip.proxy_bind": "§fПривязка Буфера Шаблонов к %s %s %s", + "gtceu.top.buffer_bound_pos": "Привязано к - X: %s, Y: %s, Z: %s", + "gtceu.top.proxies_bound": "Прокси буферов привязано: %s", + "gui.gtceu.rename.desc": "Переименовать Буфер шаблонов", + "gui.gtceu.share_inventory.desc.1": "Обеспечивает мощную автоматизацию за счет хранения катализаторов", + "gui.gtceu.share_inventory.desc.0": "Объединяет введенные предметы со всеми шаблонами в буфере!", + "gui.gtceu.share_inventory.title": "Общий инвентарь предметов", + "gui.gtceu.share_tank.desc.0": "Объединяет введенные жидкости, газы и прочее со всеми шаблонами в буфере!", + "gui.gtceu.share_tank.title": "Общий инвентарь емкостей", + "item.gtceu.basic_tape": "Лента", + "item.gtceu.basic_tape.tooltip": "Недостаточно крепкая для решения механических проблем", + "item.gtceu.rubber_chest_boat": "Каучуковая лодка с сундуком", + "item.gtceu.rubber_boat": "Каучуковая лодка", + "item.gtceu.treated_wood_boat": "Обработанная деревянная лодка", + "item.gtceu.treated_wood_chest_boat": "Обработанная деревянная лодка с сундуком", + "material.gtceu.echo_shard": "Осколок эха", + "material.gtceu.sculk": "Скалк", + "material.gtceu.hydrogen_iodide": "Йодид водорода", + "metaarmor.nms.boosted_jump.enabled": "NanoMuscle™ Suite: Прыгучесть включена", + "recipe.condition.adjacent_block.tooltip": "Блоки вокруг", + "metaarmor.nms.boosted_jump.disabled": "NanoMuscle™ Suite: Прыгучесть выключена" } From 41283f3ed6ea719f71abd6315d76fa6e6a874a95 Mon Sep 17 00:00:00 2001 From: iouter <62897714+iouter@users.noreply.github.com> Date: Fri, 27 Sep 2024 03:04:22 +0800 Subject: [PATCH 24/24] Update zh_cn.json (#2035) --- .../resources/assets/gtceu/lang/zh_cn.json | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/resources/assets/gtceu/lang/zh_cn.json b/src/main/resources/assets/gtceu/lang/zh_cn.json index e7e673caba..a4bc7f0631 100644 --- a/src/main/resources/assets/gtceu/lang/zh_cn.json +++ b/src/main/resources/assets/gtceu/lang/zh_cn.json @@ -491,7 +491,6 @@ "block.gtceu.iv_packer":"§9精英打包机§r", "block.gtceu.iv_parallel_hatch":"§9IV§r并行控制仓", "block.gtceu.iv_polarizer":"§9精英两极磁化机§r", - "block.gtceu.iv_processing_array":"§9IV§r处理阵列", "block.gtceu.iv_quantum_chest":"量子箱 V", "block.gtceu.iv_quantum_tank":"量子缸 V", "block.gtceu.iv_rock_crusher":"§9精英碎岩机§r", @@ -657,7 +656,6 @@ "block.gtceu.luv_packer":"§d精英打包机 II§r", "block.gtceu.luv_parallel_hatch":"§dLuV§r并行控制仓", "block.gtceu.luv_polarizer":"§d精英两极磁化机 II§r", - "block.gtceu.luv_processing_array":"§dLuV§r处理阵列", "block.gtceu.luv_quantum_chest":"量子箱 VI", "block.gtceu.luv_quantum_tank":"量子缸 VI", "block.gtceu.luv_rock_crusher":"§d精英碎岩机 II§r", @@ -1009,7 +1007,7 @@ "block.gtceu.orange_studs":"橙色橡胶混凝土", "block.gtceu.overworld_marker":"主世界", "block.gtceu.palladium_substation":"镀钯变电站", - "block.gtceu.pattern_buffer.desc.0":"§f多方块结构的集成式§6AE2样板供应器§f。", + "block.gtceu.pattern_buffer.desc.0":"§f对于GT多方块结构的集成式§6AE2样板供应器§f。", "block.gtceu.pattern_buffer.desc.1":"§fAE2样板可以利用§6共享库存§f中的一切。", "block.gtceu.pattern_buffer.desc.2":"§f使用§b闪存§f绑定§6ME样板总成镜像§f,以使机器相互连接!", "block.gtceu.pattern_buffer_proxy.desc.0":"§f可以将单单一个§6ME样板总成§f连接到众多机器。", @@ -1730,10 +1728,13 @@ "block.gtceu.zpm_world_accelerator":"§c精英世界加速器 III§r", "block.sterilizing_filter_casing.tooltip":"创造一个§a无菌§r环境", "block.surface_rock":"地表岩石(%s)", + "command.gtceu.dump_data.success":"已将注册表%2$s中的%1$s个资源转储到%3$s", "command.gtceu.medical_condition.get":"玩家%s有以下疾病:", "command.gtceu.medical_condition.get.element":"症状:%s§r %s秒", "command.gtceu.medical_condition.get.element.permanent":"症状:%s§r %s秒(永久)", "command.gtceu.medical_condition.get.empty":"玩家%s没有疾病。", + "command.gtceu.place_vein.failure":"无法放置%s矿脉于%s", + "command.gtceu.place_vein.success":"成功放置%s矿脉于%s", "compass.node.gtceu.batteries/energy_cluster":"能量簇", "compass.node.gtceu.batteries/energy_crystal":"能量水晶", "compass.node.gtceu.batteries/energy_module":"能量模块", @@ -1814,7 +1815,6 @@ "compass.node.gtceu.covers/computer_monitor_cover":"电脑屏幕覆盖板", "compass.node.gtceu.covers/conveyor":"传送带", "compass.node.gtceu.covers/cover":"什么是覆盖板?", - "compass.node.gtceu.covers/crafting_table_cover":"工作台覆盖板", "compass.node.gtceu.covers/ender_fluid_link_cover":"末影流体连接覆盖板", "compass.node.gtceu.covers/energy_detector_cover":"能量探测覆盖板", "compass.node.gtceu.covers/facade_cover":"伪装板", @@ -1896,7 +1896,6 @@ "compass.node.gtceu.iv/large_sifting_funnel":"大型筛选漏斗", "compass.node.gtceu.iv/large_solidifier":"大型固化器", "compass.node.gtceu.iv/large_wiremill":"大型线材轧机", - "compass.node.gtceu.iv/processing_array":"处理阵列", "compass.node.gtceu.luv/luv_fusion_reactor":"§dLuV§r核聚变反应堆", "compass.node.gtceu.luv/mega_blast_furnace":"巨型高炉", "compass.node.gtceu.luv/mega_vacuum_freezer":"巨型真空冷冻机", @@ -2101,7 +2100,6 @@ "compass.node.gtceu.multiblock/multiblock_tank":"多方块储罐", "compass.node.gtceu.multiblock/primitive_blast_furnace":"土高炉", "compass.node.gtceu.multiblock/primitive_pump":"原始水泵", - "compass.node.gtceu.multiblock/processing_array":"处理阵列", "compass.node.gtceu.multiblock/pyrolyse_oven":"热解炉", "compass.node.gtceu.multiblock/steam_grinder":"蒸汽碾磨机", "compass.node.gtceu.multiblock/steam_oven":"蒸汽熔炼炉", @@ -2588,6 +2586,8 @@ "enchantment.gtceu.disjunction.desc":"对末影生物施加虚弱和缓慢效果。", "enchantment.gtceu.hard_hammer.desc":"像格雷科技的锻造锤一样粉碎所采掘的方块。", "enchantment.hard_hammer":"锤碎", + "entity.gtceu.boat":"船", + "entity.gtceu.chest_boat":"运输船", "entity.gtceu.dynamite":"炸药", "entity.gtceu.industrial_tnt":"工业TNT", "entity.gtceu.powderbarrel":"火药桶", @@ -2835,7 +2835,7 @@ "gtceu.item_pipe.priority":"§9优先级:§f%d", "gtceu.jade.cleaned_this_second":"污染清理速率:%s/s", "gtceu.jade.energy_stored":"%d / %d EU", - "gtceu.jade.progress_computation":"计算进度:%s / %s", + "gtceu.jade.progress_computation":"%s / %s CWU", "gtceu.jade.progress_sec":"%s / %s s", "gtceu.jade.progress_tick":"%s / %s t", "gtceu.jei.bedrock_fluid.heavy_oil_deposit":"重油矿藏", @@ -2847,6 +2847,7 @@ "gtceu.jei.bedrock_fluid.raw_oil_deposit":"原油矿藏", "gtceu.jei.bedrock_fluid.salt_water_deposit":"盐水矿藏", "gtceu.jei.bedrock_fluid_diagram":"基岩流体生成信息", + "gtceu.jei.bedrock_ore_diagram":"基岩矿脉生成信息", "gtceu.jei.fluid.dep_amount_hover":"消耗后消耗的量", "gtceu.jei.fluid.dep_chance_hover":"开采流体矿脉时消耗的概率", "gtceu.jei.fluid.dep_yield_hover":"流体矿脉殆尽后能开采的最大流体量", @@ -3579,7 +3580,11 @@ "gtceu.mode.fluid":"§9流体§r", "gtceu.mode.item":"§6物品§r", "gtceu.muffler.recovery_tooltip":"§b回收概率:§f%d%%", - "gtceu.multiblock.advanced_processing_array.description":"处理阵列可将最多 64 个单方块机器集成在一个多方块结构中,以实现更高效的自动化。", + "gtceu.multiblock.active_transformer.average_in":"§b平均输入:§f%s EU/t", + "gtceu.multiblock.active_transformer.average_out":"§b平均输出:§f%s EU/t", + "gtceu.multiblock.active_transformer.danger_enabled":"§c§b危险:易爆", + "gtceu.multiblock.active_transformer.max_input":"§a最大输入:§f%s EU/t", + "gtceu.multiblock.active_transformer.max_output":"§c最大输出:§f%s EU/t", "gtceu.multiblock.assembly_line.description":"装配线是由5到16“片”组成的大型多方块结构。理论上,它是一个大型组装机,用于生产高级元件。", "gtceu.multiblock.blast_furnace.max_temperature":"热容:%s", "gtceu.multiblock.central_monitor.height":"屏幕高度:%d", @@ -3642,7 +3647,7 @@ "gtceu.multiblock.hpca.warning_structure_header":"结构警告:", "gtceu.multiblock.hpca.warning_temperature":"温度超过50℃,超过100℃时可能导致计算组件损坏!", "gtceu.multiblock.hpca.warning_temperature_active_cool":"充分利用主动冷却组件", - "gtceu.multiblock.idling":"待机。", + "gtceu.multiblock.idling":"§6待机。", "gtceu.multiblock.implosion_compressor.description":"聚爆压缩机是一种多方块结构,能够借助炸药将宝石粉转化为相应的宝石。", "gtceu.multiblock.invalid_structure":"结构无效。", "gtceu.multiblock.invalid_structure.tooltip":"该方块是多方块结构的控制器,请查看该方块的JEI界面以获取搭建图示。", @@ -3756,7 +3761,6 @@ "gtceu.multiblock.primitive_water_pump.extra2.3":"§7LV§r输出仓:4x", "gtceu.multiblock.primitive_water_pump.extra2.4":"", "gtceu.multiblock.primitive_water_pump.extra2.5":"当水泵所处的生物群系下雨时,总产水量将增加50%%。", - "gtceu.multiblock.processing_array.description":"处理阵列可将最多 16 个单方块机器集成在一个多方块结构中,以实现更高效的自动化。", "gtceu.multiblock.progress":"进度:%s%%", "gtceu.multiblock.pyrolyse_oven.description":"热解炉是一种用于将原木处理为木炭、杂酚油、灰烬或重油的多方块结构。", "gtceu.multiblock.pyrolyse_oven.speed":"处理速度:%s%%", @@ -3793,6 +3797,7 @@ "gtceu.multiblock.universal.problem.soft_mallet":"%s§7有什么东西卡住了。(§a软锤§r)", "gtceu.multiblock.universal.problem.wire_cutter":"%s§7有几根线烧焦了(§a剪线钳§r)", "gtceu.multiblock.universal.problem.wrench":"%s§7管道松动了。(§a扳手§r)", + "gtceu.multiblock.universal.rotor_obstructed":"转子进气口受阻!", "gtceu.multiblock.uv_fusion_reactor.description":"核聚变反应堆MK-III是台大型多方块结构,用于融合元素形成更重的元素。它仅可使用UV等级的能源仓。每个能源仓可增加40MEU的能量缓存,最大能量缓存为640MEU。", "gtceu.multiblock.vacuum_freezer.description":"真空冷冻机是一种多方块结构,主要用于将热锭冷却为成品锭。此外,它还可以冻结水等其他物质。", "gtceu.multiblock.validation_failed":"输入仓/输出仓数量无效。", @@ -4169,7 +4174,6 @@ "item.gtceu.cpu_chip.tooltip":"§7中央处理器", "item.gtceu.cpu_wafer":"CPU晶圆", "item.gtceu.cpu_wafer.tooltip":"§7中央处理器原料", - "item.gtceu.crafting_table_cover":"工作台覆盖板", "item.gtceu.crafting_table_cover.tooltip":"§7安装在机器侧面的§f覆盖板§7式§f高级工作台§7。", "item.gtceu.credit_casting_mold":"模具(硬币)", "item.gtceu.credit_casting_mold.tooltip":"§7用来制作硬币的安全模具(别把它弄丢了!)", @@ -4206,7 +4210,6 @@ "item.gtceu.data_stick":"闪存", "item.gtceu.data_stick.tooltip":"§7小容量的数据存储器", "item.gtceu.diamond_grinding_head":"钻石研磨头", - "item.gtceu.digital_interface_cover":"数字接口覆盖板", "item.gtceu.diode":"二极管", "item.gtceu.diode.tooltip":"§7基础电子元件", "item.gtceu.doge_coin":"狗狗币", @@ -4715,6 +4718,8 @@ "item.gtceu.rotor_casting_mold.tooltip":"§7用来制作转子的模具", "item.gtceu.rotor_extruder_mold":"模头(转子)", "item.gtceu.rotor_extruder_mold.tooltip":"§7用来制作转子的模头", + "item.gtceu.rubber_boat":"橡胶木船", + "item.gtceu.rubber_chest_boat":"橡胶木运输船", "item.gtceu.rubber_gloves":"橡胶手套", "item.gtceu.salt_dust":"盐", "item.gtceu.saw_extruder_mold.tooltip":"§7用来制作锯的模头", @@ -4927,7 +4932,9 @@ "item.gtceu.tool.wrench.tooltip":"§8按住左键以拆卸机器", "item.gtceu.transistor":"晶体管", "item.gtceu.transistor.tooltip":"§7基础电子元件", + "item.gtceu.treated_wood_boat":"防腐木船", "item.gtceu.treated_wood_bolt":"短防腐木棍", + "item.gtceu.treated_wood_chest_boat":"防腐木运输船", "item.gtceu.treated_wood_dust":"防腐木浆", "item.gtceu.treated_wood_plate":"防腐木板", "item.gtceu.treated_wood_rod":"防腐木棍", @@ -5027,7 +5034,6 @@ "item.gtceu.white_dye_spray_can":"喷漆罐(白色)", "item.gtceu.wire_extruder_mold":"模头(导线)", "item.gtceu.wire_extruder_mold.tooltip":"§7用来制作导线的模头", - "item.gtceu.wireless_digital_interface_cover":"无线数字接口覆盖板", "item.gtceu.wood_bolt":"短木棍", "item.gtceu.wood_dust":"木浆", "item.gtceu.wood_plate":"木板", @@ -5234,7 +5240,7 @@ "material.gtceu.dubnium":"钅杜", "material.gtceu.duranium":"铿铀", "material.gtceu.dysprosium":"镝", - "material.gtceu.echo":"回响", + "material.gtceu.echo_shard":"回响碎片", "material.gtceu.einsteinium":"锿", "material.gtceu.electrotine":"蓝石", "material.gtceu.electrum":"琥珀金",