今天我们在模组中实现一个自定义盾牌
1.新建一个接口类IHasModel:
IHasModel.java
public interface IHasModel {
public void registerModels();
}
之后我们新建一个物品基类ItemBase来实现接口类:
ItemBase.java
package com.joy187.rejoymod.item;
import com.joy187.rejoymod.IdlFramework;
import com.joy187.rejoymod.init.ModCreativeTab;
import com.joy187.rejoymod.util.IHasModel;
import net.minecraft.client.resources.I18n;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import javax.annotation.Nonnull;
import java.util.List;
import java.util.UUID;
import static com.joy187.rejoymod.util.IDLSkillNBT.GetGuaEnhance;
public class ItemBase extends Item implements IHasModel {
private boolean overrideRarity = false;
private EnumRarity enumRarity = EnumRarity.COMMON;
protected boolean showGuaSocketDesc = false;
protected boolean shiftToShowDesc = false;
protected boolean use_flavor = false;
protected boolean useable = false;
private boolean isRangedWeapon = false;
protected boolean logNBT = false;
protected boolean glitters = false;
protected static final UUID OFF_HAND_MODIFIER = UUID.fromString("9271eeea-5f74-4e12-97b6-7cf3c60ef7a0");
protected static final UUID MAIN_HAND_MODIFIER = UUID.fromString("7d766720-0695-46c6-b320-44529f3da63f");
protected static final UUID POWER_UP_MODIFIER = UUID.fromString("dc8a0a25-24c4-43a9-bfc3-e31e431f4ebf");
protected static final UUID POWER_UP_MODIFIER_PERCENT = UUID.fromString("9236a0fe-8f9b-4ede-80a3-05386216d06f");
public ItemBase(String name, CreativeTabs tab)
{
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(tab);
ModItems.ITEMS.add(this);
InitItem();
}
public ItemBase(String name)
{
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(CreativeTabs.MISC);
ModItems.ITEMS.add(this);
InitItem();
}
protected ItemBase setGlitter()
{
glitters = true;
return this;
}
@SideOnly(Side.CLIENT)
public boolean hasEffect(ItemStack stack)
{
return stack.isItemEnchanted() || glitters;
}
public ItemBase setRangedWeapon()
{
isRangedWeapon = true;
return this;
}
public ItemBase setRarity(EnumRarity enumRarity)
{
overrideRarity = true;
this.enumRarity = enumRarity;
return

这篇博客介绍了如何在Java游戏中实现一个自定义的盾牌,从定义IHasModel接口开始,创建ItemBase和ItemAdaptingBase基类,然后是具体的盾牌类ItemREShield,包括其属性、行为和模型设置。最终,盾牌在游戏中的使用和抵挡攻击的效果得到了展示,并提供了模型和资源文件的配置说明。
最低0.47元/天 解锁文章
1410

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



