Compare commits

..

3 Commits

Author SHA1 Message Date
64f4304626 fixed invManager wrong invState update
thanks chatGPT
2024-01-29 00:08:13 +01:00
8cd105b84c start termianl if not advanced computer 2024-01-28 16:46:57 +01:00
ce0e89f5b3 improved turtle defrag 2024-01-28 16:13:09 +01:00
2 changed files with 25 additions and 7 deletions

View File

@@ -1,9 +1,20 @@
import kernel.ui.WindowManager;
import kernel.ps.ProcessManager;
import kernel.binstore.BinStore;
import kernel.MainTerm;
import lib.HomeContext;
class Startup {
public static function main() {
var main = new HomeContext();
if (MainTerm.instance.isColor()) {
var main = new HomeContext();
main.run();
main.run();
} else {
var term = BinStore.instantiate("terminal");
var pid = ProcessManager.run(term, {});
var ctx = WindowManager.getContextByPID(pid);
WindowManager.focusContextToOutput(ctx[0], "main");
}
}
}

View File

@@ -128,7 +128,7 @@ class InvManager {
var topIndex = slots.length - 1;
for (k => slot in slots) {
if (topIndex <= k) {
if (topIndex < k) {
return;
}
@@ -138,8 +138,12 @@ class InvManager {
return;
}
while (true) {
if (topIndex <= k) {
var loopProtect = 20;
while (loopProtect > 0) {
loopProtect--;
if (topIndex < k) {
return;
}
@@ -156,10 +160,9 @@ class InvManager {
Log.error("Failed to transfer items");
}
// Update invState
var topState = invState.get(slots[topIndex]);
topState.count += transferCount;
invState.set(topIndex, topState);
invState.set(slots[topIndex], topState);
var botState = invState.get(slot);
botState.count -= transferCount;
@@ -171,6 +174,10 @@ class InvManager {
break;
}
}
if (loopProtect < 0) {
Log.silly("Loopprotection triggerd");
}
}
}
}