diff --git a/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/PaletteBlockShortcutAddon.java b/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/PaletteBlockShortcutAddon.java new file mode 100644 index 000000000..0ed6ac1c3 --- /dev/null +++ b/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/PaletteBlockShortcutAddon.java @@ -0,0 +1,29 @@ +package com.dfsek.terra.addons.palette.shortcut.block; + +import com.dfsek.terra.addons.manifest.api.AddonInitializer; +import com.dfsek.terra.api.Platform; +import com.dfsek.terra.api.addon.BaseAddon; +import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.event.events.config.pack.ConfigPackPreLoadEvent; +import com.dfsek.terra.api.event.functional.FunctionalEventHandler; +import com.dfsek.terra.api.inject.annotations.Inject; +import com.dfsek.terra.api.world.chunk.generation.util.Palette; + + +public class PaletteBlockShortcutAddon implements AddonInitializer { + @Inject + private BaseAddon addon; + @Inject + private Platform platform; + + @Override + public void initialize() { + platform.getEventManager() + .getHandler(FunctionalEventHandler.class) + .register(addon, ConfigPackPreLoadEvent.class) + .then(event -> event.getPack() + .registerShortcut(Palette.class, "BLOCK", + (configLoader, input) -> new SingletonPalette(configLoader.loadType(BlockState.class, input)))) + .failThrough(); + } +} diff --git a/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/SingletonPalette.java b/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/SingletonPalette.java new file mode 100644 index 000000000..847c2c2b3 --- /dev/null +++ b/common/addons/palette-block-shortcut/src/main/java/com/dfsek/terra/addons/palette/shortcut/block/SingletonPalette.java @@ -0,0 +1,18 @@ +package com.dfsek.terra.addons.palette.shortcut.block; + +import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.world.chunk.generation.util.Palette; + + +public class SingletonPalette implements Palette { + private final BlockState blockState; + + public SingletonPalette(BlockState blockState) { + this.blockState = blockState; + } + + @Override + public BlockState get(int layer, double x, double y, double z, long seed) { + return blockState; + } +} diff --git a/common/addons/palette-block-shortcut/src/main/resources/terra.addon.yml b/common/addons/palette-block-shortcut/src/main/resources/terra.addon.yml new file mode 100644 index 000000000..2a43b1996 --- /dev/null +++ b/common/addons/palette-block-shortcut/src/main/resources/terra.addon.yml @@ -0,0 +1,12 @@ +schema-version: 1 +contributors: + - Terra contributors +id: palette-block-shortcut +version: @VERSION@ +entrypoints: + - "com.dfsek.terra.addons.palette.shortcut.block.PaletteBlockShortcutAddon" +website: + issues: https://github.com/PolyhedralDev/Terra/issues + source: https://github.com/PolyhedralDev/Terra + docs: https://github.com/PolyhedralDev/Terra/wiki +license: MIT License \ No newline at end of file