Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- include "lse.core.electric.scheme.gs"
- static class SchemeDebugStatic
- {
- public int Counter;
- };
- class SchemeDebug isclass GSObject
- {
- LseElectricScheme scheme;
- Locomotive owner;
- LseElectricLink[] watchedLinks;
- string[] watchedLinkNames;
- float minCurrent = 0.5;
- Browser window;
- public void Init(LseElectricScheme scheme, string linkNames)
- {
- me.scheme = scheme;
- watchedLinkNames = LStr.SplitWords(linkNames, "");
- watchedLinks = new LseElectricLink[watchedLinkNames.size()];
- int i;
- for (i = 0; i < watchedLinkNames.size(); ++i)
- watchedLinks[i] = scheme.GetLink(watchedLinkNames[i]);
- owner = cast <Locomotive> Router.GetCurrentThreadGameObject();
- }
- HTMLBuffer buf = HTMLBufferStatic.Construct();
- public void Update()
- {
- buf.Clear();
- buf.Print("<html><body><table><tr>");
- LStr.Format(buf, "<td>$0</td>", owner.GetLocalisedName());
- int i;
- for (i = 0; i < watchedLinks.size(); ++i) {
- LseElectricLink link = watchedLinks[i];
- string color;
- if (!link) color = "#999999";
- else if (Math.Fabs(link.Current) >= minCurrent) color = "#00ff00";
- else color = "#ff0000";
- LStr.Format(buf, "<td bgcolor='$0'>$1</td>", color, watchedLinkNames[i]);
- }
- buf.Print("</tr></table></body></html>");
- window.LoadHTMLString(owner.GetAsset(), buf.AsString());
- }
- public void Show()
- {
- int count = SchemeDebugStatic.Counter++;
- window = Constructors.NewBrowser();
- window.SetWindowPosition(0, 50 * count);
- window.SetWindowSize(Interface.GetDisplayWidth(), 30);
- window.SetWindowStyle(Browser.STYLE_TOOLTIP);
- window.SetCloseEnabled(false);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement