5using Jint.Native.Function;
12 float DigProgress1 = DigProgress;
13 foreach (Function
function in functions) {
14 Digged1 |=
JsInterface.
Invoke(
function, miner, raycastResult, DigProgress1).AsBoolean();
30 foreach (Function
function in functions) {
48 foreach (Function
function in functions) {
57 foreach (Function
function in functions) {
65 foreach (Function
function in functions) {
73 foreach (Function
function in functions) {
81 foreach (Function
function in functions) {
89 foreach (Function
function in functions) {
103using static JavaScriptCore.JSValue;
104using static System.Runtime.InteropServices.JavaScript.JSType;
108 public JSContext JSContext;
109 public override void OnMinerDig(ComponentMiner miner, TerrainRaycastResult raycastResult, ref
float DigProgress, out
bool Digged) {
110 bool Digged1 =
false;
111 if (JsInterface.handlersDictionary.TryGetValue(
"OnMinerDig", out List<JSValue> functions)) {
112 float DigProgress1 = DigProgress;
113 foreach (JSValue
function in functions) {
114 Digged1 =
function.Call(JSValue.From(JSValue.FromObject(miner),JSContext), JSValue.From(JSValue.FromObject(raycastResult),JSContext), JSValue.From(DigProgress1,JSContext)).ToBool();
121 TerrainRaycastResult raycastResult,
127 bool Placed1 =
false;
128 if (JsInterface.handlersDictionary.TryGetValue(
"OnMinerPlace", out List<JSValue> functions)) {
129 foreach (JSValue
function in functions) {
130 Placed1 |=
function.Call(JSValue.From(JSValue.FromObject(miner),JSContext), JSValue.From(JSValue.FromObject(raycastResult),JSContext), JSValue.From(x,JSContext), JSValue.From(y,JSContext), JSValue.From(z,JSContext), JSValue.From(value,JSContext)).ToBool();
136 public override bool OnPlayerSpawned(PlayerData.SpawnMode spawnMode, ComponentPlayer componentPlayer,
Vector3 position) {
137 if (JsInterface.handlersDictionary.TryGetValue(
"OnPlayerSpawned", out List<JSValue> functions)) {
138 foreach (var
function in functions) {
139 function.Call(JSValue.From(JSValue.FromObject(spawnMode), JSContext), JSValue.From(JSValue.FromObject(componentPlayer), JSContext), JSValue.From(JSValue.FromObject(position), JSContext));
146 public override void OnPlayerDead(PlayerData playerData) {
147 if (JsInterface.handlersDictionary.TryGetValue(
"OnPlayerDead", out List<JSValue> functions)) {
148 foreach (JSValue
function in functions) {
149 function.Call(JSValue.From(JSValue.FromObject(playerData), JSContext));
155 if (JsInterface.handlersDictionary.TryGetValue(
"ProcessAttackment", out List<JSValue> functions)) {
156 foreach (JSValue
function in functions) {
157 function.Call(JSValue.From(JSValue.FromObject(attackment), JSContext));
163 if (JsInterface.handlersDictionary.TryGetValue(
"CalculateCreatureInjuryAmount", out List<JSValue> functions)) {
164 foreach (JSValue
function in functions) {
165 function.Call(JSValue.From(JSValue.FromObject(injury), JSContext));
171 if (JsInterface.handlersDictionary.TryGetValue(
"OnProjectLoaded", out List<JSValue> functions)) {
172 foreach (JSValue
function in functions) {
173 function.Call(JSValue.From(JSValue.FromObject(project), JSContext));
179 if (JsInterface.handlersDictionary.TryGetValue(
"OnProjectDisposed", out List<JSValue> functions)) {
180 foreach (JSValue
function in functions) {
The spell "Attackment" is wrong, But it is not recommended to change it because many mods rely on thi...
static Dictionary< string, List< Function > > handlersDictionary
static JsValue Invoke(string str, params object[] arguments)
override void OnProjectDisposed()
当Project被释放时执行
override void OnProjectLoaded(Project project)
当Project被加载时执行
override void CalculateCreatureInjuryAmount(Injury injury)
计算生物收到伤害的量
override void OnPlayerDead(PlayerData playerData)
当人物死亡时执行。在玩家进入世界且玩家处于死亡状态时也会执行 可以通过playerData.m_stateMachine.PreviousState == "Playing",来判断是刚死的,还是加载世...
override bool OnPlayerSpawned(PlayerData.SpawnMode spawnMode, ComponentPlayer componentPlayer, Vector3 position)
人物出生时执行
override void OnMinerDig(ComponentMiner miner, TerrainRaycastResult raycastResult, ref float DigProgress, out bool Digged)
当人物挖掘时执行
override void ProcessAttackment(Attackment attackment)
在攻击时执行
override void OnMinerPlace(ComponentMiner miner, TerrainRaycastResult raycastResult, int x, int y, int z, int value, out bool Placed)
当人物放置时执行,若Placed为true则不执行原放置操作