2016-08-01 71 views
0

我刚刚开始尝试按名称搜索结构。我一直在寻找通过API没有运气。我似乎无法找到任何结构对象的名称属性,所以我不能只循环遍历它们并找到我想要的。如何按名称搜索结构?

如何搜索名称结构?有没有可访问的名称属性?

回答

1

大多数结构没有名称,例外是生成。 有关更多信息,请参阅this article

那些已经在单独的散列,Game.spawns

你可以去:

for(name in Game.spawns){console.log("Found spawn " + Game.spawns[name]");} 

如果你正在寻找另一种结构类型,所有的结构有一个id财产。

4

在大多数情况下,通过id或type进行搜索更加可取,因为只有Spawns具有合法名称。

在ID

var someStructure = Game.getObjectById('....'); 

的情况下在结构类型,例如的情况下寻找扩展

var extensions = Game.rooms.W25S25.find(FIND_STRUCTURES, {filter:{structureType: STRUCTURE_EXTENSION}}); 

查找的过滤器部分也可以更复杂,寻找没有充满能量的结构。

{ filter: (s) => ((
      s.structureType == STRUCTURE_SPAWN 
      || s.structureType == STRUCTURE_EXTENSION 
      || s.structureType == STRUCTURE_TOWER 
      ) && (s.energy < s.energyCapacity) 
     )}