Space Engineers

Katt a képre
  • RoboKutya78
    #2519
    Rövidebb conténer sriptet találtam de az ha jól sejtem csak a kis konténerek tartalmát listázta
    SPOILER! Kattints ide a szöveg elolvasásához!
    const string PANEL_NAME = "LCD Panel 2";
    const string CONTAINER_NAME = "Large Cargo Container 2";

    void Main()
    {
    List<IMyTerminalBlock> work = new List<IMyTerminalBlock>();
    GridTerminalSystem.SearchBlocksOfName(PANEL_NAME, work);
    IMyTextPanel panel = (IMyTextPanel)work[0];
    GridTerminalSystem.SearchBlocksOfName(CONTAINER_NAME, work);
    IMyCargoContainer container = (IMyCargoContainer)work[0];
    panel.WritePublicText(container.CustomName + " Inventory\n------------------------------------------------------\n", false);

    var containerItems = ((IMyInventoryOwner)container).GetInventory(0).GetItems();

    List<String> list = new List<String>();
    for(int j = containerItems.Count - 1; j >= 0; j--)
    {
    String txt = decodeItemName(containerItems[j].Content.SubtypeName, containerItems[j].Content.TypeId.ToString()) + " - ";
    String amt = amountFormatter((float)containerItems[j].Amount,containerItems[j].Content.TypeId.ToString());
    txt += amt;
    txt += "\n";
    list.Add(txt);
    }
    list.Sort();
    List<String>.Enumerator e = list.GetEnumerator();
    while (e.MoveNext()) {
    panel.WritePublicText(e.Current, true);
    }

    panel.ShowTextureOnScreen();
    panel.ShowPublicTextOnScreen();
    }

    String amountFormatter(float amt, String typeId) {
    if (typeId.EndsWith("_Ore") || typeId.EndsWith("_Ingot")) {
    if (amt > 1000.0f) {
    return "" + Math.Round((float)amt/1000,2) + "K";
    } else {
    return "" + Math.Round((float)amt,2);
    }
    }
    return "" + Math.Round((float)amt,0);
    }

    String decodeItemName(String name, String typeId)
    {
    if (name.Equals("Construction")) { return "Construction Component"; }
    if (name.Equals("MetalGrid")) { return "Metal Grid"; }
    if (name.Equals("InteriorPlate")) { return "Interior Plate"; }
    if (name.Equals("SteelPlate")) { return "Steel Plate"; }
    if (name.Equals("SmallTube")) { return "Small Steel Tube"; }
    if (name.Equals("LargeTube")) { return "Large Steel Tube"; }
    if (name.Equals("BulletproofGlass")) { return "Bulletproof Glass"; }
    if (name.Equals("Reactor")) { return "Reactor Component"; }
    if (name.Equals("Thrust")) { return "Thruster Component"; }
    if (name.Equals("GravityGenerator")) { return "GravGen Component"; }
    if (name.Equals("Medical")) { return "Medical Component"; }
    if (name.Equals("RadioCommunication")) { return "Radio Component"; }
    if (name.Equals("Detector")) { return "Detector Component"; }
    if (name.Equals("SolarCell")) { return "Solar Cell"; }
    if (name.Equals("PowerCell")) { return "Power Cell"; }
    if (name.Equals("AutomaticRifleItem")) { return "Rifle"; }
    if (name.Equals("AutomaticRocketLauncher")) { return "Rocket Launcher"; }
    if (name.Equals("WelderItem")) { return "Welder"; }
    if (name.Equals("AngleGrinderItem")) { return "Grinder"; }
    if (name.Equals("HandDrillItem")) { return "Hand Drill"; }
    if (typeId.EndsWith("_Ore")) {
    if (name.Equals("Stone")) {
    return name;
    }
    return name + " Ore";
    }
    if (typeId.EndsWith("_Ingot")) {
    if (name.Equals("Stone")) {
    return "Gravel";
    }
    if (name.Equals("Magnesium")) {
    return name + " Powder";
    }
    if (name.Equals("Silicon")) {
    return name + " Wafer";
    }
    return name + " Ingot";
    }
    return name;
    }

    #Konténer készlet lista#

    1. Lerakod a Programable Block-ot beilleszted a kódot
    2. const string CONTAINER_NAME = "konténernév"; Megadod a kilstázandó konténer nevét
    3. const string PANEL_NAME = "LCD Panel 2"; Megadod az Lcd panel nevét
    4. Időzítő Blokot raksz 1. helyre a program block Aungment: nincs 2. helyre berakod az időzítő blokkot.
    5. Időzitő 1 mp-re és indít parancs.
    6. Elvileg nagy konténerre nem jó.