示例#1
0
    public void SetupsSprites()
    {
        foreach (var Root in livingHealthMasterBase.RootBodyPartContainers)
        {
            CustomisationStorage customisationStorage = null;
            foreach (var Custom in ThisCharacter.SerialisedBodyPartCustom)
            {
                if (Root.name == Custom.path)
                {
                    customisationStorage = Custom;
                    break;
                }
            }

            if (customisationStorage != null)
            {
                BodyPartDropDownOrgans.OnPlayerBodyDeserialise(null, Root, customisationStorage.Data,
                                                               livingHealthMasterBase);
            }

            foreach (var Limb in Root.ContainsLimbs)
            {
                SubSetBodyPart(Limb, "");
            }
        }

        PlayerHealthData SetRace = null;

        foreach (var Race in RaceSOSingleton.Instance.Races)
        {
            if (Race.name == ThisCharacter.Species)
            {
                SetRace = Race;
            }
        }

        List <uint> ToClient = new List <uint>();

        foreach (var Customisation in SetRace.Base.CustomisationSettings)
        {
            ExternalCustomisation externalCustomisation = null;
            foreach (var EC in ThisCharacter.SerialisedExternalCustom)
            {
                if (EC.Key == Customisation.CustomisationGroup.name)
                {
                    externalCustomisation = EC;
                }
            }

            if (externalCustomisation == null)
            {
                continue;
            }

            var SpriteHandlerNorder =
                Spawn.ServerPrefab(ToInstantiateSpriteCustomisation.gameObject, null, CustomisationSprites.transform)
                .GameObject.GetComponent <SpriteHandlerNorder>();
            SpriteHandlerNorder.transform.localPosition = Vector3.zero;
            ToClient.Add(SpriteHandlerNorder.GetComponent <NetworkIdentity>().netId);
            OpenSprites.Add(SpriteHandlerNorder);
            //SubSetBodyPart
            foreach (var Sprite_s in Customisation.CustomisationGroup.PlayerCustomisations)
            {
                if (Sprite_s.Name == externalCustomisation.SerialisedValue.SelectedName)
                {
                    SpriteHandlerNorder.SpriteHandler.SetSpriteSO(Sprite_s.SpriteEquipped);
                    SpriteHandlerNorder.SetSpriteOrder(new SpriteOrder(Customisation.CustomisationGroup.SpriteOrder));
                    Color setColor = Color.black;
                    ColorUtility.TryParseHtmlString(externalCustomisation.SerialisedValue.Colour, out setColor);
                    SpriteHandlerNorder.SpriteHandler.SetColor(setColor);
                }
            }
        }

        this.GetComponent <RootBodyPartController>().UpdateCustomisations("", JsonConvert.SerializeObject(ToClient));

        //TODOH

        //Fetch Race Health Pack
        // if(Character.Race == Race.Human)
        // {
        //
        // }

        //this is Target zone

        //Instantiates Sprites
        //TODOH
        //Race data contain sprites order
        //healing/Damage splits across body parts
        //needs a generate sprites dynamically


        //RaceBodyparts.Base.LegLeft.GetComponent<ItemStorage>()


        //RaceTexture = Spawn.RaceData["human"];

        //Loop through dimrphic body parts
        //SetupBodySpritesByGender();
        SetSurfaceColour();
        OnDirectionChange(directional.CurrentDirection);
    }
    public void SetupSprites()
    {
        CustomisationStorage customisationStorage = null;

        if (ThisCharacter.SerialisedBodyPartCustom == null)
        {
            //TODO : (Max) - Fix SerialisedBodyPartCustom being null on Dummy players
            Logger.LogError($"{gameObject} has spawned with null bodyPart customizations. This error should only appear for Dummy players only.");
            return;
        }

        foreach (var Custom in ThisCharacter.SerialisedBodyPartCustom)
        {
            if (livingHealthMasterBase.name == Custom.path)
            {
                customisationStorage = Custom;
                break;
            }
        }

        if (customisationStorage != null)
        {
            BodyPartDropDownOrgans.OnPlayerBodyDeserialise(null, customisationStorage.Data, livingHealthMasterBase);
        }


        foreach (var bodyPart in livingHealthMasterBase.BodyPartList)
        {
            SubSetBodyPart(bodyPart, "");
        }

        PlayerHealthData SetRace = null;

        foreach (var Race in RaceSOSingleton.Instance.Races)
        {
            if (Race.name == ThisCharacter.Species)
            {
                SetRace = Race;
            }
        }

        List <IntName> ToClient = new List <IntName>();

        foreach (var Customisation in SetRace.Base.CustomisationSettings)
        {
            ExternalCustomisation externalCustomisation = null;
            foreach (var EC in ThisCharacter.SerialisedExternalCustom)
            {
                if (EC.Key == Customisation.CustomisationGroup.name)
                {
                    externalCustomisation = EC;
                }
            }

            if (externalCustomisation == null)
            {
                continue;
            }

            var SpriteHandlerNorder = Spawn.ServerPrefab(ToInstantiateSpriteCustomisation.gameObject, null, CustomisationSprites.transform)
                                      .GameObject.GetComponent <SpriteHandlerNorder>();
            SpriteHandlerNorder.transform.localPosition = Vector3.zero;
            SpriteHandlerNorder.name = Customisation.CustomisationGroup.ThisType.ToString();

            var newone = new IntName();
            newone.Int =
                CustomNetworkManager.Instance.IndexLookupSpawnablePrefabs[ToInstantiateSpriteCustomisation.gameObject];

            newone.Name = Customisation.CustomisationGroup.ThisType.ToString();
            ToClient.Add(newone);

            OpenSprites.Add(SpriteHandlerNorder);
            //SubSetBodyPart
            foreach (var Sprite_s in Customisation.CustomisationGroup.PlayerCustomisations)
            {
                if (Sprite_s.Name == externalCustomisation.SerialisedValue.SelectedName)
                {
                    SpriteHandlerNorder.SpriteHandler.SetSpriteSO(Sprite_s.SpriteEquipped);
                    SpriteHandlerNorder.SetSpriteOrder(new SpriteOrder(Customisation.CustomisationGroup.SpriteOrder));
                    newone.Data = JsonConvert.SerializeObject(new SpriteOrder(SpriteHandlerNorder.SpriteOrder));
                    Color setColor = Color.black;
                    ColorUtility.TryParseHtmlString(externalCustomisation.SerialisedValue.Colour, out setColor);
                    setColor.a = 1;
                    SpriteHandlerNorder.SpriteHandler.SetColor(setColor);
                }
            }
        }
        GetComponent <RootBodyPartController>().PlayerSpritesData = JsonConvert.SerializeObject(ToClient);

        SetSurfaceColour();
        OnDirectionChange(directional.CurrentDirection);
    }
示例#3
0
    public void SetupsSprites()
    {
        foreach (var Root in livingHealthMasterBase.RootBodyPartContainers)
        {
            CustomisationStorage customisationStorage = null;
            foreach (var Custom in ThisCharacter.SerialisedBodyPartCustom)
            {
                if (Root.name == Custom.path)
                {
                    customisationStorage = Custom;
                    break;
                }
            }

            if (customisationStorage != null)
            {
                BodyPartDropDownOrgans.OnPlayerBodyDeserialise(null, Root, customisationStorage.Data,
                                                               livingHealthMasterBase);
            }

            foreach (var Limb in Root.ContainsLimbs)
            {
                SubSetBodyPart(Limb, "");
            }
        }

        PlayerHealthData SetRace = null;

        foreach (var Race in RaceSOSingleton.Instance.Races)
        {
            if (Race.name == ThisCharacter.Species)
            {
                SetRace = Race;
            }
        }

        List <uint> ToClient = new List <uint>();

        foreach (var Customisation in SetRace.Base.CustomisationSettings)
        {
            ExternalCustomisation externalCustomisation = null;
            foreach (var EC in ThisCharacter.SerialisedExternalCustom)
            {
                if (EC.Key == Customisation.CustomisationGroup.name)
                {
                    externalCustomisation = EC;
                }
            }

            if (externalCustomisation == null)
            {
                continue;
            }

            var SpriteHandlerNorder =
                Spawn.ServerPrefab(ToInstantiateSpriteCustomisation.gameObject, null, CustomisationSprites.transform)
                .GameObject.GetComponent <SpriteHandlerNorder>();
            SpriteHandlerNorder.transform.localPosition = Vector3.zero;
            ToClient.Add(SpriteHandlerNorder.GetComponent <NetworkIdentity>().netId);
            OpenSprites.Add(SpriteHandlerNorder);
            //SubSetBodyPart
            foreach (var Sprite_s in Customisation.CustomisationGroup.PlayerCustomisations)
            {
                if (Sprite_s.Name == externalCustomisation.SerialisedValue.SelectedName)
                {
                    SpriteHandlerNorder.SpriteHandler.SetSpriteSO(Sprite_s.SpriteEquipped);
                    SpriteHandlerNorder.SetSpriteOrder(new SpriteOrder(Customisation.CustomisationGroup.SpriteOrder));
                    Color setColor = Color.black;
                    ColorUtility.TryParseHtmlString(externalCustomisation.SerialisedValue.Colour, out setColor);
                    setColor.a = 1;
                    SpriteHandlerNorder.SpriteHandler.SetColor(setColor);
                }
            }
        }
        GetComponent <RootBodyPartController>().PlayerSpritesData = JsonConvert.SerializeObject(ToClient);

        SetSurfaceColour();
        OnDirectionChange(directional.CurrentDirection);
    }