Created
August 3, 2024 17:46
-
-
Save InfinityDevTech/4b9fd99db1fc078c56c677f9ed7b9221 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fn classify_structure(&mut self, resource_cache: &mut RoomResourceCache, structure: StructureObject, has_links: &mut bool, has_containers: &mut bool) { | |
match structure { | |
StructureObject::StructureTower(tower) => { | |
self.towers.insert(tower.id(), tower); | |
} | |
StructureObject::StructureExtension(extension) => { | |
self.extensions.insert(extension.id(), extension); | |
} | |
StructureObject::StructureLink(link) => { | |
resource_cache.energy_in_storing_structures += | |
link.store().get_used_capacity(Some(ResourceType::Energy)); | |
*has_links = true; | |
self.links.insert(link.id(), link); | |
} | |
StructureObject::StructureRoad(road) => { | |
self.roads.insert(road.id(), road); | |
} | |
StructureObject::StructureInvaderCore(core) => { | |
self.invader_core = Some(core); | |
} | |
StructureObject::StructureContainer(container) => { | |
resource_cache.energy_in_storing_structures += container | |
.store() | |
.get_used_capacity(Some(ResourceType::Energy)); | |
*has_containers = true; | |
self.containers.insert(container.id(), container); | |
} | |
StructureObject::StructureRampart(rampart) => { | |
self.ramparts.push(rampart); | |
} | |
StructureObject::StructureStorage(storage) => { | |
resource_cache.energy_in_storing_structures += storage | |
.store() | |
.get_used_capacity(Some(ResourceType::Energy)); | |
self.storage = Some(storage); | |
} | |
StructureObject::StructureSpawn(spawn) => { | |
self.spawns.insert(spawn.id(), spawn); | |
} | |
StructureObject::StructureNuker(nuker) => { | |
self.nuker = Some(nuker); | |
} | |
StructureObject::StructureObserver(observer) => { | |
self.observer = Some(observer); | |
} | |
StructureObject::StructureTerminal(terminal) => { | |
self.terminal = Some(terminal); | |
} | |
StructureObject::StructureFactory(factory) => { | |
self.factory = Some(factory); | |
} | |
StructureObject::StructurePowerSpawn(power_spawn) => { | |
self.power_spawn = Some(power_spawn); | |
} | |
StructureObject::StructureLab(lab) => { | |
self.labs.insert(lab.id(), lab); | |
} | |
_ => {} | |
} | |
} | |
// run_structure_find just returns | |
// self.room.find(find::STRUCTURES, None) | |
for structure in self.run_structure_find().into_iter() { | |
//if self.skip_check(can_structures_be_placed, &structure) { | |
// continue; | |
//} | |
// Dont to the is_active check UNLESS we downgraded. | |
// Its very expensive from what I have heard. | |
// This information has been reported by: Gadjung | |
if check_ownable && !structure.is_active() { | |
continue; | |
} | |
//self.repairable_check(&structure); | |
//if let Some(ownable) = structure.as_owned() { | |
// if !ownable.my() { | |
// continue; | |
// } | |
//} | |
self.classify_structure(resource_cache, structure, &mut has_links, &mut has_containers); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment