Allow setting rally points for foundations. Patch by Josh. Fixes #902.
This was SVN commit r13390.
This commit is contained in:
parent
bf959e1c46
commit
0d09f290d9
@ -279,6 +279,22 @@ Foundation.prototype.Build = function(builderEnt, work)
|
||||
cmpBuildingPosition.SetXZRotation(rot.x, rot.z);
|
||||
// TODO: should add a ICmpPosition::CopyFrom() instead of all this
|
||||
|
||||
var cmpRallyPoint = Engine.QueryInterface(this.entity, IID_RallyPoint);
|
||||
var cmpBuildingRallyPoint = Engine.QueryInterface(building, IID_RallyPoint);
|
||||
if(cmpRallyPoint && cmpBuildingRallyPoint)
|
||||
{
|
||||
var rallyCoords = cmpRallyPoint.GetPositions();
|
||||
var rallyData = cmpRallyPoint.GetData();
|
||||
var cmpBuildingRallyPointRenderer = Engine.QueryInterface(building, IID_RallyPointRenderer);
|
||||
for (var i = 0; i < rallyCoords.length; ++i)
|
||||
{
|
||||
cmpBuildingRallyPoint.AddPosition(rallyCoords[i].x, rallyCoords[i].z);
|
||||
cmpBuildingRallyPoint.AddData(rallyData[i]);
|
||||
if (cmpBuildingRallyPointRenderer)
|
||||
cmpBuildingRallyPointRenderer.AddPosition({'x': rallyCoords[i].x, 'y': rallyCoords[i].z});
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
var cmpOwnership = Engine.QueryInterface(this.entity, IID_Ownership);
|
||||
|
@ -566,6 +566,8 @@ void CCmpTemplateManager::CopyFoundationSubset(CParamNode& out, const CParamNode
|
||||
permittedComponentTypes.insert("Sound");
|
||||
permittedComponentTypes.insert("Vision");
|
||||
permittedComponentTypes.insert("AIProxy");
|
||||
permittedComponentTypes.insert("RallyPoint");
|
||||
permittedComponentTypes.insert("RallyPointRenderer");
|
||||
|
||||
CParamNode::LoadXMLString(out, "<Entity/>");
|
||||
out.CopyFilteredChildrenOfChild(in, "Entity", permittedComponentTypes);
|
||||
|
Loading…
Reference in New Issue
Block a user