From 063dbdf0e407a724bb6d768a7d94a73fa725af7a Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Wed, 2 Jul 2025 00:16:10 +0200 Subject: [PATCH] added quickiepowder ore --- gradle.properties | 2 +- .../block/BlockOreDeepslateSpeedpowder.java | 31 ++++++++++++++++++ .../quickiemod/block/BlockOreSpeedpowder.java | 31 ++++++++++++++++++ .../jottyfan/quickiemod/block/ModBlocks.java | 6 ++++ .../quickiemod/feature/ModFeatures.java | 3 ++ .../quickiemod/identifier/ModIdentifiers.java | 2 ++ .../blockstates/oredeepslatespeedpowder.json | 7 ++++ .../blockstates/orespeedpowder.json | 7 ++++ .../items/oredeepslatespeedpowder.json | 6 ++++ .../quickiemod/items/orespeedpowder.json | 6 ++++ .../assets/quickiemod/lang/de_de.json | 2 ++ .../assets/quickiemod/lang/en_us.json | 2 ++ .../models/block/oredeepslatespeedpowder.json | 6 ++++ .../models/block/orespeedpowder.json | 6 ++++ .../models/item/oredeepslatespeedpowder.json | 10 ++++++ .../models/item/orespeedpowder.json | 10 ++++++ .../block/oredeepslatespeedpowder.png | Bin 0 -> 5594 bytes .../textures/block/orespeedpowder.png | Bin 0 -> 5308 bytes .../tags/block/mineable/pickaxe.json | 4 ++- .../blocks/oredeepslatespeedpowder.json | 20 +++++++++++ .../loot_table/blocks/orespeedpowder.json | 20 +++++++++++ .../tag/items/ores/orespeedpowder.json | 6 ++++ .../tags/block/mineable/pickaxe.json | 4 ++- .../configured_feature/orespeedpowder.json | 27 +++++++++++++++ .../placed_feature/orespeedpowder.json | 27 +++++++++++++++ 25 files changed, 242 insertions(+), 3 deletions(-) create mode 100644 src/main/java/de/jottyfan/quickiemod/block/BlockOreDeepslateSpeedpowder.java create mode 100644 src/main/java/de/jottyfan/quickiemod/block/BlockOreSpeedpowder.java create mode 100644 src/main/resources/assets/quickiemod/blockstates/oredeepslatespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/blockstates/orespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/items/oredeepslatespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/items/orespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/models/block/oredeepslatespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/models/block/orespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/models/item/oredeepslatespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/models/item/orespeedpowder.json create mode 100644 src/main/resources/assets/quickiemod/textures/block/oredeepslatespeedpowder.png create mode 100644 src/main/resources/assets/quickiemod/textures/block/orespeedpowder.png create mode 100644 src/main/resources/data/quickiemod/loot_table/blocks/oredeepslatespeedpowder.json create mode 100644 src/main/resources/data/quickiemod/loot_table/blocks/orespeedpowder.json create mode 100644 src/main/resources/data/quickiemod/tag/items/ores/orespeedpowder.json create mode 100644 src/main/resources/data/quickiemod/worldgen/configured_feature/orespeedpowder.json create mode 100644 src/main/resources/data/quickiemod/worldgen/placed_feature/orespeedpowder.json diff --git a/gradle.properties b/gradle.properties index 9e95b84..71c2848 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ yarn_mappings=1.21.7+build.2 loader_version=0.16.14 # Mod Properties -mod_version=1.21.7.0 +mod_version=1.21.7.1 maven_group=de.jottyfan.quickiemod archives_base_name=quickiemod diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockOreDeepslateSpeedpowder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockOreDeepslateSpeedpowder.java new file mode 100644 index 0000000..999d5c1 --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockOreDeepslateSpeedpowder.java @@ -0,0 +1,31 @@ +package de.jottyfan.quickiemod.block; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.block.help.IntProviderHelper; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +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; + +/** + * + * @author jotty + * + */ +public class BlockOreDeepslateSpeedpowder extends ExperienceDroppingBlock { + + public BlockOreDeepslateSpeedpowder(Identifier identifier) { + super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).requiresTool().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SPEEDPOWDER, 2) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/BlockOreSpeedpowder.java b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSpeedpowder.java new file mode 100644 index 0000000..fb42e5c --- /dev/null +++ b/src/main/java/de/jottyfan/quickiemod/block/BlockOreSpeedpowder.java @@ -0,0 +1,31 @@ +package de.jottyfan.quickiemod.block; + +import java.util.Arrays; +import java.util.List; + +import de.jottyfan.quickiemod.block.help.IntProviderHelper; +import de.jottyfan.quickiemod.item.ModItems; +import net.minecraft.block.BlockState; +import net.minecraft.block.ExperienceDroppingBlock; +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; + +/** + * + * @author jotty + * + */ +public class BlockOreSpeedpowder extends ExperienceDroppingBlock { + + public BlockOreSpeedpowder(Identifier identifier) { + super(IntProviderHelper.of(0, 2), Settings.create().strength(2.5f).hardness(1.9f).requiresTool().registryKey(RegistryKey.of(RegistryKeys.BLOCK, identifier))); + } + + @Override + public List getDroppedStacks(BlockState state, Builder builder) { + return Arrays.asList(new ItemStack[] { new ItemStack(ModItems.ITEM_SPEEDPOWDER) }); + } +} diff --git a/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java b/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java index dd00aa1..56a460e 100644 --- a/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java +++ b/src/main/java/de/jottyfan/quickiemod/block/ModBlocks.java @@ -53,6 +53,10 @@ public class ModBlocks { new BlockOreSandSalpeter(ModIdentifiers.BLOCK_ORESANDSALPETER)); public static final Block BLOCK_ORESULFOR = registerBlock(ModIdentifiers.BLOCK_ORESULFOR, new BlockOreSulphor(ModIdentifiers.BLOCK_ORESULFOR)); + public static final Block BLOCK_ORESPEEDPOWDER = registerBlock(ModIdentifiers.BLOCK_ORESPEEDPOWDER, + new BlockOreSpeedpowder(ModIdentifiers.BLOCK_ORESPEEDPOWDER)); + public static final Block BLOCK_OREDEEPSLATESPEEDPOWDER = registerBlock(ModIdentifiers.BLOCK_OREDEEPSLATESPEEDPOWDER, + new BlockOreDeepslateSpeedpowder(ModIdentifiers.BLOCK_OREDEEPSLATESPEEDPOWDER)); public static final Block BLOCK_SANDSALPETER = registerBlock(ModIdentifiers.BLOCK_SANDSALPETER, new BlockSandSalpeter(ModIdentifiers.BLOCK_SANDSALPETER)); public static final Block BLOCK_KELPSTACK = registerBlock(ModIdentifiers.BLOCK_KELPSTACK, @@ -114,6 +118,8 @@ public class ModBlocks { blocks.add(BLOCK_ORESALPETER); blocks.add(BLOCK_ORESANDSALPETER); blocks.add(BLOCK_ORESULFOR); + blocks.add(BLOCK_ORESPEEDPOWDER); + blocks.add(BLOCK_OREDEEPSLATESPEEDPOWDER); blocks.add(BLOCK_SANDSALPETER); blocks.add(BLOCK_KELPSTACK); blocks.add(BLOCK_DRILL_DOWN); diff --git a/src/main/java/de/jottyfan/quickiemod/feature/ModFeatures.java b/src/main/java/de/jottyfan/quickiemod/feature/ModFeatures.java index 30350e4..d0db514 100644 --- a/src/main/java/de/jottyfan/quickiemod/feature/ModFeatures.java +++ b/src/main/java/de/jottyfan/quickiemod/feature/ModFeatures.java @@ -26,6 +26,7 @@ public class ModFeatures { public static final RegistryKey> CF_DIRTSALPETER = genCf("dirtsalpeter"); public static final RegistryKey> CF_SANDSALPETER = genCf("sandsalpeter"); public static final RegistryKey> CF_ORESANDSALPETER = genCf("oresandsalpeter"); + public static final RegistryKey> CF_ORESPEEDPOWDER = genCf("orespeedpowder"); public static final RegistryKey PF_ORESULPHOR = genPf("oresulphor"); public static final RegistryKey PF_OREDEEPSLATESULPHOR = genPf("oredeepslatesulphor"); @@ -35,6 +36,7 @@ public class ModFeatures { public static final RegistryKey PF_DIRTSALPETER = genPf("dirtsalpeter"); public static final RegistryKey PF_SANDSALPETER = genPf("sandsalpeter"); public static final RegistryKey PF_ORESANDSALPETER = genPf("oresandsalpeter"); + public static final RegistryKey PF_ORESPEEDPOWDER = genPf("orespeedpowder"); private static final RegistryKey> genCf(String name) { return RegistryKey.of(RegistryKeys.CONFIGURED_FEATURE, Identifier.of(Quickiemod.MOD_ID, name)); @@ -54,6 +56,7 @@ public class ModFeatures { bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_SANDSALPETER); bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESANDSALPETER); bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_OREDEEPSLATESULPHOR); + bmc.getGenerationSettings().addFeature(GenerationStep.Feature.UNDERGROUND_ORES, PF_ORESPEEDPOWDER); }); // Nether features diff --git a/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java index 97f1dcc..79185ed 100644 --- a/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java +++ b/src/main/java/de/jottyfan/quickiemod/identifier/ModIdentifiers.java @@ -59,6 +59,8 @@ public class ModIdentifiers { public static final Identifier BLOCK_ORESALPETER = Identifier.of(Quickiemod.MOD_ID, "oresalpeter"); public static final Identifier BLOCK_ORESANDSALPETER = Identifier.of(Quickiemod.MOD_ID, "oresandsalpeter"); public static final Identifier BLOCK_ORESULFOR = Identifier.of(Quickiemod.MOD_ID, "oresulphor"); + public static final Identifier BLOCK_ORESPEEDPOWDER = Identifier.of(Quickiemod.MOD_ID, "orespeedpowder"); + public static final Identifier BLOCK_OREDEEPSLATESPEEDPOWDER = Identifier.of(Quickiemod.MOD_ID, "oredeepslatespeedpowder"); public static final Identifier BLOCK_SANDSALPETER = Identifier.of(Quickiemod.MOD_ID, "sandsalpeter"); public static final Identifier BLOCK_KELPSTACK = Identifier.of(Quickiemod.MOD_ID, "kelpstack"); public static final Identifier BLOCK_COTTONPLANT = Identifier.of(Quickiemod.MOD_ID, "blockcottonplant"); diff --git a/src/main/resources/assets/quickiemod/blockstates/oredeepslatespeedpowder.json b/src/main/resources/assets/quickiemod/blockstates/oredeepslatespeedpowder.json new file mode 100644 index 0000000..8550e7d --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/oredeepslatespeedpowder.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/oredeepslatespeedpowder" + } + } +} diff --git a/src/main/resources/assets/quickiemod/blockstates/orespeedpowder.json b/src/main/resources/assets/quickiemod/blockstates/orespeedpowder.json new file mode 100644 index 0000000..2d8548c --- /dev/null +++ b/src/main/resources/assets/quickiemod/blockstates/orespeedpowder.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "quickiemod:block/orespeedpowder" + } + } +} diff --git a/src/main/resources/assets/quickiemod/items/oredeepslatespeedpowder.json b/src/main/resources/assets/quickiemod/items/oredeepslatespeedpowder.json new file mode 100644 index 0000000..cc13a89 --- /dev/null +++ b/src/main/resources/assets/quickiemod/items/oredeepslatespeedpowder.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickiemod:block/oredeepslatespeedpowder" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/items/orespeedpowder.json b/src/main/resources/assets/quickiemod/items/orespeedpowder.json new file mode 100644 index 0000000..03ee01c --- /dev/null +++ b/src/main/resources/assets/quickiemod/items/orespeedpowder.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickiemod:block/orespeedpowder" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/lang/de_de.json b/src/main/resources/assets/quickiemod/lang/de_de.json index 5724e12..2abcc34 100644 --- a/src/main/resources/assets/quickiemod/lang/de_de.json +++ b/src/main/resources/assets/quickiemod/lang/de_de.json @@ -59,6 +59,8 @@ "block.quickiemod.oresandsalpeter": "Salpetergestein", "block.quickiemod.oresulphor": "Schwefelgestein", "block.quickiemod.oredeepslatesulphor": "Schwefeltiefengestein", + "block.quickiemod.orespeedpowder": "Eilpulvererz", + "block.quickiemod.oredeepslatespeedpowder": "Eilpulvertiefengesteinerz", "block.quickiemod.dirtsalpeter": "Salpetererde", "block.quickiemod.sandsalpeter": "Salpetersand", "block.quickiemod.constructionborder": "Bauplangrenzblock", diff --git a/src/main/resources/assets/quickiemod/lang/en_us.json b/src/main/resources/assets/quickiemod/lang/en_us.json index 0f1c7bd..bcbf3a0 100644 --- a/src/main/resources/assets/quickiemod/lang/en_us.json +++ b/src/main/resources/assets/quickiemod/lang/en_us.json @@ -59,6 +59,8 @@ "block.quickiemod.oresandsalpeter": "salpeter stone", "block.quickiemod.oresulphor": "sulfur stone", "block.quickiemod.oredeepslatesulphor": "deepslate sulfur stone", + "block.quickiemod.orespeedpowder": "speed powder ore", + "block.quickiemod.oredeepslatespeedpowder": "deepslate speed powder ore", "block.quickiemod.dirtsalpeter": "salpeter dirt", "block.quickiemod.sandsalpeter": "salpeter sand", "block.quickiemod.constructionborder": "building plan border block", diff --git a/src/main/resources/assets/quickiemod/models/block/oredeepslatespeedpowder.json b/src/main/resources/assets/quickiemod/models/block/oredeepslatespeedpowder.json new file mode 100644 index 0000000..1194dbf --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/oredeepslatespeedpowder.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/oredeepslatespeedpowder" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/block/orespeedpowder.json b/src/main/resources/assets/quickiemod/models/block/orespeedpowder.json new file mode 100644 index 0000000..efcfc01 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/block/orespeedpowder.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "quickiemod:block/orespeedpowder" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/oredeepslatespeedpowder.json b/src/main/resources/assets/quickiemod/models/item/oredeepslatespeedpowder.json new file mode 100644 index 0000000..12b69fd --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/oredeepslatespeedpowder.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/oredeepslatespeedpowder", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/models/item/orespeedpowder.json b/src/main/resources/assets/quickiemod/models/item/orespeedpowder.json new file mode 100644 index 0000000..da5d6a0 --- /dev/null +++ b/src/main/resources/assets/quickiemod/models/item/orespeedpowder.json @@ -0,0 +1,10 @@ +{ + "parent": "quickiemod:block/orespeedpowder", + "display": { + "thirdperson": { + "rotation": [ 10, -45, 170 ], + "translation": [ 0, 1.5, -2.75 ], + "scale": [ 0.375, 0.375, 0.375 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickiemod/textures/block/oredeepslatespeedpowder.png b/src/main/resources/assets/quickiemod/textures/block/oredeepslatespeedpowder.png new file mode 100644 index 0000000000000000000000000000000000000000..aa13b99ea2d1fd77c03b6a6cd16268f5dc8aaf30 GIT binary patch literal 5594 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