public void Awake() { instance = this; ReadConfig(); Assets.PopulateAssets(); RegisterStates(); RegisterCharacter(); ItemDisplays.RegisterDisplays(); Skins.RegisterSkins(); RegisterProjectiles(); CreateMaster(); }
public static void RegisterSkins() { GameObject bodyPrefab = GrovetenderPlugin.myCharacter; GameObject model = bodyPrefab.GetComponentInChildren <ModelLocator>().modelTransform.gameObject; CharacterModel characterModel = model.GetComponent <CharacterModel>(); if (model.GetComponent <ModelSkinController>()) { GrovetenderPlugin.Destroy(model.GetComponent <ModelSkinController>()); } ModelSkinController skinController = model.AddComponent <ModelSkinController>(); ChildLocator childLocator = model.GetComponent <ChildLocator>(); SkinnedMeshRenderer mainRenderer = Reflection.GetFieldValue <SkinnedMeshRenderer>(characterModel, "mainSkinnedMeshRenderer"); LanguageAPI.Add("GROVETENDERBODY_DEFAULT_SKIN_NAME", "Default"); LoadoutAPI.SkinDefInfo skinDefInfo = default(LoadoutAPI.SkinDefInfo); skinDefInfo.BaseSkins = Array.Empty <SkinDef>(); skinDefInfo.ProjectileGhostReplacements = new SkinDef.ProjectileGhostReplacement[0]; skinDefInfo.MinionSkinReplacements = new SkinDef.MinionSkinReplacement[0]; skinDefInfo.GameObjectActivations = Array.Empty <SkinDef.GameObjectActivation>(); skinDefInfo.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.09f, 0.03f, 0.03f), new Color(0.039f, 0.039f, 0.078f), new Color(0.61f, 0.59f, 0.5f), new Color(0.9f, 0.9f, 0.9f)); skinDefInfo.MeshReplacements = new SkinDef.MeshReplacement[0]; /*{ * new SkinDef.MeshReplacement * { * renderer = mainRenderer, * mesh = mainRenderer.sharedMesh * } * };*/ skinDefInfo.Name = "GROVETENDERBODY_DEFAULT_SKIN_NAME"; skinDefInfo.NameToken = "GROVETENDERBODY_DEFAULT_SKIN_NAME"; skinDefInfo.RendererInfos = characterModel.baseRendererInfos; skinDefInfo.RootObject = model; skinDefInfo.UnlockableName = ""; SkinDef defaultSkin = LoadoutAPI.CreateNewSkinDef(skinDefInfo); skinController.skins = new SkinDef[1] { defaultSkin }; }