Package net.glowstone.generator

Source Code of net.glowstone.generator.TreeGenerator

package net.glowstone.generator;

import java.util.Random;

import net.glowstone.generator.objects.trees.*;
import net.glowstone.util.BlockStateDelegate;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.TreeType;

public class TreeGenerator {

    private final BlockStateDelegate delegate;
    private boolean forceUpdate;

    public TreeGenerator() {
        this(new BlockStateDelegate());
        forceUpdate = true;
    }

    public TreeGenerator(BlockStateDelegate delegate) {
        this.delegate = delegate;
        forceUpdate = false;
    }

    public boolean generate(Random random, Location loc, TreeType type) {
        GenericTree tree;
        switch (type) {
            case TREE:
            case BIG_TREE:
                tree = new GenericTree(random, loc, delegate);
                break;
            case SWAMP:
                tree = new SwampTree(random, loc, delegate);
                break;
            case REDWOOD:
                tree = new RedwoodTree(random, loc, delegate);
                break;
            case TALL_REDWOOD:
                tree = new TallRedwoodTree(random, loc, delegate);
                break;
            case MEGA_REDWOOD:
                tree = new MegaRedwoodTree(random, loc, delegate);
                break;
            case BIRCH:
                tree = new BirchTree(random, loc, delegate);
                break;
            case TALL_BIRCH:
                tree = new TallBirchTree(random, loc, delegate);
                break;
            case JUNGLE:
                tree = new MegaJungleTree(random, loc, delegate);
                break;
            case SMALL_JUNGLE:
                tree = new JungleTree(random, loc, delegate);
                break;
            case COCOA_TREE:
                tree = new CocoaTree(random, loc, delegate);
                break;
            case JUNGLE_BUSH:
                tree = new JungleBush(random, loc, delegate);
                break;
            case ACACIA:
                tree = new AcaciaTree(random, loc, delegate);
                break;
            case DARK_OAK:
                tree = new DarkOakTree(random, loc, delegate);
                break;
            case BROWN_MUSHROOM:
                tree = new HugeMushroom(random, loc, Material.HUGE_MUSHROOM_1, delegate);
                break;
            case RED_MUSHROOM:
                tree = new HugeMushroom(random, loc, Material.HUGE_MUSHROOM_2, delegate);
                break;
            default:
                return false;
        }

        if (tree.generate()) {
            if (forceUpdate) {
                delegate.updateBlockStates();
            }
            return true;
        }

        return false;
    }
}
TOP

Related Classes of net.glowstone.generator.TreeGenerator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.