Space Engineers

Katt a képre
  • RJoco
    #2876
    A spoiler-ben minden benne van, anno én ezt így mentettem el. Ez a komplett hsz volt.
    SPOILER! Kattints ide a szöveg elolvasásához!
    1. kód
    Ez a kód változtatja meg az időt, és kiiratja egy panelre.
    Kritériumok:
    - a timerbock neve nem tartalmathaz szóközt (pl: Timer_Block)
    - a panelnek a neve: timerblock neve + Panel (pl: Timer_Block Panel)
    Használata:
    - az adott gombon kiválasztod a Prog Blockot
    - run with argument
    - argumentnek megadott a timerblock nevét majd szóközzel elválasztva +- jellel a módositó időt (pl: Timer_Block +1; Timer_Block -10)
    - és oké
    Ezzel a kóddal csak akkor változik a kirt idő, amikor gombbal változtatjuk


    void Main(String args)
    {
    String[] cmd = args.Split(' ');
    IMyTimerBlock t = (IMyTimerBlock)GridTerminalSystem.GetBlockWithName(cmd[0]);
    if (cmd[1].Contains("+"))
    {
    t.SetValueFloat("TriggerDelay", t.GetValueFloat("TriggerDelay") + float.Parse(cmd[1].Replace("+", "")));
    }
    if (cmd[1].Contains("-"))
    {
    t.SetValueFloat("TriggerDelay", t.GetValueFloat("TriggerDelay") - float.Parse(cmd[1].Replace("-", "")));
    }
    IMyTextPanel panel = (IMyTextPanel)GridTerminalSystem.GetBlockWithName(cmd[0] + " Panel");
    panel.WritePublicText(" " + cmd[0], false);
    panel.WritePublicText("\n Delay: " + t.GetValueFloat("TriggerDelay"), true);
    }


    2. kód
    Ez a kód arra szolgál, hogy ha nem gombbal változtatjuk az időt, hanem config panelben, akkor is megváltoztassa a kiirt időt
    Kritérium:
    - A panelnek a neve: timerblock neve + Panel (pl: Timer_Block Panel)
    Használat:
    - Timerblockban egy önmagát újrainditó cucc(1-10 mp)
    - az adott program block: run with argument
    - argumentnek megadod a TimerBlock nevét (pl: Timer_block)
    - és okéé


    void Main(String args)
    {
    IMyTimerBlock timer = (IMyTimerBlock)GridTerminalSystem.GetBlockWithName(args);
    IMyTextPanel panel = (IMyTextPanel)GridTerminalSystem.GetBlockWithName(args+" Panel");
    panel.WritePublicText(" " + args, false);
    panel.WritePublicText("\n Delay: " + timer.GetValueFloat("TriggerDelay"), true);
    }


    Ha szükséges, hogy nézze azt is hogy a timerblock nevében szóköz van, akkor szóljatok és megcsinálom :)
    Remélem tetszik, működik és hasznos lesz számotokra :)