From cf0e954c50bd85246a882cb8f58af01f36dc5104 Mon Sep 17 00:00:00 2001 From: Vos Date: Thu, 6 Nov 2025 23:24:14 -0600 Subject: [PATCH] HammerTime --- .../blockstates/prisma_steel_block.json | 7 ++ .../models/block/prisma_steel_block.json | 6 ++ .../acesbs/models/item/prisma_steel.json | 6 ++ .../acesbs/models/item/prisma_steel_axe.json | 6 ++ .../models/item/prisma_steel_block.json | 3 + .../models/item/prisma_steel_hammer.json | 6 ++ .../acesbs/models/item/prisma_steel_hoe.json | 6 ++ .../models/item/prisma_steel_pickaxe.json | 6 ++ .../models/item/prisma_steel_shovel.json | 6 ++ .../models/item/prisma_steel_sword.json | 6 ++ .../assets/acesbs/models/item/wand.json | 2 +- .../recipes/building_blocks/prisma_steel.json | 32 ++++++ .../recipes/combat/prisma_steel_sword.json | 32 ++++++ .../decorations/prisma_steel_block.json | 32 ++++++ .../item.acesbs.prisma_steel_axe.left.json | 32 ++++++ .../item.acesbs.prisma_steel_axe.right.json | 32 ++++++ .../item.acesbs.prisma_steel_hoe.left.json | 32 ++++++ .../item.acesbs.prisma_steel_hoe.right.json | 32 ++++++ .../recipes/tools/prisma_steel_hammer.json | 32 ++++++ .../recipes/tools/prisma_steel_pickaxe.json | 32 ++++++ .../recipes/tools/prisma_steel_shovel.json | 32 ++++++ .../loot_table/blocks/prisma_steel_block.json | 20 ++++ .../item.acesbs.prisma_steel_axe.left.json | 21 ++++ .../item.acesbs.prisma_steel_axe.right.json | 21 ++++ .../item.acesbs.prisma_steel_hoe.left.json | 21 ++++ .../item.acesbs.prisma_steel_hoe.right.json | 21 ++++ .../data/acesbs/recipe/prisma_steel.json | 13 +++ .../acesbs/recipe/prisma_steel_block.json | 18 ++++ .../acesbs/recipe/prisma_steel_hammer.json | 24 +++++ .../acesbs/recipe/prisma_steel_pickaxe.json | 21 ++++ .../acesbs/recipe/prisma_steel_shovel.json | 21 ++++ .../acesbs/recipe/prisma_steel_sword.json | 21 ++++ .../tags/block/needs_prisma_steel_tool.json | 3 + .../acesbs/tags/item/prisma_convertable.json | 12 +++ .../tags/block/mineable/pickaxe.json | 1 + .../tags/block/needs_diamond_tool.json | 5 +- .../data/minecraft/tags/item/axes.json | 5 + .../data/minecraft/tags/item/hoes.json | 5 + .../data/minecraft/tags/item/pickaxes.json | 5 + .../data/minecraft/tags/item/shovels.json | 5 + .../data/minecraft/tags/item/swords.json | 5 + .../com/acethewildfire/acesbs/AcesBS.java | 4 + .../java/com/acethewildfire/acesbs/TODO.txt | 20 +++- .../acesbs/block/ModBlocks.java | 12 +++ .../acesbs/datagen/ModBlockTagProvider.java | 10 +- .../acesbs/datagen/ModItemTagProvider.java | 22 ++++ .../acesbs/datagen/ModLootTableProvider.java | 1 + .../acesbs/datagen/ModModelProvider.java | 11 +- .../acesbs/datagen/ModRecipeProvider.java | 88 ++++++++++++++++ .../acesbs/item/ModItemGroups.java | 32 ++++++ .../acethewildfire/acesbs/item/ModItems.java | 32 +++++- .../acesbs/item/ModToolMaterials.java | 77 ++++++++++++++ .../acesbs/item/custom/HammerItem.java | 95 ++++++++++++++++++ .../acesbs/util/HammerUsageEvent.java | 44 ++++++++ .../acethewildfire/acesbs/util/ModTags.java | 5 + .../resources/assets/acesbs/lang/en_us.json | 11 ++ .../textures/block/prisma_steel_block.png | Bin 0 -> 4612 bytes .../acesbs/textures/item/prisma_steel.png | Bin 0 -> 4658 bytes .../acesbs/textures/item/prisma_steel_axe.png | Bin 0 -> 4449 bytes .../textures/item/prisma_steel_hammer.png | Bin 0 -> 4525 bytes .../acesbs/textures/item/prisma_steel_hoe.png | Bin 0 -> 4381 bytes .../textures/item/prisma_steel_pickaxe.png | Bin 0 -> 4471 bytes .../textures/item/prisma_steel_shovel.png | Bin 0 -> 4410 bytes .../textures/item/prisma_steel_sword.png | Bin 0 -> 4505 bytes 64 files changed, 1102 insertions(+), 10 deletions(-) create mode 100644 src/main/generated/assets/acesbs/blockstates/prisma_steel_block.json create mode 100644 src/main/generated/assets/acesbs/models/block/prisma_steel_block.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel_axe.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel_block.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel_hammer.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel_hoe.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel_pickaxe.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel_shovel.json create mode 100644 src/main/generated/assets/acesbs/models/item/prisma_steel_sword.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/building_blocks/prisma_steel.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/combat/prisma_steel_sword.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/decorations/prisma_steel_block.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.left.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.right.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.left.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.right.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_hammer.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_pickaxe.json create mode 100644 src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_shovel.json create mode 100644 src/main/generated/data/acesbs/loot_table/blocks/prisma_steel_block.json create mode 100644 src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.left.json create mode 100644 src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.right.json create mode 100644 src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.left.json create mode 100644 src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.right.json create mode 100644 src/main/generated/data/acesbs/recipe/prisma_steel.json create mode 100644 src/main/generated/data/acesbs/recipe/prisma_steel_block.json create mode 100644 src/main/generated/data/acesbs/recipe/prisma_steel_hammer.json create mode 100644 src/main/generated/data/acesbs/recipe/prisma_steel_pickaxe.json create mode 100644 src/main/generated/data/acesbs/recipe/prisma_steel_shovel.json create mode 100644 src/main/generated/data/acesbs/recipe/prisma_steel_sword.json create mode 100644 src/main/generated/data/acesbs/tags/block/needs_prisma_steel_tool.json create mode 100644 src/main/generated/data/acesbs/tags/item/prisma_convertable.json create mode 100644 src/main/generated/data/minecraft/tags/item/axes.json create mode 100644 src/main/generated/data/minecraft/tags/item/hoes.json create mode 100644 src/main/generated/data/minecraft/tags/item/pickaxes.json create mode 100644 src/main/generated/data/minecraft/tags/item/shovels.json create mode 100644 src/main/generated/data/minecraft/tags/item/swords.json create mode 100644 src/main/java/com/acethewildfire/acesbs/item/ModToolMaterials.java create mode 100644 src/main/java/com/acethewildfire/acesbs/item/custom/HammerItem.java create mode 100644 src/main/java/com/acethewildfire/acesbs/util/HammerUsageEvent.java create mode 100644 src/main/resources/assets/acesbs/textures/block/prisma_steel_block.png create mode 100644 src/main/resources/assets/acesbs/textures/item/prisma_steel.png create mode 100644 src/main/resources/assets/acesbs/textures/item/prisma_steel_axe.png create mode 100644 src/main/resources/assets/acesbs/textures/item/prisma_steel_hammer.png create mode 100644 src/main/resources/assets/acesbs/textures/item/prisma_steel_hoe.png create mode 100644 src/main/resources/assets/acesbs/textures/item/prisma_steel_pickaxe.png create mode 100644 src/main/resources/assets/acesbs/textures/item/prisma_steel_shovel.png create mode 100644 src/main/resources/assets/acesbs/textures/item/prisma_steel_sword.png diff --git a/src/main/generated/assets/acesbs/blockstates/prisma_steel_block.json b/src/main/generated/assets/acesbs/blockstates/prisma_steel_block.json new file mode 100644 index 0000000..fe998ea --- /dev/null +++ b/src/main/generated/assets/acesbs/blockstates/prisma_steel_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "acesbs:block/prisma_steel_block" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/block/prisma_steel_block.json b/src/main/generated/assets/acesbs/models/block/prisma_steel_block.json new file mode 100644 index 0000000..df82412 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/block/prisma_steel_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "acesbs:block/prisma_steel_block" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel.json b/src/main/generated/assets/acesbs/models/item/prisma_steel.json new file mode 100644 index 0000000..4b55be6 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "acesbs:item/prisma_steel" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel_axe.json b/src/main/generated/assets/acesbs/models/item/prisma_steel_axe.json new file mode 100644 index 0000000..1e3735a --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "acesbs:item/prisma_steel_axe" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel_block.json b/src/main/generated/assets/acesbs/models/item/prisma_steel_block.json new file mode 100644 index 0000000..725d0c7 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel_block.json @@ -0,0 +1,3 @@ +{ + "parent": "acesbs:block/prisma_steel_block" +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel_hammer.json b/src/main/generated/assets/acesbs/models/item/prisma_steel_hammer.json new file mode 100644 index 0000000..035b7ad --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel_hammer.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "acesbs:item/prisma_steel_hammer" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel_hoe.json b/src/main/generated/assets/acesbs/models/item/prisma_steel_hoe.json new file mode 100644 index 0000000..10d4c57 --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "acesbs:item/prisma_steel_hoe" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel_pickaxe.json b/src/main/generated/assets/acesbs/models/item/prisma_steel_pickaxe.json new file mode 100644 index 0000000..19bd86c --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "acesbs:item/prisma_steel_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel_shovel.json b/src/main/generated/assets/acesbs/models/item/prisma_steel_shovel.json new file mode 100644 index 0000000..b33d12f --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "acesbs:item/prisma_steel_shovel" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/prisma_steel_sword.json b/src/main/generated/assets/acesbs/models/item/prisma_steel_sword.json new file mode 100644 index 0000000..42a28fb --- /dev/null +++ b/src/main/generated/assets/acesbs/models/item/prisma_steel_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "acesbs:item/prisma_steel_sword" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/acesbs/models/item/wand.json b/src/main/generated/assets/acesbs/models/item/wand.json index 9632234..9a8bf0e 100644 --- a/src/main/generated/assets/acesbs/models/item/wand.json +++ b/src/main/generated/assets/acesbs/models/item/wand.json @@ -1,5 +1,5 @@ { - "parent": "minecraft:item/generated", + "parent": "minecraft:item/handheld_rod", "textures": { "layer0": "acesbs:item/wand" } diff --git a/src/main/generated/data/acesbs/advancement/recipes/building_blocks/prisma_steel.json b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/prisma_steel.json new file mode 100644 index 0000000..903997b --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/building_blocks/prisma_steel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel_block": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prisma_steel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel_block" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prisma_steel" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/combat/prisma_steel_sword.json b/src/main/generated/data/acesbs/advancement/recipes/combat/prisma_steel_sword.json new file mode 100644 index 0000000..9c2397b --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/combat/prisma_steel_sword.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:prisma_steel_sword" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:prisma_steel_sword" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/decorations/prisma_steel_block.json b/src/main/generated/data/acesbs/advancement/recipes/decorations/prisma_steel_block.json new file mode 100644 index 0000000..9fad1e6 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/decorations/prisma_steel_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:prisma_steel_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "minecraft:prisma_steel_block" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.left.json b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.left.json new file mode 100644 index 0000000..c60740b --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.left.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:item.acesbs.prisma_steel_axe.left" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:item.acesbs.prisma_steel_axe.left" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.right.json b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.right.json new file mode 100644 index 0000000..0abd875 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_axe.right.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:item.acesbs.prisma_steel_axe.right" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:item.acesbs.prisma_steel_axe.right" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.left.json b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.left.json new file mode 100644 index 0000000..2a3e7a8 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.left.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:item.acesbs.prisma_steel_hoe.left" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:item.acesbs.prisma_steel_hoe.left" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.right.json b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.right.json new file mode 100644 index 0000000..533d107 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/tools/item.acesbs.prisma_steel_hoe.right.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:item.acesbs.prisma_steel_hoe.right" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:item.acesbs.prisma_steel_hoe.right" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_hammer.json b/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_hammer.json new file mode 100644 index 0000000..d7503a2 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_hammer.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:prisma_steel_hammer" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:prisma_steel_hammer" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_pickaxe.json b/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_pickaxe.json new file mode 100644 index 0000000..571e184 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_pickaxe.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:prisma_steel_pickaxe" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:prisma_steel_pickaxe" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_shovel.json b/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_shovel.json new file mode 100644 index 0000000..85641a4 --- /dev/null +++ b/src/main/generated/data/acesbs/advancement/recipes/tools/prisma_steel_shovel.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_prisma_steel": { + "conditions": { + "items": [ + { + "items": "acesbs:prisma_steel" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "acesbs:prisma_steel_shovel" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_prisma_steel" + ] + ], + "rewards": { + "recipes": [ + "acesbs:prisma_steel_shovel" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/loot_table/blocks/prisma_steel_block.json b/src/main/generated/data/acesbs/loot_table/blocks/prisma_steel_block.json new file mode 100644 index 0000000..5541142 --- /dev/null +++ b/src/main/generated/data/acesbs/loot_table/blocks/prisma_steel_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "acesbs:prisma_steel_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.left.json b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.left.json new file mode 100644 index 0000000..8db82a7 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.left.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "## ", + "#I ", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_axe" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.right.json b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.right.json new file mode 100644 index 0000000..49f20b7 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_axe.right.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " ##", + " I#", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_axe" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.left.json b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.left.json new file mode 100644 index 0000000..3f450ad --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.left.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "## ", + " I ", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_hoe" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.right.json b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.right.json new file mode 100644 index 0000000..20f39fa --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/item.acesbs.prisma_steel_hoe.right.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " ##", + " I ", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_hoe" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/prisma_steel.json b/src/main/generated/data/acesbs/recipe/prisma_steel.json new file mode 100644 index 0000000..62fb9da --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/prisma_steel.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + { + "item": "acesbs:prisma_steel_block" + } + ], + "result": { + "count": 9, + "id": "acesbs:prisma_steel" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/prisma_steel_block.json b/src/main/generated/data/acesbs/recipe/prisma_steel_block.json new file mode 100644 index 0000000..43456da --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/prisma_steel_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "acesbs:prisma_steel" + } + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_block" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/prisma_steel_hammer.json b/src/main/generated/data/acesbs/recipe/prisma_steel_hammer.json new file mode 100644 index 0000000..b5ce22b --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/prisma_steel_hammer.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "B": { + "item": "acesbs:prisma_steel_block" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "B#B", + " I ", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_hammer" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/prisma_steel_pickaxe.json b/src/main/generated/data/acesbs/recipe/prisma_steel_pickaxe.json new file mode 100644 index 0000000..3d98c18 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/prisma_steel_pickaxe.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + "###", + " I ", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/prisma_steel_shovel.json b/src/main/generated/data/acesbs/recipe/prisma_steel_shovel.json new file mode 100644 index 0000000..b2fcc89 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/prisma_steel_shovel.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " # ", + " I ", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_shovel" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/recipe/prisma_steel_sword.json b/src/main/generated/data/acesbs/recipe/prisma_steel_sword.json new file mode 100644 index 0000000..9468a99 --- /dev/null +++ b/src/main/generated/data/acesbs/recipe/prisma_steel_sword.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "acesbs:prisma_steel" + }, + "I": { + "item": "minecraft:stick" + } + }, + "pattern": [ + " # ", + " # ", + " I " + ], + "result": { + "count": 1, + "id": "acesbs:prisma_steel_sword" + } +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/tags/block/needs_prisma_steel_tool.json b/src/main/generated/data/acesbs/tags/block/needs_prisma_steel_tool.json new file mode 100644 index 0000000..f72d209 --- /dev/null +++ b/src/main/generated/data/acesbs/tags/block/needs_prisma_steel_tool.json @@ -0,0 +1,3 @@ +{ + "values": [] +} \ No newline at end of file diff --git a/src/main/generated/data/acesbs/tags/item/prisma_convertable.json b/src/main/generated/data/acesbs/tags/item/prisma_convertable.json new file mode 100644 index 0000000..b1586a7 --- /dev/null +++ b/src/main/generated/data/acesbs/tags/item/prisma_convertable.json @@ -0,0 +1,12 @@ +{ + "values": [ + "minecraft:coal", + "minecraft:raw_copper", + "minecraft:raw_iron", + "minecraft:raw_gold", + "minecraft:redstone", + "minecraft:lapis_lazuli", + "minecraft:emerald", + "minecraft:diamond" + ] +} \ 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 05ef452..e7a431e 100644 --- a/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json @@ -2,6 +2,7 @@ "values": [ "acesbs:entropy_block", "acesbs:stable_entropy_block", + "acesbs:prisma_steel_block", "acesbs: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 e6fa56a..ec238ac 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,7 +1,8 @@ { "values": [ - "acesbs:stable_entropy_block", "acesbs:entropy_ore", - "acesbs:entropy_block" + "acesbs:entropy_block", + "acesbs:stable_entropy_block", + "acesbs:prisma_steel_block" ] } \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/axes.json b/src/main/generated/data/minecraft/tags/item/axes.json new file mode 100644 index 0000000..c60fe0c --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/axes.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:prisma_steel_axe" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/hoes.json b/src/main/generated/data/minecraft/tags/item/hoes.json new file mode 100644 index 0000000..aae443b --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/hoes.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:prisma_steel_hoe" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/pickaxes.json b/src/main/generated/data/minecraft/tags/item/pickaxes.json new file mode 100644 index 0000000..5646008 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/pickaxes.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:prisma_steel_pickaxe" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/shovels.json b/src/main/generated/data/minecraft/tags/item/shovels.json new file mode 100644 index 0000000..c78453c --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/shovels.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:prisma_steel_shovel" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/item/swords.json b/src/main/generated/data/minecraft/tags/item/swords.json new file mode 100644 index 0000000..83391c9 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/swords.json @@ -0,0 +1,5 @@ +{ + "values": [ + "acesbs:prisma_steel_sword" + ] +} \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/AcesBS.java b/src/main/java/com/acethewildfire/acesbs/AcesBS.java index ad319ce..bd523c4 100644 --- a/src/main/java/com/acethewildfire/acesbs/AcesBS.java +++ b/src/main/java/com/acethewildfire/acesbs/AcesBS.java @@ -4,8 +4,10 @@ import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.component.ModDataComponentTypes; import com.acethewildfire.acesbs.item.ModItemGroups; import com.acethewildfire.acesbs.item.ModItems; +import com.acethewildfire.acesbs.util.HammerUsageEvent; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,5 +31,7 @@ public class AcesBS implements ModInitializer { ModBlocks.registerModBlocks(); ModDataComponentTypes.registerDataComponentsTypes(); + + PlayerBlockBreakEvents.BEFORE.register(new HammerUsageEvent()); } } \ No newline at end of file diff --git a/src/main/java/com/acethewildfire/acesbs/TODO.txt b/src/main/java/com/acethewildfire/acesbs/TODO.txt index 2620a65..cff6406 100644 --- a/src/main/java/com/acethewildfire/acesbs/TODO.txt +++ b/src/main/java/com/acethewildfire/acesbs/TODO.txt @@ -2,7 +2,7 @@ Resources - Infernal Ashes - Raw End-tropy - Stable End-tropy -- Prisma Steel (Stable Entropy + Iron) +O Prisma Steel (Stable Entropy + Iron) (Needs recipe) - Chaos Silver (Stable Entropy + Gold) - Fractal Diamond (Stable Entropy + Diamond) - Ashen Steel (Ashes + Iron) @@ -33,6 +33,18 @@ Potions - Bottle o' Drunken Sailor - Energy Drink (Hyper Sugar) +Tools +O Prisma Steel (May get a different Ore when mining) +- Prisma Bucket (Stanlys bucket) +- Chaos Silver (May get a different Ore when mining) +- Fractal Diamond (May get a different Ore when mining) +- Ashen Steel (Randomly Smelts Ores) +- Everburn Gold (Randomly Smelts Ores) +- Infernal Diamond (Randomly Smelts Ores) +- Endtropite + +- Hammers and Excavators of these materials. + Weapons - Big Iron - Thot Begon @@ -46,10 +58,14 @@ Blocks - (Rename) Block of Raw Entropy - Block of Raw End-tropy - Stable End-tropy Block +- Blocks of (Instert Metal/Gem) +- Decorative (Bricks) +- Crystalized Entropy (Stained Glass version of Stable Entropy) Workstations -- Entropic Accumulator (For Metals and Stones) +- Entropic Eviscerator (Extracts ores from stones) - Entropic Stabilizer (For making Stable Entropy) +- Entropic Entangler (For Metals and Stones) Mobs - Fren (Stable Entropy on a Creeper) diff --git a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java index 5596766..33ad0aa 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java +++ b/src/main/java/com/acethewildfire/acesbs/block/ModBlocks.java @@ -140,6 +140,18 @@ public class ModBlocks { .requiresTool() .sounds(BlockSoundGroup.LODESTONE))); + public static final Block PRISMA_STEEL_BLOCK = registerBlock( + "prisma_steel_block", + new Block( + AbstractBlock.Settings.create() + .mapColor(MapColor.IRON_GRAY) + .instrument(NoteBlockInstrument.IRON_XYLOPHONE) + .requiresTool() + .strength(5.0F, 6.0F) + .sounds(BlockSoundGroup.METAL) + ) + ); + private static Block registerBlock(String name, Block block){ registerBlockItem(name, block); return Registry.register(Registries.BLOCK, Identifier.of(AcesBS.MOD_ID, name), block); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java index 4358ca2..aa84ee4 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModBlockTagProvider.java @@ -1,6 +1,7 @@ package com.acethewildfire.acesbs.datagen; import com.acethewildfire.acesbs.block.ModBlocks; +import com.acethewildfire.acesbs.util.ModTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; import net.minecraft.registry.RegistryWrapper; @@ -18,11 +19,13 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider { getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE) .add(ModBlocks.ENTROPY_BLOCK) .add(ModBlocks.STABLE_ENTROPY_BLOCK) + .add(ModBlocks.PRISMA_STEEL_BLOCK) .add(ModBlocks.ENTROPY_ORE); getOrCreateTagBuilder(BlockTags.NEEDS_DIAMOND_TOOL) - .add(ModBlocks.STABLE_ENTROPY_BLOCK) .add(ModBlocks.ENTROPY_ORE) - .add(ModBlocks.ENTROPY_BLOCK); + .add(ModBlocks.ENTROPY_BLOCK) + .add(ModBlocks.STABLE_ENTROPY_BLOCK) + .add(ModBlocks.PRISMA_STEEL_BLOCK); getOrCreateTagBuilder(BlockTags.AXE_MINEABLE) .add(ModBlocks.LEMONWOOD_PLANKS) .add(ModBlocks.LEMONWOOD_WALL) @@ -34,5 +37,8 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider { .add(ModBlocks.LEMONWOOD_FENCE_GATE); getOrCreateTagBuilder(BlockTags.WALLS) .add(ModBlocks.LEMONWOOD_WALL); + getOrCreateTagBuilder(ModTags.Blocks.NEEDS_PRISMA_STEEL_TOOL); +// Currently Broken +// .addTag(BlockTags.NEEDS_IRON_TOOL); } } diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java index 890a00b..6894a83 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModItemTagProvider.java @@ -1,10 +1,12 @@ package com.acethewildfire.acesbs.datagen; +import com.acethewildfire.acesbs.item.ModItems; import com.acethewildfire.acesbs.util.ModTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; import net.minecraft.item.Items; import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.tag.ItemTags; import java.util.concurrent.CompletableFuture; @@ -18,5 +20,25 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider { protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { getOrCreateTagBuilder(ModTags.Items.ENTROPY_CONVERTABLE) .add(Items.APPLE); + getOrCreateTagBuilder(ModTags.Items.PRISMA_CONVERTABLE) + .add(Items.COAL) + .add(Items.RAW_COPPER) + .add(Items.RAW_IRON) + .add(Items.RAW_GOLD) + .add(Items.REDSTONE) + .add(Items.LAPIS_LAZULI) + .add(Items.EMERALD) + .add(Items.DIAMOND); + getOrCreateTagBuilder(ItemTags.SWORDS) + .add(ModItems.PRISMA_STEEL_SWORD); + getOrCreateTagBuilder(ItemTags.AXES) + .add(ModItems.PRISMA_STEEL_AXE); + getOrCreateTagBuilder(ItemTags.PICKAXES) + .add(ModItems.PRISMA_STEEL_PICKAXE); + getOrCreateTagBuilder(ItemTags.SHOVELS) + .add(ModItems.PRISMA_STEEL_SHOVEL); + getOrCreateTagBuilder(ItemTags.HOES) + .add(ModItems.PRISMA_STEEL_HOE); + } } diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java index 310a946..077324f 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModLootTableProvider.java @@ -29,6 +29,7 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider { public void generate() { addDrop(ModBlocks.ENTROPY_BLOCK); addDrop(ModBlocks.STABLE_ENTROPY_BLOCK); + addDrop(ModBlocks.PRISMA_STEEL_BLOCK); addDrop(ModBlocks.LEMONWOOD_PLANKS); addDrop(ModBlocks.LEMONWOOD_STAIRS); diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java index af0590e..a7f1e5b 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModModelProvider.java @@ -20,6 +20,7 @@ public class ModModelProvider extends FabricModelProvider { // blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.ENTROPY_BLOCK); // Has a complex texture, use the default blockbench method. blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.STABLE_ENTROPY_BLOCK); + blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.PRISMA_STEEL_BLOCK); BlockStateModelGenerator.BlockTexturePool lemonwoodPool = blockStateModelGenerator.registerCubeAllModelTexturePool(ModBlocks.LEMONWOOD_PLANKS); @@ -51,6 +52,14 @@ public class ModModelProvider extends FabricModelProvider { itemModelGenerator.register(ModItems.ORACLE_LEMON, Models.GENERATED); itemModelGenerator.register(ModItems.GREEN_BRICKS, Models.GENERATED); itemModelGenerator.register(ModItems.STABLE_ENTROPY, Models.GENERATED); - itemModelGenerator.register(ModItems.WAND, Models.GENERATED); + itemModelGenerator.register(ModItems.WAND, Models.HANDHELD_ROD); + itemModelGenerator.register(ModItems.PRISMA_STEEL, Models.GENERATED); + + itemModelGenerator.register(ModItems.PRISMA_STEEL_SWORD, Models.HANDHELD); + itemModelGenerator.register(ModItems.PRISMA_STEEL_PICKAXE, Models.HANDHELD); + itemModelGenerator.register(ModItems.PRISMA_STEEL_HAMMER, Models.HANDHELD); + itemModelGenerator.register(ModItems.PRISMA_STEEL_AXE, Models.HANDHELD); + itemModelGenerator.register(ModItems.PRISMA_STEEL_SHOVEL, Models.HANDHELD); + itemModelGenerator.register(ModItems.PRISMA_STEEL_HOE, Models.HANDHELD); } } diff --git a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java index 21a4fd3..3a34ceb 100644 --- a/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java +++ b/src/main/java/com/acethewildfire/acesbs/datagen/ModRecipeProvider.java @@ -9,7 +9,9 @@ import net.minecraft.block.Blocks; import net.minecraft.data.server.recipe.RecipeExporter; import net.minecraft.data.server.recipe.ShapedRecipeJsonBuilder; import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder; +import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; +import net.minecraft.item.Items; import net.minecraft.recipe.*; import net.minecraft.recipe.book.RecipeCategory; import net.minecraft.registry.RegistryWrapper; @@ -23,6 +25,84 @@ public class ModRecipeProvider extends FabricRecipeProvider { super(output, registriesFuture); } + private void SwordRecipeJsonBuilder(RecipeExporter recipeExporter, ItemConvertible result, ItemConvertible headMaterial, ItemConvertible handleMaterial, ItemConvertible criterionItem){ + ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, result) + .pattern(" # ") + .pattern(" # ") + .pattern(" I ") + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter); + } + private void PickaxeRecipeJsonBuilder(RecipeExporter recipeExporter, ItemConvertible result, ItemConvertible headMaterial, ItemConvertible handleMaterial, ItemConvertible criterionItem){ + ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, result) + .pattern("###") + .pattern(" I ") + .pattern(" I ") + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter); + } + private void HammerRecipeJsonBuilder(RecipeExporter recipeExporter, ItemConvertible result, ItemConvertible headMaterial, ItemConvertible headMaterialBlock, ItemConvertible handleMaterial, ItemConvertible criterionItem){ + ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, result) + .pattern("B#B") + .pattern(" I ") + .pattern(" I ") + .input('B', headMaterialBlock) + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter); + } + private void AxeRecipeJsonBuilder(RecipeExporter recipeExporter, ItemConvertible result, ItemConvertible headMaterial, ItemConvertible handleMaterial, ItemConvertible criterionItem){ + ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, result) + .pattern("## ") + .pattern("#I ") + .pattern(" I ") + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, result.asItem().getName().getString() + ".left")); + ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, result) + .pattern(" ##") + .pattern(" I#") + .pattern(" I ") + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, result.asItem().getName().getString() + ".right")); + } + private void ShovelRecipeJsonBuilder(RecipeExporter recipeExporter, ItemConvertible result, ItemConvertible headMaterial, ItemConvertible handleMaterial, ItemConvertible criterionItem){ + ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, result) + .pattern(" # ") + .pattern(" I ") + .pattern(" I ") + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter); + } + private void HoeRecipeJsonBuilder(RecipeExporter recipeExporter, ItemConvertible result, ItemConvertible headMaterial, ItemConvertible handleMaterial, ItemConvertible criterionItem){ + ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, result) + .pattern("## ") + .pattern(" I ") + .pattern(" I ") + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, result.asItem().getName().getString() + ".left")); + ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, result) + .pattern(" ##") + .pattern(" I ") + .pattern(" I ") + .input('#', headMaterial) + .input('I', handleMaterial) + .criterion(hasItem(criterionItem), conditionsFromItem(criterionItem)) + .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, result.asItem().getName().getString() + ".right")); + } + @Override public void generate(RecipeExporter recipeExporter) { @@ -32,6 +112,7 @@ public class ModRecipeProvider extends FabricRecipeProvider { offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.RAW_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.ENTROPY_BLOCK); offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.STABLE_ENTROPY, RecipeCategory.DECORATIONS, ModBlocks.STABLE_ENTROPY_BLOCK); + offerReversibleCompactingRecipes(recipeExporter, RecipeCategory.BUILDING_BLOCKS, ModItems.PRISMA_STEEL, RecipeCategory.DECORATIONS, ModBlocks.PRISMA_STEEL_BLOCK); offerAllFoodCookingRecipes(recipeExporter, 200, ModItems.LEMON, ModItems.COOKED_LEMON, 0.35F); @@ -80,6 +161,13 @@ public class ModRecipeProvider extends FabricRecipeProvider { .criterion(hasItem(ModBlocks.LEMONWOOD_PLANKS), conditionsFromItem(ModBlocks.LEMONWOOD_PLANKS)) .offerTo(recipeExporter); + SwordRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SWORD, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + PickaxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_PICKAXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + HammerRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HAMMER, ModItems.PRISMA_STEEL, ModBlocks.PRISMA_STEEL_BLOCK, Items.STICK, ModItems.PRISMA_STEEL); + AxeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_AXE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + ShovelRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_SHOVEL, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + HoeRecipeJsonBuilder(recipeExporter, ModItems.PRISMA_STEEL_HOE, ModItems.PRISMA_STEEL, Items.STICK, ModItems.PRISMA_STEEL); + // For 2+ recipes with the same RESULT use // .offerTo(recipeExporter, Identifier.of(AcesBS.MOD_ID, "output_item_from_input_item")); } diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java index d366794..c2edc7b 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItemGroups.java @@ -24,6 +24,7 @@ public class ModItemGroups { entries.add(ModItems.STABLE_ENTROPY); entries.add(ModItems.GREEN_BRICKS); entries.add(ModItems.WAND); + entries.add(ModItems.PRISMA_STEEL); }) .build()); @@ -36,6 +37,7 @@ public class ModItemGroups { entries.add(ModBlocks.ENTROPY_ORE); entries.add(ModBlocks.ENTROPY_BLOCK); entries.add(ModBlocks.STABLE_ENTROPY_BLOCK); + entries.add(ModBlocks.PRISMA_STEEL_BLOCK); entries.add(ModBlocks.LEMONWOOD_PLANKS); entries.add(ModBlocks.LEMONWOOD_STAIRS); @@ -53,6 +55,36 @@ public class ModItemGroups { }) .build()); + public static final ItemGroup ACES_BS_COMBAT = Registry.register(Registries.ITEM_GROUP, + Identifier.of(AcesBS.MOD_ID, "combat"), + FabricItemGroup.builder() + .icon(() -> new ItemStack(ModItems.PRISMA_STEEL_SWORD)) + .displayName(Text.translatable("itemgroup.acesbs.combat")) + .entries((displayContext, entries) -> { + entries.add(ModItems.PRISMA_STEEL); + entries.add(ModItems.PRISMA_STEEL_SWORD); + + + }) + .build()); + + public static final ItemGroup ACES_BS_TOOLS = Registry.register(Registries.ITEM_GROUP, + Identifier.of(AcesBS.MOD_ID, "tools"), + FabricItemGroup.builder() + .icon(() -> new ItemStack(ModItems.PRISMA_STEEL_PICKAXE)) + .displayName(Text.translatable("itemgroup.acesbs.tools")) + .entries((displayContext, entries) -> { + entries.add(ModItems.PRISMA_STEEL); + entries.add(ModItems.PRISMA_STEEL_SHOVEL); + entries.add(ModItems.PRISMA_STEEL_PICKAXE); + entries.add(ModItems.PRISMA_STEEL_HAMMER); + entries.add(ModItems.PRISMA_STEEL_AXE); + entries.add(ModItems.PRISMA_STEEL_HOE); + + + }) + .build()); + public static void registerItemGroups() { AcesBS.LOGGER.info("Registering Item Groups for " + AcesBS.MOD_ID); diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java index d6646ac..4de25af 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java @@ -1,6 +1,7 @@ package com.acethewildfire.acesbs.item; import com.acethewildfire.acesbs.AcesBS; +import com.acethewildfire.acesbs.item.custom.HammerItem; import com.acethewildfire.acesbs.item.custom.OracleLemon; import com.acethewildfire.acesbs.item.custom.Wand; import net.minecraft.client.gui.screen.Screen; @@ -8,8 +9,7 @@ import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.PotionContentsComponent; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.item.*; import net.minecraft.item.tooltip.TooltipType; import net.minecraft.potion.Potion; import net.minecraft.registry.Registries; @@ -42,6 +42,34 @@ public class ModItems { } }); + public static final Item PRISMA_STEEL = registerItem("prisma_steel", new Item(new Item.Settings())); + public static final Item PRISMA_STEEL_SWORD = registerItem("prisma_steel_sword", + new SwordItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings() + .attributeModifiers(SwordItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 3, -2.4f)))); + + public static final Item PRISMA_STEEL_SHOVEL = registerItem("prisma_steel_shovel", + new ShovelItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings() + .attributeModifiers(ShovelItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 1.5F, -3.0F))) + ); + public static final Item PRISMA_STEEL_PICKAXE = registerItem("prisma_steel_pickaxe", + new PickaxeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings() + .attributeModifiers(PickaxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 1.0F, -2.8F))) + ); + + public static final Item PRISMA_STEEL_HAMMER = registerItem("prisma_steel_hammer", + new HammerItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings() + .attributeModifiers(PickaxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 7.0F, -3.4F))) + ); + + public static final Item PRISMA_STEEL_AXE = registerItem("prisma_steel_axe", + new AxeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings() + .attributeModifiers(AxeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, 6.0F, -3.1F))) + ); + public static final Item PRISMA_STEEL_HOE = registerItem("prisma_steel_hoe", + new HoeItem(ModToolMaterials.PRISMA_STEEL, new Item.Settings() + .attributeModifiers(HoeItem.createAttributeModifiers(ModToolMaterials.PRISMA_STEEL, -2.0F, -1.0F))) + ); + private static Item registerItem(String name, Item item){ return Registry.register(Registries.ITEM, Identifier.of(AcesBS.MOD_ID, name), item); } diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModToolMaterials.java b/src/main/java/com/acethewildfire/acesbs/item/ModToolMaterials.java new file mode 100644 index 0000000..7004210 --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/item/ModToolMaterials.java @@ -0,0 +1,77 @@ +package com.acethewildfire.acesbs.item; + +import com.acethewildfire.acesbs.util.ModTags; +import com.google.common.base.Suppliers; +import net.minecraft.block.Block; +import net.minecraft.item.Items; +import net.minecraft.item.ToolMaterial; +import net.minecraft.recipe.Ingredient; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.ItemTags; +import net.minecraft.registry.tag.TagKey; + +import java.util.function.Supplier; + +public enum ModToolMaterials implements ToolMaterial { +// WOOD(BlockTags.INCORRECT_FOR_WOODEN_TOOL, 59, 2.0F, 0.0F, 15, () -> Ingredient.fromTag(ItemTags.PLANKS)), +// STONE(BlockTags.INCORRECT_FOR_STONE_TOOL, 131, 4.0F, 1.0F, 5, () -> Ingredient.fromTag(ItemTags.STONE_TOOL_MATERIALS)), +// IRON(BlockTags.INCORRECT_FOR_IRON_TOOL, 250, 6.0F, 2.0F, 14, () -> Ingredient.ofItems(Items.IRON_INGOT)), +// DIAMOND(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 1561, 8.0F, 3.0F, 10, () -> Ingredient.ofItems(Items.DIAMOND)), +// GOLD(BlockTags.INCORRECT_FOR_GOLD_TOOL, 32, 12.0F, 0.0F, 22, () -> Ingredient.ofItems(Items.GOLD_INGOT)), +// NETHERITE(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 2031, 9.0F, 4.0F, 15, () -> Ingredient.ofItems(Items.NETHERITE_INGOT)); + + PRISMA_STEEL(ModTags.Blocks.INCORRECT_FOR_PRISMA_STEEL_TOOL, 750, 8.0F, 2.0F, 22, () -> Ingredient.ofItems(ModItems.PRISMA_STEEL)); + + private final TagKey inverseTag; + private final int itemDurability; + private final float miningSpeed; + private final float attackDamage; + private final int enchantability; + private final Supplier repairIngredient; + + private ModToolMaterials( + final TagKey inverseTag, + final int itemDurability, + final float miningSpeed, + final float attackDamage, + final int enchantability, + final Supplier repairIngredient + ) { + this.inverseTag = inverseTag; + this.itemDurability = itemDurability; + this.miningSpeed = miningSpeed; + this.attackDamage = attackDamage; + this.enchantability = enchantability; + this.repairIngredient = Suppliers.memoize(repairIngredient::get); + } + + @Override + public int getDurability() { + return this.itemDurability; + } + + @Override + public float getMiningSpeedMultiplier() { + return this.miningSpeed; + } + + @Override + public float getAttackDamage() { + return this.attackDamage; + } + + @Override + public TagKey getInverseTag() { + return this.inverseTag; + } + + @Override + public int getEnchantability() { + return this.enchantability; + } + + @Override + public Ingredient getRepairIngredient() { + return this.repairIngredient.get(); + } +} diff --git a/src/main/java/com/acethewildfire/acesbs/item/custom/HammerItem.java b/src/main/java/com/acethewildfire/acesbs/item/custom/HammerItem.java new file mode 100644 index 0000000..c781a11 --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/item/custom/HammerItem.java @@ -0,0 +1,95 @@ +package com.acethewildfire.acesbs.item.custom; + +import com.acethewildfire.acesbs.AcesBS; +import com.acethewildfire.acesbs.item.ModItems; +import com.acethewildfire.acesbs.util.ModTags; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.*; +import net.minecraft.registry.Registries; +import net.minecraft.registry.tag.BlockTags; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.Identifier; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.World; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class HammerItem extends MiningToolItem { + +// private final Random r = new Random(); + +// private List replacementItems = new ArrayList<>(); + + public HammerItem(ToolMaterial material, Settings settings) { + super(material, BlockTags.PICKAXE_MINEABLE, settings); + } + +// private boolean isValidItem(ItemStack stack) { +// return stack.isIn(ModTags.Items.PRISMA_CONVERTABLE); +// } + + public static List getBlocksToBeDestroyed(int range, BlockPos initalBlockPos, ServerPlayerEntity player) { + List positions = new ArrayList<>(); + HitResult hit = player.raycast(20, 0, false); + if (hit.getType() == HitResult.Type.BLOCK) { + BlockHitResult blockHit = (BlockHitResult) hit; + + if (blockHit.getSide() == Direction.DOWN || blockHit.getSide() == Direction.UP) { + for (int x = -range; x <= range; x++) { + for (int y = -range; y <= range; y++) { + positions.add(new BlockPos(initalBlockPos.getX() + x, initalBlockPos.getY(), initalBlockPos.getZ() + y)); + } + } + } + + if (blockHit.getSide() == Direction.NORTH || blockHit.getSide() == Direction.SOUTH) { + for (int x = -range; x <= range; x++) { + for (int y = -range; y <= range; y++) { + positions.add(new BlockPos(initalBlockPos.getX() + x, initalBlockPos.getY() + y, initalBlockPos.getZ())); + } + } + } + + if (blockHit.getSide() == Direction.EAST || blockHit.getSide() == Direction.WEST) { + for (int x = -range; x <= range; x++) { + for (int y = -range; y <= range; y++) { + positions.add(new BlockPos(initalBlockPos.getX(), initalBlockPos.getY() + y, initalBlockPos.getZ() + x)); + } + } + } + } + + return positions; + } + + +// @Override +// public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { +// ItemStack nextItem = stack; +// if(isValidItem(stack)){ +// int chance = r.nextInt(1,21); // 1-20 +// replacementItems.add(ModItems.RAW_ENTROPY); +// replacementItems.add(ModItems.STABLE_ENTROPY); +// replacementItems.add(ModItems.LEMON); +// int itemIndex = r.nextInt(1, replacementItems.size()+1); +// +// ItemStack replacementStack = new ItemStack(replacementItems.get(itemIndex), stack.getCount()); +// if (chance == 20) { +// nextItem = replacementStack; +// } +// } +// return super.postMine(nextItem, world, state, pos, miner); +// } +} diff --git a/src/main/java/com/acethewildfire/acesbs/util/HammerUsageEvent.java b/src/main/java/com/acethewildfire/acesbs/util/HammerUsageEvent.java new file mode 100644 index 0000000..904ddd8 --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/util/HammerUsageEvent.java @@ -0,0 +1,44 @@ +package com.acethewildfire.acesbs.util; + +import com.acethewildfire.acesbs.item.custom.HammerItem; +import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.HashSet; +import java.util.Set; + +public class HammerUsageEvent implements PlayerBlockBreakEvents.Before{ + // Done with the help of https://github.com/CoFH/CoFHCore/blob/c23d117dcd3b3b3408a138716b15507f709494cd/src/main/java/cofh/core/event/AreaEffectEvents.java + private static final Set HARVESTED_BLOCKS = new HashSet<>(); + + @Override + public boolean beforeBlockBreak(World world, PlayerEntity player, BlockPos pos, + BlockState state, @Nullable BlockEntity blockEntity) { + ItemStack mainHandItem = player.getMainHandStack(); + + if(mainHandItem.getItem() instanceof HammerItem hammer && player instanceof ServerPlayerEntity serverPlayer) { + if(HARVESTED_BLOCKS.contains(pos)) { + return true; + } + + for(BlockPos position : HammerItem.getBlocksToBeDestroyed(1, pos, serverPlayer)) { + if(pos == position || !hammer.isCorrectForDrops(mainHandItem, world.getBlockState(position))) { + continue; + } + + HARVESTED_BLOCKS.add(position); + serverPlayer.interactionManager.tryBreakBlock(position); + HARVESTED_BLOCKS.remove(position); + } + } + + return true; + } +} diff --git a/src/main/java/com/acethewildfire/acesbs/util/ModTags.java b/src/main/java/com/acethewildfire/acesbs/util/ModTags.java index 0fe5007..68e78ed 100644 --- a/src/main/java/com/acethewildfire/acesbs/util/ModTags.java +++ b/src/main/java/com/acethewildfire/acesbs/util/ModTags.java @@ -8,7 +8,11 @@ import net.minecraft.registry.tag.TagKey; import net.minecraft.util.Identifier; public class ModTags { + public static class Blocks { + public static final TagKey NEEDS_PRISMA_STEEL_TOOL = createTag("needs_prisma_steel_tool"); + public static final TagKey INCORRECT_FOR_PRISMA_STEEL_TOOL = createTag("incorrect_for_prisma_steel_tool"); + private static TagKey createTag(String name){ return TagKey.of(RegistryKeys.BLOCK, Identifier.of(AcesBS.MOD_ID, name)); } @@ -16,6 +20,7 @@ public class ModTags { public static class Items { public static final TagKey ENTROPY_CONVERTABLE = createTag("entropy_convertable"); + public static final TagKey PRISMA_CONVERTABLE = createTag("prisma_convertable"); private static TagKey createTag(String name){ return TagKey.of(RegistryKeys.ITEM, Identifier.of(AcesBS.MOD_ID, name)); diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index 38d95e0..e4268f7 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -12,7 +12,16 @@ "item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness", "item.minecraft.tipped_arrow.effect.blindness": "Arrow of Blindness", + "item.acesbs.prisma_steel": "Prisma Steel", + "item.acesbs.prisma_steel_sword": "Prisma Steel Sword", + "item.acesbs.prisma_steel_pickaxe": "Prisma Steel Pickaxe", + "item.acesbs.prisma_steel_hammer": "Prisma Steel Hammer", + "item.acesbs.prisma_steel_axe": "Prisma Steel Axe", + "item.acesbs.prisma_steel_shovel": "Prisma Steel Shovel", + "item.acesbs.prisma_steel_hoe": "Prisma Steel Hoe", + "block.acesbs.entropy_block": "Block of Entropy", + "block.acesbs.prisma_steel_block": "Block of Prisma Steel", "block.acesbs.entropy_ore": "Entropic Ore", "block.acesbs.stable_entropy_block": "Block of Stabilized Entropy", @@ -31,6 +40,8 @@ "itemgroup.acesbs.items": "Ace's BS Items", "itemgroup.acesbs.blocks": "Ace's BS Blocks", + "itemgroup.acesbs.combat": "Ace's BS Combat", + "itemgroup.acesbs.tools": "Ace's BS Tools", "tooltip.acesbs.entropy_block.tooltip": "Exerts an §o§4uncertain force§r when stepped on.", "tooltip.acesbs.stable_entropy_block.tooltip": "Exerts an §o§2upward force§r when stepped on.", diff --git a/src/main/resources/assets/acesbs/textures/block/prisma_steel_block.png b/src/main/resources/assets/acesbs/textures/block/prisma_steel_block.png new file mode 100644 index 0000000000000000000000000000000000000000..c9ca8d074f3cd0b85f35edada3694b08a063ce1d GIT binary patch literal 4612 zcmeHKc~BE+7H`1C7y%ilypSnlL0ESr6AlAH)M!?tf_JC813i$#PLl*2hoA+n zID&5N=;-2D*0|{4EV{xdqL!jE=&FFuc)Q{;EX#Piqlm1!Uk5~}ovJOXcK#z(o$h|$ zd%yR+-#eh1VO?2q}C3iFmpw}+Pu__D^dy4d*5Nf*20+SAvm<4a1?Q%uN|oSDSdd`at` zB~!+RJTKDRys&HM2b)48gQt8laKYu~m-$(BBf>_OB(&_$eOg<3V9xT@)2?nFzHal_ zu%%5yJYU3pcj_E+Eld(V#2_De>Zp3FH~L~ps<5%iu7n`JRg6w&)a!I_g8?Cwtk|GU zJ`opQyX5<+i4#Lyk$2W_ckNqSh;5uOv}Q6hvGS*-Z0j%u8WANaTA5K(Q(RlNYHdY% zNcl?93%@%OEUG$r&6{aL*sQ@G)*V`2e8}x>ER$ahih$-+e3m&OYG~m^^W!0_1Y)ni zJXrpWvyC3q@FZ){s3ni?XwG!p*hVHtZ4P?8=H!6Vkwc&0PtKP9*?Dt(NJZI>&}|>i z9L~kxNh&`hIl8PIoAmhX-VF`)AFN(eJ9W?*?b)(|sTxE09Mig|`76%|Tj2VSkJR98 zKO#Y&S2l-VW{O7VC+^sgCm0d@gK>2}_Ls1zar-K_{rtEXe;ss?VlN&$g%$_zS|1+! zV${DMUYa!1P_5q{(b#6bKI(3qV_15$wWH(8{_EqtZ$?yIsD8a}sI)_$Q?Wa-*n8W0 z>rVCV)60)FhlFNd7^`C=Vh!6D2HtG==bs9Xor0x%e|moDYF%r<`kmz)ZQfNn(cJC# zmBsG1w&%|uZJv=E`-cH+Mc}uR8=&S~45+OX!*raqTO|Z#H`5Z2)d7kQf;6!n2SH}g zoXAY4F*dFE(V?Sa5kqOk^OOdu!J(tmndBUno}DwpMCN3WYDyd%Bh+|s0AQs#LgcY# z+MKvYEB4{y;F%XAVv$dU%g~Bb3`UX8&e9@1pBQ5?uhKYeToD0FH$uF~TgvU@Tg$1`vb{ zR%2>4Y@ro0xtfkvDKSeAh?y({s*=d;xho!u0#FocF_RXx8KwvTps-MC7*o(FOk--& zOrR<`Mk{?#6p2r@pz+NE0#&5?jbsPqoPuYT;Vh46N7_r0JQ{PsQ|zy z2hrdTf=?WI%C&t@oHOPPQq46p77%{-E zQwByCn1o38DD2{kA3DF{uPYC~q6Yxo=j6Tk?W3!YuJ>Z#y_EZ^tBN~z zMwjs2VT!haFCaHKD&^+a-vY<1K=ZVu1V|56LJjmJK^c$?a3rTXA!y)-{N)F2DH#rg z{W-lMv488p{{2P>@~1AX1V`x#eL}n`vO#&?P!usIsNXHYb!2zx4}T9>2o-&H@}pGc zh0If@+lJMMnbZ3Y?~D2EinMmV5n?d@M3JA5fnFgPeK&fl+K(b526I#;{CKDA{bIWQDzEcN!= z5H#jk_=3IrmR!x>RKCC{99Jbw}Q zyA>7QuaE$ha60Dw(G^nr6#n{l*xw%9UCXT!ga+9Xo94%i)0`~N4w+6=*Qf5e``~W- ztD+#RYD@$fxNz>48@BVZp9Qlg-Kx5@LUC}etJXAw9Ih+*c(!%d#^S$@T5FE>8kz0_;dST{eEuqiJX+3sd4u% zS8sc8JN)>|<3S(k>WtRd(l4iF9I9$>Zz#V1Ch7ZX7XP$9scFx-PwO*U)s;K{q4K_g Y1e{@0^N1(6K}I2c;*5my$xB!M2O>+a`v3p{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/prisma_steel.png b/src/main/resources/assets/acesbs/textures/item/prisma_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..202c6bdc4b648c38f73bccec674dac1ae9090d17 GIT binary patch literal 4658 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/prisma_steel_axe.png b/src/main/resources/assets/acesbs/textures/item/prisma_steel_axe.png new file mode 100644 index 0000000000000000000000000000000000000000..87aad751f74e427a0439707531dfd4d2b8ee7b5e GIT binary patch literal 4449 zcmeHKdsGzH86Pn`N?#@2Y zHk_JBFc2ZpgfxdpwI@BY5ucfa5F-FxP4&03ui7Q8SRL69)LPMZzy;ldRZ0RI<#<0awk#Kzn_KAUul zYleAuto&&bXu~Wn>}-J(C|Q{#!ouG>bmQ%dhY!7s3`Nr!`oGUX)EKN zsJ|V1B_L>t{y;&&vZCrIUp?v{yzK>ib8XD5PmA{bp(=R|)%cGbv~9)Rpo$1rMc*l1 z?_%@*^Krx9o-H5lmbH}+V9%2+H~h*{2DlWqpnhG)?7Uqsd?sphep&ao&i;OLFV=SQ zOwp&$Bq3GXBis?^qZ_Jg8spoy-;O(6UApOQ9oN1yKUiJ+ubl`o<3%`rWF{jq$yt^Bn?F!#ep7qX`yT#kyeI@WQpYLx$e*TwAUM#uQ zx1Z{oKQk!#M0Dyr`L~Qw7IN-u=bT0BdUq$D9lBf>yC-s0z<1j2=nG*Lo)q!_ZP-1{Mf)z^JlGAv5%btZ@%P0uyVo z`MjXmlaM@Xd?ePSxd|h_bS6#&x{vctLXYL{14ER-KxjGIDNIkV)rf`o1jErRL--yk zHJuQz#4!{o89Ay@$N@^KlnE%V#*8XJD{xq=2~>KkgD0&t5U3!zgoQj9jxiLaN=nnnSmAeBIYGxB(P0!5~sg7$zS{+{d^E*d4GJ1y&g*kt=-eLSYD)4wRM@ zIu#Q5>@XW5%??POv*&W0StAxGM1tq|umLV8hU7^t$pc7=;qin_MqmlKI7Y~ogj|7Q z2?RC)&oQjA^hgR0(ghgb zJR#S}5M4}KO#tp6qYXP|XTPTz)W!rx#b7jQRFMkU3`&4fiUc`|$>fwgo}%Owrku>~ z;EcSRw1X5A)Ddb08`P(jXz6IFmQBXHi-AxFC>bh~L7B!S6H7;vl?pq?Shk7M|I#DT z2bi$MK)(?i+`8aSC>`GlNA(gmogeTwT8AGn0;HY}G9`Vd<(igjN(xK~Jl$Q>a!pBr zDS@ZE>;EQK@T0>Nu);4OH#{oc;y3Z|m=!?%G((H%k%P!N@J!JA&@#)W%Xc71NQ7|B zK;Ev6hQ>f%Z%7aPJS5O>iFjGn2U2*Ho~zfUCpDYzdHS7+03Y`yZ6#9xBYwGIO6rngYh%YOjA(Z zpSE6Wf5#O1MPh2G>CGNcoZtCT`6d5Q_*>ijl>8Hjsjlf_?ga5<*7do@uKR;EDZ}lV z-F|J&x%Zlm?Fw(+{6uE7HEHk@kL&ZD-tPKR{Ki*b8RPEw&&g@?_RXse4U`-Q4fpRn zz1ms1qxkf~0L&Ee`yVy?@9C(#=9g_bjeKFh>}|i<;FX_$96`+aPTldI)W@J+h(3L_ K_CRXU=Klb_?_Ll9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/prisma_steel_hammer.png b/src/main/resources/assets/acesbs/textures/item/prisma_steel_hammer.png new file mode 100644 index 0000000000000000000000000000000000000000..2a925ef57a8d171ed17aa8674db301a4190b9022 GIT binary patch literal 4525 zcmeHKc~BHr8gEt?ki!GixWH;Vm?(sqp6=J~~oi^b@!8jU2Pr7ltT^>7H4RBchU`H!jU>F)3S zzTf-4-}~NI{nqK?V!S>4JRk`2*2G38fcr%La(4y)GkV^V;C3oMDTPZQ?Xbma*0Tl% z=JG5I%s5y*1UYURbzwfIVfPcg>*u;G#9sznxnA+6`Z5yzxb;|N&ac0|0qy!?XNl!e z*PO8SJ&pGkxCSLOq*mj)_)W8BFAbNZe0wLbzC2wXz5m8PFXz{u2}&+*KNH(6dVE0F z`uh3BqO)r{KQ5Ud4>paR9?q>IzN$&%nl{zTQ+M569aocmEA*BA*6+$*yR~^wqP@;# zL9c6LLRcH3E zDn48{zHTM_a?Cd(MbPosbuZpuGZmfNaH6EAQ+eAy1I7<5kd8s;b%X@&C@OCJasRY} zsL++}x{aE)tD7s%gs84vQx_C87e5W@URqe^vO67XneB6St0|?`zx8nCmP>h6ina@7 z;RSIjR=29PB<-_L{(Lvhn$lH423GEzJ>Iu?w`fb#)^hK1$67_rKEHo?DnFZYY0>tM z#XFAn-b1{m94Ys@_Lu0=7N4@%u+WUYV|LjqTInQSY8*SNDcb~bOYyayO^YT>@ z={1oz9!>9l^4-o`&Gwr;y)Ma!wep7>tN#S5E|&$>m7-lhP-dfuq|F(O$YHdAvV$O1 zsKY{1*$f9~Fqy1LE$D7)7Qig67W_e~6>BXKOcooPZ)FnmCm znoTgzNoJUraB6`7jKc%*87*4vAic@fuL95magY`S6^Rj}5gF=XtRa* zn-oc4Z003aiiyf)OkChl3Yr@9w=A(5oaxXM!WbAMfZD*U=&&hcG+N!D2QNV;YqU7M zfY`&39IJmP*09+45obC>0|D-Xyu;7~xjVrCrPUIVW@-r^o+eT);O8f3GsV(`^HE7l zXi7#)g)$Tu3vs=i5-MaEF3b?iWu!#PkTQjA2$jZU<46<5@Kk_Y!~!0rST4nAF(o83 z6nY^})0i+rBF2O$Ny#Y%CY9l+WC%sPl?7Ev8iq#2Q_+A*uB4Pw9MpwWj7o*L9L0nR zrA#bTDl%|dE@Pw;RP3apDI(fzHIiUCStFUrAQn@mbAT6|2-9iQ0!-8gby{==lG6hR zum@NZZMNIqfs5`_YnqVjj3WX5U(waBxgVvz)Qj_?aZfOLSg zBwwk3z-b5B5D`{}z43*a18HGsS?Bl%7^#G>9L^gg7du`FfHFNhO*=<4OsM%N4`f zZDu`ZC#_6aCeRUR1q#%u6+EYZse*>%?O6=J4nQ&?ih^kdB@-b1$s&Bm7|2$I{6r6x z6ELL30KYyPXkDNaB7?24UoXDt{DQy!b@&Bm0Mw(Cj7Z;6xklw0kpd$Ek5<>HTq9Co zMBvft`oGEL@$N9in7|j19UPTT<4=m#>u?uYwGS!rDRm7P1* zwqHo7dUJP0_m8(Py7;vQ9GjH7F681DTk6XlLG%9|I9pmQ-BQ01JQsw)CoM5l>F*QP zH(mHU)ArtsqC#Kx*{ts~HH)6NPWp#gj`o87V(L-A4dr-^s1*;n`znJ?&k9_)7|LU^NJ3Ff)(sMRL%R71} zG@YOKQPbY$`sm=WMIpNqKL|J;@%&I>Mc}1Lrl^(8YXpS$gyzcqUc~xTm(KZt{5!&GO sysJylF}dz`*ntM0OZyJIdJ_E#`nK-W*qII39w0oViHeJ?3r}D9Urls@PXGV_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/prisma_steel_hoe.png b/src/main/resources/assets/acesbs/textures/item/prisma_steel_hoe.png new file mode 100644 index 0000000000000000000000000000000000000000..8a194916664b9090272c7c95ebde2353c187f6fe GIT binary patch literal 4381 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 Xr(BVX6~&uj(TFK6)A)Ys+TZ*KUq4cI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/acesbs/textures/item/prisma_steel_sword.png b/src/main/resources/assets/acesbs/textures/item/prisma_steel_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..413c45cca7751b05f834a48d6bc89fd85f04f9d1 GIT binary patch literal 4505 zcmeHKdsGu=79T4Q0eRF1QccS=;EJ}BOp?iKOpvFLVlV+=_8&`IFb)JKyrC zD7I78vhVlcPwlIdH>qqLP58vF4FL~2t^a!YH_ylVHAcUgc5uo4{>)j`mHXE&mc$n< zq<2@;z0a+R7wyhC2! zyORmO_woW$-5aVG&DqqE99la8?37;rZclp4jK6JP?lZU7v<*SVZD11nb-dejk`GBcC@MCi4%06G?^vWsIQjQ(!>})fC zbL`~urT$Cf!+u8crd3aQZQqH{Lce=mh!>D~z7WnlhU5&U9T<+Q6DY$T6duQ^d z<;yePIa@X>_$Yce>Jr%Too0t9++(@?b=~)6ttZU&7rb7_j zJdcB-*8m z;3?E&v)WyxM=$o`lJHp&OU0;Hgo`kQkhn(mEv-#T#i8v%vEUTDGz3MMF|iC7)iiIJ6Q+M za&}a}q|97CuNRBqIyw}e&0#bS!`oehEI>Y_9?Bt=NpPvnCLL+v;*$#?$Y4OfXyM9& zBPz`RE-v3mgX98W=c7hKF!Zp!Bj0KDro+%uUVjTnqg?=I~lU zvPWt1tmO$=qhb?Qyy=V#1ey=yj?x~=-Kz|>j7Bnvqw|IE3`u&i;GbkTnq^4uqf)D8 zlu9$eG+KocBeb{~qiD4ZGh56Gja+3>;S?AFWw5(=%1#3T3W7^mh@)i~My1xsFn}`v zBPcJJR*osu7PX27456_oM?freval;D>&U1CCQ3R$j%PEXf z$<1mxrB$ir15gZ2&gYyq3YL?#Q8_^Bu;+Mv2!xaICWBrqm*7t%CM(5TpaGl#*3NKl z*OR3z)&??pO5jtbR>=vCLLrmM6-t>x{X}UAaJpbG3aBz%q9D90LSaal4y2Y6Iu!zV zM+zF+_Tj3yIFxFr5H&};X(*=r-Ie996$LJcP>!}!cD&?{68l&r}7vF`f6 z(G~dQFa_-J3&;(RN}ZcO_kqVOKXY125@J9OB4@$N6F!2H07vR_7lH&$7Oru~uIdOV z^ydx6Wd9$6{GXYvxU;$S96U;=8j|9(G^Y<$Hm5y9MYJ_@U#88gLp8JZ-k2$>K@ZHn zHIr@l;I*lVxdDCtf&Q$u!ZDH9Yb^f5OwpVf*Cm?bVpC%a>boPTXxHoaNPWgX=Qg$W zKU^2Nrw2qt{dh9^jgp(PD*^9@w51u2K3rF~;&WqtQ{t|O`Xg2QeqIvtpzkG1yCnR~ zPy5dp$@;~o-dug|?pLuDzB4WzT3=jS6X+y{CNjlMl z@yLvWK`;7Pzx}EpR~yzHpjvt}rp9>n>cwPYx-YV9yKh@w=_{UjUwlTCC)AE>`$2~I z#Fgdl+}QAOO5F>K_7mC7T@i0Ry4bR?^_%;@JH35%cXaMLBzsrgxmD88zo=iGexO%V S^=vt$88IZMCw-ETUHl(X$!MYg literal 0 HcmV?d00001