[Java] Erstellen wir einen Minecraft Mod 1.14.4 [2. Fügen Sie einen Block hinzu]

(Dieser Artikel gehört zu einer Reihe von Kommentaren)

Erster Artikel: Einführung Vorheriger Artikel: 1. Elemente hinzufügen Nächster Artikel: 3. Registerkarte "Creative hinzufügen"

Block hinzufügen

Fügen Sie einen Block hinzu. Das Hinzufügen von Blöcken ähnelt dem Hinzufügen von Elementen, ist also ** einfach **! Verwenden Sie die Methode zum Erstellen einer Klasse, die Blöcke auf dieselbe Weise wie für Elemente verwaltet.

\src\main\java\jp\koteko\example_mod\
   ├ ExampleMod.java
   └ lists
      ├ BlockList.java
      └ ItemList.java

BlockList.java


package jp.koteko.example_mod.lists;

import jp.koteko.example_mod.ExampleMod;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;

@Mod.EventBusSubscriber(modid = ExampleMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
public class BlockList {
    public static Block ExampleBlock = new Block(Block.Properties.create(Material.IRON))
            .setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_block"));

    @SubscribeEvent
    public static void registerBlocks(RegistryEvent.Register<Block> event) {
        event.getRegistry().registerAll(
                ExampleBlock
        );
    }

    @SubscribeEvent
    public static void registerBlockItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().registerAll(
                new BlockItem(ExampleBlock, new Item.Properties().group(ItemGroup.BUILDING_BLOCKS))
                        .setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_block"))
        );
    }
}

Übrigens, lassen Sie uns die von Anfang an vorbereitete Registrierungsbeschreibung in der Hauptdatei löschen.

ExampleMod.java


//...
public class ExampleMod
{
    //...

    //Von hier löschen
    //@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
    //public static class RegistryEvents {
    //    @SubscribeEvent
    //    public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
    //        // register a new block here
    //        LOGGER.info("HELLO from Register Block");
    //    }
    //}
    //Bisher gelöscht
}

Jetzt starten wir das Spiel. キャプチャ.PNG キャプチャ2.PNG Blöcke wurden hinzugefügt!

Wie Sie dem Code entnehmen können, entspricht das Hinzufügen eines Blocks im Wesentlichen dem Hinzufügen eines Elements. Beachten Sie jedoch, dass ein Block sowohl als Block als auch als Element vorhanden ist, also seine Registrierung Ist auch notwendig.

Eine kurze Beschreibung des Codes

Der Teil, um den Block zu registrieren


public class BlockList {
    //Deklarieren und initialisieren Sie den Block als Mitgliedsvariable
    // Material.IRON spezifiziert so etwas wie Eisen als Blockeigenschaft
    //Die mit setRegistryName zu registrierende Block-ID wird festgelegt.
    // "example_block"Block-ID, in der der Teil von niedriger registriert ist
    public static Block ExampleBlock = new Block(Block.Properties.create(Material.IRON))
            .setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_block"));

    //Registrierung blockieren
    @SubscribeEvent
    public static void registerBlocks(RegistryEvent.Register<Block> event) {
        event.getRegistry().registerAll(
                ExampleBlock
        );
    }

    //Artikelregistrierung
    //Da es eine BlockItem-Klasse gibt, lautet das Argument, das als neu registriert werden soll(Block, Item.Propaties)
    @SubscribeEvent
    public static void registerBlockItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().registerAll(
                new BlockItem(ExampleBlock, new Item.Properties().group(ItemGroup.BUILDING_BLOCKS))
                        .setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_block"))
        );
    }
}
___ Nehmen Sie detaillierte Einstellungen vor, nachdem Sie bestätigt haben, dass der Block sicher hinzugefügt wurde. Beachten Sie, dass zusätzlich zu jedem Element zum Zeitpunkt des Elements die Einstellung der Blockzustände erhöht wird.
\src\main\resources
   └ assets
      └ example_mod
         ├ blockstates
         │  └ example_block.json
         ├ lang
         │  └ en_us.json
         │  └ ja_jp.json
         ├ models
         │  ├ block
         │  │  └ example_block.json
         │  └ item
         │     └ example_block.json
         └ textures
            ├ blocks
            │  └ example_block.png
            └ items

blockstates\example_block.json


{
  "variants": {
    "": { "model": "example_mod:block/example_block" }
  }
}

"MOD_ID: block / [Modelldateiname]" " Sie können die Textur für jeden Statuswert des Blocks festlegen, sie wird hier jedoch weggelassen.

en_us.json


{
  "item.example_mod.example_ingot": "Example Ingot",
  "block.example_mod.example_block": "Example Block"
}

ja_jp.json


{
  "item.example_mod.example_ingot": "Beispiel Barren",
  "block.example_mod.example_block": "Beispielblock"
}

models\block\example_block.json


{
  "parent": "block/cube_all",
  "textures": {
    "all": "example_mod:blocks/example_block"
  }
}

Geben Sie einen einfachen Cube mit "parent" an: "block / cube_all". Geben Sie die Textur auf der gesamten Oberfläche mit "all" an.

models\item\example_block.json


{
  "parent": "example_mod:block/example_block"
}

Geben Sie die Blockmodelldatei in "übergeordnet" an.

Versuche das Spiel erneut zu starten. キャプチャ.PNG キャプチャ.PNG

** Artikel wurden hinzugefügt! ** **.

Entwicklung

F. Auch wenn ich es kaputt mache, wird es kein Gegenstand? ** A. Lass uns plündern. ** **.

\src\main\resources
   ├ assets
   └ data
      └ example_mod
         └ loot_tables
            └ blocks
               └ example_block.json

example_block.json


{
  "type": "minecraft:block",
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "minecraft:item",
          "name": "example_mod:example_block"
        }
      ]
    }
  ]
}

F. Ich möchte es als Lichtquelle verwenden F. Ich möchte das Zerstörungswerkzeug einstellen ** A. Beachten Sie net.minecraft.block.Block. ** **.

Block.java


// ...
   public static class Properties {
      private Material material;
      private MaterialColor mapColor;
      private boolean blocksMovement = true;
      private SoundType soundType = SoundType.STONE;
      private int lightValue;
      private float resistance;
      private float hardness;
      // ...

      // ...
      public Block.Properties doesNotBlockMovement() {
         this.blocksMovement = false;
         return this;
      }

      public Block.Properties slipperiness(float slipperinessIn) {
         this.slipperiness = slipperinessIn;
         return this;
      }

      public Block.Properties sound(SoundType soundTypeIn) {
         this.soundType = soundTypeIn;
         return this;
      }

      public Block.Properties lightValue(int lightValueIn) {
         this.lightValue = lightValueIn;
         return this;
      }

      public Block.Properties hardnessAndResistance(float hardnessIn, float resistanceIn) {
         this.hardness = hardnessIn;
         this.resistance = Math.max(0.0F, resistanceIn);
         return this;
      }
// ...

Das dem Konstruktor gegebene Argument "Block.Properties" enthält den Wert, der sich auf die Eigenschaften des Blocks bezieht. Accessoren für diese Werte sind ebenfalls definiert. Ein Beispiel wird unten mit Bezug auf diese gezeigt.

BlockList.java


public class BlockList {
    public static Block ExampleBlock = new Block(
            Block.Properties.create(Material.IRON)
                    .hardnessAndResistance(2.0f, 3.0f)
                    .lightValue(15)
                    .harvestLevel(3)
                    .harvestTool(ToolType.SHOVEL))
            .setRegistryName(new ResourceLocation(ExampleMod.MOD_ID, "example_block"));
}

キャプチャ.PNG

F. Ich möchte eine Funktion hinzufügen A. Der Kommentarartikel ist aufgrund des Entwicklungsinhalts unentschlossen.

Referenz

Minecraft 1.14.4 Forge Mod Teil 4 erstellen [Blöcke hinzufügen] [Solved][1.14.2] Custom Blocks not dropping Items - Modder Support - Forge Forums

Nächster Artikel

3. Registerkarte "Creative hinzufügen"

Recommended Posts

[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 [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 [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] 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
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [3. Registerkarte "Creative hinzufügen"]
[Nr.003] Erstellen Sie einen Bestelllistenbildschirm für den Besteller
[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]
Erstellen Sie eine Java-Methode [Memo] [java11]
[Java] Erstellen Sie eine temporäre Datei
[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 Ich habe versucht, einen einfachen Block zu brechen
[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
Erstellen Sie Ihre eigene Android-App für das Java-Lernen
Erstellen Sie Scala Seq aus Java, machen Sie Scala Seq zu einer Java-Liste