From 98813fd62e5dead800c8c57a5a18319be377c73a Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 28 Sep 2023 23:41:56 +0100 Subject: [PATCH] Added items to the archaeology loot tables --- .../unicopia/item/BluntWeaponItem.java | 30 ++++++++++++++ .../minelittlepony/unicopia/item/UItems.java | 10 ++++- .../unicopia/item/URecipes.java | 12 +++++- .../resources/assets/unicopia/lang/en_us.json | 1 + .../assets/unicopia/models/item/tom.json | 6 +++ .../assets/unicopia/textures/item/tom.png | Bin 0 -> 4573 bytes .../unicopia/textures/item/tom.png.mcmeta | 31 +++++++++++++++ .../loot_tables/archaeology/desert_well.json | 37 ++++++++++++++++++ .../archaeology/trail_ruins_common.json | 27 +++++++++++++ .../archaeology/trail_ruins_rare.json | 27 +++++++++++++ 10 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/minelittlepony/unicopia/item/BluntWeaponItem.java create mode 100644 src/main/resources/assets/unicopia/models/item/tom.json create mode 100644 src/main/resources/assets/unicopia/textures/item/tom.png create mode 100644 src/main/resources/assets/unicopia/textures/item/tom.png.mcmeta create mode 100644 src/main/resources/data/unicopiamc/loot_tables/archaeology/desert_well.json create mode 100644 src/main/resources/data/unicopiamc/loot_tables/archaeology/trail_ruins_common.json create mode 100644 src/main/resources/data/unicopiamc/loot_tables/archaeology/trail_ruins_rare.json diff --git a/src/main/java/com/minelittlepony/unicopia/item/BluntWeaponItem.java b/src/main/java/com/minelittlepony/unicopia/item/BluntWeaponItem.java new file mode 100644 index 00000000..3fa3cb20 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/item/BluntWeaponItem.java @@ -0,0 +1,30 @@ +package com.minelittlepony.unicopia.item; + +import java.util.UUID; + +import com.google.common.collect.Multimap; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.item.Item; + +public class BluntWeaponItem extends Item { + private final Multimap modifiers; + + public static final UUID KNOCKBACK_MODIFIER_ID = UUID.fromString("7b16994b-1edb-4381-be62-94317f39ec8f"); + public static final UUID LUCK_MODIFIER_ID = UUID.fromString("7b16994b-1edb-8431-be62-7f39ec94318f"); + + public BluntWeaponItem(Settings settings, Multimap modifiers) { + super(settings); + this.modifiers = modifiers; + } + + @Override + public Multimap getAttributeModifiers(EquipmentSlot slot) { + if (slot == EquipmentSlot.OFFHAND) { + return modifiers; + } + return super.getAttributeModifiers(slot); + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/item/UItems.java b/src/main/java/com/minelittlepony/unicopia/item/UItems.java index 27b8262f..12d0137e 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/item/UItems.java @@ -1,5 +1,6 @@ package com.minelittlepony.unicopia.item; +import com.google.common.collect.ImmutableMultimap; import com.minelittlepony.unicopia.*; import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.block.UWoodTypes; @@ -13,6 +14,8 @@ import com.terraformersmc.terraform.boat.api.TerraformBoatType; import com.terraformersmc.terraform.boat.api.TerraformBoatTypeRegistry; import com.terraformersmc.terraform.boat.api.item.TerraformBoatItemHelper; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.item.*; import net.minecraft.item.Item.Settings; @@ -80,7 +83,12 @@ public interface UItems { Item PEBBLES = register("pebbles", new RacePredicatedAliasedBlockItem(UBlocks.ROCKS, new Item.Settings(), Race::canUseEarth), ItemGroups.NATURAL); Item ROCK = register("rock", new HeavyProjectileItem(new Item.Settings(), 3), ItemGroups.NATURAL); - Item WEIRD_ROCK = register("weird_rock", new Item(new Item.Settings()), ItemGroups.NATURAL); + Item WEIRD_ROCK = register("weird_rock", new BluntWeaponItem(new Item.Settings(), ImmutableMultimap.of( + EntityAttributes.GENERIC_LUCK, new EntityAttributeModifier(BluntWeaponItem.LUCK_MODIFIER_ID, "Weapon modifier", 9, EntityAttributeModifier.Operation.ADDITION) + )), ItemGroups.NATURAL); + Item TOM = register("tom", new BluntWeaponItem(new Item.Settings(), ImmutableMultimap.of( + EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(BluntWeaponItem.KNOCKBACK_MODIFIER_ID, "Weapon modifier", 0.9, EntityAttributeModifier.Operation.ADDITION) + )), ItemGroups.NATURAL); Item ROCK_STEW = register("rock_stew", new Item(new Item.Settings().food(FoodComponents.MUSHROOM_STEW)), ItemGroups.FOOD_AND_DRINK); Item GREEN_APPLE_SEEDS = register("green_apple_seeds", new AliasedBlockItem(UBlocks.GREEN_APPLE_SPROUT, new Item.Settings()), ItemGroups.NATURAL); diff --git a/src/main/java/com/minelittlepony/unicopia/item/URecipes.java b/src/main/java/com/minelittlepony/unicopia/item/URecipes.java index a3d13d6e..363d3855 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/URecipes.java +++ b/src/main/java/com/minelittlepony/unicopia/item/URecipes.java @@ -7,6 +7,7 @@ import com.minelittlepony.unicopia.ability.magic.spell.crafting.*; import net.fabricmc.fabric.api.loot.v2.LootTableEvents; import net.minecraft.loot.LootTable; +import net.minecraft.loot.context.LootContextTypes; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.RecipeType; @@ -48,8 +49,17 @@ public interface URecipes { Identifier modId = new Identifier("unicopiamc", id.getPath()); LootTable table = manager.getLootTable(modId); + if (table != LootTable.EMPTY) { - supplier.pools(List.of(table.pools)); + if (table.getType() == LootContextTypes.ARCHAEOLOGY) { + supplier.modifyPools(poolBuilder -> { + for (var pool : table.pools) { + poolBuilder.with(List.of(pool.entries)); + } + }); + } else { + supplier.pools(List.of(table.pools)); + } } }); } diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 5f10a3f4..267b8975 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -98,6 +98,7 @@ "item.unicopia.pebbles": "Pebbles", "item.unicopia.rock": "Rock", "item.unicopia.weird_rock": "Weird Rock", + "item.unicopia.tom": "Tom", "item.unicopia.rock_stew": "Rock Stew", "item.unicopia.pinecone": "Pinecone", "item.unicopia.acorn": "Acorn", diff --git a/src/main/resources/assets/unicopia/models/item/tom.json b/src/main/resources/assets/unicopia/models/item/tom.json new file mode 100644 index 00000000..c22e6ac2 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/tom.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/tom" + } +} diff --git a/src/main/resources/assets/unicopia/textures/item/tom.png b/src/main/resources/assets/unicopia/textures/item/tom.png new file mode 100644 index 0000000000000000000000000000000000000000..308f085bd760d35d234f181926ffb368e6de6eff GIT binary patch literal 4573 zcmeHLe^3)w9$%mmOe<2Q2nb~_we?54`9(;wdkH@bNMa49k^=1<*W2vAgcXvFn}r0N z1NDSLJu6bLW3?SosWa6nH#lbpYCHU>KWecj$4qI@QR-ZsJL=Q|^-fURdT%!&z}cA_ zX4?PQ%;SCc`@Y}L`@YZnzAt%cvK8bnk|s+L1X*M;=Wc?19BgPzH2k}~Y4Re1M8ty< zi_>CRgTz4H!%*=M5)rbC2+1gXkBo>yqF~yd0eO3Y3K>M*NsKK=Ob_{S04*=3A^b#0VC}sQ?HPc=PvrjpmQCQ_j9rcy{rc*rK?vn-3Fz&)YRpbi%e%`gT#- zXT8@46=j3XZJl~)`vOT;!iiYr8}-k8c*zc?Z~culih6tvU7jk34pG?` z4n8v0bVhY-dBS+~_`i?6?HgVhd$Of1?$FYWiG0pK^4t66-CN|uGh-K9_gXG3l{B4o zNcvMRu5VbM@?`AO$JgCiI|S-)CAdy)qTb#5-LmNKE`Or_oM~w8k-gr$BPJG{_=!lPhD-xP8q4~xVcBw>RMJd zo60@@iK^STN8c!_%QEoXMDKype3-`p z#$LjgST_(9>z0!=>j3hA+biy)AuHe|sdB)h4&Y)uM%n1;ZW+qZMp(+0?L9~AwxwIzT7A)f!StaIe=>9 z8o3h73oun`S*8>EYw^svt-xpr7>c*{i)ku?hItN{#|~RlvhPF%yEO!v5Y$u0mW6O({SHa6?lc zoK-bzO5t3FJp>9|jN2=EL9%CA@{DtutXZ)MBjR#q1_Ir~xU;OM)-D=DE31{rWvNOb zJWH-oCd^OJEXB}-C~7Iaj#dL4bEt49rXf`s7@4jlF^!%gX*I4RwHoaVD2vC(lO75P zP!L?sKpY%bIdMSgFp2~;rqNIu%s~SkM(coDtHO1FR5@lqY~&c2m1M=ts01h)Lg|20 zr^mHg%z-;#3|ipC^iB=H93<&*>h)S&OXDIGO%dx@&P~GYWZa|+D7+q*I3N&C}T(zhQo~S~wCHNM6tzg8Xgref1AV?~>1Rq%i zXfaNR6&#|JduUDLwNOsX(gJN%$x+3Z&~{4v|7$0WGH2=p2-j)?_%fL0ZG; zKGwhI{Ux8!Ui^|%py>Q0bK-ZNu6erV#K4@4=d){`t~oI< zC*%3-`q}7`PG6^h2Yw6k!^_egJm(g?YDGJq&Cf+1LzW@Qr_7_mwSJ-3{DKeuey~(% z5y*iz6QNSVTdaAKe=ST&kgPiS*o}0kO5*cMcoXXuzLg^n+_{Ul$1a0c?nf=TId=2; zoBKM-`?BND)h$YmuP^kPSMP|6ljMvHe^}Qv@J?NEuga8AdQ$Qt5uX!B?C)(cG<|`U z9xz=`ARL7&BY# zhl=YK_VnLM*}Jp8+mSYUJnxad#-h_lzdB;OxjH_zaRqYsgRx@!EBh_$=|owobKXQFqfmHcomS%2(HcZ1_bUk84v>WB8OKHG-+-3^fg poBfk`s-knlU`@l|WN+o<0$0@W``aSBehnE!EO`aF?Q4Ix