From 90964e2e5771b668a2c684288fcf977a404789a8 Mon Sep 17 00:00:00 2001 From: gnembon Date: Wed, 17 Nov 2021 20:45:25 +0100 Subject: [PATCH] 1.18-pre4 --- gradle.properties | 6 +++--- .../fakes/StructureFeatureInterface.java | 1 - .../carpet/mixins/StructureFeatureMixin.java | 19 +++++++++---------- .../java/carpet/script/utils/WorldTools.java | 4 ++-- .../java/carpet/settings/SettingsManager.java | 2 +- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/gradle.properties b/gradle.properties index c3c017bb..08aabc31 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,10 +4,10 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use # or better: https://modmuss50.me/fabric.html - minecraft_version=1.18-pre2 - yarn_mappings=1.18-pre2+build.1 + minecraft_version=1.18-pre4 + yarn_mappings=1.18-pre4+build.2 loader_version=0.12.5 - fabric_version=0.42.4+1.18 + fabric_version=0.42.6+1.18 # Mod Properties mod_version = 1.4.53 diff --git a/src/main/java/carpet/fakes/StructureFeatureInterface.java b/src/main/java/carpet/fakes/StructureFeatureInterface.java index b1316944..b0e6fe32 100644 --- a/src/main/java/carpet/fakes/StructureFeatureInterface.java +++ b/src/main/java/carpet/fakes/StructureFeatureInterface.java @@ -13,5 +13,4 @@ import net.minecraft.world.gen.feature.FeatureConfig; public interface StructureFeatureInterface { boolean plopAnywhere(ServerWorld world, BlockPos pos, ChunkGenerator generator, boolean wireOnly,Biome biome, C config); - boolean shouldStartPublicAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long l, ChunkPos chunkPos, C featureConfig, HeightLimitView heightLimitView); } diff --git a/src/main/java/carpet/mixins/StructureFeatureMixin.java b/src/main/java/carpet/mixins/StructureFeatureMixin.java index 44410106..3a559f16 100644 --- a/src/main/java/carpet/mixins/StructureFeatureMixin.java +++ b/src/main/java/carpet/mixins/StructureFeatureMixin.java @@ -3,6 +3,7 @@ package carpet.mixins; import carpet.CarpetSettings; import carpet.fakes.StructureFeatureInterface; import com.google.common.collect.ImmutableMultimap; +import net.minecraft.class_6834; import net.minecraft.server.world.ServerWorld; import net.minecraft.structure.StructurePiecesCollector; import net.minecraft.structure.StructurePiecesGenerator; @@ -32,6 +33,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import java.util.Objects; +import java.util.Optional; import java.util.Random; import java.util.function.Predicate; @@ -45,12 +47,14 @@ public abstract class StructureFeatureMixin implements //@Shadow protected abstract boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long worldSeed, ChunkRandom random, ChunkPos chunkPos, Biome biome, ChunkPos chunkPos2, C featureConfig, HeightLimitView heightLimitView); //@Shadow protected abstract boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long worldSeed, ChunkRandom random, ChunkPos pos, ChunkPos chunkPos, C featureConfig, HeightLimitView heightLimitView); - @Shadow protected abstract boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long worldSeed, ChunkPos chunkPos, C featureConfig, HeightLimitView heightLimitView); + //@Shadow protected abstract boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long worldSeed, ChunkPos chunkPos, C featureConfig, HeightLimitView heightLimitView); //@Shadow @Final private class_6622 field_34929; - @Shadow @Final private StructurePiecesGenerator piecesGenerator; + //@Shadow @Final private StructurePiecesGenerator piecesGenerator; + + @Shadow @Final private class_6834 piecesGenerator; @Override public boolean plopAnywhere(ServerWorld world, BlockPos pos, ChunkGenerator generator, boolean wireOnly, Biome biome, C config) @@ -138,9 +142,10 @@ public abstract class StructureFeatureMixin implements //if (config == null) // config = (C) new DefaultFeatureConfig(); - + Optional> optional = piecesGenerator.createGenerator(new class_6834.class_6835(generator, generator.getBiomeSource(), worldIn.getSeed(), chunkpos, config, worldIn, b -> true, worldIn.getStructureManager(), worldIn.getRegistryManager())); + if (optional.isEmpty()) return (StructureStart) StructureStart.DEFAULT; StructurePiecesCollector lv = new StructurePiecesCollector(); - piecesGenerator.generatePieces(lv, config, new StructurePiecesGenerator.Context(worldIn.getRegistryManager(), generator, worldIn.getStructureManager(), chunkpos, b -> true, worldIn, Util.make(new ChunkRandom(new AtomicSimpleRandom(RandomSeed.getSeed())), (chunkRandomx) -> { + optional.get().generatePieces(lv, new StructurePiecesGenerator.Context(config, generator, worldIn.getStructureManager(), chunkpos, worldIn, Util.make(new ChunkRandom(new AtomicSimpleRandom(RandomSeed.getSeed())), (chunkRandomx) -> { chunkRandomx.setCarverSeed(worldIn.getSeed(), chunkpos.x, chunkpos.z); }), worldIn.getSeed())); StructureStart structurestart1 = new StructureStart<>(thiss, chunkpos, 0, lv.toList()); @@ -159,10 +164,4 @@ public abstract class StructureFeatureMixin implements //long2objectmap.put(packedChunkPos, structurestart); return structurestart1; } - - @Override - public boolean shouldStartPublicAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long l, ChunkPos chunkPos, C featureConfig, HeightLimitView heightLimitView) - { - return shouldStartAt(chunkGenerator, biomeSource, l, chunkPos, featureConfig, heightLimitView); - } } diff --git a/src/main/java/carpet/script/utils/WorldTools.java b/src/main/java/carpet/script/utils/WorldTools.java index 529c459f..da1bd92a 100644 --- a/src/main/java/carpet/script/utils/WorldTools.java +++ b/src/main/java/carpet/script/utils/WorldTools.java @@ -54,7 +54,7 @@ public class WorldTools if (region == null) return false; return region.hasChunk(chpos); } - Path regionPath = new File(((MinecraftServerInterface )world.getServer()).getCMSession().getWorldDirectory(world.getRegistryKey()), "region").toPath(); + Path regionPath = new File(((MinecraftServerInterface )world.getServer()).getCMSession().getWorldDirectory(world.getRegistryKey()).toFile(), "region").toPath(); Path regionFilePath = regionPath.resolve(currentRegionName); File regionFile = regionFilePath.toFile(); if (!regionFile.exists()) @@ -65,7 +65,7 @@ public class WorldTools if (!deepcheck) return true; // not using cache in this case. try { - RegionFile region = new RegionFile(regionFile, regionPath.toFile(), true); + RegionFile region = new RegionFile(regionFile.toPath(), regionPath, true); if (regionCache != null) regionCache.put(currentRegionName, region); return region.hasChunk(chpos); } diff --git a/src/main/java/carpet/settings/SettingsManager.java b/src/main/java/carpet/settings/SettingsManager.java index ce8711ac..68c1d316 100644 --- a/src/main/java/carpet/settings/SettingsManager.java +++ b/src/main/java/carpet/settings/SettingsManager.java @@ -564,7 +564,7 @@ public class SettingsManager smartSuggestionList.add(listItem); } // Regular prefix matching, reference: CommandSource.suggestMatching - if (CommandSource.method_27136(query, listItem.toLowerCase())) { + if (CommandSource.shouldSuggest(query, listItem.toLowerCase())) { regularSuggestionList.add(listItem); } });