mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 22:31:52 +00:00
functional events in FabricAddon
This commit is contained in:
@@ -14,13 +14,9 @@ import com.dfsek.terra.api.command.CommandManager;
|
|||||||
import com.dfsek.terra.api.command.exception.MalformedCommandException;
|
import com.dfsek.terra.api.command.exception.MalformedCommandException;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.api.config.PluginConfig;
|
import com.dfsek.terra.api.config.PluginConfig;
|
||||||
import com.dfsek.terra.api.event.EventListener;
|
|
||||||
import com.dfsek.terra.api.event.EventManager;
|
import com.dfsek.terra.api.event.EventManager;
|
||||||
import com.dfsek.terra.api.event.annotations.Global;
|
|
||||||
import com.dfsek.terra.api.event.annotations.Priority;
|
|
||||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPostLoadEvent;
|
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPostLoadEvent;
|
||||||
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
|
||||||
import com.dfsek.terra.api.event.events.config.type.ConfigTypePostLoadEvent;
|
|
||||||
import com.dfsek.terra.api.handle.ItemHandle;
|
import com.dfsek.terra.api.handle.ItemHandle;
|
||||||
import com.dfsek.terra.api.handle.WorldHandle;
|
import com.dfsek.terra.api.handle.WorldHandle;
|
||||||
import com.dfsek.terra.api.lang.Language;
|
import com.dfsek.terra.api.lang.Language;
|
||||||
@@ -69,7 +65,6 @@ import net.minecraft.world.dimension.DimensionType;
|
|||||||
import net.minecraft.world.gen.decorator.Decorator;
|
import net.minecraft.world.gen.decorator.Decorator;
|
||||||
import net.minecraft.world.gen.decorator.NopeDecoratorConfig;
|
import net.minecraft.world.gen.decorator.NopeDecoratorConfig;
|
||||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||||
import net.minecraft.world.gen.feature.ConfiguredFeatures;
|
|
||||||
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
|
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
|
||||||
import net.minecraft.world.gen.feature.FeatureConfig;
|
import net.minecraft.world.gen.feature.FeatureConfig;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
@@ -288,16 +283,14 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
@Addon("Terra-Fabric")
|
@Addon("Terra-Fabric")
|
||||||
@Author("Terra")
|
@Author("Terra")
|
||||||
@Version("1.0.0")
|
@Version("1.0.0")
|
||||||
public final class FabricAddon extends TerraAddon implements EventListener {
|
public final class FabricAddon extends TerraAddon {
|
||||||
private final Map<ConfigPack, Pair<PreLoadCompatibilityOptions, PostLoadCompatibilityOptions>> templates = new HashMap<>();
|
private final Map<ConfigPack, Pair<PreLoadCompatibilityOptions, PostLoadCompatibilityOptions>> templates = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
eventManager.registerListener(this, this);
|
eventManager
|
||||||
}
|
.register(ConfigPackPreLoadEvent.class)
|
||||||
|
.then(event -> {
|
||||||
@Global
|
|
||||||
public void onPackLoad(ConfigPackPreLoadEvent event) {
|
|
||||||
PreLoadCompatibilityOptions template = new PreLoadCompatibilityOptions();
|
PreLoadCompatibilityOptions template = new PreLoadCompatibilityOptions();
|
||||||
try {
|
try {
|
||||||
event.loadTemplate(template);
|
event.loadTemplate(template);
|
||||||
@@ -317,12 +310,12 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
templates.put(event.getPack(), Pair.of(template, null));
|
templates.put(event.getPack(), Pair.of(template, null));
|
||||||
|
})
|
||||||
|
.global();
|
||||||
|
|
||||||
}
|
eventManager
|
||||||
|
.register(ConfigPackPostLoadEvent.class)
|
||||||
@Priority(Priority.HIGHEST)
|
.then(event -> {
|
||||||
@Global
|
|
||||||
public void createInjectionOptions(ConfigPackPostLoadEvent event) {
|
|
||||||
PostLoadCompatibilityOptions template = new PostLoadCompatibilityOptions();
|
PostLoadCompatibilityOptions template = new PostLoadCompatibilityOptions();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -332,24 +325,32 @@ public class TerraFabricPlugin implements TerraPlugin, ModInitializer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
templates.get(event.getPack()).setRight(template);
|
templates.get(event.getPack()).setRight(template);
|
||||||
}
|
})
|
||||||
|
.priority(100)
|
||||||
|
.global();
|
||||||
|
|
||||||
@Global
|
eventManager
|
||||||
public void injectBiomes(BiomeRegistrationEvent event) {
|
.register(BiomeRegistrationEvent.class)
|
||||||
|
.then(event -> {
|
||||||
logger.info("Registering biomes...");
|
logger.info("Registering biomes...");
|
||||||
Registry<Biome> biomeRegistry = event.getRegistryManager().get(Registry.BIOME_KEY);
|
Registry<Biome> biomeRegistry = event.getRegistryManager().get(Registry.BIOME_KEY);
|
||||||
configRegistry.forEach(pack -> pack.getCheckedRegistry(TerraBiome.class).forEach((id, biome) -> FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, new Identifier("terra", FabricUtil.createBiomeID(pack, id)), FabricUtil.createBiome(biome, pack, event.getRegistryManager())))); // Register all Terra biomes.
|
configRegistry.forEach(pack -> pack.getCheckedRegistry(TerraBiome.class).forEach((id, biome) -> FabricUtil.registerOrOverwrite(biomeRegistry, Registry.BIOME_KEY, new Identifier("terra", FabricUtil.createBiomeID(pack, id)), FabricUtil.createBiome(biome, pack, event.getRegistryManager())))); // Register all Terra biomes.
|
||||||
logger.info("Biomes registered.");
|
logger.info("Biomes registered.");
|
||||||
}
|
})
|
||||||
|
.global();
|
||||||
|
|
||||||
@Global
|
eventManager
|
||||||
public void initializePacks(GameInitializationEvent event) {
|
.register(GameInitializationEvent.class)
|
||||||
|
.then(event -> {
|
||||||
TerraFabricPlugin main = TerraFabricPlugin.getInstance();
|
TerraFabricPlugin main = TerraFabricPlugin.getInstance();
|
||||||
main.logger().info("Loading config packs...");
|
main.logger().info("Loading config packs...");
|
||||||
configRegistry.loadAll(TerraFabricPlugin.this);
|
configRegistry.loadAll(TerraFabricPlugin.this);
|
||||||
logger.info("Loaded packs.");
|
logger.info("Loaded packs.");
|
||||||
|
})
|
||||||
|
.global();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void injectTree(CheckedRegistry<Tree> registry, String id, ConfiguredFeature<?, ?> tree) {
|
private void injectTree(CheckedRegistry<Tree> registry, String id, ConfiguredFeature<?, ?> tree) {
|
||||||
try {
|
try {
|
||||||
registry.register(id, (Tree) tree);
|
registry.register(id, (Tree) tree);
|
||||||
|
|||||||
Reference in New Issue
Block a user