added first item stub

This commit is contained in:
Jottyfan
2025-12-23 10:22:15 +01:00
parent a3b075caa2
commit 6b8cf2a56e
10 changed files with 127 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
package de.jottyfan.minecraft; package de.jottyfan.minecraft;
import de.jottyfan.minecraft.item.QuicklyItems;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
/** /**
@@ -11,5 +12,6 @@ public class QuicklyClient implements ClientModInitializer {
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
QuicklyItems.registerModItems();
} }
} }

View File

@@ -0,0 +1,36 @@
package de.jottyfan.minecraft.item;
import java.util.function.Function;
import de.jottyfan.minecraft.Quickly;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
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.CreativeModeTabs;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Item.Properties;
/**
*
* @author jotty
*
*/
public class QuicklyItems {
public static final Item MY_ITEM = registerItem("stub", new Item.Properties(), p -> new Stub(p));
private static final Item registerItem(String name, Item.Properties properties, Function<Properties, Item> function) {
Identifier identifier = Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name);
ResourceKey<Item> rc = ResourceKey.create(Registries.ITEM, identifier);
Item i = function.apply(properties.setId(rc).modelId(identifier).useItemDescriptionPrefix());
return Registry.register(BuiltInRegistries.ITEM, identifier, i);
}
public static void registerModItems() {
ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.TOOLS_AND_UTILITIES).register(i -> {
i.accept(MY_ITEM);
});
}
}

View File

@@ -0,0 +1,52 @@
package de.jottyfan.minecraft.item;
import java.util.Map;
import java.util.Random;
import net.minecraft.core.BlockPos;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
public class Stub extends Item {
public Stub(Properties properties) {
super(properties.stacksTo(64));
}
@Override
public InteractionResult useOn(UseOnContext context) {
Map<Block, Item> SLASH_MAP = Map.of(
Blocks.HAY_BLOCK, Items.WHEAT,
Blocks.DRIED_KELP_BLOCK, Items.DRIED_KELP);
// ,
// ModBlocks.BLOCK_KELPSTACK, Items.KELP);
Level level = context.getLevel();
BlockPos pos = context.getClickedPos();
Block clickedBlock = level.getBlockState(pos).getBlock();
if (SLASH_MAP.containsKey(clickedBlock)) {
if (!level.isClientSide()) {
level.setBlockAndUpdate(pos, Blocks.AIR.defaultBlockState());
level.playSound(null, pos, SoundEvents.HOE_TILL, SoundSource.BLOCKS);
for (int i = 0; i < 9; i++) {
ItemStack stack = new ItemStack(SLASH_MAP.get(clickedBlock));
float xScatter = new Random().nextFloat();
float yScatter = new Random().nextFloat();
ItemEntity entity = new ItemEntity(level, pos.getX(), pos.getY(), pos.getZ(),
stack, xScatter, yScatter, 0.2);
level.addFreshEntity(entity);
}
}
}
return InteractionResult.SUCCESS;
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "quickly:item/stub"
}
}

View File

@@ -0,0 +1,3 @@
{
"item.quickly.stub": "Stummel"
}

View File

@@ -0,0 +1,3 @@
{
"item.quickly.stub": "stub"
}

View File

@@ -0,0 +1,6 @@
{
"parent": "item/stick",
"textures": {
"layer0": "quickly:item/stub"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -0,0 +1,9 @@
{
"type": "minecraft:campfire_cooking",
"ingredient": "quickly:stub",
"result": {
"id": "minecraft:torch"
},
"experience": 0.1,
"cookingtime": 20
}

View File

@@ -0,0 +1,10 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
"minecraft:stick"
],
"result": {
"id": "quickly:stub",
"count": 4
}
}