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
@@ -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": {
"color": "#B16491",
"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",
"icon": {
"count": 1,
"id": "minecraft:diamond"
"id": "acesbs:stable_entropy"
},
"show_toast": false,
"title": "Ace's BS"
@@ -0,0 +1,5 @@
{
"values": [
"acesbs:lemonwood_leaves"
]
}
@@ -3,6 +3,8 @@
"acesbs:lemonwood_planks",
"acesbs:lemonwood_wall",
"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:stable_endtropy_block",
"acesbs:prisma_steel_block",
"acesbs:ashen_steel_block",
"acesbs:entropic_stabilizer",
"acesbs:entropic_eviscerator",
"acesbs:entropic_entangler"
"acesbs:ashen_steel_block"
]
}
@@ -1,5 +1,8 @@
{
"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": [
"acesbs:lemonwood_planks"
"acesbs:lemonwood_planks",
"acesbs:lizard_planks"
]
}
@@ -1,4 +1,5 @@
{
"replace": false,
"values": [
"acesbs:prisma_steel",
"acesbs:ashen_steel"
@@ -7,8 +7,7 @@ import com.acethewildfire.acesbs.effect.ModEffects;
import com.acethewildfire.acesbs.enchantment.ModEnchantmentEffects;
import com.acethewildfire.acesbs.entity.ModEntities;
import com.acethewildfire.acesbs.entity.custom.FrenEntity;
import com.acethewildfire.acesbs.item.ModItemGroups;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.item.*;
import com.acethewildfire.acesbs.particle.ModParticles;
import com.acethewildfire.acesbs.potion.ModPotions;
import com.acethewildfire.acesbs.recipe.ModRecipies;
@@ -1,8 +1,6 @@
Command Core textures broken
Command Core Broken
Particles not on server???
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
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)
- Fractal Diamond (Stable Entropy + Diamond)
- Ashen Steel (Ashes + Iron)
- Everburn Gold (Ashes + Gold)
- Infernal Diamond (Ashes + Diamond)
- Endtropium (Stable End-tropy + Netherite)
- Faerie Shard (Amethyst + Stable Entropy)
- Hyper Sugar (Stable Entropy + Sugar)
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)
- Cigarette (Speed for 5, slow for 5, 30 of jittery) (Acheivements) (Stats)
- Cigarette (Funny) (Blows inordinate amounts of smoke)
- Cigarette (Lemon) (Explodes)
Crop
X Tobacco
Items
- Bag of Holding
- Levels Iron->Netherite->Entopic
- Curios support?
- Bubble pipe (Aquarium gravel, tobacco)
- Pale wood + Others
Armor
X Beserker Pauldron (Special: Skeleton hurt sound)
X Wildfire Boots (Special: Rainbow ember)
- Fireskip Boots (Infernal Fire effect on water)
- Sov's Plate Carrier
- (Headlamp Armors using Everburn Gold)
- Honse armour (maybe).
Potions
@@ -50,7 +29,6 @@ X Lemon (Yellow Blindness)
- Bottle o' Drunken Sailor
Tools
X 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)
@@ -100,29 +78,14 @@ Order
Weapons
- Big Iron (Bow?)
- Thot Begon
- Ahab's Harpoon
X Combustable Lemon
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)
- Decorative (Bricks)
- Crystalized Entropy (Stained Glass version of Stable Entropy)
- Crystalized Entropy Retexture (Stained Glass version of Stable Entropy)
- 2 Player Bed
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
- Incense Burner
Mobs
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)
- Alice
- Pet rock (Stable Entropy on a stone block)
X Swearing skeleton (Stable Entropy on skeleton).
- Infernal Bull (nether)
- Prisma Slime (Prisma Steel and slime)
- Tarr Slime (Prisma and Magmacube)
Music Disk
X Crab Rave
X Lizard
Advancements
Statistics
- 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
Next Mod
Aces Mysteries
Puzzle textures.
Statistics
@@ -32,7 +32,7 @@ public class ModAdvancementProvider extends FabricAdvancementProvider {
public void generateAdvancement(RegistryWrapper.WrapperLookup wrapperLookup, Consumer<AdvancementEntry> consumer) {
AdvancementEntry root = Advancement.Builder.create()
.display(
Items.DIAMOND,
ModItems.STABLE_ENTROPY,
Text.literal("Ace's BS"),
Text.literal("Advancements for Ace's BS"),
Identifier.ofVanilla("textures/block/stone.png"),
@@ -4,6 +4,7 @@ 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.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.tag.BlockTags;
@@ -30,8 +31,13 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider {
.add(ModBlocks.ENTROPIC_STABILIZER)
.add(ModBlocks.ENTROPIC_EVISCERATOR)
.add(ModBlocks.ENTROPIC_ENTANGLER);
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)
.add(ModBlocks.ENTROPY_ORE)
.add(ModBlocks.DEEPSLATE_ENTROPY_ORE)
@@ -41,33 +47,52 @@ public class ModBlockTagProvider extends FabricTagProvider.BlockTagProvider {
.add(ModBlocks.RAW_ENDTROPY_BLOCK)
.add(ModBlocks.STABLE_ENDTROPY_BLOCK)
.add(ModBlocks.PRISMA_STEEL_BLOCK)
.add(ModBlocks.ASHEN_STEEL_BLOCK)
.add(ModBlocks.ENTROPIC_STABILIZER)
.add(ModBlocks.ENTROPIC_EVISCERATOR)
.add(ModBlocks.ENTROPIC_ENTANGLER);
.add(ModBlocks.ASHEN_STEEL_BLOCK);
valueLookupBuilder(BlockTags.AXE_MINEABLE)
.add(ModBlocks.LEMONWOOD_PLANKS)
.add(ModBlocks.LEMONWOOD_WALL)
.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)
.add(ModBlocks.INFERNAL_ASHES_BLOCK);
valueLookupBuilder(BlockTags.WOODEN_FENCES)
.add(ModBlocks.LEMONWOOD_FENCE);
valueLookupBuilder(BlockTags.FENCE_GATES)
.add(ModBlocks.LEMONWOOD_FENCE_GATE);
valueLookupBuilder(BlockTags.WALLS)
.add(ModBlocks.LEMONWOOD_WALL);
valueLookupBuilder(BlockTags.IMPERMEABLE)
.add(ModBlocks.CRYSTAL_ENTROPY)
.add(ModBlocks.CRYSTAL_ENTROPY_PANE);
valueLookupBuilder(ModTags.Blocks.NEEDS_PRISMA_STEEL_TOOL);
// Currently Broken
// .addTag(BlockTags.NEEDS_IRON_TOOL);
valueLookupBuilder(BlockTags.LEAVES)
.add(ModBlocks.LEMONWOOD_LEAVES);
valueLookupBuilder(BlockTags.LOGS_THAT_BURN)
.add(ModBlocks.LEMONWOOD_LOG)
.add(ModBlocks.LEMONWOOD_WOOD)
.add(ModBlocks.STRIPPED_LEMONWOOD_LOG)
.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;
import com.acethewildfire.acesbs.block.ModBlocks;
import com.acethewildfire.acesbs.item.AshenSteelItems;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.item.PrismaSteelItems;
import com.acethewildfire.acesbs.item.*;
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.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags;
import net.minecraft.item.Items;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.tag.ItemTags;
@@ -23,16 +22,22 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) {
valueLookupBuilder(ModTags.Items.ENTROPY_CONVERTABLE)
.add(Items.APPLE);
valueLookupBuilder(ModTags.Items.PRISMA_REPAIR)
.add(PrismaSteelItems.PRISMA_STEEL);
valueLookupBuilder(ModTags.Items.ASHEN_REPAIR)
.add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ModTags.Items.WILDFIRE_REPAIR)
.add(ModItems.INFERNAL_ASHES);
valueLookupBuilder(ModTags.Items.PLATES_REPAIR)
.add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ModTags.Items.BERSERKERS_REPAIR)
.add(Items.LEATHER);
valueLookupBuilder(ModTags.Items.PRISMA_CONVERTABLE)
.add(Items.COAL)
.add(Items.RAW_COPPER)
@@ -42,23 +47,30 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
.add(Items.LAPIS_LAZULI)
.add(Items.EMERALD)
.add(Items.DIAMOND);
valueLookupBuilder(ItemTags.BOW_ENCHANTABLE)
.add(ModItems.KAUPEN_BOW);
valueLookupBuilder(ItemTags.SWORDS)
.add(PrismaSteelItems.PRISMA_STEEL_SWORD)
.add(ModItems.THOT_BEGONE);
valueLookupBuilder(ItemTags.AXES)
.add(PrismaSteelItems.PRISMA_STEEL_AXE)
.add(AshenSteelItems.ASHEN_STEEL_AXE);
valueLookupBuilder(ItemTags.PICKAXES)
.add(PrismaSteelItems.PRISMA_STEEL_PICKAXE)
.add(AshenSteelItems.ASHEN_STEEL_PICKAXE);
valueLookupBuilder(ItemTags.SHOVELS)
.add(PrismaSteelItems.PRISMA_STEEL_SHOVEL)
.add(AshenSteelItems.ASHEN_STEEL_PICKAXE);
valueLookupBuilder(ItemTags.HOES)
.add(PrismaSteelItems.PRISMA_STEEL_HOE)
.add(AshenSteelItems.ASHEN_STEEL_HOE);
valueLookupBuilder(ItemTags.TRIMMABLE_ARMOR)
.add(PrismaSteelItems.PRISMA_STEEL_HELMET)
.add(PrismaSteelItems.PRISMA_STEEL_CHESTPLATE)
@@ -71,17 +83,118 @@ public class ModItemTagProvider extends FabricTagProvider.ItemTagProvider {
.add(ModItems.BERSERKERS_PAULDRON)
.add(ModItems.WILDFIRE_BOOTS)
.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)
.add(PrismaSteelItems.PRISMA_STEEL)
.add(AshenSteelItems.ASHEN_STEEL);
valueLookupBuilder(ItemTags.CREEPER_DROP_MUSIC_DISCS)
.add(ModItems.CRAB_RAVE_MUSIC_DISC);
valueLookupBuilder(ItemTags.LOGS_THAT_BURN)
.add(ModBlocks.LEMONWOOD_LOG.asItem())
.add(ModBlocks.LEMONWOOD_WOOD.asItem())
.add(ModBlocks.STRIPPED_LEMONWOOD_LOG.asItem())
.add(ModBlocks.STRIPPED_LEMONWOOD_WOOD.asItem());
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_PANE);
addDrop(ModBlocks.LIZARD_PLANKS);
addDrop(ModBlocks.LIZARD_BUTTON);
addDrop(ModBlocks.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.TobaccoCrop;
import com.acethewildfire.acesbs.component.ModDataComponentTypes;
import com.acethewildfire.acesbs.item.AshenSteelItems;
import com.acethewildfire.acesbs.item.ModArmorMaterials;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.item.PrismaSteelItems;
import com.acethewildfire.acesbs.item.*;
import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.minecraft.client.data.*;
@@ -105,6 +102,8 @@ public class ModModelProvider extends FabricModelProvider {
itemModelGenerator.register(PrismaSteelItems.PRISMA_SMITHING_TEMPLATE, Models.GENERATED);
itemModelGenerator.register(AshenSteelItems.ASHEN_STEEL, 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.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.SOVS_PLATE_CARRIER), ModArmorMaterials.PLATES_KEY, ItemModelGenerator.CHESTPLATE_TRIM_ID_PREFIX, false);
itemModelGenerator.register(ModItems.FREN_SPAWN_EGG,
new Model(Optional.of(Identifier.of("item/template_spawn_egg")), Optional.empty()));
itemModelGenerator.register(ModItems.FREN_SPAWN_EGG, Models.GENERATED);
itemModelGenerator.register(ModItems.VULGAR_BONES_SPAWN_EGG,
new Model(Optional.of(Identifier.of("item/template_spawn_egg")), Optional.empty()));
itemModelGenerator.register(ModItems.VULGAR_BONES_SPAWN_EGG, 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));
@@ -9,6 +9,7 @@ import com.acethewildfire.acesbs.trim.ModTrimPatterns;
import com.acethewildfire.acesbs.util.ModTags;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
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.data.recipe.RecipeExporter;
import net.minecraft.data.recipe.RecipeGenerator;
@@ -73,6 +74,36 @@ public class ModRecipeProvider extends FabricRecipeProvider {
.criterion(hasItem(Items.STICK), conditionsFromItem(Items.STICK))
.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)
.input(Items.BRICK, 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.sound.SoundCategory;
import net.minecraft.sound.SoundEvents;
import net.minecraft.text.Text;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
@@ -17,6 +18,11 @@ public class BrickedUpEffect extends StatusEffect {
super(category, color);
}
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override
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.StatusEffectInstance;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
public class CigaretteEffect extends StatusEffect {
public CigaretteEffect(StatusEffectCategory category, int color) {
super(category, color);
}
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
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.particle.ParticleTypes;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
import net.minecraft.world.World;
import java.util.Random;
@@ -14,6 +15,11 @@ public class InfernalFireEffect extends StatusEffect {
super(category, color);
}
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
Random r = new Random();
@Override
@@ -1,10 +1,12 @@
package com.acethewildfire.acesbs.effect;
import com.acethewildfire.acesbs.AcesBS;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
import java.util.Random;
@@ -20,6 +22,11 @@ public class JitteryEffect extends StatusEffect {
int maxDelay = 20;
int times = 2;
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
StatusEffectInstance effect = entity.getStatusEffect(ModEffects.JITTERY);
@@ -33,9 +40,11 @@ public class JitteryEffect extends StatusEffect {
times = r.nextInt(2,5);
} else if (delay >= maxDelay) {
// Dance
double randomVelocityX = r.nextDouble(-0.3, 0.3);
double randomVelocityZ = r.nextDouble(-0.3, 0.3);
entity.addVelocity(randomVelocityX, 0, randomVelocityZ);
AcesBS.LOGGER.info("DANCE!");
double randomVelocityX = r.nextDouble(-0.5 * (amplifier + 1), 0.5 * (amplifier + 1));
double randomVelocityZ = r.nextDouble(-0.5 * (amplifier + 1), 0.5 * (amplifier + 1));
entity.addVelocity(randomVelocityX, 0.3, randomVelocityZ);
entity.velocityModified = true;
//Decrement times
times--;
@@ -4,12 +4,18 @@ import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
public class LemonEffect extends StatusEffect {
public LemonEffect(StatusEffectCategory category, int color) {
super(category, color);
}
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
@@ -29,7 +29,7 @@ public class ModEffects {
public static final RegistryEntry<StatusEffect> CIGARETTE = registerStatusEffect("cigarette",
new CigaretteEffect(StatusEffectCategory.BENEFICIAL, 0xE6A74F)
.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",
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.StatusEffectCategory;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.text.Text;
public class WithdrawalEffect extends StatusEffect {
protected WithdrawalEffect(StatusEffectCategory category, int color) {
super(category, color);
}
@Override
public Text getName() {
return Text.translatable(this.getTranslationKey());
}
@Override
public boolean applyUpdateEffect(ServerWorld world, LivingEntity entity, int amplifier) {
return true;
@@ -17,7 +17,8 @@ import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.RotationAxis;
public class CombustibleLemonRenderer extends EntityRenderer<CombustibleLemonEntity, EntityRenderState> {
protected CombustibleLemonModel model;
private final CombustibleLemonModel model;
public CombustibleLemonRenderer(EntityRendererFactory.Context ctx) {
super(ctx);
@@ -30,24 +31,16 @@ public class CombustibleLemonRenderer extends EntityRenderer<CombustibleLemonEnt
}
@Override
public void render(EntityRenderState renderState, MatrixStack matrices, OrderedRenderCommandQueue queue, CameraRenderState cameraState) {
// matrices.push();
public void updateRenderState(CombustibleLemonEntity entity, EntityRenderState state, float tickDelta) {
super.updateRenderState(entity, state, tickDelta);
// You can store custom values here if needed
}
// if(!entity.isGrounded()) {
// matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(MathHelper.lerp(tickDelta, entity.prevYaw, entity.getYaw())));
// matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(entity.getRenderingRotation() * 5f));
// matrices.translate(0, -1.0f, 0);
// } 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);
// }
@Override
public void render(EntityRenderState state, MatrixStack matrices,
OrderedRenderCommandQueue queue,
CameraRenderState cameraState) {
// VertexConsumer vertexconsumer = ItemRenderer.getItemGlintConsumer(queue,
// 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);
super.render(state, matrices, queue, cameraState);
}
}
@@ -3,6 +3,7 @@ package com.acethewildfire.acesbs.item;
import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.item.custom.HammerItem;
import com.acethewildfire.acesbs.item.custom.ModArmorItem;
import com.acethewildfire.acesbs.trim.ModTrimMaterials;
import net.minecraft.item.*;
import net.minecraft.item.equipment.EquipmentType;
import net.minecraft.resource.featuretoggle.FeatureFlags;
@@ -10,7 +11,7 @@ import net.minecraft.util.Identifier;
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",
setting -> new Item(setting.sword(ModToolMaterials.ASHEN_STEEL, 3, -2.4f)));
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",
setting -> new Item(setting.pickaxe(ModToolMaterials.ASHEN_STEEL, 1.0F, -2.8F)));
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",
setting -> new AxeItem(ModToolMaterials.ASHEN_STEEL, 6.0F, -3.1F, setting));
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.STABLE_ENDTROPY);
entries.add(PrismaSteelItems.PRISMA_STEEL);
entries.add(FractalDiamondItems.FRACTAL_DIAMOND);
entries.add(AshenSteelItems.ASHEN_STEEL);
entries.add(HellfireDiamondItems.HELLFIRE_DIAMOND);
entries.add(ModItems.MOTE_OF_ORDER);
entries.add(ModItems.DUST_OF_ORDER);
entries.add(ModItems.INGOT_OF_ORDER);
@@ -32,6 +35,7 @@ public class ModItemGroups {
entries.add(ModItems.INFERNAL_BEEF);
entries.add(ModItems.BRICKED_UP);
entries.add(ModItems.ORACLE_LEMON);
entries.add(ModItems.GREEN_BRICKS);
entries.add(ModItems.CRAB_RAVE_MUSIC_DISC);
entries.add(ModItems.TOBACCO_SEEDS);
@@ -41,6 +45,7 @@ public class ModItemGroups {
entries.add(ModItems.CIGARETTE_FUNNY);
entries.add(ModItems.BUBBLE_PIPE);
entries.add(ModItems.FREN_SPAWN_EGG);
entries.add(ModItems.VULGAR_BONES_SPAWN_EGG);
})
.build();
@@ -231,6 +231,9 @@ public class ModItems {
public static void registerModItems() {
PrismaSteelItems.registerPrismaItems();
AshenSteelItems.registerAshenItems();
FractalDiamondItems.registerFractalItems();
HellfireDiamondItems.registerHellfireItems();
AcesBS.LOGGER.info("Registering Mod Items for " + AcesBS.MOD_ID);
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.item.ToolMaterial;
import net.minecraft.recipe.Ingredient;
import net.minecraft.registry.tag.BlockTags;
import net.minecraft.registry.tag.TagKey;
import java.util.function.Supplier;
public class ModToolMaterials {
public static ToolMaterial PRISMA_STEEL = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_PRISMA_STEEL_TOOL,
750, 8.0F, 2.0F, 22, ModTags.Items.PRISMA_REPAIR);
public static ToolMaterial ASHEN_STEEL = new ToolMaterial(ModTags.Blocks.INCORRECT_FOR_ASHEN_STEEL_TOOL,
750, 8.0F, 2.0F, 22, ModTags.Items.ASHEN_REPAIR);
public static ToolMaterial PRISMA_STEEL = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL,
1561, 8.0F, 3.0F, 22, ModTags.Items.PRISMA_REPAIR);
public static ToolMaterial ASHEN_STEEL = new ToolMaterial(BlockTags.INCORRECT_FOR_IRON_TOOL,
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.ModArmorItem;
import com.acethewildfire.acesbs.trim.ModTrimMaterials;
import net.minecraft.item.*;
import net.minecraft.item.equipment.EquipmentType;
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",
setting -> new Item(setting.sword(ModToolMaterials.PRISMA_STEEL, 3, -2.4f)));
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",
setting -> new Item(setting.pickaxe(ModToolMaterials.PRISMA_STEEL, 1.0F, -2.8F)));
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",
setting -> new AxeItem(ModToolMaterials.PRISMA_STEEL, 6.0F, -3.1F, setting));
public static final Item PRISMA_STEEL_HOE = ModItems.registerItem("prisma_steel_hoe",
@@ -134,11 +134,13 @@ public class CigaretteLemon extends Item {
World.ExplosionSourceType.NONE
);
user.damage(
(ServerWorld) world,
user.getDamageSources().explosion(user, user),
20F
);
if (world instanceof ServerWorld serverWorld) {
user.damage(
serverWorld,
user.getDamageSources().explosion(user, user),
20F
);
}
@@ -2,8 +2,11 @@ package com.acethewildfire.acesbs.item.custom;
import com.acethewildfire.acesbs.item.ModArmorMaterials;
import com.google.common.collect.ImmutableMap;
import net.fabricmc.fabric.api.item.v1.EnchantingContext;
import net.minecraft.component.DataComponentTypes;
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.EquipmentSlot;
import net.minecraft.entity.effect.StatusEffectInstance;
@@ -13,6 +16,8 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.equipment.ArmorMaterial;
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.world.World;
import org.jetbrains.annotations.Nullable;
@@ -26,6 +31,8 @@ public class ModArmorItem extends Item {
.put(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL,
List.of(new StatusEffectInstance(StatusEffects.SPEED, 400, 1, 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
// .put(ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL,
// List.of(new StatusEffectInstance(StatusEffects.SPEED, 400, 2, false, false),
@@ -42,9 +49,7 @@ public class ModArmorItem extends Item {
if(!world.isClient()) {
if(entity instanceof PlayerEntity player) {
if(hasFullSuitOfArmorOn(player)) {
evaluateArmorEffects(player);
}
evaluateArmorEffects(player);
}
}
@@ -79,17 +84,18 @@ public class ModArmorItem extends Item {
EquippableComponent equippableComponentBreastplate = player.getEquippedStack(EquipmentSlot.CHEST).getItem().getComponents().get(DataComponentTypes.EQUIPPABLE);
EquippableComponent equippableComponentHelmet = player.getEquippedStack(EquipmentSlot.HEAD).getItem().getComponents().get(DataComponentTypes.EQUIPPABLE);
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()));
}
ArmorMaterial prismaSteelArmorMaterial = ModArmorMaterials.PRISMA_STEEL_ARMOR_MATERIAL;
ArmorMaterial wildfireArmorMaterial = ModArmorMaterials.WILDFIRE_ARMOR_MATERIAL;
private boolean hasFullSuitOfArmorOn(PlayerEntity player) {
ItemStack boots = player.getEquippedStack(EquipmentSlot.FEET);
ItemStack leggings = player.getEquippedStack(EquipmentSlot.LEGS);
ItemStack breastplate = player.getEquippedStack(EquipmentSlot.CHEST);
ItemStack helmet = player.getEquippedStack(EquipmentSlot.HEAD);
if (material == prismaSteelArmorMaterial){
// Check whole armor
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()));
} else if (material == wildfireArmorMaterial) {
// Just check boots
return (equippableComponentBoots != null && equippableComponentBoots.assetId().get().equals(material.assetId()));
}
return !helmet.isEmpty() && !breastplate.isEmpty()
&& !leggings.isEmpty() && !boots.isEmpty();
return false;
}
}
@@ -39,6 +39,8 @@ public class ModTrimMaterials {
ArmorTrimMaterial trimMaterial = new ArmorTrimMaterial(ArmorTrimAssets.of(armorTrimKey.getValue().getPath()),
Text.translatable(Util.createTranslationKey("trim_material", armorTrimKey.getValue())).fillStyle(style));
AcesBS.LOGGER.info(Util.createTranslationKey("trim_material", armorTrimKey.getValue()));
registerable.register(armorTrimKey, trimMaterial);
}
@@ -7,6 +7,8 @@ import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.util.Identifier;
import static net.fabricmc.fabric.api.tag.convention.v2.TagUtil.C_TAG_NAMESPACE;
public class ModTags {
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_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){
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 {
@@ -28,8 +38,15 @@ public class ModTags {
public static final TagKey<Item> PLATES_REPAIR = createTag("plates_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){
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;
import com.acethewildfire.acesbs.AcesBS;
import com.acethewildfire.acesbs.AcesBSClient;
import com.acethewildfire.acesbs.item.ModItems;
import com.acethewildfire.acesbs.item.PrismaSteelItems;
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.enchantment.Enchantment;
import net.minecraft.enchantment.Enchantments;
@@ -13,30 +17,34 @@ import net.minecraft.item.Items;
import net.minecraft.loot.LootPool;
import net.minecraft.loot.LootTable;
import net.minecraft.loot.condition.InvertedLootCondition;
import net.minecraft.loot.condition.LocationCheckLootCondition;
import net.minecraft.loot.condition.LootCondition;
import net.minecraft.loot.condition.MatchToolLootCondition;
import net.minecraft.loot.entry.ItemEntry;
import net.minecraft.loot.function.ApplyBonusLootFunction;
import net.minecraft.loot.function.ExplosionDecayLootFunction;
import net.minecraft.loot.provider.number.UniformLootNumberProvider;
import net.minecraft.predicate.BlockPredicate;
import net.minecraft.predicate.NumberRange;
import net.minecraft.predicate.component.ComponentPredicateTypes;
import net.minecraft.predicate.component.ComponentsPredicate;
import net.minecraft.predicate.entity.LocationPredicate;
import net.minecraft.predicate.item.EnchantmentPredicate;
import net.minecraft.predicate.item.EnchantmentsPredicate;
import net.minecraft.predicate.item.ItemPredicate;
import net.minecraft.registry.RegistryEntryLookup;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.*;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.registry.entry.RegistryEntryList;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.util.Identifier;
import java.util.ArrayList;
import java.util.List;
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 static LootCondition.Builder specialToolCondition(RegistryEntryLookup<Item> lookup, ItemConvertible... tools) {
return MatchToolLootCondition.builder(
@@ -46,53 +54,24 @@ public class UpdateRecipies {
}
public static void updateVanilla(){
AcesBS.LOGGER.info("Updating vanilla Ore Drops for Prisma Steel");
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);
AcesBS.LOGGER.info("Updating vanilla and modded Ore Drops for Prisma Steel Tools");
LootTableEvents.MODIFY.register((key, tableBuilder, source, wrapperLookup) -> {
RegistryWrapper.Impl<Enchantment> impl = wrapperLookup.getOrThrow(RegistryKeys.ENCHANTMENT);
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(
ItemPredicate.Builder.create().components(
ComponentsPredicate.Builder.create()
@@ -104,27 +83,25 @@ public class UpdateRecipies {
)
);
if (source.isBuiltin() && ores.contains(key)) {
LootPool.Builder extraPool = LootPool.builder()
.rolls(UniformLootNumberProvider.create(1, 2))
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
.conditionally(specialToolCondition(itemLookup, PrismaSteelItems.PRISMA_STEEL_PICKAXE, PrismaSteelItems.PRISMA_STEEL_HAMMER))
.with(ItemEntry.builder(Items.AIR).weight(460))
.with(ItemEntry.builder(Items.COAL).weight(12))
.with(ItemEntry.builder(Items.RAW_COPPER).weight(10))
.with(ItemEntry.builder(Items.RAW_IRON).weight(6))
.with(ItemEntry.builder(Items.RAW_GOLD).weight(4))
.with(ItemEntry.builder(Items.LAPIS_LAZULI).weight(3))
.with(ItemEntry.builder(Items.REDSTONE).weight(2))
.with(ItemEntry.builder(ModItems.RAW_ENTROPY).weight(1))
.with(ItemEntry.builder(Items.DIAMOND).weight(1))
.with(ItemEntry.builder(Items.EMERALD).weight(1))
.apply(ApplyBonusLootFunction.oreDrops(impl.getOrThrow(Enchantments.FORTUNE)))
.apply(ExplosionDecayLootFunction.builder());
LootPool.Builder extraPool = LootPool.builder()
.rolls(UniformLootNumberProvider.create(1, 2))
.conditionally(InvertedLootCondition.builder(silkTouchCondition))
.conditionally(specialToolCondition(itemLookup, PrismaSteelItems.PRISMA_STEEL_PICKAXE, PrismaSteelItems.PRISMA_STEEL_HAMMER))
.with(ItemEntry.builder(Items.AIR).weight(460))
.with(ItemEntry.builder(Items.COAL).weight(12))
.with(ItemEntry.builder(Items.RAW_COPPER).weight(10))
.with(ItemEntry.builder(Items.RAW_IRON).weight(6))
.with(ItemEntry.builder(Items.RAW_GOLD).weight(4))
.with(ItemEntry.builder(Items.LAPIS_LAZULI).weight(3))
.with(ItemEntry.builder(Items.REDSTONE).weight(2))
.with(ItemEntry.builder(ModItems.RAW_ENTROPY).weight(1))
.with(ItemEntry.builder(Items.DIAMOND).weight(1))
.with(ItemEntry.builder(Items.EMERALD).weight(1))
.apply(ApplyBonusLootFunction.oreDrops(impl.getOrThrow(Enchantments.FORTUNE)))
.apply(ExplosionDecayLootFunction.builder());
// Add our extra drop pool to loot table
tableBuilder.pool(extraPool);
}
// Add our extra drop pool to loot table
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",
"textures": [
"trims/entity/humanoid/coast",
"trims/entity/humanoid_leggings/coast_leggings",
"trims/entity/humanoid_leggings/coast",
"trims/entity/humanoid/sentry",
"trims/entity/humanoid_leggings/sentry_leggings",
"trims/entity/humanoid_leggings/sentry",
"trims/entity/humanoid/dune",
"trims/entity/humanoid_leggings/dune_leggings",
"trims/entity/humanoid_leggings/dune",
"trims/entity/humanoid/wild",
"trims/entity/humanoid_leggings/wild_leggings",
"trims/entity/humanoid_leggings/wild",
"trims/entity/humanoid/ward",
"trims/entity/humanoid_leggings/ward_leggings",
"trims/entity/humanoid_leggings/ward",
"trims/entity/humanoid/eye",
"trims/entity/humanoid_leggings/eye_leggings",
"trims/entity/humanoid_leggings/eye",
"trims/entity/humanoid/vex",
"trims/entity/humanoid_leggings/vex_leggings",
"trims/entity/humanoid_leggings/vex",
"trims/entity/humanoid/tide",
"trims/entity/humanoid_leggings/tide_leggings",
"trims/entity/humanoid_leggings/tide",
"trims/entity/humanoid/snout",
"trims/entity/humanoid_leggings/snout_leggings",
"trims/entity/humanoid_leggings/snout",
"trims/entity/humanoid/rib",
"trims/entity/humanoid_leggings/rib_leggings",
"trims/entity/humanoid_leggings/rib",
"trims/entity/humanoid/spire",
"trims/entity/humanoid_leggings/spire_leggings",
"trims/entity/humanoid_leggings/spire",
"trims/entity/humanoid/wayfinder",
"trims/entity/humanoid_leggings/wayfinder_leggings",
"trims/entity/humanoid_leggings/wayfinder",
"trims/entity/humanoid/shaper",
"trims/entity/humanoid_leggings/shaper_leggings",
"trims/entity/humanoid_leggings/shaper",
"trims/entity/humanoid/silence",
"trims/entity/humanoid_leggings/silence_leggings",
"trims/entity/humanoid_leggings/silence",
"trims/entity/humanoid/raiser",
"trims/entity/humanoid_leggings/raiser_leggings",
"trims/entity/humanoid_leggings/raiser",
"trims/entity/humanoid/host",
"trims/entity/humanoid_leggings/host_leggings",
"trims/entity/humanoid_leggings/host",
"acesbs:trims/entity/humanoid/prisma",
"acesbs:trims/entity/humanoid_leggings/prisma",
"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"
}
}