Package net.glowstone.block.state

Source Code of net.glowstone.block.state.GlowCreatureSpawner

package net.glowstone.block.state;

import net.glowstone.block.GlowBlock;
import net.glowstone.block.GlowBlockState;
import net.glowstone.block.entity.TEMobSpawner;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.entity.CreatureType;
import org.bukkit.entity.EntityType;

public class GlowCreatureSpawner extends GlowBlockState implements CreatureSpawner {

    private EntityType spawned;
    private int delay;

    public GlowCreatureSpawner(GlowBlock block) {
        super(block);

        TEMobSpawner spawner = getTileEntity();
        spawned = spawner.getSpawning();
        delay = spawner.getDelay();
    }

    private TEMobSpawner getTileEntity() {
        return (TEMobSpawner) getBlock().getTileEntity();
    }

    @Override
    public boolean update(boolean force, boolean applyPhysics) {
        boolean result = super.update(force, applyPhysics);
        if (result) {
            TEMobSpawner spawner = getTileEntity();
            spawner.setSpawning(spawned);
            spawner.setDelay(delay);
            spawner.updateInRange();
        }
        return result;
    }

    @Override
    public int getDelay() {
        return delay;
    }

    @Override
    public void setDelay(int i) {
        if (i < 0) i = 0;
        delay = i;
    }

    ////////////////////////////////////////////////////////////////////////////
    // Spawned Type

    @Override
    public EntityType getSpawnedType() {
        return spawned;
    }

    @Override
    public void setSpawnedType(EntityType creatureType) {
        spawned = creatureType;
    }

    @Override
    public void setCreatureTypeByName(String creatureType) {
        EntityType type = EntityType.fromName(creatureType);
        if (type != null) {
            spawned = type;
        }
    }

    @Override
    public String getCreatureTypeName() {
        return spawned.getName();
    }

    ////////////////////////////////////////////////////////////////////////////
    // Deprecated CreatureType

    @Override
    @Deprecated
    public CreatureType getCreatureType() {
        return CreatureType.fromEntityType(spawned);
    }

    @Override
    @Deprecated
    public void setCreatureType(CreatureType creatureType) {
        spawned = creatureType.toEntityType();
    }

    @Override
    @Deprecated
    public String getCreatureTypeId() {
        return spawned.getName();
    }

    @Override
    @Deprecated
    public void setCreatureTypeId(String s) {
        CreatureType type = CreatureType.fromName(s);
        if (type != null) {
            spawned = type.toEntityType();
        }
    }

}
TOP

Related Classes of net.glowstone.block.state.GlowCreatureSpawner

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.