internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum32 <EventType>(br.Position + 0xC); switch (type) { case EventType.Treasure: return(Treasures.EchoAdd(new Event.Treasure(br))); case EventType.Generator: return(Generators.EchoAdd(new Event.Generator(br))); case EventType.ObjAct: return(ObjActs.EchoAdd(new Event.ObjAct(br))); case EventType.MapOffset: return(MapOffsets.EchoAdd(new Event.MapOffset(br))); case EventType.PseudoMultiplayer: return(PseudoMultiplayers.EchoAdd(new Event.PseudoMultiplayer(br))); case EventType.PatrolInfo: return(PatrolInfo.EchoAdd(new Event.PatrolInfo(br))); case EventType.PlatoonInfo: return(PlatoonInfo.EchoAdd(new Event.PlatoonInfo(br))); case EventType.Other: return(Others.EchoAdd(new Event.Other(br))); default: throw new NotImplementedException($"Unsupported event type: {type}"); } }
/// <summary> /// Adds an event to the appropriate list for its type; returns the event. /// </summary> public Event Add(Event evnt) { switch (evnt) { case Event.Light e: Lights.Add(e); break; case Event.Sound e: Sounds.Add(e); break; case Event.SFX e: SFX.Add(e); break; case Event.Wind e: Wind.Add(e); break; case Event.Treasure e: Treasures.Add(e); break; case Event.Generator e: Generators.Add(e); break; case Event.Message e: Messages.Add(e); break; case Event.ObjAct e: ObjActs.Add(e); break; case Event.SpawnPoint e: SpawnPoints.Add(e); break; case Event.MapOffset e: MapOffsets.Add(e); break; case Event.Navmesh e: Navmeshes.Add(e); break; case Event.Environment e: Environments.Add(e); break; case Event.PseudoMultiplayer e: PseudoMultiplayers.Add(e); break; default: throw new ArgumentException($"Unrecognized type {evnt.GetType()}.", nameof(evnt)); } return(evnt); }
/// <summary> /// Adds an event to the appropriate list for its type; returns the event. /// </summary> public Event Add(Event evnt) { switch (evnt) { case Event.Treasure e: Treasures.Add(e); break; case Event.Generator e: Generators.Add(e); break; case Event.ObjAct e: ObjActs.Add(e); break; case Event.MapOffset e: MapOffsets.Add(e); break; case Event.PseudoMultiplayer e: PseudoMultiplayers.Add(e); break; case Event.PatrolInfo e: PatrolInfo.Add(e); break; case Event.PlatoonInfo e: PlatoonInfo.Add(e); break; case Event.Other e: Others.Add(e); break; default: throw new ArgumentException($"Unrecognized type {evnt.GetType()}.", nameof(evnt)); } return(evnt); }
internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum8 <EventType>(br.Position + br.VarintSize + 4); switch (type) { case EventType.Light: return(Lights.EchoAdd(new Event.Light(br))); case EventType.Shadow: return(Shadows.EchoAdd(new Event.Shadow(br))); case EventType.Fog: return(Fogs.EchoAdd(new Event.Fog(br))); case EventType.BGColor: return(BGColors.EchoAdd(new Event.BGColor(br))); case EventType.MapOffset: return(MapOffsets.EchoAdd(new Event.MapOffset(br))); case EventType.Warp: return(Warps.EchoAdd(new Event.Warp(br))); case EventType.CheapMode: return(CheapModes.EchoAdd(new Event.CheapMode(br))); default: throw new NotImplementedException($"Unimplemented event type: {type}"); } }
internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum32 <EventType>(br.Position + 8); switch (type) { case EventType.Light: return(Lights.EchoAdd(new Event.Light(br))); case EventType.Sound: return(Sounds.EchoAdd(new Event.Sound(br))); case EventType.SFX: return(SFX.EchoAdd(new Event.SFX(br))); case EventType.Wind: return(Wind.EchoAdd(new Event.Wind(br))); case EventType.Treasure: return(Treasures.EchoAdd(new Event.Treasure(br))); case EventType.Generator: return(Generators.EchoAdd(new Event.Generator(br))); case EventType.Message: return(Messages.EchoAdd(new Event.Message(br))); case EventType.ObjAct: return(ObjActs.EchoAdd(new Event.ObjAct(br))); case EventType.SpawnPoint: return(SpawnPoints.EchoAdd(new Event.SpawnPoint(br))); case EventType.MapOffset: return(MapOffsets.EchoAdd(new Event.MapOffset(br))); case EventType.Navmesh: return(Navmeshes.EchoAdd(new Event.Navmesh(br))); case EventType.Environment: return(Environments.EchoAdd(new Event.Environment(br))); case EventType.PseudoMultiplayer: return(PseudoMultiplayers.EchoAdd(new Event.PseudoMultiplayer(br))); default: throw new NotImplementedException($"Unsupported event type: {type}"); } }
internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum16 <EventType>(br.Position + 0xC); switch (type) { case EventType.Light: var light = new Event.Light(br); Lights.Add(light); return(light); case EventType.Shadow: var shadow = new Event.Shadow(br); Shadows.Add(shadow); return(shadow); case EventType.Fog: var fog = new Event.Fog(br); Fogs.Add(fog); return(fog); case EventType.BGColor: var bgColor = new Event.BGColor(br); BGColors.Add(bgColor); return(bgColor); case EventType.MapOffset: var mapOffset = new Event.MapOffset(br); MapOffsets.Add(mapOffset); return(mapOffset); case EventType.Warp: var warp = new Event.Warp(br); Warps.Add(warp); return(warp); case EventType.CheapMode: var cheapMode = new Event.CheapMode(br); CheapModes.Add(cheapMode); return(cheapMode); default: throw new NotImplementedException($"Unimplemented event type: {type}"); } }
public void Add(IMsbEvent item) { switch (item) { case Event.Light e: Lights.Add(e); break; case Event.Shadow e: Shadows.Add(e); break; case Event.Fog e: Fogs.Add(e); break; case Event.BGColor e: BGColors.Add(e); break; case Event.MapOffset e: MapOffsets.Add(e); break; case Event.Warp e: Warps.Add(e); break; case Event.CheapMode e: CheapModes.Add(e); break; default: throw new ArgumentException( message: "Item is not recognized", paramName: nameof(item)); } }
/// <summary> /// Adds an event to the appropriate list for its type; returns the event. /// </summary> public Event Add(Event evnt) { switch (evnt) { case Event.Light e: Lights.Add(e); break; case Event.Shadow e: Shadows.Add(e); break; case Event.Fog e: Fogs.Add(e); break; case Event.BGColor e: BGColors.Add(e); break; case Event.MapOffset e: MapOffsets.Add(e); break; case Event.Warp e: Warps.Add(e); break; case Event.CheapMode e: CheapModes.Add(e); break; default: throw new ArgumentException($"Unrecognized type {evnt.GetType()}.", nameof(evnt)); } return(evnt); }
internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum32 <EventType>(br.Position + 0xC); switch (type) { case EventType.Treasure: var treasure = new Event.Treasure(br); Treasures.Add(treasure); return(treasure); case EventType.Generator: var generator = new Event.Generator(br); Generators.Add(generator); return(generator); case EventType.ObjAct: var objAct = new Event.ObjAct(br); ObjActs.Add(objAct); return(objAct); case EventType.MapOffset: var mapOffset = new Event.MapOffset(br); MapOffsets.Add(mapOffset); return(mapOffset); case EventType.WalkRoute: var walkRoute = new Event.WalkRoute(br); WalkRoutes.Add(walkRoute); return(walkRoute); case EventType.GroupTour: var groupTour = new Event.GroupTour(br); GroupTours.Add(groupTour); return(groupTour); case EventType.Event17: var event17 = new Event.Event17(br); Event17s.Add(event17); return(event17); case EventType.Event18: var event18 = new Event.Event18(br); Event18s.Add(event18); return(event18); case EventType.Event20: var event20 = new Event.Event20(br); Event20s.Add(event20); return(event20); case EventType.Event21: var event21 = new Event.Event21(br); Event21s.Add(event21); return(event21); case EventType.PartsGroup: var partsGroup = new Event.PartsGroup(br); PartsGroups.Add(partsGroup); return(partsGroup); case EventType.Event23: var event23 = new Event.Event23(br); Event23s.Add(event23); return(event23); case EventType.AutoDrawGroup: var autoDrawGroup = new Event.AutoDrawGroup(br); AutoDrawGroups.Add(autoDrawGroup); return(autoDrawGroup); case EventType.Other: var other = new Event.Other(br); Others.Add(other); return(other); default: throw new NotImplementedException($"Unimplemented model type: {type}"); } }
// findme ref: based on https://docs.unity3d.com/ScriptReference/WWWForm.html public IEnumerator TransmitData(bool isGet, string schema, string format, bool isEditor = false, bool isSend = false, string data = null, byte[] bdata = null, string table = null, bool isTerrainData = true, int layer = 0) { MapOffsets offset = this.GetComponent <MapOffsets> (); string url = submitURL; if (isGet) { url = getURL; } // findme todo: add routines for handling different data types // create form with named key-val pairs for $_post WWWForm form = new WWWForm(); form.AddField("user", user); // the user findme todo: add user input. - create a get_list to get users from the database only and select on login. form.AddField("schema", schema); // the type of data - trees/detail/heightmap - used for insterting into correct part of database form.AddField("format", format); // the format of the data - json/binary if (isTerrainData) // excludes terrain ID for non terrain-linked objects (like comments) { form.AddField("terrainID", terrain.name); // ID of the terrain to be accessed form.AddField("tilesize", JsonUtility.ToJson(terrain.terrainData.size)); // get the offsets from the current terrain offset = terrain.GetComponent <MapOffsets> (); // modify offset from defualt to terrain specfic print("offset = " + offset); } form.AddField("offset", JsonUtility.ToJson(offset)); // SW corner offset for terrain data if (table != null) { form.AddField("table", table); } print("sending to " + url); //set data fields if (data != null) { print("add json " + schema + "." + table); // findme debug form.AddField("data", data); // the array to send or receive } if (bdata != null) { print("add binary " + schema + "." + table); // findme debug // findme todo: add variable filename / mime type depending on content (e.g. png) form.AddBinaryData("bdata", bdata, schema + "_" + table, "application/x-gzip"); // binary data transmitter. findme ref: see https://docs.unity3d.com/ScriptReference/WWWForm.AddBinaryData.html } transferData = new WWW(url, form); print("transfering"); // wait for download to complete and return data if (!isEditor) { yield return(transferData); } else { while (!transferData.isDone) { ; // freezes the editor until the transmition is finished. } // findme todo: replace with system threading to avoid freeze? } // handle returned values if (!string.IsNullOrEmpty(transferData.error)) // check for transmit errors { print(transferData.error); } else { print(transferData.text); if (isSend) { print("Data transmitted"); } else // check if it is a send or get procedure { print("Data Received"); // wrap json with string to work with json helper if (format == "json") { addJsonData(transferData.text, schema, table: table, layer: layer); } else { addByteData(transferData.bytes, schema, layer); } } } }
internal override Event ReadEntry(BinaryReaderEx br) { EventType type = br.GetEnum32 <EventType>(br.Position + 8); switch (type) { case EventType.Light: var light = new Event.Light(br); Lights.Add(light); return(light); case EventType.Sound: var sound = new Event.Sound(br); Sounds.Add(sound); return(sound); case EventType.SFX: var sfx = new Event.SFX(br); SFXs.Add(sfx); return(sfx); case EventType.WindSFX: var windSFX = new Event.WindSFX(br); WindSFXs.Add(windSFX); return(windSFX); case EventType.Treasure: var treasure = new Event.Treasure(br); Treasures.Add(treasure); return(treasure); case EventType.Generator: var generator = new Event.Generator(br); Generators.Add(generator); return(generator); case EventType.Message: var message = new Event.Message(br); Messages.Add(message); return(message); case EventType.ObjAct: var objAct = new Event.ObjAct(br); ObjActs.Add(objAct); return(objAct); case EventType.SpawnPoint: var spawnPoint = new Event.SpawnPoint(br); SpawnPoints.Add(spawnPoint); return(spawnPoint); case EventType.MapOffset: var mapOffset = new Event.MapOffset(br); MapOffsets.Add(mapOffset); return(mapOffset); case EventType.Navmesh: var navmesh = new Event.Navmesh(br); Navmeshes.Add(navmesh); return(navmesh); case EventType.Environment: var environment = new Event.Environment(br); Environments.Add(environment); return(environment); case EventType.PseudoMultiplayer: var pseudoMultiplayer = new Event.PseudoMultiplayer(br); PseudoMultiplayers.Add(pseudoMultiplayer); return(pseudoMultiplayer); default: throw new NotImplementedException($"Unsupported event type: {type}"); } }
// findme ref: based on https://docs.unity3d.com/ScriptReference/WWWForm.html public IEnumerator TransmitData(bool isGet, string schema, string format, bool isEditor = false, bool isSend = false, string data = null, byte[] bdata = null, string table = null, int layer = 0) { MapOffsets offset = this.GetComponent <MapOffsets> (); // gets the defualt world offset coordinates if no others set. string url = submitURL; if (isGet) { url = getURL; } // findme todo: add routines for handling different data types // create form with named key-val pairs for $_post WWWForm form = new WWWForm(); form.AddField("user", user); // the user findme todo: add user input. - create a get_list to get users from the database only and select on login. form.AddField("schema", schema); // the type of data - trees/detail/heightmap - used for insterting into correct part of database form.AddField("format", format); // the format of the data - json/binary form.AddField("offset", JsonUtility.ToJson(offset)); // SW corner offset for terrain data if (table != null) { form.AddField("table", table); } //set data fields if (data != null) { print("add json"); // findme debug form.AddField("data", data); // the array to send or receive } transferData = new WWW(url, form); print("transfering"); // wait for download to complete and return data if (!isEditor) { yield return(transferData); } else { while (!transferData.isDone) { ; // freezes the editor until the transmition is finished. } // findme todo: replace with system threading to avoid freeze? } // handle returned values if (!string.IsNullOrEmpty(transferData.error)) // check for transmit errors { print(transferData.error); } else { if (isSend) { print("Data transmitted"); } else // check if it is a send or get procedure { print("Data Received"); switch (table) { case "comments": addComments(transferData.text); break; case "cameras": addCameras(transferData.text); break; case "genObjs": addGenObj(transferData.text); break; } } } }
public void Add(IMsbEvent item) { switch (item) { case Event.Light e: Lights.Add(e); break; case Event.Sound e: Sounds.Add(e); break; case Event.SFX e: SFXs.Add(e); break; case Event.WindSFX e: WindSFXs.Add(e); break; case Event.Treasure e: Treasures.Add(e); break; case Event.Generator e: Generators.Add(e); break; case Event.Message e: Messages.Add(e); break; case Event.ObjAct e: ObjActs.Add(e); break; case Event.SpawnPoint e: SpawnPoints.Add(e); break; case Event.MapOffset e: MapOffsets.Add(e); break; case Event.Navmesh e: Navmeshes.Add(e); break; case Event.Environment e: Environments.Add(e); break; case Event.PseudoMultiplayer e: PseudoMultiplayers.Add(e); break; default: throw new ArgumentException( message: "Item is not recognized", paramName: nameof(item)); } }