Skip to content

Commit

Permalink
大修事件系统
Browse files Browse the repository at this point in the history
  • Loading branch information
DancingSnow0517 committed Oct 6, 2024
1 parent 1478e12 commit 92069ef
Show file tree
Hide file tree
Showing 74 changed files with 518 additions and 822 deletions.
9 changes: 7 additions & 2 deletions src/main/java/dev/dubhe/anvilcraft/AnvilCraft.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package dev.dubhe.anvilcraft;

import dev.dubhe.anvilcraft.api.tooltip.ItemTooltipManager;
import dev.dubhe.anvilcraft.config.AnvilCraftConfig;
import dev.dubhe.anvilcraft.data.AnvilCraftDatagen;
import dev.dubhe.anvilcraft.init.ModBlockEntities;
Expand All @@ -10,7 +11,6 @@
import dev.dubhe.anvilcraft.init.ModEnchantmentEffectComponents;
import dev.dubhe.anvilcraft.init.ModEnchantmentEffects;
import dev.dubhe.anvilcraft.init.ModEntities;
import dev.dubhe.anvilcraft.init.ModEvents;
import dev.dubhe.anvilcraft.init.ModItemGroups;
import dev.dubhe.anvilcraft.init.ModItems;
import dev.dubhe.anvilcraft.init.ModLootContextParamSets;
Expand All @@ -37,6 +37,7 @@
import net.neoforged.neoforge.event.AddPackFindersEvent;
import net.neoforged.neoforge.event.AddReloadListenerEvent;
import net.neoforged.neoforge.event.RegisterCommandsEvent;
import net.neoforged.neoforge.event.entity.player.ItemTooltipEvent;
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
import net.neoforged.neoforge.network.registration.PayloadRegistrar;

Expand Down Expand Up @@ -64,7 +65,6 @@ public class AnvilCraft {

public AnvilCraft(IEventBus modEventBus, ModContainer container) {
EVENT_BUS = modEventBus;
ModEvents.register();
ModItemGroups.register(modEventBus);
ModBlocks.register();
ModEntities.register();
Expand All @@ -88,6 +88,7 @@ public AnvilCraft(IEventBus modEventBus, ModContainer container) {
private static void registerEvents(IEventBus eventBus) {
NeoForge.EVENT_BUS.addListener(AnvilCraft::registerCommand);
NeoForge.EVENT_BUS.addListener(AnvilCraft::addReloadListeners);
NeoForge.EVENT_BUS.addListener(AnvilCraft::addItemTooltips);

eventBus.addListener(AnvilCraft::registerPayload);
eventBus.addListener(AnvilCraft::loadComplete);
Expand All @@ -107,6 +108,10 @@ public static void registerPayload(RegisterPayloadHandlersEvent event) {
ModNetworks.init(registrar);
}

public static void addItemTooltips(ItemTooltipEvent event) {
ItemTooltipManager.addTooltip(event.getItemStack(), event.getToolTip());
}

public static void addReloadListeners(AddReloadListenerEvent event) {
RecipeManager recipeManager = event.getServerResources().getRecipeManager();
event.addListener(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import dev.dubhe.anvilcraft.api.anvil.impl.SuperHeatingBehavior;
import dev.dubhe.anvilcraft.api.anvil.impl.TimeWarpBehavior;
import dev.dubhe.anvilcraft.api.anvil.impl.WaxingBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.block.CementCauldronBlock;
import dev.dubhe.anvilcraft.init.ModBlocks;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
import dev.dubhe.anvilcraft.util.AnvilUtil;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
import dev.dubhe.anvilcraft.recipe.anvil.BulgingRecipe;
import dev.dubhe.anvilcraft.util.AnvilUtil;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.block.CementCauldronBlock;
import dev.dubhe.anvilcraft.block.state.Color;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.block.CementCauldronBlock;
import dev.dubhe.anvilcraft.block.state.Color;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
import dev.dubhe.anvilcraft.util.AnvilUtil;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModBlocks;

import net.minecraft.core.BlockPos;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.block.CrabTrapBlock;
import dev.dubhe.anvilcraft.block.entity.CrabTrapBlockEntity;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.mixin.accessor.BaseSpawnerAccessor;

import net.minecraft.core.BlockPos;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
import dev.dubhe.anvilcraft.util.AnvilUtil;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
import dev.dubhe.anvilcraft.util.AnvilUtil;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.recipe.anvil.MeshRecipe;
import dev.dubhe.anvilcraft.recipe.anvil.cache.RecipeCaches;
import dev.dubhe.anvilcraft.util.AnvilUtil;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
import dev.dubhe.anvilcraft.util.AnvilUtil;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import dev.dubhe.anvilcraft.AnvilCraft;
import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.init.ModBlockTags;

import net.minecraft.core.BlockPos;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.block.HeaterBlock;
import dev.dubhe.anvilcraft.init.ModBlocks;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.block.CorruptedBeaconBlock;
import dev.dubhe.anvilcraft.init.ModBlocks;
import dev.dubhe.anvilcraft.init.ModRecipeTypes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.dubhe.anvilcraft.api.anvil.impl;

import dev.dubhe.anvilcraft.api.anvil.AnvilBehavior;
import dev.dubhe.anvilcraft.api.event.entity.AnvilFallOnLandEvent;
import dev.dubhe.anvilcraft.api.event.anvil.AnvilFallOnLandEvent;

import net.minecraft.core.BlockPos;
import net.minecraft.world.item.HoneycombItem;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.dubhe.anvilcraft.api.entity.fakeplayer.forge;
package dev.dubhe.anvilcraft.api.entity.fakeplayer;

import dev.dubhe.anvilcraft.api.entity.player.IAnvilCraftBlockPlacer;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.dubhe.anvilcraft.api.event.forge;
package dev.dubhe.anvilcraft.api.event;

import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.dubhe.anvilcraft.api.event.forge;
package dev.dubhe.anvilcraft.api.event;

import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.LightningBolt;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package dev.dubhe.anvilcraft.api.event.forge;
package dev.dubhe.anvilcraft.api.event.anvil;

import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.Entity;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
package dev.dubhe.anvilcraft.api.event.entity;
package dev.dubhe.anvilcraft.api.event.anvil;

import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.item.FallingBlockEntity;
import net.minecraft.world.level.Level;

import lombok.Getter;
import lombok.Setter;
import net.neoforged.neoforge.event.entity.EntityEvent;


@Setter
@Getter
public class AnvilFallOnLandEvent extends EntityEvent<FallingBlockEntity> {
public class AnvilFallOnLandEvent extends EntityEvent {
@Setter
private boolean isAnvilDamage;
private final FallingBlockEntity entity;
private final float fallDistance;
private final Level level;
private final BlockPos pos;

/**
* 铁砧落地事件
Expand All @@ -22,7 +27,10 @@ public class AnvilFallOnLandEvent extends EntityEvent<FallingBlockEntity> {
* @param fallDistance 下落距离
*/
public AnvilFallOnLandEvent(Level level, BlockPos pos, FallingBlockEntity entity, float fallDistance) {
super(entity, pos, level);
super(entity);
this.entity = entity;
this.level = level;
this.pos = pos;
this.fallDistance = fallDistance;
this.isAnvilDamage = false;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package dev.dubhe.anvilcraft.api.event.entity;
package dev.dubhe.anvilcraft.api.event.anvil;

import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.item.FallingBlockEntity;
import net.minecraft.world.level.Level;

import lombok.Getter;
import net.neoforged.neoforge.event.entity.EntityEvent;

@Getter
public class AnvilHurtEntityEvent extends EntityEvent<FallingBlockEntity> {
public class AnvilHurtEntityEvent extends EntityEvent {
private final FallingBlockEntity entity;
private final Entity hurtedEntity;
private final float damage;
private final Level level;
private final BlockPos pos;

/**
* 铁砧伤害实体事件
Expand All @@ -28,8 +32,11 @@ public AnvilHurtEntityEvent(
Entity hurtedEntity,
float damage
) {
super(entity, pos, level);
super(entity);
this.entity = entity;
this.hurtedEntity = hurtedEntity;
this.damage = damage;
this.level = level;
this.pos = pos;
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
package dev.dubhe.anvilcraft.api.event.entity;
package dev.dubhe.anvilcraft.api.event.anvil;

import dev.dubhe.anvilcraft.entity.FallingGiantAnvilEntity;

import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level;

import lombok.Getter;
import net.neoforged.neoforge.event.entity.EntityEvent;

@Getter
public class GiantAnvilFallOnLandEvent extends EntityEvent<FallingGiantAnvilEntity> {
public class GiantAnvilFallOnLandEvent extends EntityEvent {
private final float fallDistance;
private final FallingGiantAnvilEntity entity;
private final Level level;
private final BlockPos pos;

/**
* 实体事件
Expand All @@ -19,7 +23,10 @@ public class GiantAnvilFallOnLandEvent extends EntityEvent<FallingGiantAnvilEnti
* @param level 世界
*/
public GiantAnvilFallOnLandEvent(FallingGiantAnvilEntity entity, BlockPos pos, Level level, float fallDistance) {
super(entity, pos, level);
super(entity);
this.entity = entity;
this.fallDistance = fallDistance;
this.level = level;
this.pos = pos;
}
}

This file was deleted.

This file was deleted.

This file was deleted.

Loading

0 comments on commit 92069ef

Please sign in to comment.