private void RegisterTiles() { var arr = new List <Tuple <uint, CozyTiledNode> >(); var data = CozyDirector.Instance.JsonManagerInstance.ParseWithFile(@".\Content\tiles.json"); if (data.tiles != null) { var tiles = data.tiles; foreach (var tile in tiles) { var texture = CozyDirector.Instance.TextureCacheInstance.AddImage(tile.path); if (tile.type.Equals("tiles")) { // TODO 分割图片 var CurrId = tile.id; for (int i = 0; i < tile.w; ++i) { for (int j = 0; j < tile.h; ++j) { var subTile = CozySpriteTiled.Create(texture, new Rectangle(32 * i, 32 * j, 32, 32)); CozyTiledFactory.RegisterTiled(CurrId++, subTile); } } } else if (tile.type.Equals("tile")) { // TODO 取图片里的一块 var subTile = CozySpriteTiled.Create(texture, new Rectangle(32 * tile.x, 32 * tile.y, 32, 32)); CozyTiledFactory.RegisterTiled(tile.id, subTile); } } } }
private void ShowAllTiles() { foreach (var obj in CozyTiledFactory.GetTiles()) { ContentControl control = null; if (obj.Value is CozyColorTile) { var ColorTile = obj.Value as CozyColorTile; var color = ColorTile.ColorProperty; control = new SampleButton(0, 0) { PreferredHeight = 32, PreferredWidth = 32, Background = new Starbound.UI.SBColor(color.R, color.G, color.B), Foreground = new Starbound.UI.SBColor(color.R, color.G, color.B), }; } else if (obj.Value is CozySpriteTiled) { var SpriteTile = obj.Value as CozySpriteTiled; control = new TileButton(SpriteTile.Texture, SpriteTile.Rect); } if (control != null) { tilesPanel.AddChild(control, () => { CurrentTiledId = obj.Key; }); } } }
public static void RegistAllTiles() { mPluginList.Add(new TilesPluginColorTiles()); mPluginList.Add(new TilesPluginSpriteTiles()); foreach (var i in mPluginList) { var tiles = i.GetTiles(); foreach (var t in tiles) { CozyTiledFactory.RegisterTiled(t.Item1, t.Item2); } } }
protected override void DrawSelf(Microsoft.Xna.Framework.GameTime gameTime, Microsoft.Xna.Framework.Graphics.SpriteBatch spriteBatch) { spriteBatch.End(); foreach (var obj in DrawableUIElemts) { foreach (Control elemt in obj.GetDrawableElemt()) { renderer.Render(elemt, spriteBatch); } } spriteBatch.Begin(); if (Status == S_Add) { CozyTiledFactory.GetInstance(CurrentTiledId).DrawAt(gameTime, spriteBatch, CurrentPosition.ToVector2(), NodeContentSize); } foreach (var obj in TempTiles) { var ActualPosition = CozyTiledPositionHelper.ConvertTiledPositionToPosition(obj.Key, NodeContentSize); CozyTiledFactory.GetInstance(obj.Value).DrawAt(gameTime, spriteBatch, ActualPosition, NodeContentSize); } }