/// <summary> /// Wrapper to draw editors /// </summary> /// <param name="instance"></param> public void drawEditor(StaticInstance instance) { if (instance == null) { return; } if (selectedInstance != instance) { selectedInstance = instance; SetupFields(); SetupVectors(); SetupGizmo(); grassMod = selectedInstance.mesh.GetComponent <GrasColor>(); grassMod2 = selectedInstance.mesh.GetComponent <GrassColor2>(); grasColorEnabled = (grassMod != null); grassColor2Enabled = (grassMod2 != null); origCenter = selectedInstance.groupCenter; origPosition = selectedInstance.transform.localPosition; origRotation = selectedInstance.transform.localEulerAngles; origScale = selectedInstance.ModelScale; } toolRect = GUI.Window(0x004B1E3, toolRect, InstanceEditorWindow, "", UIMain.KKWindow); }
internal static Color GetUnderGroundColor(GrassColor2 selectedMod) { Color underGroundColor; StaticInstance staticInstance = selectedMod.staticInstance; if (KerbalKonstructs.useCam) { underGroundColor = GrasColorCam.instance.GetCameraColor(staticInstance); } else { underGroundColor = GetSurfaceColorPQS(staticInstance.CelestialBody, staticInstance.RefLatitude, staticInstance.RefLongitude); //Texture2D groundTex = GrasColorCam.instance.GetCameraTexture(staticInstance); //if (groundTex != null) //{ // Color textureColor = AverageColor(groundTex.GetPixels()); // Log.Normal("TextureColor: " + textureColor.ToString()); // underGroundColor += textureColor; //} //else //{ // Log.Normal("No Texture received"); //} } Color avColor = GetAverageColor(selectedMod.farGrassTextureName); underGroundColor = underGroundColor.DivideWith(avColor); underGroundColor.a = 1; return(underGroundColor); }
internal static void SelectGrass(GrassColor2 grass) { selectedMod = grass; //selectedMod.matOffset = offset; ReadMod(selectedMod); }
internal static void Open() { KKStyle.Init(); staticInstance = EditorGUI.selectedInstance; staticInstance.HighlightObject(Color.clear); selectedMod = EditorGUI.selectedInstance.mesh.GetComponents <GrassColor2>()[0]; ReadMod(selectedMod); //windowRect = new Rect(CreateBesidesMainwindow(), new Vector2(windowWidth, windowHeight)); content = new List <DialogGUIBase>(); KKTitle(); CreateContent(); CreateMultiOptionDialog(); CreatePopUp(); }
internal static void ReadMod(GrassColor2 mod) { if (mod == null) { Log.UserError("No Grass Mod Found"); return; } NearGrassTexture = mod.nearGrassTexture != null ? mod.nearGrassTextureName : "no texture"; FarGrassTexture = mod.farGrassTexture != null ? mod.farGrassTextureName : "no texture"; TamarcTexture = mod.tarmacTexture != null ? mod.tarmacTextureName : "no texture"; BlendMaskTexture = mod.blendMaskTexture != null ? mod.blendMaskTextureName : "no texture"; NearGrassTiling = mod.nearGrassTiling.ToString(); FarGrassTiling = mod.farGrassTiling.ToString(); BlendDistance = mod.farGrassBlendDistance.ToString(); }
internal static void Open() { KKStyle.Init(); staticInstance = EditorGUI.selectedInstance; selectedMod = GrassEditor.selectedMod; Initialize(); lastTexture = typeof(GrassColor2).GetField(fieldName, BindingFlags.Instance | BindingFlags.NonPublic).GetValue(selectedMod) as string; //windowRect = new Rect(CreateBesidesMainwindow(), new Vector2(windowWidth, windowHeight)); content = new List <DialogGUIBase>(); KKTitle(); CreateContent(); CreateMultiOptionDialog(); CreatePopUp(); }
/// <summary> /// Spawns an Instance of an defined StaticModel /// </summary> /// <param name="model"></param> /// <param name="fOffset"></param> /// <param name="vPosition"></param> /// <param name="fAngle"></param> /// <returns></returns> internal void SpawnInstance(StaticModel model, GroupCenter groupCenter, Vector3 position, Vector3 rotation) { StaticInstance instance = new StaticInstance(); instance.model = model; //instance.mesh = UnityEngine.Object.Instantiate(model.prefab); instance.CelestialBody = FlightGlobals.currentMainBody; instance.groupCenter = groupCenter; instance.Group = groupCenter.Group; instance.transform.position = position; instance.transform.parent = groupCenter.gameObject.transform; instance.RelativePosition = instance.transform.localPosition; instance.Orientation = rotation; if (!Directory.Exists(KSPUtil.ApplicationRootPath + "GameData/" + KerbalKonstructs.newInstancePath)) { Directory.CreateDirectory(KSPUtil.ApplicationRootPath + "GameData/" + KerbalKonstructs.newInstancePath); } instance.configPath = KerbalKonstructs.newInstancePath + "/" + model.name + "-instances.cfg"; instance.configUrl = null; enableColliders = false; enableColliders2 = false; instance.Orientate(); instance.Activate(); KerbalKonstructs.SelectInstance(instance, true); GrassColor2 grassMod = instance.gameObject.GetComponent <GrassColor2>(); if (grassMod != null) { grassMod.UpdateCallBack(StaticsEditorGUI.defaultGrassPreset); } }
internal static void SelectGrass(GrassColor2 grass) { selectedMod = grass; ReadMod(selectedMod); }