コード例 #1
0
 public GameMap(Room room, MapModel mapModel)
 {
     Room             = room;
     MapModel         = mapModel;
     DiagonalEnabled  = true;
     CoordinatedItems = new Dictionary <Point, List <RoomItem> >();
     CoordinatedUsers = new Dictionary <Point, List <RoomUser> >();
     Map           = new SqState[MapModel.MaxX, MapModel.MaxY];
     ItemHeightMap = new double[MapModel.MaxX, MapModel.MaxY];
 }
コード例 #2
0
        internal SquarePoint(int pX, int pY, int pTargetX, int pTargetY, SqState SquareData, bool pOverride)
        {
            mX          = pX;
            mY          = pY;
            mSquareData = SquareData;
            mInUse      = true;
            mOverride   = pOverride;

            mDistance = 0.0;
            mLastStep = (pX == pTargetX && pY == pTargetY);

            mDistance = DreamPathfinder.GetDistance(pX, pY, pTargetX, pTargetY);
        }
コード例 #3
0
 public RoomUser(int userId, int x, int y, double z, int rot, User user, Room room)
 {
     this.UserId         = userId;
     this.X              = x;
     this.Y              = y;
     this.Z              = z;
     this.Rot            = rot;
     this.TargetX        = x;
     this.TargetY        = y;
     this.SetX           = x;
     this.SetY           = y;
     this.SetZ           = z;
     this.IsWalking      = false;
     this.User           = user;
     this.Room           = room;
     this.Statusses      = new Dictionary <string, string>();
     this.CurrentSqState = SqState.WalkableLast;
     this.SetStep        = false;
 }
コード例 #4
0
        internal void GenerateMaps()
        {
            Map           = new SqState[MapModel.MaxX, MapModel.MaxY];
            ItemHeightMap = new double[MapModel.MaxX, MapModel.MaxY];

            for (int i = 0; i < MapModel.MaxX; i++)
            {
                for (int j = 0; j < MapModel.MaxY; j++)
                {
                    SetDefaultValue(i, j);
                }
            }

            List <RoomUser> roomUsers;

            lock (Room.Players)
            {
                roomUsers = Room.Players.Values.ToList();
            }

            foreach (RoomUser user in roomUsers)
            {
                user.CurrentSqState = Map[user.X, user.Y];
                Map[user.X, user.Y] = SqState.Closed;
            }

            List <RoomItem> roomItems;

            lock (Room.RoomItemManager.RoomItems)
            {
                roomItems = Room.RoomItemManager.RoomItems.Values.ToList();
            }

            foreach (RoomItem item in roomItems)
            {
                AddItemToMap(item);
            }

            Map[MapModel.DoorX, MapModel.DoorY] = SqState.WalkableLast;
        }