我们本次尝试让一种生物可以拥有多个类型(个性、外观等)。
1.我们首先准备一个枚举类EndVariant来代表不同的生物类型。
EndVariant.java
package com.joy187.fanfu.common.entity.variant;
import java.util.Arrays;
import java.util.Comparator;
public enum EndVariant {
//本次用两个类型作为演示,分别为种类0和种类1,还可以增加更多的类型进来
DEFAULT(0),
OTHER(1);
private static final EndVariant[] BY_ID = Arrays.stream(values()).sorted(Comparator.
comparingInt(EndVariant::getId)).toArray(EndVariant[]::new);
private final int id;
EndVariant(int id) {
this.id = id;
}
public int getId() {
return this.id;
}
public static EndVariant byId(int id) {
return BY_ID[id % BY_ID.length];
}
}
2.之后我们可以准备一个生物类EntityEdMan并与之前的枚举类进行结合。
EntityEdMan.java
package com.joy187.fanfu.common.entity;
import com.google.common.collect.ImmutableSet;
import com.joy187.fanfu.Utils;
import com.joy187.fanfu.common.entity.variant.EndVariant;
import net.minecraft.block.Blocks;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.MobEntity;
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
import net.minecraft.entity.ai.attributes.Attributes;
import net.minecraft.entity.merchant.villager.VillagerEntity;
import net.minecraft.entity.merchant.villager.VillagerProfession;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.nbt.CompoundNBT;
im

本文介绍了一种让游戏内的生物拥有多种类型的方法,通过定义枚举类代表不同生物类型,并在生物实体类中引用这些类型,使不同类型的生物具有独特属性和外观。
最低0.47元/天 解锁文章
3724

被折叠的 条评论
为什么被折叠?



