protected override JobHandle OnUpdate(JobHandle inputDeps) { var entityType = GetArchetypeChunkEntityType(); var damagehistoryType = GetArchetypeChunkBufferType <DamageHistory>(); var historyJob = new HistoryJob { Time = Time.time, DamageEvents = m_DamageEventsQuery.ToComponentDataArray <DamageEvent>(Allocator.TempJob), EntityType = entityType, DamageHistoryType = damagehistoryType }; var historyHandle = historyJob.Schedule(m_HistoryQuery, inputDeps); var addDamageStackJob = new AddDamageStackJob { ECB = m_EndSim.CreateCommandBuffer().ToConcurrent(), DamageStackBuffer = GetBufferFromEntity <DamageStack>() }; var addDamageStackHandle = addDamageStackJob.Schedule(this, historyHandle); m_EndSim.AddJobHandleForProducer(addDamageStackHandle); var processDamageStackJob = new ProcessDamage(); var processDamageStackHandle = processDamageStackJob.Schedule(this, addDamageStackHandle); var tagDeadJob = new TagDeadJob { EntityCommandBuffer = m_EndSim.CreateCommandBuffer().ToConcurrent() }; var tagDeadHandle = tagDeadJob.Schedule(this, processDamageStackHandle); m_EndSim.AddJobHandleForProducer(tagDeadHandle); return(tagDeadHandle); }
public static void NetPackageDamageEntity_ProcessPackage_Prefix(ref NetPackageDamageEntity __instance) { if (__instance.Sender != null && ProcessDamage.Exec(__instance)) { if (ProcessDamage.bFatal(__instance)) { ProcessDamage.bFatal(__instance) = false; } ProcessDamage.strength(__instance) = 0; } }
public static bool ChangeBlocks_Prefix(GameManager __instance, string persistentPlayerId, List <BlockChangeInfo> _blocksToChange) { try { return(ProcessDamage.ProcessBlockDamage(__instance, persistentPlayerId, _blocksToChange)); } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in Injections.ChangeBlocks_Prefix: {0}", e.Message)); } return(true); }
public static bool DamageResponse_Prefix(EntityAlive __instance, DamageResponse _dmResponse) { try { if (ProcessDamage.Damage_Detector || Zones.IsEnabled || Lobby.IsEnabled) { return(ProcessDamage.ProcessPlayerDamage(__instance, _dmResponse)); } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in Injections.DamageResponse_Prefix: {0}", e.Message)); } return(true); }
public void AddHandler(ProcessDamage handler) { handlers.Add(handler); }