|
|
|
export default { |
|
|
|
|
|
|
|
|
|
|
|
|
|
addEnv(context, payload){ |
|
context.commit('addEnv', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
deleteEnv(context, payload){ |
|
context.commit('deleteEnv', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
loadEnv(context, payload){ |
|
|
|
|
|
drawing_canvas.clear(); |
|
window.terrain = { |
|
ground: [], |
|
ceiling: [] |
|
}; |
|
|
|
window.ground = [...payload.terrain.ground]; |
|
window.ceiling = [...payload.terrain.ceiling]; |
|
|
|
|
|
for(let param in payload.terrain.parkourConfig){ |
|
context.commit('updateParkourConfig', {name: param, value: payload.terrain.parkourConfig[param]}); |
|
} |
|
for(let param in payload.terrain.creepersConfig){ |
|
context.commit('updateParkourConfig', {name: param, value: payload.terrain.creepersConfig[param]}); |
|
} |
|
|
|
|
|
while (context.state.agents.length > 0){ |
|
context.commit('deleteAgent', {index: 0}); |
|
} |
|
for(let agent of payload.agents){ |
|
context.commit('addAgent', { |
|
morphology: agent.morphology, |
|
name: agent.name, |
|
path: agent.path, |
|
init_pos: agent.init_pos |
|
}); |
|
} |
|
|
|
|
|
context.commit('init_default', {}); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
init_default(context, payload) { |
|
context.commit('init_default', {}); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
changeParkourConfig(context, payload){ |
|
|
|
|
|
if(['dim1', 'dim2', 'dim3'].indexOf(payload.name) != -1){ |
|
|
|
window.ground = []; |
|
window.ceiling = []; |
|
window.align_terrain = { |
|
align: true, |
|
ceiling_offset: null, |
|
ground_offset: null, |
|
smoothing: window.game.env.TERRAIN_CPPN_SCALE |
|
}; |
|
} |
|
|
|
else{ |
|
window.align_terrain = { |
|
align: true, |
|
ceiling_offset: window.align_terrain.ceiling_offset, |
|
ground_offset: window.align_terrain.ground_offset, |
|
smoothing: window.game.env.TERRAIN_CPPN_SCALE |
|
}; |
|
} |
|
|
|
|
|
context.commit('updateParkourConfig', payload); |
|
|
|
|
|
if(context.state.drawingModeState.drawing){ |
|
context.commit('generateTerrain', true); |
|
} |
|
|
|
|
|
drawing_canvas.clear(); |
|
window.terrain = { |
|
ground: [], |
|
ceiling: [] |
|
}; |
|
|
|
|
|
context.commit('resetSimulation', {keepPositions: true}); |
|
context.commit('selectAgent', -1); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
toggleSwitch(context, payload) { |
|
switch (payload.name) { |
|
case 'drawJoints': |
|
context.commit('drawJoints', payload.value); |
|
break; |
|
case 'drawLidars': |
|
context.commit('drawLidars', payload.value); |
|
break; |
|
case 'drawNames': |
|
context.commit('drawNames', payload.value); |
|
break; |
|
case 'drawObservation': |
|
context.commit('drawObservation', payload.value); |
|
break; |
|
case 'drawReward': |
|
context.commit('drawReward', payload.value); |
|
break; |
|
} |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
toggleRun(context, payload) { |
|
const status = context.state.simulationState.status; |
|
switch (status) { |
|
case 'init': |
|
context.commit('startSimulation', {}); |
|
break; |
|
case 'running': |
|
context.commit('pauseSimulation', {}); |
|
break; |
|
case 'paused': |
|
context.commit('startSimulation', {}); |
|
break; |
|
} |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
resetSimulation(context, payload) { |
|
|
|
window.align_terrain = { |
|
align: true, |
|
ceiling_offset: window.ceiling.length > 0 ? window.game.env.ceiling_offset - window.ceiling[0].y : null, |
|
ground_offset: window.ground.length > 0 ? window.ground[0].y : null, |
|
smoothing: window.game.env.TERRAIN_CPPN_SCALE |
|
}; |
|
|
|
context.commit('selectAgent', {index: -1}); |
|
context.commit('resetSimulation', {keepPositions: false}); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
addAgent(context, payload) { |
|
|
|
if (context.state.simulationState.status == 'running') { |
|
context.commit('pauseSimulation', {}); |
|
} |
|
context.commit('addAgent', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
deleteAgent(context, payload) { |
|
context.commit('deleteAgent', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
setAgentInitPos(context, payload){ |
|
context.commit('setAgentInitPos', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
selectAgent(context, payload){ |
|
context.commit('selectAgent', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
followAgent(context, payload) { |
|
context.commit('followAgent', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
renameAgent(context, payload){ |
|
context.commit('renameAgent', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
selectSeedIdx(context, payload) { |
|
context.commit('selectSeedIdx', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
addMorphology(context, payload) { |
|
context.commit('addMorphology', payload); |
|
|
|
context.commit('selectSeedIdx', {morphology: payload.morphology, index: 0}); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
switchTab(context, payload) { |
|
|
|
|
|
if(context.state.activeTab == 'draw_yourself'){ |
|
if(payload != 'draw_yourself' && context.state.drawingModeState.drawing) { |
|
|
|
context.commit('generateTerrain', true); |
|
} |
|
} |
|
|
|
else if(payload == 'draw_yourself'){ |
|
|
|
context.commit('generateTerrain', false); |
|
} |
|
context.commit('switchTab', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
drawGround(context, payload) { |
|
context.commit('drawGround', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
drawCeiling(context, payload) { |
|
context.commit('drawCeiling', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
erase(context, payload) { |
|
context.commit('erase', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
drawAsset(context, payload){ |
|
|
|
switch (payload.name){ |
|
case 'circle': |
|
context.commit('drawCircle', payload.value); |
|
break; |
|
} |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
deselectDrawingButtons(context, payload){ |
|
context.commit('deselectDrawingButtons', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
clear(context, payload) { |
|
context.commit('clear', payload); |
|
context.commit('generateTerrain', false); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
generateTerrain(context, payload){ |
|
context.commit('generateTerrain', payload); |
|
}, |
|
|
|
refreshDrawing(context, payload){ |
|
context.commit('refreshDrawing', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
setIntroTour(context, payload){ |
|
context.commit('setIntroTour', payload); |
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
setLanguage(context, payload){ |
|
context.commit('setLanguage', payload); |
|
|
|
|
|
if(window.introTour != null){ |
|
window.introTour.setOptions({ |
|
hintButtonLabel: window.lang_dict[context.state.language]['introHints']['buttonLabel'], |
|
hints: [ |
|
{ |
|
hint: window.lang_dict[context.state.language]['introHints']['tips'], |
|
element: document.querySelector('#canvas_container'), |
|
hintPosition: 'top-right', |
|
} |
|
] |
|
}); |
|
|
|
|
|
let introDiv = document.getElementsByClassName("introjs-hints")[0]; |
|
introDiv.parentNode.removeChild(introDiv); |
|
|
|
|
|
window.introTour.addHints(); |
|
} |
|
|
|
window.game.env.render(); |
|
} |
|
}; |