added stub item, see slides items

This commit is contained in:
Jottyfan
2026-07-08 10:03:12 +02:00
parent b74146b7f9
commit a9817ebe7d
9 changed files with 137 additions and 0 deletions
@@ -1,9 +1,14 @@
package de.jottyfan.minecraft; package de.jottyfan.minecraft;
import java.util.List;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import de.jottyfan.minecraft.item.ModItems;
import de.jottyfan.minecraft.tab.ModTab;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
import net.minecraft.world.item.Item;
/** /**
* *
@@ -17,5 +22,8 @@ public class Mfmd2627 implements ModInitializer {
@Override @Override
public void onInitialize() { public void onInitialize() {
LOGGER.debug("initializing {}", MOD_ID);
List<Item> items = ModItems.registerItems();
ModTab.registerItemGroup(items);
} }
} }
@@ -0,0 +1,21 @@
package de.jottyfan.minecraft.item;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.world.item.Item;
/**
*
* @author jotty
*
*/
public class ModItems extends ModItemsRegistrator {
public static final Item STUB = registerItem("stub");
public static final List<Item> registerItems() {
List<Item> registeredItems = new ArrayList<>();
registeredItems.add(STUB);
return registeredItems;
}
}
@@ -0,0 +1,45 @@
package de.jottyfan.minecraft.item;
import java.util.function.Function;
import de.jottyfan.minecraft.Mfmd2627;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.Identifier;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Item.Properties;
/**
*
* @author jotty
*
*/
public abstract class ModItemsRegistrator {
/**
* register a new item with the name
*
* @param name the name of the item
* @return the registered item
*/
public static final Item registerItem(String name) {
return registerItem(name, new Item.Properties(), Item::new);
}
/**
* register a new item with the name, the properties and the Item class reference
*
* @param name the name of the item
* @param the properties; create it with <code style="color: gray">new Item.Properties();</code>
* @param the function; create it with <code style="color: gray">Item::new</code>
* @return the registered item
*/
public static final Item registerItem(String name, Properties properties, Function<Item.Properties, Item> function) {
Identifier identifier = Identifier.fromNamespaceAndPath(Mfmd2627.MOD_ID, name);
Item item = function.apply(properties.setId(ResourceKey.create(Registries.ITEM, identifier)).modelId(identifier)
.useItemDescriptionPrefix());
return Registry.register(BuiltInRegistries.ITEM, identifier, item);
}
}
@@ -0,0 +1,43 @@
package de.jottyfan.minecraft.tab;
import java.util.List;
import de.jottyfan.minecraft.Mfmd2627;
import de.jottyfan.minecraft.item.ModItems;
import net.fabricmc.fabric.api.creativetab.v1.FabricCreativeModeTab;
import net.minecraft.core.Registry;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.Identifier;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
/**
*
* @author jotty
*
*/
public class ModTab {
/**
* register the items in an own tab for the creative menu
*
* @param items the items
*/
public static final void registerItemGroup(List<Item> items) {
ResourceKey<CreativeModeTab> tabKey = ResourceKey.create(Registries.CREATIVE_MODE_TAB,
Identifier.fromNamespaceAndPath(Mfmd2627.MOD_ID, "itemgroup"));
CreativeModeTab quicklyTab = FabricCreativeModeTab.builder().icon(() -> new ItemStack(ModItems.STUB))
.title(Component.translatable("tab.mfmd2627")).displayItems((params, output) -> {
for (Item item : items) {
output.accept(item);
}
}).build();
Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, tabKey, quicklyTab);
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "mfmd2627:item/stub"
}
}
@@ -0,0 +1,4 @@
{
"item.mfmd2627.stub": "Stummel",
"tab.mfmd2627": "Mfmd2627"
}
@@ -0,0 +1,4 @@
{
"item.mfmd2627.stub": "Stub",
"tab.mfmd2627": "Mfmd2627"
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "mfmd2627:item/stub"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB