PaletteHolderLoader

This commit is contained in:
dfsek
2021-07-05 16:38:49 -07:00
parent d2298240ed
commit e7a2758722
3 changed files with 27 additions and 1 deletions

View File

@@ -1,5 +1,7 @@
package com.dfsek.terra.addons.biome;
import com.dfsek.terra.addons.biome.holder.PaletteHolder;
import com.dfsek.terra.addons.biome.holder.PaletteHolderLoader;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.addon.annotations.Addon;
@@ -19,6 +21,7 @@ public class BiomeConfigAddon extends TerraAddon implements EventListener {
@Override
public void initialize() {
main.getEventManager().registerListener(this, this);
main.applyLoader(PaletteHolder.class, new PaletteHolderLoader());
}
public void onPackLoad(ConfigPackPreLoadEvent event) {

View File

@@ -14,7 +14,6 @@ public class PaletteHolderBuilder {
return this;
}
@SuppressWarnings({"unchecked", "rawtypes", "RedundantSuppression"})
public PaletteHolder build() {
int min = FastMath.min(paletteMap.keySet().stream().min(Integer::compareTo).orElse(0), 0);

View File

@@ -0,0 +1,24 @@
package com.dfsek.terra.addons.biome.holder;
import com.dfsek.tectonic.exception.LoadException;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.loading.TypeLoader;
import com.dfsek.terra.api.world.generator.Palette;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
public class PaletteHolderLoader implements TypeLoader<PaletteHolder> {
@Override
public PaletteHolder load(Type type, Object o, ConfigLoader configLoader) throws LoadException {
List<Map<String, Integer>> palette = (List<Map<String, Integer>>) o;
PaletteHolderBuilder builder = new PaletteHolderBuilder();
for(Map<String, Integer> layer : palette) {
for(Map.Entry<String, Integer> entry : layer.entrySet()) {
builder.add(entry.getValue(), (Palette) configLoader.loadType(Palette.class, entry.getKey()));
}
}
return builder.build();
}
}