diff --git a/src/main/java/de/jottyfan/minecraft/Quickly.java b/src/main/java/de/jottyfan/minecraft/Quickly.java index d5afcc1..eded03c 100644 --- a/src/main/java/de/jottyfan/minecraft/Quickly.java +++ b/src/main/java/de/jottyfan/minecraft/Quickly.java @@ -1,10 +1,13 @@ package de.jottyfan.minecraft; -import net.fabricmc.api.ModInitializer; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import de.jottyfan.minecraft.block.QuicklyBlocks; +import de.jottyfan.minecraft.feature.QuicklyFeatures; +import de.jottyfan.minecraft.item.QuicklyItems; +import net.fabricmc.api.ModInitializer; + /** * * @author jotty @@ -18,5 +21,9 @@ public class Quickly implements ModInitializer { @Override public void onInitialize() { LOGGER.info("loading {}", MOD_ID); + + QuicklyItems.registerModItems(); + QuicklyBlocks.registerModBlocks(); + QuicklyFeatures.registerFeatures(); } } \ No newline at end of file diff --git a/src/main/java/de/jottyfan/minecraft/QuicklyClient.java b/src/main/java/de/jottyfan/minecraft/QuicklyClient.java index 37a2d4f..dcf5c47 100644 --- a/src/main/java/de/jottyfan/minecraft/QuicklyClient.java +++ b/src/main/java/de/jottyfan/minecraft/QuicklyClient.java @@ -13,7 +13,5 @@ public class QuicklyClient implements ClientModInitializer { @Override public void onInitializeClient() { - QuicklyItems.registerModItems(); - QuicklyBlocks.registerModBlocks(); } } diff --git a/src/main/java/de/jottyfan/minecraft/block/BlockOreDeepslateTurquoise.java b/src/main/java/de/jottyfan/minecraft/block/BlockOreDeepslateTurquoise.java new file mode 100644 index 0000000..1853282 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/block/BlockOreDeepslateTurquoise.java @@ -0,0 +1,27 @@ +package de.jottyfan.minecraft.block; + + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.minecraft.item.QuicklyItems; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.loot.LootParams.Builder; + +/** + * + * @author jotty + * + */ +public class BlockOreDeepslateTurquoise extends BlockOreTurquoise { + + public BlockOreDeepslateTurquoise(Properties properties) { + super(properties); + } + + @Override + protected List getDrops(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuicklyItems.RAWTURQUOISE, 2) }); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/block/BlockOreTurquoise.java b/src/main/java/de/jottyfan/minecraft/block/BlockOreTurquoise.java new file mode 100644 index 0000000..cbb10e2 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/block/BlockOreTurquoise.java @@ -0,0 +1,28 @@ +package de.jottyfan.minecraft.block; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.minecraft.item.QuicklyItems; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.AmethystBlock; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.loot.LootParams.Builder; + +/** + * + * @author jotty + * + */ +public class BlockOreTurquoise extends AmethystBlock { + + public BlockOreTurquoise(Properties properties) { + super(properties.strength(3.0f).sound(SoundType.AMETHYST).requiresCorrectToolForDrops()); + } + + @Override + protected List getDrops(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(QuicklyItems.RAWTURQUOISE) }); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/block/QuicklyBlocks.java b/src/main/java/de/jottyfan/minecraft/block/QuicklyBlocks.java index 27d5b1d..25a7444 100644 --- a/src/main/java/de/jottyfan/minecraft/block/QuicklyBlocks.java +++ b/src/main/java/de/jottyfan/minecraft/block/QuicklyBlocks.java @@ -23,7 +23,19 @@ import net.minecraft.world.level.block.state.BlockBehaviour.Properties; */ public class QuicklyBlocks { public static final Block KELPBUNDLE = registerBlock("kelpbundle", - Properties.of().instabreak().sound(SoundType.WET_GRASS).strength(0.1f).friction(0.95f), p -> new Block(p)); + Properties.of().instabreak().sound(SoundType.WET_GRASS).strength(0.1f).friction(0.95f)); + public static final Block TURQUOISEBLOCK = registerBlock("blockturquoise", Properties.of().strength(1.5f)); + public static final Block ORETURQUOISE = registerBlock("oreturquoise", p -> new BlockOreTurquoise(p)); + public static final Block OREDEEPSLATETURQUOISE = registerBlock("oredeepslateturquoise", + p -> new BlockOreDeepslateTurquoise(p)); + + private static final Block registerBlock(String name, Properties properties) { + return QuicklyBlocks.registerBlock(name, properties, p -> new Block(p)); + } + + private static final Block registerBlock(String name, Function function) { + return QuicklyBlocks.registerBlock(name, Properties.of(), function); + } private static final Block registerBlock(String name, Properties properties, Function function) { Identifier identifier = Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name); @@ -38,6 +50,9 @@ public class QuicklyBlocks { public static void registerModBlocks() { ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.BUILDING_BLOCKS).register(block -> { block.accept(KELPBUNDLE); + block.accept(TURQUOISEBLOCK); + block.accept(ORETURQUOISE); + block.accept(OREDEEPSLATETURQUOISE); }); } } diff --git a/src/main/java/de/jottyfan/minecraft/feature/QuicklyFeatures.java b/src/main/java/de/jottyfan/minecraft/feature/QuicklyFeatures.java new file mode 100644 index 0000000..7db8e36 --- /dev/null +++ b/src/main/java/de/jottyfan/minecraft/feature/QuicklyFeatures.java @@ -0,0 +1,33 @@ +package de.jottyfan.minecraft.feature; + +import de.jottyfan.minecraft.Quickly; +import net.fabricmc.fabric.api.biome.v1.BiomeModifications; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.levelgen.GenerationStep; +import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; +import net.minecraft.world.level.levelgen.placement.PlacedFeature; + +/** + * + * @author jotty + * + */ +public class QuicklyFeatures { + public static final ResourceKey> CF_ORETURQUOISE = genCf("oreturquoise"); + public static final ResourceKey PF_ORETURQUOISE = genPf("oreturquoise"); + + private static final ResourceKey> genCf(String name) { + return ResourceKey.create(Registries.CONFIGURED_FEATURE, Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name)); + } + + private static final ResourceKey genPf(String name) { + return ResourceKey.create(Registries.PLACED_FEATURE, Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name)); + } + + public static final void registerFeatures() { + BiomeModifications.addFeature(BiomeSelectors.foundInOverworld(), GenerationStep.Decoration.UNDERGROUND_ORES, PF_ORETURQUOISE); + } +} diff --git a/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java b/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java index 53a8acc..30ef740 100644 --- a/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java +++ b/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java @@ -19,7 +19,21 @@ import net.minecraft.world.item.Item.Properties; * */ public class QuicklyItems { - public static final Item STUB = registerItem("stub", new Item.Properties(), p -> new Stub(p)); + public static final Item STUB = registerItem("stub", properties -> new Stub(properties)); + public static final Item RAWTURQUOISE = registerItem("rawturquoise"); + public static final Item TURQUOISEINGOT = registerItem("turquoiseingot"); + + private static final Item registerItem(String name) { + return QuicklyItems.registerItem(name, new Item.Properties()); + } + + private static final Item registerItem(String name, Item.Properties properties) { + return QuicklyItems.registerItem(name, properties, p -> new Item(p)); + } + + private static final Item registerItem(String name, Function function) { + return QuicklyItems.registerItem(name, new Item.Properties(), function); + } private static final Item registerItem(String name, Item.Properties properties, Function function) { Identifier identifier = Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name); @@ -31,6 +45,8 @@ public class QuicklyItems { public static void registerModItems() { ItemGroupEvents.modifyEntriesEvent(CreativeModeTabs.TOOLS_AND_UTILITIES).register(item -> { item.accept(STUB); + item.accept(RAWTURQUOISE); + item.accept(TURQUOISEINGOT); }); } } diff --git a/src/main/resources/assets/quickly/blockstates/blockturquoise.json b/src/main/resources/assets/quickly/blockstates/blockturquoise.json new file mode 100644 index 0000000..34f27d6 --- /dev/null +++ b/src/main/resources/assets/quickly/blockstates/blockturquoise.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickly:block/blockturquoise" + } + } +} diff --git a/src/main/resources/assets/quickly/blockstates/oredeepslateturquoise.json b/src/main/resources/assets/quickly/blockstates/oredeepslateturquoise.json new file mode 100644 index 0000000..7ebeba8 --- /dev/null +++ b/src/main/resources/assets/quickly/blockstates/oredeepslateturquoise.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickly:block/oredeepslateturquoise" + } + } +} diff --git a/src/main/resources/assets/quickly/blockstates/oreturquoise.json b/src/main/resources/assets/quickly/blockstates/oreturquoise.json new file mode 100644 index 0000000..730d8cf --- /dev/null +++ b/src/main/resources/assets/quickly/blockstates/oreturquoise.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickly:block/oreturquoise" + } + } +} diff --git a/src/main/resources/assets/quickly/items/blockturquoise.json b/src/main/resources/assets/quickly/items/blockturquoise.json new file mode 100644 index 0000000..f55a032 --- /dev/null +++ b/src/main/resources/assets/quickly/items/blockturquoise.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickly:block/blockturquoise" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/items/oredeepslateturquoise.json b/src/main/resources/assets/quickly/items/oredeepslateturquoise.json new file mode 100644 index 0000000..73326c6 --- /dev/null +++ b/src/main/resources/assets/quickly/items/oredeepslateturquoise.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickly:block/oredeepslateturquoise" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/items/oreturquoise.json b/src/main/resources/assets/quickly/items/oreturquoise.json new file mode 100644 index 0000000..67b7845 --- /dev/null +++ b/src/main/resources/assets/quickly/items/oreturquoise.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickly:block/oreturquoise" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/items/rawturquoise.json b/src/main/resources/assets/quickly/items/rawturquoise.json new file mode 100644 index 0000000..2f6c51a --- /dev/null +++ b/src/main/resources/assets/quickly/items/rawturquoise.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickly:item/rawturquoise" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/items/turquoiseingot.json b/src/main/resources/assets/quickly/items/turquoiseingot.json new file mode 100644 index 0000000..bba14e0 --- /dev/null +++ b/src/main/resources/assets/quickly/items/turquoiseingot.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickly:item/turquoiseingot" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/lang/de_de.json b/src/main/resources/assets/quickly/lang/de_de.json index 7b0e0a3..c9427d2 100644 --- a/src/main/resources/assets/quickly/lang/de_de.json +++ b/src/main/resources/assets/quickly/lang/de_de.json @@ -1,4 +1,9 @@ { + "item.quickly.blockturquoise": "Türkisblock", "item.quickly.kelpbundle": "Seegrassbündel", - "item.quickly.stub": "Stummel" + "item.quickly.oredeepslateturquoise": "Türkistiefenerz", + "item.quickly.oreturquoise": "Türkiserz", + "item.quickly.rawturquoise": "rohes Türkis", + "item.quickly.stub": "Stummel", + "item.quickly.turquoiseingot": "Türkisbarren" } diff --git a/src/main/resources/assets/quickly/lang/en_us.json b/src/main/resources/assets/quickly/lang/en_us.json index b49fba4..8fdb089 100644 --- a/src/main/resources/assets/quickly/lang/en_us.json +++ b/src/main/resources/assets/quickly/lang/en_us.json @@ -1,4 +1,9 @@ { + "item.quickly.blockturquoise": "block of turquoise", "item.quickly.kelpbundle": "kelp bundle", - "item.quickly.stub": "stub" + "item.quickly.oredeepslateturquoise": "turquoise deepslate ore", + "item.quickly.oreturquoise": "turquoise ore", + "item.quickly.rawturquoise": "raw turquoise", + "item.quickly.stub": "stub", + "item.quickly.turquoiseingot": "turquoise ingot" } diff --git a/src/main/resources/assets/quickly/models/block/blockturquoise.json b/src/main/resources/assets/quickly/models/block/blockturquoise.json new file mode 100644 index 0000000..2b83499 --- /dev/null +++ b/src/main/resources/assets/quickly/models/block/blockturquoise.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickly:block/blockturquoise" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/models/block/oredeepslateturquoise.json b/src/main/resources/assets/quickly/models/block/oredeepslateturquoise.json new file mode 100644 index 0000000..bc8ffa6 --- /dev/null +++ b/src/main/resources/assets/quickly/models/block/oredeepslateturquoise.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickly:block/oredeepslateturquoise" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/models/block/oreturquoise.json b/src/main/resources/assets/quickly/models/block/oreturquoise.json new file mode 100644 index 0000000..fac680a --- /dev/null +++ b/src/main/resources/assets/quickly/models/block/oreturquoise.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickly:block/oreturquoise" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/models/item/rawturquoise.json b/src/main/resources/assets/quickly/models/item/rawturquoise.json new file mode 100644 index 0000000..ebf36b4 --- /dev/null +++ b/src/main/resources/assets/quickly/models/item/rawturquoise.json @@ -0,0 +1,6 @@ +{ + "parent": "item/coal", + "textures": { + "layer0": "quickly:item/rawturquoise" + } +} diff --git a/src/main/resources/assets/quickly/models/item/turquoiseingot.json b/src/main/resources/assets/quickly/models/item/turquoiseingot.json new file mode 100644 index 0000000..feaf66e --- /dev/null +++ b/src/main/resources/assets/quickly/models/item/turquoiseingot.json @@ -0,0 +1,6 @@ +{ + "parent": "item/coal", + "textures": { + "layer0": "quickly:item/turquoiseingot" + } +} diff --git a/src/main/resources/assets/quickly/textures/block/blockturquoise.png b/src/main/resources/assets/quickly/textures/block/blockturquoise.png new file mode 100644 index 0000000..40a4fda Binary files /dev/null and b/src/main/resources/assets/quickly/textures/block/blockturquoise.png differ diff --git a/src/main/resources/assets/quickly/textures/block/oredeepslateturquoise.png b/src/main/resources/assets/quickly/textures/block/oredeepslateturquoise.png new file mode 100644 index 0000000..da7976b Binary files /dev/null and b/src/main/resources/assets/quickly/textures/block/oredeepslateturquoise.png differ diff --git a/src/main/resources/assets/quickly/textures/block/oreturquoise.png b/src/main/resources/assets/quickly/textures/block/oreturquoise.png new file mode 100644 index 0000000..01dfec1 Binary files /dev/null and b/src/main/resources/assets/quickly/textures/block/oreturquoise.png differ diff --git a/src/main/resources/assets/quickly/textures/item/rawturquoise.png b/src/main/resources/assets/quickly/textures/item/rawturquoise.png new file mode 100644 index 0000000..a0c844f Binary files /dev/null and b/src/main/resources/assets/quickly/textures/item/rawturquoise.png differ diff --git a/src/main/resources/assets/quickly/textures/item/turquoiseingot.png b/src/main/resources/assets/quickly/textures/item/turquoiseingot.png new file mode 100644 index 0000000..4cc0e01 Binary files /dev/null and b/src/main/resources/assets/quickly/textures/item/turquoiseingot.png differ diff --git a/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 0000000..b494550 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,7 @@ + { + "replace": false, + "values": [ + "quickly:oreturquoise", + "quickly:oredeepslateturquoise" + ] + } \ No newline at end of file diff --git a/src/main/resources/data/quickly/recipe/blasting_turquoiseingot.json b/src/main/resources/data/quickly/recipe/blasting_turquoiseingot.json new file mode 100644 index 0000000..ad039e9 --- /dev/null +++ b/src/main/resources/data/quickly/recipe/blasting_turquoiseingot.json @@ -0,0 +1,7 @@ +{ + "type": "minecraft:blasting", + "ingredient": "quickly:rawturquoise", + "result": {"id":"quickly:turquoiseingot"}, + "experience": 0.0, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/quickly/recipe/shaped_blockturquoise.json b/src/main/resources/data/quickly/recipe/shaped_blockturquoise.json new file mode 100644 index 0000000..a088f86 --- /dev/null +++ b/src/main/resources/data/quickly/recipe/shaped_blockturquoise.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "ttt", + "ttt", + "ttt" + ], + "key": { + "t": "quickly:turquoiseingot" + }, + "result": { + "id": "quickly:blockturquoise", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickly/recipe/shapeless_turquoise.json b/src/main/resources/data/quickly/recipe/shapeless_turquoise.json new file mode 100644 index 0000000..c83b916 --- /dev/null +++ b/src/main/resources/data/quickly/recipe/shapeless_turquoise.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + "quickly:blockturquoise" + ], + "result": { + "id": "quickly:turquoiseingot", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickly/tag/items/ores/oreturquoise.json b/src/main/resources/data/quickly/tag/items/ores/oreturquoise.json new file mode 100644 index 0000000..9cf4650 --- /dev/null +++ b/src/main/resources/data/quickly/tag/items/ores/oreturquoise.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "quickly:oreturquoise" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/quickly/tags/block/mineable/pickaxe.json b/src/main/resources/data/quickly/tags/block/mineable/pickaxe.json new file mode 100644 index 0000000..b494550 --- /dev/null +++ b/src/main/resources/data/quickly/tags/block/mineable/pickaxe.json @@ -0,0 +1,7 @@ + { + "replace": false, + "values": [ + "quickly:oreturquoise", + "quickly:oredeepslateturquoise" + ] + } \ No newline at end of file diff --git a/src/main/resources/data/quickly/worldgen/configured_feature/oreturquoise.json b/src/main/resources/data/quickly/worldgen/configured_feature/oreturquoise.json new file mode 100644 index 0000000..a2ff09d --- /dev/null +++ b/src/main/resources/data/quickly/worldgen/configured_feature/oreturquoise.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:ore", + "config": { + "discard_chance_on_air_exposure": 0.0, + "size": 10, + "targets": [ + { + "state": { + "Name": "quickly:oreturquoise" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + } + }, + { + "state": { + "Name": "quickly:oredeepslateturquoise" + }, + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + } + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/quickly/worldgen/placed_feature/oreturquoise.json b/src/main/resources/data/quickly/worldgen/placed_feature/oreturquoise.json new file mode 100644 index 0000000..1307d4c --- /dev/null +++ b/src/main/resources/data/quickly/worldgen/placed_feature/oreturquoise.json @@ -0,0 +1,27 @@ +{ + "feature": "quickly:oreturquoise", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "max_inclusive": { + "absolute": 128 + }, + "min_inclusive": { + "absolute": -120 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} \ No newline at end of file