mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Apply review instructions
This commit is contained in:
@@ -9,7 +9,7 @@ gdjs.evtTools.p2p = {
|
||||
/**
|
||||
* The peer to peer configuration.
|
||||
*/
|
||||
peerConfig: {debug:1}, // Enable logging of critical errors
|
||||
peerConfig: { debug: 1 }, // Enable logging of critical errors
|
||||
|
||||
/**
|
||||
* The p2p client.
|
||||
@@ -50,45 +50,45 @@ gdjs.evtTools.p2p = {
|
||||
/**
|
||||
* Last error's message.
|
||||
*/
|
||||
lastError: "",
|
||||
lastError: '',
|
||||
|
||||
/**
|
||||
* True if a peer diconnected.
|
||||
*/
|
||||
peerDisconnected: false,
|
||||
peerJustDisconnected: false,
|
||||
|
||||
/**
|
||||
* The last peer that has disconnected.
|
||||
*/
|
||||
disconnectedPeer: "",
|
||||
}
|
||||
lastDisconnectedPeerId: '',
|
||||
};
|
||||
|
||||
gdjs.evtTools.p2p.loadPeerJS = function() {
|
||||
if(gdjs.evtTools.p2p.peer != null) return;
|
||||
gdjs.evtTools.p2p.loadPeerJS = function () {
|
||||
if (gdjs.evtTools.p2p.peer != null) return;
|
||||
gdjs.evtTools.p2p.peer = new Peer(gdjs.evtTools.p2p.peerConfig);
|
||||
gdjs.evtTools.p2p.peer.on("open", function() {
|
||||
gdjs.evtTools.p2p.peer.on('open', function () {
|
||||
gdjs.evtTools.p2p.ready = true;
|
||||
});
|
||||
gdjs.evtTools.p2p.peer.on("error", function(errorMessage) {
|
||||
gdjs.evtTools.p2p.peer.on('error', function (errorMessage) {
|
||||
gdjs.evtTools.p2p.error = true;
|
||||
gdjs.evtTools.p2p.lastError = errorMessage;
|
||||
});
|
||||
gdjs.evtTools.p2p.peer.on("connection", gdjs.evtTools.p2p._onConnection);
|
||||
gdjs.evtTools.p2p.peer.on("close", function() {
|
||||
gdjs.evtTools.p2p.peer.on('connection', gdjs.evtTools.p2p._onConnection);
|
||||
gdjs.evtTools.p2p.peer.on('close', function () {
|
||||
gdjs.evtTools.p2p.peer = null;
|
||||
gdjs.evtTools.p2p.loadPeerJS();
|
||||
});
|
||||
gdjs.evtTools.p2p.peer.on("disconnected", gdjs.evtTools.p2p.peer.reconnect);
|
||||
}
|
||||
gdjs.evtTools.p2p.peer.on('disconnected', gdjs.evtTools.p2p.peer.reconnect);
|
||||
};
|
||||
|
||||
gdjs.evtTools.p2p._onConnection = function(connection) {
|
||||
gdjs.evtTools.p2p._onConnection = function (connection) {
|
||||
gdjs.evtTools.p2p.connections[connection.peer] = connection;
|
||||
connection.on("data", function(data) {
|
||||
if(data.eventName === undefined) return;
|
||||
connection.on('data', function (data) {
|
||||
if (data.eventName === undefined) return;
|
||||
var dataLoss = gdjs.evtTools.p2p.eventHandling[data.eventName];
|
||||
|
||||
if (typeof dataLoss === "undefined" || dataLoss === false) {
|
||||
if(typeof gdjs.evtTools.p2p.lastEventData[data.eventName] !== "object")
|
||||
if (typeof dataLoss === 'undefined' || dataLoss === false) {
|
||||
if (typeof gdjs.evtTools.p2p.lastEventData[data.eventName] !== 'object')
|
||||
gdjs.evtTools.p2p.lastEventData[data.eventName] = [];
|
||||
gdjs.evtTools.p2p.lastEventData[data.eventName].push(data.data);
|
||||
} else {
|
||||
@@ -96,38 +96,43 @@ gdjs.evtTools.p2p._onConnection = function(connection) {
|
||||
gdjs.evtTools.p2p.lastEventData[data.eventName] = data.data;
|
||||
}
|
||||
});
|
||||
connection.on("error", function() {
|
||||
connection.on('error', function () {
|
||||
// Close event is only for graceful disconnection, also handle error aka ungraceful disconnection
|
||||
gdjs.evtTools.p2p._onDisconnect(connection.peer);
|
||||
});
|
||||
connection.on("close", function() {
|
||||
connection.on('close', function () {
|
||||
gdjs.evtTools.p2p._onDisconnect(connection.peer);
|
||||
});
|
||||
// Regularly check for disconnection as the built in way is not reliable.
|
||||
var disconnectChecker = function() {
|
||||
if (connection.peerConnection.connectionState == "failed" || connection.peerConnection.connectionState == "disconnected") {
|
||||
var disconnectChecker = function () {
|
||||
if (
|
||||
connection.peerConnection.connectionState === 'failed' ||
|
||||
connection.peerConnection.connectionState === 'disconnected'
|
||||
) {
|
||||
gdjs.evtTools.p2p._onDisconnect(connection.peer);
|
||||
} else {
|
||||
setTimeout(disconnectChecker, 500);
|
||||
}
|
||||
}
|
||||
};
|
||||
disconnectChecker();
|
||||
}
|
||||
};
|
||||
|
||||
gdjs.evtTools.p2p._onDisconnect = function(connectionID) {
|
||||
gdjs.evtTools.p2p.peerDisconnected = true;
|
||||
gdjs.evtTools.p2p.disconnectedPeer = connectionID;
|
||||
gdjs.evtTools.p2p._onDisconnect = function (connectionID) {
|
||||
gdjs.evtTools.p2p.peerJustDisconnected = true;
|
||||
gdjs.evtTools.p2p.lastDisconnectedPeerId = connectionID;
|
||||
delete gdjs.evtTools.p2p.connections[connectionID];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Connects to another p2p client.
|
||||
* @param {string} id - The other client's id.
|
||||
*/
|
||||
gdjs.evtTools.p2p.connect = function(id) {
|
||||
gdjs.evtTools.p2p.connect = function (id) {
|
||||
var connection = gdjs.evtTools.p2p.peer.connect(id);
|
||||
connection.on("open", function() { gdjs.evtTools.p2p._onConnection(connection) });
|
||||
}
|
||||
connection.on('open', function () {
|
||||
gdjs.evtTools.p2p._onConnection(connection);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true when the event got triggered by another p2p client.
|
||||
@@ -135,23 +140,23 @@ gdjs.evtTools.p2p.connect = function(id) {
|
||||
* @param {boolean} _dataLoss Is data loss allowed (accelerates event handling when true)?
|
||||
* @returns {boolean}
|
||||
*/
|
||||
gdjs.evtTools.p2p.onEvent = function(eventName, _dataLoss) {
|
||||
gdjs.evtTools.p2p.onEvent = function (eventName, _dataLoss) {
|
||||
var dataLoss = gdjs.evtTools.p2p.eventHandling[eventName];
|
||||
if (dataLoss == undefined) {
|
||||
gdjs.evtTools.p2p.eventHandling[eventName] = _dataLoss;
|
||||
return gdjs.evtTools.p2p.onEvent(eventName, _dataLoss);
|
||||
}
|
||||
if(dataLoss) {
|
||||
if (dataLoss) {
|
||||
var returnValue = gdjs.evtTools.p2p.triggeredEvents[eventName];
|
||||
if(typeof returnValue === "undefined") return false;
|
||||
if (typeof returnValue === 'undefined') return false;
|
||||
gdjs.evtTools.p2p.triggeredEvents[eventName] = false;
|
||||
return returnValue;
|
||||
} else {
|
||||
var returnValue = gdjs.evtTools.p2p.lastEventData[eventName];
|
||||
if(typeof returnValue === "undefined") return false;
|
||||
if (typeof returnValue === 'undefined') return false;
|
||||
return returnValue.length !== 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Send an event to one specific connected client.
|
||||
@@ -159,21 +164,27 @@ gdjs.evtTools.p2p.onEvent = function(eventName, _dataLoss) {
|
||||
* @param {string} eventName - The event to trigger.
|
||||
* @param {string} [eventData] - Additional data to send with the event.
|
||||
*/
|
||||
gdjs.evtTools.p2p.sendDataTo = function(id, eventName, eventData) {
|
||||
if(gdjs.evtTools.p2p.connections[id])
|
||||
gdjs.evtTools.p2p.connections[id].send({eventName: eventName, data: eventData});
|
||||
}
|
||||
gdjs.evtTools.p2p.sendDataTo = function (id, eventName, eventData) {
|
||||
if (gdjs.evtTools.p2p.connections[id])
|
||||
gdjs.evtTools.p2p.connections[id].send({
|
||||
eventName: eventName,
|
||||
data: eventData,
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Send an event to all connected clients.
|
||||
* @param {string} eventName - The event to trigger.
|
||||
* @param {string} [eventData] - Additional data to send with the event.
|
||||
*/
|
||||
gdjs.evtTools.p2p.sendDataToAll = function(eventName, eventData) {
|
||||
for(var id in gdjs.evtTools.p2p.connections) {
|
||||
gdjs.evtTools.p2p.connections[id].send({eventName: eventName, data: eventData});
|
||||
gdjs.evtTools.p2p.sendDataToAll = function (eventName, eventData) {
|
||||
for (var id in gdjs.evtTools.p2p.connections) {
|
||||
gdjs.evtTools.p2p.connections[id].send({
|
||||
eventName: eventName,
|
||||
data: eventData,
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Send an event to one specific connected client.
|
||||
@@ -181,62 +192,71 @@ gdjs.evtTools.p2p.sendDataToAll = function(eventName, eventData) {
|
||||
* @param {string} eventName - The event to trigger.
|
||||
* @param {gdjs.Variable} variable - Additional variable to send with the event.
|
||||
*/
|
||||
gdjs.evtTools.p2p.sendVariableTo = function(id, eventName, variable) {
|
||||
if(gdjs.evtTools.p2p.connections[id])
|
||||
gdjs.evtTools.p2p.sendVariableTo = function (id, eventName, variable) {
|
||||
if (gdjs.evtTools.p2p.connections[id])
|
||||
gdjs.evtTools.p2p.connections[id].send({
|
||||
eventName: eventName,
|
||||
data: gdjs.evtTools.network.variableStructureToJSON(variable)
|
||||
eventName: eventName,
|
||||
data: gdjs.evtTools.network.variableStructureToJSON(variable),
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Send an event to all connected clients.
|
||||
* @param {string} eventName - The event to trigger.
|
||||
* @param {gdjs.Variable} variable - Additional variable to send with the event.
|
||||
*/
|
||||
gdjs.evtTools.p2p.sendVariableToAll = function(eventName, variable) {
|
||||
for(var id in gdjs.evtTools.p2p.connections) {
|
||||
gdjs.evtTools.p2p.sendVariableToAll = function (eventName, variable) {
|
||||
for (var id in gdjs.evtTools.p2p.connections) {
|
||||
gdjs.evtTools.p2p.connections[id].send({
|
||||
eventName: eventName,
|
||||
data: gdjs.evtTools.network.variableStructureToJSON(variable)
|
||||
eventName: eventName,
|
||||
data: gdjs.evtTools.network.variableStructureToJSON(variable),
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get some data associated to the last trigger of an event.
|
||||
* @param {string} eventName - The event to get data from.
|
||||
* @returns {string} - The data as JSON.
|
||||
*/
|
||||
gdjs.evtTools.p2p.getEventData = function(eventName) {
|
||||
gdjs.evtTools.p2p.getEventData = function (eventName) {
|
||||
var dataLoss = gdjs.evtTools.p2p.eventHandling[eventName];
|
||||
if (typeof dataLoss === "undefined" || dataLoss === false) {
|
||||
if (typeof dataLoss === 'undefined' || dataLoss === false) {
|
||||
var event = gdjs.evtTools.p2p.lastEventData[eventName];
|
||||
return event[event.length - 1];
|
||||
} else {
|
||||
return gdjs.evtTools.p2p.lastEventData[eventName];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Get a variable associated to the last trigger of an event.
|
||||
* @param {string} eventName - The event to get the variable from.
|
||||
* @param {gdjs.Variable} variable - The variable where to store the variable content.
|
||||
*/
|
||||
gdjs.evtTools.p2p.getEventVariable = function(eventName, variable) {
|
||||
gdjs.evtTools.network.jsonToVariableStructure(gdjs.evtTools.p2p.getEventData(eventName), variable);
|
||||
}
|
||||
gdjs.evtTools.p2p.getEventVariable = function (eventName, variable) {
|
||||
gdjs.evtTools.network.jsonToVariableStructure(
|
||||
gdjs.evtTools.p2p.getEventData(eventName),
|
||||
variable
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Connects to a custom broker server.
|
||||
* @param {string} host The host of the broker server
|
||||
* @param {number} port
|
||||
* @param {string} path The path (part of the url after the host) to the broker server
|
||||
* @param {string} key Optional password to connect to the broker server
|
||||
* @param {string} host The host of the broker server.
|
||||
* @param {number} port The port of the broker server.
|
||||
* @param {string} path The path (part of the url after the host) to the broker server.
|
||||
* @param {string} key Optional password to connect to the broker server.
|
||||
* @param {boolean} ssl Use ssl?
|
||||
*/
|
||||
gdjs.evtTools.p2p.useCustomBrokerServer = function(host, port, path, key, ssl) {
|
||||
key = key.length === 0 ? "peerjs" : key; // All servers have "peerjs" as default key
|
||||
gdjs.evtTools.p2p.useCustomBrokerServer = function (
|
||||
host,
|
||||
port,
|
||||
path,
|
||||
key,
|
||||
ssl
|
||||
) {
|
||||
key = key.length === 0 ? 'peerjs' : key; // All servers have "peerjs" as default key
|
||||
gdjs.evtTools.p2p.peerConfig = {
|
||||
debug: 1,
|
||||
host,
|
||||
@@ -246,63 +266,74 @@ gdjs.evtTools.p2p.useCustomBrokerServer = function(host, port, path, key, ssl) {
|
||||
key,
|
||||
};
|
||||
gdjs.evtTools.p2p.loadPeerJS();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Use default broker server. NOT RECOMMENDED.
|
||||
* Use default broker server.
|
||||
* This is not recommended for published games,
|
||||
* this server should only be used for quick testing in development.
|
||||
*/
|
||||
gdjs.evtTools.p2p.useDefaultBrokerServer = function() {
|
||||
gdjs.evtTools.p2p.useDefaultBrokerServer = function () {
|
||||
gdjs.evtTools.p2p.loadPeerJS();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the own current peer ID
|
||||
* @see Peer.id
|
||||
* @returns {string}
|
||||
*/
|
||||
gdjs.evtTools.p2p.getCurrentId = function() {
|
||||
if(gdjs.evtTools.p2p.peer == undefined) return "";
|
||||
return gdjs.evtTools.p2p.peer.id || "";
|
||||
}
|
||||
gdjs.evtTools.p2p.getCurrentId = function () {
|
||||
if (gdjs.evtTools.p2p.peer == undefined) return '';
|
||||
return gdjs.evtTools.p2p.peer.id || '';
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true once PeerJS is initialized
|
||||
* @see gdjs.evtTools.p2p.ready
|
||||
* @returns {boolean}
|
||||
*/
|
||||
gdjs.evtTools.p2p.isReady = function() {return gdjs.evtTools.p2p.ready;}
|
||||
gdjs.evtTools.p2p.isReady = function () {
|
||||
return gdjs.evtTools.p2p.ready;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true once when there is an error.
|
||||
* @returns {boolean}
|
||||
*/
|
||||
gdjs.evtTools.p2p.onError = function() {
|
||||
gdjs.evtTools.p2p.onError = function () {
|
||||
var returnValue = gdjs.evtTools.p2p.error;
|
||||
gdjs.evtTools.p2p.error = false;
|
||||
return returnValue;
|
||||
}
|
||||
};
|
||||
|
||||
gdjs.evtTools.p2p.getLastError = function() {
|
||||
/**
|
||||
* Returns the latest error message.
|
||||
* @returns {boolean}
|
||||
*/
|
||||
gdjs.evtTools.p2p.getLastError = function () {
|
||||
return gdjs.evtTools.p2p.lastError;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true once a peer disconnected.
|
||||
* @returns {boolean}
|
||||
*/
|
||||
gdjs.evtTools.p2p.onDisconnect = function() {
|
||||
var returnValue = gdjs.evtTools.p2p.peerDisconnected;
|
||||
gdjs.evtTools.p2p.peerDisconnected = false;
|
||||
gdjs.evtTools.p2p.onDisconnect = function () {
|
||||
var returnValue = gdjs.evtTools.p2p.peerJustDisconnected;
|
||||
gdjs.evtTools.p2p.peerJustDisconnected = false;
|
||||
return returnValue;
|
||||
}
|
||||
};
|
||||
|
||||
gdjs.evtTools.p2p.getDisconnectedPeer = function() {
|
||||
return gdjs.evtTools.p2p.disconnectedPeer;
|
||||
}
|
||||
gdjs.evtTools.p2p.getDisconnectedPeer = function () {
|
||||
return gdjs.evtTools.p2p.lastDisconnectedPeerId;
|
||||
};
|
||||
|
||||
gdjs.callbacksRuntimeScenePostEvents.push(function() {
|
||||
for(var i in gdjs.evtTools.p2p.lastEventData) {
|
||||
if(typeof gdjs.evtTools.p2p.lastEventData[i] === "object" && gdjs.evtTools.p2p.lastEventData[i].length > 0)
|
||||
gdjs.evtTools.p2p.lastEventData[i].length--;
|
||||
gdjs.callbacksRuntimeScenePostEvents.push(function () {
|
||||
for (var i in gdjs.evtTools.p2p.lastEventData) {
|
||||
if (
|
||||
typeof gdjs.evtTools.p2p.lastEventData[i] === 'object' &&
|
||||
gdjs.evtTools.p2p.lastEventData[i].length > 0
|
||||
)
|
||||
gdjs.evtTools.p2p.lastEventData[i].pop();
|
||||
}
|
||||
});
|
||||
|
@@ -20,18 +20,22 @@ import { type ObjectsRenderingService, type ObjectsEditorService } from '../JsEx
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
createExtension: function(_/*: (string) => string */, gd/*: libGDevelop */) {
|
||||
const extension/*: gdPlatformExtension */ = new gd.PlatformExtension();
|
||||
extension.setExtensionInformation(
|
||||
'P2P',
|
||||
_('Peer-to-Peer communication (experimental)'),
|
||||
_(
|
||||
'Adds possibility to connect multiple game instances together via WebRTC (P2P)'
|
||||
),
|
||||
'Arthur Pacaud (arthuro555)',
|
||||
'MIT'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/p2p');
|
||||
createExtension: function (
|
||||
_ /*: (string) => string */,
|
||||
gd /*: libGDevelop */
|
||||
) {
|
||||
const extension /*: gdPlatformExtension */ = new gd.PlatformExtension();
|
||||
extension
|
||||
.setExtensionInformation(
|
||||
'P2P',
|
||||
_('Peer-to-Peer communication (experimental)'),
|
||||
_(
|
||||
'Adds possibility to connect multiple game instances together via WebRTC (P2P)'
|
||||
),
|
||||
'Arthur Pacaud (arthuro555)',
|
||||
'MIT'
|
||||
)
|
||||
.setExtensionHelpPath('/all-features/p2p');
|
||||
|
||||
extension
|
||||
.addCondition(
|
||||
@@ -54,7 +58,9 @@ module.exports = {
|
||||
.addCondition(
|
||||
'IsReady',
|
||||
_('Is P2P ready'),
|
||||
_('True if the peer-to-peer extension initialized and is ready to use.'),
|
||||
_(
|
||||
'True if the peer-to-peer extension initialized and is ready to use.'
|
||||
),
|
||||
_('Is P2P ready?'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
@@ -69,7 +75,11 @@ module.exports = {
|
||||
.addCondition(
|
||||
'OnError',
|
||||
_('An error occured'),
|
||||
_('Triggers once when an error occurs.'),
|
||||
_(
|
||||
'Triggers once when an error occurs. ' +
|
||||
'Use P2P::GetLastError() expression to get the content of the error ' +
|
||||
'if you want to analyse it or display it to the user.'
|
||||
),
|
||||
_('P2P error occured'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
@@ -79,7 +89,7 @@ module.exports = {
|
||||
.setIncludeFile('Extensions/P2P/A_peer.js')
|
||||
.addIncludeFile('Extensions/P2P/B_p2ptools.js')
|
||||
.setFunctionName('gdjs.evtTools.p2p.onError');
|
||||
|
||||
|
||||
extension
|
||||
.addCondition(
|
||||
'OnDisconnection',
|
||||
@@ -99,7 +109,7 @@ module.exports = {
|
||||
.addAction(
|
||||
'Connect',
|
||||
_('Connect to another client'),
|
||||
_('Connects the current client to another client using its id'),
|
||||
_('Connects the current client to another client using its id.'),
|
||||
_('Connect to P2P client _PARAM0_'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
@@ -114,9 +124,9 @@ module.exports = {
|
||||
extension
|
||||
.addAction(
|
||||
'UseOwnBroker',
|
||||
_('Connect to own broker server'),
|
||||
_('Connects to your own broker server.'),
|
||||
_('Connect to broker server http://_PARAM0_:_PARAM1_/'),
|
||||
_('Connect to a broker server'),
|
||||
_('Connects the extension to a broker server.'),
|
||||
_('Connect to the broker server at http://_PARAM0_:_PARAM1_/'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
@@ -134,9 +144,9 @@ module.exports = {
|
||||
extension
|
||||
.addAction(
|
||||
'UseDefaultBroker',
|
||||
_('Connect to default broker server'),
|
||||
_('Connect to the default broker server'),
|
||||
_('Connects to the default broker server.'),
|
||||
_('Connect to default broker server'),
|
||||
_('Connect to the default broker server'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
@@ -151,7 +161,9 @@ module.exports = {
|
||||
'SendToAll',
|
||||
_('Trigger event on all connected clients'),
|
||||
_('Triggers an event on all connected clients'),
|
||||
_('Trigger event _PARAM0_ on all connected clients (extra data: _PARAM1_)'),
|
||||
_(
|
||||
'Trigger event _PARAM0_ on all connected clients (extra data: _PARAM1_)'
|
||||
),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
@@ -181,18 +193,25 @@ module.exports = {
|
||||
.addIncludeFile('Extensions/P2P/B_p2ptools.js')
|
||||
.setFunctionName('gdjs.evtTools.p2p.sendDataTo');
|
||||
|
||||
extension
|
||||
extension
|
||||
.addAction(
|
||||
'SendToAllVariable',
|
||||
_('Trigger event on all connected clients (variable)'),
|
||||
_('Triggers an event on all connected clients'),
|
||||
_('Trigger event _PARAM0_ on all connected clients (extra data: _PARAM1_)'),
|
||||
_(
|
||||
'Trigger event _PARAM0_ on all connected clients (extra data: _PARAM1_)'
|
||||
),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
)
|
||||
.addParameter('string', _('Event name'), '', false)
|
||||
.addParameter('scenevar', _('Variable containing the extra data'), '', false)
|
||||
.addParameter(
|
||||
'scenevar',
|
||||
_('Variable containing the extra data'),
|
||||
'',
|
||||
false
|
||||
)
|
||||
.getCodeExtraInformation()
|
||||
.setIncludeFile('Extensions/P2P/A_peer.js')
|
||||
.addIncludeFile('Extensions/P2P/B_p2ptools.js')
|
||||
@@ -210,7 +229,12 @@ module.exports = {
|
||||
)
|
||||
.addParameter('string', _('ID of the other client'), '', false)
|
||||
.addParameter('string', _('Event name'), '', false)
|
||||
.addParameter('scenevar', _('Variable containing the extra data'), '', false)
|
||||
.addParameter(
|
||||
'scenevar',
|
||||
_('Variable containing the extra data'),
|
||||
'',
|
||||
false
|
||||
)
|
||||
.getCodeExtraInformation()
|
||||
.setIncludeFile('Extensions/P2P/A_peer.js')
|
||||
.addIncludeFile('Extensions/P2P/B_p2ptools.js')
|
||||
@@ -221,16 +245,23 @@ module.exports = {
|
||||
'GetEventVariable',
|
||||
_('Get event data (variable)'),
|
||||
_(
|
||||
'Store the data of the specified event in a variable. ' +
|
||||
'Check in the conditions that the event was received using the "Event received" condition.'
|
||||
'Store the data of the specified event in a variable. ' +
|
||||
'Check in the conditions that the event was received using the "Event received" condition.'
|
||||
),
|
||||
_(
|
||||
'Overwrite _PARAM1_ with variable sent with last trigger of _PARAM0_'
|
||||
),
|
||||
_('Overwrite _PARAM1_ with variable sent with last trigger of _PARAM0_'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg',
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
)
|
||||
.addParameter('string', _('Event name'), '', false)
|
||||
.addParameter('scenevar', _('Variable where to store the received data'), '', false)
|
||||
.addParameter(
|
||||
'scenevar',
|
||||
_('Variable where to store the received data'),
|
||||
'',
|
||||
false
|
||||
)
|
||||
.getCodeExtraInformation()
|
||||
.setIncludeFile('Extensions/P2P/A_peer.js')
|
||||
.addIncludeFile('Extensions/P2P/B_p2ptools.js')
|
||||
@@ -240,7 +271,9 @@ module.exports = {
|
||||
.addStrExpression(
|
||||
'GetEventData',
|
||||
_('Get event data'),
|
||||
_('Returns the data received when the specified event was last triggered'),
|
||||
_(
|
||||
'Returns the data received when the specified event was last triggered'
|
||||
),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
)
|
||||
@@ -254,7 +287,7 @@ module.exports = {
|
||||
.addStrExpression(
|
||||
'GetID',
|
||||
_('Get client ID'),
|
||||
_('Gets the current client ID of the current game instance'),
|
||||
_('Gets the client ID of the current game instance'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
)
|
||||
@@ -265,7 +298,7 @@ module.exports = {
|
||||
|
||||
extension
|
||||
.addStrExpression(
|
||||
'GetError',
|
||||
'GetLastError',
|
||||
_('Get last error'),
|
||||
_('Gets the description of the last P2P error'),
|
||||
_('P2P (experimental)'),
|
||||
@@ -278,8 +311,8 @@ module.exports = {
|
||||
|
||||
extension
|
||||
.addStrExpression(
|
||||
'GetDisconnectedPeer',
|
||||
_('Get disconnected peer'),
|
||||
'GetLastDisconnectedPeer',
|
||||
_('Get last disconnected peer'),
|
||||
_('Gets the id of the latest peer that has disconnected.'),
|
||||
_('P2P (experimental)'),
|
||||
'JsPlatform/Extensions/p2picon.svg'
|
||||
@@ -291,7 +324,10 @@ module.exports = {
|
||||
|
||||
return extension;
|
||||
},
|
||||
runExtensionSanityTests: function(gd /*: libGDevelop */, extension /*: gdPlatformExtension*/) {
|
||||
runExtensionSanityTests: function (
|
||||
gd /*: libGDevelop */,
|
||||
extension /*: gdPlatformExtension*/
|
||||
) {
|
||||
return [];
|
||||
},
|
||||
};
|
||||
|
Reference in New Issue
Block a user