private void BuildToothpickFlair() { int saveFileId = LevelManager.Instance.currentlyLoadedSaveFile; Debug.Log("Restoring toothpick flair for save file " + saveFileId); if (!saveData.saveHats.ContainsKey(saveFileId)) { Debug.Log("No save file for " + saveFileId + " found"); return; } SaveHatListEntry curData = GetSaveFile(saveFileId); ToothpickJarFlair jar = GameObject.FindObjectOfType <ToothpickJarFlair>(); if (jar == null) { Debug.Log("No toothpick jar found on the scene"); return; } if (jar.flairLoaded) { Debug.Log("Flair already loaded on the toothpick jar"); return; } jar.flairLoaded = true; if (curData != null && curData.toothpickFlair != null) { foreach (var entry in curData.toothpickFlair) { Debug.Log("Restoring toothpick flair " + entry.icon); HatFlair newFlair = ConstructFlair(jar.transform, entry); newFlair.GetComponent <Sticky>().AttachToBody(jar.GetComponent <Rigidbody>()); Debug.Log("Restored flair " + newFlair.FlairId + " to jar " + saveFileId); } } }
public void Awake() { if (hatFlairPrefab != null) { globalHatFlairPrefab = hatFlairPrefab; } Load(); BuildHats(); BuildToothpickFlair(); }
public void OnStickyDetached(Transform stickyParent) { HatFlair flair = stickyParent.GetComponent <HatFlair>(); if (!flair) { Debug.LogError("Sticky item was detached, but it's not a HatFlair instance", stickyParent); return; } SaveHatShelf.RemoveToothpickFlair(flair); }
public void OnStickyAttached(Transform stickyParent) { HatFlair flair = stickyParent.GetComponent <HatFlair>(); if (!flair) { Debug.LogError("Sticky item was attached, but it's not a HatFlair instance", stickyParent); return; } SaveHatShelf.AddFlair(this, flair); }
public void OnStickyAttached(Transform stickyParent) { HatFlair flair = stickyParent.GetComponent <HatFlair>(); if (!flair) { Debug.LogError("Sticky item was attached, but it's not a HatFlair instance", stickyParent); return; } Debug.Log("Attaching flair to jar", flair); SaveHatShelf.AddToothpickFlair(gameObject, flair); }
public SaveHatFlairEntry(GameObject hat, HatFlair flair) { this.id = flair.FlairId; Transform originalParent = flair.transform.parent; flair.transform.parent = hat.transform; this.position = new Vector3Serializer().Fill(flair.transform.localPosition); this.rotation = new QuaternionSerializer().Fill(flair.transform.localRotation); flair.transform.parent = originalParent; this.icon = flair.flairIcon; this.size = flair.flairSize; this.shiny = flair.flairShiny == 1; }
public static HatFlair ConstructFlair(Transform parent, SaveHatFlairEntry entry) { HatFlair newFlair = (HatFlair)Instantiate(globalHatFlairPrefab, parent, false); newFlair.transform.localPosition = entry.position.V3; newFlair.transform.localRotation = entry.rotation.Q; newFlair.transform.SetParent(null); newFlair.flairIcon = entry.icon; newFlair.FlairId = entry.id; newFlair.flairSize = entry.size; newFlair.flairShiny = entry.shiny ? 1 : 0; return(newFlair); }
internal static void AddFlair(SaveHat saveHat, HatFlair flair) { SaveHatListEntry curData = null; if (!saveData.saveHats.ContainsKey(saveHat.saveFileId)) { Debug.LogError("Invalid save file ID: " + saveHat.saveFileId, saveHat); return; } curData = saveData.saveHats[saveHat.saveFileId]; curData.flair.Add(new SaveHatFlairEntry(saveHat.gameObject, flair)); Debug.Log("Added flair " + flair.FlairId + " to hat " + saveHat.saveFileId); Save(); }
public static void BuildFlair(SaveHat curHat, SaveHatListEntry curData) { if (curHat.flairLoaded) { return; } curHat.flairLoaded = true; foreach (var entry in curData.flair) { HatFlair newFlair = ConstructFlair(curHat.transform, entry); newFlair.GetComponent <Sticky>().AttachToBody(curHat.GetComponent <Rigidbody>()); Debug.Log("Restored flair " + newFlair.FlairId + " to hat " + curHat.saveFileId); } }
internal static void RemoveToothpickFlair(HatFlair flair) { SaveHatListEntry curData = null; int saveFileId = LevelManager.Instance.currentlyLoadedSaveFile; if (!saveData.saveHats.ContainsKey(saveFileId)) { return; } curData = saveData.saveHats[saveFileId]; var removedCount = curData.toothpickFlair.RemoveAll(new FlairIdSearch(flair.FlairId).Matches); Debug.Log("Removed flair " + flair.FlairId + " from toothpick jar " + saveFileId + "; removedCount=" + removedCount); Save(); }
internal static void RemoveFlair(SaveHat saveHat, HatFlair flair) { SaveHatListEntry curData = null; if (!saveData.saveHats.ContainsKey(saveHat.saveFileId)) { Debug.LogError("Invalid save file ID: " + saveHat.saveFileId, saveHat); return; } curData = saveData.saveHats[saveHat.saveFileId]; var removedCount = curData.flair.RemoveAll(new FlairIdSearch(flair.FlairId).Matches); Debug.Log("Removed flair " + flair.FlairId + " from hat " + saveHat.saveFileId + "; removedCount=" + removedCount); Save(); }
internal static void AddToothpickFlair(GameObject toothpickJar, HatFlair flair) { SaveHatListEntry curData = null; int saveFileId = LevelManager.Instance.currentlyLoadedSaveFile; if (!saveData.saveHats.ContainsKey(saveFileId)) { Debug.Log("No save file found: " + saveFileId); return; } curData = saveData.saveHats[saveFileId]; if (curData.toothpickFlair == null) { curData.toothpickFlair = new List <SaveHatFlairEntry>(); } curData.toothpickFlair.Add(new SaveHatFlairEntry(toothpickJar, flair)); Debug.Log("Added flair " + flair.FlairId + " to toothpick jar " + saveFileId); Save(); }
public void OnVendComplete() { GetComponent<HatFlair>().flairIcon = HatFlair.ChooseRandomFlairIcon(); GetComponent<HatFlair>().ApplyFlairSettings(); Destroy(this); }