// Start is called before the first frame update void Start() { planet = gameObject.GetComponent <MotherPlanet>(); toggledTxtColor = new Color(1.0f, 1.0f, 1.0f); untoggledTxtColor = new Color(0.5f, 0.5f, 0.5f); toggledColor = new Color(0.1f, 0.0f, 0.7f); untoggledColor = new Color(0.2f, 0.2f, 0.5f); }
public void CollectCraters(MotherPlanet planet) { List <CraterGenerator.Crater> oldCL = planet.shapeGenerator.craterGenerator.craterList; for (int i = 0; i < oldCL.Count; i++) { craterList.Add(new _crater(oldCL[i].center, oldCL[i].radius, oldCL[i].floor, oldCL[i].smoothness, oldCL[i].impact, oldCL[i].rimSteepness, oldCL[i].rimWidth)); } }
public _planet(MotherPlanet planet, int id) { this.id = id; ShapeSettings shapeSettings; ColorSettings colorSettings; craterList = new List <_crater>(); string[] noisePoints = planet.shapeGenerator.getMaskKeys(); float[] noiseValues = planet.shapeGenerator.getMaskValues(); shapeSettings = planet.shapeGenerator.settings; shape = new _shapeSettings(shapeSettings.radius, shapeSettings.zeroLvlIsOcean, shapeSettings.noiseLayers, noisePoints, noiseValues); colorSettings = planet.colorGenerator.settings; color = new _colorSettings(colorSettings.planetMaterial, colorSettings.biomeColorSettings); CollectCraters(planet); }
void Start() { planet = gameObject.GetComponent <MotherPlanet>(); timeToGo = Time.fixedTime + 0.1f; craterPlacement = false; paintAudioPlaying = false; GameObject paGO = GameObject.Find("PaintPlanetAudio"); if (paGO == null) { addSound(); } else { paSource = paGO.GetComponent <AudioSource>(); } }
void Update() { if (save) { if (sceneIndex == 2) { //Save one planet to newPlanet.data SaveLoadStarSystem.SaveStarSystem(true, "/newPlanet.data"); save = false; } else if (sceneIndex == 1) { //Save the entire system to system.data if (saveSpecific) { SaveLoadStarSystem.SaveSpecificStarSystem(false, systemName + ".data"); saveSpecific = false; } else { SaveLoadStarSystem.SaveStarSystem(false, "/system.data"); if (!firstGenSystemSaved) { firstGenSystemSaved = true; } } save = false; } } if (load) { if (sceneIndex == 1) { //Load the entire system from system.data SystemSimulationData data; if (loadSpecific) { data = SaveLoadStarSystem.LoadSavedStarSystem(systemName); loadSpecific = false; } else { if (firstGenSystemSaved) { data = SaveLoadStarSystem.LoadStarSystem(false); } else { data = null; } load = false; } if (data != null) { //CelestialObject.DestroyAll(); var planets = FindObjectsOfType <CelestialObject>(); foreach (CelestialObject co in planets) { if (!co.staticBody) { Destroy(co.gameObject); } } int rocky_i = 0; int gasy_i = 0; GameObject parent = GameObject.Find("SceneObjects"); for (int i = 0; i < data.planetCount; i++) { GameObject obj = getPrefab(data, i); MotherPlanet mp = obj.GetComponentInChildren <MotherPlanet>(); if (mp != null) { mp.GeneratePlanet(); mp.SetShape(data.planetList[rocky_i]); mp.UpdateMesh(); rocky_i += 1; } //GasPlanetShaderMAterialPropertyBlock gp = co.GetComponentInChildren<GasPlanetShaderMAterialPropertyBlock>(); GasPlanetShaderMAterialPropertyBlock gp = obj.GetComponent <GasPlanetShaderMAterialPropertyBlock>(); if (gp != null) { gp.SetMaterial(data.gasPlanetList[gasy_i]); gasy_i += 1; } //obj.GetComponent<SphereCollider>().enabled=false; obj.GetComponent <CelestialObject>().enabled = true; CelestialObject co = obj.GetComponent <CelestialObject>(); //print("position"); //print(data.physicsData[i].position); //print("----------"); co.SetState(data.physicsData[i]); obj.transform.SetParent(parent.transform); } load = false; } else { load = false; Debug.Log("failed to load entire system"); } } } if (loadNewPlanet) { if (sceneIndex == 1) { loadNewPlanet = false; //Load one planet from newPlanet data and p SystemSimulationData data = SaveLoadStarSystem.LoadStarSystem(true); if (data != null) { //CelestialObject.DestroyAll(); int rocky_i = 0; int gasy_i = 0; for (int i = 0; i < data.planetCount; i++) { GameObject obj = getPrefab(data, i); CelestialObject co = GetComponent <CelestialObject>(); if (co != null) { obj.AddComponent(typeof(CelestialObject)); } obj.GetComponent <CelestialObject>().isShot = false; //obj.GetComponent<IcoPlanet>().enabled = true; MotherPlanet mp = obj.GetComponentInChildren <MotherPlanet>(); if (mp != null) { mp.GeneratePlanet(); mp.SetShape(data.planetList[rocky_i]); mp.UpdateMesh(); mp.GenerateColors(); mp.GetComponent <IcoPlanet>().staticBody = false; mp.GetComponent <IcoPlanet>().enabled = true; rocky_i += 1; } GasPlanetShaderMAterialPropertyBlock gp = obj.GetComponentInChildren <GasPlanetShaderMAterialPropertyBlock>(); if (gp != null) { gp.SetMaterial(data.gasPlanetList[gasy_i]); gp.GetComponent <GasPlanetShaderMAterialPropertyBlock>().enabled = true; gasy_i += 1; } string newPlanetName = PlayerPrefs.GetString("NewPlanetName", "Unknown Planet"); obj.GetComponent <CelestialObject>().SetName(newPlanetName); PlayerPrefs.SetString("NewPlanetName", "Unknown Planet"); if (!obj.GetComponent <CelestialObject>().isAsteroid) { obj.GetComponent <CelestialObject>().SetMass(); } GameObject ARSessOrig = GameObject.Find("AR Session Origin"); ARPlacementTrajectory placement = ARSessOrig.GetComponent <ARPlacementTrajectory>(); placement.setGOtoInstantiate(obj); } } } } if (delete) { if (sceneIndex == 1) { SaveLoadStarSystem.DeleteStarSystem(delSystemName); delete = false; } } }
public PlanetData(MotherPlanet planet) { planetData = new _planet(planet, 1); }
void Update() { paintAudioPlaying = false; if (Input.GetKeyUp(KeyCode.LeftControl) || Input.GetKeyUp(KeyCode.C)) { craterPlacement ^= true; } if (!colorsSet) { if (craterBtn != null) { if (craterPlacement) { craterBtn.GetComponent <Image>().color = toggledColor; } else { craterBtn.GetComponent <Image>().color = untoggledColor; } } if (mountainBtn != null && flattenBtn != null) { if (!craterPlacement) { if (noiseType == 0) { mountainBtn.GetComponent <Image>().color = toggledColor; flattenBtn.GetComponent <Image>().color = untoggledColor; } else { mountainBtn.GetComponent <Image>().color = untoggledColor; flattenBtn.GetComponent <Image>().color = toggledColor; } } else { mountainBtn.GetComponent <Image>().color = untoggledColor; flattenBtn.GetComponent <Image>().color = untoggledColor; } } colorsSet = true; } // only do stuff if mouse is down if (Input.GetMouseButton(0) && Input.touchCount < 2) { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { selection = hit.transform; // add cases for your tag and do stuff switch (selection.gameObject.tag) { case "Planet": { MotherPlanet planet = selection.gameObject.GetComponent <MotherPlanet>(); canPaint = (GameObject.Find("2ModifyMeshPlanetColorScreen") != null); if (canPaint) { // Play audio if (!paSource.isPlaying) { paSource.Play(0); } // place crater if (craterPlacement) { planet.shapeGenerator.craterGenerator.PlaceCrater(selection.InverseTransformPoint(hit.point)); } // place noise else { interactionPoint = selection.InverseTransformPoint(hit.point); planet.shapeGenerator.craterGenerator.checkIfCrater(interactionPoint / planet.shapeGenerator.settings.radius); } // update mesh selection.gameObject.GetComponent <MotherPlanet>().UpdateMesh(); paintAudioPlaying = true; } break; } case "GasPlanet": { // Do something Debug.Log("GasPlanet"); break; } } } } if (!paintAudioPlaying) { paSource.Pause(); } }
private void OnEnable(){ planet = (MotherPlanet) target; }
// Start is called before the first frame update void Start() { planet = gameObject.GetComponent <MotherPlanet>(); }
void OnEnable() { if (gameObject.GetComponent <MeshFilter>() == null) { gameObject.AddComponent <MeshFilter>(); meshRenderer = gameObject.AddComponent <MeshRenderer>(); col = gameObject.AddComponent <PolygonCollider2D>(); } else { //gameObject.AddComponent<MeshFilter>(); meshRenderer = gameObject.GetComponent <MeshRenderer>(); col = gameObject.GetComponent <PolygonCollider2D>(); } if (GameObject.FindGameObjectWithTag("Planet")) { planet = FindObjectsOfType <MotherPlanet>()[0]; buttonGroup.SetActive(true); buttonGroupGAS.SetActive(false); foreach (Button child in buttonGroup.GetComponentsInChildren <Button>(true)) { child.gameObject.SetActive(true); biomeButtons.Add(child); child.onClick.AddListener(() => biomeButtonClick(biomeButtons.IndexOf(child))); } } else if (GameObject.FindGameObjectWithTag("GasPlanet")) { gasPlanet = FindObjectsOfType <GasPlanetShaderMAterialPropertyBlock>()[0]; buttonGroup.SetActive(false); buttonGroupGAS.SetActive(true); foreach (Button child in buttonGroupGAS.GetComponentsInChildren <Button>(true)) { child.gameObject.SetActive(true); bandButtons.Add(child); child.onClick.AddListener(() => bandButtonClick(bandButtons.IndexOf(child))); } } GetComponentInChildren <Slider>().onValueChanged.AddListener(intensityOnChange); //GetComponent<MotherPlanet>(); meshRenderer.material = material; mesh = new Mesh(); GetComponent <MeshFilter>().mesh = mesh; vertices = new Vector3[] { new Vector3(0, 0, 0), new Vector3(0.5f, 0.866025404f, 0) * size, new Vector3(1, 0, 0) * size }; triangles = new[] { 0, 1, 2 }; mesh.vertices = vertices; mesh.triangles = triangles; mesh.RecalculateNormals(); Vector2[] uvs = new [] { new Vector2(0, 0), new Vector2(1, 0.5f), new Vector2(0, 1) }; mesh.uv = uvs; // set handle sprite handle = this.transform.GetChild(0).gameObject; handle.transform.localPosition = new Vector3(2, 1, handle.transform.localPosition.z); handleInitZ = handle.transform.localPosition.z; for (int i = 0; i < 4; i++) { bandPos[i] = handle.transform.localPosition; } // create shape of collider colPoints = new Vector2[3]; for (int i = 0; i < 3; i++) { colPoints[i] = new Vector2(vertices[i].x, vertices[i].y); } col.pathCount = 1; col.SetPath(0, colPoints); for (int i = 0; i < 3; i++) { vertices[i] = mesh.vertices[i] / size; } //get initialweights Vector3 initWeights = BaryCentric.getWeights(handle.transform.localPosition / size, vertices); for (int i = 0; i < 4; i++) { bandWeights[i] = initWeights; bandIntensity[i] = intensityLevel; } }