From dc3f90aeec468e5f03e5f63b26d3d1e7c5b02654 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Sat, 21 May 2022 11:21:49 +0300 Subject: [PATCH 1/5] Recipe sorting enhancement (#144) --- src/main/java/ru/bclib/recipes/BCLRecipeManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/bclib/recipes/BCLRecipeManager.java b/src/main/java/ru/bclib/recipes/BCLRecipeManager.java index 8a124041..23ca9a85 100644 --- a/src/main/java/ru/bclib/recipes/BCLRecipeManager.java +++ b/src/main/java/ru/bclib/recipes/BCLRecipeManager.java @@ -33,7 +33,7 @@ public class BCLRecipeManager { list.sort((v1, v2) -> { boolean b1 = v1.getId().getNamespace().equals(MINECRAFT); boolean b2 = v2.getId().getNamespace().equals(MINECRAFT); - return b1 ^ b2 ? (b1 ? 1 : -1) : 0; + return b1 ^ b2 ? (b1 ? 1 : -1) : v1.getId().compareTo(v2.getId()); }); return ImmutableList.copyOf(list); }); From e0890d6e25e14087365b38bdc0cddbf6b98a5a73 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 26 May 2022 17:06:27 +0300 Subject: [PATCH 2/5] Skip biomes that are missing in registry (#145) --- gradle.properties | 2 +- src/main/java/ru/bclib/api/biomes/BiomeAPI.java | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0bd3a726..db799acc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ loader_version= 0.13.3 fabric_version = 0.48.0+1.18.2 # Mod Properties -mod_version = 1.4.6 +mod_version = 1.5.0 maven_group = ru.bclib archives_base_name = bclib diff --git a/src/main/java/ru/bclib/api/biomes/BiomeAPI.java b/src/main/java/ru/bclib/api/biomes/BiomeAPI.java index 0a8e584c..46eaaaee 100644 --- a/src/main/java/ru/bclib/api/biomes/BiomeAPI.java +++ b/src/main/java/ru/bclib/api/biomes/BiomeAPI.java @@ -430,19 +430,28 @@ public class BiomeAPI { public static void loadFabricAPIBiomes() { FabricBiomesData.NETHER_BIOMES.forEach((key) -> { if (!hasBiome(key.location())) { - registerNetherBiome(BuiltinRegistries.BIOME.get(key)); + Optional> optional = BuiltinRegistries.BIOME.getHolder(key); + if (optional.isPresent()) { + registerNetherBiome(optional.get().value()); + } } }); FabricBiomesData.END_LAND_BIOMES.forEach((key, weight) -> { if (!hasBiome(key.location())) { - registerEndLandBiome(BuiltinRegistries.BIOME.getHolder(key).orElseThrow(), weight); + Optional> optional = BuiltinRegistries.BIOME.getHolder(key); + if (optional.isPresent()) { + registerEndLandBiome(optional.get(), weight); + } } }); FabricBiomesData.END_VOID_BIOMES.forEach((key, weight) -> { if (!hasBiome(key.location())) { - registerEndVoidBiome(BuiltinRegistries.BIOME.getOrCreateHolder(key), weight); + Optional> optional = BuiltinRegistries.BIOME.getHolder(key); + if (optional.isPresent()) { + registerEndVoidBiome(optional.get(), weight); + } } }); } From 3ebde1991d5ebc315b7d35e9065495eacf328193 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 26 May 2022 17:36:28 +0300 Subject: [PATCH 3/5] FrozableRegistry interface, ability to froze/unfroze MappedRegistry --- .../ru/bclib/interfaces/FrozableRegistry.java | 6 +++++ .../mixin/common/MappedRegistryMixin.java | 22 +++++++++++++++++++ src/main/resources/bclib.mixins.common.json | 1 + 3 files changed, 29 insertions(+) create mode 100644 src/main/java/ru/bclib/interfaces/FrozableRegistry.java create mode 100644 src/main/java/ru/bclib/mixin/common/MappedRegistryMixin.java diff --git a/src/main/java/ru/bclib/interfaces/FrozableRegistry.java b/src/main/java/ru/bclib/interfaces/FrozableRegistry.java new file mode 100644 index 00000000..a7cc7720 --- /dev/null +++ b/src/main/java/ru/bclib/interfaces/FrozableRegistry.java @@ -0,0 +1,6 @@ +package ru.bclib.interfaces; + +public interface FrozableRegistry { + void setFrozeState(boolean frozen); + boolean getFrozeState(); +} diff --git a/src/main/java/ru/bclib/mixin/common/MappedRegistryMixin.java b/src/main/java/ru/bclib/mixin/common/MappedRegistryMixin.java new file mode 100644 index 00000000..a0e1056e --- /dev/null +++ b/src/main/java/ru/bclib/mixin/common/MappedRegistryMixin.java @@ -0,0 +1,22 @@ +package ru.bclib.mixin.common; + +import net.minecraft.core.MappedRegistry; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import ru.bclib.interfaces.FrozableRegistry; + +@Mixin(MappedRegistry.class) +public class MappedRegistryMixin implements FrozableRegistry { + @Shadow + private boolean frozen; + + @Override + public void setFrozeState(boolean frozen) { + this.frozen = frozen; + } + + @Override + public boolean getFrozeState() { + return this.frozen; + } +} diff --git a/src/main/resources/bclib.mixins.common.json b/src/main/resources/bclib.mixins.common.json index 72906205..b7c12c55 100644 --- a/src/main/resources/bclib.mixins.common.json +++ b/src/main/resources/bclib.mixins.common.json @@ -30,6 +30,7 @@ "BlockBehaviourMixin", "BlockStateBaseMixin", "ChunkGeneratorMixin", + "MappedRegistryMixin", "WorldGenRegionMixin", "DiggerItemAccessor", "DimensionTypeMixin", From c03849706e88d74ece6cb23c7af6618a055c522e Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 26 May 2022 22:37:55 +0300 Subject: [PATCH 4/5] Small post-init change/fix --- src/main/java/ru/bclib/api/PostInitAPI.java | 12 +++--- .../bclib/world/biomes/BCLBiomeSettings.java | 38 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/main/java/ru/bclib/api/PostInitAPI.java b/src/main/java/ru/bclib/api/PostInitAPI.java index 4e8c4644..9edd34d2 100644 --- a/src/main/java/ru/bclib/api/PostInitAPI.java +++ b/src/main/java/ru/bclib/api/PostInitAPI.java @@ -55,10 +55,6 @@ public class PostInitAPI { * @param isClient {@code boolean}, {@code true} for client, {@code false} for server. */ public static void postInit(boolean isClient) { - if (postInitFunctions == null) { - return; - } - postInitFunctions.forEach(function -> function.accept(isClient)); Registry.BLOCK.forEach(block -> { processBlockCommon(block); if (isClient) { @@ -66,11 +62,15 @@ public class PostInitAPI { } }); - Registry.ITEM.forEach(item -> { processItemCommon(item); }); - postInitFunctions = null; + + if (postInitFunctions != null) { + postInitFunctions.forEach(function -> function.accept(isClient)); + postInitFunctions = null; + } + blockTags = null; itemTags = null; BiomeAPI.loadFabricAPIBiomes(); diff --git a/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java b/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java index 0b0ae7a8..4fd650ec 100644 --- a/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java +++ b/src/main/java/ru/bclib/world/biomes/BCLBiomeSettings.java @@ -4,7 +4,23 @@ import net.minecraft.world.level.biome.Biome; import ru.bclib.config.Configs; public class BCLBiomeSettings { - public static Builder createBCL(){ + float terrainHeight; + float fogDensity; + float genChance; + int edgeSize; + boolean vertical; + BCLBiome edge; + + protected BCLBiomeSettings() { + this.terrainHeight = 0.1F; + this.fogDensity = 1.0F; + this.genChance = 1.0F; + this.edgeSize = 0; + this.vertical = false; + this.edge = null; + } + + public static Builder createBCL() { return new Builder(); } @@ -13,9 +29,10 @@ public class BCLBiomeSettings { super(new BCLBiomeSettings()); } } + public static class CommonBuilder{ private final T storage; - CommonBuilder(T storage){ + CommonBuilder(T storage) { this.storage = storage; } @@ -92,23 +109,6 @@ public class BCLBiomeSettings { } } - protected BCLBiomeSettings(){ - this.terrainHeight = 0.1F; - this.fogDensity = 1.0F; - this.genChance = 1.0F; - this.edgeSize = 0; - this.vertical = false; - this.edge = null; - } - - float terrainHeight; - float fogDensity; - float genChance; - int edgeSize; - boolean vertical; - BCLBiome edge; - - /** * Getter for biome generation chance, used in {@link ru.bclib.world.generator.BiomePicker} and in custom generators. * @return biome generation chance as float. From 6a381eb91be006a0dd43f77b9d89f834f0ef08ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9?= <65257125+git-dopi@users.noreply.github.com> Date: Thu, 2 Jun 2022 13:09:18 +0300 Subject: [PATCH 5/5] Correction of remarks. --- src/main/resources/assets/bclib/lang/en_us.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/assets/bclib/lang/en_us.json b/src/main/resources/assets/bclib/lang/en_us.json index 977e7f06..dacbab53 100644 --- a/src/main/resources/assets/bclib/lang/en_us.json +++ b/src/main/resources/assets/bclib/lang/en_us.json @@ -38,7 +38,7 @@ "title.bclib.syncfiles.modlist": "Mod Information", "message.bclib.syncfiles.modlist": "The following shows the state of your installed installed Mods.\n\nAll Mods that do not exist locally, or have a different version on the Server will be synchronized.", "title.bclib.modmissmatch": "Mod Version Conflict", - "message.bclib.modmissmatch": "Some Mods on this client do not match the version of Mods on the Server.\n\nMismatching Mods can result in odd game behavior or crashes. Please make sue that you use the same mods as the server.", + "message.bclib.modmissmatch": "Some Mods on this client do not match the version of Mods on the Server.\n\nMismatching Mods can result in odd game behavior or crashes. Please make sure that you use the same mods as the server.", "message.bclib.datafixer.progress.waitbackup": "Waiting for Backup to finish. This may take a while!", "message.bclib.datafixer.progress.reading": "Reading Data", @@ -57,4 +57,4 @@ "title.config.bclib.client.rendering.netherThickFog": "Nether Thick Fog", "tooltip.bclib.place_on": "Survives on: %s" -} \ No newline at end of file +}