register locator registry

This commit is contained in:
dfsek 2021-07-18 15:43:09 -07:00
parent fc63798103
commit ac99d89e96

View File

@ -1,17 +1,28 @@
package com.dfsek.terra.addons.feature.locator; package com.dfsek.terra.addons.feature.locator;
import com.dfsek.tectonic.loading.object.ObjectTemplate;
import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.addon.TerraAddon; import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.addon.annotations.Addon; import com.dfsek.terra.api.addon.annotations.Addon;
import com.dfsek.terra.api.addon.annotations.Author; import com.dfsek.terra.api.addon.annotations.Author;
import com.dfsek.terra.api.addon.annotations.Version; import com.dfsek.terra.api.addon.annotations.Version;
import com.dfsek.terra.api.event.EventListener; import com.dfsek.terra.api.event.EventListener;
import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent;
import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.injection.annotations.Inject;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.structure.feature.Distributor;
import com.dfsek.terra.api.structure.feature.Locator;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.util.seeded.SeededBuilder;
import java.util.function.Supplier;
@Addon("config-locators") @Addon("config-locators")
@Version("1.0.0") @Version("1.0.0")
@Author("Terra") @Author("Terra")
public class LocatorAddon extends TerraAddon implements EventListener { public class LocatorAddon extends TerraAddon implements EventListener {
public static final TypeKey<Supplier<ObjectTemplate<SeededBuilder<Locator>>>> LOCATOR_TOKEN = new TypeKey<>() {};
@Inject @Inject
private TerraPlugin main; private TerraPlugin main;
@ -19,4 +30,8 @@ public class LocatorAddon extends TerraAddon implements EventListener {
public void initialize() { public void initialize() {
main.getEventManager().registerListener(this, this); main.getEventManager().registerListener(this, this);
} }
public void onPackLoad(ConfigPackPreLoadEvent event) {
CheckedRegistry<Supplier<ObjectTemplate<SeededBuilder<Locator>>>> locatorRegistry = event.getPack().getOrCreateRegistry(LOCATOR_TOKEN);
}
} }