added blocks

This commit is contained in:
Jottyfan 2024-11-16 00:06:21 +01:00
parent 2e9452cae1
commit 203e00347a
10 changed files with 217 additions and 17 deletions

View File

@ -1,11 +1,16 @@
package de.jottyfan.quickiemod;
import net.fabricmc.api.ModInitializer;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import de.jottyfan.quickiemod.block.ModBlocks;
import de.jottyfan.quickiemod.item.ModItems;
import de.jottyfan.quickiemod.tab.ModTabs;
import net.fabricmc.api.ModInitializer;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
/**
*
@ -18,6 +23,8 @@ public class Quickiemod implements ModInitializer {
@Override
public void onInitialize() {
ModItems.registerModItems();
List<Item> items = ModItems.registerModItems();
List<Block> blocks = ModBlocks.registerModBlocks();
ModTabs.registerTab(items, blocks);
}
}

View File

@ -0,0 +1,20 @@
package de.jottyfan.quickiemod.block;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.util.Identifier;
/**
*
* @author jotty
*
*/
public abstract class AbstractIdentifiedBlock extends Block {
public AbstractIdentifiedBlock(Identifier identifier) {
super(AbstractBlock.Settings.create().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier)));
}
}

View File

@ -0,0 +1,47 @@
package de.jottyfan.quickiemod.block;
import java.util.Arrays;
import java.util.List;
import com.mojang.serialization.MapCodec;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.BlockState;
import net.minecraft.block.FallingBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.loot.context.LootWorldContext.Builder;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.util.Identifier;
import net.minecraft.world.explosion.Explosion;
/**
*
* @author jotty
*
*/
public class BlockPowder extends FallingBlock {
private final ItemStack[] drops;
public BlockPowder(Identifier identifier, ItemStack[] drops) {
super(AbstractBlock.Settings.create().luminance(state -> 12).registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier)));
this.drops = drops;
}
@Override
public List<ItemStack> getDroppedStacks(BlockState state, Builder builder) {
return Arrays.asList(drops);
}
@Override
public boolean shouldDropItemsOnExplosion(Explosion explosion) {
return true;
}
@Override
protected MapCodec<? extends FallingBlock> getCodec() {
// TODO Auto-generated method stub
return null;
}
}

View File

@ -0,0 +1,45 @@
package de.jottyfan.quickiemod.block;
import java.util.ArrayList;
import java.util.List;
import de.jottyfan.quickiemod.Quickiemod;
import de.jottyfan.quickiemod.identifier.ModIdentifiers;
import de.jottyfan.quickiemod.item.ModItems;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.util.Identifier;
/**
*
* @author jotty
*
*/
public class ModBlocks {
public static final Block BLOCK_QUICKIEPOWDER = registerBlock(ModIdentifiers.BLOCK_QUICKIEPOWDER, new BlockPowder(
ModIdentifiers.BLOCK_QUICKIEPOWDER, new ItemStack[] { new ItemStack(ModItems.ITEM_QUICKIEPOWDER, 9) }));
public static final Block BLOCK_SPEEDPOWDER = registerBlock(ModIdentifiers.BLOCK_SPEEDPOWDER, new BlockPowder(
ModIdentifiers.BLOCK_SPEEDPOWDER, new ItemStack[] { new ItemStack(ModItems.ITEM_SPEEDPOWDER, 9) }));
private static final Block registerBlock(Identifier identifier, Block block) {
Registry.register(Registries.ITEM, identifier, new BlockItem(block, new Item.Settings()
.registryKey(RegistryKey.of(RegistryKeys.ITEM, identifier)).useBlockPrefixedTranslationKey()));
return Registry.register(Registries.BLOCK, identifier, block);
}
public static final List<Block> registerModBlocks() {
Quickiemod.LOGGER.info(String.format("registering blocks for %s", Quickiemod.MOD_ID));
List<Block> blocks = new ArrayList<>();
blocks.add(BLOCK_QUICKIEPOWDER);
blocks.add(BLOCK_SPEEDPOWDER);
return blocks;
}
}

View File

@ -0,0 +1,16 @@
package de.jottyfan.quickiemod.block;
import net.minecraft.util.Identifier;
/**
*
* @author jotty
*
*/
public class StandardBlock extends AbstractIdentifiedBlock {
public StandardBlock(Identifier identifier) {
super(identifier);
}
}

View File

@ -12,4 +12,6 @@ public class ModIdentifiers {
public static final Identifier ITEM_STUB = Identifier.of(Quickiemod.MOD_ID, "stub");
public static final Identifier ITEM_SPEEDPOWDER = Identifier.of(Quickiemod.MOD_ID, "speedpowder");
public static final Identifier ITEM_QUICKIEPOWDER = Identifier.of(Quickiemod.MOD_ID, "quickiepowder");
public static final Identifier BLOCK_QUICKIEPOWDER = Identifier.of(Quickiemod.MOD_ID, "blockquickiepowder");
public static final Identifier BLOCK_SPEEDPOWDER = Identifier.of(Quickiemod.MOD_ID, "blockspeedpowder");
}

View File

@ -1,15 +1,13 @@
package de.jottyfan.quickiemod.item;
import java.util.ArrayList;
import java.util.List;
import de.jottyfan.quickiemod.Quickiemod;
import de.jottyfan.quickiemod.identifier.ModIdentifiers;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
/**
@ -26,16 +24,13 @@ public class ModItems {
return Registry.register(Registries.ITEM, identifier, item);
}
public static final void registerModItems() {
Quickiemod.LOGGER.info(String.format("registering items for %s", Quickiemod.MOD_ID));
public static final List<Item> registerModItems() {
Quickiemod.LOGGER.debug(String.format("registering item %s", Quickiemod.MOD_ID));
Registry.register(Registries.ITEM_GROUP,
RegistryKey.of(RegistryKeys.ITEM_GROUP, Identifier.of(Quickiemod.MOD_ID, "itemgroup")),
FabricItemGroup.builder().icon(() -> new ItemStack(ITEM_SPEEDPOWDER))
.displayName(Text.literal(Quickiemod.MOD_ID)).entries((enabledFeatures, stacks) -> {
stacks.add(new ItemStack(ITEM_STUB));
stacks.add(new ItemStack(ITEM_SPEEDPOWDER));
stacks.add(new ItemStack(ITEM_QUICKIEPOWDER));
}).build());
List<Item> items = new ArrayList<>();
items.add(ITEM_STUB);
items.add(ITEM_SPEEDPOWDER);
items.add(ITEM_QUICKIEPOWDER);
return items;
}
}

View File

@ -0,0 +1,38 @@
package de.jottyfan.quickiemod.tab;
import java.util.List;
import de.jottyfan.quickiemod.Quickiemod;
import de.jottyfan.quickiemod.item.ModItems;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
/**
*
* @author jotty
*
*/
public class ModTabs {
public static final void registerTab(List<Item> items, List<Block> blocks) {
Registry.register(Registries.ITEM_GROUP,
RegistryKey.of(RegistryKeys.ITEM_GROUP, Identifier.of(Quickiemod.MOD_ID, "itemgroup")),
FabricItemGroup.builder().icon(() -> new ItemStack(ModItems.ITEM_SPEEDPOWDER))
.displayName(Text.literal(Quickiemod.MOD_ID)).entries((enabledFeatures, stacks) -> {
for (Item item : items) {
stacks.add(new ItemStack(item));
}
for (Block block : blocks) {
stacks.add(new ItemStack(block));
}
}).build());
}
}

View File

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"sss",
"sss",
"sss"
],
"key": {
"s": "quickiemod:quickiepowder"
},
"result": {
"id": "quickiemod:blockquickiepowder",
"count": 1
}
}

View File

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"sss",
"sss",
"sss"
],
"key": {
"s": "quickiemod:speedpowder"
},
"result": {
"id": "quickiemod:blockspeedpowder",
"count": 1
}
}