/// <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);
        }
Beispiel #3
0
        internal static void SelectGrass(GrassColor2 grass)
        {
            selectedMod = grass;
            //selectedMod.matOffset = offset;

            ReadMod(selectedMod);
        }
Beispiel #4
0
 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();
 }
Beispiel #5
0
 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);
            }
        }
Beispiel #8
0
 internal static void SelectGrass(GrassColor2 grass)
 {
     selectedMod = grass;
     ReadMod(selectedMod);
 }