added turquoise ore

This commit is contained in:
Jottyfan
2025-12-23 15:35:39 +01:00
parent a960f79efd
commit 455f8f9f86
35 changed files with 329 additions and 8 deletions

View File

@@ -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();
}
}

View File

@@ -13,7 +13,5 @@ public class QuicklyClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
QuicklyItems.registerModItems();
QuicklyBlocks.registerModBlocks();
}
}

View File

@@ -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<ItemStack> getDrops(BlockState state, Builder builder) {
return Arrays.asList(new ItemStack[] { new ItemStack(QuicklyItems.RAWTURQUOISE, 2) });
}
}

View File

@@ -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<ItemStack> getDrops(BlockState state, Builder builder) {
return Arrays.asList(new ItemStack[] { new ItemStack(QuicklyItems.RAWTURQUOISE) });
}
}

View File

@@ -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<Properties, Block> function) {
return QuicklyBlocks.registerBlock(name, Properties.of(), function);
}
private static final Block registerBlock(String name, Properties properties, Function<Properties, Block> 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);
});
}
}

View File

@@ -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<ConfiguredFeature<?, ?>> CF_ORETURQUOISE = genCf("oreturquoise");
public static final ResourceKey<PlacedFeature> PF_ORETURQUOISE = genPf("oreturquoise");
private static final ResourceKey<ConfiguredFeature<?, ?>> genCf(String name) {
return ResourceKey.create(Registries.CONFIGURED_FEATURE, Identifier.fromNamespaceAndPath(Quickly.MOD_ID, name));
}
private static final ResourceKey<PlacedFeature> 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);
}
}

View File

@@ -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<Properties, Item> function) {
return QuicklyItems.registerItem(name, new Item.Properties(), function);
}
private static final Item registerItem(String name, Item.Properties properties, Function<Properties, Item> 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);
});
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "quickly:block/blockturquoise"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "quickly:block/oredeepslateturquoise"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "quickly:block/oreturquoise"
}
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "quickly:block/blockturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "quickly:block/oredeepslateturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "quickly:block/oreturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "quickly:item/rawturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "quickly:item/turquoiseingot"
}
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "quickly:block/blockturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "quickly:block/oredeepslateturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "quickly:block/oreturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "item/coal",
"textures": {
"layer0": "quickly:item/rawturquoise"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "item/coal",
"textures": {
"layer0": "quickly:item/turquoiseingot"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"quickly:oreturquoise",
"quickly:oredeepslateturquoise"
]
}

View File

@@ -0,0 +1,7 @@
{
"type": "minecraft:blasting",
"ingredient": "quickly:rawturquoise",
"result": {"id":"quickly:turquoiseingot"},
"experience": 0.0,
"cookingtime": 200
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"ttt",
"ttt",
"ttt"
],
"key": {
"t": "quickly:turquoiseingot"
},
"result": {
"id": "quickly:blockturquoise",
"count": 1
}
}

View File

@@ -0,0 +1,10 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
"quickly:blockturquoise"
],
"result": {
"id": "quickly:turquoiseingot",
"count": 9
}
}

View File

@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"quickly:oreturquoise"
]
}

View File

@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"quickly:oreturquoise",
"quickly:oredeepslateturquoise"
]
}

View File

@@ -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"
}
}
]
}
}

View File

@@ -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"
}
]
}