mirror of
https://github.com/Ellpeck/NaturesAura.git
synced 2024-11-22 11:53:29 +01:00
reinstate curios compat
This commit is contained in:
parent
c5e8935595
commit
226eefc90e
15 changed files with 76 additions and 26 deletions
|
@ -27,6 +27,9 @@ repositories {
|
||||||
maven {
|
maven {
|
||||||
url = "https://maven.theillusivec4.top/"
|
url = "https://maven.theillusivec4.top/"
|
||||||
}
|
}
|
||||||
|
maven {
|
||||||
|
url = uri("https://maven.octo-studios.com/releases")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
base {
|
base {
|
||||||
|
@ -98,8 +101,7 @@ dependencies {
|
||||||
compileOnly "mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}"
|
compileOnly "mezz.jei:jei-${minecraft_version}-neoforge-api:${jei_version}"
|
||||||
runtimeOnly "mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}"
|
runtimeOnly "mezz.jei:jei-${minecraft_version}-neoforge:${jei_version}"
|
||||||
|
|
||||||
// runtimeOnly "top.theillusivec4.curios:curios-neoforge:${curios_version}"
|
implementation "top.theillusivec4.curios:curios-neoforge:${curios_version}"
|
||||||
// compileOnly "top.theillusivec4.curios:curios-neoforge:${curios_version}:api"
|
|
||||||
|
|
||||||
compileOnly "vazkii.patchouli:Patchouli:${patchouli_version}:api"
|
compileOnly "vazkii.patchouli:Patchouli:${patchouli_version}:api"
|
||||||
runtimeOnly "vazkii.patchouli:Patchouli:${patchouli_version}"
|
runtimeOnly "vazkii.patchouli:Patchouli:${patchouli_version}"
|
||||||
|
|
|
@ -19,8 +19,7 @@ neo_version_range=[21.1.0,)
|
||||||
loader_version_range=[4,)
|
loader_version_range=[4,)
|
||||||
|
|
||||||
jei_version=19.18.3.204
|
jei_version=19.18.3.204
|
||||||
# TODO what to do about curios being discontinued? try out https://www.curseforge.com/minecraft/mc-mods/adorned?
|
curios_version=9.0.11+1.21
|
||||||
# curios_version=7.2.0+1.20.4
|
|
||||||
patchouli_version=1.21-87-NEOFORGE
|
patchouli_version=1.21-87-NEOFORGE
|
||||||
|
|
||||||
## Mod Properties
|
## Mod Properties
|
||||||
|
|
6
src/generated/resources/data/curios/tags/item/belt.json
Normal file
6
src/generated/resources/data/curios/tags/item/belt.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"values": [
|
||||||
|
"naturesaura:aura_cache",
|
||||||
|
"naturesaura:aura_trove"
|
||||||
|
]
|
||||||
|
}
|
6
src/generated/resources/data/curios/tags/item/charm.json
Normal file
6
src/generated/resources/data/curios/tags/item/charm.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"values": [
|
||||||
|
"naturesaura:eye",
|
||||||
|
"naturesaura:eye_improved"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"values": [
|
||||||
|
"naturesaura:shockwave_creator"
|
||||||
|
]
|
||||||
|
}
|
5
src/generated/resources/data/curios/tags/item/ring.json
Normal file
5
src/generated/resources/data/curios/tags/item/ring.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"values": [
|
||||||
|
"naturesaura:death_ring"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"entities": [
|
||||||
|
"minecraft:player"
|
||||||
|
],
|
||||||
|
"slots": [
|
||||||
|
"charm",
|
||||||
|
"belt",
|
||||||
|
"ring",
|
||||||
|
"necklace"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"add_cosmetic": true,
|
||||||
|
"size": 1
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"add_cosmetic": true,
|
||||||
|
"size": 1
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"add_cosmetic": true,
|
||||||
|
"size": 1
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"add_cosmetic": true,
|
||||||
|
"size": 1
|
||||||
|
}
|
|
@ -8,6 +8,7 @@ import de.ellpeck.naturesaura.api.aura.item.IAuraRecharge;
|
||||||
import de.ellpeck.naturesaura.api.misc.ILevelData;
|
import de.ellpeck.naturesaura.api.misc.ILevelData;
|
||||||
import de.ellpeck.naturesaura.blocks.tiles.BlockEntityImpl;
|
import de.ellpeck.naturesaura.blocks.tiles.BlockEntityImpl;
|
||||||
import de.ellpeck.naturesaura.chunk.AuraChunk;
|
import de.ellpeck.naturesaura.chunk.AuraChunk;
|
||||||
|
import de.ellpeck.naturesaura.compat.Compat;
|
||||||
import de.ellpeck.naturesaura.misc.LevelData;
|
import de.ellpeck.naturesaura.misc.LevelData;
|
||||||
import de.ellpeck.naturesaura.packet.PacketHandler;
|
import de.ellpeck.naturesaura.packet.PacketHandler;
|
||||||
import de.ellpeck.naturesaura.packet.PacketParticles;
|
import de.ellpeck.naturesaura.packet.PacketParticles;
|
||||||
|
@ -50,6 +51,8 @@ import net.neoforged.neoforge.capabilities.Capabilities;
|
||||||
import net.neoforged.neoforge.capabilities.ICapabilityProvider;
|
import net.neoforged.neoforge.capabilities.ICapabilityProvider;
|
||||||
import net.neoforged.neoforge.items.IItemHandler;
|
import net.neoforged.neoforge.items.IItemHandler;
|
||||||
import net.neoforged.neoforge.items.IItemHandlerModifiable;
|
import net.neoforged.neoforge.items.IItemHandlerModifiable;
|
||||||
|
import top.theillusivec4.curios.api.CuriosApi;
|
||||||
|
import top.theillusivec4.curios.api.SlotResult;
|
||||||
|
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -300,15 +303,14 @@ public final class Helper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack getEquippedItem(Predicate<ItemStack> predicate, Player player, boolean hotbarOnly) {
|
public static ItemStack getEquippedItem(Predicate<ItemStack> predicate, Player player, boolean hotbarOnly) {
|
||||||
// TODO curios?
|
if (Compat.hasCompat("curios")) {
|
||||||
/* if (Compat.hasCompat("curios")) {
|
|
||||||
var inventory = CuriosApi.getCuriosInventory(player);
|
var inventory = CuriosApi.getCuriosInventory(player);
|
||||||
if (inventory.isPresent()) {
|
if (inventory.isPresent()) {
|
||||||
var stack = inventory.get().findFirstCurio(predicate).map(SlotResult::stack);
|
var stack = inventory.get().findFirstCurio(predicate).map(SlotResult::stack);
|
||||||
if (stack.isPresent())
|
if (stack.isPresent())
|
||||||
return stack.get();
|
return stack.get();
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
var invSize = hotbarOnly ? 9 : player.getInventory().getContainerSize();
|
var invSize = hotbarOnly ? 9 : player.getInventory().getContainerSize();
|
||||||
for (var i = 0; i < invSize; i++) {
|
for (var i = 0; i < invSize; i++) {
|
||||||
var slot = player.getInventory().getItem(i);
|
var slot = player.getInventory().getItem(i);
|
||||||
|
|
|
@ -19,8 +19,7 @@ public final class Compat {
|
||||||
@SuppressWarnings("Convert2MethodRef") // bleh classloading compat issues
|
@SuppressWarnings("Convert2MethodRef") // bleh classloading compat issues
|
||||||
private static final Map<String, Supplier<ICompat>> MODULE_TYPES = ImmutableMap.<String, Supplier<ICompat>>builder()
|
private static final Map<String, Supplier<ICompat>> MODULE_TYPES = ImmutableMap.<String, Supplier<ICompat>>builder()
|
||||||
.put("patchouli", () -> new PatchouliCompat())
|
.put("patchouli", () -> new PatchouliCompat())
|
||||||
// TODO curios?
|
.put("curios", () -> new CuriosCompat())
|
||||||
//.put("curios", () -> new CuriosCompat())
|
|
||||||
//.put("enchantability", EnchantibilityCompat::new)
|
//.put("enchantability", EnchantibilityCompat::new)
|
||||||
.build();
|
.build();
|
||||||
private static final Map<String, ICompat> MODULES = new HashMap<>();
|
private static final Map<String, ICompat> MODULES = new HashMap<>();
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
// TODO curios?
|
|
||||||
/*
|
|
||||||
package de.ellpeck.naturesaura.compat;
|
package de.ellpeck.naturesaura.compat;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
@ -26,13 +24,13 @@ import java.util.concurrent.CompletableFuture;
|
||||||
public class CuriosCompat implements ICompat {
|
public class CuriosCompat implements ICompat {
|
||||||
|
|
||||||
private static final Map<Item, String> TYPES = ImmutableMap.<Item, String>builder()
|
private static final Map<Item, String> TYPES = ImmutableMap.<Item, String>builder()
|
||||||
.put(ModItems.EYE, "charm")
|
.put(ModItems.EYE, "charm")
|
||||||
.put(ModItems.EYE_IMPROVED, "charm")
|
.put(ModItems.EYE_IMPROVED, "charm")
|
||||||
.put(ModItems.AURA_CACHE, "belt")
|
.put(ModItems.AURA_CACHE, "belt")
|
||||||
.put(ModItems.AURA_TROVE, "belt")
|
.put(ModItems.AURA_TROVE, "belt")
|
||||||
.put(ModItems.SHOCKWAVE_CREATOR, "necklace")
|
.put(ModItems.SHOCKWAVE_CREATOR, "necklace")
|
||||||
.put(ModItems.DEATH_RING, "ring")
|
.put(ModItems.DEATH_RING, "ring")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addCapabilities(RegisterCapabilitiesEvent event) {
|
public void addCapabilities(RegisterCapabilitiesEvent event) {
|
||||||
|
@ -69,7 +67,7 @@ public class CuriosCompat implements ICompat {
|
||||||
@Override
|
@Override
|
||||||
public void addItemTags(ItemTagProvider provider) {
|
public void addItemTags(ItemTagProvider provider) {
|
||||||
for (var entry : CuriosCompat.TYPES.entrySet()) {
|
for (var entry : CuriosCompat.TYPES.entrySet()) {
|
||||||
var tag = ItemTags.create(new ResourceLocation("curios", entry.getValue()));
|
var tag = ItemTags.create(ResourceLocation.fromNamespaceAndPath("curios", entry.getValue()));
|
||||||
provider.tag(tag).add(entry.getKey());
|
provider.tag(tag).add(entry.getKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,12 +80,12 @@ public class CuriosCompat implements ICompat {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void generate(HolderLookup.Provider provider, ExistingFileHelper existingFileHelper) {
|
public void generate(HolderLookup.Provider provider, ExistingFileHelper existingFileHelper) {
|
||||||
for (var type : CuriosCompat.TYPES.values()) {
|
var types = CuriosCompat.TYPES.values().stream().distinct().toArray(String[]::new);
|
||||||
this.createSlot(type);
|
this.createEntities("entities").addPlayer().addSlots(types);
|
||||||
}
|
for (var type : types)
|
||||||
|
this.createSlot(type).size(1).addCosmetic(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.mojang.math.Axis;
|
||||||
import de.ellpeck.naturesaura.ModConfig;
|
import de.ellpeck.naturesaura.ModConfig;
|
||||||
import de.ellpeck.naturesaura.api.render.ITrinketItem;
|
import de.ellpeck.naturesaura.api.render.ITrinketItem;
|
||||||
import de.ellpeck.naturesaura.api.render.ITrinketItem.RenderType;
|
import de.ellpeck.naturesaura.api.render.ITrinketItem.RenderType;
|
||||||
|
import de.ellpeck.naturesaura.compat.Compat;
|
||||||
import net.minecraft.client.model.PlayerModel;
|
import net.minecraft.client.model.PlayerModel;
|
||||||
import net.minecraft.client.player.AbstractClientPlayer;
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
|
@ -17,6 +18,7 @@ import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.api.distmarker.OnlyIn;
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
|
import top.theillusivec4.curios.api.CuriosApi;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -57,15 +59,14 @@ public class PlayerLayerTrinkets extends RenderLayer<AbstractClientPlayer, Playe
|
||||||
this.renderStack(player.getInventory().getItem(i), player, type, main, second, matrices, buffer, packedLight);
|
this.renderStack(player.getInventory().getItem(i), player, type, main, second, matrices, buffer, packedLight);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO curios?
|
if (Compat.hasCompat("curios")) {
|
||||||
/* if (Compat.hasCompat("curios")) {
|
|
||||||
var inventory = CuriosApi.getCuriosInventory(player).orElse(null);
|
var inventory = CuriosApi.getCuriosInventory(player).orElse(null);
|
||||||
if (inventory != null) {
|
if (inventory != null) {
|
||||||
var handler = inventory.getEquippedCurios();
|
var handler = inventory.getEquippedCurios();
|
||||||
for (var i = 0; i < handler.getSlots(); i++)
|
for (var i = 0; i < handler.getSlots(); i++)
|
||||||
this.renderStack(handler.getStackInSlot(i), player, type, main, second, matrices, buffer, packedLight);
|
this.renderStack(handler.getStackInSlot(i), player, type, main, second, matrices, buffer, packedLight);
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderStack(ItemStack stack, Player player, RenderType type, ItemStack main, ItemStack second, PoseStack matrices, MultiBufferSource buffer, int packedLight) {
|
private void renderStack(ItemStack stack, Player player, RenderType type, ItemStack main, ItemStack second, PoseStack matrices, MultiBufferSource buffer, int packedLight) {
|
||||||
|
|
Loading…
Reference in a new issue