added blocks
This commit is contained in:
parent
2e9452cae1
commit
203e00347a
@ -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);
|
||||
}
|
||||
}
|
@ -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)));
|
||||
}
|
||||
|
||||
}
|
47
src/main/java/de/jottyfan/quickiemod/block/BlockPowder.java
Normal file
47
src/main/java/de/jottyfan/quickiemod/block/BlockPowder.java
Normal 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;
|
||||
}
|
||||
}
|
45
src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java
Normal file
45
src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java
Normal 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;
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
@ -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");
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
38
src/main/java/de/jottyfan/quickiemod/tab/ModTabs.java
Normal file
38
src/main/java/de/jottyfan/quickiemod/tab/ModTabs.java
Normal 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());
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"sss",
|
||||
"sss",
|
||||
"sss"
|
||||
],
|
||||
"key": {
|
||||
"s": "quickiemod:quickiepowder"
|
||||
},
|
||||
"result": {
|
||||
"id": "quickiemod:blockquickiepowder",
|
||||
"count": 1
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"sss",
|
||||
"sss",
|
||||
"sss"
|
||||
],
|
||||
"key": {
|
||||
"s": "quickiemod:speedpowder"
|
||||
},
|
||||
"result": {
|
||||
"id": "quickiemod:blockspeedpowder",
|
||||
"count": 1
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user