- for(const agt of listAgentTypes() console.log(agt)
+
+for(const agt of await listAgentTypes()) { log(agt.atp_id+':'+agt.atp_name)
-
- for(const agt of listAgentsOnScene() console.log(agt)
+
+const agts = await listAgentsOnScene()
+for(const aid in agts){ log(`${aid}:${JSON.stringify(agts[aid])}`,'----------') }
\ No newline at end of file
diff --git a/app/helpers/kfConsole.js b/app/helpers/kfConsole.js
index 440e2be..841bde4 100644
--- a/app/helpers/kfConsole.js
+++ b/app/helpers/kfConsole.js
@@ -38,20 +38,27 @@ app.helpers.kfConsole = {
createAgent: async (type, properties) => {
if(Array.from(this.outputs.agentsSelector.options).find(item => item.value==type)){
const defaultValues = await this.models.agents.getDefaultProps(type)
- console.log('==deflt===>', defaultValues,)
return(await this.newAgent(type, { ...defaultValues, ...properties })) //TODO: deepMerge
} else {
throw(`Invalid agent type: ${type}`)
}
},
- removeAgent: (aid) => {
+ removeAgent: async (aid) => {
+ if(!Object.keys(this.kfArena.agents).includes(aid)) throw(`Agent ${aid} not on scene !`)
+ this.kfArena.removeAgent(aid)
+ },
+ updateAgent: async (aid, properties) => {
},
- updateAgent: (aid, properties) => {
-
+ selectAgent: async (aid) => {
+ if(!Object.keys(this.kfArena.agents).includes(aid)) throw(`Agent ${aid} not on scene !`)
+ this.onclickAgent(this.kfArena.scene.getObjectByName(aid))
},
- listagentTypes: () => {
-
+ listAgentTypes: async () => {
+ return(this.agentTypes)
+ },
+ listAgentsOnScene: async () => {
+ return(this.kfArena.agents)
},
}
try {
@@ -81,7 +88,8 @@ app.helpers.kfConsole = {
+'
'
)
} catch (err) {
- return(`
${err.name}: ${err.message}
`)
+ const msg = (err && err.message) ? err.message : String(err)
+ return(`
${(err && err.name) ? err.name +': ': ''}${(err && err.message) ? err.message : String(err)}
`)
}
},
}
diff --git a/app/views/editors/KeyframeView.html b/app/views/editors/KeyframeView.html
index e15fa36..3d9caec 100644
--- a/app/views/editors/KeyframeView.html
+++ b/app/views/editors/KeyframeView.html
@@ -119,10 +119,10 @@
color: white;
}
.kf-editor .kfArena .inner-console .results .error{
- border-top: 1px solid red;
- border-bottom: 1px solid red;
+ border-bottom: 2px solid black;
background-color: #FDD;
color: black;
+ padding: 0.1em 0.5em 0.1em 0.5em;
}
diff --git a/app/views/editors/KeyframeView.js b/app/views/editors/KeyframeView.js
index f791a82..c24f11e 100644
--- a/app/views/editors/KeyframeView.js
+++ b/app/views/editors/KeyframeView.js
@@ -136,7 +136,6 @@ class KeyframeView extends WindozDomContent {
return(aid)
}
-
updateKfButtons(){
if((Object.keys(this.kfArena.agents).length > 0) && (this.outputs.kfName.value.length > 5)) { this.outputs.btnSaveKF.disabled = false }
else { this.outputs.btnSaveKF.disabled = true }
@@ -164,9 +163,7 @@ class KeyframeView extends WindozDomContent {
}
fillAgentProperties(aid, agentProps, agentValues = {}){
- this.outputs.agentProperties.innerHTML = `
-
ID: ${aid}
- `
+ this.outputs.agentProperties.innerHTML = `
ID: ${aid}
`
this.outputs.agentProperties.append(...this.fieldsFromJSON(agentProps, agentValues, 'Internal properties', this.onPropsChanged.bind(this)))
this.outputs.agentProperties.append(...this.fieldsFromJSON({
"position.x": {
@@ -242,7 +239,6 @@ if unsavec changes in scene => confirm before reloading
Bugs
=> reselect same scene resets it
-=> Added with API = non-selectable
-=> loaded from KF => loosing internal props
+
*/
diff --git a/app/views/editors/modules/kfArena.module.js b/app/views/editors/modules/kfArena.module.js
index 7164d60..94a9be4 100644
--- a/app/views/editors/modules/kfArena.module.js
+++ b/app/views/editors/modules/kfArena.module.js
@@ -217,7 +217,7 @@ export class kfArena{
this.removeAgent(aid)
}
for(const agent of agents){
- this.addAgent(agent.ekfs_atp_id, agent.aid, agent.props, {...agent.gps_values, ...agent.store_values})
+ this.addAgent(agent.ekfs_atp_id, agent.aid, agent.atp_props, {...agent.gps_values, ...agent.store_values})
}
}