[Java] Lass uns einen Minecraft Mod 1.14.4 erstellen [5. Rüstung hinzufügen]

(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

Rüstung 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. キャプチャ.PNG キャプチャ2.PNG ** 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. キャプチャ.PNG ** 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. キャプチャ.PNG 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! ** ** **

Referenz

Minecraft 1.14.4 Forge Mod Teil 7 erstellen [Rüstung hinzufügen]

Nächster Artikel

6. Rezept hinzufügen

[^ 1]: Wert in Bezug auf Schadensreduzierung. Referenz

Recommended Posts

[Java] Lass uns einen Minecraft Mod 1.14.4 erstellen [5. Rüstung hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [7. Fortschritt hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [6. Rezept hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Element hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [1. Element hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [2. Fügen Sie einen Block hinzu]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Block hinzufügen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [3. Registerkarte "Creative hinzufügen"]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [99. Mod-Ausgabe]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Bäume hinzufügen und generieren]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [9. Bäume hinzufügen und generieren]
[Java] Lass uns einen Minecraft Mod 1.14.4 erstellen [8. Erz hinzufügen und erzeugen]
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Extra Edition]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Basisdatei]
Lassen Sie uns eine Java-Entwicklungsumgebung erstellen (Aktualisierung)
Lassen Sie uns mit Javas Timer einen zeitgesteuerten Prozess erstellen! !!
Lassen Sie uns mit Java ein supereinfaches Webframework erstellen
[Java] Erstellen Sie einen Filter
[Java-Grundlagen] Lassen Sie uns ein Dreieck mit einer for-Anweisung erstellen
Erstellen Sie eine Java-Methode [Memo] [java11]
[Java] Erstellen Sie eine temporäre Datei
So erstellen Sie ein leichtes Container-Image für Java-Apps
[Java-Zweig] Erstellen Sie einen Parser-Kombinator für die rekursive Abstiegssyntaxanalyse 2
Erstellen eines MOB mit dem Minecraft Java Mythicmobs-Plug-In | Vorbereitung 1
Lassen Sie uns eine TODO-App in Java 4 erstellen. Implementierung der Buchungsfunktion
Wie unterschreibe ich Minecraft MOD?
Lassen Sie uns eine TODO-App in Java 6 erstellen. Implementierung der Suchfunktion
Lassen Sie uns eine TODO-App in Java 8 erstellen. Implementierung von Bearbeitungsfunktionen
Erstellen Sie ein Java-Projekt mit Eclipse
Erstellen wir eine TODO-Anwendung mit Java 1 Kurze Erläuterung von MVC
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Erstellen Sie einen fließenden Server zum Testen
Lassen Sie uns Docker unter Windows 10 installieren und eine Überprüfungsumgebung für CentOS 8 erstellen!
[Java-Zweig] Erstellen Sie einen Parser-Kombinator für die rekursive absteigende Syntaxanalyse (machen Sie sich auch Notizen).
Los geht's mit Watson Assistant (ehemals Conversation) ⑤ Erstellen Sie einen Chatbot mit Watson + Java + Slack
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
[Java] Erstellen und Anwenden eines Folienmasters
So erstellen Sie ein Maven-Repository für 2020
Erstellen Sie eine TODO-App in Java 7 Create Header
[Java] Erstellen wir eine DB-Zugriffsbibliothek!
Erstellen wir eine Taschenrechner-App mit Java ~ Erstellen Sie einen Anzeigebereich im Fenster
Java (add2)
Java (hinzufügen)
Erstellen wir eine vielseitige Dateispeicher (?) - Operationsbibliothek, indem wir die Dateispeicherung / -erfassung mit Java abstrahieren
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
So erstellen Sie überall eine H2-Datenbank
Eine Geschichte über die Java 11-Unterstützung für Webdienste
Erstellen Sie eine CSR mit erweiterten Informationen in Java
Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
Erstellen wir eine REST-API mit WildFly Swarm.
[Java] Erstellen Sie so etwas wie eine Produktsuch-API
Versuchen Sie, ein Bulletin Board in Java zu erstellen
So erstellen Sie Pagenationen für das "Kaminari" -Array
Erstellen Sie mit SwiftUI 2.0 eine benutzerdefinierte Registerkartenansicht
[Java] Erstellen Sie eine Sammlung mit nur einem Element