public override ActionEventData HandleMouse(MouseData mouse, IDataRogueControlRenderer renderer, ISystemContainer systemContainer) { if (mouse.IsLeftClick) { var mapEditor = systemContainer.ActivitySystem.MapEditorActivity; var command = renderer.StringFromMouseData(this, systemContainer, mouse); if (command == "Primary Cell") { mapEditor.ShowChangePrimaryCellDialogue(); } if (command == "Secondary Cell") { mapEditor.ShowChangeSecondaryCellDialogue(); } if (command == "Default Cell") { mapEditor.ShowChangeDefaultCellDialogue(); } } return(null); }
protected IDataRogueControlRenderer GetCachedRenderer(List <IDataRogueControlRenderer> controlRenderers) { if (_cachedRenderer == null) { _cachedRenderer = controlRenderers.Single(r => r.DisplayType == GetType()); } return(_cachedRenderer); }
public override ActionEventData HandleMouse(MouseData mouse, IDataRogueControlRenderer renderer, ISystemContainer systemContainer) { MapCoordinate mapCoordinate = GetMapCoordinate(mouse, systemContainer); systemContainer.ControlSystem.HoveredCoordinate = mapCoordinate; var player = systemContainer.PlayerSystem.Player; if (mouse.IsLeftClick && systemContainer.TimeSystem.WaitingForInput && CanAutowalkToCoordinate(systemContainer, mapCoordinate)) { var playerLocation = systemContainer.PositionSystem.CoordinateOf(player); var map = systemContainer.MapSystem.MapCollection[systemContainer.RendererSystem.CameraPosition.Key]; var path = _pathfindingAlgorithm.Path(map, playerLocation, mapCoordinate); if (path != null) { var action = new ActionEventData { Action = ActionType.FollowPath, Parameters = string.Join(";", path.Select(m => m.ToString())) }; return(action); } } if (mouse.IsRightClick && systemContainer.TimeSystem.WaitingForInput) { var map = systemContainer.MapSystem.MapCollection[systemContainer.RendererSystem.CameraPosition.Key]; if (map.SeenCoordinates.Contains(mapCoordinate)) { var playerFov = FOVHelper.CalculatePlayerFov(systemContainer); var entities = systemContainer.PositionSystem.EntitiesAt(mapCoordinate); if (!playerFov.Contains(mapCoordinate)) { entities = entities.Where(e => e.Has <Memorable>()).ToList(); } IEntity entityToShow = entities.OrderByDescending(e => e.Has <Appearance>() ? e.Get <Appearance>().ZOrder : int.MinValue).First(); var action = new ActionEventData { Action = ActionType.Examine, Parameters = entityToShow.EntityId.ToString() }; return(action); } } return(null); }
public override ActionEventData HandleMouse(MouseData mouse, IDataRogueControlRenderer renderer, ISystemContainer systemContainer) { var mapEditor = systemContainer.ActivitySystem.MapEditorActivity; if ((mouse.LeftButtonDown && !mapEditor.CurrentTool.RequiresClick) || mouse.IsLeftClick) { MapCoordinate mapCoordinate = systemContainer.RendererSystem.Renderer.GetMapEditorMapCoordinateFromMousePosition(systemContainer.RendererSystem.CameraPosition, mouse.X, mouse.Y); mapEditor.ApplyTool(mapCoordinate, mapEditor.PrimaryCell, mapEditor.SecondaryCell); } if ((mouse.RightButtonDown && !mapEditor.CurrentTool.RequiresClick) || mouse.IsRightClick) { MapCoordinate mapCoordinate = systemContainer.RendererSystem.Renderer.GetMapEditorMapCoordinateFromMousePosition(systemContainer.RendererSystem.CameraPosition, mouse.X, mouse.Y); mapEditor.ApplyTool(mapCoordinate, mapEditor.SecondaryCell, mapEditor.PrimaryCell); } return(null); }
public void Render(ISystemContainer systemContainer, IActivity activity, int activityIndex) { if (activity.RendersEntireSpace) { _console.Clear(); } var playerFov = systemContainer.ActivitySystem.GameplayActivity.Running ? FOVHelper.CalculatePlayerFov(systemContainer) : null; DoLayout(systemContainer, activity, playerFov); foreach (var control in activity.Controls) { control.SetActivityIndex(activityIndex); IDataRogueControlRenderer controlRenderer = GetRendererFor(control); controlRenderer.Paint(_console, control, systemContainer, playerFov); } }
public override ActionEventData HandleMouse(MouseData mouse, IDataRogueControlRenderer renderer, ISystemContainer systemContainer) { if (mouse.IsLeftClick) { var hoveredSkill = renderer.EntityFromMouseData(this, systemContainer, mouse); if (hoveredSkill != null) { return(new ActionEventData { Action = ActionType.UseSkill, IsAction = true, Parameters = hoveredSkill.Get <Prototype>().Name }); } } return(null); }
public override ActionEventData HandleMouse(MouseData mouse, IDataRogueControlRenderer renderer, ISystemContainer systemContainer) { if (mouse.IsLeftClick) { var tool = renderer.EntityFromMouseData(this, systemContainer, mouse); if (tool != null) { return(new ActionEventData { Action = ActionType.ChangeMapEditorTool, IsAction = false, Parameters = tool.DescriptionName }); } } return(null); }
public virtual ActionEventData HandleMouse(MouseData mouse, IDataRogueControlRenderer renderer, ISystemContainer systemContainer) => null;