From 20adb3d634944e08a1d5b3fdbe94fbe79bcf493a Mon Sep 17 00:00:00 2001 From: shmyga Date: Wed, 19 Feb 2020 17:53:17 +0300 Subject: [PATCH] [update] add CacheStorage; improve PresetFrame --- package.json | 2 +- src/haxe/ru/m/Device.hx | 11 ++- src/haxe/ru/m/puzzlez/PuzzlezApp.hx | 1 + src/haxe/ru/m/puzzlez/PuzzlezTheme.hx | 7 ++ src/haxe/ru/m/puzzlez/render/Render.hx | 5 +- src/haxe/ru/m/puzzlez/source/PixabaySource.hx | 21 +++++- src/haxe/ru/m/puzzlez/storage/CacheStorage.hx | 66 ++++++++++++++++++ src/haxe/ru/m/puzzlez/storage/ImageStorage.hx | 24 ------- src/haxe/ru/m/puzzlez/view/PresetFrame.yaml | 23 +++--- src/haxe/ru/m/puzzlez/view/PresetView.hx | 17 ++--- src/haxe/ru/m/puzzlez/view/StartFrame.yaml | 17 +++-- src/haxe/ru/m/update/Updater.hx | 2 +- src/resources/icon.png | Bin 23894 -> 25298 bytes work.md | 3 +- 14 files changed, 143 insertions(+), 56 deletions(-) create mode 100644 src/haxe/ru/m/puzzlez/storage/CacheStorage.hx diff --git a/package.json b/package.json index 35829fb..4a26d1f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "puzzlez", - "version": "0.3.2", + "version": "0.3.3", "private": true, "devDependencies": { "dateformat": "^3.0.3", diff --git a/src/haxe/ru/m/Device.hx b/src/haxe/ru/m/Device.hx index 99bf839..c9a1660 100644 --- a/src/haxe/ru/m/Device.hx +++ b/src/haxe/ru/m/Device.hx @@ -1,9 +1,12 @@ package ru.m; -@:enum abstract Platform(String) from String to String { +enum abstract Platform(String) from String to String { var ANDROID = "android"; var LINUX = "linux"; var WINDOWS = "windows"; + var FLASH = "flash"; + var HTML5 = "html5"; + var UNKNOWN = "unknown"; } class Device { @@ -17,8 +20,12 @@ class Device { return LINUX; #elseif windows return WINDOWS; + #elseif flash + return FLASH; + #elseif html5 + return HTML5; #else - return null; + return UNKNOWN; #end } diff --git a/src/haxe/ru/m/puzzlez/PuzzlezApp.hx b/src/haxe/ru/m/puzzlez/PuzzlezApp.hx index 410ac89..1e51633 100644 --- a/src/haxe/ru/m/puzzlez/PuzzlezApp.hx +++ b/src/haxe/ru/m/puzzlez/PuzzlezApp.hx @@ -15,6 +15,7 @@ class PuzzlezApp extends App { // ToDo: fix @:provide macro GameStorage; ImageStorage; + Const.init(); L.push(new TraceLogger()); updater = new Updater(Const.VERSION, "https://shmyga.ru/repo/puzzlez/packages.json"); var app = new PuzzlezApp(new PuzzlezTheme(), openfl.Assets.getBitmapData("resources/icon.png")); diff --git a/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx b/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx index 8156bac..bfa72ab 100644 --- a/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx +++ b/src/haxe/ru/m/puzzlez/PuzzlezTheme.hx @@ -56,5 +56,12 @@ class PuzzlezTheme extends Theme { register(new Style("button.red", [ "skin.color" => 0xcc0000, ], "button")); + + register(new Style("label.header", [ + "font.size" => 36, + "geometry.hAlign" => HAlign.CENTER, + "geometry.margin.top" => 10, + "geometry.margin.bottom" => 10, + ], "label")); } } diff --git a/src/haxe/ru/m/puzzlez/render/Render.hx b/src/haxe/ru/m/puzzlez/render/Render.hx index b87191b..af02bc7 100644 --- a/src/haxe/ru/m/puzzlez/render/Render.hx +++ b/src/haxe/ru/m/puzzlez/render/Render.hx @@ -135,6 +135,10 @@ class Render extends SpriteView implements IRender { private function onMouseDown(event:MouseEvent):Void { if (Std.is(event.target, PartView)) { var part:PartView = event.target; + if (event.ctrlKey) { + save(part); + return; + } if (part.completed) { return; } @@ -160,7 +164,6 @@ class Render extends SpriteView implements IRender { signal.emit(ACTION(PART_PUT(activePart.id, partPosition.clone()))); tableView.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); tableView.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); - //save(activePart); activePart = null; activePoint = null; } diff --git a/src/haxe/ru/m/puzzlez/source/PixabaySource.hx b/src/haxe/ru/m/puzzlez/source/PixabaySource.hx index 3777ff7..55a9cc2 100644 --- a/src/haxe/ru/m/puzzlez/source/PixabaySource.hx +++ b/src/haxe/ru/m/puzzlez/source/PixabaySource.hx @@ -1,10 +1,13 @@ package ru.m.puzzlez.source; +import haxe.io.Bytes; import flash.display.BitmapData; -import haxework.net.ImageLoader; +import flash.utils.ByteArray; +import haxework.net.BytesLoader; import haxework.net.JsonLoader; import promhx.Promise; import ru.m.puzzlez.core.Id; +import ru.m.puzzlez.storage.CacheStorage; typedef PixabayImage = { var id:Int; @@ -57,6 +60,8 @@ class PixabaySource implements IImageSource { private var cache:Map>; + @:provide static var imageCache:CacheStorage; + public function new() { cache = new Map(); } @@ -85,7 +90,17 @@ class PixabaySource implements IImageSource { } public function loadImage(id:ImageId, preview:Bool = false):Promise { - return getImage(id) - .pipe((data:PixabayImage) -> return new ImageLoader().GET(preview ? data.webformatURL : data.largeImageURL)); + var key = '${id}_${preview}'; + if (imageCache.exists(key)) { + return ImageUtil.bytesToImage(imageCache.read(key)); + } else { + return getImage(id) + .pipe((data:PixabayImage) -> new BytesLoader().GET(preview ? data.webformatURL : data.largeImageURL)) + .pipe((data:ByteArray) -> { + var bytes = Bytes.ofData(data); + imageCache.write(key, bytes); + return ImageUtil.bytesToImage(bytes); + }); + } } } diff --git a/src/haxe/ru/m/puzzlez/storage/CacheStorage.hx b/src/haxe/ru/m/puzzlez/storage/CacheStorage.hx new file mode 100644 index 0000000..edfbe0c --- /dev/null +++ b/src/haxe/ru/m/puzzlez/storage/CacheStorage.hx @@ -0,0 +1,66 @@ +package ru.m.puzzlez.storage; + +import flash.net.SharedObject; +import haxe.io.Bytes; + +#if html5 +@:provide class CacheStorage { + public function new() { + } + + public function exists(key:String):Bool { + return false; + } + + public function read(key:String):Null { + return null; + } + + public function write(key:String, data:Bytes):Void { + } + + public function remove(key:String):Void { + } + + public function clean():Void { + } +} +#else +@:provide class CacheStorage { + + public function new() { + } + + private inline function getSharedObject(key:String):SharedObject { + key = StringTools.replace(key, "/", "_"); + key = StringTools.replace(key, ":", "_"); + key = StringTools.replace(key, ".", "_"); + return SharedObject.getLocal('cache/${key}'); + } + + public function exists(key:String):Bool { + var so = getSharedObject(key); + return so.size > 0 && Reflect.hasField(so.data, "data"); + } + + public function read(key:String):Null { + var so = getSharedObject(key); + return Bytes.ofData(Reflect.field(so.data, "data")); + } + + public function write(key:String, data:Bytes):Void { + var so = getSharedObject(key); + so.setProperty("data", data.getData()); + so.flush(); + } + + public function remove(key:String):Void { + var so = getSharedObject(key); + so.clear(); + } + + public function clean():Void { + //SharedObject.deleteAll("cache/"); + } +} +#end diff --git a/src/haxe/ru/m/puzzlez/storage/ImageStorage.hx b/src/haxe/ru/m/puzzlez/storage/ImageStorage.hx index a686eec..17afc46 100644 --- a/src/haxe/ru/m/puzzlez/storage/ImageStorage.hx +++ b/src/haxe/ru/m/puzzlez/storage/ImageStorage.hx @@ -1,15 +1,7 @@ package ru.m.puzzlez.storage; -import flash.display.Bitmap; import flash.display.BitmapData; -import flash.display.Loader; -import flash.display.LoaderInfo; -import flash.display.PNGEncoderOptions; -import flash.events.Event; -import flash.geom.Rectangle; import flash.net.SharedObject; -import flash.utils.ByteArray; -import promhx.Deferred; import promhx.Promise; import Reflect; import ru.m.puzzlez.core.Id; @@ -47,22 +39,6 @@ import ru.m.puzzlez.source.PixabaySource; so.flush(); } - public static function serialize(image:BitmapData):ByteArray { - var data = new ByteArray(); - return image.encode(new Rectangle(0, 0, image.width, image.height), new PNGEncoderOptions(), data); - return data; - } - - public static function unserialize(data:ByteArray):Promise { - var def = new Deferred(); - var loader = new Loader(); - loader.contentLoaderInfo.addEventListener(Event.COMPLETE, (event:Event) -> { - def.resolve(cast(cast(event.target, LoaderInfo).content, Bitmap).bitmapData); - }); - loader.loadBytes(data); - return def.promise(); - } - public function resolve(id:ImageId, preview:Bool = false):Promise { var key = '${id}_${preview}'; if (cache.exists(key)) { diff --git a/src/haxe/ru/m/puzzlez/view/PresetFrame.yaml b/src/haxe/ru/m/puzzlez/view/PresetFrame.yaml index 0eba2ec..498bbe6 100644 --- a/src/haxe/ru/m/puzzlez/view/PresetFrame.yaml +++ b/src/haxe/ru/m/puzzlez/view/PresetFrame.yaml @@ -2,27 +2,32 @@ style: frame layout.margin: 10 views: + - $type: haxework.view.form.LabelView + text: Puzzle configure + style: label.header - $type: haxework.view.group.HGroupView geometry.width: 100% layout.hAlign: center layout.vAlign: middle views: + - id: sizes + $type: haxework.view.data.DataView + layout: + $type: haxework.view.layout.TailLayout + hAlign: center + stretch: true + margin: 5 + factory: ~factory + +onDataSelect: ~selectSize - $type: haxework.view.form.ButtonView + style: button.active geometry.margin.left: 15 text: Start +onPress: ~start() - - id: sizes - $type: haxework.view.data.DataView - geometry.width: 100% - layout: - $type: haxework.view.layout.TailLayout - hAlign: center - margin: 5 - factory: ~factory - +onDataSelect: ~selectSize - id: image $type: ru.m.puzzlez.view.PresetView geometry.stretch: true + geometry.margin: 15 - $type: haxework.view.form.ButtonView text: Back geometry.position: absolute diff --git a/src/haxe/ru/m/puzzlez/view/PresetView.hx b/src/haxe/ru/m/puzzlez/view/PresetView.hx index 156f892..67b8ece 100644 --- a/src/haxe/ru/m/puzzlez/view/PresetView.hx +++ b/src/haxe/ru/m/puzzlez/view/PresetView.hx @@ -3,7 +3,6 @@ package ru.m.puzzlez.view; import flash.display.BitmapData; import flash.display.Graphics; import flash.display.Shape; -import flash.geom.Matrix; import haxework.view.group.GroupView; import ru.m.puzzlez.core.GameState; import ru.m.puzzlez.render.RenderUtil; @@ -20,8 +19,8 @@ class PresetView extends GroupView { private function set_scale(value:Float):Float { var result = table.scaleX = table.scaleY = value; - table.x = (width - state.preset.tableRect.width * value) / 2; - table.y = (height - state.preset.tableRect.height * value) / 2; + table.x = (width - state.preset.imageRect.width * value) / 2; + table.y = (height - state.preset.imageRect.height * value) / 2; return result; } @@ -60,16 +59,14 @@ class PresetView extends GroupView { var partHeight = preset.imageRect.height / preset.grid.height; var graphics:Graphics = table.graphics; graphics.clear(); - var matrix = new Matrix(); - matrix.translate(preset.imageRect.x, preset.imageRect.y); - graphics.beginBitmapFill(image, matrix, false, true); - graphics.drawRect(preset.imageRect.x, preset.imageRect.y, preset.imageRect.width, preset.imageRect.height); + graphics.beginBitmapFill(image, null, false, true); + graphics.drawRect(0, 0, preset.imageRect.width, preset.imageRect.height); graphics.endFill(); for (part in state.parts) { var rect = part.rect.clone(); - rect.x = preset.imageRect.x + part.gridX * part.rect.width; - rect.y = preset.imageRect.y + part.gridY * part.rect.height; + rect.x = part.gridX * part.rect.width; + rect.y = part.gridY * part.rect.height; var path = RenderUtil.builder.build(rect, part.bounds); for (value in RenderUtil.borderSettings) { graphics.lineStyle(1, value.color, value.opacity); @@ -82,7 +79,7 @@ class PresetView extends GroupView { override public function update():Void { super.update(); if (state != null) { - scale = Math.min(width / state.preset.tableRect.width, height / state.preset.tableRect.height); + scale = Math.min(width / state.preset.imageRect.width, height / state.preset.imageRect.height); } } } diff --git a/src/haxe/ru/m/puzzlez/view/StartFrame.yaml b/src/haxe/ru/m/puzzlez/view/StartFrame.yaml index a792521..c724ff4 100644 --- a/src/haxe/ru/m/puzzlez/view/StartFrame.yaml +++ b/src/haxe/ru/m/puzzlez/view/StartFrame.yaml @@ -1,11 +1,20 @@ --- style: frame views: - - $type: haxework.view.form.LabelView - text: $r:text:name - geometry.margin.top: 15 + - $type: haxework.view.group.HGroupView geometry.hAlign: center - font.size: 40 + geometry.margin.top: 15 + layout.vAlign: middle + views: + - $type: haxework.view.ImageView + image: $a:image:resources/icon.png + stretch: false + fillType: CONTAIN + geometry.width: 96 + geometry.height: 96 + - $type: haxework.view.form.LabelView + text: $r:text:name + font.size: 50 - id: sources $type: haxework.view.data.DataView layout: diff --git a/src/haxe/ru/m/update/Updater.hx b/src/haxe/ru/m/update/Updater.hx index 119d3ac..4997d6e 100644 --- a/src/haxe/ru/m/update/Updater.hx +++ b/src/haxe/ru/m/update/Updater.hx @@ -46,7 +46,7 @@ class Updater { private var url:String; private var version:Version; - public function new(version:String, url:String) { + public function new(version:Version, url:String) { this.url = url; this.version = version; } diff --git a/src/resources/icon.png b/src/resources/icon.png index d23bbf9b31691b6dabcff3f848240faafdf6cc53..9934e00608215d3d6d206ccf840185a22d19fe6e 100644 GIT binary patch literal 25298 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

#2Ty6 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 ByK?{l literal 23894 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 diff --git a/work.md b/work.md index 694e008..4281e7b 100644 --- a/work.md +++ b/work.md @@ -1,3 +1,4 @@ * background settings -* preset frame improve * parts groups +* navigation +* version compare bug