public void SetupSprites() { CustomisationStorage customisationStorage = null; if (ThisCharacter.SerialisedBodyPartCustom == null) { //TODO : (Max) - Fix SerialisedBodyPartCustom being null on Dummy players Logger.LogWarning($"{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.PlayerBodyDeserialise(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 Net = SpriteHandlerManager.GetRecursivelyANetworkBehaviour(this.gameObject); var SpriteHandlerNorder = Instantiate(ToInstantiateSpriteCustomisation.gameObject, CustomisationSprites.transform) .GetComponent <SpriteHandlerNorder>(); SpriteHandlerManager.UnRegisterHandler(Net, SpriteHandlerNorder.SpriteHandler); SpriteHandlerNorder.transform.localPosition = Vector3.zero; SpriteHandlerNorder.name = Customisation.CustomisationGroup.ThisType.ToString(); SpriteHandlerManager.RegisterHandler(Net, SpriteHandlerNorder.SpriteHandler); 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); }
public void SetupSprites() { CustomisationStorage customisationStorage = null; 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, ""); //TODO: horrible, remove -- organ prefabs have bodyparts foreach (var organ in bodyPart.OrganList) { var bodyPartOrgan = organ.GetComponent <BodyPart>(); SubSetBodyPart(bodyPartOrgan, $"/{bodyPart.name}"); } } 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); }