// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (Input.GetMouseButtonDown(0)) { // Only one GO could be under pointer GameObject boiler_go = boilers.First(); if (boiler_go != null) { // Check if the hero is near to the boiler (only hero can produce this component thanks to Unity Physics layers) Triggered3D triggered = boiler_go.GetComponent <Triggered3D> (); if (triggered != null) { ComponentMonitoring cm = boiler_go.GetComponent <ComponentMonitoring> (); Boiler boiler = boiler_go.GetComponent <Boiler> (); if (boiler.isOn) { MonitoringManager.trace(cm, "turnOff", MonitoringManager.Source.PLAYER); } else { MonitoringManager.trace(cm, "turnOn", MonitoringManager.Source.PLAYER); } // Check if boiler is on OR boiler is not constrained OR the constraint is ok if (boiler.isOn || boiler.constraint == null || boiler.constraint.activeInHierarchy) { Animator anim = boiler_go.GetComponent <Animator> (); boiler.isOn = !boiler.isOn; anim.SetBool("isOn", boiler.isOn); } } } } }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (Input.GetMouseButtonDown(0) && exit_GO.GetComponent <PointerOver>() != null) { ComponentMonitoring monitor = exit_GO.GetComponent <ComponentMonitoring> (); // Check if hero is near to exit (only hero can produce this component thanks to Unity Physics layers) Triggered3D triggered = exit_GO.GetComponent <Triggered3D> (); if (triggered != null) { MonitoringManager.trace(monitor, "perform", MonitoringManager.Source.PLAYER); GameObjectManager.setGameObjectState(endScreen_GO, true); foreach (FSystem sys in FSystemManager.fixedUpdateSystems()) { sys.Pause = true; } foreach (FSystem sys in FSystemManager.lateUpdateSystems()) { sys.Pause = true; } foreach (FSystem sys in FSystemManager.updateSystems()) { sys.Pause = true; } } } }
private void onEnterRoom(GameObject go) { ComponentMonitoring monitor = go.GetComponent <ComponentMonitoring> (); MonitoringManager.trace(monitor, "turnOn", MonitoringManager.Source.PLAYER); id2GO.Add(go.GetInstanceID(), go); }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (Input.GetMouseButtonDown(0)) { // Only one GO is under pointer GameObject door_GO = doors.First(); if (door_GO != null) { // Check if hero is near to the door (only hero can produce this component thanks to Unity Physics layers) Triggered3D triggered = door_GO.GetComponent <Triggered3D> (); if (triggered != null) { Door door = door_GO.GetComponent <Door> (); ComponentMonitoring monitor = door_GO.GetComponent <ComponentMonitoring> (); if (door.isOpen) { MonitoringManager.trace(monitor, "turnOff", MonitoringManager.Source.PLAYER); } else { MonitoringManager.trace(monitor, "turnOn", MonitoringManager.Source.PLAYER); } // Check if the door is constrained if (door.constraint == null || door.constraint.activeInHierarchy) { Animator anim = door_GO.GetComponentInParent <Animator> (); door.isOpen = !door.isOpen; anim.SetBool("isOpen", door.isOpen); } } } } }
private void onExitRoom(GameObject go) { ComponentMonitoring monitor = go.GetComponent <ComponentMonitoring> (); // We check this game object still contains a ComponentMonitoring if (monitor != null) { MonitoringManager.trace(monitor, "turnOff", MonitoringManager.Source.PLAYER); } }
private void onExitRoom(int goId) { GameObject go; if (id2GO.TryGetValue(goId, out go)) { ComponentMonitoring monitor = go.GetComponent <ComponentMonitoring> (); // We check this game object still contains a ComponentMonitoring if (monitor != null) { MonitoringManager.trace(monitor, "turnOff", MonitoringManager.Source.PLAYER); } id2GO.Remove(goId); } }
public TemperatureManager() { if (Application.isPlaying) { temp_GO = temperature.First(); if (temp_GO != null) { temp = temp_GO.GetComponent <Temperature> (); } else { Debug.Log("TemperatureManager: Warning!!! no temperature in this scene on start."); } boiler_GO = boilers.First(); if (boiler_GO != null) { boiler = boiler_GO.GetComponent <Boiler> (); } else { Debug.Log("TemperatureManager: Warning!!! no boiler in this scene on start."); } iceCollider_GO = iceCollider.First(); if (iceCollider_GO == null) { Debug.Log("TemperatureManager: Warning!!! no iceCollider in this scene on start."); } iceMonitor_GO = iceMonitor_F.First(); if (iceMonitor_GO != null) { iceMonitor = iceMonitor_GO.GetComponent <ComponentMonitoring> (); } else { Debug.Log("TemperatureManager: Warning!!! no iceMonitor in this scene on start."); } puddle_GO = puddle.First(); if (puddle_GO == null) { Debug.Log("TemperatureManager: Warning!!! no puddle in this scene on start."); } } }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (Input.GetMouseButtonDown(0)) { // Only one GO could be under the pointer // Check if player clics on a GameObject near to the hero GameObject go = inGameObjects.First(); if (go != null) { Takable item = go.GetComponent <Takable> (); ComponentMonitoring cm = go.GetComponent <ComponentMonitoring> (); // move item to inventory GameObjectManager.setGameObjectState(item.linkedWith, true); GameObjectManager.setGameObjectState(go, false); // trace this action MonitoringManager.trace(cm, "perform", MonitoringManager.Source.PLAYER); } } }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { if (Input.GetMouseButtonDown(0)) { // Only one GO is under pointer GameObject focused_GO = inInventoryObjectsFocused.First(); if (focused_GO != null) { bool alreadySelected = false; // Reset selected items, only one selection is possible GameObject item = itemSelected.First(); if (item != null) { GameObjectManager.removeComponent <CurrentSelection> (item); // Get item monitor ComponentMonitoring cmItem = item.GetComponent <ComponentMonitoring>(); if (item.GetInstanceID() == focused_GO.GetInstanceID()) { alreadySelected = true; // already selected => player deselect the item MonitoringManager.trace(cmItem, "turnOff", MonitoringManager.Source.PLAYER); } else { // player select another item => System action to storeback current item MonitoringManager.trace(cmItem, "turnOff", MonitoringManager.Source.SYSTEM); } } if (!alreadySelected) { // Select current go GameObjectManager.addComponent <CurrentSelection> (focused_GO); // Get its monitor ComponentMonitoring cm = focused_GO.GetComponent <ComponentMonitoring>(); // player select a new item MonitoringManager.trace(cm, "turnOn", MonitoringManager.Source.PLAYER); } } } }