diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java index 20f900b9b..9d59c686a 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java @@ -22,7 +22,7 @@ public class FabricEntryPoint implements ModInitializer { Decorator.NOPE.configure(NopeDecoratorConfig.INSTANCE)); private static final PlatformImpl TERRA_PLUGIN = new PlatformImpl(); - public static PlatformImpl getTerraPlugin() { + public static PlatformImpl getPlatform() { return TERRA_PLUGIN; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java index bc84d86e1..0271ce1f5 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java @@ -2,13 +2,19 @@ package com.dfsek.terra.fabric; import com.dfsek.tectonic.exception.LoadException; import com.dfsek.tectonic.loading.TypeRegistry; + +import com.dfsek.terra.fabric.util.FabricUtil; + import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; import org.apache.logging.log4j.LogManager; import java.io.File; +import java.util.HashSet; import java.util.Optional; +import java.util.Set; import com.dfsek.terra.AbstractPlatform; import com.dfsek.terra.api.util.Logger; @@ -28,6 +34,12 @@ public class PlatformImpl extends AbstractPlatform { private final WorldHandle worldHandle = new FabricWorldHandle(); private final Lazy dataFolder = Lazy.lazy(() -> new File(FabricLoader.getInstance().getConfigDir().toFile(), "Terra")); + private final Set worlds = new HashSet<>(); + + public void addWorld(ServerWorld world) { + worlds.add(world); + } + public PlatformImpl() { load(); } @@ -37,6 +49,7 @@ public class PlatformImpl extends AbstractPlatform { getTerraConfig().load(this); LangUtil.load(getTerraConfig().getLanguage(), this); // Load language. boolean succeed = getRawConfigRegistry().loadAll(this); + return succeed; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java index 49c1fa60a..ab5db3047 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/FabricChunkGeneratorWrapper.java @@ -46,7 +46,7 @@ public class FabricChunkGeneratorWrapper extends net.minecraft.world.gen.chunk.C config -> config.group( Codec.STRING.fieldOf("pack") .forGetter(ConfigPack::getID) - ).apply(config, config.stable(FabricEntryPoint.getTerraPlugin().getConfigRegistry()::get))); + ).apply(config, config.stable(FabricEntryPoint.getPlatform().getConfigRegistry()::get))); public static final Codec CODEC = RecordCodecBuilder.create( instance -> instance.group( diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java index c3f8608bc..6ea7b0de9 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraBiomeSource.java @@ -23,7 +23,7 @@ public class TerraBiomeSource extends BiomeSource { Codec.STRING.fieldOf("pack").forGetter(ConfigPack::getID) ) .apply(config, config.stable( - FabricEntryPoint.getTerraPlugin() + FabricEntryPoint.getPlatform() .getConfigRegistry()::get)))); public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( RegistryLookupCodec.of(Registry.BIOME_KEY).forGetter(source -> source.biomeRegistry), diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java index 597bc00f1..c16e0b325 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/generation/TerraGeneratorType.java @@ -28,7 +28,7 @@ public class TerraGeneratorType extends GeneratorType { public GeneratorOptions createDefaultOptions(DynamicRegistryManager.Impl registryManager, long seed, boolean generateStructures, boolean bonusChest) { GeneratorOptions options = super.createDefaultOptions(registryManager, seed, generateStructures, bonusChest); - FabricEntryPoint.getTerraPlugin().getEventManager().callEvent(new BiomeRegistrationEvent(registryManager)); // register biomes + FabricEntryPoint.getPlatform().getEventManager().callEvent(new BiomeRegistrationEvent(registryManager)); // register biomes return options; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/CommandManagerMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/CommandManagerMixin.java index 621d6938e..575be7572 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/CommandManagerMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/CommandManagerMixin.java @@ -38,7 +38,7 @@ public abstract class CommandManagerMixin { target = "Lcom/mojang/brigadier/CommandDispatcher;findAmbiguities(Lcom/mojang/brigadier/AmbiguityConsumer;)V", remap = false)) private void injectTerraCommands(CommandManager.RegistrationEnvironment environment, CallbackInfo ci) { - com.dfsek.terra.api.command.CommandManager manager = FabricEntryPoint.getTerraPlugin().getManager(); + com.dfsek.terra.api.command.CommandManager manager = FabricEntryPoint.getPlatform().getManager(); int max = manager.getMaxArgumentDepth(); RequiredArgumentBuilder arg = argument("arg" + (max - 1), StringArgumentType.word()); for(int i = 0; i < max; i++) { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java index c1fd971dd..55edfa5c7 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/ServerWorldMixin.java @@ -31,7 +31,8 @@ public abstract class ServerWorldMixin { boolean debugWorld, long l, List list, boolean bl, CallbackInfo ci) { if(chunkGenerator instanceof FabricChunkGeneratorWrapper) { ((FabricChunkGeneratorWrapper) chunkGenerator).setWorld((ServerWorld) (Object) this); - FabricEntryPoint.getTerraPlugin().logger().info("Registered world " + this); + FabricEntryPoint.getPlatform().addWorld((ServerWorld) (Object) this); + FabricEntryPoint.getPlatform().logger().info("Registered world " + this); } } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java index 5d781edc0..79ca8b718 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/ConfiguredFeatureMixin.java @@ -33,7 +33,7 @@ public abstract class ConfiguredFeatureMixin { @SuppressWarnings({ "ConstantConditions", "try" }) public boolean terra$plant(Vector3 l, World world, Random r) { String id = BuiltinRegistries.CONFIGURED_FEATURE.getId((ConfiguredFeature) (Object) this).toString(); - try(ProfileFrame ignore = FabricEntryPoint.getTerraPlugin().getProfiler().profile("fabric_tree:" + id.toLowerCase(Locale.ROOT))) { + try(ProfileFrame ignore = FabricEntryPoint.getPlatform().getProfiler().profile("fabric_tree:" + id.toLowerCase(Locale.ROOT))) { StructureWorldAccess fabricWorldAccess = ((StructureWorldAccess) world); ChunkGenerator generatorWrapper = ((ServerWorldAccess) world).toServerWorld().getChunkManager().getChunkGenerator(); return generate(fabricWorldAccess, generatorWrapper, r, new BlockPos(l.getBlockX(), l.getBlockY(), l.getBlockZ())); @@ -41,8 +41,8 @@ public abstract class ConfiguredFeatureMixin { } public Set terra$getSpawnable() { - return MaterialSet.get(FabricEntryPoint.getTerraPlugin().getWorldHandle().createBlockData("minecraft:grass_block"), - FabricEntryPoint.getTerraPlugin().getWorldHandle().createBlockData("minecraft:podzol"), - FabricEntryPoint.getTerraPlugin().getWorldHandle().createBlockData("minecraft:mycelium")); + return MaterialSet.get(FabricEntryPoint.getPlatform().getWorldHandle().createBlockData("minecraft:grass_block"), + FabricEntryPoint.getPlatform().getWorldHandle().createBlockData("minecraft:podzol"), + FabricEntryPoint.getPlatform().getWorldHandle().createBlockData("minecraft:mycelium")); } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/MobSpawnerBlockEntityMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/MobSpawnerBlockEntityMixin.java index 5b1d3709d..d187b0d16 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/MobSpawnerBlockEntityMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/implementations/block/state/MobSpawnerBlockEntityMixin.java @@ -97,7 +97,7 @@ public abstract class MobSpawnerBlockEntityMixin extends BlockEntity { public void terra$applyState(String state) { SerialState.parse(state).forEach((k, v) -> { switch(k) { - case "type" -> terra$setSpawnedType(FabricEntryPoint.getTerraPlugin().getWorldHandle().getEntity(v)); + case "type" -> terra$setSpawnedType(FabricEntryPoint.getPlatform().getWorldHandle().getEntity(v)); case "delay" -> terra$setDelay(Integer.parseInt(v)); case "min_delay" -> terra$setMinSpawnDelay(Integer.parseInt(v)); case "max_delay" -> terra$setMaxSpawnDelay(Integer.parseInt(v)); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java index 80f61320a..a71ed21dd 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/client/MinecraftClientMixin.java @@ -24,8 +24,8 @@ public class MinecraftClientMixin { // sorta arbitrary position, after mod init, before window opens shift = At.Shift.BEFORE)) public void injectConstructor(RunArgs args, CallbackInfo callbackInfo) { - FabricEntryPoint.getTerraPlugin().getEventManager().callEvent(new PlatformInitializationEvent()); - FabricEntryPoint.getTerraPlugin().getConfigRegistry().forEach(pack -> { + FabricEntryPoint.getPlatform().getEventManager().callEvent(new PlatformInitializationEvent()); + FabricEntryPoint.getPlatform().getConfigRegistry().forEach(pack -> { final GeneratorType generatorType = new TerraGeneratorType(pack); //noinspection ConstantConditions ((GeneratorTypeAccessor) generatorType).setTranslationKey(new LiteralText("Terra:" + pack.getID())); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java index 394f8bb8e..c80ee3ab2 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/GeneratorOptionsMixin.java @@ -37,7 +37,7 @@ public abstract class GeneratorOptionsMixin { return; } - PlatformImpl main = FabricEntryPoint.getTerraPlugin(); + PlatformImpl main = FabricEntryPoint.getPlatform(); String prop = properties.get("level-type").toString().trim(); if(prop.startsWith("Terra")) { diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java index ced401cdf..e5836d657 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/server/ServerMainMixin.java @@ -17,7 +17,7 @@ public class ServerMainMixin { target = "Lnet/minecraft/util/registry/DynamicRegistryManager;create()" + "Lnet/minecraft/util/registry/DynamicRegistryManager$Impl;")) private static void injectConstructor(String[] args, CallbackInfo ci) { - FabricEntryPoint.getTerraPlugin().getEventManager().callEvent( + FabricEntryPoint.getPlatform().getEventManager().callEvent( new PlatformInitializationEvent()); // Load during MinecraftServer construction, after other mods have registered blocks and stuff } }