private void OnHandSelected(EntityUid uid, MeleeWeaponComponent comp, HandSelectedEvent args) { var curTime = _gameTiming.CurTime; var cool = TimeSpan.FromSeconds(comp.CooldownTime * 0.5f); if (curTime < comp.CooldownEnd) { if (comp.CooldownEnd - curTime < cool) { comp.LastAttackTime = curTime; comp.CooldownEnd += cool; } else { return; } } else { comp.LastAttackTime = curTime; comp.CooldownEnd = curTime + cool; } RaiseLocalEvent(uid, new RefreshItemCooldownEvent(comp.LastAttackTime, comp.CooldownEnd), false); }
/// <summary> /// Calls HandSelected on all components that implement the IHandSelected interface /// on an item entity on a hand that has just been selected. /// </summary> public void HandSelectedInteraction(IEntity user, IEntity item) { var handSelectedMsg = new HandSelectedEvent(user, item); RaiseLocalEvent(item.Uid, handSelectedMsg); if (handSelectedMsg.Handled) { return; } var comps = item.GetAllComponents <IHandSelected>().ToList(); // Call Land on all components that implement the interface foreach (var comp in comps) { comp.HandSelected(new HandSelectedEventArgs(user)); } }
private void OnHandSelected(EntityUid uid, ServerRangedWeaponComponent component, HandSelectedEvent args) { // Instead of dirtying on hand-select this component should probably by dirtied whenever it needs to be. // I take no responsibility for this code. It was like this when I got here. component.Dirty(); }