Exemplo n.º 1
0
        public bool addRegion(Region.Region _Region, bool _Loaded)
        {
            if (!containsRegion(_Region.Id))
            {
                this.regions.Add(_Region);
                _Region.setNeighbours();
                if (_Loaded)
                {
                }
                else
                {
                    _Region.createRegion();

                    if (GameLibrary.Configuration.Configuration.isHost || Configuration.Configuration.isSinglePlayer)
                    {
                        this.saveRegion(_Region);
                    }
                    else
                    {
                    }
                }

                return(false);
            }
            else
            {
                Logger.Logger.LogErr("World->addRegion(...) : Region mit Id: " + _Region.Id + " schon vorhanden!");
                return(false);
            }
        }
Exemplo n.º 2
0
 public Chunk.Chunk createChunkAt(Vector3 _Position)
 {
     Region.Region var_Region = this.getRegionAtPosition(_Position);
     if (var_Region != null)
     {
         return(var_Region.createChunkAt(_Position));
     }
     return(null);
 }
Exemplo n.º 3
0
 public bool removeChunk(Chunk.Chunk _Chunk)
 {
     Region.Region var_Region = this.getRegionAtPosition(_Chunk.Position);
     if (var_Region != null)
     {
         return(var_Region.removeChunk(_Chunk));
     }
     return(false);
 }
Exemplo n.º 4
0
 public Block.Block getBlockAtCoordinate(Vector3 _Position)
 {
     Region.Region var_Region = this.getRegionAtPosition(_Position);
     if (var_Region != null)
     {
         return(var_Region.getBlockAtCoordinate(_Position));
     }
     return(null);
 }
Exemplo n.º 5
0
 public bool setBlockAtCoordinate(Vector3 _Position, Block.Block _Block)
 {
     Region.Region var_Region = this.getRegionAtPosition(_Position);
     if (var_Region != null)
     {
         return(var_Region.setBlockAtCoordinate(_Position, _Block));
     }
     return(false);
 }
Exemplo n.º 6
0
 public Object.Object addPreEnvironmentObject(Object.Object _Object)
 {
     Dimension.Dimension var_Dimension = this.getDimensionById(_Object.DimensionId);
     Region.Region       var_Region    = var_Dimension.getRegionObjectIsIn(_Object);
     if (var_Dimension != null)
     {
         return(var_Dimension.addPreEnvironmentObject(_Object, var_Region));
     }
     return(null);
 }
Exemplo n.º 7
0
        private Region.Region loadRegion(Vector3 _Position)
        {
            String var_Path = "Save/" + this.Id + "/" + _Position.X + "_" + _Position.Y + "/RegionInfo.sav";

            if (System.IO.File.Exists(var_Path))
            {
                Region.Region var_Region = (Region.Region)Utility.IO.IOManager.LoadISerializeAbleObjectFromFile(var_Path);
                var_Region.Parent = this;
                return(var_Region);
            }
            return(null);
        }
Exemplo n.º 8
0
        private void saveRegion(Region.Region _Region)
        {
            String var_Path = "Save/" + this.Id + "/" + _Region.Position.X + "_" + _Region.Position.Y + "/RegionInfo.sav";

            Utility.IO.IOManager.SaveISerializeAbleObjectToFile(var_Path, _Region);

            for (int i = 0; i < _Region.Chunks.Length; i++)
            {
                if (_Region.Chunks[i] != null)
                {
                    _Region.saveChunk(_Region.Chunks[i]);
                }
            }
        }
Exemplo n.º 9
0
        public Region.Region createRegionAt(Vector3 _Position)
        {
            _Position = Region.Region.parsePosition(_Position);

            Region.Region var_Region = this.loadRegion(_Position);
            if (var_Region == null)
            {
                int var_RegionType = 0;//Utility.Random.Random.GenerateGoodRandomNumber(0, Enum.GetValues(typeof(RegionEnum)).Length - 1);
                var_Region = GameLibrary.Factory.RegionFactory.generateRegion("Region", (int)_Position.X, (int)_Position.Y, (RegionEnum)var_RegionType, this);
                this.addRegion(var_Region);
            }
            else
            {
                this.addRegion(var_Region, true);
            }

            return(var_Region);
        }
Exemplo n.º 10
0
        public Chunk(String _Name, int _PosX, int _PosY, Region.Region _ParentRegion)
            : base()
        {
            this.Name     = _Name;
            this.Position = new Vector3(_PosX, _PosY, 0);
            this.Size     = new Vector3(chunkSizeX, chunkSizeY, 0);

            this.blocks = new Block.Block[chunkSizeX * chunkSizeY];

            this.pathEntries = new List <Vector3>();

            this.Parent = _ParentRegion;

            if (Configuration.Configuration.isHost || Configuration.Configuration.isSinglePlayer)
            {
            }
            else
            {
                this.requestFromServer();
            }
        }
Exemplo n.º 11
0
 public Object.Object addPreEnvironmentObject(Object.Object _Object, Region.Region _Region)
 {
     if (_Region != null)
     {
         Chunk.Chunk chunk = _Region.getChunkAtPosition(_Object.Position);
         if (chunk != null)
         {
             Block.Block var_Block = chunk.getBlockAtCoordinate(_Object.Position);
             if (var_Block != null)
             {
                 var_Block.addPreEnvironmentObject(_Object);
                 if (Configuration.Configuration.isHost)
                 {
                     Configuration.Configuration.networkManager.addEvent(new GameLibrary.Connection.Message.UpdatePreEnvironmentObjectMessage(_Object), GameMessageImportance.VeryImportant);
                 }
             }
         }
     }
     else
     {
         Logger.Logger.LogInfo("World.addObject: Object konnte der Region nicht hinzugefügt werden, da diese null war");
     }
     return(_Object);
 }
Exemplo n.º 12
0
 public Object.Object addObject(Object.Object _Object, Boolean insertInQuadTree)
 {
     Dimension.Dimension var_Dimension = this.getDimensionById(_Object.DimensionId);
     Region.Region       var_Region    = var_Dimension.getRegionObjectIsIn(_Object);
     return(addObject(_Object, insertInQuadTree, var_Region));
 }
Exemplo n.º 13
0
 public Object.Object addObject(Object.Object _Object, Boolean _InsertInQuadTree)
 {
     Region.Region var_Region = this.getRegionObjectIsIn(_Object);
     return(addObject(_Object, _InsertInQuadTree, var_Region));
 }
Exemplo n.º 14
0
        public void updatePlayerObjectNeighborhood(GameTime _GameTime, Object.PlayerObject _PlayerObject)
        {
            List <Chunk.Chunk> var_ChunksInRange = new List <Chunk.Chunk>();

            foreach (Chunk.Chunk var_Chunk in this.chunksOutOfRange)
            {
                if (Vector3.Distance(var_Chunk.Position, new Vector3(_PlayerObject.Position.X, _PlayerObject.Position.Y, 0)) <= (Setting.Setting.blockDrawRange * Block.Block.BlockSize))
                {
                    var_ChunksInRange.Add(var_Chunk);
                }
            }

            foreach (Chunk.Chunk var_Chunk in var_ChunksInRange)
            {
                this.chunksOutOfRange.Remove(var_Chunk);
            }

            if (_PlayerObject != null)
            {
                Vector3 var_PlayerPos = _PlayerObject.Position;

                if (_PlayerObject.CurrentBlock != null)
                {
                    var_PlayerPos = _PlayerObject.CurrentBlock.Position;
                }
                int var_DrawSizeX = Setting.Setting.blockDrawRange;
                int var_DrawSizeY = Setting.Setting.blockDrawRange;

                for (int x = 0; x < var_DrawSizeX; x++)
                {
                    for (int y = 0; y < var_DrawSizeY; y++)
                    {
                        Vector3     var_Position = new Vector3(var_PlayerPos.X + (-var_DrawSizeX / 2 + x) * Block.Block.BlockSize, var_PlayerPos.Y + (-var_DrawSizeY / 2 + y) * Block.Block.BlockSize, 0);
                        Block.Block var_Block    = this.getBlockAtCoordinate(var_Position);
                        if (var_Block != null)
                        {
                            var_Block.update(_GameTime);
                        }
                        else
                        {
                            Region.Region var_Region = this.getRegionAtPosition(var_Position);
                            if (var_Region == null)
                            {
                                var_Region = this.createRegionAt(var_Position);
                            }
                            else
                            {
                                Chunk.Chunk var_Chunk = this.getChunkAtPosition(var_Position);
                                if (var_Chunk == null)
                                {
                                    var_Chunk = this.createChunkAt(var_Position);
                                }
                            }
                        }
                    }
                }
            }

            List <Object.Object> var_Objects = this.getObjectsInRange(_PlayerObject.Position, 600);

            foreach (Object.Object var_Object in var_Objects)
            {
                if (!this.objectsToUpdate.Contains(var_Object))
                {
                    this.objectsToUpdate.Add(var_Object);
                }
            }
        }
Exemplo n.º 15
0
 public bool addRegion(Region.Region _Region)
 {
     return(this.addRegion(_Region, false));
 }
Exemplo n.º 16
0
 public bool containsRegion(Region.Region _Region)
 {
     return(containsRegion(_Region.Id));
 }
Exemplo n.º 17
0
 public Object.Object addObject(Object.Object _Object, Boolean _InsertInQuadTree, Region.Region _Region)
 {
     Dimension.Dimension var_Dimension = this.getDimensionById(_Object.DimensionId);
     if (var_Dimension != null)
     {
         return(var_Dimension.addObject(_Object, _InsertInQuadTree, _Region));
     }
     return(null);
 }