private void loadProjectile(LevelObjectProjectile projectile) { ClearMainArea(); objectFrameworkArea.Data.MainPanel.AddControl(new TextArea(25, 25, "Name= ") {Color = "black"}); TextBox fm = null; objectFrameworkArea.Data.MainPanel.AddControl(fm = new TextBox(100, 5, 290, 25, projectile.Name) {Color = "rgb(50,150,50)", Click = (p) => { projectile.Name = fm.Text; }}); Button b = null; objectFrameworkArea.Data.MainPanel.AddControl(b = new Button(40, 160, 70, 25, "XFlip") { Color = "rgb(50,150,50)", Click = (p) => { projectile.Xflip = b.Toggled; } }); b.Toggle = true; b.Toggled = projectile.Xflip; Button c = null; objectFrameworkArea.Data.MainPanel.AddControl(c = new Button(115, 160, 70, 25, "YFlip") { Color = "rgb(50,150,50)", Click = (p) => { projectile.Yflip = c.Toggled; } }); c.Toggle = true; c.Toggled = projectile.Yflip; HScrollBox jd; objectFrameworkArea.Data.MainPanel.AddControl(jd = new HScrollBox(20, 35, 70, 4, 112) {BackColor = "rgb(50,60,127)"}); jd.Controls = new List<Element>(); for (var i = 0; i < objectFrameworkArea.Data.ObjectFramework.Assets.Count; i++) { ImageButton<LevelObjectAsset> bd = new ImageButton<LevelObjectAsset>(null, 0, 0, 0, 0); bd.Text = ( (Func<string>) ( () => { return bd.Data.Name; } ) ); bd.OnDraw = (canvas, x, y) => { if (bd.Data.Frames.Count == 0) return; bd.Data.Frames[0].DrawSimple(canvas, new Point(x, y), bd.Width, bd.Height - 15, projectile.Xflip, projectile.Yflip); }; bd.Click = (p) => { for (var j = 0; j < jd.Controls.Count; j++) { if (jd.Controls[j] == bd) { if (projectile.AssetIndex == j) bd.Toggled = true; projectile.AssetIndex = j; continue; } ( (ImageButton) jd.Controls[j] ).Toggled = false; } }; jd.AddControl(bd); bd.Toggle = true; bd.Data = objectFrameworkArea.Data.ObjectFramework.Assets[i]; if (projectile.AssetIndex == i) bd.Toggled = true; } }
public static LevelObject ExtendObject(LevelObjectData d) { LevelObject obj = new LevelObject(d.Key) { CollideScript = d.CollideScript, HurtScript = d.HurtScript, InitScript = d.InitScript, TickScript = d.TickScript }; obj.Description = d.Description; //d.oldKey = name; obj.Assets = new List<LevelObjectAsset>(); for (int i = 0; i < d.Assets.Count; i++) { var asset = d.Assets[i]; var levelObjectAsset = new LevelObjectAsset(asset.Name) { Name = asset.Name, }; levelObjectAsset.Frames = new List<LevelObjectAssetFrame>(); for (int index = 0; index < asset.Frames.Count; index++) { var fr = asset.Frames[index]; levelObjectAsset.Frames[index] = new LevelObjectAssetFrame(fr.Name) { OffsetX = fr.OffsetX, Width = fr.Width, TransparentColor = fr.TransparentColor, Height = fr.Height, OffsetY = fr.OffsetY, HurtSonicMap = fr.HurtSonicMap, CollisionMap = fr.CollisionMap, ColorMap = fr.ColorMap, Palette = fr.Palette, }; } obj.Assets[i] = levelObjectAsset; } obj.Pieces = new List<LevelObjectPiece>(); for (int index = 0; index < d.Pieces.Count; index++) { var piece = d.Pieces[index]; obj.Pieces[index] = piece; } obj.PieceLayouts = new List<LevelObjectPieceLayout>(); for (int index = 0; index < d.PieceLayouts.Count; index++) { var pl = d.PieceLayouts[index]; obj.PieceLayouts[index] = new LevelObjectPieceLayout(pl.Name) { Height = pl.Height, Width = pl.Width }; obj.PieceLayouts[index].Pieces = new List<LevelObjectPieceLayoutPiece>(); for (int i = 0; i < d.PieceLayouts[index].Pieces.Count; i++) { obj.PieceLayouts[index].Pieces[i] = d.PieceLayouts[index].Pieces[i]; } } obj.Projectiles = new List<LevelObjectProjectile>(); for (int index = 0; index < d.Projectiles.Count; index++) { var proj = d.Projectiles[index]; proj = new LevelObjectProjectile(proj.Name) { X = proj.X, Y = proj.Y, Xsp = proj.Xsp, Ysp = proj.Ysp, Xflip = proj.Xflip, Yflip = proj.Yflip, AssetIndex = proj.AssetIndex, FrameIndex = proj.FrameIndex, }; obj.Projectiles[index] = proj; } return obj; }