Skip to content

Commit 9d20e8a

Browse files
committed
Moved some logic in game db
1 parent c33438c commit 9d20e8a

18 files changed

+68
-46
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ html/war/WEB-INF/classes/
2020
gwt-unitCache/
2121
www-test/
2222
.gwt-tmp/
23-
23+
game.config
2424
## Android Studio and Intellij and Android in general
2525
android/libs/armeabi/
2626
android/libs/armeabi-v7a/

core/assets/db/entities/barell.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
{
1010
class: "renderable",
11-
path: "raw-models/barell.g3db"
11+
path: "graphics/models/barell.g3db"
1212
},
1313

1414
{

core/assets/db/entities/crate.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
{
1010
class: "renderable",
11-
path: "raw-models/Crate.g3db"
11+
path: "graphics/models/Crate.g3db"
1212
},
1313

1414
{

core/assets/db/entities/ham.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
},
99
{
1010
class: "renderable",
11-
path: "raw-models/Ham.g3db"
11+
path: "graphics/models/Ham.g3db"
1212
},
1313

1414
{
1.37 KB
Loading
733 Bytes
Loading
1.62 KB
Binary file not shown.
610 Bytes
Loading

core/assets/graphics/models/Ham.g3db

10.9 KB
Binary file not shown.
4.6 KB
Binary file not shown.

core/src/macbury/forge/db/GameDatabase.java

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
11
package macbury.forge.db;
22

33
import com.badlogic.gdx.Gdx;
4+
import com.badlogic.gdx.files.FileHandle;
5+
import com.esotericsoftware.kryo.Kryo;
6+
import com.esotericsoftware.kryo.io.Input;
7+
import com.esotericsoftware.kryo.io.Output;
48
import macbury.forge.ForgE;
5-
import macbury.forge.db.models.PlayerStartPosition;
9+
import macbury.forge.db.models.BaseModel;
10+
import macbury.forge.db.models.Teleport;
611
import macbury.forge.utils.Vector3i;
712

13+
import java.io.FileNotFoundException;
14+
import java.io.FileOutputStream;
15+
816
/**
917
* Created by macbury on 07.11.14.
1018
*/
1119
public class GameDatabase {
12-
public static final String FILE_NAME = "game.db";
20+
public static final String FILE_NAME = "db/game.config";
1321
private static final String TAG = "GameDatabase";
1422
public String title;
1523
public int currentyUID = 0;
1624
public long build = 0;
1725
public int lastOpenedMapId = -1;
18-
public PlayerStartPosition startPosition;
26+
public Teleport startPosition;
27+
1928
/**
2029
* Create int uuid
2130
* @return unique id
@@ -34,11 +43,21 @@ public void bootstrap() {
3443

3544
public void setStartPosition(int levelId, Vector3i voxelPosition) {
3645
Gdx.app.log(TAG, "New player start position: " + levelId + " at " + voxelPosition.toString());
37-
startPosition = new PlayerStartPosition();
38-
startPosition.mapId = levelId;
39-
startPosition.voxelPosition = new Vector3i(voxelPosition);
46+
this.startPosition = new Teleport(voxelPosition, levelId);
47+
save();
48+
}
4049

41-
ForgE.storage.saveDB(this);
50+
public void save(BaseModel model) {
51+
Kryo kryo = ForgE.storage.begin(); {
52+
FileHandle modelFile = model.getFileHandle();
53+
try {
54+
Output output = new Output(new FileOutputStream(modelFile.file(), false));
55+
kryo.writeObject(output, model);
56+
output.close();
57+
} catch (FileNotFoundException e) {
58+
e.printStackTrace();
59+
}
60+
} ForgE.storage.end(kryo);
4261
}
4362

4463
public void save() {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package macbury.forge.db.models;
2+
3+
import com.badlogic.gdx.Gdx;
4+
import com.badlogic.gdx.files.FileHandle;
5+
6+
/**
7+
* Created by macbury on 11.05.15.
8+
*/
9+
public abstract class BaseModel {
10+
private static final String DB_PATH = "db/";
11+
12+
public abstract String getFilename();
13+
public abstract String getStorageDir();
14+
15+
public FileHandle getFileHandle() {
16+
return Gdx.files.internal(DB_PATH+ getStorageDir() + getFilename());
17+
}
18+
}

core/src/macbury/forge/db/models/PlayerStartPosition.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

core/src/macbury/forge/db/models/Teleport.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
/**
66
* Created by macbury on 24.03.15.
77
*/
8-
public class Teleport {
8+
public class Teleport {
99
public final Vector3i voxelPosition;
1010
public final int mapId;
1111

1212
public Teleport(Vector3i voxelPosition, int mapId) {
13-
this.voxelPosition = voxelPosition;
13+
this.voxelPosition = new Vector3i(voxelPosition);
1414
this.mapId = mapId;
1515
}
16+
1617
}

core/src/macbury/forge/screens/LoadingScreen.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import com.badlogic.gdx.math.Vector3;
1212
import com.badlogic.gdx.utils.PerformanceCounter;
1313
import macbury.forge.ForgE;
14-
import macbury.forge.db.models.PlayerStartPosition;
1514
import macbury.forge.db.models.Teleport;
1615
import macbury.forge.level.loader.AsyncLevelLoader;
1716
import macbury.forge.level.Level;
@@ -37,10 +36,6 @@ public class LoadingScreen extends AbstractScreen implements Promise<Level> {
3736
private Matrix4 boxTransMat;
3837
private float indicatorRotation;
3938

40-
public LoadingScreen(PlayerStartPosition startPosition) {
41-
this(startPosition.toTeleport());
42-
}
43-
4439
public LoadingScreen(Teleport teleport) {
4540
super();
4641
this.teleport = teleport;

core/src/macbury/forge/storage/StorageManager.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import macbury.forge.assets.assets.ModelAsset;
1919
import macbury.forge.assets.assets.TextureAsset;
2020
import macbury.forge.db.GameDatabase;
21-
import macbury.forge.db.models.PlayerStartPosition;
21+
import macbury.forge.db.models.Teleport;
2222
import macbury.forge.graphics.batch.renderable.VoxelChunkRenderable;
2323
import macbury.forge.level.LevelEnv;
2424
import macbury.forge.level.LevelState;
@@ -62,7 +62,7 @@ public Kryo create () {
6262
kryo.register(VoxelChunkRenderable.class, new VoxelFaceRenderableSerializer());
6363
kryo.register(Matrix4.class, new Matrix4Serializer());
6464
kryo.register(Vector3i.class, new Vector3iSerializer());
65-
kryo.register(PlayerStartPosition.class, new PlayerStartPositionSerializer());
65+
kryo.register(Teleport.class, new PlayerStartPositionSerializer());
6666
kryo.register(TextureAsset.class, new AssetSerializer());
6767
kryo.register(ModelAsset.class, new AssetSerializer());
6868
kryo.setDefaultSerializer(TaggedFieldSerializer.class);
@@ -104,4 +104,11 @@ public void saveDB(GameDatabase db) {
104104
}
105105

106106

107+
public Kryo begin() {
108+
return pool.borrow();
109+
}
110+
111+
public void end(Kryo kryo) {
112+
pool.release(kryo);
113+
}
107114
}

core/src/macbury/forge/storage/serializers/db/GameDatabaseSerializer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.esotericsoftware.kryo.io.Input;
66
import com.esotericsoftware.kryo.io.Output;
77
import macbury.forge.db.GameDatabase;
8-
import macbury.forge.db.models.PlayerStartPosition;
8+
import macbury.forge.db.models.Teleport;
99

1010
/**
1111
* Created by macbury on 10.11.14.
@@ -17,7 +17,7 @@ public void write(Kryo kryo, Output output, GameDatabase gameDatabase) {
1717
output.writeInt(gameDatabase.currentyUID);
1818
output.writeString(gameDatabase.title);
1919
output.writeLong(gameDatabase.build++);
20-
kryo.writeObjectOrNull(output, gameDatabase.startPosition, PlayerStartPosition.class);
20+
kryo.writeObjectOrNull(output, gameDatabase.startPosition, Teleport.class);
2121
output.writeInt(gameDatabase.lastOpenedMapId);
2222
}
2323

@@ -28,7 +28,7 @@ public GameDatabase read(Kryo kryo, Input input, Class<GameDatabase> type) {
2828
db.currentyUID = input.readInt();
2929
db.title = input.readString();
3030
db.build = input.readLong();
31-
db.startPosition = kryo.readObjectOrNull(input, PlayerStartPosition.class);
31+
db.startPosition = kryo.readObjectOrNull(input, Teleport.class);
3232
db.lastOpenedMapId = input.readInt();
3333
return db;
3434
}

core/src/macbury/forge/storage/serializers/db/models/PlayerStartPositionSerializer.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,22 @@
44
import com.esotericsoftware.kryo.Serializer;
55
import com.esotericsoftware.kryo.io.Input;
66
import com.esotericsoftware.kryo.io.Output;
7-
import macbury.forge.db.models.PlayerStartPosition;
7+
import macbury.forge.db.models.Teleport;
88
import macbury.forge.utils.Vector3i;
99

1010
/**
1111
* Created by macbury on 24.03.15.
1212
*/
13-
public class PlayerStartPositionSerializer extends Serializer<PlayerStartPosition> {
13+
public class PlayerStartPositionSerializer extends Serializer<Teleport> {
1414
@Override
15-
public void write(Kryo kryo, Output output, PlayerStartPosition object) {
15+
public void write(Kryo kryo, Output output, Teleport object) {
1616
kryo.writeObject(output, object.voxelPosition);
1717
output.writeInt(object.mapId, true);
1818
}
1919

2020
@Override
21-
public PlayerStartPosition read(Kryo kryo, Input input, Class<PlayerStartPosition> type) {
22-
PlayerStartPosition startPosition = new PlayerStartPosition();
23-
startPosition.voxelPosition = kryo.readObject(input, Vector3i.class);
24-
startPosition.mapId = input.readInt(true);
21+
public Teleport read(Kryo kryo, Input input, Class<Teleport> type) {
22+
Teleport startPosition = new Teleport(kryo.readObject(input, Vector3i.class), input.readInt(true));
2523
return startPosition;
2624
}
2725
}

0 commit comments

Comments
 (0)