private void CreatePlanet(PlanetCreationRequest request) { lock (GameObjectsLock) { var item = new Planet(Bus); GameObjects.Add(item); for (int x = 0; x < request.PlanetSize; ++x) { for (int y = 0; y < request.PlanetSize; ++y) { for (int z = 0; z < request.PlanetSize; ++z) { if ((Math.Pow(x - (request.PlanetSize - 1) / 2.0, 2) + Math.Pow(y - (request.PlanetSize - 1) / 2.0, 2) + Math.Pow(z - (request.PlanetSize - 1) / 2.0, 2) - Math.Pow(request.PlanetSize / 2.0, 2)) <= 0) { var child = new VoxelGreen(_idTally++, Bus) { Position = new Vect3(x, y, z) }; GameObjects.Add(child); item.AddChild(child); } } } } } }
public override void CreateGameObject(ObjectCreationRequest request) { if (request.ObjectType == typeof(VoxelGreen)) { var item = new VoxelGreen(_idTally++, Bus); lock (GameObjectsLock) { GameObjects.Add(item); } Bus.Add(new ObjectCreated(request.TimeSent, item)); } Console.WriteLine(request.ObjectType); if (request.ObjectType == typeof(TopMenu)) { var item = new TopMenu(_idTally++, Bus); lock (GameObjectsLock) { GameObjects.Add(item); Bus.Add(new ObjectCreated(request.TimeSent, item)); } } base.CreateGameObject(request); }