Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
import net.minecraft.core.dispenser.BlockSource;
import net.minecraft.core.dispenser.OptionalDispenseItemBehavior;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.EquipmentSlotGroup;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.component.ItemAttributeModifiers;
import net.minecraft.world.level.block.DispenserBlock;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand All @@ -29,7 +31,7 @@ public class ItemLens extends Item implements HexBaubleItem { // Wearable,
HexAPI.modLoc("scrying_lens_sight"), 1.0, AttributeModifier.Operation.ADD_VALUE);

public ItemLens(Properties pProperties) {
super(pProperties);
super(pProperties.attributes(lensAttributeModifiers()));
DispenserBlock.registerBehavior(this, new OptionalDispenseItemBehavior() {
protected @NotNull ItemStack execute(@NotNull BlockSource world, @NotNull ItemStack stack) {
this.setSuccess(ArmorItem.dispenseArmor(world, stack));
Expand All @@ -38,6 +40,15 @@ public ItemLens(Properties pProperties) {
});
}

private static ItemAttributeModifiers lensAttributeModifiers() {
ItemAttributeModifiers.Builder builder = ItemAttributeModifiers.builder();
builder.add(HexAttributes.GRID_ZOOM, GRID_ZOOM, EquipmentSlotGroup.HAND);
builder.add(HexAttributes.GRID_ZOOM, GRID_ZOOM, EquipmentSlotGroup.HEAD);
builder.add(HexAttributes.SCRY_SIGHT, SCRY_SIGHT, EquipmentSlotGroup.HAND);
builder.add(HexAttributes.SCRY_SIGHT, SCRY_SIGHT, EquipmentSlotGroup.HEAD);
return builder.build();
}

@Override
public Multimap<Holder<Attribute>, AttributeModifier> getHexBaubleAttrs(ItemStack stack) {
HashMultimap<Holder<Attribute>, AttributeModifier> out = HashMultimap.create();
Expand Down
25 changes: 16 additions & 9 deletions Common/src/main/java/at/petrak/hexcasting/interop/HexInterop.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
package at.petrak.hexcasting.interop;

import at.petrak.hexcasting.common.lib.HexItems;
import at.petrak.hexcasting.interop.accessories.AccessoriesApiInterop;
import at.petrak.hexcasting.interop.accessories.LensAccessoryRenderer;
import at.petrak.hexcasting.interop.inline.InlineHex;
import at.petrak.hexcasting.interop.inline.InlineHexClient;
import at.petrak.hexcasting.interop.pehkui.PehkuiInterop;
import at.petrak.hexcasting.xplat.IClientXplatAbstractions;
import at.petrak.hexcasting.xplat.IXplatAbstractions;
import at.petrak.hexcasting.xplat.Platform;
import io.wispforest.accessories.api.AccessoriesAPI;
import io.wispforest.accessories.api.client.AccessoriesRendererRegistry;
import vazkii.patchouli.api.PatchouliAPI;

import java.util.List;
Expand All @@ -14,14 +19,7 @@ public class HexInterop {
public static final String PATCHOULI_ANY_INTEROP_FLAG = "hexcasting:any_interop";

public static final String PEHKUI_ID = "pehkui";

public static final class Forge {
public static final String CURIOS_API_ID = "curios";
}

public static final class Fabric {
public static final String ACCESSORIES_API_ID = "accessories";
}
public static final String ACCESSORIES_ID = "accessories";

public static void init() {
initPatchouli();
Expand All @@ -30,15 +28,24 @@ public static void init() {
if (xplat.isModPresent(PEHKUI_ID)) {
PehkuiInterop.init();
}
if (xplat.isModPresent(ACCESSORIES_ID)) {
AccessoriesApiInterop.init();
}

xplat.initPlatformSpecific();

InlineHex.init();
}

public static void clientInit() {
IClientXplatAbstractions.INSTANCE.initPlatformSpecific();
InlineHexClient.init();

IXplatAbstractions xplat = IXplatAbstractions.INSTANCE;
if (xplat.isModPresent(ACCESSORIES_ID)) {
AccessoriesApiInterop.clientInit();
}

xplat.initPlatformSpecific();
}

private static void initPatchouli() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package at.petrak.hexcasting.fabric.interop.accessories;
package at.petrak.hexcasting.interop.accessories;

import at.petrak.hexcasting.api.misc.DiscoveryHandlers;
import at.petrak.hexcasting.common.items.HexBaubleItem;
Expand All @@ -15,7 +15,6 @@
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.util.Tuple;
import net.minecraft.world.item.ItemStack;

import static io.wispforest.accessories.api.client.AccessoriesRendererRegistry.registerRenderer;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package at.petrak.hexcasting.interop.accessories;

import com.mojang.blaze3d.vertex.PoseStack;
import io.wispforest.accessories.api.client.AccessoryRenderer;
import io.wispforest.accessories.api.client.Side;
import io.wispforest.accessories.api.client.SimpleAccessoryRenderer;
import io.wispforest.accessories.api.slot.SlotReference;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.PlayerModel;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.ItemStack;

public class LensAccessoryRenderer implements SimpleAccessoryRenderer {
@Override
public <M extends LivingEntity> void align(ItemStack stack, SlotReference reference, EntityModel<M> model, PoseStack matrices) {
if (model instanceof PlayerModel<M> playerModel) {
// Translate and scale to place the lens over the left eye
AccessoryRenderer.transformToFace(matrices, playerModel.head, Side.FRONT);
matrices.translate(0.3, 0, 0);
matrices.scale(0.625f, 0.625f, 0.625f);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
"values": [
"hexcasting:lens"
]
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import at.petrak.hexcasting.api.client.ClientCastingStack;
import at.petrak.hexcasting.fabric.cc.HexCardinalComponents;
import at.petrak.hexcasting.fabric.client.ExtendedTexture;
import at.petrak.hexcasting.fabric.interop.accessories.AccessoriesApiInterop;
import at.petrak.hexcasting.interop.HexInterop;
import at.petrak.hexcasting.xplat.IClientXplatAbstractions;
import at.petrak.hexcasting.xplat.IXplatAbstractions;
Expand Down Expand Up @@ -44,9 +43,7 @@ public void setRenderLayer(Block block, RenderType type) {

@Override
public void initPlatformSpecific() {
if (IXplatAbstractions.INSTANCE.isModPresent(HexInterop.Fabric.ACCESSORIES_API_ID)) {
AccessoriesApiInterop.clientInit();
}
// platform-specific initialization not currently necessary
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import at.petrak.hexcasting.common.recipe.ingredient.brainsweep.BrainsweepeeIngredientType;
import at.petrak.hexcasting.common.recipe.ingredient.state.StateIngredientType;
import at.petrak.hexcasting.fabric.cc.HexCardinalComponents;
import at.petrak.hexcasting.fabric.interop.accessories.AccessoriesApiInterop;
import at.petrak.hexcasting.fabric.recipe.FabricUnsealedIngredient;
import at.petrak.hexcasting.interop.HexInterop;
import at.petrak.hexcasting.interop.pehkui.PehkuiInterop;
Expand Down Expand Up @@ -109,9 +108,7 @@ public boolean isModPresent(String id) {

@Override
public void initPlatformSpecific() {
if (this.isModPresent(HexInterop.Fabric.ACCESSORIES_API_ID)) {
AccessoriesApiInterop.init();
}
// platform-specific initialization not currently necessary
}

// @Override
Expand Down
8 changes: 0 additions & 8 deletions Fabric/src/main/resources/data/trinkets/entities/hex.json

This file was deleted.

3 changes: 2 additions & 1 deletion Fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@
},
"suggests": {
"pehkui": ">=3.7.6",
"modmenu": ">=7.0.1"
"modmenu": ">=7.0.1",
"accessories": ">=1.1.0-beta.16+1.21.1"
},
"custom": {
"cardinal-components": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
import at.petrak.hexcasting.forge.cap.CapSyncers;
import at.petrak.hexcasting.forge.cap.ForgeCapabilityHandler;
import at.petrak.hexcasting.forge.datagen.ForgeHexDataGenerators;
import at.petrak.hexcasting.forge.interop.curios.CuriosApiInterop;
import at.petrak.hexcasting.forge.interop.curios.CuriosRenderers;
import at.petrak.hexcasting.forge.lib.ForgeHexArgumentTypeRegistry;
import at.petrak.hexcasting.forge.lib.ForgeHexAttachments;
import at.petrak.hexcasting.forge.lib.ForgeHexIngredientTypes;
Expand Down Expand Up @@ -290,12 +288,6 @@ private static void initListeners() {
e.add(EntityType.PLAYER, HexAttributes.AMBIT_RADIUS);
e.add(EntityType.PLAYER, HexAttributes.SENTINEL_RADIUS);
});

if (ModList.get().isLoaded(HexInterop.Forge.CURIOS_API_ID)) {
modBus.addListener(CuriosApiInterop::onClientSetup);
if(FMLEnvironment.dist == Dist.CLIENT)
modBus.addListener(CuriosRenderers::onLayerRegister);
}
}

// aaaauughhg
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import at.petrak.hexcasting.common.lib.HexBlocks;
import at.petrak.hexcasting.common.lib.HexItems;
import at.petrak.hexcasting.forge.cap.adimpl.*;
import at.petrak.hexcasting.forge.interop.curios.CuriosApiInterop;
import at.petrak.hexcasting.interop.HexInterop;
import at.petrak.hexcasting.xplat.IXplatAbstractions;
import net.minecraft.core.registries.BuiltInRegistries;
Expand All @@ -37,8 +36,6 @@ public static void registerCaps(RegisterCapabilitiesEvent evt) {
evt.registerItem(HexCapabilities.Item.VARIANT_ITEM, (stack, ctx) -> new CapItemVariantItem(holder, stack), item);
if(item instanceof PigmentItem holder)
evt.registerItem(HexCapabilities.Item.COLOR, (stack, ctx) -> new CapItemPigment(holder, stack), item);
if(item instanceof HexBaubleItem && IXplatAbstractions.INSTANCE.isModPresent(HexInterop.Forge.CURIOS_API_ID))
CuriosApiInterop.registerCap(evt, item);
}

evt.registerItem(
Expand Down

This file was deleted.

Loading