bool DroidObjectImplementation::isMaintenanceDroid() {
	for( int i=0; i<modules.size(); i++){
		BaseDroidModuleComponent* module = modules.get(i);
		if(module->getModuleName() == "maintenance_module") {
			return true;
		}
	}
	return false;
}
BaseDroidModuleComponent* DroidObjectImplementation::getModule(const String& name) {
	for(int i=0;i<modules.size();i++) {
		BaseDroidModuleComponent* module = modules.get(i);
		if(module->getModuleName() == name) {
			return module;
		}
	}
	return NULL;
}
bool DroidObjectImplementation::hasStorage() {
	for( int i=0; i<modules.size(); i++){
		BaseDroidModuleComponent* module = modules.get(i);
		if(module->getModuleName() == "item_storage_module") {
			return true;
		}
	}
	return false;
}
bool DroidObjectImplementation::isMerchantBarker() {
	for( int i=0; i<modules.size(); i++){
		BaseDroidModuleComponent* module = modules.get(i);
		if(module->getModuleName() == "merchant_barker") {
			return true;
		}
	}
	return false;
}
bool DroidObjectImplementation::isStructureAssigned( StructureObject* structure ){
	for( int i=0; i<modules.size(); i++){
		BaseDroidModuleComponent* module = modules.get(i);
		if(module->getModuleName() == "maintenance_module") {
			DroidMaintenanceModuleDataComponent* maintModule = dynamic_cast<DroidMaintenanceModuleDataComponent*>(module);
			if( maintModule != NULL ){
				return maintModule->isAssignedTo( structure->getObjectID() );
			}
		}
	}
	return false;
}