From 5a715417e9494a45938390bcf34d40643df6ef00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0smail?= Date: Wed, 23 Jul 2025 20:52:12 +0300 Subject: [PATCH] Villager and trades added. Textures updated. --- .../gamblingplus/GamblingPlusMod.java | 8 +- .../gamblingplus/block/ModBlocks.java | 32 +++- .../gamblingplus/datagen/DataGenerators.java | 4 + .../datagen/ModBlockLootTableProvider.java | 4 + .../datagen/ModBlockStateProvider.java | 4 + .../datagen/ModBlockTagProvider.java | 4 + .../datagen/ModItemModelProvider.java | 4 + .../datagen/ModRecipeProvider.java | 4 + .../gamblingplus/event/ModEvents.java | 142 ++++++++++++++++++ .../gamblingplus/item/ModItems.java | 10 ++ .../item/custom/CatchingEggItem.java | 48 ++++++ .../gamblingplus/villager/ModVillagers.java | 40 +++-- .../blockstates/ruby_deepslate_ore.json | 7 + .../blockstates/ruby_ore.json | 7 + .../ikgamblingplusmod/items/catching_egg.json | 6 + .../items/ruby_deepslate_ore.json | 6 + .../ikgamblingplusmod/items/ruby_ore.json | 6 + .../assets/ikgamblingplusmod/lang/en_us.json | 8 + .../models/block/ruby_deepslate_ore.json | 6 + .../models/block/ruby_ore.json | 6 + .../models/item/catching_egg.json | 6 + .../models/item/ruby_deepslate_ore.json | 3 + .../models/item/ruby_ore.json | 3 + .../textures/block/raw_ruby_block.png | Bin 811 -> 293 bytes .../textures/block/ruby_block.png | Bin 528 -> 216 bytes .../textures/block/ruby_deepslate_ore.png | Bin 0 -> 665 bytes .../textures/block/ruby_ore.png | Bin 0 -> 600 bytes .../villager/profession/ruby_worker.png | Bin 0 -> 2073 bytes .../textures/item/catching_egg.png | Bin 0 -> 285 bytes .../textures/item/raw_ruby.png | Bin 544 -> 239 bytes .../ikgamblingplusmod/textures/item/ruby.png | Bin 397 -> 256 bytes .../loot_table/blocks/raw_ruby_block.json | 21 +++ .../loot_table/blocks/ruby_block.json | 21 +++ .../loot_table/blocks/ruby_deepslate_ore.json | 61 ++++++++ .../loot_table/blocks/ruby_ore.json | 52 +++++++ .../data/ikgamblingplusmod/recipe/ruby.json | 11 ++ .../ikgamblingplusmod/recipe/ruby_block.json | 16 ++ .../recipe/ruby_from_blasting_raw_ruby.json | 12 ++ .../recipe/ruby_from_smelting_raw_ruby.json | 11 ++ .../tags/block/mineable/pickaxe.json | 9 ++ .../tags/block/needs_diamond_tool.json | 6 + .../minecraft/tags/block/needs_iron_tool.json | 8 + .../acquirable_job_site.json | 9 ++ 43 files changed, 585 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/datagen/DataGenerators.java create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockLootTableProvider.java create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockStateProvider.java create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockTagProvider.java create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModItemModelProvider.java create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModRecipeProvider.java create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/event/ModEvents.java create mode 100644 src/main/java/com/ismailkaygisiz/gamblingplus/item/custom/CatchingEggItem.java create mode 100644 src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_deepslate_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/items/catching_egg.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/items/ruby_deepslate_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/items/ruby_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/models/block/ruby_deepslate_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/models/block/ruby_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/models/item/catching_egg.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/models/item/ruby_deepslate_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/models/item/ruby_ore.json create mode 100644 src/main/resources/assets/ikgamblingplusmod/textures/block/ruby_deepslate_ore.png create mode 100644 src/main/resources/assets/ikgamblingplusmod/textures/block/ruby_ore.png create mode 100644 src/main/resources/assets/ikgamblingplusmod/textures/entity/villager/profession/ruby_worker.png create mode 100644 src/main/resources/assets/ikgamblingplusmod/textures/item/catching_egg.png create mode 100644 src/main/resources/data/ikgamblingplusmod/loot_table/blocks/raw_ruby_block.json create mode 100644 src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_block.json create mode 100644 src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_deepslate_ore.json create mode 100644 src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_ore.json create mode 100644 src/main/resources/data/ikgamblingplusmod/recipe/ruby.json create mode 100644 src/main/resources/data/ikgamblingplusmod/recipe/ruby_block.json create mode 100644 src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_blasting_raw_ruby.json create mode 100644 src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_smelting_raw_ruby.json create mode 100644 src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json create mode 100644 src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json create mode 100644 src/main/resources/data/minecraft/tags/block/needs_iron_tool.json create mode 100644 src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/GamblingPlusMod.java b/src/main/java/com/ismailkaygisiz/gamblingplus/GamblingPlusMod.java index 93bd40d..09c5268 100644 --- a/src/main/java/com/ismailkaygisiz/gamblingplus/GamblingPlusMod.java +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/GamblingPlusMod.java @@ -2,6 +2,7 @@ package com.ismailkaygisiz.gamblingplus; import com.ismailkaygisiz.gamblingplus.block.ModBlocks; import com.ismailkaygisiz.gamblingplus.util.ModCreativeTabs; +import com.ismailkaygisiz.gamblingplus.villager.ModVillagers; import com.mojang.logging.LogUtils; import com.ismailkaygisiz.gamblingplus.item.ModItems; //import com.ismailkaygisiz.gamblingplus.villager.ModVillagers; @@ -31,9 +32,8 @@ public final class GamblingPlusMod { FMLCommonSetupEvent.getBus(modBusGroup).addListener(this::commonSetup); ModBlocks.register(modBusGroup); - //ModBlocks.registerBlockItems(modBusGroup); ModItems.register(modBusGroup); - //ModVillagers.register(modBusGroup); + ModVillagers.register(modBusGroup); ModCreativeTabs.register(modBusGroup); // Register the item to a creative tab @@ -55,6 +55,10 @@ public final class GamblingPlusMod { if(event.getTabKey() == CreativeModeTabs.BUILDING_BLOCKS){ event.accept(ModBlocks.RUBY_BLOCK); event.accept(ModBlocks.RAW_RUBY_BLOCK); + event.accept(ModBlocks.RUBY_ORE); + event.accept(ModBlocks.RAW_DEEPSLATE_ORE); + event.accept(ModItems.CATCHING_EGG); + } } diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/block/ModBlocks.java b/src/main/java/com/ismailkaygisiz/gamblingplus/block/ModBlocks.java index 9c6ff9a..c4532a9 100644 --- a/src/main/java/com/ismailkaygisiz/gamblingplus/block/ModBlocks.java +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/block/ModBlocks.java @@ -5,11 +5,13 @@ import com.ismailkaygisiz.gamblingplus.item.ModItems; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.DropExperienceBlock; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MapColor; @@ -23,13 +25,31 @@ import java.util.function.Supplier; public class ModBlocks { public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, GamblingPlusMod.MOD_ID); - public static final RegistryObject RUBY_BLOCK = registerBlock("ruby_block", ()-> new Block(BlockBehaviour.Properties.of() - .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "ruby_block"))))) - .strength(.1f).requiresCorrectToolForDrops().sound(SoundType.IRON))); + public static final RegistryObject RUBY_BLOCK = registerBlock("ruby_block", + ()-> new Block(BlockBehaviour.Properties.of() + .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "ruby_block"))))) + .strength(.1f) + .requiresCorrectToolForDrops() + .sound(SoundType.IRON))); - public static final RegistryObject RAW_RUBY_BLOCK = registerBlock("raw_ruby_block", ()-> new Block(BlockBehaviour.Properties.of() - .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "raw_ruby_block"))))) - .strength(.1f).requiresCorrectToolForDrops())); + public static final RegistryObject RAW_RUBY_BLOCK = registerBlock("raw_ruby_block", + ()-> new Block(BlockBehaviour.Properties.of() + .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "raw_ruby_block"))))) + .strength(.1f) + .requiresCorrectToolForDrops())); + + public static final RegistryObject RUBY_ORE = registerBlock("ruby_ore", + ()-> new DropExperienceBlock(UniformInt.of(2,4),BlockBehaviour.Properties.of() + .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "ruby_ore"))))) + .strength(.4f) + .requiresCorrectToolForDrops())); + + public static final RegistryObject RAW_DEEPSLATE_ORE = registerBlock("ruby_deepslate_ore", + ()-> new DropExperienceBlock(UniformInt.of(3,6),BlockBehaviour.Properties.of() + .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "ruby_deepslate_ore"))))) + .strength(.4f) + .requiresCorrectToolForDrops() + .sound(SoundType.DEEPSLATE))); public static void registerBlockItem(String name, RegistryObject block){ ModItems.ITEMS.register(name,()-> new BlockItem(block.get(), new Item.Properties() diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/DataGenerators.java b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/DataGenerators.java new file mode 100644 index 0000000..291f7c1 --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/DataGenerators.java @@ -0,0 +1,4 @@ +package com.ismailkaygisiz.gamblingplus.datagen; + +public class DataGenerators { +} diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockLootTableProvider.java b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockLootTableProvider.java new file mode 100644 index 0000000..d1ccbab --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockLootTableProvider.java @@ -0,0 +1,4 @@ +package com.ismailkaygisiz.gamblingplus.datagen; + +public class ModBlockLootTableProvider { +} diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockStateProvider.java b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockStateProvider.java new file mode 100644 index 0000000..d1033a4 --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockStateProvider.java @@ -0,0 +1,4 @@ +package com.ismailkaygisiz.gamblingplus.datagen; + +public class ModBlockStateProvider { +} diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockTagProvider.java b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockTagProvider.java new file mode 100644 index 0000000..c4157b5 --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModBlockTagProvider.java @@ -0,0 +1,4 @@ +package com.ismailkaygisiz.gamblingplus.datagen; + +public class ModBlockTagProvider { +} diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModItemModelProvider.java b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModItemModelProvider.java new file mode 100644 index 0000000..dece7d2 --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModItemModelProvider.java @@ -0,0 +1,4 @@ +package com.ismailkaygisiz.gamblingplus.datagen; + +public class ModItemModelProvider { +} diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModRecipeProvider.java b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModRecipeProvider.java new file mode 100644 index 0000000..b3a09a8 --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/datagen/ModRecipeProvider.java @@ -0,0 +1,4 @@ +package com.ismailkaygisiz.gamblingplus.datagen; + +public class ModRecipeProvider { +} diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/event/ModEvents.java b/src/main/java/com/ismailkaygisiz/gamblingplus/event/ModEvents.java new file mode 100644 index 0000000..5aac34c --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/event/ModEvents.java @@ -0,0 +1,142 @@ +package com.ismailkaygisiz.gamblingplus.event; + + +import com.ismailkaygisiz.gamblingplus.GamblingPlusMod; +import com.ismailkaygisiz.gamblingplus.item.ModItems; +import com.ismailkaygisiz.gamblingplus.villager.ModVillagers; +import net.minecraft.core.Holder; +import net.minecraft.world.entity.npc.VillagerTrades; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.alchemy.PotionBrewing; +import net.minecraft.world.item.alchemy.Potions; +import net.minecraft.world.item.enchantment.EnchantedItemInUse; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentInstance; +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.item.trading.ItemCost; +import net.minecraft.world.item.trading.MerchantOffer; +import net.minecraft.world.level.Level; +import net.minecraftforge.event.village.VillagerTradesEvent; +import net.minecraftforge.event.village.WandererTradesEvent; +import net.minecraftforge.eventbus.api.listener.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.ForgeRegistries; + +import java.util.*; + +import static net.minecraft.core.component.predicates.DataComponentPredicates.ENCHANTMENTS; + +@Mod.EventBusSubscriber(modid = GamblingPlusMod.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE) +public class ModEvents { + + + @SubscribeEvent + public static void addCustomTrades(VillagerTradesEvent event) { + if(event.getType() == ModVillagers.RUBY_WORKER.getKey()) { + var trades = event.getTrades(); + + trades.get(1).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.COPPER_INGOT, pRandom.nextInt(3,6)), + new ItemStack(ModItems.RUBY.get(), 1), 12, 1, 0.05f)); + + trades.get(1).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(ModItems.RUBY.get(), pRandom.nextInt(3,8)), + new ItemStack(Items.EMERALD, 1), 12, 1, 0.05f)); + + trades.get(2).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, pRandom.nextInt(1,4)), + new ItemStack(Items.AMETHYST_SHARD, 2), 12, 3, 0.05f)); + + trades.get(3).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, pRandom.nextInt(5,11)), + new ItemStack(Items.BLAZE_POWDER, 1), 6, 5, 0.05f)); + + trades.get(3).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, pRandom.nextInt(2,5)), + new ItemStack(Items.FIREWORK_ROCKET, pRandom.nextInt(2,5)), 12, 5, 0.05f)); + + trades.get(4).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, pRandom.nextInt(30,46)), + new ItemStack(Items.SHULKER_BOX, 1), 4, 12, 0.05f)); + + trades.get(4).add((pTrader, pRandom) -> { + List> valuableEnchantments = List.of( + Enchantments.FORTUNE.getOrThrow(pTrader), + Enchantments.EFFICIENCY.getOrThrow(pTrader), + Enchantments.POWER.getOrThrow(pTrader), + Enchantments.SHARPNESS.getOrThrow(pTrader), + Enchantments.UNBREAKING.getOrThrow(pTrader), + Enchantments.MENDING.getOrThrow(pTrader), + Enchantments.LOOTING.getOrThrow(pTrader), + Enchantments.PROTECTION.getOrThrow(pTrader), + Enchantments.THORNS.getOrThrow(pTrader), + Enchantments.RESPIRATION.getOrThrow(pTrader), + Enchantments.FLAME.getOrThrow(pTrader), + Enchantments.SMITE.getOrThrow(pTrader), + Enchantments.INFINITY.getOrThrow(pTrader) + ); + + Holder selected = valuableEnchantments.get(pRandom.nextInt(valuableEnchantments.size())); + + ItemStack book = Items.BOOK.getDefaultInstance(); + book.enchant(selected, + selected.get().getMaxLevel() >= 4 ? + pRandom.nextInt(selected.get().getMaxLevel()-1, selected.get().getMaxLevel()+1): + selected.get().getMaxLevel()); + + return new MerchantOffer( + new ItemCost(Items.EMERALD, pRandom.nextInt(40, 65)), + Optional.of(new ItemCost(Items.BOOK, 1)), + book, + 6, 32, 0.05f + ); + }); + + trades.get(5).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, pRandom.nextInt(45,65)), + Optional.of(new ItemCost(Items.EGG, pRandom.nextInt(5,11))), + new ItemStack(ModItems.CATCHING_EGG.get(), 1), 6, 32, 0.05f)); + + trades.get(5).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD_BLOCK, pRandom.nextInt(12,21)), + Optional.of(new ItemCost(ModItems.RUBY.get(), 64)), + new ItemStack(Items.ELYTRA), + 1, 256, 0.05f + )); + } +/* + if(event.getType() == VillagerProfession.TOOLSMITH) { + var trades = event.getTrades(); + + trades.get(1).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 12), + new ItemStack(ModItems.CHISEL.get(), 1), 6, 4, 0.05f)); + + trades.get(1).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.DIAMOND, 19), + new ItemStack(ModItems.TOMAHAWK.get(), 1), 6, 4, 0.05f)); + + trades.get(2).add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 1), + new ItemStack(ModItems.RADIATION_STAFF.get(), 1), 1, 12, 0.05f)); + }*/ + } + + @SubscribeEvent + public static void addWanderingTrades(WandererTradesEvent event) { + /* + List genericTrades = event.getGenericTrades(); + List rareTrades = event.getRareTrades(); + + genericTrades.add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.EMERALD, 12), + new ItemStack(ModItems.RADIATION_STAFF.get(), 1), 1, 10, 0.2f + )); + + rareTrades.add((pTrader, pRandom) -> new MerchantOffer( + new ItemCost(Items.NETHERITE_INGOT, 8), + new ItemStack(ModItems.BAR_BRAWL_MUSIC_DISC.get(), 1), 1, 10, 0.2f + ));*/ + } +} \ No newline at end of file diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/item/ModItems.java b/src/main/java/com/ismailkaygisiz/gamblingplus/item/ModItems.java index ca407cd..30c09f3 100644 --- a/src/main/java/com/ismailkaygisiz/gamblingplus/item/ModItems.java +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/item/ModItems.java @@ -2,11 +2,13 @@ package com.ismailkaygisiz.gamblingplus.item; import com.ismailkaygisiz.gamblingplus.GamblingPlusMod; //import com.ismailkaygisiz.gamblingplus.item.SpecialEggItem; +import com.ismailkaygisiz.gamblingplus.item.custom.CatchingEggItem; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.Item; +import net.minecraft.world.item.Rarity; import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.item.Item.Properties; //import net.minecraftforge.event.CreativeModeTabEvent; @@ -30,6 +32,14 @@ public class ModItems { String.format("%s:%s", GamblingPlusMod.MOD_ID, "raw_ruby") ))))); + public static final RegistryObject CATCHING_EGG = ITEMS.register("catching_egg", () -> + new CatchingEggItem(new Item.Properties() + .setId(ResourceKey.create(Registries.ITEM, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "catching_egg")))) + .stacksTo(16) + .rarity(Rarity.UNCOMMON))); + + + /*public static final RegistryObject SPECIAL_EGG = ITEMS.register("special_egg", () -> new SpecialEggItem(new Properties().stacksTo(1))); diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/item/custom/CatchingEggItem.java b/src/main/java/com/ismailkaygisiz/gamblingplus/item/custom/CatchingEggItem.java new file mode 100644 index 0000000..31a0bdb --- /dev/null +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/item/custom/CatchingEggItem.java @@ -0,0 +1,48 @@ +package com.ismailkaygisiz.gamblingplus.item.custom; + +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.npc.Villager; +import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.SpawnEggItem; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; + +public class CatchingEggItem extends Item { + public CatchingEggItem(Properties pProperties) { + super(pProperties); + } + @Override + public InteractionResult interactLivingEntity(ItemStack pStack, Player pPlayer, LivingEntity pInteractionTarget, InteractionHand pUsedHand) { + if (pPlayer.level().isClientSide) { + return InteractionResult.PASS; + } + + EntityType type = pInteractionTarget.getType(); + Item spawnEgg = SpawnEggItem.byId(type); + + if (spawnEgg != null) { + pPlayer.addItem(new ItemStack(spawnEgg)); + + pInteractionTarget.discard(); + + if (!pPlayer.getAbilities().instabuild) { + pStack.shrink(1); + } + return InteractionResult.SUCCESS; + } + + return InteractionResult.PASS; + } + + +} diff --git a/src/main/java/com/ismailkaygisiz/gamblingplus/villager/ModVillagers.java b/src/main/java/com/ismailkaygisiz/gamblingplus/villager/ModVillagers.java index 8f654ad..7097bd8 100644 --- a/src/main/java/com/ismailkaygisiz/gamblingplus/villager/ModVillagers.java +++ b/src/main/java/com/ismailkaygisiz/gamblingplus/villager/ModVillagers.java @@ -1,25 +1,41 @@ -/*package com.ismailkaygisiz.gamblingplus.villager; +package com.ismailkaygisiz.gamblingplus.villager; +import com.google.common.collect.ImmutableSet; import com.ismailkaygisiz.gamblingplus.GamblingPlusMod; import com.ismailkaygisiz.gamblingplus.block.ModBlocks; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.ai.village.poi.PoiType; +import net.minecraft.world.entity.npc.Villager; import net.minecraft.world.entity.npc.VillagerProfession; import net.minecraft.world.entity.npc.VillagerType; +import net.minecraft.world.level.block.SoundType; import net.minecraftforge.eventbus.api.bus.BusGroup; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; + + public class ModVillagers { - public static final DeferredRegister PROFESSIONS = DeferredRegister.create(ForgeRegistries.VILLAGER_PROFESSIONS, GamblingPlusMod.MOD_ID); - public static final DeferredRegister TYPES = DeferredRegister.create(ForgeRegistries.VILLAGER_TYPES, GamblingPlusMod.MOD_ID); - public static final RegistryObject RUBY_WORKER = PROFESSIONS.register("ruby_worker", - () -> new VillagerProfession("ruby_worker", holder -> holder.is(ModBlocks.RUBY_SMITHING_TABLE.get().asItem().builtInRegistryHolder()), - holder -> holder.is(ModBlocks.RUBY_SMITHING_TABLE.get().asItem().builtInRegistryHolder()))); - public static final RegistryObject GAMBLER = PROFESSIONS.register("gambler", - () -> new VillagerProfession("gambler", holder -> holder.is(ModBlocks.GAMBLING_TABLE.get().asItem().builtInRegistryHolder()), - holder -> holder.is(ModBlocks.GAMBLING_TABLE.get().asItem().builtInRegistryHolder()))); + public static final DeferredRegister POI_TYPES = DeferredRegister.create(ForgeRegistries.POI_TYPES, GamblingPlusMod.MOD_ID); + + public static final DeferredRegister VILLAGER_PROFESSIONS + = DeferredRegister.create(ForgeRegistries.VILLAGER_PROFESSIONS, GamblingPlusMod.MOD_ID); + + public static final RegistryObject RUBY_POI = POI_TYPES.register("ruby_poi", + () -> new PoiType(ImmutableSet.copyOf(ModBlocks.RUBY_BLOCK.get().getStateDefinition().getPossibleStates()),1,1)); + + public static final RegistryObject RUBY_WORKER = VILLAGER_PROFESSIONS.register("ruby_worker", + () -> new VillagerProfession(Component.translatable("profession.ikgamblingplusmod.ruby_worker"), + poiTypeHolder -> poiTypeHolder.value() == RUBY_POI.get(), + poiTypeHolder -> poiTypeHolder.value()==RUBY_POI.get(), ImmutableSet.of(),ImmutableSet.of(), + SoundType.DEEPSLATE.getBreakSound())); + public static void register(BusGroup eventBus) { - PROFESSIONS.register(eventBus); - TYPES.register(eventBus); + POI_TYPES.register(eventBus); + VILLAGER_PROFESSIONS.register(eventBus); } -} */ \ No newline at end of file +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_deepslate_ore.json b/src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_deepslate_ore.json new file mode 100644 index 0000000..4c0b98b --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_deepslate_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ikgamblingplusmod:block/ruby_deepslate_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_ore.json b/src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_ore.json new file mode 100644 index 0000000..fda72aa --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/blockstates/ruby_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "ikgamblingplusmod:block/ruby_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/items/catching_egg.json b/src/main/resources/assets/ikgamblingplusmod/items/catching_egg.json new file mode 100644 index 0000000..3e3db9e --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/items/catching_egg.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "ikgamblingplusmod:item/catching_egg" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/items/ruby_deepslate_ore.json b/src/main/resources/assets/ikgamblingplusmod/items/ruby_deepslate_ore.json new file mode 100644 index 0000000..f9bddc6 --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/items/ruby_deepslate_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "ikgamblingplusmod:item/ruby_deepslate_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/items/ruby_ore.json b/src/main/resources/assets/ikgamblingplusmod/items/ruby_ore.json new file mode 100644 index 0000000..c2d13b1 --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/items/ruby_ore.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "ikgamblingplusmod:item/ruby_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/lang/en_us.json b/src/main/resources/assets/ikgamblingplusmod/lang/en_us.json index 685abca..832a989 100644 --- a/src/main/resources/assets/ikgamblingplusmod/lang/en_us.json +++ b/src/main/resources/assets/ikgamblingplusmod/lang/en_us.json @@ -3,5 +3,13 @@ "item.ikgamblingplusmod.raw_ruby": "Raw Ruby", "item.ikgamblingplusmod.ruby_block": "Block of Ruby", "item.ikgamblingplusmod.raw_ruby_block": "Block of Raw Ruby", + "item.ikgamblingplusmod.ruby_ore": "Ruby Ore", + "item.ikgamblingplusmod.ruby_deepslate_ore": "Ruby Deepslate Ore", + "item.ikgamblingplusmod.catching_egg": "Catching Egg", + + "profession.ikgamblingplusmod.ruby_worker": "Ruby Worker", + + + "creativetab.ikgamblingplusmod.gambling_tab": "Gambling Plus" } diff --git a/src/main/resources/assets/ikgamblingplusmod/models/block/ruby_deepslate_ore.json b/src/main/resources/assets/ikgamblingplusmod/models/block/ruby_deepslate_ore.json new file mode 100644 index 0000000..2db3b4f --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/models/block/ruby_deepslate_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "ikgamblingplusmod:block/ruby_deepslate_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/models/block/ruby_ore.json b/src/main/resources/assets/ikgamblingplusmod/models/block/ruby_ore.json new file mode 100644 index 0000000..36bf579 --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/models/block/ruby_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "ikgamblingplusmod:block/ruby_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/ikgamblingplusmod/models/item/catching_egg.json b/src/main/resources/assets/ikgamblingplusmod/models/item/catching_egg.json new file mode 100644 index 0000000..5d2e0cd --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/models/item/catching_egg.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "ikgamblingplusmod:item/catching_egg" + } +} diff --git a/src/main/resources/assets/ikgamblingplusmod/models/item/ruby_deepslate_ore.json b/src/main/resources/assets/ikgamblingplusmod/models/item/ruby_deepslate_ore.json new file mode 100644 index 0000000..839d3a2 --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/models/item/ruby_deepslate_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "ikgamblingplusmod:block/ruby_deepslate_ore" +} diff --git a/src/main/resources/assets/ikgamblingplusmod/models/item/ruby_ore.json b/src/main/resources/assets/ikgamblingplusmod/models/item/ruby_ore.json new file mode 100644 index 0000000..3a2509d --- /dev/null +++ b/src/main/resources/assets/ikgamblingplusmod/models/item/ruby_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "ikgamblingplusmod:block/ruby_ore" +} diff --git a/src/main/resources/assets/ikgamblingplusmod/textures/block/raw_ruby_block.png b/src/main/resources/assets/ikgamblingplusmod/textures/block/raw_ruby_block.png index 0f3509dd6f294a21c2e2465b58b63878e46682a3..0e1422c45797cea5dc74c57e520b22d77dd5a4ac 100644 GIT binary patch delta 277 zcmV+w0qXv%2BiX!8Gix*005AYXf^-<00DDSM?wIu&K&6g007@fL_t(IjfK%6a>Gyz z1ke||G#9XmL1S7_QuuMt*u(e^VJ-=2SWrkOB?XTD$Zlr3NMEyBt@iKU!51j*m~7EU z(HtJJJJ3Z@ID~Fv&7OmVGiSP3xac-{@055YmeiR-p?%}Vg?}Ts#_+(vg*|6*VxXBr zb%SRx#Ue$dNYtEpo z9Zq#1cgHomtZ!?-IZ=b3q8Ng)6gT!j)8Gi-<001BJ|6u?C00DDSM?wIu&K&6g00QMnL_t(Ija8FRXcPw& zhrgL!c4w8~p_>UgjJh*oOAtv=H%?M>D6B#t%DSbBD+B{xL`5SCMzDJc5~NvC$<~94 zl4w>)f)taYt<;0=A3YS?iV$Z?GazAH5H=(`S#hU_v0L+wkAL^Q$M5&v69(p7cY2{f zcV-yu0FJqgs8*<%As(EMk!U^4paSl4c}eZ~PCN%ZwyD zNM3yce+c*;a~Vt#)Bwk_*NIYQ!oCI#HJa>B5~JfdrUWO0+gMW~$A%xDJbpe{_B&fe7@$eV0 z156z3VyGuh(F!xYP~e;1ACS}_(QKNc6~>wP7Rm782XJMXy<@lF5ugTf^a`(g4g=7x zRKaRzIN8C`+^;KO0KY5C92t8CfT&iuqxF(I5ra?bD^Mn?K);cr3QV2840I81e2Sxe zL=+DVDqA z@XzGCh#OCVm2k*3a10mnA`i3}arOC%TL9=!97hZz zS~A33?r*+4xQFhBcA`oNe^e>q$})m&vsRDrk1>n$$VF0vbu+sg+F82lM`~YIdJ@k&ylslhJORWC8?f*PJ`?}|002ovPDHLkV1hji BQ7-@h delta 513 zcmV+c0{;Ej0gwcc8Gi-<001BJ|6u?C00DDSM?wIu&K&6g00GKLL_t(Ijh&OfOB-Pr z$3G?^aDpe8t3=}oML36mOX%GuR$8J{aJ7{#4izf>3koh>I&`Vj45dr=f{P>+F2$u7 z%%bQJaEg&2uPqp)azyO#=6&xj?bI*4@bWy*_xbUC-goH9VSnYG|9~)j08#+o3dMg0 z?IQlNm9YA^A}`8YG6BHTMil^eJetg65ZjkB?n~h@011E&fhN1Qtm@iAAB9aj;8mf3 zFnm6=(qRGx*A~=UR*Y0{gsYXdNfue5WQTg}b$z~;f53cLG&NWS zAWK>cs5D+eVlFj3eNU*Cqu51g@>^Sqtj3Iz&r?BM zL?w(ulpG!N-THR`M7|jpF-%fq(+=qLeTqD{Z%}a#bgXsa$OIlH+sMbUeENpHuFrYd z0Hjdu?iJ2RhNYax=VuAP*BvCy*OOb%A1u$KJtOqo)6YT5Y{$X>r~0BK6Cv z{D}t4kYQ+Jb?1Jnm)2_$`DU!Lb>ir|$Tu0QWn=z7lcKAx4nV&G00000NkvXXu0mjf DwSe~| diff --git a/src/main/resources/assets/ikgamblingplusmod/textures/block/ruby_deepslate_ore.png b/src/main/resources/assets/ikgamblingplusmod/textures/block/ruby_deepslate_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..a85097f12566bc5ade2aeb63d8c2eaf46ec6cb6f GIT binary patch literal 665 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 wH2WiZCh7Y0x{{R3007*qoM6N<$g50I`EdT%j diff --git a/src/main/resources/assets/ikgamblingplusmod/textures/item/ruby.png b/src/main/resources/assets/ikgamblingplusmod/textures/item/ruby.png index 8dfd6ed54a54ad54f7a7485b85a783945a98bf7f..0ca42b79920dfa058cecee177fed12a1c5a6558b 100644 GIT binary patch delta 216 zcmV;}04M*A1AqdMFn<8LNklXfNn zGIY?vgtnJU6#6gWe(w8o2MO%dK{N00*8GRkpBNEth3_&Un?k}h@N62cT?asAElz|S zIV2Wj^84jvoRook_iwuucb|)1^~U*^>32>sGjKKq!VfZg#EgvSyg;RRUITfGsuMq7s?bZj)o;M5f S!al(O0000^>63robUek+zWq{ z%gOX*GHTRY*5`P5+;{93!#QOtTRCN_&`Vh@?VhRCm8<}}M}LP~$t0;7q?;80Vx<#e zzztE>6Gb4a29pc{0P-{_G!34Dk-ibUB2@#*=b+Ds#KPHPey9#tD-?dxkmyYZ-9tq|8D#I^n|tTBCZD^t{U`z8b8T7>P= zt@CNeKIsh>pI?_mJ&5kMP9~UN-|Q>hHw%PDk$T!Rzk`i1^zF{)C$S zvTz@P84B|e=s#;9Y65Uk*Ig3R diff --git a/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/raw_ruby_block.json b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/raw_ruby_block.json new file mode 100644 index 0000000..8281236 --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/raw_ruby_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "ikgamblingplusmod:raw_ruby_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "ikgamblingplusmod:blocks/raw_ruby_block" +} \ No newline at end of file diff --git a/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_block.json b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_block.json new file mode 100644 index 0000000..6517193 --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_block.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "ikgamblingplusmod:ruby_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ], + "random_sequence": "ikgamblingplusmod:blocks/ruby_block" +} \ No newline at end of file diff --git a/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_deepslate_ore.json b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_deepslate_ore.json new file mode 100644 index 0000000..a8416d4 --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_deepslate_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "ikgamblingplusmod:ruby_deepslate_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "ikgamblingplusmod:raw_ruby" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ikgamblingplusmod:blocks/ruby_deepslate_ore" +} \ No newline at end of file diff --git a/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_ore.json b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_ore.json new file mode 100644 index 0000000..6ebee24 --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/loot_table/blocks/ruby_ore.json @@ -0,0 +1,52 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "name": "ikgamblingplusmod:ruby_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "ikgamblingplusmod:raw_ruby" + } + ] + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "ikgamblingplusmod:blocks/ruby_ore" +} \ No newline at end of file diff --git a/src/main/resources/data/ikgamblingplusmod/recipe/ruby.json b/src/main/resources/data/ikgamblingplusmod/recipe/ruby.json new file mode 100644 index 0000000..e8dc3ed --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/recipe/ruby.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + "ikgamblingplusmod:ruby_block" + ], + "result": { + "id": "ikgamblingplusmod:ruby", + "count": 9 + } +} diff --git a/src/main/resources/data/ikgamblingplusmod/recipe/ruby_block.json b/src/main/resources/data/ikgamblingplusmod/recipe/ruby_block.json new file mode 100644 index 0000000..b058b82 --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/recipe/ruby_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "mics", + "key": { + "A": "ikgamblingplusmod:ruby" + }, + "pattern": [ + "AAA", + "AAA", + "AAA" + ], + "result": { + "count": 1, + "id": "ikgamblingplusmod:ruby_block" + } +} \ No newline at end of file diff --git a/src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_blasting_raw_ruby.json b/src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_blasting_raw_ruby.json new file mode 100644 index 0000000..55e5c63 --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_blasting_raw_ruby.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.25, + "group": "ruby", + "ingredient": "ikgamblingplusmod:raw_ruby", + "result": { + "id": "ikgamblingplusmod:ruby" + } + +} \ No newline at end of file diff --git a/src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_smelting_raw_ruby.json b/src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_smelting_raw_ruby.json new file mode 100644 index 0000000..aadc1f7 --- /dev/null +++ b/src/main/resources/data/ikgamblingplusmod/recipe/ruby_from_smelting_raw_ruby.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "category": "misc", + "cookingtime": 100, + "experience": 0.25, + "group": "ruby", + "ingredient": "ikgamblingplusmod:raw_ruby", + "result": { + "id": "ikgamblingplusmod:ruby" + } +} \ No newline at end of file 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..75b3134 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "ikgamblingplusmod:ruby_block", + "ikgamblingplusmod:raw_ruby_block", + "ikgamblingplusmod:ruby_ore", + "ikgamblingplusmod:ruby_deepslate_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json b/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json new file mode 100644 index 0000000..c224032 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/needs_diamond_tool.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "ikgamblingplusmod:ruby_deepslate_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json new file mode 100644 index 0000000..46b9c80 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "ikgamblingplusmod:ruby_block", + "ikgamblingplusmod:raw_ruby_block", + "ikgamblingplusmod:ruby_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json b/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json new file mode 100644 index 0000000..cf2a9da --- /dev/null +++ b/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + { + "id": "ikgamblingplusmod:ruby_poi", + "required": false + } + ] +} \ No newline at end of file