Skip to content

Commit c2d72ba

Browse files
committed
update curios, refactor the curios things register
1 parent 363b76a commit c2d72ba

File tree

8 files changed

+83
-5
lines changed

8 files changed

+83
-5
lines changed

build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,9 @@ repositories {
132132
dependencies {
133133
annotationProcessor("org.spongepowered:mixin:0.8.5-SNAPSHOT:processor")
134134

135-
modImplementation("top.theillusivec4.curios:curios-forge:${curios_version}")
135+
136+
modCompileOnly ("top.theillusivec4.curios:curios-forge:${curios_version}:api")
137+
modRuntimeOnly ("top.theillusivec4.curios:curios-forge:${curios_version}")
136138

137139
modCompileOnly("mezz.jei:jei-1.20.1-common-api:${project.jei_version}") //API for compile
138140
modCompileOnly("mezz.jei:jei-1.20.1-forge-api:${project.jei_version}") //API for compile

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ maven_group = com.robertx22
3333

3434
# Dependencies
3535
exile_library_version=2.1.3
36-
curios_version=5.2.0-beta.3+1.20.1
36+
curios_version=5.14.1+1.20.1
3737
jei_version=15.2.0.27
3838
wiki_toolkit_version=0.2.4
3939
publish_plugin_version=0.8.3

src/main/java/com/robertx22/mine_and_slash/a_libraries/curios/CurioEvents.java

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
11
package com.robertx22.mine_and_slash.a_libraries.curios;
22

33
import com.robertx22.mine_and_slash.capability.entity.EntityData;
4+
import com.robertx22.mine_and_slash.database.data.omen.OmenItem;
45
import com.robertx22.mine_and_slash.mmorpg.ForgeEvents;
6+
import com.robertx22.mine_and_slash.mmorpg.SlashRef;
57
import com.robertx22.mine_and_slash.uncommon.datasaving.Load;
8+
import com.robertx22.mine_and_slash.vanilla_mc.items.gearitems.baubles.ItemNecklace;
9+
import com.robertx22.mine_and_slash.vanilla_mc.items.gearitems.baubles.ItemRing;
10+
import net.minecraft.core.Direction;
11+
import net.minecraft.core.registries.BuiltInRegistries;
12+
import net.minecraft.resources.ResourceLocation;
613
import net.minecraft.world.entity.LivingEntity;
14+
import net.minecraft.world.item.Item;
15+
import net.minecraft.world.item.ItemStack;
16+
import net.minecraftforge.common.capabilities.Capability;
17+
import net.minecraftforge.common.capabilities.ICapabilityProvider;
18+
import net.minecraftforge.common.util.LazyOptional;
19+
import net.minecraftforge.event.AttachCapabilitiesEvent;
20+
import top.theillusivec4.curios.api.CuriosCapability;
21+
import top.theillusivec4.curios.api.SlotContext;
722
import top.theillusivec4.curios.api.event.CurioChangeEvent;
23+
import top.theillusivec4.curios.api.type.capability.ICurio;
24+
25+
import javax.annotation.Nonnull;
26+
import javax.annotation.Nullable;
27+
import java.util.List;
828

929
public class CurioEvents {
1030

31+
private static final List<String> id = List.of("jewelry/necklace", "jewelry/ring", "omen");
1132

1233
public static void reg() {
1334
ForgeEvents.registerForgeEvent(CurioChangeEvent.class, event -> {
@@ -24,4 +45,36 @@ public static void reg() {
2445

2546
});
2647
}
48+
49+
public static void attachCapability(AttachCapabilitiesEvent<ItemStack> evt){
50+
Item item = evt.getObject().getItem();
51+
ResourceLocation key = BuiltInRegistries.ITEM.getKey(item);
52+
if (!key.getNamespace().equals(SlashRef.MODID)) return;
53+
if (!(item instanceof ItemNecklace || item instanceof ItemRing || item instanceof OmenItem)) return;
54+
//copy from charm of undying
55+
//also see https://docs.illusivesoulworks.com/curios/items/curio-creation#attaching-an-icurio-capability
56+
ICurio curio = new ICurio() {
57+
@Override
58+
public ItemStack getStack() {
59+
return evt.getObject();
60+
}
61+
62+
@Override
63+
public boolean canEquipFromUse(SlotContext ctx) {
64+
return true;
65+
}
66+
};
67+
ICapabilityProvider provider = new ICapabilityProvider() {
68+
private final LazyOptional<ICurio> curioOpt = LazyOptional.of(() -> curio);
69+
70+
@Nonnull
71+
@Override
72+
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap,
73+
@Nullable Direction side) {
74+
return CuriosCapability.ITEM.orEmpty(cap, curioOpt);
75+
}
76+
};
77+
evt.addCapability(CuriosCapability.ID_ITEM, provider);
78+
}
79+
2780
}

src/main/java/com/robertx22/mine_and_slash/mmorpg/MMORPG.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,12 @@
5252
import com.robertx22.test.test2.SchemaTest;
5353
import net.minecraft.ChatFormatting;
5454
import net.minecraft.resources.ResourceLocation;
55+
import net.minecraft.world.item.ItemStack;
5556
import net.minecraftforge.api.distmarker.Dist;
5657
import net.minecraftforge.client.event.EntityRenderersEvent;
5758
import net.minecraftforge.client.event.RegisterClientTooltipComponentFactoriesEvent;
5859
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
60+
import net.minecraftforge.common.MinecraftForge;
5961
import net.minecraftforge.data.event.GatherDataEvent;
6062
import net.minecraftforge.eventbus.api.EventPriority;
6163
import net.minecraftforge.eventbus.api.IEventBus;
@@ -181,7 +183,7 @@ public void accept(ExileEvents.OnCheckIsDevToolsRunning event) {
181183

182184
bus.addListener(this::commonSetupEvent);
183185
bus.addListener(this::interMod);
184-
186+
MinecraftForge.EVENT_BUS.addGenericListener(ItemStack.class, CurioEvents::attachCapability);
185187
ItemTooltipsRegister.init();
186188

187189
CurioEvents.reg();
@@ -239,11 +241,11 @@ public void accept(GatherDataEvent x) {
239241

240242
public void interMod(InterModEnqueueEvent event) {
241243

242-
244+
/*
243245
InterModComms.sendTo("curios", SlotTypeMessage.REGISTER_TYPE, () -> new SlotTypeMessage.Builder(RefCurio.RING).size(2).build());
244246
InterModComms.sendTo("curios", SlotTypeMessage.REGISTER_TYPE, () -> new SlotTypeMessage.Builder(RefCurio.NECKLACE).size(1).build());
245247
InterModComms.sendTo("curios", SlotTypeMessage.REGISTER_TYPE, () -> new SlotTypeMessage.Builder(RefCurio.OMEN).size(1).build());
246-
248+
*/
247249
ModLoadingContext.get()
248250
.registerConfig(ModConfig.Type.SERVER, CompatConfig.spec, NeatForgeConfig.defaultConfigName(ModConfig.Type.SERVER, "mine_and_slash_compatibility"));
249251

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"entities": [
3+
"minecraft:player"
4+
],
5+
"slots": [
6+
"omen",
7+
"necklace",
8+
"ring"
9+
]
10+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"size": 1,
3+
"add_cosmetic": false
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"size": 1,
3+
"add_cosmetic": false
4+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"size": 2
3+
}

0 commit comments

Comments
 (0)