Allow changing drops for Random Armor Trim and Pottery Sherd
Also add Tide to possible armor trims Closes #138
This commit is contained in:
parent
d59e3e207a
commit
47e9d4381b
|
|
@ -1,3 +1,6 @@
|
|||
## Ex Deorum 1.45
|
||||
- Allow changing drops for Random Armor Trim and Pottery Sherd, also add Tide to possible trims (#138)
|
||||
|
||||
## Ex Deorum 1.44
|
||||
- Fix Silkworms not applying to certain modded leaves like TFC
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// 1.20.1 2024-06-08T12:27:56.4063662 Tags for minecraft:item mod id exdeorum
|
||||
// 1.20.1 2025-04-16T14:06:10.0144069 Tags for minecraft:item mod id exdeorum
|
||||
6c72957356b1d59a27be736fa1da54a5a9795ef7 data/exdeorum/tags/items/barrels.json
|
||||
6afa16b45f76c0defa1675d07586e2c6e6b0be69 data/exdeorum/tags/items/compressed/andesite.json
|
||||
31b46613766e4cdc53196850495ab1019f61cb48 data/exdeorum/tags/items/compressed/blackstone.json
|
||||
|
|
@ -27,6 +27,8 @@ dad00c75d1a0b74a2f843bead336ee278e9cecba data/exdeorum/tags/items/compressed_ham
|
|||
be46bf2abe731d5ee5bd15ce72f222b2b9a49385 data/exdeorum/tags/items/hammers.json
|
||||
008b4a382f07b9c0f9a07c78bedb949b4400e011 data/exdeorum/tags/items/ore_chunks.json
|
||||
b90bd3c642e69b9e800c58a9f8f53e369652e6ba data/exdeorum/tags/items/pebbles.json
|
||||
10f2167f7a9472e5df6870bad71b95869fc64b9a data/exdeorum/tags/items/random_shard_drops.json
|
||||
d4d9a482ddc507b3f8852794f6f1a2f2e2490fb6 data/exdeorum/tags/items/random_trim_drops.json
|
||||
8e1b5ab26037123d3948e9ac9f50da1b7cd0a129 data/exdeorum/tags/items/sieve_meshes.json
|
||||
0152da758e7665bf282f17f466599c7a009d9a15 data/exdeorum/tags/items/stone_barrels.json
|
||||
8bde4a30abefaa373fa41813da07b6f79f32b874 data/exdeorum/tags/items/wooden_barrels.json
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"#minecraft:decorated_pot_sherds"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"values": [
|
||||
"minecraft:wayfinder_armor_trim_smithing_template",
|
||||
"minecraft:shaper_armor_trim_smithing_template",
|
||||
"minecraft:host_armor_trim_smithing_template",
|
||||
"minecraft:raiser_armor_trim_smithing_template",
|
||||
"minecraft:coast_armor_trim_smithing_template",
|
||||
"minecraft:dune_armor_trim_smithing_template",
|
||||
"minecraft:eye_armor_trim_smithing_template",
|
||||
"minecraft:sentry_armor_trim_smithing_template",
|
||||
"minecraft:silence_armor_trim_smithing_template",
|
||||
"minecraft:vex_armor_trim_smithing_template",
|
||||
"minecraft:ward_armor_trim_smithing_template",
|
||||
"minecraft:wild_armor_trim_smithing_template",
|
||||
"minecraft:tide_armor_trim_smithing_template"
|
||||
]
|
||||
}
|
||||
|
|
@ -23,6 +23,7 @@ import net.minecraft.resources.ResourceKey;
|
|||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.FluidTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
|
@ -32,7 +33,6 @@ import net.minecraft.world.level.levelgen.structure.BuiltinStructureSets;
|
|||
import net.minecraft.world.level.levelgen.structure.StructureSet;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
import thedarkcolour.exdeorum.ExDeorum;
|
||||
import thedarkcolour.exdeorum.block.CompressedBlockType;
|
||||
import thedarkcolour.exdeorum.compat.ModIds;
|
||||
import thedarkcolour.exdeorum.material.*;
|
||||
import thedarkcolour.exdeorum.registry.EBlocks;
|
||||
|
|
@ -42,7 +42,6 @@ import thedarkcolour.exdeorum.registry.EItems;
|
|||
import thedarkcolour.exdeorum.tag.EBlockTags;
|
||||
import thedarkcolour.exdeorum.tag.EItemTags;
|
||||
import thedarkcolour.exdeorum.tag.EStructureSetTags;
|
||||
import thedarkcolour.modkit.data.DirectTagAppender;
|
||||
import thedarkcolour.modkit.data.MKTagsProvider;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -98,6 +97,23 @@ class ModTags {
|
|||
tags.tag(EItemTags.STONE_BARRELS).add(DefaultMaterials.STONE_BARREL.getItem(), DefaultMaterials.CRYSTALLIZED_BARREL.getItem());
|
||||
tags.tag(EItemTags.BARRELS).addTags(EItemTags.WOODEN_BARRELS, EItemTags.STONE_BARRELS);
|
||||
|
||||
tags.tag(EItemTags.RANDOM_SHERD_DROPS).addTag(ItemTags.DECORATED_POT_SHERDS);
|
||||
tags.tag(EItemTags.RANDOM_TRIM_DROPS).add(
|
||||
Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.WARD_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.TIDE_ARMOR_TRIM_SMITHING_TEMPLATE
|
||||
);
|
||||
|
||||
// Cyclic adds ONE compressed block :)
|
||||
tags.tag(ECompressedBlocks.COMPRESSED_COBBLESTONE.getTag()).addOptional(new ResourceLocation(ModIds.CYCLIC, "compressed_cobblestone"));
|
||||
|
||||
|
|
|
|||
|
|
@ -18,29 +18,31 @@
|
|||
|
||||
package thedarkcolour.exdeorum.item;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.Util;
|
||||
import net.minecraft.core.registries.BuiltInRegistries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import thedarkcolour.exdeorum.data.TranslationKeys;
|
||||
import thedarkcolour.exdeorum.registry.EItems;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class RandomResultItem extends Item {
|
||||
public RandomResultItem(Properties properties) {
|
||||
public class RandomResultItem extends Item {
|
||||
private final TagKey<Item> possibilities;
|
||||
|
||||
public RandomResultItem(Properties properties, TagKey<Item> possibilities) {
|
||||
super(properties);
|
||||
this.possibilities = possibilities;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -48,12 +50,15 @@ public abstract class RandomResultItem extends Item {
|
|||
var stack = player.getItemInHand(hand);
|
||||
|
||||
if (!level.isClientSide) {
|
||||
var possibilities = getPossibilities();
|
||||
var possibleResults = new ArrayList<Item>();
|
||||
for (var holder : BuiltInRegistries.ITEM.getTagOrEmpty(this.possibilities)) {
|
||||
possibleResults.add(holder.value());
|
||||
}
|
||||
|
||||
if (!player.getAbilities().instabuild) {
|
||||
stack.shrink(1);
|
||||
}
|
||||
var newItem = new ItemStack(Util.getRandom(possibilities, level.random));
|
||||
var newItem = new ItemStack(Util.getRandom(possibleResults, level.random));
|
||||
player.getInventory().placeItemBackInInventory(newItem);
|
||||
|
||||
return InteractionResultHolder.consume(stack.isEmpty() ? player.getItemInHand(hand) : stack);
|
||||
|
|
@ -61,50 +66,9 @@ public abstract class RandomResultItem extends Item {
|
|||
return InteractionResultHolder.success(stack);
|
||||
}
|
||||
|
||||
protected abstract List<Item> getPossibilities();
|
||||
|
||||
public static class RandomSherd extends RandomResultItem {
|
||||
public RandomSherd(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Item> getPossibilities() {
|
||||
var list = new ArrayList<Item>();
|
||||
for (var holder : BuiltInRegistries.ITEM.getTagOrEmpty(ItemTags.DECORATED_POT_SHERDS)) {
|
||||
list.add(holder.value());
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
public static class RandomArmorTrim extends RandomResultItem {
|
||||
public static final List<Item> POSSIBLE_TRIMS = Lists.newArrayList(
|
||||
Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.WARD_ARMOR_TRIM_SMITHING_TEMPLATE,
|
||||
Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE
|
||||
);
|
||||
|
||||
public RandomArmorTrim(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Item> getPossibilities() {
|
||||
return POSSIBLE_TRIMS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List<Component> tooltip, TooltipFlag pIsAdvanced) {
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, @Nullable Level level, List<Component> tooltip, TooltipFlag advanced) {
|
||||
if (this == EItems.RANDOM_ARMOR_TRIM.get()) {
|
||||
tooltip.add(Component.translatable(TranslationKeys.RANDOM_TRIM_DOES_NOT_CONTAIN_UPGRADE).withStyle(ChatFormatting.DARK_GRAY));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,8 +117,8 @@ public class EItems {
|
|||
public static final RegistryObject<Item> WARPED_NYLIUM_SPORES = ITEMS.register("warped_nylium_spores", () -> new NyliumSpreaderItem(props(), Blocks.WARPED_NYLIUM::defaultBlockState));
|
||||
public static final RegistryObject<Item> CRIMSON_NYLIUM_SPORES = ITEMS.register("crimson_nylium_spores", () -> new NyliumSpreaderItem(props(), Blocks.CRIMSON_NYLIUM::defaultBlockState));
|
||||
public static final RegistryObject<Item> SCULK_CORE = ITEMS.register("sculk_core", () -> new SculkCoreItem(props().stacksTo(1)));
|
||||
public static final RegistryObject<Item> RANDOM_POTTERY_SHERD = ITEMS.register("random_pottery_sherd", () -> new RandomResultItem.RandomSherd(props()));
|
||||
public static final RegistryObject<Item> RANDOM_ARMOR_TRIM = ITEMS.register("random_armor_trim", () -> new RandomResultItem.RandomArmorTrim(props()));
|
||||
public static final RegistryObject<Item> RANDOM_POTTERY_SHERD = ITEMS.register("random_pottery_sherd", () -> new RandomResultItem(props(), EItemTags.RANDOM_SHERD_DROPS));
|
||||
public static final RegistryObject<Item> RANDOM_ARMOR_TRIM = ITEMS.register("random_armor_trim", () -> new RandomResultItem(props(), EItemTags.RANDOM_TRIM_DROPS));
|
||||
public static final RegistryObject<Item> WOOD_CHIPPINGS = registerSimpleItem("wood_chippings");
|
||||
|
||||
// Buckets
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ public class EItemTags {
|
|||
public static final TagKey<Item> END_CAKE_MATERIAL = tag("end_cake_materials");
|
||||
public static final TagKey<Item> ORE_CHUNKS = tag("ore_chunks");
|
||||
|
||||
public static final TagKey<Item> RANDOM_SHERD_DROPS = tag("random_shard_drops");
|
||||
public static final TagKey<Item> RANDOM_TRIM_DROPS = tag("random_trim_drops");
|
||||
|
||||
public static final TagKey<Item> WOODEN_BARRELS = tag("wooden_barrels");
|
||||
public static final TagKey<Item> STONE_BARRELS = tag("stone_barrels");
|
||||
public static final TagKey<Item> BARRELS = tag("barrels");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user