public override void ClearTarget() { profile = null; Components.LiveMinionIdentities.OnAdd -= OnMinionIdentitiesChanged; Components.LiveMinionIdentities.OnRemove -= OnMinionIdentitiesChanged; base.ClearTarget(); }
/// <summary> /// Called when a Duplicant is removed, either by death or things like sandbox delete. /// </summary> /// <param name="dupe">The Duplicant that was removed.</param> private static void OnRemoveDuplicant(MinionIdentity dupe) { if (dupe != null) { var prefabID = dupe.gameObject.GetComponentSafe <KPrefabID>(); WorkshopProfile.CleanupCmps(); foreach (var cmp in WorkshopProfile.Cmps) { if (cmp != null) { cmp.RemoveDuplicant(prefabID.InstanceID); } } } }
public override void SetTarget(GameObject target) { var wp = target.GetComponentSafe <WorkshopProfile>(); if (wp != null) { // Register for changes to Duplicant roster while sidescreen is open if (profile == null) { Components.LiveMinionIdentities.OnAdd += OnMinionIdentitiesChanged; Components.LiveMinionIdentities.OnRemove += OnMinionIdentitiesChanged; } profile = wp; ReloadIdentities(); Refresh(); } else { PUtil.LogWarning("Invalid workshop profile received!"); } }