Fixes 2.0.3 + tags + Diamonds + Crafting Recipes

This commit is contained in:
Vos
2026-03-18 00:02:17 -05:00
parent 3b43a7175e
commit c5628975e8
88 changed files with 885 additions and 223 deletions
+1 -1
View File
@@ -13,6 +13,6 @@ loom_version=1.15-SNAPSHOT
fabric_version=0.134.1+1.21.9 fabric_version=0.134.1+1.21.9
# Mod Properties # Mod Properties
mod_version=2.0.2 mod_version=2.0.3
maven_group=com.acethewildfire.acesbs maven_group=com.acethewildfire.acesbs
archives_base_name=acesbs archives_base_name=acesbs
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "acesbs:item/fractal_diamond"
}
}
@@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "acesbs:item/hellfire_diamond"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "acesbs:item/fractal_diamond"
}
}
@@ -1,3 +1,6 @@
{ {
"parent": "minecraft:item/template_spawn_egg" "parent": "minecraft:item/generated",
"textures": {
"layer0": "acesbs:item/fren_spawn_egg"
}
} }
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "acesbs:item/hellfire_diamond"
}
}
@@ -1,3 +1,6 @@
{ {
"parent": "minecraft:item/template_spawn_egg" "parent": "minecraft:item/generated",
"textures": {
"layer0": "acesbs:item/vulgar_bones_spawn_egg"
}
} }
@@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_bone": {
"conditions": {
"items": [
{
"items": "minecraft:bone"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "acesbs:berserkers_pauldron"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_bone"
]
],
"rewards": {
"recipes": [
"acesbs:berserkers_pauldron"
]
}
}
@@ -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:sovs_plate_carrier"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_prisma_steel"
]
],
"rewards": {
"recipes": [
"acesbs:sovs_plate_carrier"
]
}
}
@@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_infernal_ashes": {
"conditions": {
"items": [
{
"items": "acesbs:infernal_ashes"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "acesbs:wildfire_boots"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_infernal_ashes"
]
],
"rewards": {
"recipes": [
"acesbs:wildfire_boots"
]
}
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "acesbs:lizard_button"
}
],
"rolls": 1.0
}
]
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "acesbs:lizard_planks"
}
],
"rolls": 1.0
}
]
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"category": "equipment",
"key": {
"B": "minecraft:bone",
"C": "minecraft:leather_chestplate",
"E": "acesbs:stable_entropy",
"I": "#c:ingots/iron",
"S": "minecraft:string"
},
"pattern": [
"ISB",
"ICS",
"EEE"
],
"result": {
"count": 1,
"id": "acesbs:berserkers_pauldron"
}
}
@@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"category": "equipment",
"key": {
"C": "minecraft:iron_chestplate",
"S": "acesbs:prisma_steel"
},
"pattern": [
" S ",
"SCS",
" S "
],
"result": {
"count": 1,
"id": "acesbs:sovs_plate_carrier"
}
}
@@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"category": "equipment",
"key": {
"A": "acesbs:infernal_ashes",
"B": "minecraft:iron_boots"
},
"pattern": [
" ",
"A A",
"ABA"
],
"result": {
"count": 1,
"id": "acesbs:wildfire_boots"
}
}
@@ -1,3 +0,0 @@
{
"values": []
}
@@ -3,5 +3,7 @@
"description": { "description": {
"color": "#B16491", "color": "#B16491",
"translate": "trim_material.acesbs.prisma_steel" "translate": "trim_material.acesbs.prisma_steel"
} },
"ingredient": "acesbs:prisma_steel",
"item_model_index": 0.7
} }
@@ -0,0 +1,8 @@
{
"values": [
"acesbs:entropy_ore",
"acesbs:deepslate_entropy_ore",
"acesbs:infernal_ashes_ore",
"acesbs:endtropy_ore"
]
}
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:tobacco_seeds"
]
}
@@ -0,0 +1,14 @@
{
"values": [
"acesbs:prisma_steel_helmet",
"acesbs:prisma_steel_chestplate",
"acesbs:prisma_steel_leggings",
"acesbs:prisma_steel_boots",
"acesbs:ashen_steel_helmet",
"acesbs:prisma_steel_chestplate",
"acesbs:ashen_steel_leggings",
"acesbs:ashen_steel_boots",
"acesbs:berserkers_pauldron",
"acesbs:wildfire_boots"
]
}
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:infernal_beef"
]
}
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:infernal_beef"
]
}
@@ -0,0 +1,6 @@
{
"values": [
"acesbs:fractal_diamond",
"acesbs:hellfire_diamond"
]
}
@@ -0,0 +1,6 @@
{
"values": [
"acesbs:fractal_diamond",
"acesbs:hellfire_diamond"
]
}
@@ -0,0 +1,6 @@
{
"values": [
"acesbs:prisma_steel",
"acesbs:ashen_steel"
]
}
@@ -0,0 +1,6 @@
{
"values": [
"acesbs:prisma_steel",
"acesbs:ashen_steel"
]
}
@@ -0,0 +1,6 @@
{
"values": [
"acesbs:prisma_steel",
"acesbs:ashen_steel"
]
}
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:crab_rave_music_disc"
]
}
@@ -0,0 +1,8 @@
{
"values": [
"acesbs:entropy_ore",
"acesbs:deepslate_entropy_ore",
"acesbs:infernal_ashes_ore",
"acesbs:endtropy_ore"
]
}
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:tobacco_seeds"
]
}
@@ -0,0 +1,9 @@
{
"values": [
"acesbs:prisma_steel_block",
"acesbs:ashen_steel_block",
"acesbs:raw_entropy_block",
"acesbs:infernal_ashes_block",
"acesbs:raw_endtropy_block"
]
}
@@ -10,7 +10,7 @@
"description": "Advancements for Ace's BS", "description": "Advancements for Ace's BS",
"icon": { "icon": {
"count": 1, "count": 1,
"id": "minecraft:diamond" "id": "acesbs:stable_entropy"
}, },
"show_toast": false, "show_toast": false,
"title": "Ace's BS" "title": "Ace's BS"
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:lemonwood_leaves"
]
}
@@ -3,6 +3,8 @@
"acesbs:lemonwood_planks", "acesbs:lemonwood_planks",
"acesbs:lemonwood_wall", "acesbs:lemonwood_wall",
"acesbs:lemonwood_fence", "acesbs:lemonwood_fence",
"acesbs:lemonwood_fence_gate" "acesbs:lemonwood_fence_gate",
"acesbs:lizard_planks",
"acesbs:lizard_button"
] ]
} }
@@ -8,9 +8,6 @@
"acesbs:raw_endtropy_block", "acesbs:raw_endtropy_block",
"acesbs:stable_endtropy_block", "acesbs:stable_endtropy_block",
"acesbs:prisma_steel_block", "acesbs:prisma_steel_block",
"acesbs:ashen_steel_block", "acesbs:ashen_steel_block"
"acesbs:entropic_stabilizer",
"acesbs:entropic_eviscerator",
"acesbs:entropic_entangler"
] ]
} }
@@ -1,5 +1,8 @@
{ {
"values": [ "values": [
"acesbs:infernal_ashes_ore" "acesbs:infernal_ashes_ore",
"acesbs:entropic_stabilizer",
"acesbs:entropic_eviscerator",
"acesbs:entropic_entangler"
] ]
} }
@@ -0,0 +1,8 @@
{
"values": [
"acesbs:entropy_ore",
"acesbs:deepslate_entropy_ore",
"acesbs:infernal_ashes_ore",
"acesbs:endtropy_ore"
]
}
@@ -0,0 +1,14 @@
{
"values": [
"acesbs:prisma_steel_helmet",
"acesbs:prisma_steel_chestplate",
"acesbs:prisma_steel_leggings",
"acesbs:prisma_steel_boots",
"acesbs:ashen_steel_helmet",
"acesbs:prisma_steel_chestplate",
"acesbs:ashen_steel_leggings",
"acesbs:ashen_steel_boots",
"acesbs:berserkers_pauldron",
"acesbs:wildfire_boots"
]
}
@@ -0,0 +1,7 @@
{
"values": [
"acesbs:prisma_steel_chestplate",
"acesbs:prisma_steel_chestplate",
"acesbs:berserkers_pauldron"
]
}
@@ -0,0 +1,7 @@
{
"values": [
"acesbs:prisma_steel_boots",
"acesbs:ashen_steel_boots",
"acesbs:wildfire_boots"
]
}
@@ -0,0 +1,6 @@
{
"values": [
"acesbs:prisma_steel_helmet",
"acesbs:ashen_steel_helmet"
]
}
@@ -0,0 +1,6 @@
{
"values": [
"acesbs:prisma_steel_leggings",
"acesbs:ashen_steel_leggings"
]
}
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:infernal_beef"
]
}
@@ -1,5 +1,6 @@
{ {
"values": [ "values": [
"acesbs:lemonwood_planks" "acesbs:lemonwood_planks",
"acesbs:lizard_planks"
] ]
} }
@@ -1,4 +1,5 @@
{ {
"replace": false,
"values": [ "values": [
"acesbs:prisma_steel", "acesbs:prisma_steel",
"acesbs:ashen_steel" "acesbs:ashen_steel"
@@ -7,8 +7,7 @@ import com.acethewildfire.acesbs.effect.ModEffects;
import com.acethewildfire.acesbs.enchantment.ModEnchantmentEffects; import com.acethewildfire.acesbs.enchantment.ModEnchantmentEffects;
import com.acethewildfire.acesbs.entity.ModEntities; import com.acethewildfire.acesbs.entity.ModEntities;
import com.acethewildfire.acesbs.entity.custom.FrenEntity; import com.acethewildfire.acesbs.entity.custom.FrenEntity;
import com.acethewildfire.acesbs.item.ModItemGroups; import com.acethewildfire.acesbs.item.*;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.particle.ModParticles; import com.acethewildfire.acesbs.particle.ModParticles;
import com.acethewildfire.acesbs.potion.ModPotions; import com.acethewildfire.acesbs.potion.ModPotions;
import com.acethewildfire.acesbs.recipe.ModRecipies; import com.acethewildfire.acesbs.recipe.ModRecipies;
@@ -1,8 +1,6 @@
Command Core textures broken Command Core textures broken
Command Core Broken Command Core Broken
Particles not on server???
Combustible LEmon will not render Combustible LEmon will not render
Crafting for the Plate Cariier, Beserkers Pauldron, Wildfire boots Thot-begone - Double it and give it to the next guy
@@ -1,47 +1,26 @@
Resources Resources
X Infernal Ashes
X Raw End-tropy
X Stable End-tropy
- Mote of Order
- Dust of Order
- Ingot of Order
- Ordered Core
- Command Core
X Prisma Steel (Stable Entropy + Iron) (Needs recipe)
- Chaos Silver (Stable Entropy + Gold) - Chaos Silver (Stable Entropy + Gold)
- Fractal Diamond (Stable Entropy + Diamond) - Fractal Diamond (Stable Entropy + Diamond)
- Ashen Steel (Ashes + Iron)
- Everburn Gold (Ashes + Gold) - Everburn Gold (Ashes + Gold)
- Infernal Diamond (Ashes + Diamond) - Infernal Diamond (Ashes + Diamond)
- Endtropium (Stable End-tropy + Netherite) - Endtropium (Stable End-tropy + Netherite)
- Faerie Shard (Amethyst + Stable Entropy) - Faerie Shard (Amethyst + Stable Entropy)
- Hyper Sugar (Stable Entropy + Sugar)
Food Food
- Aquarium Gravel (CT:Prismarine shards + crystals)
X Bricked Up (Brick + End-tropy)
X Holy SFX + slow levitate up
X Stomach grumble
X Fart reverb and shoot into sky
X Infernal Beef (Mob/Ashes + Cooked Beef)
O Tobacco (Makes you sick) O Tobacco (Makes you sick)
- Cigarette (Speed for 5, slow for 5, 30 of jittery) (Acheivements) (Stats) - Cigarette (Speed for 5, slow for 5, 30 of jittery) (Acheivements) (Stats)
- Cigarette (Funny) (Blows inordinate amounts of smoke) - Cigarette (Funny) (Blows inordinate amounts of smoke)
- Cigarette (Lemon) (Explodes) - Cigarette (Lemon) (Explodes)
Crop
X Tobacco
Items Items
- Bag of Holding
- Levels Iron->Netherite->Entopic
- Curios support?
- Bubble pipe (Aquarium gravel, tobacco) - Bubble pipe (Aquarium gravel, tobacco)
- Pale wood + Others - Pale wood + Others
Armor Armor
X Beserker Pauldron (Special: Skeleton hurt sound)
X Wildfire Boots (Special: Rainbow ember)
- Fireskip Boots (Infernal Fire effect on water) - Fireskip Boots (Infernal Fire effect on water)
- Sov's Plate Carrier
- (Headlamp Armors using Everburn Gold)
- Honse armour (maybe). - Honse armour (maybe).
Potions Potions
@@ -50,7 +29,6 @@ X Lemon (Yellow Blindness)
- Bottle o' Drunken Sailor - Bottle o' Drunken Sailor
Tools Tools
X Prisma Steel (May get a different Ore when mining)
- Prisma Bucket (Stanlys bucket) - Prisma Bucket (Stanlys bucket)
- Chaos Silver (May get a different Ore when mining) - Chaos Silver (May get a different Ore when mining)
- Fractal Diamond (May get a different Ore when mining) - Fractal Diamond (May get a different Ore when mining)
@@ -100,29 +78,14 @@ Order
Weapons Weapons
- Big Iron (Bow?) - Big Iron (Bow?)
- Thot Begon
- Ahab's Harpoon - Ahab's Harpoon
X Combustable Lemon
Blocks Blocks
X Deep Slate Entropy Ore
X Block of Infernal Ashes
X End-tropy Ore
X (Rename) Block of Raw Entropy
- Block of Raw End-tropy
- Block of Stable End-tropy
- Blocks of (Insert Metal/Gem) - Blocks of (Insert Metal/Gem)
- Decorative (Bricks) - Decorative (Bricks)
- Crystalized Entropy (Stained Glass version of Stable Entropy) - Crystalized Entropy Retexture (Stained Glass version of Stable Entropy)
- 2 Player Bed - 2 Player Bed
- Incense Burner
Workstations
X Entropic Eviscerator (Extracts ores from stones)
X 2 stone cutters, 6 iron
X Entropic Stabilizer (For making Stable Entropy)
X 7 iron, 1 raw entropy, 1 blue ice
X Entropic Entangler (For Metals and Stones)
X 2 stable entropy, 4 iron, 2 bucket, gold block
Mobs Mobs
O Fren (Stable Entropy on a Creeper) (Move to Conversion manager?) O Fren (Stable Entropy on a Creeper) (Move to Conversion manager?)
@@ -130,19 +93,20 @@ O Fren (Stable Entropy on a Creeper) (Move to Conversion manager?)
- Rat Bastard (Stable Entropy on a cat) - Rat Bastard (Stable Entropy on a cat)
- Alice - Alice
- Pet rock (Stable Entropy on a stone block) - Pet rock (Stable Entropy on a stone block)
X Swearing skeleton (Stable Entropy on skeleton).
- Infernal Bull (nether) - Infernal Bull (nether)
- Prisma Slime (Prisma Steel and slime) - Prisma Slime (Prisma Steel and slime)
- Tarr Slime (Prisma and Magmacube) - Tarr Slime (Prisma and Magmacube)
Music Disk
X Crab Rave
X Lizard
Advancements Advancements
- Get Raw Entropy
- Get Infernal Ashes
- Get Raw Endtropy
- Stabilize First Entropy
- Eviscerate Seeds
- Make Prisma Steel
- Make Ashen Steel
- Make Fractal Diamond
- Make Hellfire Diamond
Statistics Statistics
Next Mod
Aces Mysteries
Puzzle textures.
@@ -32,7 +32,7 @@ public class ModAdvancementProvider extends FabricAdvancementProvider {
public void generateAdvancement(RegistryWrapper.WrapperLookup wrapperLookup, Consumer<AdvancementEntry> consumer) { public void generateAdvancement(RegistryWrapper.WrapperLookup wrapperLookup, Consumer<AdvancementEntry> consumer) {
AdvancementEntry root = Advancement.Builder.create() AdvancementEntry root = Advancement.Builder.create()
.display( .display(
Items.DIAMOND, ModItems.STABLE_ENTROPY,
Text.literal("Ace's BS"), Text.literal("Ace's BS"),
Text.literal("Advancements for Ace's BS"), Text.literal("Advancements for Ace's BS"),
Identifier.ofVanilla("textures/block/stone.png"), Identifier.ofVanilla("textures/block/stone.png"),
@@ -4,6 +4,7 @@ import com.acethewildfire.acesbs.block.ModBlocks;
import com.acethewildfire.acesbs.util.ModTags; import com.acethewildfire.acesbs.util.ModTags;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags;
import net.minecraft.registry.RegistryWrapper; import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.tag.BlockTags; import net.minecraft.registry.tag.BlockTags;
@@ -30,8 +31,13 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider {
.add(ModBlocks.ENTROPIC_STABILIZER) .add(ModBlocks.ENTROPIC_STABILIZER)
.add(ModBlocks.ENTROPIC_EVISCERATOR) .add(ModBlocks.ENTROPIC_EVISCERATOR)
.add(ModBlocks.ENTROPIC_ENTANGLER); .add(ModBlocks.ENTROPIC_ENTANGLER);
valueLookupBuilder(BlockTags.NEEDS_IRON_TOOL) valueLookupBuilder(BlockTags.NEEDS_IRON_TOOL)
.add(ModBlocks.INFERNAL_ASHES_ORE); .add(ModBlocks.INFERNAL_ASHES_ORE)
.add(ModBlocks.ENTROPIC_STABILIZER)
.add(ModBlocks.ENTROPIC_EVISCERATOR)
.add(ModBlocks.ENTROPIC_ENTANGLER);
valueLookupBuilder(BlockTags.NEEDS_DIAMOND_TOOL) valueLookupBuilder(BlockTags.NEEDS_DIAMOND_TOOL)
.add(ModBlocks.ENTROPY_ORE) .add(ModBlocks.ENTROPY_ORE)
.add(ModBlocks.DEEPSLATE_ENTROPY_ORE) .add(ModBlocks.DEEPSLATE_ENTROPY_ORE)
@@ -41,33 +47,52 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider {
.add(ModBlocks.RAW_ENDTROPY_BLOCK) .add(ModBlocks.RAW_ENDTROPY_BLOCK)
.add(ModBlocks.STABLE_ENDTROPY_BLOCK) .add(ModBlocks.STABLE_ENDTROPY_BLOCK)
.add(ModBlocks.PRISMA_STEEL_BLOCK) .add(ModBlocks.PRISMA_STEEL_BLOCK)
.add(ModBlocks.ASHEN_STEEL_BLOCK) .add(ModBlocks.ASHEN_STEEL_BLOCK);
.add(ModBlocks.ENTROPIC_STABILIZER)
.add(ModBlocks.ENTROPIC_EVISCERATOR)
.add(ModBlocks.ENTROPIC_ENTANGLER);
valueLookupBuilder(BlockTags.AXE_MINEABLE) valueLookupBuilder(BlockTags.AXE_MINEABLE)
.add(ModBlocks.LEMONWOOD_PLANKS) .add(ModBlocks.LEMONWOOD_PLANKS)
.add(ModBlocks.LEMONWOOD_WALL) .add(ModBlocks.LEMONWOOD_WALL)
.add(ModBlocks.LEMONWOOD_FENCE) .add(ModBlocks.LEMONWOOD_FENCE)
.add(ModBlocks.LEMONWOOD_FENCE_GATE); .add(ModBlocks.LEMONWOOD_FENCE_GATE)
.add(ModBlocks.LIZARD_PLANKS)
.add(ModBlocks.LIZARD_BUTTON);
valueLookupBuilder(BlockTags.SHOVEL_MINEABLE) valueLookupBuilder(BlockTags.SHOVEL_MINEABLE)
.add(ModBlocks.INFERNAL_ASHES_BLOCK); .add(ModBlocks.INFERNAL_ASHES_BLOCK);
valueLookupBuilder(BlockTags.WOODEN_FENCES) valueLookupBuilder(BlockTags.WOODEN_FENCES)
.add(ModBlocks.LEMONWOOD_FENCE); .add(ModBlocks.LEMONWOOD_FENCE);
valueLookupBuilder(BlockTags.FENCE_GATES) valueLookupBuilder(BlockTags.FENCE_GATES)
.add(ModBlocks.LEMONWOOD_FENCE_GATE); .add(ModBlocks.LEMONWOOD_FENCE_GATE);
valueLookupBuilder(BlockTags.WALLS) valueLookupBuilder(BlockTags.WALLS)
.add(ModBlocks.LEMONWOOD_WALL); .add(ModBlocks.LEMONWOOD_WALL);
valueLookupBuilder(BlockTags.IMPERMEABLE) valueLookupBuilder(BlockTags.IMPERMEABLE)
.add(ModBlocks.CRYSTAL_ENTROPY) .add(ModBlocks.CRYSTAL_ENTROPY)
.add(ModBlocks.CRYSTAL_ENTROPY_PANE); .add(ModBlocks.CRYSTAL_ENTROPY_PANE);
valueLookupBuilder(ModTags.Blocks.NEEDS_PRISMA_STEEL_TOOL);
// Currently Broken valueLookupBuilder(BlockTags.LEAVES)
// .addTag(BlockTags.NEEDS_IRON_TOOL); .add(ModBlocks.LEMONWOOD_LEAVES);
valueLookupBuilder(BlockTags.LOGS_THAT_BURN) valueLookupBuilder(BlockTags.LOGS_THAT_BURN)
.add(ModBlocks.LEMONWOOD_LOG) .add(ModBlocks.LEMONWOOD_LOG)
.add(ModBlocks.LEMONWOOD_WOOD) .add(ModBlocks.LEMONWOOD_WOOD)
.add(ModBlocks.STRIPPED_LEMONWOOD_LOG) .add(ModBlocks.STRIPPED_LEMONWOOD_LOG)
.add(ModBlocks.STRIPPED_LEMONWOOD_WOOD); .add(ModBlocks.STRIPPED_LEMONWOOD_WOOD);
// Common Block Tags
valueLookupBuilder(ConventionalBlockTags.ORES)
.add(ModBlocks.ENTROPY_ORE)
.add(ModBlocks.DEEPSLATE_ENTROPY_ORE)
.add(ModBlocks.INFERNAL_ASHES_ORE)
.add(ModBlocks.ENDTROPY_ORE);
valueLookupBuilder(ModTags.Blocks.MC_ORES)
.add(ModBlocks.ENTROPY_ORE)
.add(ModBlocks.DEEPSLATE_ENTROPY_ORE)
.add(ModBlocks.INFERNAL_ASHES_ORE)
.add(ModBlocks.ENDTROPY_ORE);
} }
} }
@@ -1,12 +1,11 @@
package com.acethewildfire.acesbs.datagen; package com.acethewildfire.acesbs.datagen;
import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.block.ModBlocks;
import com.acethewildfire.acesbs.item.AshenSteelItems; import com.acethewildfire.acesbs.item.*;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.item.PrismaSteelItems;
import com.acethewildfire.acesbs.util.ModTags; import com.acethewildfire.acesbs.util.ModTags;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.registry.RegistryWrapper; import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.tag.ItemTags; import net.minecraft.registry.tag.ItemTags;
@@ -23,16 +22,22 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) { protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) {
valueLookupBuilder(ModTags.Items.ENTROPY_CONVERTABLE) valueLookupBuilder(ModTags.Items.ENTROPY_CONVERTABLE)
.add(Items.APPLE); .add(Items.APPLE);
valueLookupBuilder(ModTags.Items.PRISMA_REPAIR) valueLookupBuilder(ModTags.Items.PRISMA_REPAIR)
.add(PrismaSteelItems.PRISMA_STEEL); .add(PrismaSteelItems.PRISMA_STEEL);
valueLookupBuilder(ModTags.Items.ASHEN_REPAIR) valueLookupBuilder(ModTags.Items.ASHEN_REPAIR)
.add(AshenSteelItems.ASHEN_STEEL); .add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ModTags.Items.WILDFIRE_REPAIR) valueLookupBuilder(ModTags.Items.WILDFIRE_REPAIR)
.add(ModItems.INFERNAL_ASHES); .add(ModItems.INFERNAL_ASHES);
valueLookupBuilder(ModTags.Items.PLATES_REPAIR) valueLookupBuilder(ModTags.Items.PLATES_REPAIR)
.add(AshenSteelItems.ASHEN_STEEL); .add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ModTags.Items.BERSERKERS_REPAIR) valueLookupBuilder(ModTags.Items.BERSERKERS_REPAIR)
.add(Items.LEATHER); .add(Items.LEATHER);
valueLookupBuilder(ModTags.Items.PRISMA_CONVERTABLE) valueLookupBuilder(ModTags.Items.PRISMA_CONVERTABLE)
.add(Items.COAL) .add(Items.COAL)
.add(Items.RAW_COPPER) .add(Items.RAW_COPPER)
@@ -42,23 +47,30 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
.add(Items.LAPIS_LAZULI) .add(Items.LAPIS_LAZULI)
.add(Items.EMERALD) .add(Items.EMERALD)
.add(Items.DIAMOND); .add(Items.DIAMOND);
valueLookupBuilder(ItemTags.BOW_ENCHANTABLE) valueLookupBuilder(ItemTags.BOW_ENCHANTABLE)
.add(ModItems.KAUPEN_BOW); .add(ModItems.KAUPEN_BOW);
valueLookupBuilder(ItemTags.SWORDS) valueLookupBuilder(ItemTags.SWORDS)
.add(PrismaSteelItems.PRISMA_STEEL_SWORD) .add(PrismaSteelItems.PRISMA_STEEL_SWORD)
.add(ModItems.THOT_BEGONE); .add(ModItems.THOT_BEGONE);
valueLookupBuilder(ItemTags.AXES) valueLookupBuilder(ItemTags.AXES)
.add(PrismaSteelItems.PRISMA_STEEL_AXE) .add(PrismaSteelItems.PRISMA_STEEL_AXE)
.add(AshenSteelItems.ASHEN_STEEL_AXE); .add(AshenSteelItems.ASHEN_STEEL_AXE);
valueLookupBuilder(ItemTags.PICKAXES) valueLookupBuilder(ItemTags.PICKAXES)
.add(PrismaSteelItems.PRISMA_STEEL_PICKAXE) .add(PrismaSteelItems.PRISMA_STEEL_PICKAXE)
.add(AshenSteelItems.ASHEN_STEEL_PICKAXE); .add(AshenSteelItems.ASHEN_STEEL_PICKAXE);
valueLookupBuilder(ItemTags.SHOVELS) valueLookupBuilder(ItemTags.SHOVELS)
.add(PrismaSteelItems.PRISMA_STEEL_SHOVEL) .add(PrismaSteelItems.PRISMA_STEEL_SHOVEL)
.add(AshenSteelItems.ASHEN_STEEL_PICKAXE); .add(AshenSteelItems.ASHEN_STEEL_PICKAXE);
valueLookupBuilder(ItemTags.HOES) valueLookupBuilder(ItemTags.HOES)
.add(PrismaSteelItems.PRISMA_STEEL_HOE) .add(PrismaSteelItems.PRISMA_STEEL_HOE)
.add(AshenSteelItems.ASHEN_STEEL_HOE); .add(AshenSteelItems.ASHEN_STEEL_HOE);
valueLookupBuilder(ItemTags.TRIMMABLE_ARMOR) valueLookupBuilder(ItemTags.TRIMMABLE_ARMOR)
.add(PrismaSteelItems.PRISMA_STEEL_HELMET) .add(PrismaSteelItems.PRISMA_STEEL_HELMET)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE) .add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
@@ -71,17 +83,118 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
.add(ModItems.BERSERKERS_PAULDRON) .add(ModItems.BERSERKERS_PAULDRON)
.add(ModItems.WILDFIRE_BOOTS) .add(ModItems.WILDFIRE_BOOTS)
.add(ModItems.SOVS_PLATE_CARRIER); .add(ModItems.SOVS_PLATE_CARRIER);
valueLookupBuilder(ItemTags.ARMOR_ENCHANTABLE)
.add(PrismaSteelItems.PRISMA_STEEL_HELMET)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
.add(PrismaSteelItems.PRISMA_STEEL_LEGGINGS)
.add(PrismaSteelItems.PRISMA_STEEL_BOOTS)
.add(AshenSteelItems.ASHEN_STEEL_HELMET)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
.add(AshenSteelItems.ASHEN_STEEL_LEGGINGS)
.add(AshenSteelItems.ASHEN_STEEL_BOOTS)
.add(ModItems.BERSERKERS_PAULDRON)
.add(ModItems.WILDFIRE_BOOTS);
valueLookupBuilder(ItemTags.HEAD_ARMOR_ENCHANTABLE)
.add(PrismaSteelItems.PRISMA_STEEL_HELMET)
.add(AshenSteelItems.ASHEN_STEEL_HELMET);
valueLookupBuilder(ItemTags.CHEST_ARMOR_ENCHANTABLE)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
.add(ModItems.BERSERKERS_PAULDRON);
valueLookupBuilder(ItemTags.LEG_ARMOR_ENCHANTABLE)
.add(PrismaSteelItems.PRISMA_STEEL_LEGGINGS)
.add(AshenSteelItems.ASHEN_STEEL_LEGGINGS);
valueLookupBuilder(ItemTags.FOOT_ARMOR_ENCHANTABLE)
.add(PrismaSteelItems.PRISMA_STEEL_BOOTS)
.add(AshenSteelItems.ASHEN_STEEL_BOOTS)
.add(ModItems.WILDFIRE_BOOTS);
valueLookupBuilder(ItemTags.TRIM_MATERIALS) valueLookupBuilder(ItemTags.TRIM_MATERIALS)
.add(PrismaSteelItems.PRISMA_STEEL) .add(PrismaSteelItems.PRISMA_STEEL)
.add(AshenSteelItems.ASHEN_STEEL); .add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS) valueLookupBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS)
.add(ModItems.CRAB_RAVE_MUSIC_DISC); .add(ModItems.CRAB_RAVE_MUSIC_DISC);
valueLookupBuilder(ItemTags.LOGS_THAT_BURN) valueLookupBuilder(ItemTags.LOGS_THAT_BURN)
.add(ModBlocks.LEMONWOOD_LOG.asItem()) .add(ModBlocks.LEMONWOOD_LOG.asItem())
.add(ModBlocks.LEMONWOOD_WOOD.asItem()) .add(ModBlocks.LEMONWOOD_WOOD.asItem())
.add(ModBlocks.STRIPPED_LEMONWOOD_LOG.asItem()) .add(ModBlocks.STRIPPED_LEMONWOOD_LOG.asItem())
.add(ModBlocks.STRIPPED_LEMONWOOD_WOOD.asItem()); .add(ModBlocks.STRIPPED_LEMONWOOD_WOOD.asItem());
valueLookupBuilder(ItemTags.PLANKS) valueLookupBuilder(ItemTags.PLANKS)
.add(ModBlocks.LEMONWOOD_PLANKS.asItem()); .add(ModBlocks.LEMONWOOD_PLANKS.asItem())
.add(ModBlocks.LIZARD_PLANKS.asItem());
valueLookupBuilder(ItemTags.MEAT)
.add(ModItems.INFERNAL_BEEF);
// Common Item Tags
valueLookupBuilder(ConventionalItemTags.FOODS)
.add(ModItems.INFERNAL_BEEF);
valueLookupBuilder(ConventionalItemTags.COOKED_MEAT_FOODS)
.add(ModItems.INFERNAL_BEEF);
valueLookupBuilder(ConventionalItemTags.ORES)
.add(ModBlocks.ENTROPY_ORE.asItem())
.add(ModBlocks.DEEPSLATE_ENTROPY_ORE.asItem())
.add(ModBlocks.INFERNAL_ASHES_ORE.asItem())
.add(ModBlocks.ENDTROPY_ORE.asItem());
valueLookupBuilder(ConventionalItemTags.INGOTS)
.add(PrismaSteelItems.PRISMA_STEEL)
.add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ConventionalItemTags.GEMS)
.add(FractalDiamondItems.FRACTAL_DIAMOND)
.add(HellfireDiamondItems.HELLFIRE_DIAMOND);
valueLookupBuilder(ConventionalItemTags.DIAMOND_GEMS)
.add(FractalDiamondItems.FRACTAL_DIAMOND)
.add(HellfireDiamondItems.HELLFIRE_DIAMOND);
valueLookupBuilder(ConventionalItemTags.IRON_INGOTS)
.add(PrismaSteelItems.PRISMA_STEEL)
.add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ModTags.Items.C_INGOTS_STEEL)
.add(PrismaSteelItems.PRISMA_STEEL)
.add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ConventionalItemTags.STORAGE_BLOCKS)
.add(ModBlocks.PRISMA_STEEL_BLOCK.asItem())
.add(ModBlocks.ASHEN_STEEL_BLOCK.asItem())
.add(ModBlocks.RAW_ENTROPY_BLOCK.asItem())
.add(ModBlocks.INFERNAL_ASHES_BLOCK.asItem())
.add(ModBlocks.RAW_ENDTROPY_BLOCK.asItem());
valueLookupBuilder(ConventionalItemTags.CROPS)
.add(ModBlocks.TOBACCO_CROP.asItem());
valueLookupBuilder(ConventionalItemTags.SEEDS)
.add(ModItems.TOBACCO_SEEDS);
valueLookupBuilder(ConventionalItemTags.MUSIC_DISCS)
.add(ModItems.CRAB_RAVE_MUSIC_DISC);
valueLookupBuilder(ConventionalItemTags.ENCHANTABLES)
.add(PrismaSteelItems.PRISMA_STEEL_HELMET)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
.add(PrismaSteelItems.PRISMA_STEEL_LEGGINGS)
.add(PrismaSteelItems.PRISMA_STEEL_BOOTS)
.add(AshenSteelItems.ASHEN_STEEL_HELMET)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
.add(AshenSteelItems.ASHEN_STEEL_LEGGINGS)
.add(AshenSteelItems.ASHEN_STEEL_BOOTS)
.add(ModItems.BERSERKERS_PAULDRON)
.add(ModItems.WILDFIRE_BOOTS);
} }
} }
@@ -68,6 +68,8 @@ public class ModLootTableProvider extends FabricBlockLootTableProvider {
addDropWithSilkTouch(ModBlocks.CRYSTAL_ENTROPY); addDropWithSilkTouch(ModBlocks.CRYSTAL_ENTROPY);
addDropWithSilkTouch(ModBlocks.CRYSTAL_ENTROPY_PANE); addDropWithSilkTouch(ModBlocks.CRYSTAL_ENTROPY_PANE);
addDrop(ModBlocks.LIZARD_PLANKS);
addDrop(ModBlocks.LIZARD_BUTTON);
addDrop(ModBlocks.LEMONWOOD_LOG); addDrop(ModBlocks.LEMONWOOD_LOG);
addDrop(ModBlocks.STRIPPED_LEMONWOOD_LOG); addDrop(ModBlocks.STRIPPED_LEMONWOOD_LOG);
@@ -4,10 +4,7 @@ import com.acethewildfire.acesbs.block.ModBlocks;
import com.acethewildfire.acesbs.block.custom.EvilBlock; import com.acethewildfire.acesbs.block.custom.EvilBlock;
import com.acethewildfire.acesbs.block.custom.TobaccoCrop; import com.acethewildfire.acesbs.block.custom.TobaccoCrop;
import com.acethewildfire.acesbs.component.ModDataComponentTypes; import com.acethewildfire.acesbs.component.ModDataComponentTypes;
import com.acethewildfire.acesbs.item.AshenSteelItems; import com.acethewildfire.acesbs.item.*;
import com.acethewildfire.acesbs.item.ModArmorMaterials;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.item.PrismaSteelItems;
import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.minecraft.client.data.*; import net.minecraft.client.data.*;
@@ -105,6 +102,8 @@ public class ModModelProvider extends FabricModelProvider {
itemModelGenerator.register(PrismaSteelItems.PRISMA_SMITHING_TEMPLATE, Models.GENERATED); itemModelGenerator.register(PrismaSteelItems.PRISMA_SMITHING_TEMPLATE, Models.GENERATED);
itemModelGenerator.register(AshenSteelItems.ASHEN_STEEL, Models.GENERATED); itemModelGenerator.register(AshenSteelItems.ASHEN_STEEL, Models.GENERATED);
itemModelGenerator.register(AshenSteelItems.ASHEN_SMITHING_TEMPLATE, Models.GENERATED); itemModelGenerator.register(AshenSteelItems.ASHEN_SMITHING_TEMPLATE, Models.GENERATED);
itemModelGenerator.register(FractalDiamondItems.FRACTAL_DIAMOND, Models.GENERATED);
itemModelGenerator.register(HellfireDiamondItems.HELLFIRE_DIAMOND, Models.GENERATED);
itemModelGenerator.register(ModItems.CRAB_RAVE_MUSIC_DISC, Models.GENERATED); itemModelGenerator.register(ModItems.CRAB_RAVE_MUSIC_DISC, Models.GENERATED);
itemModelGenerator.register(ModItems.THOT_BEGONE, Models.HANDHELD); itemModelGenerator.register(ModItems.THOT_BEGONE, Models.HANDHELD);
@@ -139,11 +138,9 @@ public class ModModelProvider extends FabricModelProvider {
itemModelGenerator.registerArmor(( ModItems.WILDFIRE_BOOTS), ModArmorMaterials.WILDFIRE_KEY, ItemModelGenerator.BOOTS_TRIM_ID_PREFIX, false); itemModelGenerator.registerArmor(( ModItems.WILDFIRE_BOOTS), ModArmorMaterials.WILDFIRE_KEY, ItemModelGenerator.BOOTS_TRIM_ID_PREFIX, false);
itemModelGenerator.registerArmor(( ModItems.SOVS_PLATE_CARRIER), ModArmorMaterials.PLATES_KEY, ItemModelGenerator.CHESTPLATE_TRIM_ID_PREFIX, false); itemModelGenerator.registerArmor(( ModItems.SOVS_PLATE_CARRIER), ModArmorMaterials.PLATES_KEY, ItemModelGenerator.CHESTPLATE_TRIM_ID_PREFIX, false);
itemModelGenerator.register(ModItems.FREN_SPAWN_EGG, itemModelGenerator.register(ModItems.FREN_SPAWN_EGG, Models.GENERATED);
new Model(Optional.of(Identifier.of("item/template_spawn_egg")), Optional.empty()));
itemModelGenerator.register(ModItems.VULGAR_BONES_SPAWN_EGG, itemModelGenerator.register(ModItems.VULGAR_BONES_SPAWN_EGG, Models.GENERATED);
new Model(Optional.of(Identifier.of("item/template_spawn_egg")), Optional.empty()));
ItemModel.Unbaked unbakedWand = ItemModels.basic(itemModelGenerator.upload(ModItems.WAND, Models.GENERATED)); ItemModel.Unbaked unbakedWand = ItemModels.basic(itemModelGenerator.upload(ModItems.WAND, Models.GENERATED));
ItemModel.Unbaked unbakedUsedWand = ItemModels.basic(itemModelGenerator.registerSubModel(ModItems.WAND, "_used", Models.GENERATED)); ItemModel.Unbaked unbakedUsedWand = ItemModels.basic(itemModelGenerator.registerSubModel(ModItems.WAND, "_used", Models.GENERATED));
@@ -9,6 +9,7 @@ import com.acethewildfire.acesbs.trim.ModTrimPatterns;
import com.acethewildfire.acesbs.util.ModTags; import com.acethewildfire.acesbs.util.ModTags;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.data.recipe.RecipeExporter; import net.minecraft.data.recipe.RecipeExporter;
import net.minecraft.data.recipe.RecipeGenerator; import net.minecraft.data.recipe.RecipeGenerator;
@@ -73,6 +74,36 @@ public class ModRecipeProvider extends FabricRecipeProvider {
.criterion(hasItem(Items.STICK), conditionsFromItem(Items.STICK)) .criterion(hasItem(Items.STICK), conditionsFromItem(Items.STICK))
.offerTo(recipeExporter); .offerTo(recipeExporter);
createShaped(RecipeCategory.COMBAT, ModItems.BERSERKERS_PAULDRON, 1)
.pattern("ISB")
.pattern("ICS")
.pattern("EEE")
.input('I', ConventionalItemTags.IRON_INGOTS)
.input('S', Items.STRING)
.input('B', Items.BONE)
.input('C', Items.LEATHER_CHESTPLATE)
.input('E', ModItems.STABLE_ENTROPY)
.criterion(hasItem(Items.BONE), conditionsFromItem(Items.BONE))
.offerTo(recipeExporter);
createShaped(RecipeCategory.COMBAT, ModItems.SOVS_PLATE_CARRIER, 1)
.pattern(" S ")
.pattern("SCS")
.pattern(" S ")
.input('S', PrismaSteelItems.PRISMA_STEEL)
.input('C', Items.IRON_CHESTPLATE)
.criterion(hasItem(PrismaSteelItems.PRISMA_STEEL), conditionsFromItem(PrismaSteelItems.PRISMA_STEEL))
.offerTo(recipeExporter);
createShaped(RecipeCategory.COMBAT, ModItems.WILDFIRE_BOOTS, 1)
.pattern(" ")
.pattern("A A")
.pattern("ABA")
.input('A', ModItems.INFERNAL_ASHES)
.input('B', Items.IRON_BOOTS)
.criterion(hasItem(ModItems.INFERNAL_ASHES), conditionsFromItem(ModItems.INFERNAL_ASHES))
.offerTo(recipeExporter);
createShapeless(RecipeCategory.FOOD, ModItems.BRICKED_UP, 1) createShapeless(RecipeCategory.FOOD, ModItems.BRICKED_UP, 1)
.input(Items.BRICK, 1) .input(Items.BRICK, 1)
.input(ModItems.STABLE_ENDTROPY, 1) .input(ModItems.STABLE_ENDTROPY, 1)
@@ -9,6 +9,7 @@ import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents; import net.minecraft.sound.SoundEvents;
import net.minecraft.text.Text;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World; import net.minecraft.world.World;
@@ -17,6 +18,11 @@ public class BrickedUpEffect extends StatusEffect {
super(category, color); super(category, color);
} }
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override @Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) { public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
@@ -5,12 +5,18 @@ import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory; import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
public class CigaretteEffect extends StatusEffect { public class CigaretteEffect extends StatusEffect {
public CigaretteEffect(StatusEffectCategory category, int color) { public CigaretteEffect(StatusEffectCategory category, int color) {
super(category, color); super(category, color);
} }
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override @Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) { public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
StatusEffectInstance effect = entity.getStatusEffect(ModEffects.CIGARETTE); StatusEffectInstance effect = entity.getStatusEffect(ModEffects.CIGARETTE);
@@ -5,6 +5,7 @@ import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory; import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.particle.ParticleTypes; import net.minecraft.particle.ParticleTypes;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
import net.minecraft.world.World; import net.minecraft.world.World;
import java.util.Random; import java.util.Random;
@@ -14,6 +15,11 @@ public class InfernalFireEffect extends StatusEffect {
super(category, color); super(category, color);
} }
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
Random r = new Random(); Random r = new Random();
@Override @Override
@@ -1,10 +1,12 @@
package com.acethewildfire.acesbs.effect; package com.acethewildfire.acesbs.effect;
import com.acethewildfire.acesbs.AcesBS;
import net.minecraft.entity.LivingEntity; import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory; import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
import java.util.Random; import java.util.Random;
@@ -20,6 +22,11 @@ public class JitteryEffect extends StatusEffect {
int maxDelay = 20; int maxDelay = 20;
int times = 2; int times = 2;
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override @Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) { public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
StatusEffectInstance effect = entity.getStatusEffect(ModEffects.JITTERY); StatusEffectInstance effect = entity.getStatusEffect(ModEffects.JITTERY);
@@ -33,9 +40,11 @@ public class JitteryEffect extends StatusEffect {
times = r.nextInt(2,5); times = r.nextInt(2,5);
} else if (delay >= maxDelay) { } else if (delay >= maxDelay) {
// Dance // Dance
double randomVelocityX = r.nextDouble(-0.3, 0.3); AcesBS.LOGGER.info("DANCE!");
double randomVelocityZ = r.nextDouble(-0.3, 0.3); double randomVelocityX = r.nextDouble(-0.5 * (amplifier + 1), 0.5 * (amplifier + 1));
entity.addVelocity(randomVelocityX, 0, randomVelocityZ); double randomVelocityZ = r.nextDouble(-0.5 * (amplifier + 1), 0.5 * (amplifier + 1));
entity.addVelocity(randomVelocityX, 0.3, randomVelocityZ);
entity.velocityModified = true;
//Decrement times //Decrement times
times--; times--;
@@ -4,12 +4,18 @@ import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory; import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
public class LemonEffect extends StatusEffect { public class LemonEffect extends StatusEffect {
public LemonEffect(StatusEffectCategory category, int color) { public LemonEffect(StatusEffectCategory category, int color) {
super(category, color); super(category, color);
} }
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override @Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) { public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
@@ -29,7 +29,7 @@ public class ModEffects {
public static final RegistryEntry<StatusEffect> CIGARETTE = registerStatusEffect("cigarette", public static final RegistryEntry<StatusEffect> CIGARETTE = registerStatusEffect("cigarette",
new CigaretteEffect(StatusEffectCategory.BENEFICIAL, 0xE6A74F) new CigaretteEffect(StatusEffectCategory.BENEFICIAL, 0xE6A74F)
.addAttributeModifier(EntityAttributes.MOVEMENT_SPEED, Identifier.of(AcesBS.MOD_ID, "cigarette"), .addAttributeModifier(EntityAttributes.MOVEMENT_SPEED, Identifier.of(AcesBS.MOD_ID, "cigarette"),
1F, EntityAttributeModifier.Operation.ADD_MULTIPLIED_TOTAL)); 0.50F, EntityAttributeModifier.Operation.ADD_MULTIPLIED_TOTAL));
public static final RegistryEntry<StatusEffect> WITHDRAWAL = registerStatusEffect("withdrawal", public static final RegistryEntry<StatusEffect> WITHDRAWAL = registerStatusEffect("withdrawal",
new WithdrawalEffect(StatusEffectCategory.HARMFUL, 0x4A412A) new WithdrawalEffect(StatusEffectCategory.HARMFUL, 0x4A412A)
@@ -4,12 +4,18 @@ import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory; import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
public class WithdrawalEffect extends StatusEffect { public class WithdrawalEffect extends StatusEffect {
protected WithdrawalEffect(StatusEffectCategory category, int color) { protected WithdrawalEffect(StatusEffectCategory category, int color) {
super(category, color); super(category, color);
} }
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override @Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) { public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
return true; return true;
@@ -17,7 +17,8 @@ import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.RotationAxis;
public class CombustibleLemonRenderer extends EntityRenderer<CombustibleLemonEntity, EntityRenderState> { public class CombustibleLemonRenderer extends EntityRenderer<CombustibleLemonEntity, EntityRenderState> {
protected CombustibleLemonModel model;
private final CombustibleLemonModel model;
public CombustibleLemonRenderer(EntityRendererFactory.Context ctx) { public CombustibleLemonRenderer(EntityRendererFactory.Context ctx) {
super(ctx); super(ctx);
@@ -30,24 +31,16 @@ public class CombustibleLemonRenderer extends EntityRenderer<CombustibleLemonEnt
} }
@Override @Override
public void render(EntityRenderState renderState, MatrixStack matrices, OrderedRenderCommandQueue queue, CameraRenderState cameraState) { public void updateRenderState(CombustibleLemonEntity entity, EntityRenderState state, float tickDelta) {
// matrices.push(); super.updateRenderState(entity, state, tickDelta);
// You can store custom values here if needed
}
// if(!entity.isGrounded()) { @Override
// matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(MathHelper.lerp(tickDelta, entity.prevYaw, entity.getYaw()))); public void render(EntityRenderState state, MatrixStack matrices,
// matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(entity.getRenderingRotation() * 5f)); OrderedRenderCommandQueue queue,
// matrices.translate(0, -1.0f, 0); CameraRenderState cameraState) {
// } else {
//// matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(entity.groundedOffset.getY()));
//// matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(entity.groundedOffset.getX()));
// matrices.translate(0, -1.0f, 0);
// }
// VertexConsumer vertexconsumer = ItemRenderer.getItemGlintConsumer(queue, super.render(state, matrices, queue, cameraState);
// this.model.getLayer(Identifier.of(AcesBS.MOD_ID, "textures/entity/combustible_lemon/combustible_lemon.png")), false, false);
// this.model.render(matrices, vertexconsumer, light, OverlayTexture.DEFAULT_UV);
// matrices.pop();
super.render(renderState, matrices, queue, cameraState);
} }
} }
@@ -3,6 +3,7 @@ package com.acethewildfire.acesbs.item;
import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.item.custom.HammerItem; import com.acethewildfire.acesbs.item.custom.HammerItem;
import com.acethewildfire.acesbs.item.custom.ModArmorItem; import com.acethewildfire.acesbs.item.custom.ModArmorItem;
import com.acethewildfire.acesbs.trim.ModTrimMaterials;
import net.minecraft.item.*; import net.minecraft.item.*;
import net.minecraft.item.equipment.EquipmentType; import net.minecraft.item.equipment.EquipmentType;
import net.minecraft.resource.featuretoggle.FeatureFlags; import net.minecraft.resource.featuretoggle.FeatureFlags;
@@ -10,7 +11,7 @@ import net.minecraft.util.Identifier;
public class AshenSteelItems { public class AshenSteelItems {
public static final Item ASHEN_STEEL = ModItems.registerItem("ashen_steel", Item::new); public static final Item ASHEN_STEEL = ModItems.registerItem("ashen_steel", setting -> new Item(setting.trimMaterial(ModTrimMaterials.ASHEN_STEEL)));
public static final Item ASHEN_STEEL_SWORD = ModItems.registerItem("ashen_steel_sword", public static final Item ASHEN_STEEL_SWORD = ModItems.registerItem("ashen_steel_sword",
setting -> new Item(setting.sword(ModToolMaterials.ASHEN_STEEL, 3, -2.4f))); setting -> new Item(setting.sword(ModToolMaterials.ASHEN_STEEL, 3, -2.4f)));
public static final Item ASHEN_STEEL_SHOVEL = ModItems.registerItem("ashen_steel_shovel", public static final Item ASHEN_STEEL_SHOVEL = ModItems.registerItem("ashen_steel_shovel",
@@ -18,7 +19,7 @@ public class AshenSteelItems {
public static final Item ASHEN_STEEL_PICKAXE = ModItems.registerItem("ashen_steel_pickaxe", public static final Item ASHEN_STEEL_PICKAXE = ModItems.registerItem("ashen_steel_pickaxe",
setting -> new Item(setting.pickaxe(ModToolMaterials.ASHEN_STEEL, 1.0F, -2.8F))); setting -> new Item(setting.pickaxe(ModToolMaterials.ASHEN_STEEL, 1.0F, -2.8F)));
public static final Item ASHEN_STEEL_HAMMER = ModItems.registerItem("ashen_steel_hammer", public static final Item ASHEN_STEEL_HAMMER = ModItems.registerItem("ashen_steel_hammer",
setting -> new HammerItem(ModToolMaterials.ASHEN_STEEL, 7.0F, -3.4F, setting)); setting -> new HammerItem(ModToolMaterials.ASHEN_STEEL, 9.0F, -3.4F, setting));
public static final Item ASHEN_STEEL_AXE = ModItems.registerItem("ashen_steel_axe", public static final Item ASHEN_STEEL_AXE = ModItems.registerItem("ashen_steel_axe",
setting -> new AxeItem(ModToolMaterials.ASHEN_STEEL, 6.0F, -3.1F, setting)); setting -> new AxeItem(ModToolMaterials.ASHEN_STEEL, 6.0F, -3.1F, setting));
public static final Item ASHEN_STEEL_HOE = ModItems.registerItem("ashen_steel_hoe", public static final Item ASHEN_STEEL_HOE = ModItems.registerItem("ashen_steel_hoe",
@@ -0,0 +1,45 @@
package com.acethewildfire.acesbs.item;
import com.acethewildfire.acesbs.item.custom.HammerItem;
import com.acethewildfire.acesbs.item.custom.ModArmorItem;
import net.minecraft.item.*;
import net.minecraft.item.equipment.EquipmentType;
public class FractalDiamondItems {
public static final Item FRACTAL_DIAMOND = ModItems.registerItem("fractal_diamond", Item::new);
// public static final Item FRACTAL_DIAMOND_SWORD = ModItems.registerItem("fractal_diamond_sword",
// setting -> new Item(setting.sword(ModToolMaterials.FRACTAL_DIAMOND, 3, -2.4f)));
// public static final Item FRACTAL_DIAMOND_SHOVEL = ModItems.registerItem("fractal_diamond_shovel",
// setting -> new ShovelItem(ModToolMaterials.FRACTAL_DIAMOND, 1.5F, -3.0F, setting));
// public static final Item FRACTAL_DIAMOND_PICKAXE = ModItems.registerItem("fractal_diamond_pickaxe",
// setting -> new Item(setting.pickaxe(ModToolMaterials.FRACTAL_DIAMOND, 1.0F, -2.8F)));
// public static final Item FRACTAL_DIAMOND_HAMMER = ModItems.registerItem("fractal_diamond_hammer",
// setting -> new HammerItem(ModToolMaterials.FRACTAL_DIAMOND, 7.0F, -3.4F, setting));
// public static final Item FRACTAL_DIAMOND_AXE = ModItems.registerItem("fractal_diamond_axe",
// setting -> new AxeItem(ModToolMaterials.FRACTAL_DIAMOND, 6.0F, -3.1F, setting));
// public static final Item FRACTAL_DIAMOND_HOE = ModItems.registerItem("fractal_diamond_hoe",
// setting -> new HoeItem(ModToolMaterials.FRACTAL_DIAMOND, -2.0F, -1.0F, setting));
// public static final Item FRACTAL_DIAMOND_HELMET = ModItems.registerItem("fractal_diamond_helmet",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.FRACTAL_DIAMOND_ARMOR_MATERIAL, EquipmentType.HELMET)
// .maxDamage(EquipmentType.HELMET.getMaxDamage(15))));
// public static final Item FRACTAL_DIAMOND_CHESTPLATE = ModItems.registerItem("fractal_diamond_chestplate",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.FRACTAL_DIAMOND_ARMOR_MATERIAL, EquipmentType.CHESTPLATE)
// .maxDamage(EquipmentType.CHESTPLATE.getMaxDamage(15))));
// public static final Item FRACTAL_DIAMOND_LEGGINGS = ModItems.registerItem("fractal_diamond_leggings",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.FRACTAL_DIAMOND_ARMOR_MATERIAL, EquipmentType.LEGGINGS)
// .maxDamage(EquipmentType.LEGGINGS.getMaxDamage(15))));
// public static final Item FRACTAL_DIAMOND_BOOTS = ModItems.registerItem("fractal_diamond_boots",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.FRACTAL_DIAMOND_ARMOR_MATERIAL, EquipmentType.BOOTS)
// .maxDamage(EquipmentType.BOOTS.getMaxDamage(15))));
// public static final Item FRACTAL_SMITHING_TEMPLATE = ModItems.registerItem("fractal_armor_trim_smithing_template",
// SmithingTemplateItem::of);
public static void registerFractalItems() {
// Do nothing, this just makes sure the items get registered
}
}
@@ -0,0 +1,45 @@
package com.acethewildfire.acesbs.item;
import com.acethewildfire.acesbs.item.custom.HammerItem;
import com.acethewildfire.acesbs.item.custom.ModArmorItem;
import net.minecraft.item.*;
import net.minecraft.item.equipment.EquipmentType;
public class HellfireDiamondItems {
public static final Item HELLFIRE_DIAMOND = ModItems.registerItem("hellfire_diamond", Item::new);
// public static final Item HELLFIRE_DIAMOND_SWORD = ModItems.registerItem("hellfire_diamond_sword",
// setting -> new Item(setting.sword(ModToolMaterials.HELLFIRE_DIAMOND, 3, -2.4f)));
// public static final Item HELLFIRE_DIAMOND_SHOVEL = ModItems.registerItem("hellfire_diamond_shovel",
// setting -> new ShovelItem(ModToolMaterials.HELLFIRE_DIAMOND, 1.5F, -3.0F, setting));
// public static final Item HELLFIRE_DIAMOND_PICKAXE = ModItems.registerItem("hellfire_diamond_pickaxe",
// setting -> new Item(setting.pickaxe(ModToolMaterials.HELLFIRE_DIAMOND, 1.0F, -2.8F)));
// public static final Item HELLFIRE_DIAMOND_HAMMER = ModItems.registerItem("hellfire_diamond_hammer",
// setting -> new HammerItem(ModToolMaterials.HELLFIRE_DIAMOND, 7.0F, -3.4F, setting));
// public static final Item HELLFIRE_DIAMOND_AXE = ModItems.registerItem("hellfire_diamond_axe",
// setting -> new AxeItem(ModToolMaterials.HELLFIRE_DIAMOND, 6.0F, -3.1F, setting));
// public static final Item HELLFIRE_DIAMOND_HOE = ModItems.registerItem("hellfire_diamond_hoe",
// setting -> new HoeItem(ModToolMaterials.HELLFIRE_DIAMOND, -2.0F, -1.0F, setting));
// public static final Item HELLFIRE_DIAMOND_HELMET = ModItems.registerItem("hellfire_diamond_helmet",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.HELLFIRE_DIAMOND_ARMOR_MATERIAL, EquipmentType.HELMET)
// .maxDamage(EquipmentType.HELMET.getMaxDamage(15))));
// public static final Item HELLFIRE_DIAMOND_CHESTPLATE = ModItems.registerItem("hellfire_diamond_chestplate",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.HELLFIRE_DIAMOND_ARMOR_MATERIAL, EquipmentType.CHESTPLATE)
// .maxDamage(EquipmentType.CHESTPLATE.getMaxDamage(15))));
// public static final Item HELLFIRE_DIAMOND_LEGGINGS = ModItems.registerItem("hellfire_diamond_leggings",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.HELLFIRE_DIAMOND_ARMOR_MATERIAL, EquipmentType.LEGGINGS)
// .maxDamage(EquipmentType.LEGGINGS.getMaxDamage(15))));
// public static final Item HELLFIRE_DIAMOND_BOOTS = ModItems.registerItem("hellfire_diamond_boots",
// setting -> new ModArmorItem(setting
// .armor(ModArmorMaterials.HELLFIRE_DIAMOND_ARMOR_MATERIAL, EquipmentType.BOOTS)
// .maxDamage(EquipmentType.BOOTS.getMaxDamage(15))));
// public static final Item HELLFIRE_SMITHING_TEMPLATE = ModItems.registerItem("hellfire_armor_trim_smithing_template",
// SmithingTemplateItem::of);
public static void registerHellfireItems() {
// Do nothing, this just makes sure the items get registered
}
}
@@ -22,7 +22,10 @@ public class ModItemGroups {
entries.add(ModItems.RAW_ENDTROPY); entries.add(ModItems.RAW_ENDTROPY);
entries.add(ModItems.STABLE_ENDTROPY); entries.add(ModItems.STABLE_ENDTROPY);
entries.add(PrismaSteelItems.PRISMA_STEEL); entries.add(PrismaSteelItems.PRISMA_STEEL);
entries.add(FractalDiamondItems.FRACTAL_DIAMOND);
entries.add(AshenSteelItems.ASHEN_STEEL); entries.add(AshenSteelItems.ASHEN_STEEL);
entries.add(HellfireDiamondItems.HELLFIRE_DIAMOND);
entries.add(ModItems.MOTE_OF_ORDER); entries.add(ModItems.MOTE_OF_ORDER);
entries.add(ModItems.DUST_OF_ORDER); entries.add(ModItems.DUST_OF_ORDER);
entries.add(ModItems.INGOT_OF_ORDER); entries.add(ModItems.INGOT_OF_ORDER);
@@ -32,6 +35,7 @@ public class ModItemGroups {
entries.add(ModItems.INFERNAL_BEEF); entries.add(ModItems.INFERNAL_BEEF);
entries.add(ModItems.BRICKED_UP); entries.add(ModItems.BRICKED_UP);
entries.add(ModItems.ORACLE_LEMON); entries.add(ModItems.ORACLE_LEMON);
entries.add(ModItems.GREEN_BRICKS); entries.add(ModItems.GREEN_BRICKS);
entries.add(ModItems.CRAB_RAVE_MUSIC_DISC); entries.add(ModItems.CRAB_RAVE_MUSIC_DISC);
entries.add(ModItems.TOBACCO_SEEDS); entries.add(ModItems.TOBACCO_SEEDS);
@@ -41,6 +45,7 @@ public class ModItemGroups {
entries.add(ModItems.CIGARETTE_FUNNY); entries.add(ModItems.CIGARETTE_FUNNY);
entries.add(ModItems.BUBBLE_PIPE); entries.add(ModItems.BUBBLE_PIPE);
entries.add(ModItems.FREN_SPAWN_EGG); entries.add(ModItems.FREN_SPAWN_EGG);
entries.add(ModItems.VULGAR_BONES_SPAWN_EGG); entries.add(ModItems.VULGAR_BONES_SPAWN_EGG);
}) })
.build(); .build();
@@ -231,6 +231,9 @@ public class ModItems {
public static void registerModItems() { public static void registerModItems() {
PrismaSteelItems.registerPrismaItems(); PrismaSteelItems.registerPrismaItems();
AshenSteelItems.registerAshenItems(); AshenSteelItems.registerAshenItems();
FractalDiamondItems.registerFractalItems();
HellfireDiamondItems.registerHellfireItems();
AcesBS.LOGGER.info("Registering Mod Items for " + AcesBS.MOD_ID); AcesBS.LOGGER.info("Registering Mod Items for " + AcesBS.MOD_ID);
AttackEntityCallback.EVENT.register((player, world, hand, entity, hitResult) -> { AttackEntityCallback.EVENT.register((player, world, hand, entity, hitResult) -> {
@@ -5,15 +5,16 @@ import com.google.common.base.Suppliers;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.ToolMaterial; import net.minecraft.item.ToolMaterial;
import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.Ingredient;
import net.minecraft.registry.tag.BlockTags;
import net.minecraft.registry.tag.TagKey; import net.minecraft.registry.tag.TagKey;
import java.util.function.Supplier; import java.util.function.Supplier;
public class ModToolMaterials { public class ModToolMaterials {
public static ToolMaterial PRISMA_STEEL = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_PRISMA_STEEL_TOOL, public static ToolMaterial PRISMA_STEEL = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL,
750, 8.0F, 2.0F, 22, ModTags.Items.PRISMA_REPAIR); 1561, 8.0F, 3.0F, 22, ModTags.Items.PRISMA_REPAIR);
public static ToolMaterial ASHEN_STEEL = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_ASHEN_STEEL_TOOL, public static ToolMaterial ASHEN_STEEL = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL,
750, 8.0F, 2.0F, 22, ModTags.Items.ASHEN_REPAIR); 1561, 8.0F, 3.0F, 22, ModTags.Items.ASHEN_REPAIR);
} }
@@ -2,13 +2,14 @@ package com.acethewildfire.acesbs.item;
import com.acethewildfire.acesbs.item.custom.HammerItem; import com.acethewildfire.acesbs.item.custom.HammerItem;
import com.acethewildfire.acesbs.item.custom.ModArmorItem; import com.acethewildfire.acesbs.item.custom.ModArmorItem;
import com.acethewildfire.acesbs.trim.ModTrimMaterials;
import net.minecraft.item.*; import net.minecraft.item.*;
import net.minecraft.item.equipment.EquipmentType; import net.minecraft.item.equipment.EquipmentType;
public class PrismaSteelItems { public class PrismaSteelItems {
public static final Item PRISMA_STEEL = ModItems.registerItem("prisma_steel", Item::new); public static final Item PRISMA_STEEL = ModItems.registerItem("prisma_steel", setting -> new Item(setting.trimMaterial(ModTrimMaterials.PRISMA_STEEL)));
public static final Item PRISMA_STEEL_SWORD = ModItems.registerItem("prisma_steel_sword", public static final Item PRISMA_STEEL_SWORD = ModItems.registerItem("prisma_steel_sword",
setting -> new Item(setting.sword(ModToolMaterials.PRISMA_STEEL, 3, -2.4f))); setting -> new Item(setting.sword(ModToolMaterials.PRISMA_STEEL, 3, -2.4f)));
public static final Item PRISMA_STEEL_SHOVEL = ModItems.registerItem("prisma_steel_shovel", public static final Item PRISMA_STEEL_SHOVEL = ModItems.registerItem("prisma_steel_shovel",
@@ -16,7 +17,7 @@ public class PrismaSteelItems {
public static final Item PRISMA_STEEL_PICKAXE = ModItems.registerItem("prisma_steel_pickaxe", public static final Item PRISMA_STEEL_PICKAXE = ModItems.registerItem("prisma_steel_pickaxe",
setting -> new Item(setting.pickaxe(ModToolMaterials.PRISMA_STEEL, 1.0F, -2.8F))); setting -> new Item(setting.pickaxe(ModToolMaterials.PRISMA_STEEL, 1.0F, -2.8F)));
public static final Item PRISMA_STEEL_HAMMER = ModItems.registerItem("prisma_steel_hammer", public static final Item PRISMA_STEEL_HAMMER = ModItems.registerItem("prisma_steel_hammer",
setting -> new HammerItem(ModToolMaterials.PRISMA_STEEL, 7.0F, -3.4F, setting)); setting -> new HammerItem(ModToolMaterials.PRISMA_STEEL, 9.0F, -3.4F, setting));
public static final Item PRISMA_STEEL_AXE = ModItems.registerItem("prisma_steel_axe", public static final Item PRISMA_STEEL_AXE = ModItems.registerItem("prisma_steel_axe",
setting -> new AxeItem(ModToolMaterials.PRISMA_STEEL, 6.0F, -3.1F, setting)); setting -> new AxeItem(ModToolMaterials.PRISMA_STEEL, 6.0F, -3.1F, setting));
public static final Item PRISMA_STEEL_HOE = ModItems.registerItem("prisma_steel_hoe", public static final Item PRISMA_STEEL_HOE = ModItems.registerItem("prisma_steel_hoe",
@@ -134,11 +134,13 @@ public class CigaretteLemon extends Item {
World.ExplosionSourceType.NONE World.ExplosionSourceType.NONE
); );
if (world instanceof ServerWorld serverWorld) {
user.damage( user.damage(
(ServerWorld) world, serverWorld,
user.getDamageSources().explosion(user, user), user.getDamageSources().explosion(user, user),
20F 20F
); );
}
@@ -2,8 +2,11 @@ package com.acethewildfire.acesbs.item.custom;
import com.acethewildfire.acesbs.item.ModArmorMaterials; import com.acethewildfire.acesbs.item.ModArmorMaterials;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import net.fabricmc.fabric.api.item.v1.EnchantingContext;
import net.minecraft.component.DataComponentTypes; import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.EquippableComponent; import net.minecraft.component.type.EquippableComponent;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.EquipmentSlot;
import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffectInstance;
@@ -13,6 +16,8 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.equipment.ArmorMaterial; import net.minecraft.item.equipment.ArmorMaterial;
import net.minecraft.item.equipment.EquipmentType; import net.minecraft.item.equipment.EquipmentType;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import net.minecraft.world.World; import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -26,6 +31,8 @@ public class ModArmorItem extends Item {
.put(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, .put(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL,
List.of(new StatusEffectInstance(StatusEffects.SPEED, 400, 1, false, false), List.of(new StatusEffectInstance(StatusEffects.SPEED, 400, 1, false, false),
new StatusEffectInstance(StatusEffects.JUMP_BOOST, 400, 0, false, false))) new StatusEffectInstance(StatusEffects.JUMP_BOOST, 400, 0, false, false)))
.put(ModArmorMaterials.WILDFIRE_ARMOR_MATERIAL,
List.of(new StatusEffectInstance(StatusEffects.FIRE_RESISTANCE, 400, 0, false, false)))
// For more materials just add more puts // For more materials just add more puts
// .put(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL, // .put(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL,
// List.of(new StatusEffectInstance(StatusEffects.SPEED, 400, 2, false, false), // List.of(new StatusEffectInstance(StatusEffects.SPEED, 400, 2, false, false),
@@ -42,11 +49,9 @@ public class ModArmorItem extends Item {
if(!world.isClient()) { if(!world.isClient()) {
if(entity instanceof PlayerEntity player) { if(entity instanceof PlayerEntity player) {
if(hasFullSuitOfArmorOn(player)) {
evaluateArmorEffects(player); evaluateArmorEffects(player);
} }
} }
}
super.inventoryTick(stack, world, entity, slot); super.inventoryTick(stack, world, entity, slot);
} }
@@ -79,17 +84,18 @@ public class ModArmorItem extends Item {
EquippableComponent equippableComponentBreastplate = player.getEquippedStack(EquipmentSlot.CHEST).getItem().getComponents().get(DataComponentTypes.EQUIPPABLE); EquippableComponent equippableComponentBreastplate = player.getEquippedStack(EquipmentSlot.CHEST).getItem().getComponents().get(DataComponentTypes.EQUIPPABLE);
EquippableComponent equippableComponentHelmet = player.getEquippedStack(EquipmentSlot.HEAD).getItem().getComponents().get(DataComponentTypes.EQUIPPABLE); EquippableComponent equippableComponentHelmet = player.getEquippedStack(EquipmentSlot.HEAD).getItem().getComponents().get(DataComponentTypes.EQUIPPABLE);
ArmorMaterial prismaSteelArmorMaterial = ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL;
ArmorMaterial wildfireArmorMaterial = ModArmorMaterials.WILDFIRE_ARMOR_MATERIAL;
if (material == prismaSteelArmorMaterial){
// Check whole armor
return (equippableComponentBoots != null && equippableComponentBoots.assetId().get().equals(material.assetId())) && (equippableComponentLeggings != null && equippableComponentLeggings.assetId().get().equals(material.assetId())) && return (equippableComponentBoots != null && equippableComponentBoots.assetId().get().equals(material.assetId())) && (equippableComponentLeggings != null && equippableComponentLeggings.assetId().get().equals(material.assetId())) &&
(equippableComponentBreastplate != null && equippableComponentBreastplate.assetId().get().equals(material.assetId())) && (equippableComponentHelmet != null && equippableComponentHelmet.assetId().get().equals(material.assetId())); (equippableComponentBreastplate != null && equippableComponentBreastplate.assetId().get().equals(material.assetId())) && (equippableComponentHelmet != null && equippableComponentHelmet.assetId().get().equals(material.assetId()));
} else if (material == wildfireArmorMaterial) {
// Just check boots
return (equippableComponentBoots != null && equippableComponentBoots.assetId().get().equals(material.assetId()));
} }
private boolean hasFullSuitOfArmorOn(PlayerEntity player) { return false;
ItemStack boots = player.getEquippedStack(EquipmentSlot.FEET);
ItemStack leggings = player.getEquippedStack(EquipmentSlot.LEGS);
ItemStack breastplate = player.getEquippedStack(EquipmentSlot.CHEST);
ItemStack helmet = player.getEquippedStack(EquipmentSlot.HEAD);
return !helmet.isEmpty() && !breastplate.isEmpty()
&& !leggings.isEmpty() && !boots.isEmpty();
} }
} }
@@ -39,6 +39,8 @@ public class ModTrimMaterials {
ArmorTrimMaterial trimMaterial = new ArmorTrimMaterial(ArmorTrimAssets.of(armorTrimKey.getValue().getPath()), ArmorTrimMaterial trimMaterial = new ArmorTrimMaterial(ArmorTrimAssets.of(armorTrimKey.getValue().getPath()),
Text.translatable(Util.createTranslationKey("trim_material", armorTrimKey.getValue())).fillStyle(style)); Text.translatable(Util.createTranslationKey("trim_material", armorTrimKey.getValue())).fillStyle(style));
AcesBS.LOGGER.info(Util.createTranslationKey("trim_material", armorTrimKey.getValue()));
registerable.register(armorTrimKey, trimMaterial); registerable.register(armorTrimKey, trimMaterial);
} }
@@ -7,6 +7,8 @@ import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.tag.TagKey; import net.minecraft.registry.tag.TagKey;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import static net.fabricmc.fabric.api.tag.convention.v2.TagUtil.C_TAG_NAMESPACE;
public class ModTags { public class ModTags {
public static class Blocks { public static class Blocks {
@@ -14,9 +16,17 @@ public class ModTags {
public static final TagKey<Block> INCORRECT_FOR_PRISMA_STEEL_TOOL = createTag("incorrect_for_prisma_steel_tool"); public static final TagKey<Block> INCORRECT_FOR_PRISMA_STEEL_TOOL = createTag("incorrect_for_prisma_steel_tool");
public static final TagKey<Block> INCORRECT_FOR_ASHEN_STEEL_TOOL = createTag("incorrect_for_ashen_steel_tool"); public static final TagKey<Block> INCORRECT_FOR_ASHEN_STEEL_TOOL = createTag("incorrect_for_ashen_steel_tool");
//Common Tags
public static final TagKey<Block> MC_ORES =
TagKey.of(RegistryKeys.BLOCK, Identifier.of("minecraft", "ores"));
private static TagKey<Block> createTag(String name){ private static TagKey<Block> createTag(String name){
return TagKey.of(RegistryKeys.BLOCK, Identifier.of(AcesBS.MOD_ID, name)); return TagKey.of(RegistryKeys.BLOCK, Identifier.of(AcesBS.MOD_ID, name));
} }
private static TagKey<Block> createCommonTag(String name){
return TagKey.of(RegistryKeys.BLOCK, Identifier.of(C_TAG_NAMESPACE, name));
}
} }
public static class Items { public static class Items {
@@ -28,8 +38,15 @@ public class ModTags {
public static final TagKey<Item> PLATES_REPAIR = createTag("plates_repair"); public static final TagKey<Item> PLATES_REPAIR = createTag("plates_repair");
public static final TagKey<Item> BERSERKERS_REPAIR = createTag("berserkers_repair"); public static final TagKey<Item> BERSERKERS_REPAIR = createTag("berserkers_repair");
//Common Tags
public static final TagKey<Item> C_INGOTS_STEEL = createCommonTag("ingots/steel");
private static TagKey<Item> createTag(String name){ private static TagKey<Item> createTag(String name){
return TagKey.of(RegistryKeys.ITEM, Identifier.of(AcesBS.MOD_ID, name)); return TagKey.of(RegistryKeys.ITEM, Identifier.of(AcesBS.MOD_ID, name));
} }
private static TagKey<Item> createCommonTag(String name){
return TagKey.of(RegistryKeys.ITEM, Identifier.of(C_TAG_NAMESPACE, name));
}
} }
} }
@@ -1,9 +1,13 @@
package com.acethewildfire.acesbs.util; package com.acethewildfire.acesbs.util;
import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.AcesBSClient;
import com.acethewildfire.acesbs.item.ModItems; import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.item.PrismaSteelItems; import com.acethewildfire.acesbs.item.PrismaSteelItems;
import net.fabricmc.fabric.api.loot.v3.LootTableEvents; import net.fabricmc.fabric.api.loot.v3.LootTableEvents;
import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.Enchantments; import net.minecraft.enchantment.Enchantments;
@@ -13,30 +17,34 @@ import net.minecraft.item.Items;
import net.minecraft.loot.LootPool; import net.minecraft.loot.LootPool;
import net.minecraft.loot.LootTable; import net.minecraft.loot.LootTable;
import net.minecraft.loot.condition.InvertedLootCondition; import net.minecraft.loot.condition.InvertedLootCondition;
import net.minecraft.loot.condition.LocationCheckLootCondition;
import net.minecraft.loot.condition.LootCondition; import net.minecraft.loot.condition.LootCondition;
import net.minecraft.loot.condition.MatchToolLootCondition; import net.minecraft.loot.condition.MatchToolLootCondition;
import net.minecraft.loot.entry.ItemEntry; import net.minecraft.loot.entry.ItemEntry;
import net.minecraft.loot.function.ApplyBonusLootFunction; import net.minecraft.loot.function.ApplyBonusLootFunction;
import net.minecraft.loot.function.ExplosionDecayLootFunction; import net.minecraft.loot.function.ExplosionDecayLootFunction;
import net.minecraft.loot.provider.number.UniformLootNumberProvider; import net.minecraft.loot.provider.number.UniformLootNumberProvider;
import net.minecraft.predicate.BlockPredicate;
import net.minecraft.predicate.NumberRange; import net.minecraft.predicate.NumberRange;
import net.minecraft.predicate.component.ComponentPredicateTypes; import net.minecraft.predicate.component.ComponentPredicateTypes;
import net.minecraft.predicate.component.ComponentsPredicate; import net.minecraft.predicate.component.ComponentsPredicate;
import net.minecraft.predicate.entity.LocationPredicate;
import net.minecraft.predicate.item.EnchantmentPredicate; import net.minecraft.predicate.item.EnchantmentPredicate;
import net.minecraft.predicate.item.EnchantmentsPredicate; import net.minecraft.predicate.item.EnchantmentsPredicate;
import net.minecraft.predicate.item.ItemPredicate; import net.minecraft.predicate.item.ItemPredicate;
import net.minecraft.registry.RegistryEntryLookup; import net.minecraft.registry.*;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.registry.entry.RegistryEntryList; import net.minecraft.registry.entry.RegistryEntryList;
import net.minecraft.registry.tag.TagKey; import net.minecraft.registry.tag.TagKey;
import net.minecraft.util.Identifier;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import static com.acethewildfire.acesbs.util.ModTags.Blocks.MC_ORES;
import static net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags.ORES;
public class UpdateRecipies { public class UpdateRecipies {
public static LootCondition.Builder specialToolCondition(RegistryEntryLookup<Item> lookup, ItemConvertible... tools) { public static LootCondition.Builder specialToolCondition(RegistryEntryLookup<Item> lookup, ItemConvertible... tools) {
return MatchToolLootCondition.builder( return MatchToolLootCondition.builder(
@@ -46,53 +54,24 @@ public class UpdateRecipies {
} }
public static void updateVanilla(){ public static void updateVanilla(){
AcesBS.LOGGER.info("Updating vanilla Ore Drops for Prisma Steel"); AcesBS.LOGGER.info("Updating vanilla and modded Ore Drops for Prisma Steel Tools");
RegistryKey<LootTable> coalOreLootId = Blocks.COAL_ORE.getLootTableKey().get();
RegistryKey<LootTable> copperOreLootId = Blocks.COPPER_ORE.getLootTableKey().get();
RegistryKey<LootTable> ironOreLootId = Blocks.IRON_ORE.getLootTableKey().get();
RegistryKey<LootTable> goldOreLootId = Blocks.GOLD_ORE.getLootTableKey().get();
RegistryKey<LootTable> lapisOreLootId = Blocks.LAPIS_ORE.getLootTableKey().get();
RegistryKey<LootTable> redstoneOreLootId = Blocks.REDSTONE_ORE.getLootTableKey().get();
RegistryKey<LootTable> diamondOreLootId = Blocks.DIAMOND_ORE.getLootTableKey().get();
RegistryKey<LootTable> emeraldOreLootId = Blocks.EMERALD_ORE.getLootTableKey().get();
RegistryKey<LootTable> coalDeepslateOreLootId = Blocks.DEEPSLATE_COAL_ORE.getLootTableKey().get();
RegistryKey<LootTable> copperDeepslateOreLootId = Blocks.DEEPSLATE_COPPER_ORE.getLootTableKey().get();
RegistryKey<LootTable> ironDeepslateOreLootId = Blocks.DEEPSLATE_IRON_ORE.getLootTableKey().get();
RegistryKey<LootTable> goldDeepslateOreLootId = Blocks.DEEPSLATE_GOLD_ORE.getLootTableKey().get();
RegistryKey<LootTable> lapisDeepslateOreLootId = Blocks.DEEPSLATE_LAPIS_ORE.getLootTableKey().get();
RegistryKey<LootTable> redstoneDeepslateOreLootId = Blocks.DEEPSLATE_REDSTONE_ORE.getLootTableKey().get();
RegistryKey<LootTable> diamondDeepslateOreLootId = Blocks.DEEPSLATE_DIAMOND_ORE.getLootTableKey().get();
RegistryKey<LootTable> emeraldDeepslateOreLootId = Blocks.DEEPSLATE_EMERALD_ORE.getLootTableKey().get();
List<RegistryKey<LootTable>> 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);
LootTableEvents.MODIFY.register((key, tableBuilder, source, wrapperLookup) -> { LootTableEvents.MODIFY.register((key, tableBuilder, source, wrapperLookup) -> {
RegistryWrapper.Impl<Enchantment> impl = wrapperLookup.getOrThrow(RegistryKeys.ENCHANTMENT); RegistryWrapper.Impl<Enchantment> impl = wrapperLookup.getOrThrow(RegistryKeys.ENCHANTMENT);
RegistryEntryLookup<Item> itemLookup = wrapperLookup.getOrThrow(RegistryKeys.ITEM); RegistryEntryLookup<Item> itemLookup = wrapperLookup.getOrThrow(RegistryKeys.ITEM);
Identifier id = key.getValue();
// Only block loot tables
if (!id.getPath().startsWith("blocks/")) return;
String blockName = id.getPath().substring("blocks/".length());
// Reliable ore detection
if (!(blockName.endsWith("_ore") || blockName.contains("_ore_"))) return;
AcesBS.LOGGER.info("Adding Prisma Pool to {}", blockName);
LootCondition.Builder silkTouchCondition = MatchToolLootCondition.builder( LootCondition.Builder silkTouchCondition = MatchToolLootCondition.builder(
ItemPredicate.Builder.create().components( ItemPredicate.Builder.create().components(
ComponentsPredicate.Builder.create() ComponentsPredicate.Builder.create()
@@ -104,7 +83,6 @@ public class UpdateRecipies {
) )
); );
if (source.isBuiltin() && ores.contains(key)) {
LootPool.Builder extraPool = LootPool.builder() LootPool.Builder extraPool = LootPool.builder()
.rolls(UniformLootNumberProvider.create(1, 2)) .rolls(UniformLootNumberProvider.create(1, 2))
.conditionally(InvertedLootCondition.builder(silkTouchCondition)) .conditionally(InvertedLootCondition.builder(silkTouchCondition))
@@ -124,7 +102,6 @@ public class UpdateRecipies {
// Add our extra drop pool to loot table // Add our extra drop pool to loot table
tableBuilder.pool(extraPool); tableBuilder.pool(extraPool);
}
}); });
} }
} }
@@ -0,0 +1,2 @@
[LocalizedFileNames]
vulgar_bones_spawn_egg.png=@vulgar_bones_spawn_egg.png,0
Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

@@ -5,37 +5,37 @@
"type": "paletted_permutations", "type": "paletted_permutations",
"textures": [ "textures": [
"trims/entity/humanoid/coast", "trims/entity/humanoid/coast",
"trims/entity/humanoid_leggings/coast_leggings", "trims/entity/humanoid_leggings/coast",
"trims/entity/humanoid/sentry", "trims/entity/humanoid/sentry",
"trims/entity/humanoid_leggings/sentry_leggings", "trims/entity/humanoid_leggings/sentry",
"trims/entity/humanoid/dune", "trims/entity/humanoid/dune",
"trims/entity/humanoid_leggings/dune_leggings", "trims/entity/humanoid_leggings/dune",
"trims/entity/humanoid/wild", "trims/entity/humanoid/wild",
"trims/entity/humanoid_leggings/wild_leggings", "trims/entity/humanoid_leggings/wild",
"trims/entity/humanoid/ward", "trims/entity/humanoid/ward",
"trims/entity/humanoid_leggings/ward_leggings", "trims/entity/humanoid_leggings/ward",
"trims/entity/humanoid/eye", "trims/entity/humanoid/eye",
"trims/entity/humanoid_leggings/eye_leggings", "trims/entity/humanoid_leggings/eye",
"trims/entity/humanoid/vex", "trims/entity/humanoid/vex",
"trims/entity/humanoid_leggings/vex_leggings", "trims/entity/humanoid_leggings/vex",
"trims/entity/humanoid/tide", "trims/entity/humanoid/tide",
"trims/entity/humanoid_leggings/tide_leggings", "trims/entity/humanoid_leggings/tide",
"trims/entity/humanoid/snout", "trims/entity/humanoid/snout",
"trims/entity/humanoid_leggings/snout_leggings", "trims/entity/humanoid_leggings/snout",
"trims/entity/humanoid/rib", "trims/entity/humanoid/rib",
"trims/entity/humanoid_leggings/rib_leggings", "trims/entity/humanoid_leggings/rib",
"trims/entity/humanoid/spire", "trims/entity/humanoid/spire",
"trims/entity/humanoid_leggings/spire_leggings", "trims/entity/humanoid_leggings/spire",
"trims/entity/humanoid/wayfinder", "trims/entity/humanoid/wayfinder",
"trims/entity/humanoid_leggings/wayfinder_leggings", "trims/entity/humanoid_leggings/wayfinder",
"trims/entity/humanoid/shaper", "trims/entity/humanoid/shaper",
"trims/entity/humanoid_leggings/shaper_leggings", "trims/entity/humanoid_leggings/shaper",
"trims/entity/humanoid/silence", "trims/entity/humanoid/silence",
"trims/entity/humanoid_leggings/silence_leggings", "trims/entity/humanoid_leggings/silence",
"trims/entity/humanoid/raiser", "trims/entity/humanoid/raiser",
"trims/entity/humanoid_leggings/raiser_leggings", "trims/entity/humanoid_leggings/raiser",
"trims/entity/humanoid/host", "trims/entity/humanoid/host",
"trims/entity/humanoid_leggings/host_leggings", "trims/entity/humanoid_leggings/host",
"acesbs:trims/entity/humanoid/prisma", "acesbs:trims/entity/humanoid/prisma",
"acesbs:trims/entity/humanoid_leggings/prisma", "acesbs:trims/entity/humanoid_leggings/prisma",
"acesbs:trims/entity/humanoid/ashen", "acesbs:trims/entity/humanoid/ashen",
@@ -0,0 +1 @@
suffix.emissive=_e
@@ -0,0 +1,9 @@
{
"type": "acesbs:entropic_entangler",
"ingredient": "minecraft:diamond",
"ingredient2": "acesbs:stable_entropy",
"result": {
"count": 1,
"id": "acesbs:fractal_diamond"
}
}
@@ -0,0 +1,9 @@
{
"type": "acesbs:entropic_entangler",
"ingredient": "minecraft:diamond",
"ingredient2": "acesbs:stable_entropy",
"result": {
"count": 1,
"id": "acesbs:hellfire_diamond"
}
}