예제 #1
0
        public IRoom ToItem(AGSSerializationContext context)
        {
            TypedParameter idParam    = new TypedParameter(typeof(string), ID);
            TypedParameter edgesParam = new TypedParameter(typeof(IAGSEdges), Edges.ToItem(context));
            IRoom          room       = context.Resolver.Container.Resolve <IRoom>(idParam, edgesParam);

            room.ShowPlayer = ShowPlayer;
            room.Background = Background.ToItem(context);
            foreach (var obj in Objects)
            {
                room.Objects.Add(obj.ToItem(context));
            }
            room.Properties.CopyFrom(Properties.ToItem(context));
            if (Areas != null)
            {
                foreach (var area in Areas)
                {
                    room.Areas.Add(area.ToItem(context));
                }
            }
            IAGSEdges edges = room.Edges as IAGSEdges;

            if (edges != null)
            {
                edges.FromEdges(Edges.ToItem(context));
            }
            room.BackgroundColor = BackgroundColor == null ? (Color?)null : Color.FromHexa(BackgroundColor.Value);
            return(room);
        }
예제 #2
0
		public void Init()
		{
			_left = new AGSEdge { Value = 100 };
			_right = new AGSEdge { Value = 200 };
			_top = new AGSEdge  { Value = 200 };
			_bottom = new AGSEdge { Value = 100 };
			_edges = new AGSEdges (_left, _right, _top, _bottom);
			_mocks = Mocks.Init();
		}
예제 #3
0
#pragma warning restore CS0067

        public AGSRoom(string id, IAGSEdges edges, IGameEvents gameEvents,
                       IRoomEvents roomEvents, IGameState state, ICustomProperties properties,
                       IRoomLimitsProvider roomLimitsProvider)
        {
            _state             = state;
            RoomLimitsProvider = roomLimitsProvider;
            _gameEvents        = gameEvents;
            Events             = roomEvents;
            ID         = id;
            Objects    = new AGSConcurrentHashSet <IObject>();
            Areas      = new AGSBindingList <IArea>(5);
            ShowPlayer = true;
            _edges     = edges;
            Properties = properties;
            gameEvents.OnRepeatedlyExecute.Subscribe(onRepeatedlyExecute);
        }
예제 #4
0
 public void Init()
 {
     _left = new AGSEdge {
         Value = 100
     };
     _right = new AGSEdge {
         Value = 200
     };
     _top = new AGSEdge  {
         Value = 200
     };
     _bottom = new AGSEdge {
         Value = 100
     };
     _edges = new AGSEdges(_left, _right, _top, _bottom);
     _mocks = Mocks.Init();
 }
예제 #5
0
 public AGSRoom(string id, IViewport viewport, IAGSEdges edges, IGameEvents gameEvents,
                IRoomEvents roomEvents, IGameState state, ICustomProperties properties,
                IRoomLimitsProvider roomLimitsProvider)
 {
     _sorter = new RenderOrderSelector {
         Backwards = true
     };
     _state             = state;
     RoomLimitsProvider = roomLimitsProvider;
     _gameEvents        = gameEvents;
     Viewport           = viewport;
     Events             = roomEvents;
     ID         = id;
     Objects    = new AGSConcurrentHashSet <IObject> ();
     Areas      = new List <IArea> ();
     ShowPlayer = true;
     _edges     = edges;
     Properties = properties;
     gameEvents.OnRepeatedlyExecute.Subscribe(onRepeatedlyExecute);
 }