/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.pepsoft.worldpainter.layers; import org.pepsoft.util.PerlinNoise; import org.pepsoft.worldpainter.exporting.LayerExporter; import org.pepsoft.worldpainter.layers.exporters.TreesExporter; import org.pepsoft.worldpainter.layers.trees.TreeType; import java.io.IOException; import java.io.ObjectInputStream; import java.util.Random; /** * * @author pepijn */ public abstract class TreeLayer extends Layer { protected TreeLayer(String treeName, String treeDescription, int priority, char mnemonic) { super(treeName, "Generate " + treeDescription, DataSize.NIBBLE, priority, mnemonic); } protected TreeLayer(String treeName, String treeDescription, int priority) { super(treeName, "Generate " + treeDescription, DataSize.NIBBLE, priority); } @Override public TreesExporter<? extends TreeLayer> getExporter() { return new TreesExporter<>(this); } public int getDefaultMaxWaterDepth() { return 0; } public int getDefaultTreeChance() { return 1280; } public int getDefaultMushroomIncidence() { return MUSHROOM_INCIDENCE; } public float getDefaultMushroomChance() { return MUSHROOM_CHANCE; } public int getDefaultLayerStrengthCap() { return Integer.MAX_VALUE; } public abstract TreeType pickTree(Random random); private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); } private static final int MUSHROOM_INCIDENCE = 25; private static final float MUSHROOM_CHANCE = PerlinNoise.getLevelForPromillage(10); private static final long serialVersionUID = 2011032901L; }