-
#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ó.
