我刚刚开始尝试按名称搜索结构。我一直在寻找API而没有运气。我似乎无法在任何结构对象上找到name属性,因此我无法遍历它们并找到我想要的那个。
如何按名称搜索结构?某处是否有可访问的名称属性?
答案 0 :(得分: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)
)}
答案 1 :(得分:1)
大多数结构都没有名称,例外是产卵。 有关详细信息,请参阅this article。
这些已经是单独的哈希,Game.spawns
。
你可以选择:
for(name in Game.spawns){console.log("Found spawn " + Game.spawns[name]");}
如果您正在寻找其他结构类型,则所有结构都具有id
属性。