add io brick, misc fixes
This commit is contained in:
@ -178,9 +178,10 @@ function LogicGate_RobotController_Data::LuaLogic_Callback(%this, %brick, %data)
|
||||
%tbrick.schedule(0, delete);
|
||||
}
|
||||
} else if(%first $= "P") { // plant brick
|
||||
LogicRobot_CreateBrickGroup();
|
||||
%brickGroup = LogicRobot_CreateBrickGroup();
|
||||
|
||||
if(!isObject(%tbrick)) {
|
||||
%robot.setTransform(vectorAdd(%pos, "0 0 0.2") SPC %robot.lr_rotation);
|
||||
%nbrick = new fxDTSBrick() {
|
||||
datablock = brick1x1fData;
|
||||
position = %pos;
|
||||
@ -189,24 +190,34 @@ function LogicGate_RobotController_Data::LuaLogic_Callback(%this, %brick, %data)
|
||||
shapeFxId = getWord(%field, 3);
|
||||
isPlanted = 1;
|
||||
};
|
||||
%brickGroup.add(%nbrick);
|
||||
%nbrick.setTransform(%pos SPC "0 0 1 0");
|
||||
%nbrick.trustCheckFinished();
|
||||
|
||||
%err = %nbrick.plant();
|
||||
if(%err != 0 && %err != 2 && %err != 3) {
|
||||
if(%err == 1 || %err == 5 || %err == 3) {
|
||||
%nbrick.delete();
|
||||
} else {
|
||||
%nbrick.setRaycasting(getWord(%field, 4));
|
||||
%nbrick.setColliding (getWord(%field, 5));
|
||||
%nbrick.setRendering (getWord(%field, 6));
|
||||
|
||||
BrickGroup_12345678.add(%nbrick);
|
||||
%nbrick.setTrusted(1);
|
||||
}
|
||||
%robot.setTransform(%pos SPC %robot.lr_rotation);
|
||||
} else {
|
||||
%tbrick.setColor(getWord(%field, 1));
|
||||
%tbrick.setColorFx(getWord(%field, 2));
|
||||
%tbrick.setShapeFx(getWord(%field, 3));
|
||||
%tbrick.setRaycasting(getWord(%field, 4));
|
||||
%tbrick.setColliding (getWord(%field, 5));
|
||||
%tbrick.setRendering (getWord(%field, 6));
|
||||
}
|
||||
} else if(%first $= "M") { // move
|
||||
%pos = getWords(%field, 1, 3);
|
||||
%rot = getWord(%field, 4);
|
||||
%robot.setTransform(%pos SPC "0 0 1" SPC (%rot*$pi/2));
|
||||
%robot.lr_rotation = "0 0 1" SPC (%rot*$pi/2);
|
||||
%robot.setTransform(%pos SPC %robot.lr_rotation);
|
||||
} else {
|
||||
talk("invalid robot callback " @ %field);
|
||||
}
|
||||
@ -228,14 +239,15 @@ function LogicGate_RobotController_Data::getRelativeVector(%this, %obj, %vec) {
|
||||
}
|
||||
|
||||
function LogicRobot_CreateBrickGroup() {
|
||||
if(!isObject(BrickGroup_12345678)) {
|
||||
new SimGroup(BrickGroup_12345678) {
|
||||
bl_id = 12345678;
|
||||
name = "\c1Robot";
|
||||
QuotaObject = GlobalQuota;
|
||||
};
|
||||
mainBrickGroup.add(BrickGroup_12345678);
|
||||
}
|
||||
//if(!isObject(BrickGroup_12345678)) {
|
||||
// new SimGroup(BrickGroup_12345678) {
|
||||
// bl_id = 12345678;
|
||||
// name = "\c1Robot";
|
||||
// QuotaObject = GlobalQuota;
|
||||
// };
|
||||
// mainBrickGroup.add(BrickGroup_12345678);
|
||||
//}
|
||||
return BrickGroup_888888;
|
||||
}
|
||||
|
||||
function LogicGate_RobotController_Data::createRobot(%this, %obj) {
|
||||
|
Reference in New Issue
Block a user