Files
P42_UI/app/models/AgentsModel.js

51 lines
1.7 KiB
JavaScript

class AgentsModel extends WindozModel {
constructor() {
super()
this.ressource = '/agents'
this.agentProps = {}
}
async getTypes(family) {
let endpoint = {...app.config.api[this.ressource].getTypes}
endpoint.uri = endpoint.uri.replace('{family}', family)
return (
this.request(endpoint.uri, endpoint.method)
.then( async serverData => serverData.payload.agentTypes)
)
}
async getSprites(group) {
let endpoint = {...app.config.api[this.ressource].getSprites}
endpoint.uri = endpoint.uri.replace('{group}', group)
return (
this.request(endpoint.uri, endpoint.method)
.then( async serverData => serverData.payload.agentSprites)
)
}
async getProperties(id, force=false) {
if((!(id in this.agentProps)) || force){
let endpoint = {...app.config.api[this.ressource].getProperties}
endpoint.uri = endpoint.uri.replace('{id}', id)
return (
this.request(endpoint.uri, endpoint.method)
.then( async serverData => {
this.agentProps[id] = serverData.payload.agentProperties.atp_props
return(serverData.payload.agentProperties.atp_props)
})
)
} else {
return(this.agentProps[id])
}
}
async getDefaultProps(id){
const aprops = await this.getProperties(id)
const defaults={ position: { x:0, y:0, z:0 }, speed: { x:0, y:0, z:0 }}
for(const p in aprops) defaults[p] = aprops[p].default
return(defaults)
}
}
app.registerClass('AgentsModel', AgentsModel);