(Dieser Artikel gehört zu einer Reihe von Kommentaren)
Erster Artikel: Einführung Vorheriger Artikel: 4. Tools hinzufügen Nächster Artikel: 6. Rezept hinzufügen
In 4. Hinzufügen von Werkzeugen wurden Werkzeuge einschließlich Schwertern hinzugefügt. Das nächste, was ich will, nachdem ich eine Waffe bekommen habe, ist Rüstung! Lassen Sie uns diesmal eine Rüstung hinzufügen.
ItemList.java
//...
public class ItemList {
public static Item ExampleHelmet = new ArmorItem(ArmorMaterial.IRON, EquipmentSlotType.HEAD, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_helmet"));
public static Item ExampleChestplate = new ArmorItem(ArmorMaterial.IRON, EquipmentSlotType.CHEST, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_chestplate"));
public static Item ExampleLeggings = new ArmorItem(ArmorMaterial.IRON, EquipmentSlotType.LEGS, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_leggings"));
public static Item ExampleBoots = new ArmorItem(ArmorMaterial.IRON, EquipmentSlotType.FEET, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_boots"));
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
event.getRegistry().registerAll(
ExampleHelmet,
ExampleChestplate,
ExampleLeggings,
ExampleBoots
);
}
}
Anstatt eine separate Klasse zu erstellen, deklarieren Sie diesmal die Klasse "ArmorItem" direkt in "ItemList". Die Argumente sind in der Reihenfolge Material, Position des Steckplatzes und Elementeigenschaften.
Ich werde detaillierte Einstellungen vornehmen.
\src\main\resources\assets\example_mod
├ blockstates
├ lang
│ └ en_us.json
│ └ ja_jp.json
├ models
│ ├ block
│ └ item
│ ├ example_helmet.json
│ ├ example_chestplate.json
│ ├ example_leggings.json
│ └ example_boots.json
└ textures
├ blocks
└ items
├ example_helmet.png
├ example_chestplate.png
├ example_leggings.png
└ example_boots.png
en_us.json
{
"item.example_mod.example_helmet": "Example Helmet",
"item.example_mod.example_chestplate": "Example Chestplate",
"item.example_mod.example_leggings": "Example Leggings",
"item.example_mod.example_boots": "Example Boots"
}
ja_jp.json
{
"item.example_mod.example_helmet": "Beispiel Helm",
"item.example_mod.example_chestplate": "Beispiel Brustplatte",
"item.example_mod.example_leggings": "Beispiel Leggings",
"item.example_mod.example_boots": "Beispiel Stiefel"
}
example_helmet.json
{
"parent": "item/generated",
"textures": {
"layer0": "example_mod:items/example_helmet"
}
}
example_chestplate.json
{
"parent": "item/generated",
"textures": {
"layer0": "example_mod:items/example_chestplate"
}
}
example_leggings.json
{
"parent": "item/generated",
"textures": {
"layer0": "example_mod:items/example_leggings"
}
}
example_boots.json
{
"parent": "item/generated",
"textures": {
"layer0": "example_mod:items/example_boots"
}
}
Lass uns das Spiel starten.
** Ich kann keine Rüstung hinzufügen ... Ich kann nicht! !! ** ** **
Als ich es anzog, sah es aus wie eine Eisenrüstung (außerdem sind der Status und die Reparaturmaterialien verschiedene Dinge wie Eisenrüstung). Dies liegt daran, dass wir "ArmorMaterial.IRON" als Material für "ArmorItem" übergeben.
Definieren wir ein neues und einzigartiges Material, wie wir es mit dem Werkzeug getan haben.
\src\main\java\jp\koteko\example_mod\
├ items
│ └ ExampleArmorMaterial.java
├ lists
├ ExampleItemGroup.java
└ ExampleMod.java
ExampleArmorMaterial.java
package jp.koteko.example_mod.items;
import jp.koteko.example_mod.ExampleMod;
import jp.koteko.example_mod.lists.ItemList;
import net.minecraft.inventory.EquipmentSlotType;
import net.minecraft.item.IArmorMaterial;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.LazyLoadBase;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.SoundEvents;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import java.util.function.Supplier;
public enum ExampleArmorMaterial implements IArmorMaterial {
EXAMPLE("example", 66, new int[]{3, 6, 8, 3}, 30, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 3.0F, () -> {
return Ingredient.fromItems(ItemList.ExampleIngot);
});
private static final int[] MAX_DAMAGE_ARRAY = new int[]{13, 15, 16, 11};
private final String name;
private final int maxDamageFactor;
private final int[] damageReductionAmountArray;
private final int enchantability;
private final SoundEvent soundEvent;
private final float toughness;
private final LazyLoadBase<Ingredient> repairMaterial;
private ExampleArmorMaterial(String nameIn, int maxDamageFactorIn, int[] damageReductionAmountsIn, int enchantabilityIn, SoundEvent equipSoundIn, float toughnessIn, Supplier<Ingredient> repairMaterialSupplier) {
this.name = nameIn;
this.maxDamageFactor = maxDamageFactorIn;
this.damageReductionAmountArray = damageReductionAmountsIn;
this.enchantability = enchantabilityIn;
this.soundEvent = equipSoundIn;
this.toughness = toughnessIn;
this.repairMaterial = new LazyLoadBase<>(repairMaterialSupplier);
}
public int getDurability(EquipmentSlotType slotIn) {
return MAX_DAMAGE_ARRAY[slotIn.getIndex()] * this.maxDamageFactor;
}
public int getDamageReductionAmount(EquipmentSlotType slotIn) {
return this.damageReductionAmountArray[slotIn.getIndex()];
}
public int getEnchantability() {
return this.enchantability;
}
public SoundEvent getSoundEvent() {
return this.soundEvent;
}
public Ingredient getRepairMaterial() {
return this.repairMaterial.getValue();
}
@OnlyIn(Dist.CLIENT)
public String getName() {
return ExampleMod.MOD_ID + ":" + this.name;
}
public float getToughness() {
return this.toughness;
}
}
name
: Interner Name
maxDamageFactor
: Grundlegender Haltbarkeitskoeffizient
MAX_DAMAGE_ARRAY
: Haltbarkeitswert für jedes Teil
DamageReductionAmountArray
: Verteidigungskraft für jedes Teil
Verzauberbarkeit: Verzauberungseffizienz
soundEvent
: Sound beim Anhängen
Zähigkeit
: Rüstungsstärke [^ 1]
Reparaturmaterial
: Reparaturmaterial
** [Haltbarkeitswert jedes Teils] = [maxDamageFactor] × [MAX_DAMAGE_ARRAY [Teil]] **
Ich habe versucht, es stärker als Diamant zu machen. Ändern Sie das Rüstungsmaterial in dieses.
ItemList.java
//...
public class ItemList {
public static Item ExampleHelmet = new ArmorItem(ExampleArmorMaterial.EXAMPLE, EquipmentSlotType.HEAD, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_helmet"));
public static Item ExampleChestplate = new ArmorItem(ExampleArmorMaterial.EXAMPLE, EquipmentSlotType.CHEST, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_chestplate"));
public static Item ExampleLeggings = new ArmorItem(ExampleArmorMaterial.EXAMPLE, EquipmentSlotType.LEGS, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_leggings"));
public static Item ExampleBoots = new ArmorItem(ExampleArmorMaterial.EXAMPLE, EquipmentSlotType.FEET, new Item.Properties().group(ExampleItemGroup.DEFAULT))
.setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_boots"));
//...
}
Starte das Spiel.
** Ein Monster wurde geboren. ** Die Textur ist nicht eingestellt.
\src\main\resources\assets\example_mod
├ blockstates
├ lang
├ models
└ textures
├ blocks
├ items
└ models
└ armor
├ example_layer_1.png
└ example_layer_2.png
Erstellen Sie einen Ordner mit dem Namen "\ Assets \ Example_mod \ Textures \ Models \ Armor" und platzieren Sie "[Materialinterner Name] _Layer_1.png " und "[Materialinterner Name] _Layer_2.png ". Lassen Sie uns auf die Textur der Vanille-Rüstung verweisen.
Aufgrund der diamantartigen Farbe ist es etwas schwer zu verstehen, aber die Textur wird richtig reflektiert. Sie können auch sehen, dass der Haltbarkeitswert 66 * 13 = 858 beträgt.
Diesmal ** haben wir Rüstung hinzugefügt! ** ** **
Minecraft 1.14.4 Forge Mod Teil 7 erstellen [Rüstung hinzufügen]
[^ 1]: Wert in Bezug auf Schadensreduzierung. Referenz
Recommended Posts