start robot, fix bug in keyboard
This commit is contained in:
parent
ff0a35dbe5
commit
718c9ba725
bricks
@ -1,220 +0,0 @@
|
||||
datablock fxDTSBrickData(LogicGate_cpu1_Data)
|
||||
{
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/cpu1.blb";
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Big";
|
||||
uiName = "cpu1";
|
||||
iconName = "";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 3;
|
||||
|
||||
isLogic = true;
|
||||
isLogicGate = true;
|
||||
isLogicInput = false;
|
||||
|
||||
logicUIName = "cpu1";
|
||||
logicUIDesc = "";
|
||||
|
||||
numLogicPorts = 37;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "27 7 -3";
|
||||
logicPortDir[0] = 1;
|
||||
logicPortUIName[0] = "";
|
||||
|
||||
logicPortType[1] = 1;
|
||||
logicPortPos[1] = "25 7 -3";
|
||||
logicPortDir[1] = 1;
|
||||
logicPortUIName[1] = "";
|
||||
|
||||
logicPortType[2] = 1;
|
||||
logicPortPos[2] = "23 7 -3";
|
||||
logicPortDir[2] = 1;
|
||||
logicPortUIName[2] = "";
|
||||
|
||||
logicPortType[3] = 1;
|
||||
logicPortPos[3] = "21 7 -3";
|
||||
logicPortDir[3] = 1;
|
||||
logicPortUIName[3] = "";
|
||||
|
||||
logicPortType[4] = 1;
|
||||
logicPortPos[4] = "19 7 -3";
|
||||
logicPortDir[4] = 1;
|
||||
logicPortUIName[4] = "";
|
||||
|
||||
logicPortType[5] = 1;
|
||||
logicPortPos[5] = "17 7 -3";
|
||||
logicPortDir[5] = 1;
|
||||
logicPortUIName[5] = "";
|
||||
|
||||
logicPortType[6] = 1;
|
||||
logicPortPos[6] = "15 7 -3";
|
||||
logicPortDir[6] = 1;
|
||||
logicPortUIName[6] = "";
|
||||
|
||||
logicPortType[7] = 1;
|
||||
logicPortPos[7] = "13 7 -3";
|
||||
logicPortDir[7] = 1;
|
||||
logicPortUIName[7] = "";
|
||||
|
||||
logicPortType[8] = 0;
|
||||
logicPortPos[8] = "27 7 -2";
|
||||
logicPortDir[8] = 1;
|
||||
logicPortUIName[8] = "";
|
||||
|
||||
logicPortType[9] = 0;
|
||||
logicPortPos[9] = "25 7 -2";
|
||||
logicPortDir[9] = 1;
|
||||
logicPortUIName[9] = "";
|
||||
|
||||
logicPortType[10] = 0;
|
||||
logicPortPos[10] = "23 7 -2";
|
||||
logicPortDir[10] = 1;
|
||||
logicPortUIName[10] = "";
|
||||
|
||||
logicPortType[11] = 0;
|
||||
logicPortPos[11] = "21 7 -2";
|
||||
logicPortDir[11] = 1;
|
||||
logicPortUIName[11] = "";
|
||||
|
||||
logicPortType[12] = 0;
|
||||
logicPortPos[12] = "19 7 -2";
|
||||
logicPortDir[12] = 1;
|
||||
logicPortUIName[12] = "";
|
||||
|
||||
logicPortType[13] = 0;
|
||||
logicPortPos[13] = "17 7 -2";
|
||||
logicPortDir[13] = 1;
|
||||
logicPortUIName[13] = "";
|
||||
|
||||
logicPortType[14] = 0;
|
||||
logicPortPos[14] = "15 7 -2";
|
||||
logicPortDir[14] = 1;
|
||||
logicPortUIName[14] = "";
|
||||
|
||||
logicPortType[15] = 0;
|
||||
logicPortPos[15] = "13 7 -2";
|
||||
logicPortDir[15] = 1;
|
||||
logicPortUIName[15] = "";
|
||||
|
||||
logicPortType[16] = 0;
|
||||
logicPortPos[16] = "7 7 -3";
|
||||
logicPortDir[16] = 1;
|
||||
logicPortUIName[16] = "";
|
||||
|
||||
logicPortType[17] = 0;
|
||||
logicPortPos[17] = "5 7 -3";
|
||||
logicPortDir[17] = 1;
|
||||
logicPortUIName[17] = "";
|
||||
|
||||
logicPortType[18] = 0;
|
||||
logicPortPos[18] = "3 7 -3";
|
||||
logicPortDir[18] = 1;
|
||||
logicPortUIName[18] = "";
|
||||
|
||||
logicPortType[19] = 0;
|
||||
logicPortPos[19] = "1 7 -3";
|
||||
logicPortDir[19] = 1;
|
||||
logicPortUIName[19] = "";
|
||||
|
||||
logicPortType[20] = 0;
|
||||
logicPortPos[20] = "-1 7 -3";
|
||||
logicPortDir[20] = 1;
|
||||
logicPortUIName[20] = "";
|
||||
|
||||
logicPortType[21] = 0;
|
||||
logicPortPos[21] = "-3 7 -3";
|
||||
logicPortDir[21] = 1;
|
||||
logicPortUIName[21] = "";
|
||||
|
||||
logicPortType[22] = 0;
|
||||
logicPortPos[22] = "-5 7 -3";
|
||||
logicPortDir[22] = 1;
|
||||
logicPortUIName[22] = "";
|
||||
|
||||
logicPortType[23] = 0;
|
||||
logicPortPos[23] = "-7 7 -3";
|
||||
logicPortDir[23] = 1;
|
||||
logicPortUIName[23] = "";
|
||||
|
||||
logicPortType[24] = 0;
|
||||
logicPortPos[24] = "-9 7 -3";
|
||||
logicPortDir[24] = 1;
|
||||
logicPortUIName[24] = "";
|
||||
|
||||
logicPortType[25] = 0;
|
||||
logicPortPos[25] = "-11 7 -3";
|
||||
logicPortDir[25] = 1;
|
||||
logicPortUIName[25] = "";
|
||||
|
||||
logicPortType[26] = 0;
|
||||
logicPortPos[26] = "-13 7 -3";
|
||||
logicPortDir[26] = 1;
|
||||
logicPortUIName[26] = "";
|
||||
|
||||
logicPortType[27] = 0;
|
||||
logicPortPos[27] = "-15 7 -3";
|
||||
logicPortDir[27] = 1;
|
||||
logicPortUIName[27] = "";
|
||||
|
||||
logicPortType[28] = 0;
|
||||
logicPortPos[28] = "-17 7 -3";
|
||||
logicPortDir[28] = 1;
|
||||
logicPortUIName[28] = "";
|
||||
|
||||
logicPortType[29] = 0;
|
||||
logicPortPos[29] = "-19 7 -3";
|
||||
logicPortDir[29] = 1;
|
||||
logicPortUIName[29] = "";
|
||||
|
||||
logicPortType[30] = 0;
|
||||
logicPortPos[30] = "-21 7 -3";
|
||||
logicPortDir[30] = 1;
|
||||
logicPortUIName[30] = "";
|
||||
|
||||
logicPortType[31] = 0;
|
||||
logicPortPos[31] = "-23 7 -3";
|
||||
logicPortDir[31] = 1;
|
||||
logicPortUIName[31] = "";
|
||||
|
||||
logicPortType[32] = 0;
|
||||
logicPortPos[32] = "-27 7 -3";
|
||||
logicPortDir[32] = 1;
|
||||
logicPortUIName[32] = "";
|
||||
|
||||
logicPortType[33] = 0;
|
||||
logicPortPos[33] = "-29 7 -3";
|
||||
logicPortDir[33] = 1;
|
||||
logicPortUIName[33] = "";
|
||||
|
||||
logicPortType[34] = 1;
|
||||
logicPortPos[34] = "27 -7 -3";
|
||||
logicPortDir[34] = 3;
|
||||
logicPortUIName[34] = "";
|
||||
|
||||
logicPortType[35] = 1;
|
||||
logicPortPos[35] = "23 -7 -3";
|
||||
logicPortDir[35] = 3;
|
||||
logicPortUIName[35] = "";
|
||||
|
||||
logicPortType[36] = 1;
|
||||
logicPortPos[36] = "19 -7 -3";
|
||||
logicPortDir[36] = 3;
|
||||
logicPortUIName[36] = "";
|
||||
};
|
||||
|
||||
function LogicGate_cpu1_Data::doLogic(%this, %obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
function LogicGate_cpu1_Data::Logic_onGateAdded(%this, %obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
function LogicGate_cpu1_Data::Logic_onInput(%this, %obj, %pos, %norm)
|
||||
{
|
||||
|
||||
}
|
@ -1,190 +0,0 @@
|
||||
datablock fxDTSBrickData(LogicGate_ram8x12_Data)
|
||||
{
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/ram8x12.blb";
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Big";
|
||||
uiName = "ram8x12";
|
||||
iconName = "";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 3;
|
||||
|
||||
isLogic = true;
|
||||
isLogicGate = true;
|
||||
isLogicInput = false;
|
||||
|
||||
logicUIName = "ram8x12";
|
||||
logicUIDesc = "";
|
||||
|
||||
numLogicPorts = 31;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "7 -11 -3";
|
||||
logicPortDir[0] = 3;
|
||||
logicPortUIName[0] = "";
|
||||
|
||||
logicPortType[1] = 1;
|
||||
logicPortPos[1] = "5 -11 -3";
|
||||
logicPortDir[1] = 3;
|
||||
logicPortUIName[1] = "";
|
||||
|
||||
logicPortType[2] = 1;
|
||||
logicPortPos[2] = "3 -11 -3";
|
||||
logicPortDir[2] = 3;
|
||||
logicPortUIName[2] = "";
|
||||
|
||||
logicPortType[3] = 1;
|
||||
logicPortPos[3] = "1 -11 -3";
|
||||
logicPortDir[3] = 3;
|
||||
logicPortUIName[3] = "";
|
||||
|
||||
logicPortType[4] = 1;
|
||||
logicPortPos[4] = "-1 -11 -3";
|
||||
logicPortDir[4] = 3;
|
||||
logicPortUIName[4] = "";
|
||||
|
||||
logicPortType[5] = 1;
|
||||
logicPortPos[5] = "-3 -11 -3";
|
||||
logicPortDir[5] = 3;
|
||||
logicPortUIName[5] = "";
|
||||
|
||||
logicPortType[6] = 1;
|
||||
logicPortPos[6] = "-5 -11 -3";
|
||||
logicPortDir[6] = 3;
|
||||
logicPortUIName[6] = "";
|
||||
|
||||
logicPortType[7] = 1;
|
||||
logicPortPos[7] = "-7 -11 -3";
|
||||
logicPortDir[7] = 3;
|
||||
logicPortUIName[7] = "";
|
||||
|
||||
logicPortType[8] = 0;
|
||||
logicPortPos[8] = "7 -11 -2";
|
||||
logicPortDir[8] = 3;
|
||||
logicPortUIName[8] = "";
|
||||
|
||||
logicPortType[9] = 0;
|
||||
logicPortPos[9] = "5 -11 -2";
|
||||
logicPortDir[9] = 3;
|
||||
logicPortUIName[9] = "";
|
||||
|
||||
logicPortType[10] = 0;
|
||||
logicPortPos[10] = "3 -11 -2";
|
||||
logicPortDir[10] = 3;
|
||||
logicPortUIName[10] = "";
|
||||
|
||||
logicPortType[11] = 0;
|
||||
logicPortPos[11] = "1 -11 -2";
|
||||
logicPortDir[11] = 3;
|
||||
logicPortUIName[11] = "";
|
||||
|
||||
logicPortType[12] = 0;
|
||||
logicPortPos[12] = "-1 -11 -2";
|
||||
logicPortDir[12] = 3;
|
||||
logicPortUIName[12] = "";
|
||||
|
||||
logicPortType[13] = 0;
|
||||
logicPortPos[13] = "-3 -11 -2";
|
||||
logicPortDir[13] = 3;
|
||||
logicPortUIName[13] = "";
|
||||
|
||||
logicPortType[14] = 0;
|
||||
logicPortPos[14] = "-5 -11 -2";
|
||||
logicPortDir[14] = 3;
|
||||
logicPortUIName[14] = "";
|
||||
|
||||
logicPortType[15] = 0;
|
||||
logicPortPos[15] = "-7 -11 -2";
|
||||
logicPortDir[15] = 3;
|
||||
logicPortUIName[15] = "";
|
||||
|
||||
logicPortType[16] = 1;
|
||||
logicPortPos[16] = "7 11 -3";
|
||||
logicPortDir[16] = 2;
|
||||
logicPortUIName[16] = "";
|
||||
|
||||
logicPortType[17] = 1;
|
||||
logicPortPos[17] = "7 9 -3";
|
||||
logicPortDir[17] = 2;
|
||||
logicPortUIName[17] = "";
|
||||
|
||||
logicPortType[18] = 1;
|
||||
logicPortPos[18] = "7 7 -3";
|
||||
logicPortDir[18] = 2;
|
||||
logicPortUIName[18] = "";
|
||||
|
||||
logicPortType[19] = 1;
|
||||
logicPortPos[19] = "7 5 -3";
|
||||
logicPortDir[19] = 2;
|
||||
logicPortUIName[19] = "";
|
||||
|
||||
logicPortType[20] = 1;
|
||||
logicPortPos[20] = "7 3 -3";
|
||||
logicPortDir[20] = 2;
|
||||
logicPortUIName[20] = "";
|
||||
|
||||
logicPortType[21] = 1;
|
||||
logicPortPos[21] = "7 1 -3";
|
||||
logicPortDir[21] = 2;
|
||||
logicPortUIName[21] = "";
|
||||
|
||||
logicPortType[22] = 1;
|
||||
logicPortPos[22] = "7 -1 -3";
|
||||
logicPortDir[22] = 2;
|
||||
logicPortUIName[22] = "";
|
||||
|
||||
logicPortType[23] = 1;
|
||||
logicPortPos[23] = "7 -3 -3";
|
||||
logicPortDir[23] = 2;
|
||||
logicPortUIName[23] = "";
|
||||
|
||||
logicPortType[24] = 1;
|
||||
logicPortPos[24] = "7 -5 -3";
|
||||
logicPortDir[24] = 2;
|
||||
logicPortUIName[24] = "";
|
||||
|
||||
logicPortType[25] = 1;
|
||||
logicPortPos[25] = "7 -7 -3";
|
||||
logicPortDir[25] = 2;
|
||||
logicPortUIName[25] = "";
|
||||
|
||||
logicPortType[26] = 1;
|
||||
logicPortPos[26] = "7 -9 -3";
|
||||
logicPortDir[26] = 2;
|
||||
logicPortUIName[26] = "";
|
||||
|
||||
logicPortType[27] = 1;
|
||||
logicPortPos[27] = "7 -11 -3";
|
||||
logicPortDir[27] = 2;
|
||||
logicPortUIName[27] = "";
|
||||
|
||||
logicPortType[28] = 1;
|
||||
logicPortPos[28] = "-7 -9 -3";
|
||||
logicPortDir[28] = 0;
|
||||
logicPortUIName[28] = "";
|
||||
|
||||
logicPortType[29] = 1;
|
||||
logicPortPos[29] = "-7 -7 -3";
|
||||
logicPortDir[29] = 0;
|
||||
logicPortUIName[29] = "";
|
||||
|
||||
logicPortType[30] = 1;
|
||||
logicPortPos[30] = "-7 -5 -3";
|
||||
logicPortDir[30] = 0;
|
||||
logicPortUIName[30] = "";
|
||||
};
|
||||
|
||||
function LogicGate_ram8x12_Data::doLogic(%this, %obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
function LogicGate_ram8x12_Data::Logic_onGateAdded(%this, %obj)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
function LogicGate_ram8x12_Data::Logic_onInput(%this, %obj, %pos, %norm)
|
||||
{
|
||||
|
||||
}
|
2626
bricks/blb/RobotController.blb
Normal file
2626
bricks/blb/RobotController.blb
Normal file
File diff suppressed because it is too large
Load Diff
@ -25,6 +25,3 @@ exec("./outputs/TextBrick2.cs");
|
||||
|
||||
exec("./special/EventGate.cs");
|
||||
exec("./special/rom.cs");
|
||||
|
||||
//exec("./big/cpu1.cs");
|
||||
//exec("./big/ram8x12.cs");
|
||||
|
@ -11,7 +11,7 @@ return function(gate, argv)
|
||||
|
||||
local code = keycode+(status and 128 or 0)
|
||||
|
||||
if #gate.queueBits > 1024 return end
|
||||
if #gate.queueBits > 1024 then return end
|
||||
|
||||
queueBit(gate, 1)
|
||||
for bitidx = 1, 8 do
|
||||
|
BIN
bricks/special/cube.dts
Normal file
BIN
bricks/special/cube.dts
Normal file
Binary file not shown.
269
bricks/special/robot.cs
Normal file
269
bricks/special/robot.cs
Normal file
@ -0,0 +1,269 @@
|
||||
if(!isObject(LuaLogic_RobotBrickGroup)) {
|
||||
new SimGroup(LuaLogic_RobotBrickGroup)
|
||||
{
|
||||
bl_id = 12345678;
|
||||
name = "\c1Robot";
|
||||
QuotaObject = GlobalQuota;
|
||||
};
|
||||
mainBrickGroup.add(LuaLogic_RobotBrickGroup);
|
||||
}
|
||||
|
||||
datablock StaticShapeData(LuaLogic_RobotShapeData) {
|
||||
shapeFile = "./cube.dts";
|
||||
};
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_RobotController_Data) {
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/RobotController.blb";
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Special";
|
||||
uiName = "Robot Controller";
|
||||
iconName = $LuaLogic::Path @ "icons/Robot Controller";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 3;
|
||||
|
||||
isLogic = true;
|
||||
isLogicGate = true;
|
||||
isLogicInput = true;
|
||||
|
||||
logicInit = lualogic_readfile($LuaLogic::Path @ "bricks/special/robot-init.lua" );
|
||||
logicUpdate = lualogic_readfile($LuaLogic::Path @ "bricks/special/robot-update.lua");
|
||||
logicGlobal = lualogic_readfile($LuaLogic::Path @ "bricks/special/robot-global.lua");
|
||||
|
||||
logicUIName = "Robot Controller";
|
||||
logicUIDesc = "Creates and controls a mobile robot that can detect and place bricks";
|
||||
|
||||
numLogicPorts = 22;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "15 -3 0";
|
||||
logicPortDir[0] = 3;
|
||||
logicPortUIName[0] = "ColorIn0";
|
||||
|
||||
logicPortType[1] = 1;
|
||||
logicPortPos[1] = "13 -3 0";
|
||||
logicPortDir[1] = 3;
|
||||
logicPortUIName[1] = "ColorIn1";
|
||||
|
||||
logicPortType[2] = 1;
|
||||
logicPortPos[2] = "11 -3 0";
|
||||
logicPortDir[2] = 3;
|
||||
logicPortUIName[2] = "ColorIn2";
|
||||
|
||||
logicPortType[3] = 1;
|
||||
logicPortPos[3] = "9 -3 0";
|
||||
logicPortDir[3] = 3;
|
||||
logicPortUIName[3] = "ColorIn3";
|
||||
|
||||
logicPortType[4] = 1;
|
||||
logicPortPos[4] = "7 -3 0";
|
||||
logicPortDir[4] = 3;
|
||||
logicPortUIName[4] = "ColorIn4";
|
||||
|
||||
logicPortType[5] = 1;
|
||||
logicPortPos[5] = "5 -3 0";
|
||||
logicPortDir[5] = 3;
|
||||
logicPortUIName[5] = "ColorIn5";
|
||||
|
||||
logicPortType[6] = 1;
|
||||
logicPortPos[6] = "1 -3 0";
|
||||
logicPortDir[6] = 3;
|
||||
logicPortUIName[6] = "Destroy Brick";
|
||||
|
||||
logicPortType[7] = 1;
|
||||
logicPortPos[7] = "-1 -3 0";
|
||||
logicPortDir[7] = 3;
|
||||
logicPortUIName[7] = "Plant Brick";
|
||||
|
||||
logicPortType[8] = 1;
|
||||
logicPortPos[8] = "-5 -3 0";
|
||||
logicPortDir[8] = 3;
|
||||
logicPortUIName[8] = "Move Down";
|
||||
|
||||
logicPortType[9] = 1;
|
||||
logicPortPos[9] = "-7 -3 0";
|
||||
logicPortDir[9] = 3;
|
||||
logicPortUIName[9] = "Move Up";
|
||||
|
||||
logicPortType[10] = 1;
|
||||
logicPortPos[10] = "-9 -3 0";
|
||||
logicPortDir[10] = 3;
|
||||
logicPortUIName[10] = "Move Right";
|
||||
|
||||
logicPortType[11] = 1;
|
||||
logicPortPos[11] = "-11 -3 0";
|
||||
logicPortDir[11] = 3;
|
||||
logicPortUIName[11] = "Move Left";
|
||||
|
||||
logicPortType[12] = 1;
|
||||
logicPortPos[12] = "-13 -3 0";
|
||||
logicPortDir[12] = 3;
|
||||
logicPortUIName[12] = "Move Backward";
|
||||
|
||||
logicPortType[13] = 1;
|
||||
logicPortPos[13] = "-15 -3 0";
|
||||
logicPortDir[13] = 3;
|
||||
logicPortUIName[13] = "Move Forward";
|
||||
|
||||
logicPortType[14] = 0;
|
||||
logicPortPos[14] = "15 3 0";
|
||||
logicPortDir[14] = 1;
|
||||
logicPortUIName[14] = "ColorOut0";
|
||||
|
||||
logicPortType[15] = 0;
|
||||
logicPortPos[15] = "13 3 0";
|
||||
logicPortDir[15] = 1;
|
||||
logicPortUIName[15] = "ColorOut1";
|
||||
|
||||
logicPortType[16] = 0;
|
||||
logicPortPos[16] = "11 3 0";
|
||||
logicPortDir[16] = 1;
|
||||
logicPortUIName[16] = "ColorOut2";
|
||||
|
||||
logicPortType[17] = 0;
|
||||
logicPortPos[17] = "9 3 0";
|
||||
logicPortDir[17] = 1;
|
||||
logicPortUIName[17] = "ColorOut3";
|
||||
|
||||
logicPortType[18] = 0;
|
||||
logicPortPos[18] = "7 3 0";
|
||||
logicPortDir[18] = 1;
|
||||
logicPortUIName[18] = "ColorOut4";
|
||||
|
||||
logicPortType[19] = 0;
|
||||
logicPortPos[19] = "5 3 0";
|
||||
logicPortDir[19] = 1;
|
||||
logicPortUIName[19] = "ColorOut5";
|
||||
|
||||
logicPortType[20] = 0;
|
||||
logicPortPos[20] = "1 3 0";
|
||||
logicPortDir[20] = 1;
|
||||
logicPortUIName[20] = "Brick Detected";
|
||||
|
||||
logicPortType[21] = 1;
|
||||
logicPortPos[21] = "-1 3 0";
|
||||
logicPortDir[21] = 1;
|
||||
logicPortUIName[21] = "Detect Brick";
|
||||
};
|
||||
|
||||
function LogicGate_RobotController_Data::getRelativeVector(%this, %obj, %vec)
|
||||
{
|
||||
%rot = %obj.angleID;
|
||||
%x = getWord(%vec, 0);
|
||||
%y = getWord(%vec, 1);
|
||||
%z = getWord(%vec, 2);
|
||||
%ax = %x;
|
||||
switch(%rot)
|
||||
{
|
||||
case 1:
|
||||
%x = %y;
|
||||
%y = -%ax;
|
||||
case 2:
|
||||
%x = -%x;
|
||||
%y = -%y;
|
||||
case 3:
|
||||
%x = -%y;
|
||||
%y = %ax;
|
||||
}
|
||||
|
||||
return %x SPC %y SPC %z;
|
||||
}
|
||||
|
||||
function LogicGate_RobotController_Data::onDeath(%this, %obj)
|
||||
{
|
||||
if(isObject(%obj.illogicRobot))
|
||||
%obj.illogicRobot.delete();
|
||||
}
|
||||
|
||||
function LogicGate_RobotController_Data::onRemove(%this, %obj)
|
||||
{
|
||||
if(isObject(%obj.illogicRobot))
|
||||
%obj.illogicRobot.delete();
|
||||
}
|
||||
|
||||
function LogicGate_RobotController_Data::doLogic(%this, %obj)
|
||||
{
|
||||
%x = (!$LBC::Ports::LastBrickState[%obj, 10] && $LBC::Ports::BrickState[%obj, 10]) - (!$LBC::Ports::LastBrickState[%obj, 11] && $LBC::Ports::BrickState[%obj, 11]);
|
||||
%y = (!$LBC::Ports::LastBrickState[%obj, 13] && $LBC::Ports::BrickState[%obj, 13]) - (!$LBC::Ports::LastBrickState[%obj, 12] && $LBC::Ports::BrickState[%obj, 12]);
|
||||
%z = (!$LBC::Ports::LastBrickState[%obj, 9] && $LBC::Ports::BrickState[%obj, 9]) - (!$LBC::Ports::LastBrickState[%obj, 8] && $LBC::Ports::BrickState[%obj, 8]);
|
||||
%vec = %this.getRelativeVector(%obj, %x*0.5 SPC %y*0.5 SPC %z*0.2);
|
||||
|
||||
%robot = %obj.illogicRobot;
|
||||
|
||||
if(%vec !$= "0 0 0")
|
||||
%robot.setTransform(vectorAdd(%robot.getPosition(), %vec));
|
||||
|
||||
%pos = %robot.getPosition();
|
||||
|
||||
if(!$LBC::Ports::LastBrickState[%obj, 21] && $LBC::Ports::BrickState[%obj, 21])
|
||||
{
|
||||
initContainerBoxSearch(%pos, "0.49 0.49 0.19", $TypeMasks::FxBrickObjectType);
|
||||
if(isObject(%sobj = containerSearchNext()))
|
||||
{
|
||||
%obj.Logic_SetOutput(20, true);
|
||||
|
||||
%color = %sobj.getColorID();
|
||||
for(%i = 0; %i < 6; %i++)
|
||||
%obj.Logic_SetOutput(14+%i, (%color >> %i) & 1);
|
||||
|
||||
%obj.illogicRobotBrick = %sobj;
|
||||
}
|
||||
else
|
||||
{
|
||||
%obj.Logic_SetOutput(20, false);
|
||||
|
||||
for(%i = 0; %i < 6; %i++)
|
||||
%obj.Logic_SetOutput(14+%i, false);
|
||||
|
||||
%obj.illogicRobotBrick = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$LBC::Ports::LastBrickState[%obj, 6] && $LBC::Ports::BrickState[%obj, 6])
|
||||
{
|
||||
initContainerBoxSearch(%pos, "0.49 0.49 0.19", $TypeMasks::FxBrickObjectType);
|
||||
if(isObject(%sobj = containerSearchNext()) && %sobj.getGroup() == nameToID(LuaLogic_RobotBrickGroup))
|
||||
%sobj.delete();
|
||||
}
|
||||
|
||||
if(!$LBC::Ports::LastBrickState[%obj, 7] && $LBC::Ports::BrickState[%obj, 7])
|
||||
{
|
||||
for(%i = 0; %i < 6; %i++)
|
||||
%color += mPow(2, %i) * $LBC::Ports::BrickState[%obj, %i];
|
||||
|
||||
%brick = new fxDTSBrick()
|
||||
{
|
||||
datablock = brick1x1fData;
|
||||
position = %pos;
|
||||
colorID = %color;
|
||||
isPlanted = 1;
|
||||
};
|
||||
|
||||
%err = %brick.plant();
|
||||
if(%err != 0 && %err != 2)
|
||||
%brick.delete();
|
||||
else
|
||||
{
|
||||
LuaLogic_RobotBrickGroup.add(%brick);
|
||||
%brick.setTrusted(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function LogicGate_RobotController_Data::Logic_onGateAdded(%this, %obj)
|
||||
{
|
||||
if(isObject(%obj.illogicRobot))
|
||||
%obj.illogicRobot.delete();
|
||||
|
||||
%pos = %obj.getPosition();
|
||||
%rpos = vectorAdd(%pos, %this.getRelativeVector(%obj, "0.25 7.75 0"));
|
||||
%robot = new StaticShape()
|
||||
{
|
||||
datablock = LuaLogic_BrickData;
|
||||
position = %rpos;
|
||||
};
|
||||
%robot.setNodeColor("ALL", "1 1 1 1");
|
||||
missionCleanup.add(%robot);
|
||||
|
||||
%obj.illogicRobot = %robot;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user