get marble skins networked

This commit is contained in:
RandomityGuy 2024-04-25 23:42:20 +05:30
parent 02b89b5247
commit 060209fb42
7 changed files with 281 additions and 234 deletions

View file

@ -1,5 +1,6 @@
package src; package src;
import gui.MarblePickerGui;
import collision.CollisionPool; import collision.CollisionPool;
import net.NetPacket.MarbleNetFlags; import net.NetPacket.MarbleNetFlags;
import net.BitStream.OutputBitStream; import net.BitStream.OutputBitStream;
@ -375,9 +376,19 @@ class Marble extends GameObject {
this.netCorrected = false; this.netCorrected = false;
var marbleDts = new DtsObject(); var marbleDts = new DtsObject();
Console.log("Marble: " + Settings.optionsSettings.marbleModel + " (" + Settings.optionsSettings.marbleSkin + ")"); var marbleShader = "";
marbleDts.dtsPath = Settings.optionsSettings.marbleModel; if (connection == null) { // Our marble
marbleDts.matNameOverride.set("base.marble", Settings.optionsSettings.marbleSkin + ".marble"); Console.log("Marble: " + Settings.optionsSettings.marbleModel + " (" + Settings.optionsSettings.marbleSkin + ")");
marbleDts.dtsPath = Settings.optionsSettings.marbleModel;
marbleDts.matNameOverride.set("base.marble", Settings.optionsSettings.marbleSkin + ".marble");
marbleShader = Settings.optionsSettings.marbleShader;
} else {
var marbleData = MarblePickerGui.marbleData[connection.getMarbleId()];
Console.log("Marble: " + marbleData.dts + " (" + marbleData.skin + ")");
marbleDts.dtsPath = marbleData.dts;
marbleDts.matNameOverride.set("base.marble", marbleData.skin + ".marble");
marbleShader = marbleData.shader;
}
marbleDts.showSequences = false; marbleDts.showSequences = false;
marbleDts.useInstancing = false; marbleDts.useInstancing = false;
var dtsFile = ResourceLoader.loadDts(marbleDts.dtsPath).resource; var dtsFile = ResourceLoader.loadDts(marbleDts.dtsPath).resource;
@ -394,10 +405,7 @@ class Marble extends GameObject {
var csky = level != null ? level.sky : (@:privateAccess MarbleGame.instance.previewWorld.sky); var csky = level != null ? level.sky : (@:privateAccess MarbleGame.instance.previewWorld.sky);
this.cubemapRenderer = new CubemapRenderer(MarbleGame.instance.scene, csky, !this.controllable && level != null); this.cubemapRenderer = new CubemapRenderer(MarbleGame.instance.scene, csky, !this.controllable && level != null);
if (Settings.optionsSettings.marbleShader == null if (marbleShader == null || marbleShader == "Default" || marbleShader == "" || !isUltra) { // Use this shit everywhere except ultra
|| Settings.optionsSettings.marbleShader == "Default"
|| Settings.optionsSettings.marbleShader == ""
|| !isUltra) { // Use this shit everywhere except ultra
mat.mainPass.addShader(new MarbleReflection(this.cubemapRenderer.cubemap)); mat.mainPass.addShader(new MarbleReflection(this.cubemapRenderer.cubemap));
} else { } else {
// Generate tangents for next shaders, only for Ultra // Generate tangents for next shaders, only for Ultra
@ -410,31 +418,31 @@ class Marble extends GameObject {
mat.mainPass.removeShader(mat.textureShader); mat.mainPass.removeShader(mat.textureShader);
if (Settings.optionsSettings.marbleShader == "ClassicGlassPureSphere") { if (marbleShader == "ClassicGlassPureSphere") {
var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble01.normal.png").resource; var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble01.normal.png").resource;
var classicGlassShader = new ClassicGlassPureSphere(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12, var classicGlassShader = new ClassicGlassPureSphere(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12,
new Vector(0.6, 0.6, 0.6, 0.6), 1); new Vector(0.6, 0.6, 0.6, 0.6), 1);
mat.mainPass.addShader(classicGlassShader); mat.mainPass.addShader(classicGlassShader);
} }
if (Settings.optionsSettings.marbleShader == "ClassicMarb") { if (marbleShader == "ClassicMarb") {
var classicMarb = new ClassicMarb(mat.texture, this.cubemapRenderer.cubemap, 12, new Vector(0.6, 0.6, 0.6, 0.6), 1); var classicMarb = new ClassicMarb(mat.texture, this.cubemapRenderer.cubemap, 12, new Vector(0.6, 0.6, 0.6, 0.6), 1);
mat.mainPass.addShader(classicMarb); mat.mainPass.addShader(classicMarb);
} }
if (Settings.optionsSettings.marbleShader == "ClassicMarb2") { if (marbleShader == "ClassicMarb2") {
var classicMarb2 = new ClassicMarb2(mat.texture, this.cubemapRenderer.cubemap, 12, new Vector(0.6, 0.6, 0.6, 0.6), 1); var classicMarb2 = new ClassicMarb2(mat.texture, this.cubemapRenderer.cubemap, 12, new Vector(0.6, 0.6, 0.6, 0.6), 1);
mat.mainPass.addShader(classicMarb2); mat.mainPass.addShader(classicMarb2);
} }
if (Settings.optionsSettings.marbleShader == "ClassicMarb3") { if (marbleShader == "ClassicMarb3") {
var marbSpecColor = new Vector(0.6, 0.6, 0.6, 0.6); var marbSpecColor = new Vector(0.6, 0.6, 0.6, 0.6);
var marbSpec = 12.0; var marbSpec = 12.0;
if (Settings.optionsSettings.marbleModel == "data/shapes/balls/marble16.dts") { if (marbleDts.dtsPath == "data/shapes/balls/marble16.dts") {
marbSpec = 6; marbSpec = 6;
marbSpecColor.set(0.2, 0.2, 0.2, 0.2); marbSpecColor.set(0.2, 0.2, 0.2, 0.2);
} }
if (Settings.optionsSettings.marbleModel == "data/shapes/balls/marble31.dts") { if (marbleDts.dtsPath == "data/shapes/balls/marble31.dts") {
marbSpec = 24; marbSpec = 24;
marbSpecColor.set(0.3, 0.3, 0.3, 0.3); marbSpecColor.set(0.3, 0.3, 0.3, 0.3);
} }
@ -442,7 +450,7 @@ class Marble extends GameObject {
mat.mainPass.addShader(classicMarb3); mat.mainPass.addShader(classicMarb3);
} }
if (Settings.optionsSettings.marbleShader == "ClassicMetal") { if (marbleShader == "ClassicMetal") {
var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble18.normal.png").resource; var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble18.normal.png").resource;
marbleNormal.wrap = Repeat; marbleNormal.wrap = Repeat;
var classicMetalShader = new ClassicMetal(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12, var classicMetalShader = new ClassicMetal(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12,
@ -450,7 +458,7 @@ class Marble extends GameObject {
mat.mainPass.addShader(classicMetalShader); mat.mainPass.addShader(classicMetalShader);
} }
if (Settings.optionsSettings.marbleShader == "ClassicMarbGlass20") { if (marbleShader == "ClassicMarbGlass20") {
var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble20.normal.png").resource; var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble20.normal.png").resource;
marbleNormal.wrap = Repeat; marbleNormal.wrap = Repeat;
var classicGlassShader = new ClassicGlass(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12, var classicGlassShader = new ClassicGlass(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12,
@ -458,14 +466,14 @@ class Marble extends GameObject {
mat.mainPass.addShader(classicGlassShader); mat.mainPass.addShader(classicGlassShader);
} }
if (Settings.optionsSettings.marbleShader == "ClassicMarbGlass18") { if (marbleShader == "ClassicMarbGlass18") {
var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble18.normal.png").resource; var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble18.normal.png").resource;
marbleNormal.wrap = Repeat; marbleNormal.wrap = Repeat;
var classicGlassShader = new ClassicGlass(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12, var classicGlassShader = new ClassicGlass(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 12,
new Vector(0.6, 0.6, 0.6, 0.6), 1); new Vector(0.6, 0.6, 0.6, 0.6), 1);
mat.mainPass.addShader(classicGlassShader); mat.mainPass.addShader(classicGlassShader);
} }
if (Settings.optionsSettings.marbleShader == "CrystalMarb") { if (marbleShader == "CrystalMarb") {
var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble02.normal.png").resource; var marbleNormal = ResourceLoader.getTexture("data/shapes/balls/marble02.normal.png").resource;
marbleNormal.wrap = Repeat; marbleNormal.wrap = Repeat;
var classicGlassShader = new CrystalMarb(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 1); var classicGlassShader = new CrystalMarb(mat.texture, marbleNormal, this.cubemapRenderer.cubemap, 1);

View file

@ -1,5 +1,6 @@
package src; package src;
import gui.MarblePickerGui;
import gui.MultiplayerLevelSelectGui; import gui.MultiplayerLevelSelectGui;
import collision.CollisionPool; import collision.CollisionPool;
import net.GemPredictionStore; import net.GemPredictionStore;
@ -481,7 +482,12 @@ class MarbleWorld extends Scheduler {
marblefiles.push("sound/use_blast.wav"); marblefiles.push("sound/use_blast.wav");
} }
// Hacky // Hacky
marblefiles.push(StringTools.replace(Settings.optionsSettings.marbleModel, "data/", "")); if (client == null)
marblefiles.push(StringTools.replace(Settings.optionsSettings.marbleModel, "data/", ""));
else {
var marbleDts = MarblePickerGui.marbleData[client.getMarbleId()].dts;
marblefiles.push(StringTools.replace(marbleDts, "data/", ""));
}
// if (Settings.optionsSettings.marbleCategoryIndex == 0) // if (Settings.optionsSettings.marbleCategoryIndex == 0)
// marblefiles.push("shapes/balls/" + Settings.optionsSettings.marbleSkin + ".marble.png"); // marblefiles.push("shapes/balls/" + Settings.optionsSettings.marbleSkin + ".marble.png");
// else // else
@ -1458,6 +1464,8 @@ class MarbleWorld extends Scheduler {
// } // }
this.tickSchedule(timeState.currentAttemptTime); this.tickSchedule(timeState.currentAttemptTime);
if (this._disposed)
return;
if (this.isWatching && this.replay.currentPlaybackFrame.marbleStateFlags.has(UsedBlast)) if (this.isWatching && this.replay.currentPlaybackFrame.marbleStateFlags.has(UsedBlast))
this.marble.useBlast(timeState); this.marble.useBlast(timeState);
@ -1965,6 +1973,23 @@ class MarbleWorld extends Scheduler {
} }
} }
function mpFinish() {
playGui.setGuiVisibility(false);
Console.log("State End");
#if js
var pointercontainer = js.Browser.document.querySelector("#pointercontainer");
pointercontainer.hidden = false;
#end
if (Util.isTouchDevice()) {
MarbleGame.instance.touchInput.setControlsEnabled(false);
}
this.setCursorLock(false);
if (Net.isHost) {
MarbleGame.instance.quitMission();
}
return 0;
}
function showFinishScreen() { function showFinishScreen() {
if (this.isWatching) if (this.isWatching)
return 0; return 0;

View file

@ -11,220 +11,220 @@ import src.Settings;
class MarblePickerGui extends GuiImage { class MarblePickerGui extends GuiImage {
var innerCtrl:GuiControl; var innerCtrl:GuiControl;
public function new() { static var marbleData = [
var marbleData = [ {
{ name: "1",
name: "1", dts: "data/shapes/balls/marble01.dts",
dts: "data/shapes/balls/marble01.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "2",
name: "2", dts: "data/shapes/balls/marble03.dts",
dts: "data/shapes/balls/marble03.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "3",
name: "3", dts: "data/shapes/balls/marble04.dts",
dts: "data/shapes/balls/marble04.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "4",
name: "4", dts: "data/shapes/balls/marble05.dts",
dts: "data/shapes/balls/marble05.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "5",
name: "5", dts: "data/shapes/balls/marble06.dts",
dts: "data/shapes/balls/marble06.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "6",
name: "6", dts: "data/shapes/balls/marble07.dts",
dts: "data/shapes/balls/marble07.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "7",
name: "7", dts: "data/shapes/balls/marble12.dts",
dts: "data/shapes/balls/marble12.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "8",
name: "8", dts: "data/shapes/balls/marble15.dts",
dts: "data/shapes/balls/marble15.dts", skin: "base",
skin: "base", shader: "ClassicGlassPureSphere"
shader: "ClassicGlassPureSphere" },
}, {
{ name: "9",
name: "9", dts: "data/shapes/balls/marble02.dts",
dts: "data/shapes/balls/marble02.dts", skin: "base",
skin: "base", shader: "CrystalMarb"
shader: "CrystalMarb" },
}, {
{ name: "10",
name: "10", dts: "data/shapes/balls/marble26.dts",
dts: "data/shapes/balls/marble26.dts", skin: "base",
skin: "base", shader: "CrystalMarb"
shader: "CrystalMarb" },
}, {
{ name: "11",
name: "11", dts: "data/shapes/balls/marble27.dts",
dts: "data/shapes/balls/marble27.dts", skin: "base",
skin: "base", shader: "CrystalMarb"
shader: "CrystalMarb" },
}, {
{ name: "12",
name: "12", dts: "data/shapes/balls/marble28.dts",
dts: "data/shapes/balls/marble28.dts", skin: "base",
skin: "base", shader: "CrystalMarb"
shader: "CrystalMarb" },
}, {
{ name: "13",
name: "13", dts: "data/shapes/balls/marble29.dts",
dts: "data/shapes/balls/marble29.dts", skin: "base",
skin: "base", shader: "CrystalMarb"
shader: "CrystalMarb" },
}, {
{ name: "14",
name: "14", dts: "data/shapes/balls/marble30.dts",
dts: "data/shapes/balls/marble30.dts", skin: "base",
skin: "base", shader: "CrystalMarb"
shader: "CrystalMarb" },
}, {
{ name: "15",
name: "15", dts: "data/shapes/balls/marble11.dts",
dts: "data/shapes/balls/marble11.dts", skin: "base",
skin: "base", shader: "ClassicMetal"
shader: "ClassicMetal" },
}, {
{ name: "16",
name: "16", dts: "data/shapes/balls/marble18.dts",
dts: "data/shapes/balls/marble18.dts", skin: "base",
skin: "base", shader: "ClassicMarbGlass18"
shader: "ClassicMarbGlass18" },
}, {
{ name: "17",
name: "17", dts: "data/shapes/balls/marble20.dts",
dts: "data/shapes/balls/marble20.dts", skin: "base",
skin: "base", shader: "ClassicMarbGlass20"
shader: "ClassicMarbGlass20" },
}, {
{ name: "18",
name: "18", dts: "data/shapes/balls/marble33.dts",
dts: "data/shapes/balls/marble33.dts", skin: "base",
skin: "base", shader: "ClassicMetal"
shader: "ClassicMetal" },
}, {
{ name: "19",
name: "19", dts: "data/shapes/balls/marble34.dts",
dts: "data/shapes/balls/marble34.dts", skin: "base",
skin: "base", shader: "ClassicMarb2"
shader: "ClassicMarb2" },
}, {
{ name: "20",
name: "20", dts: "data/shapes/balls/marble09.dts",
dts: "data/shapes/balls/marble09.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "21",
name: "21", dts: "data/shapes/balls/marble13.dts",
dts: "data/shapes/balls/marble13.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "22",
name: "22", dts: "data/shapes/balls/marble14.dts",
dts: "data/shapes/balls/marble14.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "23",
name: "23", dts: "data/shapes/balls/marble17.dts",
dts: "data/shapes/balls/marble17.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "24",
name: "24", dts: "data/shapes/balls/marble19.dts",
dts: "data/shapes/balls/marble19.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "25",
name: "25", dts: "data/shapes/balls/marble21.dts",
dts: "data/shapes/balls/marble21.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "26",
name: "26", dts: "data/shapes/balls/marble22.dts",
dts: "data/shapes/balls/marble22.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "27",
name: "27", dts: "data/shapes/balls/marble23.dts",
dts: "data/shapes/balls/marble23.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "28",
name: "28", dts: "data/shapes/balls/marble24.dts",
dts: "data/shapes/balls/marble24.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "29",
name: "29", dts: "data/shapes/balls/marble25.dts",
dts: "data/shapes/balls/marble25.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "30",
name: "30", dts: "data/shapes/balls/marble31.dts",
dts: "data/shapes/balls/marble31.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "31",
name: "31", dts: "data/shapes/balls/marble32.dts",
dts: "data/shapes/balls/marble32.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "32",
name: "32", dts: "data/shapes/balls/marble08.dts",
dts: "data/shapes/balls/marble08.dts", skin: "base",
skin: "base", shader: "ClassicMarb"
shader: "ClassicMarb" },
}, {
{ name: "33",
name: "33", dts: "data/shapes/balls/marble10.dts",
dts: "data/shapes/balls/marble10.dts", skin: "base",
skin: "base", shader: "ClassicMarb2"
shader: "ClassicMarb2" },
}, {
{ name: "34",
name: "34", dts: "data/shapes/balls/marble16.dts",
dts: "data/shapes/balls/marble16.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" },
}, {
{ name: "35",
name: "35", dts: "data/shapes/balls/marble35.dts",
dts: "data/shapes/balls/marble35.dts", skin: "base",
skin: "base", shader: "ClassicMarb3"
shader: "ClassicMarb3" }
} ];
];
public function new() {
var res = ResourceLoader.getImage("data/ui/game/CloudBG.jpg").resource.toTile(); var res = ResourceLoader.getImage("data/ui/game/CloudBG.jpg").resource.toTile();
super(res); super(res);

View file

@ -635,7 +635,7 @@ class HuntMode extends NullMode {
NetCommands.timerRanOut(); NetCommands.timerRanOut();
} }
if (!level.isWatching) { if (!level.isWatching) {
@:privateAccess level.schedule(level.timeState.currentAttemptTime, () -> cast level.showFinishScreen()); @:privateAccess level.schedule(level.timeState.currentAttemptTime + 5, () -> cast level.mpFinish());
} }
} else { } else {
var myScore = { var myScore = {

View file

@ -59,6 +59,7 @@ abstract class GameConnection {
var name:String; var name:String;
var lobbyReady:Bool; var lobbyReady:Bool;
var platform:NetPlatform; var platform:NetPlatform;
var marbleId:Int;
function new(id:Int) { function new(id:Int) {
this.id = id; this.id = id;
@ -107,4 +108,12 @@ abstract class GameConnection {
public inline function setName(value:String) { public inline function setName(value:String) {
name = value; name = value;
} }
public inline function setMarbleId(value:Int) {
marbleId = value;
}
public inline function getMarbleId() {
return marbleId;
}
} }

View file

@ -303,6 +303,7 @@ class Net {
b.writeByte(c); b.writeByte(c);
b.writeByte(v.lobbyReady ? 1 : 0); b.writeByte(v.lobbyReady ? 1 : 0);
b.writeByte(v.platform); b.writeByte(v.platform);
b.writeByte(v.marbleId);
var name = v.getName(); var name = v.getName();
b.writeByte(name.length); b.writeByte(name.length);
for (i in 0...name.length) { for (i in 0...name.length) {
@ -313,6 +314,7 @@ class Net {
b.writeByte(0); b.writeByte(0);
b.writeByte(Net.lobbyHostReady ? 1 : 0); b.writeByte(Net.lobbyHostReady ? 1 : 0);
b.writeByte(getPlatform()); b.writeByte(getPlatform());
b.writeByte(Settings.optionsSettings.marbleIndex);
var name = Settings.highscoreName; var name = Settings.highscoreName;
b.writeByte(name.length); b.writeByte(name.length);
for (i in 0...name.length) { for (i in 0...name.length) {
@ -332,7 +334,7 @@ class Net {
case ClientIdAssign: case ClientIdAssign:
clientId = input.readByte(); // 8 bit client id, hopefully we don't exceed this clientId = input.readByte(); // 8 bit client id, hopefully we don't exceed this
Console.log('Client ID set to ${clientId}'); Console.log('Client ID set to ${clientId}');
NetCommands.setPlayerName(clientId, Settings.highscoreName); // Send our player name to the server NetCommands.setPlayerData(clientId, Settings.highscoreName, Settings.optionsSettings.marbleIndex); // Send our player name to the server
NetCommands.transmitPlatform(clientId, getPlatform()); // send our platform too NetCommands.transmitPlatform(clientId, getPlatform()); // send our platform too
case Ping: case Ping:
@ -417,6 +419,7 @@ class Net {
var id = input.readByte(); var id = input.readByte();
var cready = input.readByte() == 1; var cready = input.readByte() == 1;
var platform = input.readByte(); var platform = input.readByte();
var marble = input.readByte();
if (id != 0 && id != Net.clientId && !clientIdMap.exists(id)) { if (id != 0 && id != Net.clientId && !clientIdMap.exists(id)) {
Console.log('Adding ghost connection ${id}'); Console.log('Adding ghost connection ${id}');
addGhost(id); addGhost(id);
@ -429,6 +432,7 @@ class Net {
} }
if (clientIdMap.exists(id)) { if (clientIdMap.exists(id)) {
clientIdMap[id].setName(name); clientIdMap[id].setName(name);
clientIdMap[id].setMarbleId(marble);
clientIdMap[id].lobbyReady = cready; clientIdMap[id].lobbyReady = cready;
clientIdMap[id].platform = platform; clientIdMap[id].platform = platform;
} }

View file

@ -124,9 +124,10 @@ class NetCommands {
} }
} }
@:rpc(client) public static function setPlayerName(clientId:Int, name:String) { @:rpc(client) public static function setPlayerData(clientId:Int, name:String, marble:Int) {
if (Net.isHost) { if (Net.isHost) {
Net.clientIdMap[clientId].setName(name); Net.clientIdMap[clientId].setName(name);
Net.clientIdMap[clientId].setMarbleId(marble);
if (MarbleGame.canvas.content is MultiplayerLevelSelectGui) { if (MarbleGame.canvas.content is MultiplayerLevelSelectGui) {
cast(MarbleGame.canvas.content, MultiplayerLevelSelectGui).updateLobbyNames(); cast(MarbleGame.canvas.content, MultiplayerLevelSelectGui).updateLobbyNames();
} }