[add] Added LobbyWorld.
This commit is contained in:
parent
887f456a8b
commit
361678a94f
@ -2,6 +2,8 @@
|
|||||||
module sj.Game;
|
module sj.Game;
|
||||||
|
|
||||||
import sj.AbstractGame,
|
import sj.AbstractGame,
|
||||||
|
sj.LobbyWorld,
|
||||||
|
sj.ProgramSet,
|
||||||
sj.TitleScene;
|
sj.TitleScene;
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -9,12 +11,28 @@ class Game : AbstractGame {
|
|||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
this() {
|
this() {
|
||||||
title_ = new TitleScene;
|
programs_ = new ProgramSet;
|
||||||
title_.Initialize(title_); // TODO: specify proper next scene
|
|
||||||
|
lobby_ = new LobbyWorld(programs_);
|
||||||
|
|
||||||
|
title_ = new TitleScene(lobby_);
|
||||||
|
title_.SetupSceneDependency(title_); // TODO: specify proper next scene
|
||||||
|
|
||||||
super(title_);
|
super(title_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
~this() {
|
||||||
|
title_.destroy();
|
||||||
|
|
||||||
|
lobby_.destroy();
|
||||||
|
|
||||||
|
programs_.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
ProgramSet programs_;
|
||||||
|
|
||||||
|
LobbyWorld lobby_;
|
||||||
|
|
||||||
TitleScene title_;
|
TitleScene title_;
|
||||||
}
|
}
|
||||||
|
28
src/sj/LobbyWorld.d
Normal file
28
src/sj/LobbyWorld.d
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/// License: MIT
|
||||||
|
module sj.LobbyWorld;
|
||||||
|
|
||||||
|
import sjplayer.Background;
|
||||||
|
|
||||||
|
import sj.ProgramSet;
|
||||||
|
|
||||||
|
///
|
||||||
|
class LobbyWorld {
|
||||||
|
public:
|
||||||
|
///
|
||||||
|
this(ProgramSet programs) {
|
||||||
|
background_ = new Background(programs.forPlayers.Get!BackgroundProgram);
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
void Draw() {
|
||||||
|
background_.Draw();
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
@property Background background() {
|
||||||
|
return background_;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Background background_;
|
||||||
|
}
|
24
src/sj/ProgramSet.d
Normal file
24
src/sj/ProgramSet.d
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/// License: MIT
|
||||||
|
module sj.ProgramSet;
|
||||||
|
|
||||||
|
static import sjplayer = sjplayer.ProgramSet;
|
||||||
|
|
||||||
|
///
|
||||||
|
class ProgramSet {
|
||||||
|
public:
|
||||||
|
///
|
||||||
|
this() {
|
||||||
|
for_players_ = new sjplayer.ProgramSet;
|
||||||
|
}
|
||||||
|
~this() {
|
||||||
|
for_players_.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
@property sjplayer.ProgramSet forPlayers() {
|
||||||
|
return for_players_;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
sjplayer.ProgramSet for_players_;
|
||||||
|
}
|
@ -3,25 +3,35 @@ module sj.TitleScene;
|
|||||||
|
|
||||||
import sj.AbstractScene,
|
import sj.AbstractScene,
|
||||||
sj.KeyInput,
|
sj.KeyInput,
|
||||||
|
sj.LobbyWorld,
|
||||||
sj.SceneInterface;
|
sj.SceneInterface;
|
||||||
|
|
||||||
///
|
///
|
||||||
class TitleScene : AbstractScene {
|
class TitleScene : AbstractScene {
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
this() {
|
this(LobbyWorld lobby) {
|
||||||
|
lobby_ = lobby;
|
||||||
|
|
||||||
|
// TODO: test
|
||||||
|
import gl4d;
|
||||||
|
lobby_.background.outer_color = vec4(0.8, 0.8, 0.8, 1);
|
||||||
|
lobby_.background.inner_color = vec4(1, 1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
void Initialize(SceneInterface next_scene) {
|
void SetupSceneDependency(SceneInterface next_scene) {
|
||||||
next_scene_ = next_scene;
|
next_scene_ = next_scene;
|
||||||
}
|
}
|
||||||
|
|
||||||
override void Update(KeyInput input) {
|
override void Update(KeyInput input) {
|
||||||
}
|
}
|
||||||
override void Draw() {
|
override void Draw() {
|
||||||
|
lobby_.Draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SceneInterface next_scene_;
|
SceneInterface next_scene_;
|
||||||
|
|
||||||
|
LobbyWorld lobby_;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user