Commit 0076438f authored by Roque's avatar Roque

erp5_drone_simulator: get rid of rescue swarm dependency

- use a JSON dict as game parameters (instead of RS maps)
parent 2e3234f9
...@@ -11,7 +11,95 @@ var runGame, updateGame, eventGame, game_manager_instance; ...@@ -11,7 +11,95 @@ var runGame, updateGame, eventGame, game_manager_instance;
"use strict"; "use strict";
console.log('game logic'); console.log('game logic');
runGame = function (canvas, script, game_parameters_json, log) { runGame = function (canvas, script, log) {
var game_parameters_json = {
"distances": {
"communication": 99999,
"control": 1500,
"information": 5
},
"drone": {
"maxAcceleration": 1,
"maxSpeed": 16.666667,
"collisionSector": 0.25,
"broadcastingTime": 1000,
"viewAngle": 60
},
"meteo": 0.5,
"derive": {
"speed": 0.1,
"direction": {
"x": 1,
"y": 0.5
}
},
"gameTime": 1800,
"goalDiameter": 7,
"goalPositionLeftTeam": {
"x": 0,
"y": 0,
"z": 0.6
},
"goalPositionRightTeam": {
"x": 0,
"y": 0,
"z": 0.6
},
"latency": {
"information": 0,
"communication": 0
},
"mapSize": {
"depth": 1000,
"height": 100,
"width": 1000
},
"obstacles": [],
"initialHumanAreaPosition": {
"x": -400,
"y": 400,
"z": 0
},
"randomSpawn": {
"leftTeam": {
"position": {
"x": 0,
"y": 0,
"z": 20
},
"dispertion": {
"x": 8,
"y": 8,
"z": 6
},
"types": [
"DroneAaileFixeAPI",
"DroneLogAPI",
"DroneAPI"
]
},
"rightTeam": {
"position": {
"x": -400,
"y": 400,
"z": 0
},
"dispertion": {
"x": 100,
"y": 100,
"z": 0.1
}
}
},
"teamSize": 2,
"dronesPosition": {
"x": 0,
"y": 0,
"z": 20
},
"droneList": ["DroneAaileFixeAPI", "DroneLogAPI"]
};
function processLog(game_parameters_json, log) { function processLog(game_parameters_json, log) {
var MAP_SIZE = 1000, var MAP_SIZE = 1000,
...@@ -196,9 +284,6 @@ var runGame, updateGame, eventGame, game_manager_instance; ...@@ -196,9 +284,6 @@ var runGame, updateGame, eventGame, game_manager_instance;
}; };
game_parameters_json.drone.maxSpeed = (flight_dist / flight_time) * SPEED_FACTOR; game_parameters_json.drone.maxSpeed = (flight_dist / flight_time) * SPEED_FACTOR;
game_parameters_json.flight_path_point_list = path_point_list; game_parameters_json.flight_path_point_list = path_point_list;
/*game_parameters_json.randomSpawn.leftTeam.position.x = start_position[0];
game_parameters_json.randomSpawn.leftTeam.position.y = start_position[1];
game_parameters_json.randomSpawn.leftTeam.position.z = start_position[2];*/
game_parameters_json.dronesPosition.x = start_position[0]; game_parameters_json.dronesPosition.x = start_position[0];
game_parameters_json.dronesPosition.y = start_position[1]; game_parameters_json.dronesPosition.y = start_position[1];
game_parameters_json.dronesPosition.z = start_position[2]; game_parameters_json.dronesPosition.z = start_position[2];
...@@ -214,7 +299,9 @@ var runGame, updateGame, eventGame, game_manager_instance; ...@@ -214,7 +299,9 @@ var runGame, updateGame, eventGame, game_manager_instance;
game_parameters_json.randomSpawn.rightTeam.position.y = destination[1]; game_parameters_json.randomSpawn.rightTeam.position.y = destination[1];
return game_parameters_json; return game_parameters_json;
} }
game_parameters_json = processLog(game_parameters_json, log); game_parameters_json = processLog(game_parameters_json, log);
if (!game_manager_instance) { if (!game_manager_instance) {
game_manager_instance = new GameManager(canvas, script, game_manager_instance = new GameManager(canvas, script,
game_parameters_json, 5); game_parameters_json, 5);
......
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1003.17407.48631.50875</string> </value> <value> <string>1003.18677.8071.57617</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -262,7 +262,7 @@ ...@@ -262,7 +262,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1664386550.2</float> <float>1664462737.31</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -148,7 +148,6 @@ ...@@ -148,7 +148,6 @@
width: options.width, width: options.width,
height: options.height, height: options.height,
script: options.script, script: options.script,
game_parameters_json: options.game_parameters_json,
log: options.log log: options.log
}, [options.canvas]); }, [options.canvas]);
break; break;
...@@ -291,7 +290,7 @@ ...@@ -291,7 +290,7 @@
offscreen = canvas.transferControlToOffscreen(); offscreen = canvas.transferControlToOffscreen();
//TODO this should be in game logic BUT gadget can't be accessed from WW //TODO this should be in game logic BUT gadget can't be accessed from WW
var script_content, game_parameters_json, log_content; var script_content, log_content;
return new RSVP.Queue() return new RSVP.Queue()
.push(function () { .push(function () {
var query = '(portal_type:"Web Script") AND (reference:"loiter_flight_script")'; var query = '(portal_type:"Web Script") AND (reference:"loiter_flight_script")';
...@@ -299,10 +298,6 @@ ...@@ -299,10 +298,6 @@
}) })
.push(function (result) { .push(function (result) {
script_content = result.data.rows[0].value.text_content; script_content = result.data.rows[0].value.text_content;
return gadget.jio_get("rescue_swarm_map_module/" + "compare_map");
})
.push(function (parameters_doc) {
game_parameters_json = JSON.parse(parameters_doc.text_content);
var query = '(portal_type:"Web Manifest") AND (reference:"loiter_flight_log")'; var query = '(portal_type:"Web Manifest") AND (reference:"loiter_flight_log")';
return gadget.jio_allDocs({query: query, select_list: ["text_content"]}); return gadget.jio_allDocs({query: query, select_list: ["text_content"]});
}) })
...@@ -316,7 +311,6 @@ ...@@ -316,7 +311,6 @@
width: canvas.width, width: canvas.width,
height: canvas.height, height: canvas.height,
script: script_content, script: script_content,
game_parameters_json: game_parameters_json,
log: log_content log: log_content
}); });
......
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1003.18668.38123.54476</string> </value> <value> <string>1003.18672.40791.39372</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -262,7 +262,7 @@ ...@@ -262,7 +262,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1664462231.88</float> <float>1664462734.74</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -35,8 +35,7 @@ function mainToWorker(evt) { ...@@ -35,8 +35,7 @@ function mainToWorker(evt) {
return new RSVP.Queue() return new RSVP.Queue()
.push(function () { .push(function () {
postMessage({'type': 'started'}); postMessage({'type': 'started'});
return runGame(offscreen_canvas, evt.data.script, return runGame(offscreen_canvas, evt.data.script, evt.data.log);
evt.data.game_parameters_json, evt.data.log);
}) })
.push(function (result) { .push(function (result) {
return postMessage({'type': 'finished', 'result': result}); return postMessage({'type': 'finished', 'result': result});
......
...@@ -244,7 +244,7 @@ ...@@ -244,7 +244,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>1003.16068.56422.56064</string> </value> <value> <string>1003.18677.12846.47872</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -262,7 +262,7 @@ ...@@ -262,7 +262,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1664386491.83</float> <float>1664462736.14</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment