示例#1
0
		public static void DumpGame(World world, BinaryOutput output) {
			new RegionData().Encode(output, world);

			output.Write(world.Maps.Count);
			foreach (Map map in world.Maps) {
				new MapData().Encode(output, map);
			}
		}
示例#2
0
		public World CreateWorld(GameScene scene, GraphicsDevice GraphicsDevice) {
			World result = new World(Name, GraphicsDevice, scene);
			result.Author = Author;
			result.TilesetFactory = this.TilesetFactory;
			result.EntityTemplateFactory = this.EntityTemplateFactory;
			result.TilesetContainer = this.TilesetContainer;
			result.EntityContainer = this.EntityContainer;
			result.UIContainer = this.UIContainer;
			result.SpriteLibrary = this.SpriteLibrary;
			return result;
		}
示例#3
0
		public void Encode(BinaryOutput stream, World world) {
			stream.Write(world.Name);
			stream.Write(world.Author ?? "");
			
			world.TilesetFactory.Encode(stream);
			world.EntityTemplateFactory.Encode(stream);

			world.TilesetContainer.Encode(stream);
			world.EntityContainer.Encode(stream);
			world.UIContainer.Encode(stream);
			world.SpriteLibrary.Encode(stream);
		}
示例#4
0
		public GameScene(GameData data, SpriteBatch SpriteBatch) {
			this.SpriteBatch = SpriteBatch;
			this.UIManager = new UIManager();
			this.Data = data;
			World = Data.RegionData.CreateWorld(this, SpriteBatch.GraphicsDevice);
			World.Maps.Add(Data.MapDatas[0].CreateMap(World));

			EntityTemplate templatePlayer = World.EntityContainer.GetPlayers()[0];

			Player = templatePlayer.CreateEntity(World.EntityFactory, true) as PlayerEntity;
			World.Player = Player;
			World.Maps[0].AddEntity(Player);
			new LivingController(Player);
			World.CurrentMap = Player.Map;
			this.SceneState = SceneState.Alive;
		}
示例#5
0
		public Map CreateMap(World world) {
			Map result = new Map(world.EntityFactory, Name, Author, Width, Height);
			result.Tilesets = this.Tilesets;
			foreach (MockupTileset tileset in result.Tilesets) {
				tileset.world = world;
			}
			result.Tiles = Tiles;

			for (int i = 0; i < result.Width; i++)
				for (int j = 0; j < result.Height; j++)
					for (int k = 0; k < Map.LayerCount; k++)
						Tiles[i][j][k].map = result;

			foreach (Tuple<Int32, Vector2> token in Entities) {
				MapEntity e = world.EntityContainer.Get(token.Item1).CreateEntity(world.EntityFactory);
				e.Position = token.Item2;
				result.Entities.Add(e);
			}
			return result;
		}
示例#6
0
		public void LoadWorld(World GameDumpWorld, string GameDumpLocation) {
			if (GameDumpWorld == null && GameDumpLocation == null) return;
			if (GameDumpWorld != null) {
				Stream stream = new MemoryStream();
				GameData.DumpGame(GameDumpWorld, new BinaryOutput(stream));
				stream.Seek(0, SeekOrigin.Begin);
				this.Data = GameData.ReadGame(this.GraphicsDevice, new BinaryInput(stream));
				stream.Flush();
				stream.Close();
			} else {
				if (!string.IsNullOrEmpty(GameDumpLocation)) {
					this.Data = GameData.ReadGame(this.GraphicsDevice, GameDumpLocation);
				} else {
					using (OpenFileDialog dialog = new OpenFileDialog()) {
						dialog.Filter = "PokeSharp Game Dump (*.psg)|*.psg";
						if (dialog.ShowDialog() == DialogResult.OK) {
							this.Data = GameData.ReadGame(this.GraphicsDevice, GameDumpLocation);
						} else {
							Environment.Exit(0);
						}
					}
				}
			}
		}
示例#7
0
		public void LoadWorld(World baseworld) {
			LoadWorld(baseworld, null);
		}
示例#8
0
		public ControlGameEngine(World world) {
			this.World = world;
			this.GameLoopEnabled = true;
		}
示例#9
0
		public World CreateRegion(string name) {
			Initialized = true;
			World = new World(name, GraphicsDevice);
			World.Maps.Clear();
			return World;
		}
示例#10
0
		public static void DumpGame(World world, Stream stream) {
			using (BinaryOutput output = new BinaryOutput(stream)) {
				DumpGame(world, output);
			}
		}
示例#11
0
		public static void DumpGame(World world, string loc) {
			DumpGame(world, File.OpenWrite(loc));
		}
示例#12
0
文件: Map.cs 项目: Hakua/PokeSharp
		public Map(IRegionEntityFactory factory)
			: this() {
			this.World = factory.World;
		}
示例#13
0
		public FrmGameTest(World testWorld) {
			this.testWorld = testWorld;
			InitializeComponent();
		}
示例#14
0
		public MockupTileset(World world, int tilesheetindex) {
			this.world = world;
			this.tilesheetindex = tilesheetindex;
		}