implement PaletteBlockShortcutAddon

This commit is contained in:
dfsek
2021-12-16 22:07:53 -07:00
parent 5726a07249
commit 011a915d38
3 changed files with 59 additions and 0 deletions

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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