예제 #1
0
        public Game1()
        {
            this._graphics             = new GraphicsDeviceManager(this);
            this.Content.RootDirectory = "Content";

            this.Window.Title   = "Move on map 3d";
            this.IsMouseVisible = true;

            this._componentInputs             = new ComponentInputs(this);
            this._componentInputs.UpdateOrder = 1;
            this.Components.Add(this._componentInputs);

            this._componentMap             = new ComponentMap(this, this._componentInputs);
            this._componentMap.UpdateOrder = 2;
            this.Components.Add(this._componentMap);

            this._componentRender             = new ComponentRender(this, this._componentMap);
            this._componentRender.UpdateOrder = 3;
            this.Components.Add(this._componentRender);
        }
예제 #2
0
 public virtual ComponentRender TransformRender(SegmentTile tile, TerrainComponent component, ComponentRender render)
 {
     return(render);
 }
예제 #3
0
        public override ComponentRender TransformRender(SegmentTile tile, TerrainComponent component, ComponentRender render)
        {
            //is there a better way to do this?
            var wallComponent        = tile.GetComponents <WallComponent>();
            var floorComponent       = tile.GetComponents <FloorComponent>();
            var obstructionComponent = tile.GetComponents <ObstructionComponent>();
            var counterComponent     = tile.GetComponents <CounterComponent>();
            var altarComponent       = tile.GetComponents <AltarComponent>();

            if (!floorComponent.Any() && !wallComponent.Any(wall => wall.IsIndestructible) && !obstructionComponent.Any() && !counterComponent.Any() && !altarComponent.Any())
            {
                render.Color = Color.Red;                 // statics that are walkable without floors to go along with them.
            }
            if (render.Color.Equals(Color.Black))
            {
                render.Color = Color.DimGray;
            }

            return(render);
        }
예제 #4
0
        public override ComponentRender TransformRender(SegmentTile tile, TerrainComponent component, ComponentRender render)
        {
            var floorComponents = tile.GetComponents <FloorComponent>();

            if (component is WallComponent wall && wall.IsIndestructible)
            {
                if (floorComponents.Any())
                {
                    render.Color = Color.Yellow;
                }
                else
                {
                    render.Color = Color.Red;
                }
            }
예제 #5
0
        public override ComponentRender TransformRender(SegmentTile tile, TerrainComponent component, ComponentRender render)
        {
            var wallComponent = tile.GetComponents <WallComponent>();

            if (wallComponent.Any(wall => wall.IsIndestructible))
            {
                render.Color = Color.Red;
            }

            if (render.Color.Equals(Color.Black))
            {
                render.Color = Color.DimGray;
            }

            return(render);
        }