public override void Update(State s, Room room) { bool pushed = false; foreach (Entity entity in room.GetCollidingEntities(this)) { if (entity == room.Diver) { pushed = true; } } if (pushed && !Pressed) { room.Broadcast("buttondown", id, this); this.Pressed = true; } if (!pushed && Pressed) { room.Broadcast("buttonup", id, this); this.Pressed = false; } }
public override void Update(State s, Room room) { diverInInventory = false; foreach (Entity entity in room.GetCollidingEntities<Diver>(this)) { if (room.Diver == entity) { diverInInventory = true; break; } } if (isGUIActive) { if (s.Input.WasPressed(Input.Action.Select)) { isGUIActive = false; room.Diver.Freeze = false; } if (tools.Count != 0) { if (s.Input.WasPressed(Input.Action.Right)) { inventorySelected = (inventorySelected + 1) % tools.Count; } if (s.Input.WasPressed(Input.Action.Left)) { inventorySelected = inventorySelected == 0 ? tools.Count - 1 : inventorySelected - 1; } ITool selectedTool = tools.Count != 0 ? tools[inventorySelected] : null; if (s.Input.WasPressed(Input.Action.Item1)) { if (selectedTool == room.Diver.Tool2) room.Diver.Tool2 = room.Diver.Tool1; room.Diver.Tool1 = selectedTool; } if (s.Input.WasPressed(Input.Action.Item2)) { if (selectedTool == room.Diver.Tool1) room.Diver.Tool1 = room.Diver.Tool2; room.Diver.Tool2 = selectedTool; } } //System.Console.WriteLine("GUI!! " + s.Time.TotalRealTime.Milliseconds); } else { if (s.Input.WasPressed(Input.Action.Select) && diverInInventory) { isGUIActive = true; room.Diver.Freeze = true; } } }