1
0
forked from 0ad/0ad
0ad/binaries/data/mods/public/simulation/helpers/Commands.js
2010-01-24 17:24:35 +00:00

47 lines
975 B
JavaScript

function ProcessCommand(player, cmd)
{
// print("command: " + player + " " + uneval(cmd) + "\n");
switch (cmd.type)
{
case "spin":
for each (var ent in cmd.entities)
{
var pos = Engine.QueryInterface(ent, IID_Position);
if (! pos)
continue;
pos.SetYRotation(pos.GetRotation().y + 1);
}
break;
case "walk":
for each (var ent in cmd.entities)
{
var motion = Engine.QueryInterface(ent, IID_UnitMotion);
if (! motion)
continue;
motion.MoveToPoint(cmd.x, cmd.z);
}
break;
case "construct":
// TODO: this should do all sorts of stuff with foundations and resource costs etc
var ent = Engine.AddEntity(cmd.template);
if (ent)
{
var pos = Engine.QueryInterface(ent, IID_Position);
if (pos)
{
pos.JumpTo(cmd.x, cmd.z);
pos.SetYRotation(cmd.angle);
}
}
break;
default:
print("Ignoring unrecognised command type '" + cmd.type + "'\n");
}
}
Engine.RegisterGlobal("ProcessCommand", ProcessCommand);