diff --git a/src/client/java/com/nuclearcrackhead/serverboss/SVBCRClient.java b/src/client/java/com/nuclearcrackhead/serverboss/SVBCRClient.java new file mode 100644 index 0000000..b5a7085 --- /dev/null +++ b/src/client/java/com/nuclearcrackhead/serverboss/SVBCRClient.java @@ -0,0 +1,13 @@ +package com.nuclearcrackhead.serverboss; + +import com.nuclearcrackhead.serverboss.registry.ModItemGroups; +import net.fabricmc.api.ClientModInitializer; + +public class SVBCRClient implements ClientModInitializer { + + @Override + public void onInitializeClient() { + ModItemGroups.init(); + } + +} \ No newline at end of file diff --git a/src/client/java/com/nuclearcrackhead/serverboss/ServerbossCrossReferenceDataGenerator.java b/src/client/java/com/nuclearcrackhead/serverboss/SVBCRDatagen.java similarity index 75% rename from src/client/java/com/nuclearcrackhead/serverboss/ServerbossCrossReferenceDataGenerator.java rename to src/client/java/com/nuclearcrackhead/serverboss/SVBCRDatagen.java index 8ce8d72..f2e73e8 100644 --- a/src/client/java/com/nuclearcrackhead/serverboss/ServerbossCrossReferenceDataGenerator.java +++ b/src/client/java/com/nuclearcrackhead/serverboss/SVBCRDatagen.java @@ -3,7 +3,7 @@ import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; -public class ServerbossCrossReferenceDataGenerator implements DataGeneratorEntrypoint { +public class SVBCRDatagen implements DataGeneratorEntrypoint { @Override public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { diff --git a/src/client/java/com/nuclearcrackhead/serverboss/ServerbossCrossReferenceClient.java b/src/client/java/com/nuclearcrackhead/serverboss/ServerbossCrossReferenceClient.java deleted file mode 100644 index dfb499b..0000000 --- a/src/client/java/com/nuclearcrackhead/serverboss/ServerbossCrossReferenceClient.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.nuclearcrackhead.serverboss; - -import net.fabricmc.api.ClientModInitializer; - -public class ServerbossCrossReferenceClient implements ClientModInitializer { - @Override - public void onInitializeClient() { - // This entrypoint is suitable for setting up client-specific logic, such as rendering. - } -} \ No newline at end of file diff --git a/src/client/java/com/nuclearcrackhead/serverboss/registry/ModItemGroups.java b/src/client/java/com/nuclearcrackhead/serverboss/registry/ModItemGroups.java new file mode 100644 index 0000000..9a05c76 --- /dev/null +++ b/src/client/java/com/nuclearcrackhead/serverboss/registry/ModItemGroups.java @@ -0,0 +1,17 @@ +package com.nuclearcrackhead.serverboss.registry; + +import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; +import net.minecraft.item.ItemGroups; + +public class ModItemGroups { + + public static void init() { + ItemGroupEvents.modifyEntriesEvent(ItemGroups.BUILDING_BLOCKS).register(entries -> { + entries.add(ModBlocks.EXAMPLE_BLOCK); + }); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register(entries -> { + entries.add(ModItems.EXAMPLE_ITEM); + }); + } + +} diff --git a/src/main/java/com/nuclearcrackhead/serverboss/SVBCR.java b/src/main/java/com/nuclearcrackhead/serverboss/SVBCR.java new file mode 100644 index 0000000..140c91c --- /dev/null +++ b/src/main/java/com/nuclearcrackhead/serverboss/SVBCR.java @@ -0,0 +1,25 @@ +package com.nuclearcrackhead.serverboss; + +import com.nuclearcrackhead.serverboss.registry.ModBlocks; +import com.nuclearcrackhead.serverboss.registry.ModItems; +import net.fabricmc.api.ModInitializer; + +import net.minecraft.util.Identifier; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class SVBCR implements ModInitializer { + + public static final String MOD_ID = "svbcr"; + public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); + + public static Identifier of(String path) { + return Identifier.of(MOD_ID, path); + } + + @Override + public void onInitialize() { + ModItems.init(); + ModBlocks.init(); + } +} \ No newline at end of file diff --git a/src/main/java/com/nuclearcrackhead/serverboss/ServerbossCrossReference.java b/src/main/java/com/nuclearcrackhead/serverboss/ServerbossCrossReference.java deleted file mode 100644 index 0bd9711..0000000 --- a/src/main/java/com/nuclearcrackhead/serverboss/ServerbossCrossReference.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.nuclearcrackhead.serverboss; - -import net.fabricmc.api.ModInitializer; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class ServerbossCrossReference implements ModInitializer { - public static final String MOD_ID = "svbcr"; - - // This logger is used to write text to the console and the log file. - // It is considered best practice to use your mod id as the logger's name. - // That way, it's clear which mod wrote info, warnings, and errors. - public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); - - @Override - public void onInitialize() { - // This code runs as soon as Minecraft is in a mod-load-ready state. - // However, some things (like resources) may still be uninitialized. - // Proceed with mild caution. - - LOGGER.info("Hello Fabric world!"); - } -} \ No newline at end of file diff --git a/src/main/java/com/nuclearcrackhead/serverboss/content/block/ExampleBlock.java b/src/main/java/com/nuclearcrackhead/serverboss/content/block/ExampleBlock.java new file mode 100644 index 0000000..4bd02fc --- /dev/null +++ b/src/main/java/com/nuclearcrackhead/serverboss/content/block/ExampleBlock.java @@ -0,0 +1,11 @@ +package com.nuclearcrackhead.serverboss.content.block; + +import net.minecraft.block.Block; + +public class ExampleBlock extends Block { + + public ExampleBlock(Settings settings) { + super(settings); + } + +} diff --git a/src/main/java/com/nuclearcrackhead/serverboss/content/item/ExampleItem.java b/src/main/java/com/nuclearcrackhead/serverboss/content/item/ExampleItem.java new file mode 100644 index 0000000..71d065f --- /dev/null +++ b/src/main/java/com/nuclearcrackhead/serverboss/content/item/ExampleItem.java @@ -0,0 +1,11 @@ +package com.nuclearcrackhead.serverboss.content.item; + +import net.minecraft.item.Item; + +public class ExampleItem extends Item { + + public ExampleItem(Settings settings) { + super(settings); + } + +} diff --git a/src/main/java/com/nuclearcrackhead/serverboss/registry/ModBlocks.java b/src/main/java/com/nuclearcrackhead/serverboss/registry/ModBlocks.java new file mode 100644 index 0000000..a44d398 --- /dev/null +++ b/src/main/java/com/nuclearcrackhead/serverboss/registry/ModBlocks.java @@ -0,0 +1,41 @@ +package com.nuclearcrackhead.serverboss.registry; + +import com.nuclearcrackhead.serverboss.SVBCR; +import com.nuclearcrackhead.serverboss.content.block.ExampleBlock; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +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; + +import java.util.function.Function; + +public class ModBlocks { + + public static void init() {} + + + public static final Block EXAMPLE_BLOCK = register("example_block", ExampleBlock::new, + AbstractBlock.Settings.create() + ); + + + public static Block register(String path, Function function, AbstractBlock.Settings settings) { + Identifier id = SVBCR.of(path); + RegistryKey blockKey = RegistryKey.of(RegistryKeys.BLOCK, id); + settings.registryKey(blockKey); + Block block = Registry.register(Registries.BLOCK, blockKey, function.apply(settings)); + + RegistryKey itemKey = RegistryKey.of(RegistryKeys.ITEM, id); + Item.Settings itemSettings = new Item.Settings() + .useBlockPrefixedTranslationKey() + .registryKey(itemKey); + Registry.register(Registries.ITEM, itemKey, new BlockItem(block, itemSettings)); + return block; + } + +} diff --git a/src/main/java/com/nuclearcrackhead/serverboss/registry/ModItems.java b/src/main/java/com/nuclearcrackhead/serverboss/registry/ModItems.java new file mode 100644 index 0000000..91e0d83 --- /dev/null +++ b/src/main/java/com/nuclearcrackhead/serverboss/registry/ModItems.java @@ -0,0 +1,31 @@ +package com.nuclearcrackhead.serverboss.registry; + +import com.nuclearcrackhead.serverboss.SVBCR; +import com.nuclearcrackhead.serverboss.content.item.ExampleItem; +import net.minecraft.item.Item; +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; + +import java.util.function.Function; + +public class ModItems { + + public static void init() {} + + + public static final Item EXAMPLE_ITEM = register("example_item", ExampleItem::new, + new Item.Settings() + ); + + + public static Item register(String path, Function function, Item.Settings settings) { + Identifier id = SVBCR.of(path); + RegistryKey key = RegistryKey.of(RegistryKeys.ITEM, id); + settings = settings.registryKey(key); + return Registry.register(Registries.ITEM, key, function.apply(settings)); + } + +} diff --git a/src/main/resources/assets/svbcr/blockstates/example_block.json b/src/main/resources/assets/svbcr/blockstates/example_block.json new file mode 100644 index 0000000..2d44a74 --- /dev/null +++ b/src/main/resources/assets/svbcr/blockstates/example_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "svbcr:block/example_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/svbcr/lang/en_us.json b/src/main/resources/assets/svbcr/lang/en_us.json new file mode 100644 index 0000000..32ba751 --- /dev/null +++ b/src/main/resources/assets/svbcr/lang/en_us.json @@ -0,0 +1,4 @@ +{ + "block.svbcr.example_block": "Example Block", + "item.svbcr.example_item": "Example Item" +} \ No newline at end of file diff --git a/src/main/resources/assets/svbcr/models/block/example_block.json b/src/main/resources/assets/svbcr/models/block/example_block.json new file mode 100644 index 0000000..1273f7e --- /dev/null +++ b/src/main/resources/assets/svbcr/models/block/example_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "svbcr:block/example_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/svbcr/models/item/example_block.json b/src/main/resources/assets/svbcr/models/item/example_block.json new file mode 100644 index 0000000..75849c4 --- /dev/null +++ b/src/main/resources/assets/svbcr/models/item/example_block.json @@ -0,0 +1,3 @@ +{ + "parent": "svbcr:block/example_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/svbcr/models/item/example_item.json b/src/main/resources/assets/svbcr/models/item/example_item.json new file mode 100644 index 0000000..47d0fba --- /dev/null +++ b/src/main/resources/assets/svbcr/models/item/example_item.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "svbcr:item/example_item" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/svbcr/textures/block/example_block.png b/src/main/resources/assets/svbcr/textures/block/example_block.png new file mode 100644 index 0000000..bbfac81 Binary files /dev/null and b/src/main/resources/assets/svbcr/textures/block/example_block.png differ diff --git a/src/main/resources/assets/svbcr/textures/item/example_item.png b/src/main/resources/assets/svbcr/textures/item/example_item.png new file mode 100644 index 0000000..bbfac81 Binary files /dev/null and b/src/main/resources/assets/svbcr/textures/item/example_item.png differ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index bebc0e1..e510206 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -16,13 +16,13 @@ "environment": "*", "entrypoints": { "main": [ - "com.nuclearcrackhead.serverboss.ServerbossCrossReference" + "com.nuclearcrackhead.serverboss.SVBCR" ], "client": [ - "com.nuclearcrackhead.serverboss.ServerbossCrossReferenceClient" + "com.nuclearcrackhead.serverboss.SVBCRClient" ], "fabric-datagen": [ - "com.nuclearcrackhead.serverboss.ServerbossCrossReferenceDataGenerator" + "com.nuclearcrackhead.serverboss.SVBCRDatagen" ] }, "mixins": [