Registries are pretty cool, I guess

This commit is contained in:
dfsek
2020-11-26 22:05:18 -07:00
parent 16d8d56832
commit 013216ad8c
15 changed files with 152 additions and 33 deletions

View File

@@ -1,10 +0,0 @@
package com.dfsek.terra.biome;
import org.bukkit.block.data.BlockData;
import org.polydev.gaea.world.palette.Palette;
public class PaletteHolder {
public Palette<BlockData> getPalette(int y) {
return null; // TODO: implementation
}
}

View File

@@ -0,0 +1,16 @@
package com.dfsek.terra.biome.palette;
import org.bukkit.block.data.BlockData;
import org.polydev.gaea.world.palette.Palette;
public class PaletteHolder {
private final Palette<BlockData>[] palettes;
protected PaletteHolder(Palette<BlockData>[] palettes) {
this.palettes = palettes;
}
public Palette<BlockData> getPalette(int y) {
return palettes[y];
}
}

View File

@@ -0,0 +1,33 @@
package com.dfsek.terra.biome.palette;
import com.dfsek.terra.util.DataUtil;
import org.bukkit.block.data.BlockData;
import org.polydev.gaea.world.palette.Palette;
import java.util.Map;
import java.util.TreeMap;
public class PaletteHolderBuilder {
private final TreeMap<Integer, Palette<BlockData>> paletteMap = new TreeMap<>();
public PaletteHolderBuilder add(int y, Palette<BlockData> palette) {
paletteMap.put(y, palette);
return this;
}
@SuppressWarnings("unchecked")
public PaletteHolder build() {
Palette<BlockData>[] palettes = new Palette[paletteMap.lastKey() + 1];
for(int y = 0; y <= paletteMap.lastKey(); y++) {
Palette<BlockData> d = DataUtil.BLANK_PALETTE;
for(Map.Entry<Integer, Palette<BlockData>> e : paletteMap.entrySet()) {
if(e.getKey() >= y) {
d = e.getValue();
break;
}
}
palettes[y] = d;
}
return new PaletteHolder(palettes);
}
}