add robot prototype

This commit is contained in:
Redo
2022-10-28 15:25:25 -06:00
parent 718c9ba725
commit d768193275
5 changed files with 221 additions and 128 deletions

View File

@@ -30,17 +30,19 @@ package lualogic_rom_update {
};
schedule(0, 0, activatePackage, lualogic_rom_update);
function lualogic_rom_updatebrick(%brick, %instant) {
function lualogic_rom_updatebrick(%brick) {
cancel(%brick.lualogic_rom_updatebrick_schedule);
if(%instant) lualogic_rom_updatebrick_final(%brick);
else %brick.lualogic_rom_updatebrick_schedule = schedule(100, 0, lualogic_rom_updatebrick_final, %brick);
%brick.lualogic_rom_updatebrick_schedule = schedule(100, 0, lualogic_rom_updatebrick_final, %brick, %brick.getWorldBox());
}
function lualogic_rom_updatebrick_final(%brick) {
if(!isObject(%brick)) return;
if(%brick.lualogic_rom_delete) { if(%brick.lualogic_rom_deletedone) return; %brick.lualogic_rom_deletedone = 1; }
function lualogic_rom_updatebrick_final(%brick, %box) {
if(isObject(%brick)) {
if(%brick.lualogic_rom_delete) {
if(%brick.lualogic_rom_deletedone) return;
%brick.lualogic_rom_deletedone = 1;
}
}
// update any roms below
%box = %brick.getWorldBox();
%boxl = getWords(%box, 0, 2); %boxlz = getWord(%boxl, 2);
%boxh = getWords(%box, 3, 5);
%boxs = vectorSub(%boxh, %boxl);
@@ -60,9 +62,11 @@ function lualogic_rom_updatebrick_final(%brick) {
}
// if rom, update
if(%brick.lualogic_rom_delete) return;
if(%brick.getDatablock().isLogicRom) {
lualogic_rom_updatedata(%brick);
if(isObject(%brick)) {
if(%brick.lualogic_rom_delete) return;
if(%brick.getDatablock().isLogicRom) {
lualogic_rom_updatedata(%brick);
}
}
}