// Update is called once per frame /* * void Update () { * if (Input.GetMouseButton(0)) * { * HandleInputCreate(); * } * if (Input.GetMouseButton(1)) * { * HandleInputDestory(); * } * } * */ public void HandleInput(Ray inputRay, float createOrDestoy) { //Ray inputRay = Camera.main.ScreenPointToRay(Input.mousePosition); //print("cr/de" + createOrDestoy); RaycastHit hit; if (Physics.Raycast(inputRay, out hit)) { print(hit.transform.name); PlanetObjectsHandler objects = hit.collider.GetComponent <PlanetObjectsHandler>(); if (objects) { //print("has handler"); Vector3 point = hit.point; point += hit.normal; if (createOrDestoy > 0) { objects.AddObject(point, hit.normal, size, radius * createOrDestoy, activeCreate); } else { objects.RemoveObject(point, hit.normal, size, radius * -createOrDestoy, activeCreate); } } } }
void HandleInputDestory() { Ray inputRay = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(inputRay, out hit)) { PlanetObjectsHandler objects = hit.collider.GetComponent <PlanetObjectsHandler>(); if (objects) { Vector3 point = hit.point; point += hit.normal; objects.RemoveObject(point, hit.normal, size, radius, activeCreate); } } }
public void Build() { poh = GetComponent <PlanetObjectsHandler>(); cVtex = GetComponent <ColorVertexes>(); deformingMesh = GetComponent <MeshFilter>().mesh; updatingColors = deformingMesh.colors; originalVerices = deformingMesh.vertices; displacedVertices = new Vector3[originalVerices.Length]; for (int i = 0; i < originalVerices.Length; i++) { displacedVertices[i] = originalVerices[i]; } vertexVelocities = new Vector3[originalVerices.Length]; colliderMesh = GetComponent <MeshCollider>(); built = true; //InvokeRepeating("DoAnUpdate", 0f, 0.05f); }
private void ProcessEvent(EventItem e) { switch (e.theEvent) { case Event.moveTo: //keep moving if not at target if (!AtPos(e.happenTo.transform.position, e.target)) { e.happenTo.MoveTo(e.target); //EnqueueEvent(e); } else { e.happenTo.state = Event.idle; } break; case Event.born: //keep moving if not at target if (!AtPos(e.happenTo.transform.position, e.target)) { e.happenTo.MoveTo(e.target); //EnqueueEvent(e); } else { e.happenTo.state = Event.idle; } break; case Event.idle: e.happenTo.SetText("What is the meaning of life..."); break; case Event.dead: print(e.happenTo.name + " died"); GameManager.instance.currentSystem.GetComponent <SystemAttributes>().systemCurrency += e.happenTo.belief; AIManager.instance.NPCList.Remove(e.happenTo); Destroy(e.happenTo.gameObject); break; case Event.build: e.happenTo.SetText("time to build"); //print(GameManager.instance.player.GetComponent<PlayerAttributes>().orbiting.name); PlanetObjectsHandler poh = GameManager.instance.player.GetComponent <PlayerAttributes>().orbiting.GetComponent <PlanetObjectsHandler>(); GameObject t = poh.AddSingle(e.happenTo.transform.position, Vector3.forward, 100f, 10f, PrefabManager.instance.NPCHouse); //e.happenTo.state = Event.houseBuilt; if (t != null) { e.happenTo.SetText("what a lovely home"); e.happenTo.home = t; //go to the house e.happenTo.state = Event.houseBuilt; e.happenTo.targetPos = t.transform.position; e.happenTo.belief += e.happenTo.fickleness * 10; } else { e.happenTo.belief -= e.happenTo.fickleness; } break; case Event.reproduce: if (e.happenTo.home == null) // || e.happenTo.partner == null) { e.happenTo.SetText("Should build a house before kids"); e.happenTo.state = Event.idle; //EnqueueEvent(new EventItem(e.happenTo, Event.idle, e.happenTo.home)); break; } if (!AtPos(e.happenTo.transform.position, e.happenTo.home.transform.position)) { e.happenTo.SetText("Bout to get me that PUHSAAHHH"); e.happenTo.MoveTo(e.happenTo.home.transform.position); } else //if (AtPos(e.happenTo.partner.transform.localPosition, e.happenTo.home.transform.position)) { { e.happenTo.SetText("I Did a Birth"); e.happenTo.state = Event.idle; e.happenTo.belief += e.happenTo.fickleness * 5; AIManager.instance.BirthChild(e.happenTo); } break; case Event.fight: if (!AtPos(e.happenTo.transform.localPosition, e.target)) { e.happenTo.MoveTo(e.target); } else { if ((e.happenTo.attacking.health -= e.happenTo.fightingSkill) <= 0) { e.happenTo.attacking = null; e.happenTo.state = Event.idle; } } break; default: break; } return; }