Exemple #1
0
 public PriorityLayer(PriorityGrid grid, SpatialPriority priority, Color color)
 {
     _priority = priority;
     _grid     = grid;
     Color     = color;
     _drawer   = new CellBoolDrawer(this, grid.map.Size.x, grid.map.Size.z);
     Debug.Log($"Creating layer {priority} ({color})");
 }
Exemple #2
0
        public override void ProcessInput(Event ev)
        {
            base.ProcessInput(ev);
            var options = new List <FloatMenuOption>();

            foreach (var _priority in Manager.PriorityLevels)
            {
                var __priority = _priority;
                options.Add(new FloatMenuOption(__priority.ToString(), () => priority = __priority));
            }
            Find.WindowStack.Add(new FloatMenu(options));
        }
        public PriorityGrid(Map map) : base(map)
        {
            grid     = new SpatialPriority[map.Size.x * map.Size.z];
            mapSizeX = map.Size.x;

            // initialize grid at normal.
            for (int i = 0; i < grid.Length; i++)
            {
                grid[i] = SpatialPriority.Normal;
            }

            // create layers
            var priorities = Enum.GetValues(typeof(SpatialPriority)).Cast <SpatialPriority>();

            _layers = new List <PriorityLayer>();
            foreach (var priority in priorities)
            {
                _layers.Add(new PriorityLayer(this, priority,
                                              priority == SpatialPriority.Normal
                                                    ? new Color(0, 0, 0, 0)
                                                    : Colour(priority)));
            }
        }
 public static Texture2D Icon(SpatialPriority priority) => _priorityIcons[(int)priority];
 public static Color Colour(SpatialPriority priority) => _colors[(int)priority];