2.1.0 Functional wand

This commit is contained in:
Vos
2026-03-27 02:47:08 -05:00
parent 04bdb45a1b
commit b4e691bd8f
7 changed files with 115 additions and 11 deletions
@@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_stable_entropy": {
"conditions": {
"items": [
{
"items": "acesbs:stable_entropy"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "acesbs:wand"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_stable_entropy"
]
],
"rewards": {
"recipes": [
"acesbs:wand"
]
}
}
@@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"category": "equipment",
"key": {
"B": "minecraft:breeze_rod",
"S": "acesbs:stable_entropy"
},
"pattern": [
" ",
" S ",
" B "
],
"result": {
"count": 1,
"id": "acesbs:wand"
}
}
@@ -4,6 +4,7 @@
- Prisma Smithing Templates can be given by Armorers as a Hero of the Village Gift. - Prisma Smithing Templates can be given by Armorers as a Hero of the Village Gift.
- Ashen and Prisma Smithing Templates can be duplicated like other templates. - Ashen and Prisma Smithing Templates can be duplicated like other templates.
- Hammers are now included in the pickaxe item tag. (aka, to other mods they will be considered a type of pickaxe) - Hammers are now included in the pickaxe item tag. (aka, to other mods they will be considered a type of pickaxe)
- The Entropic Wand is now obtainable by grafting a breeze rod with a Stable Entropy. It turns blocks into other blocks. You will have to experiment to find out which ones.
- Fire Oak Trees and associated wood blocks. Obtainable by placing an oak sapling and infernal ashes in an Entropic Entangler - Fire Oak Trees and associated wood blocks. Obtainable by placing an oak sapling and infernal ashes in an Entropic Entangler
- Leaf Litter for both Lemonwood and the new Fire Oak leaf types. - Leaf Litter for both Lemonwood and the new Fire Oak leaf types.
- Fractal Diamonds can now be obtained by placing a diamond and stable entropy into an entropic entangler. They can be used to craft tools and armor. They have the same effect as Prisma Steel and drop additional ores when mining. - Fractal Diamonds can now be obtained by placing a diamond and stable entropy into an entropic entangler. They can be used to craft tools and armor. They have the same effect as Prisma Steel and drop additional ores when mining.
@@ -73,6 +73,15 @@ public class ModRecipeProvider extends FabricRecipeProvider {
.criterion(hasItem(FractalDiamondItems.FRACTAL_DIAMOND), conditionsFromItem(FractalDiamondItems.FRACTAL_DIAMOND)) .criterion(hasItem(FractalDiamondItems.FRACTAL_DIAMOND), conditionsFromItem(FractalDiamondItems.FRACTAL_DIAMOND))
.offerTo(recipeExporter); .offerTo(recipeExporter);
createShaped(RecipeCategory.TOOLS, ModItems.WAND, 1)
.pattern(" ")
.pattern(" S ")
.pattern(" B ")
.input('B', Items.BREEZE_ROD)
.input('S', ModItems.STABLE_ENTROPY)
.criterion(hasItem(ModItems.STABLE_ENTROPY), conditionsFromItem(ModItems.STABLE_ENTROPY))
.offerTo(recipeExporter);
createShaped(RecipeCategory.COMBAT, ModItems.ORACLE_LEMON, 4) createShaped(RecipeCategory.COMBAT, ModItems.ORACLE_LEMON, 4)
.pattern("###") .pattern("###")
.pattern("#L#") .pattern("#L#")
@@ -37,7 +37,7 @@ import java.util.function.Function;
public class ModItems { public class ModItems {
public static final Item ORACLE_LEMON = registerItem("oracle_lemon", setting -> new OracleLemon(setting.component(DataComponentTypes.POTION_CONTENTS, new PotionContentsComponent(ModPotions.LEMON)))); public static final Item ORACLE_LEMON = registerItem("oracle_lemon", setting -> new OracleLemon(setting.component(DataComponentTypes.POTION_CONTENTS, new PotionContentsComponent(ModPotions.LEMON))));
public static final Item WAND = registerItem("wand", setting -> new Wand(setting.maxDamage(32))); public static final Item WAND = registerItem("wand", setting -> new Wand(setting.maxDamage(128)));
public static final Item BAG_OF_HOLDING = registerItem("bag_of_holding", BagOfHolding::new); public static final Item BAG_OF_HOLDING = registerItem("bag_of_holding", BagOfHolding::new);
public static final Item RAW_ENTROPY = registerItem("raw_entropy", Item::new); public static final Item RAW_ENTROPY = registerItem("raw_entropy", Item::new);
public static final Item STABLE_ENTROPY = registerItem("stable_entropy", Item::new); public static final Item STABLE_ENTROPY = registerItem("stable_entropy", Item::new);
@@ -3,8 +3,7 @@ package com.acethewildfire.acesbs.item.custom;
import com.acethewildfire.acesbs.block.LemonWoodBlocks; import com.acethewildfire.acesbs.block.LemonWoodBlocks;
import com.acethewildfire.acesbs.block.ModBlocks; import com.acethewildfire.acesbs.block.ModBlocks;
import com.acethewildfire.acesbs.component.ModDataComponentTypes; import com.acethewildfire.acesbs.component.ModDataComponentTypes;
import net.minecraft.block.Block; import net.minecraft.block.*;
import net.minecraft.block.Blocks;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.component.type.TooltipDisplayComponent; import net.minecraft.component.type.TooltipDisplayComponent;
import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.EquipmentSlot;
@@ -20,20 +19,66 @@ import net.minecraft.text.Text;
import net.minecraft.util.ActionResult; import net.minecraft.util.ActionResult;
import net.minecraft.world.World; import net.minecraft.world.World;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.function.Consumer; import java.util.function.Consumer;
public class Wand extends Item { public class Wand extends Item {
private static final Map<Block, Block> WAND_MAP = private static final Map<Block, Block> EVIL_MAP = Map.of(
Map.of(
Blocks.IRON_ORE, ModBlocks.ENTROPY_ORE,
Blocks.BIRCH_PLANKS, LemonWoodBlocks.LEMONWOOD_PLANKS,
ModBlocks.STABLE_ENTROPY_BLOCK, ModBlocks.EVIL_BLOCK, ModBlocks.STABLE_ENTROPY_BLOCK, ModBlocks.EVIL_BLOCK,
ModBlocks.EVIL_BLOCK, ModBlocks.STABLE_ENTROPY_BLOCK ModBlocks.EVIL_BLOCK, ModBlocks.STABLE_ENTROPY_BLOCK
); );
private static final Map<Block, Block> STONE_MAP = Map.of(
Blocks.STONE, Blocks.ANDESITE,
Blocks.ANDESITE, Blocks.TUFF,
Blocks.TUFF, Blocks.GRANITE,
Blocks.GRANITE, Blocks.DIORITE,
Blocks.DIORITE, Blocks.STONE
);
private static final Map<Block, Block> OTHER_STONE_MAP = Map.of(
Blocks.DEEPSLATE, Blocks.BASALT,
Blocks.BASALT, Blocks.BLACKSTONE,
Blocks.BLACKSTONE, Blocks.DEEPSLATE
);
private static final Map<Block, Block> SAND_MAP = Map.of(
Blocks.SAND, Blocks.RED_SAND,
Blocks.RED_SAND, Blocks.SAND
);
private static Map<Block, Block> SANDSTONE_MAP = Map.of(
Blocks.SANDSTONE, Blocks.RED_SANDSTONE,
Blocks.RED_SANDSTONE, Blocks.SANDSTONE
);
private static Map<Block, Block> GRASS_BLOCK_MAP = Map.of(
Blocks.GRASS_BLOCK, Blocks.PODZOL,
Blocks.PODZOL, Blocks.MYCELIUM,
Blocks.MYCELIUM, Blocks.GRASS_BLOCK
);
private static Map<Block, Block> LIZARD_MAP = Map.of(
Blocks.CRIMSON_BUTTON, ModBlocks.LIZARD_BUTTON,
ModBlocks.LIZARD_BUTTON, Blocks.CRIMSON_BUTTON,
Blocks.CRIMSON_PLANKS, ModBlocks.LIZARD_PLANKS,
ModBlocks.LIZARD_PLANKS, Blocks.CRIMSON_PLANKS
);
private static Map<Block, Block> WAND_MAP = new HashMap<>();
public Wand(Settings settings) { public Wand(Settings settings) {
super(settings); super(settings);
// For some reason Map.of caps at 10 entries. So we break em up.
WAND_MAP.putAll(EVIL_MAP);
WAND_MAP.putAll(STONE_MAP);
WAND_MAP.putAll(OTHER_STONE_MAP);
WAND_MAP.putAll(SAND_MAP);
WAND_MAP.putAll(SANDSTONE_MAP);
WAND_MAP.putAll(GRASS_BLOCK_MAP);
WAND_MAP.putAll(LIZARD_MAP);
} }
@Override @Override
@@ -13,7 +13,7 @@
"item.acesbs.aquarium_gravel": "Aquarium Gravel", "item.acesbs.aquarium_gravel": "Aquarium Gravel",
"item.acesbs.cooked_lemon": "Cooked Odd Lemon", "item.acesbs.cooked_lemon": "Cooked Odd Lemon",
"item.acesbs.green_bricks": "Green Bricks", "item.acesbs.green_bricks": "Green Bricks",
"item.acesbs.wand": "Entropy Wand", "item.acesbs.wand": "Entropic Wand",
"item.acesbs.command_core": "Command Core", "item.acesbs.command_core": "Command Core",
"item.minecraft.potion.effect.blindness": "Potion of Blindness", "item.minecraft.potion.effect.blindness": "Potion of Blindness",