[refactoring] restore GameStorage

This commit is contained in:
2020-09-10 12:39:30 +03:00
parent b4fd3fbcd2
commit 55a6ec2072
6 changed files with 24 additions and 15 deletions

View File

@@ -9,6 +9,7 @@ import ru.m.puzzlez.settings.Settings;
import ru.m.puzzlez.source.AssetImageSource;
import ru.m.puzzlez.source.FileImageSource;
import ru.m.puzzlez.source.PixabayImageSource;
import ru.m.puzzlez.storage.GameStorage;
import ru.m.puzzlez.view.PuzzlezAppView;
import ru.m.update.Updater;
@@ -21,6 +22,7 @@ class PuzzlezApp {
// ToDo: fix @:provide macro
Settings;
IPartBuilder;
GameStorage;
sourceBundle.register(new AssetImageSource());
sourceBundle.register(new FileImageSource());
sourceBundle.register(new PixabayImageSource());

View File

@@ -160,12 +160,12 @@ class Render extends SpriteView implements IRender {
content.graphics.drawRect(0, 0, width, height);
content.graphics.endFill();
case Background.IMAGE(id):
/*imageStorage.resolve(id).then(result -> {
ImageData.fromImageId(id).resolve().then(result -> {
content.graphics.clear();
content.graphics.beginBitmapFill(result);
content.graphics.drawRect(0, 0, width, height);
content.graphics.endFill();
});*/
});
}
}

View File

@@ -7,12 +7,12 @@ import hw.view.popup.ConfirmView;
import promhx.Promise;
import ru.m.puzzlez.image.Game;
import ru.m.puzzlez.image.IGame;
//import ru.m.puzzlez.net.NetworkGame;
import ru.m.puzzlez.proto.event.GameEvent;
import ru.m.puzzlez.proto.game.GameState;
import ru.m.puzzlez.proto.game.GameStatus;
import ru.m.puzzlez.render.IRender;
import ru.m.puzzlez.settings.Settings;
import ru.m.puzzlez.storage.GameStorage;
import ru.m.puzzlez.view.popup.BackgroundPopup;
import ru.m.puzzlez.view.popup.PreviewPopup;
@@ -22,7 +22,7 @@ import ru.m.puzzlez.view.popup.PreviewPopup;
@:view private var render:IRender;
private var game:IGame;
@:provide var switcher:FrameSwitcher;
// @:provide var storage:GameStorage;
@:provide var storage:GameStorage;
@:provide var settings:Settings;
private var saveTimer:Timer;
@@ -68,7 +68,7 @@ import ru.m.puzzlez.view.popup.PreviewPopup;
saveTimer = null;
}
if (game != null) {
// storage.save(game.state);
storage.save(game.state);
}
}
@@ -96,7 +96,6 @@ import ru.m.puzzlez.view.popup.PreviewPopup;
.then(result -> {
if (result) {
switcher.change(StartFrame.ID);
// switcher.change(ImageListFrame.ID, storage.statusSource(game.state.status));
}
});
}

View File

@@ -1,5 +1,6 @@
package ru.m.puzzlez.view;
import ru.m.puzzlez.storage.GameStorage;
import hw.view.form.LabelView;
import hw.view.frame.FrameSwitcher;
import hw.view.frame.FrameView;
@@ -21,6 +22,7 @@ typedef ImageSourceConfig = {
@:view var images:ImageDataList;
@:provide var switcher:FrameSwitcher;
@:provide var sourceBundle:ImageSourceBundle;
@:provide var gameStorage:GameStorage;
public function new() {
super(ID);
@@ -37,8 +39,14 @@ typedef ImageSourceConfig = {
}
private function start(imageId:ImageId):Void {
gameStorage.get(imageId).then(state -> {
if (state != null) {
switcher.change(GameFrame.ID, state);
} else {
switcher.change(PresetFrame.ID, imageId);
}
});
}
private function back():Void {
switcher.change(StartFrame.ID);

View File

@@ -1,24 +1,24 @@
package ru.m.puzzlez.view.common;
import hw.view.utils.DrawUtil;
import hw.view.group.GroupView;
import hw.view.ImageView;
import ru.m.puzzlez.image.ImageData;
import ru.m.puzzlez.proto.game.ImageId;
class ImageIdView extends ImageView {
@:template class ImageIdView extends GroupView {
public var imageId(default, set):ImageId;
private function set_imageId(value:ImageId):ImageId {
imageId = value;
ImageData.fromImageId(imageId).resolve().then(data -> this.image = data);
loading.promise = ImageData.fromImageId(imageId).resolve().then(data -> this.imageView.image = data);
return imageId;
}
@:view("image") var imageView:ImageView;
private var loading:LoadingWrapper;
public function new(imageId:ImageId = null) {
super();
style = "view";
stretch = false;
fillType = FillType.COVER;
loading = new LoadingWrapper(this);
if (imageId != null) {
this.imageId = imageId;
}

View File

@@ -55,7 +55,7 @@ class DefaultHelper implements DataHelper<Bytes, String> {
}
public function dataMeta(data:Bytes):DataMeta {
return ["date" => Date.now().toString()];
return ["date" => Date.now()];
}
}