All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.nukkit.entity.EntityVariant Maven / Gradle / Ivy

package cn.nukkit.entity;

import cn.nukkit.api.PowerNukkitXOnly;
import cn.nukkit.api.Since;
import cn.nukkit.entity.ai.memory.CoreMemoryTypes;
import cn.nukkit.utils.Utils;

/**
 * 实现这个接口的实体拥有变种属性
 */
@PowerNukkitXOnly
@Since("1.19.80-r3")
public interface EntityVariant extends EntityComponent {
    default int getVariant() {
        return getMemoryStorage().get(CoreMemoryTypes.VARIANT);
    }

    default void setVariant(int variant) {
        getMemoryStorage().put(CoreMemoryTypes.VARIANT, variant);
    }

    default boolean hasVariant() {
        return getMemoryStorage().notEmpty(CoreMemoryTypes.VARIANT);
    }

    /**
     * 随机一个变种值
     */
    default int randomVariant() {
        return getAllVariant()[Utils.rand(0, getAllVariant().length - 1)];
    }

    /**
     * 定义全部可能的变种
     */
    int[] getAllVariant();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy