Beispiel #1
0
    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);
            }
        }
    }
Beispiel #2
0
 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);
    }
Beispiel #4
0
    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);
    }
Beispiel #6
0
    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;
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
    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();
    }
Beispiel #9
0
 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);
     }
 }
Beispiel #10
0
    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();
    }
Beispiel #11
0
    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();
    }
Beispiel #12
0
    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();
    }
Beispiel #13
0
 public void OnVendComplete()
 {
     GetComponent<HatFlair>().flairIcon = HatFlair.ChooseRandomFlairIcon();
     GetComponent<HatFlair>().ApplyFlairSettings();
     Destroy(this);
 }