Skip to content

Commit

Permalink
simplify curio logic and fix right click equip
Browse files Browse the repository at this point in the history
  • Loading branch information
UpcraftLP committed Jan 31, 2025
1 parent 51e9e7e commit a5232c0
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 34 deletions.
Original file line number Diff line number Diff line change
@@ -1,45 +1,15 @@
package dev.cammiescorner.icarus.neoforge;

import com.illusivesoulworks.caelus.api.CaelusApi;
import dev.cammiescorner.icarus.Icarus;
import dev.cammiescorner.icarus.util.IcarusHelper;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
import net.neoforged.neoforge.event.tick.PlayerTickEvent;

@EventBusSubscriber(modid = Icarus.MODID)
public class EventHandler {

public static final ResourceLocation WINGS_FLIGHT_MODIFIER_ID = Icarus.id("wings");
public static final AttributeModifier WINGS_FLIGHT = new AttributeModifier(WINGS_FLIGHT_MODIFIER_ID, 1.0D, AttributeModifier.Operation.ADD_VALUE);

@SubscribeEvent
public static void onPlayerTick(PlayerTickEvent.Pre event) {
var attributeInstance = event.getEntity().getAttribute(CaelusApi.getInstance().getFallFlyingAttribute());

if (attributeInstance != null) {
if (attributeInstance.hasModifier(WINGS_FLIGHT.id())) {
if (event.getEntity().isFallFlying()) {
if (!IcarusHelper.onFallFlyingTick(event.getEntity(), IcarusHelper.getEquippedWings(event.getEntity()), true)) {
attributeInstance.removeModifier(WINGS_FLIGHT_MODIFIER_ID);
}
} else {
if (!IcarusHelper.hasWings(event.getEntity())) {
attributeInstance.removeModifier(WINGS_FLIGHT_MODIFIER_ID);
}
}
} else {
if (IcarusHelper.hasWings(event.getEntity())) {
attributeInstance.addTransientModifier(WINGS_FLIGHT);
}
}
}
}

@SubscribeEvent
public static void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) {
IcarusHelper.onServerPlayerJoin((ServerPlayer) event.getEntity());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,5 @@ public Main(IEventBus bus) {
var component = CuriosApi.getCuriosInventory(entity);
return component.isPresent() && component.orElseThrow().isEquipped(stack -> stack.getItem() instanceof WingItem);
};

// IcarusHelper.equipFunc = (entity, stack) -> {
// //TODO equip curio
// }
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
package dev.cammiescorner.icarus.neoforge.mixin;

import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Multimap;
import com.illusivesoulworks.caelus.api.CaelusApi;
import dev.cammiescorner.icarus.Icarus;
import dev.cammiescorner.icarus.item.WingItem;
import net.minecraft.core.Holder;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import org.spongepowered.asm.mixin.Mixin;
import top.theillusivec4.curios.api.SlotContext;
import top.theillusivec4.curios.api.type.capability.ICurioItem;

@Mixin(WingItem.class)
Expand All @@ -12,4 +22,17 @@ private WingItemMixin(Properties properties) {
super(properties);
throw new UnsupportedOperationException();
}

@Override
public boolean canEquipFromUse(SlotContext slotContext, ItemStack stack) {
return true;
}

@Override
public Multimap<Holder<Attribute>, AttributeModifier> getAttributeModifiers(SlotContext slotContext, ResourceLocation id, ItemStack stack) {
return ImmutableMultimap.<Holder<Attribute>, AttributeModifier>builder()
.putAll(ICurioItem.super.getAttributeModifiers(slotContext, id, stack))
.put(CaelusApi.getInstance().getFallFlyingAttribute(), new AttributeModifier(Icarus.id("wings"), 1.0D, AttributeModifier.Operation.ADD_VALUE))
.build();
}
}

0 comments on commit a5232c0

Please sign in to comment.