mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-15 16:04:51 +00:00
Added run(EnumScriptType, Event) and
run(String, Event) methods to IScriptUnit interface, with JaninoScript delegating to callByHookType(). This provides a cleaner abstraction that supports both ScriptContainer and JaninoScript without type checking. Affected files: - IScriptUnit: Added run() methods to interface - JaninoScript: Implemented run() delegation methods - DataScript, PlayerDataScript, GlobalNPCDataScript, ForgeDataScript - EffectScript, LinkedItemScript, RecipeScript - ScriptCustomItem, TileScripted: Refactored to use polymorphic calls
This commit is contained in:
1 parent
cd60a03544
commit
cc0959dcfe
12 files changed
+156
-52
No files matched your search
@@ -1,8 +1,9 @@
|
||||
package noppes.npcs.controllers.data;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.Event;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import noppes.npcs.constants.EnumScriptType;
|
||||
import noppes.npcs.controllers.ScriptContainer;
|
||||
import noppes.npcs.janino.JaninoScript;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -149,4 +150,26 @@ public interface IScriptUnit {
|
||||
* Set the error state of this script unit.
|
||||
*/
|
||||
void setErrored(boolean errored);
|
||||
|
||||
// ==================== EXECUTION ====================
|
||||
|
||||
/**
|
||||
* Execute this script unit for the given hook type and event.
|
||||
* For ScriptContainer: calls run(EnumScriptType, Event)
|
||||
* For JaninoScript: calls callByHookType(EnumScriptType, Event)
|
||||
*
|
||||
* @param type The script hook type
|
||||
* @param event The event object
|
||||
*/
|
||||
void run(EnumScriptType type, Event event);
|
||||
|
||||
/**
|
||||
* Execute this script unit for the given hook name and event.
|
||||
* For ScriptContainer: calls run(String, Event)
|
||||
* For JaninoScript: converts hookName to EnumScriptType and calls callByHookType
|
||||
*
|
||||
* @param hookName The hook name (e.g., "init", "interact")
|
||||
* @param event The event object
|
||||
*/
|
||||
void run(String hookName, Object event);
|
||||
}
|
||||
Reference in new issue
Block a user