public Engine.Events.TileEvent AddTileEvent(int x, int y, Engine.Events.EventInfo eventInfo) { TileData data = GetTile(x, y); ExtendedTileData exdata = data.IsExtended ? data.Extended : data.Extend(x, y); Engine.Events.TileEvent ev = new Events.TileEvent(eventInfo, exdata); exdata.AddEvent(ev); events.Add(ev); SetTile(x, y, exdata); return(ev); }
public static ExtendedTileData Deserialize(System.IO.Stream stream, int data, int x, int y) { System.IO.BinaryReader reader = new System.IO.BinaryReader(stream); int count = reader.ReadInt32(); Events.TileEvent[] events = new Events.TileEvent[count]; for (int i = 0; i < events.Length; i++) { events[i] = Engine.Events.TileEvent.Deserialize(stream); } ExtendedTileData exdata = new ExtendedTileData(data, x, y); exdata.AddEvents(events); return(exdata); }
public static TileEvent Deserialize(System.IO.Stream stream) { System.IO.BinaryReader reader = new System.IO.BinaryReader(stream); int id = reader.ReadInt32(); EventInfo info = EventInfo.Manager.GetByID(id); object[] parameters = new object[info.Parameters.Count]; for (int i = 0; i < parameters.Length; i++) { parameters[i] = Storage.SerialUtility.ReadAs(stream, info.Parameters[i]); } TileEvent ev = new TileEvent(info); ev.SetParameters(parameters); return(ev); }
public void AddEvent(Events.TileEvent ev) { if (events == null) { events = new List <Events.TileEvent>(); } if (!ev.Info.CanBeMulitple) { for (int i = 0; i < events.Count; i++) { if (events[i].Info == ev.Info) { throw new Exception("This event cannot be added multiple times to one tile!"); } } } ev.TileData = this; events.Add(ev); }
protected void OnHandleEvent(Sprites.Sprite sprite, TileEvent ev, bool handled = false) { if (handled) { return; } if (ev.Info.IsGlobal) { return; } if (ev.Info == EventInfo.Warp) { for (int i = 0; i < level.Events.Count; i++) { if (level.Events[i].Info == EventInfo.WarpTarget) { sprite.Position = new Vector2(level.Events[i].TileData.X * GFX.TileSet.TileSize, level.Events[i].TileData.Y * GFX.TileSet.TileSize); } } } }
public void HandleEvent(Sprites.Sprite sprite, TileEvent ev) { OnHandleEvent(sprite, ev); }
public void AddEvent(Events.TileEvent ev, params object[] parameters) { AddEvent(ev); ev.SetParameters(parameters); }