Skip to content

Commit 660a4aa

Browse files
authored
Merge pull request #1977 from VT-14/Update-Curios-Implementation
Update Curios Implementation (1.20 API)
2 parents bccdf6c + ebf57de commit 660a4aa

File tree

6 files changed

+30
-35
lines changed

6 files changed

+30
-35
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ mod_description=Example mod description.\nNewline characters can be used and wil
3030

3131
#Mod dependencies
3232
jei_version=15.2.0.23
33-
curios_version=5.2.0-beta.3+1.20.1
33+
curios_version=5.3.4+1.20.1
3434
patchouli_version=1.20.1-80-FORGE

src/main/java/wayoftime/bloodmagic/BloodMagic.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public BloodMagic() {
116116
// Register the setup method for modloading
117117
modBus.addListener(this::setup);
118118
// Register the enqueueIMC method for modloading
119-
modBus.addListener(this::enqueueIMC);
119+
// modBus.addListener(this::enqueueIMC);
120120
// Register the processIMC method for modloading
121121
modBus.addListener(this::processIMC);
122122
// Register the doClientStuff method for modloading
@@ -242,11 +242,11 @@ private void registerColors(final RegisterColorHandlersEvent event) {
242242
ClientEvents.colorHandlerEvent((RegisterColorHandlersEvent.Item) event);
243243
}
244244

245-
private void enqueueIMC(final InterModEnqueueEvent event) {
246-
if (curiosLoaded) {
247-
curiosCompat.setupSlots(event);
248-
}
249-
}
245+
// private void enqueueIMC(final InterModEnqueueEvent event) {
246+
// if (curiosLoaded) {
247+
// curiosCompat.setupSlots(event);
248+
// }
249+
// }
250250

251251
private void processIMC(final InterModProcessEvent event) {
252252
}

src/main/java/wayoftime/bloodmagic/compat/CuriosCompat.java

+11-28
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,20 @@
11
package wayoftime.bloodmagic.compat;
22

33
import net.minecraft.core.NonNullList;
4+
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
45
import net.minecraft.world.entity.player.Player;
56
import net.minecraft.world.item.ItemStack;
6-
import net.minecraftforge.fml.InterModComms;
7-
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
8-
import net.minecraftforge.items.IItemHandler;
7+
import net.minecraftforge.items.IItemHandlerModifiable;
98
import top.theillusivec4.curios.api.CuriosApi;
10-
import top.theillusivec4.curios.api.SlotTypeMessage;
11-
import top.theillusivec4.curios.api.SlotTypePreset;
12-
import top.theillusivec4.curios.api.type.util.ISlotHelper;
13-
import wayoftime.bloodmagic.BloodMagic;
9+
import top.theillusivec4.curios.api.type.inventory.ICurioStacksHandler;
1410
import wayoftime.bloodmagic.core.LivingArmorRegistrar;
1511
import wayoftime.bloodmagic.core.living.LivingStats;
1612
import wayoftime.bloodmagic.core.living.LivingUtil;
1713
import wayoftime.bloodmagic.impl.BloodMagicAPI;
14+
import java.util.Map;
1815

1916
public class CuriosCompat
2017
{
21-
public void setupSlots(InterModEnqueueEvent evt)
22-
{
23-
InterModComms.sendTo("curios", SlotTypeMessage.REGISTER_TYPE, () -> SlotTypePreset.NECKLACE.getMessageBuilder().build());
24-
InterModComms.sendTo("curios", SlotTypeMessage.REGISTER_TYPE, () -> SlotTypePreset.CHARM.getMessageBuilder().build());
25-
InterModComms.sendTo("curios", SlotTypeMessage.REGISTER_TYPE, () -> new SlotTypeMessage.Builder("living_armour_socket").size(0).icon(BloodMagic.rl("item/curios_empty_living_armour_socket")).build());
26-
}
27-
2818
public void registerInventory()
2919
{
3020
BloodMagicAPI.INSTANCE.registerInventoryProvider("curiosInventory", player -> getCuriosInventory(player));
@@ -33,8 +23,7 @@ public void registerInventory()
3323

3424
public NonNullList<ItemStack> getCuriosInventory(Player player)
3525
{
36-
IItemHandler itemHandler = CuriosApi.getCuriosHelper().getEquippedCurios(player).resolve().get();
37-
26+
IItemHandlerModifiable itemHandler = CuriosApi.getCuriosInventory(player).resolve().get().getEquippedCurios();
3827
NonNullList<ItemStack> inventory = NonNullList.create();
3928
for (int i = 0; i < itemHandler.getSlots(); i++)
4029
{
@@ -45,26 +34,20 @@ public NonNullList<ItemStack> getCuriosInventory(Player player)
4534

4635
public int recalculateCuriosSlots(Player player)
4736
{
48-
ISlotHelper slotHelper = CuriosApi.getSlotHelper();
37+
ICurioStacksHandler livingArmourSockets = CuriosApi.getCuriosInventory(player).resolve().get().getCurios().get("living_armour_socket");
4938
if (LivingUtil.hasFullSet(player))
5039
{
5140
LivingStats stats = LivingStats.fromPlayer(player);
52-
53-
int curiosLevel = stats != null ? stats.getLevel(LivingArmorRegistrar.UPGRADE_CURIOS_SOCKET.get().getKey())
54-
: 0;
55-
56-
if (curiosLevel == 0)
57-
{
58-
slotHelper.setSlotsForType("living_armour_socket", player, 0);
59-
} else
41+
int curiosLevel = (stats != null) ? stats.getLevel(LivingArmorRegistrar.UPGRADE_CURIOS_SOCKET.get().getKey()) : 0;
42+
livingArmourSockets.removeModifier(player.getUUID());
43+
if (curiosLevel != 0)
6044
{
61-
int slotCount = LivingArmorRegistrar.UPGRADE_CURIOS_SOCKET.get().getBonusValue("slots", curiosLevel).intValue();
62-
slotHelper.setSlotsForType("living_armour_socket", player, slotCount);
45+
livingArmourSockets.addTransientModifier(new AttributeModifier(player.getUUID(), "legacy", Double.valueOf(LivingArmorRegistrar.UPGRADE_CURIOS_SOCKET.get().getBonusValue("slots", curiosLevel).intValue()), AttributeModifier.Operation.ADDITION));
6346
}
6447
return curiosLevel;
6548
} else
6649
{
67-
slotHelper.setSlotsForType("living_armour_socket", player, 0);
50+
livingArmourSockets.removeModifier(player.getUUID());
6851
return 0;
6952
}
7053
}
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"entities": ["player"],
3+
"slots": [
4+
"charm",
5+
"necklace",
6+
"living_armour_socket"
7+
]
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"size": 0,
3+
"icon": "bloodmagic:item/curios_empty_living_armour_socket"
4+
}

0 commit comments

Comments
 (0)