コード例 #1
0
            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}");
                }
            }
コード例 #2
0
            /// <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);
            }
コード例 #3
0
            /// <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);
            }
コード例 #4
0
            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}");
                }
            }
コード例 #5
0
            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}");
                }
            }
コード例 #6
0
            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}");
                }
            }
コード例 #7
0
            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));
                }
            }
コード例 #8
0
            /// <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);
            }
コード例 #9
0
ファイル: EventParam.cs プロジェクト: FloorBelow/dstools
            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}");
                }
            }
コード例 #10
0
    // 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);
                }
            }
        }
    }
コード例 #11
0
            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}");
                }
            }
コード例 #12
0
    // 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;
                }
            }
        }
    }
コード例 #13
0
            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));
                }
            }