From fe4386306432f2c70104b19745241fc38e064830 Mon Sep 17 00:00:00 2001 From: Vos Date: Wed, 12 Nov 2025 22:49:27 -0600 Subject: [PATCH] Housekeeping --- .../blockstates/deepslate_entropy_ore.json | 7 + .../models/block/deepslate_entropy_ore.json | 6 + .../models/item/deepslate_entropy_ore.json | 3 + ...y_from_blasting_deepslate_entropy_ore.json | 32 +++ .../acesbs/enchantment/lightning_strike.json | 6 +- .../blocks/deepslate_entropy_ore.json | 189 ++++++++++++++++++ .../acesbs/loot_table/blocks/entropy_ore.json | 20 +- ...y_from_blasting_deepslate_entropy_ore.json | 13 ++ .../tags/block/mineable/pickaxe.json | 3 +- .../tags/block/needs_diamond_tool.json | 1 + .../minecraft/tags/item/trimmable_armor.json | 3 +- .../acesbs/block/ModBlocks.java | 18 +- .../acesbs/datagen/ModBlockTagProvider.java | 4 +- .../acesbs/datagen/ModLootTableProvider.java | 10 +- .../acesbs/datagen/ModModelProvider.java | 1 + .../acesbs/datagen/ModRecipeProvider.java | 2 +- .../acesbs/enchantment/ModEnchantments.java | 20 +- .../acesbs/item/ModItemGroups.java | 1 + .../acesbs/util/UpdateRecipies.java | 53 ++++- .../resources/assets/acesbs/lang/en_us.json | 3 +- .../textures/block/deepslate_entropy_ore.png | Bin 0 -> 4794 bytes .../acesbs/textures/block/entropy_ore.png | Bin 4657 -> 5131 bytes .../acesbs/textures/block/evil_block.png | Bin 4716 -> 5069 bytes .../acesbs/textures/item/raw_entropy.png | Bin 814 -> 4599 bytes 24 files changed, 362 insertions(+), 33 deletions(-) create mode 100644 src/main/generated/assets/acesbs/blockstates/deepslate_entropy_ore.json create mode 100644 src/main/generated/assets/acesbs/models/block/deepslate_entropy_ore.json create mode 100644 src/main/generated/assets/acesbs/models/item/deepslate_entropy_ore.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/misc/stable_entropy_from_blasting_deepslate_entropy_ore.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/deepslate_entropy_ore.json create mode 100644 src/main/generated/data/acesbs/recipe/stable_entropy_from_blasting_deepslate_entropy_ore.json create mode 100644 src/main/resources/assets/acesbs/textures/block/deepslate_entropy_ore.png diff --git a/src/main/generated/assets/acesbs/blockstates/deepslate_entropy_ore.json b/src/main/generated/assets/acesbs/blockstates/deepslate_entropy_ore.json new file mode 100644 index 0000000..a350fa6 --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/deepslate_entropy_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "acesbs:block/deepslate_entropy_ore" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/deepslate_entropy_ore.json b/src/main/generated/assets/acesbs/models/block/deepslate_entropy_ore.json new file mode 100644 index 0000000..72fe7d9 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/deepslate_entropy_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "acesbs:block/deepslate_entropy_ore" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/deepslate_entropy_ore.json b/src/main/generated/assets/acesbs/models/item/deepslate_entropy_ore.json new file mode 100644 index 0000000..35ea031 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/deepslate_entropy_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/deepslate_entropy_ore" +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/misc/stable_entropy_from_blasting_deepslate_entropy_ore.json b/src/main/generated/data/acesbs/advancement/recipes/misc/stable_entropy_from_blasting_deepslate_entropy_ore.json new file mode 100644 index 0000000..9999e79 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/misc/stable_entropy_from_blasting_deepslate_entropy_ore.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate_entropy_ore": { + "conditions": { + "items": [ + { + "items": "acesbs:deepslate_entropy_ore" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:stable_entropy_from_blasting_deepslate_entropy_ore" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate_entropy_ore" + ] + ], + "rewards": { + "recipes": [ + "acesbs:stable_entropy_from_blasting_deepslate_entropy_ore" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/enchantment/lightning_strike.json b/src/main/generated/data/acesbs/enchantment/lightning_strike.json index 9dfaf1e..1969666 100644 --- a/src/main/generated/data/acesbs/enchantment/lightning_strike.json +++ b/src/main/generated/data/acesbs/enchantment/lightning_strike.json @@ -4,11 +4,13 @@ "translate": "enchantment.acesbs.lightning_strike" }, "effects": { - "minecraft:projectile_spawned": [ + "minecraft:post_attack": [ { + "affected": "victim", "effect": { "type": "acesbs:lighting_strike" - } + }, + "enchanted": "attacker" } ] }, diff --git a/src/main/generated/data/acesbs/loot_table/blocks/deepslate_entropy_ore.json b/src/main/generated/data/acesbs/loot_table/blocks/deepslate_entropy_ore.json new file mode 100644 index 0000000..c39682b --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/deepslate_entropy_ore.json @@ -0,0 +1,189 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:entropy_ore" + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "acesbs:prisma_steel_pickaxe", + "acesbs:prisma_steel_hammer" + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:air", + "weight": 360 + }, + { + "type": "minecraft:item", + "name": "minecraft:coal", + "weight": 12 + }, + { + "type": "minecraft:item", + "name": "minecraft:raw_copper", + "weight": 10 + }, + { + "type": "minecraft:item", + "name": "minecraft:raw_iron", + "weight": 6 + }, + { + "type": "minecraft:item", + "name": "minecraft:raw_gold", + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 2 + }, + { + "type": "minecraft:item", + "name": "acesbs:raw_entropy" + }, + { + "type": "minecraft:item", + "name": "minecraft:diamond" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" + } + ], + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "acesbs:prisma_steel_pickaxe", + "acesbs:prisma_steel_hammer" + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:raw_entropy" + } + ], + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "rolls": { + "type": "minecraft:uniform", + "max": 3.0, + "min": 1.0 + } + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/entropy_ore.json b/src/main/generated/data/acesbs/loot_table/blocks/entropy_ore.json index d4f8ab3..c39682b 100644 --- a/src/main/generated/data/acesbs/loot_table/blocks/entropy_ore.json +++ b/src/main/generated/data/acesbs/loot_table/blocks/entropy_ore.json @@ -73,7 +73,7 @@ { "type": "minecraft:item", "name": "minecraft:coal", - "weight": 14 + "weight": 12 }, { "type": "minecraft:item", @@ -83,12 +83,22 @@ { "type": "minecraft:item", "name": "minecraft:raw_iron", - "weight": 8 + "weight": 6 }, { "type": "minecraft:item", "name": "minecraft:raw_gold", - "weight": 6 + "weight": 4 + }, + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli", + "weight": 3 + }, + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "weight": 2 }, { "type": "minecraft:item", @@ -97,6 +107,10 @@ { "type": "minecraft:item", "name": "minecraft:diamond" + }, + { + "type": "minecraft:item", + "name": "minecraft:emerald" } ], "functions": [ diff --git a/src/main/generated/data/acesbs/recipe/stable_entropy_from_blasting_deepslate_entropy_ore.json b/src/main/generated/data/acesbs/recipe/stable_entropy_from_blasting_deepslate_entropy_ore.json new file mode 100644 index 0000000..ba4ee88 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/stable_entropy_from_blasting_deepslate_entropy_ore.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 2000, + "experience": 0.5, + "group": "stable_entropy", + "ingredient": { + "item": "acesbs:deepslate_entropy_ore" + }, + "result": { + "id": "acesbs:stable_entropy" + } +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json b/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json index e7a431e..8843209 100644 --- a/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json @@ -3,6 +3,7 @@ "acesbs:entropy_block", "acesbs:stable_entropy_block", "acesbs:prisma_steel_block", - "acesbs:entropy_ore" + "acesbs:entropy_ore", + "acesbs:deepslate_entropy_ore" ] } \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/block/needs_diamond_tool.json b/src/main/generated/data/minecraft/tags/block/needs_diamond_tool.json index ec238ac..1e7ff75 100644 --- a/src/main/generated/data/minecraft/tags/block/needs_diamond_tool.json +++ b/src/main/generated/data/minecraft/tags/block/needs_diamond_tool.json @@ -1,6 +1,7 @@ { "values": [ "acesbs:entropy_ore", + "acesbs:deepslate_entropy_ore", "acesbs:entropy_block", "acesbs:stable_entropy_block", "acesbs:prisma_steel_block" diff --git a/src/main/generated/data/minecraft/tags/item/trimmable_armor.json b/src/main/generated/data/minecraft/tags/item/trimmable_armor.json index 9b1e0f1..64f37a9 100644 --- a/src/main/generated/data/minecraft/tags/item/trimmable_armor.json +++ b/src/main/generated/data/minecraft/tags/item/trimmable_armor.json @@ -3,6 +3,7 @@ "acesbs:prisma_steel_helmet", "acesbs:prisma_steel_chestplate", "acesbs:prisma_steel_leggings", - "acesbs:prisma_steel_boots" + "acesbs:prisma_steel_boots", + "acesbs:berserkers_pauldron" ] } \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java index 2e6016b..a8ed285 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java +++ b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java @@ -38,12 +38,20 @@ public class ModBlocks { .requiresTool() .sounds(BlockSoundGroup.AMETHYST_BLOCK))); public static final Block ENTROPY_ORE = registerBlock("entropy_ore", - new ExperienceDroppingBlock(UniformIntProvider.create(2, 5), - AbstractBlock.Settings.create() - .strength(3f) - .requiresTool() - .sounds(BlockSoundGroup.STONE))); + new ExperienceDroppingBlock(UniformIntProvider.create(3, 7), + AbstractBlock.Settings.create() + .strength(3.0F, 3.0F) + .mapColor(MapColor.STONE_GRAY) + .requiresTool() + .sounds(BlockSoundGroup.STONE))); + public static final Block DEEPSLATE_ENTROPY_ORE = registerBlock("deepslate_entropy_ore", + new ExperienceDroppingBlock(UniformIntProvider.create(3, 7), + AbstractBlock.Settings.create() + .mapColor(MapColor.DEEPSLATE_GRAY) + .strength(4.5F, 3.0F) + .requiresTool() + .sounds(BlockSoundGroup.DEEPSLATE))); public static final Block STABLE_ENTROPY_BLOCK = registerBlock("stable_entropy_block", new StableEntropyBlock(AbstractBlock.Settings.create() diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java index aa84ee4..e12d154 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java @@ -20,9 +20,11 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider { .add(ModBlocks.ENTROPY_BLOCK) .add(ModBlocks.STABLE_ENTROPY_BLOCK) .add(ModBlocks.PRISMA_STEEL_BLOCK) - .add(ModBlocks.ENTROPY_ORE); + .add(ModBlocks.ENTROPY_ORE) + .add(ModBlocks.DEEPSLATE_ENTROPY_ORE); getOrCreateTagBuilder(BlockTags.NEEDS_DIAMOND_TOOL) .add(ModBlocks.ENTROPY_ORE) + .add(ModBlocks.DEEPSLATE_ENTROPY_ORE) .add(ModBlocks.ENTROPY_BLOCK) .add(ModBlocks.STABLE_ENTROPY_BLOCK) .add(ModBlocks.PRISMA_STEEL_BLOCK); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java index c3591ce..9defafd 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java @@ -70,6 +70,7 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider { addDrop(ModBlocks.LEMONWOOD_TRAPDOOR); addDrop(ModBlocks.ENTROPY_ORE, prismaSteelOreDrops(ModBlocks.ENTROPY_ORE, ModItems.RAW_ENTROPY, 1, 3)); + addDrop(ModBlocks.DEEPSLATE_ENTROPY_ORE, prismaSteelOreDrops(ModBlocks.ENTROPY_ORE, ModItems.RAW_ENTROPY, 1, 3)); BlockStatePropertyLootCondition.Builder builder2 = BlockStatePropertyLootCondition.builder(ModBlocks.TOBACCO_CROP) .properties(StatePredicate.Builder.create().exactMatch(TobaccoCrop.AGE, TobaccoCrop.MAX_AGE)); @@ -122,12 +123,15 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider { .conditionally(InvertedLootCondition.builder(silkTouchCondition)) .conditionally(specialToolCondition(ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL_HAMMER)) .with(ItemEntry.builder(Items.AIR).weight(360)) - .with(ItemEntry.builder(Items.COAL).weight(14)) + .with(ItemEntry.builder(Items.COAL).weight(12)) .with(ItemEntry.builder(Items.RAW_COPPER).weight(10)) - .with(ItemEntry.builder(Items.RAW_IRON).weight(8)) - .with(ItemEntry.builder(Items.RAW_GOLD).weight(6)) + .with(ItemEntry.builder(Items.RAW_IRON).weight(6)) + .with(ItemEntry.builder(Items.RAW_GOLD).weight(4)) + .with(ItemEntry.builder(Items.LAPIS_LAZULI).weight(3)) + .with(ItemEntry.builder(Items.REDSTONE).weight(2)) .with(ItemEntry.builder(ModItems.RAW_ENTROPY).weight(1)) .with(ItemEntry.builder(Items.DIAMOND).weight(1)) + .with(ItemEntry.builder(Items.EMERALD).weight(1)) .apply(ApplyBonusLootFunction.oreDrops(impl.getOrThrow(Enchantments.FORTUNE))) .apply(ExplosionDecayLootFunction.builder()); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index 5fa303f..50e5c98 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -19,6 +19,7 @@ public class ModModelProvider extends FabricModelProvider { @Override public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) { blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.ENTROPY_ORE); + blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.DEEPSLATE_ENTROPY_ORE); // blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.ENTROPY_BLOCK); // Has a complex texture, use the default blockbench method. blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.STABLE_ENTROPY_BLOCK); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java index 82b5c19..1ed6e0e 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java @@ -28,7 +28,7 @@ public class ModRecipeProvider extends FabricRecipeProvider { @Override public void generate(RecipeExporter recipeExporter) { - List ENTROPY_SMELTABLES = List.of(ModItems.RAW_ENTROPY, ModBlocks.ENTROPY_ORE); + List ENTROPY_SMELTABLES = List.of(ModItems.RAW_ENTROPY, ModBlocks.ENTROPY_ORE, ModBlocks.DEEPSLATE_ENTROPY_ORE); offerBlasting(recipeExporter, ENTROPY_SMELTABLES, RecipeCategory.MISC, ModItems.STABLE_ENTROPY, 0.5f, 2000, "stable_entropy"); diff --git a/src/main/java/com/acethewildfire/acesbs/enchantment/ModEnchantments.java b/src/main/java/com/acethewildfire/acesbs/enchantment/ModEnchantments.java index 9f07ffe..b2a6e89 100644 --- a/src/main/java/com/acethewildfire/acesbs/enchantment/ModEnchantments.java +++ b/src/main/java/com/acethewildfire/acesbs/enchantment/ModEnchantments.java @@ -26,15 +26,17 @@ public class ModEnchantments { var items = registerable.getRegistryLookup(RegistryKeys.ITEM); register(registerable, LIGHTNING_STRIKE, Enchantment.builder(Enchantment.definition( - items.getOrThrow(ItemTags.BOW_ENCHANTABLE), - 5, - 2, - Enchantment.leveledCost(5, 7), - Enchantment.leveledCost(25, 9), - 2, - AttributeModifierSlot.MAINHAND - )).addEffect( - EnchantmentEffectComponentTypes.PROJECTILE_SPAWNED, + items.getOrThrow(ItemTags.BOW_ENCHANTABLE), + 5, + 2, + Enchantment.leveledCost(5, 7), + Enchantment.leveledCost(25, 9), + 2, + AttributeModifierSlot.MAINHAND + )) + .addEffect( + EnchantmentEffectComponentTypes.POST_ATTACK, + EnchantmentEffectTarget.ATTACKER, EnchantmentEffectTarget.VICTIM, new LightningStrikeEnchantmentEffect())); } diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index 9cc1b4d..06f4a3c 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -38,6 +38,7 @@ public class ModItemGroups { .displayName(Text.translatable("itemgroup.acesbs.blocks")) .entries((displayContext, entries) -> { entries.add(ModBlocks.ENTROPY_ORE); + entries.add(ModBlocks.DEEPSLATE_ENTROPY_ORE); entries.add(ModBlocks.ENTROPY_BLOCK); entries.add(ModBlocks.STABLE_ENTROPY_BLOCK); entries.add(ModBlocks.PRISMA_STEEL_BLOCK); diff --git a/src/main/java/com/acethewildfire/acesbs/util/UpdateRecipies.java b/src/main/java/com/acethewildfire/acesbs/util/UpdateRecipies.java index 1164418..f45b4dd 100644 --- a/src/main/java/com/acethewildfire/acesbs/util/UpdateRecipies.java +++ b/src/main/java/com/acethewildfire/acesbs/util/UpdateRecipies.java @@ -26,6 +26,8 @@ import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryWrapper; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; public class UpdateRecipies { @@ -39,7 +41,44 @@ public class UpdateRecipies { public static void updateVanilla(){ AcesBS.LOGGER.info("Updating vanilla Ore Drops for Prisma Steel"); + RegistryKey coalOreLootId = Blocks.COAL_ORE.getLootTableKey(); + RegistryKey copperOreLootId = Blocks.COPPER_ORE.getLootTableKey(); RegistryKey ironOreLootId = Blocks.IRON_ORE.getLootTableKey(); + RegistryKey goldOreLootId = Blocks.GOLD_ORE.getLootTableKey(); + RegistryKey lapisOreLootId = Blocks.LAPIS_ORE.getLootTableKey(); + RegistryKey redstoneOreLootId = Blocks.REDSTONE_ORE.getLootTableKey(); + RegistryKey diamondOreLootId = Blocks.DIAMOND_ORE.getLootTableKey(); + RegistryKey emeraldOreLootId = Blocks.EMERALD_ORE.getLootTableKey(); + + RegistryKey coalDeepslateOreLootId = Blocks.DEEPSLATE_COAL_ORE.getLootTableKey(); + RegistryKey copperDeepslateOreLootId = Blocks.DEEPSLATE_COPPER_ORE.getLootTableKey(); + RegistryKey ironDeepslateOreLootId = Blocks.DEEPSLATE_IRON_ORE.getLootTableKey(); + RegistryKey goldDeepslateOreLootId = Blocks.DEEPSLATE_GOLD_ORE.getLootTableKey(); + RegistryKey lapisDeepslateOreLootId = Blocks.DEEPSLATE_LAPIS_ORE.getLootTableKey(); + RegistryKey redstoneDeepslateOreLootId = Blocks.DEEPSLATE_REDSTONE_ORE.getLootTableKey(); + RegistryKey diamondDeepslateOreLootId = Blocks.DEEPSLATE_DIAMOND_ORE.getLootTableKey(); + RegistryKey emeraldDeepslateOreLootId = Blocks.DEEPSLATE_EMERALD_ORE.getLootTableKey(); + + List> ores = new ArrayList<>(); + + ores.add(coalOreLootId); + ores.add(copperOreLootId); + ores.add(ironOreLootId); + ores.add(goldOreLootId); + ores.add(lapisOreLootId); + ores.add(redstoneOreLootId); + ores.add(diamondOreLootId); + ores.add(emeraldOreLootId); + + ores.add(coalDeepslateOreLootId); + ores.add(copperDeepslateOreLootId); + ores.add(ironDeepslateOreLootId); + ores.add(goldDeepslateOreLootId); + ores.add(lapisDeepslateOreLootId); + ores.add(redstoneDeepslateOreLootId); + ores.add(diamondDeepslateOreLootId); + ores.add(emeraldDeepslateOreLootId); + @@ -53,19 +92,21 @@ public class UpdateRecipies { ) ); - // Target only iron ore - if (source.isBuiltin() && ironOreLootId.equals(key)) { + if (source.isBuiltin() && ores.contains(key)) { LootPool.Builder extraPool = LootPool.builder() .rolls(UniformLootNumberProvider.create(1, 2)) .conditionally(InvertedLootCondition.builder(silkTouchCondition)) .conditionally(specialToolCondition(ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL_HAMMER)) - .with(ItemEntry.builder(Items.AIR).weight(360)) - .with(ItemEntry.builder(Items.COAL).weight(14)) + .with(ItemEntry.builder(Items.AIR).weight(460)) + .with(ItemEntry.builder(Items.COAL).weight(12)) .with(ItemEntry.builder(Items.RAW_COPPER).weight(10)) - .with(ItemEntry.builder(Items.RAW_IRON).weight(8)) - .with(ItemEntry.builder(Items.RAW_GOLD).weight(6)) + .with(ItemEntry.builder(Items.RAW_IRON).weight(6)) + .with(ItemEntry.builder(Items.RAW_GOLD).weight(4)) + .with(ItemEntry.builder(Items.LAPIS_LAZULI).weight(3)) + .with(ItemEntry.builder(Items.REDSTONE).weight(2)) .with(ItemEntry.builder(ModItems.RAW_ENTROPY).weight(1)) .with(ItemEntry.builder(Items.DIAMOND).weight(1)) + .with(ItemEntry.builder(Items.EMERALD).weight(1)) .apply(ApplyBonusLootFunction.oreDrops(impl.getOrThrow(Enchantments.FORTUNE))) .apply(ExplosionDecayLootFunction.builder()); diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index 6681743..7daa4db 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -1,5 +1,5 @@ { - "item.acesbs.oracle_lemon.effect.blindness": "Oracle of Lemon", + "item.acesbs.oracle_lemon.effect.lemon": "Oracle of Lemon", "item.acesbs.raw_entropy": "Raw Entropy", "item.acesbs.stable_entropy": "Stabilized Entropy", "item.acesbs.infernal_ashes": "Infernal Ashes", @@ -62,6 +62,7 @@ "block.acesbs.entropy_block": "Block of Raw Entropy", "block.acesbs.prisma_steel_block": "Block of Prisma Steel", "block.acesbs.entropy_ore": "Entropic Ore", + "block.acesbs.deepslate_entropy_ore": "Deepslate Entropic Ore", "block.acesbs.stable_entropy_block": "Block of Stabilized Entropy", "block.acesbs.lizard_planks": "Lizard Planks", diff --git a/src/main/resources/assets/acesbs/textures/block/deepslate_entropy_ore.png b/src/main/resources/assets/acesbs/textures/block/deepslate_entropy_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..97cb17febbb11b2fc12ccd251d74fc169b7433e7 GIT binary patch literal 4794 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 D=9vmn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/block/entropy_ore.png b/src/main/resources/assets/acesbs/textures/block/entropy_ore.png index 3bc2a2d374d550f504abb3657ade31f770a8670c..28eea5de4e1a9d92b8fe15be338f7f8cf62f52be 100644 GIT binary patch delta 1532 zcmVQP9?iYtvNrNpW@rC@`(+T(j+H+YIkp5Kv0004lX+uL$Nkc;*aB^>E zX>4Tx0C=2zkv&MmKpe$iQ>CIU4t5Z6$WS}kMMWHw9sxRk(5f-j?27}cW*M1eLd+Ld z#lS0u5P~032of{(RCX~3&+&B+A7AfcJj?sspChCcO$PWx;yBX{i+F>0cGJ>1?-Pev zMN){*i6;%ZAn_yDWtZPLmmL;(X4uGO=840^V!4Oq9%dCoC7vOUD5^&JLf&PC^A=~d z)?l4`@)rhwi`q(->omua#1c|SLxhY5s;I$2j8=^l6B*i1c=*R0f0|q}xvF5~SU?>r zB*zc_2fw>DOVd+sQZNDZzu5N21Q6H-+D+U3KDO=l3E+PQuC%Vd-U8-6NpE(w$PqBS z4P0DzHF*!X+yO?Pbjgq$$xl-#m4Np%`lbRfatjPBuDQK+_Hp_EnF)~y#F*-CgIy5*f zFg7|cFd_;dARu^ca5_zIWNBu3L}7GgJt8tNGBr9eF*-3aR5CF-G&MRjI4v+Xvy%o2 z0h7K4TqI#*VmW0vI5;giWHd4@G&wOhEjTx1I4w3|F*q|cVlZJaG-8uJ2T2YwF)cAN zR5CF-G&MRjIJ1=pXb2Xa;ShfS000JJOGiWi{{a60|De66lam1uAAbuC11&Ioklj20 z00P=cL_t(I%WacQXk1kk$A51!%?J0j?`B?{OpFUL2}(Ep(8!1&eh}$KkmAOGf)!#r zn=YD#mO@%TD2gRYp@?81P%17;v|{ZlO2yLpv8am(c4mrc-#BkNZ}Q&Ey)Tm#a$OAb zNX5H4_s>1|-t#}_XMfGl&l|R^Fbt7WCb8BUr4+Vp10aL|Kx>T#j7mc zxX!jmvy5E-6R+a2(Ozd|Wd)@a78aIek z{&9>k9S?H392Y)2N9v&gW)2*r-Ux^qA?0!z+qM}V9>%0Pzi~4zwbK@>$)!y3zT4^w*MJktX&c1BrBiR-!m1VNAx`CqNum95mKyPGb$T_U&Q i{eQSiDG9@ne*vSda~Dx@wgCVD002ovPDHLkU;%>FM62rn delta 1219 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 KMNUMnLSTX#e4^R_ delta 1343 zcmV-F1;F~vC+sAU84Lmd005AYXf^-<0Kt(ZAAj2o!ypX&_Y@t$FNhh3G^x}LI(|*; zRH5xj9Os7)W7uEM2iyjj6tpZ>TdnBOrj5G`!$3cnP!G-kPch};Q(#Yt-x8tK>_78_ zlM{7UyiY`*(xk;f#j0Z0F0cGJ>1?-PeuNm7W$JuY#}X1qLWGPO%Ba9Xgm#S-6Dc~6dH6>i zf0A4>xyoSVSU?pjB*zc_2ft@)7N)1%q+kpPyx8`~IMBTdH0!qgeQev!6TtrrTxo58 zwE@h1l3s6X;Ul1b8@RY`Yw{j&xkCdCKk1SoIg+22P$&TJXY@@uVDJ{`U32HwI>+e) zkfB*E-v9@Pz(kR<*FE0d(>b?)ds_4R0d$9Qr?GwKC;$KrcC&&4iUK4wW;SCqIAS*~ zVlpvfEi^STHZ3_aVlXW+Vlp!`Fk&%eH)Ug!Fa@X%G&nLbH8(RhIWjOeH#w8$1#Let zH99giR53U@GB`RlHZ3qUIxsLI3LqdLcx`YxO>bmrW_d(mbY(pvGB7eVIxsalGBs2& zI65*oIyE*eFg3H11_}YQdkA0%7R(p&YXATM24YJ`L;wH)0002_L%V;I@em(>1sN9{ zIL~q?xc~qH8A(JzR4C7tlFLg}VHn1L-{s6XGvn!4VvT8xQb-V!Fe*b3LDag16Lg`V z|DbJ)keo$}piO^6iwbESEh3_YL5m<$DG*5`M3K3k>zw&oINI8G{XXw=c^^?6D{_?4 zKyK-!J5m6C>N3zaezN!jDWW8Qwyg}1)`LK$6A!NCM?DD)juaHE>sf`=MrqX0%?hx; z9W{M5V4IBGXOKVwOKP%V+QNwQ@xlN(Da7%)86Y6hwuO@3oigSCu%Ty%gqIUeDXv*z zuN2k*jT)Y-WPJ*EFK4P36mtCUyFQ?4IzTyi3bb?_%Cr>K5OhRf-J9BfHT8?>>U6qh zogC_$J|^-9WVkxp#rUKc@*-QPe{fSw81)=GJWL5N7z{}g3n8_oH7XK`jpe$o-%WDb zO2KLQ{j)oZUx2U9BQ3SCG>!PXJs+7E_@!sJoJ-BkKT#av=K6r`y`7EMpIXLW&OcFx zu9pEUw7~#-rnxeHbuBx8wWKEdk`mENNX@I2{O$5b`=O21B^?y*)|=0rz&|nI4Oc6N zpBBZj;>L^jJvddZ06t+32MCBT)Zc#7hL~=v*+MY=_*UO^*o%RNY0spqVGwM(R}3aA z?2&2(Ln?X+iG!UV^)%4%Tj%ay2WG-$Ki*sK0QckIw~%;7ksOmGuHaq=i;dK{s+BC*yl2~rGfwe002ovPDHLkV1hv0 BSBwAv diff --git a/src/main/resources/assets/acesbs/textures/item/raw_entropy.png b/src/main/resources/assets/acesbs/textures/item/raw_entropy.png index d2a5beffafd1788b30bee56235bc73e460049cd3..3e48c7d89280f91a52b9888eb956e06b51202ff3 100644 GIT binary patch literal 4599 zcmeHKdsGu=77w<(4I+w`6=e*%J|~%(B#?|mlq8Z=BNS4KTdhoHCUGjs#AF~5P8S#5 z%0uz7N39gK_*%q0SdaJum9o5i)K{@xi$ys;+Z9WF7PQsoiH=9?V~UKHxjz;R^!XYO{=~ToU1e><-qsj4TQT_8#t?{?`9`^V|m z@7rG3xFBRSs;9WkMO#I3@0SJjtOO7)$0 zHx2EoJ+LFJgShn1yi?wTm;ZPz_p8beYCadHmY!%Hck$r8ZO2+3JxT9CE~Zh4c?7%c z&bj<*e>ZZr@KBZh+fR;syjghjTFKm<(U*?R^EvcyUyzH}az?FA)T`AmlL0A|e6&ub ztD6zturPVob~q?Ac*)7cY2RwK;j=>v(@HBt|CE6oeH2(M8#hT@l)JdLc1=V1^1=fZ zK^3`Br`L6{Vp5eZ|HbS8*c7Aqv8g(HO|@&;g>v-k_QE&H&0(9VxGzVhG<-4T-~Ln0P-m}1U6`)*t0&fx~1PR(^iv#`*;+@0C{m9k^l%6ZzPyz}`J zgjLY}$bZqBt|>N+9^p1$K1tusud6p5U3qJaIaED<>)4`+<+HltuF`*fIKp!9o3t(2 z4@UYFw!FRZuB>TYeMpi{y<(M5d0B1Ts+85khlRByxI3G|bBgCYKY_HHp;c|QHny(j){IX)GY6*X4}-JY&zGY_5|iX0Qp zpYM_{9dhJ5uUXr;Q)|OdB_vPWuZq;}K@6o5y(c#y2D_SG#OSgdbaK{QBbl|BR8peY=>air8~|8pj)2_O zbej`*t3)1L9Q@|R5)tGv;TEezsfI*I%{pjECYFg2SnFmoG12q@D8@mV@g&Wx9tiNH z5-s95J1&v9TrROoDrOxP393{oB?udW}lNua8qK$xwLrPbF<4P!xgX zG^K!LvS<`mVwedwD`}J>9Uiie^AlvFMylu{}RMx`m6cI~h9t~d@9HaxNCHPJS03JEW z23I?1f@2*XLfFhV2M^PNbj2MO^avY0>ktiJLW6x5I zdFlVM=Enz$=`OmCaf0=idPLnbl}s<`e(HWqXFS6ML7uU|39>r{Cy_~0o;U$kw~Aau z*eo>IKYAMWrJVVVWp%WPvL|HVg)$Dq#^1N^#W zVCw=qp`>>!?BR>wbbiNIPaS^86#(?WBCo~o09^xgy%qznWjxSb19ZI>1FvN~&|UvG zx&mGurf3`Z2jl`rrOS(gX>iQ)G0l$G2ww2-&yN57Z$RR2*UfVZ1cAf&%S%vP@)i*K za(aW-_lH2?o8F`Hrk5mxqx5dQW~NbbrXkrdd(=C_Rb+v>pmxssIP1hO*J>=q;y(m9@rl__?!=xxb(SjA+9ue{V?hU~U0!@M9`MMu`$6riy zRuv;mNb%}N{}BJ&nteX|&Q{-FSicl#a>)7EoMBm^KKojChDK~1b2!VlUCT(%RBqm- za_u|TSo+D_+G#6RH{1%k9(9C^Rpkp7RBaQqtty*Sd>4FV*ZrS799K|KZ|w5dYE8PY z6-#o~KVuJfB?zawBQ$=3n!EDOqH{mlh_C~@V*V`qP*K+IFKDk@QRLM;&AX~~;eO@9 zFCI6hP3g!+SGI1RDn3zCxo%qf*|G25IK6tM`&V;lM*Oe`51W26v^Jby^Q_F86ZcW) ze=ur##TzSz8uvHU=FYomWsFe_LAK2oIVu{yoYV)NCt1 z6q@<|o(V(KZr6p}(`=Z(KQb(WX!u9D55~GovW#c HOUwNa8dIr( delta 791 zcmV+y1L*wsBd!LJB!2;OQb$4nuFf3k0008$Nkl+>s!~X|P8US5Qlbg(U;2RLurArXnjxzwt@bjh!4%%zYE-6kW5Lf7-l{UY z>r-;xDo1vH$hL`hVyvW z!F`;*Odli15`xn^zmOBZf5TkEXJMtO+wOVVrhiXAM!}?ZuExr>RUQuVyuM)v8;ip{ zU}o8LYOhj5_Cu161XC#*D=q!oqBk(C(>1Uhlhj}u+7NmH;hhfU+Fhl_!YNTKkzTuv%%36nV;cX^O_pyg>$WY|AoENw z1G}@BMSlw{2ucCvgFfwBK|FXbHLgfz`D;`-O?CEP8W);)<33>}Br{sTc`uJWYGD^v zkQ8KQP3oUjX-qbChwLg}l9zwD#+A|Une{!U4wq>DvP5{N&AJz#B=_+S?7@+! zH}VQ@n4@Ra)JD+iUfp+2mUrA%*j|$D3#78E#tiTI(1- zo(xjL@joZVNX#C630ph=NX`%V