Example #1
0
    private IEnumerator WaitForNetInitialisation(SpriteHandlerManager.SpriteChange spriteChange)
    {
        yield return(null);

        if (NetworkIdentity.netId == 0)
        {
            Logger.LogError("ID hasn't been set for " + this.transform.parent);
            yield break;
        }

        if (SpriteHandlerManager.Instance.QueueChanges.ContainsKey(this))
        {
            spriteChange.MergeInto(SpriteHandlerManager.Instance.QueueChanges[this]);
        }
        SpriteHandlerManager.Instance.QueueChanges[this] = spriteChange;
    }
Example #2
0
    public static void GenerateSerialisation(SpriteHandlerManager.SpriteChange spriteChange)
    {
        if (spriteChange.PresentSpriteSet != -1)
        {
            ToReturn.Append(">");
            ToReturn.Append(spriteChange.PresentSpriteSet.ToString());
        }

        if (spriteChange.VariantIndex != -1)
        {
            ToReturn.Append("<");
            ToReturn.Append(spriteChange.VariantIndex.ToString());
        }

        if (spriteChange.CataloguePage != -1)
        {
            ToReturn.Append("&");
            ToReturn.Append(spriteChange.CataloguePage.ToString());
        }

        if (spriteChange.AnimateOnce)
        {
            ToReturn.Append("#");
            ToReturn.Append(spriteChange.CataloguePage.ToString());
        }

        if (spriteChange.PushTexture)
        {
            ToReturn.Append(",");
        }

        if (spriteChange.Empty)
        {
            ToReturn.Append("?");
        }

        if (spriteChange.PushClear)
        {
            ToReturn.Append("~");
        }

        if (spriteChange.ClearPallet)
        {
            ToReturn.Append('^');
        }

        if (spriteChange.SetColour != null)
        {
            ToReturn.Append("`");
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.r * 255)));
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.g * 255)));
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.b * 255)));
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.a * 255)));
        }

        if (spriteChange.Pallet != null)
        {
            if (spriteChange.Pallet.Count < 1 || spriteChange.Pallet.Count > 255)
            {
                Logger.Log(string.Format("Pallet size must be between 1 and 255. It is currently {0}.", spriteChange.Pallet.Count));
                ToReturn.Append("£");
                return;
            }

            ToReturn.Append("%");
            ToReturn.Append(Convert.ToChar(spriteChange.Pallet.Count));

            foreach (Color Colour in spriteChange.Pallet)
            {
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.r * 255)));
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.g * 255)));
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.b * 255)));
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.a * 255)));
            }
        }

        ToReturn.Append("£");
    }
Example #3
0
    private void NetUpdate(
        SpriteDataSO NewSpriteDataSO = null,
        int NewVariantIndex          = -1,
        int NewCataloguePage         = -1,
        bool NewPushTexture          = false,
        bool NewEmpty           = false,
        bool NewPushClear       = false,
        bool NewClearPallet     = false,
        Color?NewSetColour      = null,
        List <Color> NewPalette = null)
    {
        if (NetworkThis == false)
        {
            return;
        }
        if (SpriteHandlerManager.Instance == null)
        {
            return;
        }
        if (NetworkIdentity == null)
        {
            if (this?.gameObject == null)
            {
                return;
            }
            var NetID = SpriteHandlerManager.GetRecursivelyANetworkBehaviour(this.gameObject);
            if (NetID == null)
            {
                Logger.LogError("Was unable to find A NetworkBehaviour for ",
                                Category.SpriteHandler);
                return;
            }
            ;

            NetworkIdentity = NetID.netIdentity;
            if (NetworkIdentity == null)
            {
                var gamename = "";
                if (this?.gameObject != null)
                {
                    gamename = gameObject.name;
                }
                Logger.LogError("Was unable to find A NetworkBehaviour for " + gamename,
                                Category.SpriteHandler);
            }
        }

        if (CustomNetworkManager.Instance._isServer == false)
        {
            return;
        }

        SpriteHandlerManager.SpriteChange spriteChange = null;

        if (SpriteHandlerManager.Instance.QueueChanges.ContainsKey(this))
        {
            spriteChange = SpriteHandlerManager.Instance.QueueChanges[this];
        }
        else
        {
            spriteChange = SpriteHandlerManager.GetSpriteChange();
        }

        if (NewSpriteDataSO != null)
        {
            if (NewSpriteDataSO.setID == -1)
            {
                Logger.Log("NewSpriteDataSO NO ID!" + NewSpriteDataSO.name);
            }
            if (spriteChange.Empty)
            {
                spriteChange.Empty = false;
            }
            spriteChange.PresentSpriteSet = NewSpriteDataSO.setID;
        }

        if (NewVariantIndex != -1)
        {
            spriteChange.VariantIndex = NewVariantIndex;
        }

        if (NewCataloguePage != -1)
        {
            spriteChange.CataloguePage = NewCataloguePage;
        }

        if (NewPushTexture)
        {
            if (spriteChange.PushClear)
            {
                spriteChange.PushClear = false;
            }
            spriteChange.PushTexture = NewPushTexture;
        }

        if (NewEmpty)
        {
            if (spriteChange.PresentSpriteSet != -1)
            {
                spriteChange.PresentSpriteSet = -1;
            }
            spriteChange.Empty = NewEmpty;
        }

        if (NewPushClear)
        {
            if (spriteChange.PushTexture)
            {
                spriteChange.PushTexture = false;
            }
            spriteChange.PushClear = NewPushClear;
        }

        if (NewClearPallet)
        {
            if (spriteChange.Pallet != null)
            {
                spriteChange.Pallet = null;
            }
            spriteChange.ClearPallet = NewClearPallet;
        }

        if (NewSetColour != null)
        {
            spriteChange.SetColour = NewSetColour;
        }

        if (NewPalette != null)
        {
            if (spriteChange.ClearPallet)
            {
                spriteChange.ClearPallet = false;
            }
            spriteChange.Pallet = NewPalette;
        }

        if (NetworkIdentity.netId == 0)
        {
            //Logger.Log("ID hasn't been set for " + this.transform.parent);
            StartCoroutine(WaitForNetInitialisation(spriteChange));
        }
        else
        {
            SpriteHandlerManager.Instance.QueueChanges[this] = spriteChange;
        }
    }
Example #4
0
    public static void GenerateSerialisation(SpriteHandlerManager.SpriteChange spriteChange)
    {
        if (spriteChange.PresentSpriteSet != -1)
        {
            ToReturn.Append(">");
            ToReturn.Append(spriteChange.PresentSpriteSet.ToString());
        }

        if (spriteChange.VariantIndex != -1)
        {
            ToReturn.Append("<");
            ToReturn.Append(spriteChange.VariantIndex.ToString());
        }

        if (spriteChange.CataloguePage != -1)
        {
            ToReturn.Append("&");
            ToReturn.Append(spriteChange.CataloguePage.ToString());
        }

        if (spriteChange.PushTexture)
        {
            ToReturn.Append(",");
        }

        if (spriteChange.Empty)
        {
            ToReturn.Append("?");
        }

        if (spriteChange.PushClear)
        {
            ToReturn.Append("~");
        }

        if (spriteChange.ClearPallet)
        {
            ToReturn.Append('^');
        }

        if (spriteChange.SetColour != null)
        {
            ToReturn.Append("`");
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.r * 255)));
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.g * 255)));
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.b * 255)));
            ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(spriteChange.SetColour.Value.a * 255)));
        }

        if (spriteChange.Pallet != null)
        {
            if (spriteChange.Pallet.Count != 8)
            {
                Logger.Log("Pallet Is not the right length has to be eight it is " + spriteChange.Pallet.Count);
                ToReturn.Append("£");
                return;
            }

            ToReturn.Append("%");

            foreach (var Colour in spriteChange.Pallet)
            {
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.r * 255)));
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.g * 255)));
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.b * 255)));
                ToReturn.Append(Convert.ToChar(Mathf.RoundToInt(Colour.a * 255)));
            }
        }

        ToReturn.Append("£");
    }