Ignore:
Timestamp:
Aug 2, 2017, 6:46:15 PM (7 years ago)
Author:
alloc
Message:

Fixes update A16.2

Location:
binary-improvements/MapRendering
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/MapRendering/ModInfo.xml

    r299 r306  
    55                <Description value="Render the game map to image map tiles as it is uncovered" />
    66                <Author value="Christian 'Alloc' Illy" />
    7                 <Version value="19" />
     7                <Version value="20" />
    88                <Website value="http://7dtd.illy.bz" />
    99        </ModInfo>
  • binary-improvements/MapRendering/Web/API/ExecuteConsoleCommand.cs

    r279 r306  
    1515                                return;
    1616                        }
     17
     18                        WebCommandResult.ResultType responseType =
     19                                req.QueryString ["raw"] != null ? WebCommandResult.ResultType.Raw :
     20                                (req.QueryString ["simple"] != null ? WebCommandResult.ResultType.ResultOnly :
     21                                        WebCommandResult.ResultType.Full);
    1722
    1823                        string commandline = req.QueryString ["command"];
     
    3641                        }
    3742
    38                         // TODO: Execute command (store resp as IConsoleConnection instance to deliver response to the single client?)
    39 
    4043                        resp.SendChunked = true;
    41                         WebCommandResult wcr = new WebCommandResult (commandPart, argumentsPart, resp);
     44                        WebCommandResult wcr = new WebCommandResult (commandPart, argumentsPart, responseType, resp);
    4245                        SdtdConsole.Instance.ExecuteAsync (commandline, wcr);
    4346                }
  • binary-improvements/MapRendering/Web/API/GetAnimalsLocation.cs

    r251 r306  
    99    class GetAnimalsLocation : WebAPI
    1010    {
     11                private List<EntityAnimal> animals = new List<EntityAnimal> ();
     12
    1113        public override void HandleRequest(HttpListenerRequest req, HttpListenerResponse resp, WebConnection user, int permissionLevel)
    1214        {
    1315            JSONArray animalsJsResult = new JSONArray();
    1416
    15             foreach (EntityAnimal entity in Animals.List)
    16             {
     17                        Animals.Get (animals);
     18                        for (int i = 0; i < animals.Count; i++)
     19                        {
     20                                EntityAnimal entity = animals [i];
    1721                Vector3i position = new Vector3i(entity.GetPosition());
    1822
  • binary-improvements/MapRendering/Web/API/GetHostileLocation.cs

    r251 r306  
    99    class GetHostileLocation : WebAPI
    1010    {
     11                private List<EntityEnemy> enemies = new List<EntityEnemy> ();
     12
    1113        public override void HandleRequest(HttpListenerRequest req, HttpListenerResponse resp, WebConnection user, int permissionLevel)
    1214        {
    1315            JSONArray hostilesJsResult = new JSONArray();
    1416
    15             foreach (EntityEnemy entity in Hostiles.List)
     17                        Hostiles.Get (enemies);
     18                        for (int i = 0; i < enemies.Count; i++)
    1619            {
     20                                EntityEnemy entity = enemies [i];
    1721                Vector3i position = new Vector3i(entity.GetPosition());
    1822
  • binary-improvements/MapRendering/Web/API/GetStats.cs

    r279 r306  
    2121
    2222                        result.Add ("players", new JSONNumber (GameManager.Instance.World.Players.Count));
    23             result.Add ("hostiles", new JSONNumber (Hostiles.Count));
    24             result.Add ("animals", new JSONNumber (Animals.Count));
     23                        result.Add ("hostiles", new JSONNumber (Hostiles.GetCount ()));
     24                        result.Add ("animals", new JSONNumber (Animals.GetCount ()));
    2525
    2626                        WriteJSON (resp, result);
  • binary-improvements/MapRendering/Web/API/GetWebUIUpdates.cs

    r279 r306  
    2424
    2525                        result.Add ("players", new JSONNumber (GameManager.Instance.World.Players.Count));
    26             result.Add ("hostiles", new JSONNumber (Hostiles.Count));
    27             result.Add ("animals", new JSONNumber (Animals.Count));
     26                        result.Add ("hostiles", new JSONNumber (Hostiles.GetCount ()));
     27                        result.Add ("animals", new JSONNumber (Animals.GetCount ()));
    2828
    2929                        result.Add ("newlogs", new JSONNumber (LogBuffer.Instance.LatestLine - latestLine));
  • binary-improvements/MapRendering/Web/API/WebAPI.cs

    r279 r306  
    77        public abstract class WebAPI
    88        {
    9                 public void WriteJSON (HttpListenerResponse resp, JSON.JSONNode root)
     9                public static void WriteJSON (HttpListenerResponse resp, JSON.JSONNode root)
    1010                {
    1111                        byte[] buf = Encoding.UTF8.GetBytes (root.ToString());
     
    1414                        resp.ContentEncoding = Encoding.UTF8;
    1515                        resp.OutputStream.Write (buf, 0, buf.Length);
     16                }
     17
     18                public static void WriteText (HttpListenerResponse _resp, string _text)
     19                {
     20                        byte[] buf = Encoding.UTF8.GetBytes (_text);
     21                        _resp.ContentLength64 = buf.Length;
     22                        _resp.ContentType = "text/plain";
     23                        _resp.ContentEncoding = Encoding.UTF8;
     24                        _resp.OutputStream.Write (buf, 0, buf.Length);
    1625                }
    1726
  • binary-improvements/MapRendering/Web/Handlers/ItemIconHandler.cs

    r292 r306  
    152152
    153153                private void AddIcon (string _name, Texture2D _tex, Dictionary<string, List<Color>> _tintedIcons) {
    154                         icons.Add (_name + "__FFFFFF", _tex.EncodeToPNG ());
     154                        icons [_name + "__FFFFFF"] = _tex.EncodeToPNG ();
    155155
    156156                        if (_tintedIcons.ContainsKey (_name)) {
     
    166166                                                }
    167167
    168                                                 icons.Add (tintedName, tintedTex.EncodeToPNG ());
     168                                                icons [tintedName] = tintedTex.EncodeToPNG ();
    169169
    170170                                                UnityEngine.Object.Destroy (tintedTex);
  • binary-improvements/MapRendering/Web/WebCommandResult.cs

    r279 r306  
    88using System.Net.Sockets;
    99using System.Threading;
     10using AllocsFixes.NetConnections.Servers.Web.API;
    1011
    1112namespace AllocsFixes.NetConnections.Servers.Web
     
    1314        public class WebCommandResult : IConsoleConnection
    1415        {
     16                public enum ResultType {
     17                        Full,
     18                        ResultOnly,
     19                        Raw
     20                }
     21
    1522                public static int handlingCount = 0;
    1623                public static int currentHandlers = 0;
     
    2027                private string command;
    2128                private string parameters;
     29                private ResultType responseType;
    2230
    23                 public WebCommandResult (string _command, string _parameters, HttpListenerResponse _response) {
     31                public WebCommandResult (string _command, string _parameters, ResultType _responseType, HttpListenerResponse _response) {
    2432                        Interlocked.Increment (ref handlingCount);
    2533                        Interlocked.Increment (ref currentHandlers);
     
    2836                        command = _command;
    2937                        parameters = _parameters;
     38                        responseType = _responseType;
    3039                }
    3140
     
    3847                        }
    3948
    40                         JSONObject result = new JSONObject ();
    41 
    42                         result.Add ("command", new JSONString (command));
    43                         result.Add ("parameters", new JSONString (parameters));
    44                         result.Add ("result", new JSONString (sb.ToString ()));
    45 
    4649                        response.SendChunked = false;
    4750
    4851                        try {
    49                                 WriteJSON (response, result);
     52                                if (responseType == ResultType.Raw) {
     53                                        WebAPI.WriteText (response, sb.ToString ());
     54                                } else {
     55                                        JSONNode result;
     56                                        if (responseType == ResultType.ResultOnly) {
     57                                                result = new JSONString (sb.ToString ());
     58                                        } else {
     59                                                JSONObject resultObj = new JSONObject ();
     60
     61                                                resultObj.Add ("command", new JSONString (command));
     62                                                resultObj.Add ("parameters", new JSONString (parameters));
     63                                                resultObj.Add ("result", new JSONString (sb.ToString ()));
     64
     65                                                result = resultObj;
     66                                        }
     67                                        WebAPI.WriteJSON (response, result);
     68                                }
    5069                        } catch (IOException e) {
    5170                                if (e.InnerException is SocketException) {
     
    6281
    6382                                msw.Stop ();
    64                                 totalHandlingTime += msw.ElapsedMicroseconds;
    65                                 Log.Out ("WebCommandResult.SendLines(): Took {0} µs", msw.ElapsedMicroseconds);
     83                                if (GamePrefs.GetInt (EnumGamePrefs.HideCommandExecutionLog) < 1) {
     84                                        totalHandlingTime += msw.ElapsedMicroseconds;
     85                                        Log.Out ("WebCommandResult.SendLines(): Took {0} µs", msw.ElapsedMicroseconds);
     86                                }
    6687                                Interlocked.Decrement (ref currentHandlers);
    6788                        }
    68                 }
    69 
    70                 public void WriteJSON (HttpListenerResponse resp, JSON.JSONNode root)
    71                 {
    72                         byte[] buf = Encoding.UTF8.GetBytes (root.ToString());
    73                         resp.ContentLength64 = buf.Length;
    74                         resp.ContentType = "application/json";
    75                         resp.ContentEncoding = Encoding.UTF8;
    76                         resp.OutputStream.Write (buf, 0, buf.Length);
    7789                }
    7890
Note: See TracChangeset for help on using the changeset viewer.