OpenMinecraft.InfdevHandler.AddEntity C# (CSharp) Method

AddEntity() public method

public AddEntity ( Entity e ) : void
e Entity
return void
        public override void AddEntity(Entity e)
        {
            int CX = (int)(e.Pos.X / ChunkX);
            int CZ = (int)(e.Pos.Z / ChunkZ);
            e.Pos.X = (int)e.Pos.X % ChunkX;
            e.Pos.Z = (int)e.Pos.Z % ChunkZ;

            e.UUID = Guid.NewGuid();

            mEntities.Add(e.UUID, e);

            string f = GetChunkFilename((int)CX, (int)CZ);
            Chunk c;
            if (!File.Exists(f))
            {
                c = NewChunk(CX, CZ);
            }
            else
            {
                c = GetChunk(CX, CZ);
            }
            try
            {
                if(_DEBUG) Console.WriteLine("Saving {0} to chunk {1},{2}...", e.ToString(), CX, CZ);
                if (c.Entities.ContainsKey(e.UUID))
                    c.Entities.Remove(e.UUID);
                c.Entities.Add(e.UUID, e);
                c.Save();
            }
            catch (Exception ex) 
            {
                if(_DEBUG) Console.WriteLine(ex.ToString());
            }
        }
		public override void SetEntity(Entity e)

Usage Example

Ejemplo n.º 1
0
        public void TEST004_AddEntities()
        {
            if (Directory.Exists("004"))
                Directory.Delete("004", true);
            Directory.CreateDirectory("004"); // Copies map here.

            {
                InfdevHandler a = new InfdevHandler();
                a.Save("004/level.dat");
                a.SetDimension(0);

                Sheep b = new Sheep();
                b.Air = 300;
                b.AttackTime = 0;
                b.DeathTime = 0;
                b.FallDistance = 0;
                b.Fire = -1;
                b.Health = 20;
                b.Sheared = false;
                b.UUID = Guid.NewGuid();
                b.Pos = new Vector3d(8, 100, 8);
                b.Rotation = new Rotation(0, 0);

                a.AddEntity(b);

                a.Save();
            }

            {
                InfdevHandler a = new InfdevHandler();
                a.Load("004/level.dat");
                a.SetDimension(0);

                Chunk chunk = a.GetChunk(0, 0,false);
                Assert.IsNotNull(chunk, "Sheep didn't get saved; Chunk didn't even get created.");
                Assert.AreEqual(1,chunk.Entities.Count,"The sheep didn't get saved.");
            }

            Directory.Delete("004", true);
        }