[update] update to haxe4

This commit is contained in:
2020-02-13 17:21:53 +03:00
parent 0fd5a80ab5
commit a42b69f418
17 changed files with 45 additions and 37 deletions

View File

@@ -43,12 +43,10 @@ class DrawPath {
public function move(mx:Float, my:Float):DrawPath {
var result = new DrawPath();
result.commands = commands.map(function(command):DrawCommand {
return switch command {
case MOVE_TO(x, y): MOVE_TO(x + mx, y + my);
case LINE_TO(x, y): LINE_TO(x + mx, y + my);
case CURVE_TO(cx, cy, ax, ay): CURVE_TO(cx + mx, cy + my, ax + mx, ay + my);
}
result.commands = commands.map(command -> switch command {
case MOVE_TO(x, y): MOVE_TO(x + mx, y + my);
case LINE_TO(x, y): LINE_TO(x + mx, y + my);
case CURVE_TO(cx, cy, ax, ay): CURVE_TO(cx + mx, cy + my, ax + mx, ay + my);
});
return result;
}

View File

@@ -17,16 +17,16 @@ class FileUtil {
public static function browse():Promise<FileContent> {
var d = new Deferred<FileContent>();
var file = new ModernFileReference();
file.addEventListener(Event.SELECT, function(event:Event) {
file.addEventListener(Event.SELECT, (event:Event) -> {
cast(event.target, ModernFileReference).load();
});
file.addEventListener(IOErrorEvent.IO_ERROR, function(event:IOErrorEvent) {
file.addEventListener(IOErrorEvent.IO_ERROR, (event:IOErrorEvent) -> {
d.throwError(event);
});
file.addEventListener(ProgressEvent.PROGRESS, function(event:ProgressEvent) {
file.addEventListener(ProgressEvent.PROGRESS, (event:ProgressEvent) -> {
//trace('progress', '${event}');
});
file.addEventListener(Event.COMPLETE, function(event:Event) {
file.addEventListener(Event.COMPLETE, (event:Event) -> {
var f:ModernFileReference = cast event.target;
d.resolve({
name: f.name,

View File

@@ -15,10 +15,10 @@ class ImageUtil {
public static function bytesToImage(bytes:Bytes):Promise<BitmapData> {
var def = new Deferred();
var loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event) {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, (event:Event) -> {
def.resolve(cast(cast(event.target, LoaderInfo).content, Bitmap).bitmapData);
});
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(event:IOErrorEvent) {
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, (event:IOErrorEvent) -> {
def.throwError(event);
});
loader.loadBytes(bytes);

View File

@@ -2,11 +2,18 @@ package ru.m.puzzlez;
import haxework.App;
import haxework.log.TraceLogger;
import haxework.provider.Provider;
import ru.m.puzzlez.storage.GameStorage;
import ru.m.puzzlez.storage.ImageStorage;
import ru.m.puzzlez.view.PuzzlezAppView;
class PuzzlezApp extends App {
public static function main() {
// ToDo: fix @:provide macro
Provider.instance.setFactory(ImageStorage, ImageStorage);
Provider.instance.setFactory(GameStorage, GameStorage);
L.push(new TraceLogger());
var app = new PuzzlezApp(new PuzzlezTheme(), openfl.Assets.getBitmapData("resources/icon.png"));
var view = new PuzzlezAppView();

View File

@@ -28,12 +28,12 @@ class ImagePartBuilder {
var partImage = RenderUtil.cropImagePart(image, part);
stream.update({part: part, image: partImage});
}
Timer.delay(function() buildPart(index + count, count, parts, stream), 0);
Timer.delay(() -> buildPart(index + count, count, parts, stream), 0);
}
public function build(parts:Array<Part>):Stream<Result> {
var stream = new PublicStream<Result>();
Timer.delay(function() buildPart(0, 5, parts, stream), 0);
Timer.delay(() -> buildPart(0, 5, parts, stream), 0);
return stream;
}
}

View File

@@ -17,7 +17,7 @@ class AssetSource implements IImageSource<Dynamic> {
}
private function resolveData():Array<ImageId> {
return [for (name in Assets.list(AssetType.IMAGE).filter(function(name:String) return name.substr(0, 15) == "resources/image")) new ImageId(id, name)];
return [for (name in Assets.list(AssetType.IMAGE).filter((name:String) -> name.substr(0, 15) == "resources/image")) new ImageId(id, name)];
}
public function getList(?type:Dynamic):Promise<Array<ImageId>> {

View File

@@ -17,7 +17,7 @@ typedef PixabayResponse = {
var hits:Array<PixabayImage>;
}
@:enum abstract PixabayCategory(String) from String to String {
enum abstract PixabayCategory(String) from String to String {
var FASHION = "fashion";
var NATURE = "nature";
var BACKGROUNDS = "backgrounds";
@@ -40,7 +40,7 @@ typedef PixabayResponse = {
var MUSIC = "music";
}
@:enum abstract PixabayImageType(String) from String to String {
enum abstract PixabayImageType(String) from String to String {
var ALL = "all";
var PHOTO = "photo";
var ILLUSTRATION = "illustration";
@@ -64,7 +64,7 @@ class PixabaySource implements IImageSource<PixabayCategory> {
public function getList(?type:PixabayCategory):Promise<Array<ImageId>> {
return new JsonLoader<PixabayResponse>()
.GET('${baseUrl}?key=${key}&category=${type}&image_type=${PixabayImageType.PHOTO}')
.then(function(response:PixabayResponse) {
.then((response:PixabayResponse) -> {
var result = [];
for (item in response.hits) {
var imageId = new ImageId(id, Std.string(item.id));
@@ -79,16 +79,13 @@ class PixabaySource implements IImageSource<PixabayCategory> {
if (!cache.exists(id)) {
cache.set(id, new JsonLoader<PixabayResponse>()
.GET('${baseUrl}?key=${key}&id=${id.id}')
.then(function(response:PixabayResponse) {
return response.hits[0];
}));
.then((response:PixabayResponse) -> response.hits[0]));
}
return cache.get(id);
}
public function loadImage(id:ImageId, preview:Bool = false):Promise<BitmapData> {
return getImage(id).pipe(function(data:PixabayImage) {
return new ImageLoader().GET(preview ? data.previewURL : data.largeImageURL);
});
return getImage(id)
.pipe((data:PixabayImage) -> return new ImageLoader().GET(preview ? data.previewURL : data.largeImageURL));
}
}

View File

@@ -56,7 +56,7 @@ import ru.m.puzzlez.source.PixabaySource;
public static function unserialize(data:ByteArray):Promise<BitmapData> {
var def = new Deferred();
var loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event) {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, (event:Event) -> {
def.resolve(cast(cast(event.target, LoaderInfo).content, Bitmap).bitmapData);
});
loader.loadBytes(data);

View File

@@ -32,7 +32,7 @@ import ru.m.puzzlez.view.PuzzleImageView;
private function onAction(imageId:ImageId, action:Action):Void {
switch action {
case CLEAN:
ConfirmView.confirm("Delete state?").then(function(result) {
ConfirmView.confirm("Delete state?").then(result -> {
if (result) {
storage.delete(imageId);
images.data = storage.listIds();

View File

@@ -34,7 +34,7 @@ import ru.m.puzzlez.view.PuzzleImageView;
source = data;
select.visible = source.source.id == FileSource.ID;
images.data = [];
loading.promise = data.source.getList(data.type).then(function(result) images.data = result);
loading.promise = data.source.getList(data.type).then(result -> images.data = result);
}
}
@@ -43,7 +43,7 @@ import ru.m.puzzlez.view.PuzzleImageView;
}
private function selectFile():Void {
FileUtil.browse().then(function(data:FileContent) {
FileUtil.browse().then((data:FileContent) -> {
var fileSource:FileSource = cast source.source;
var imageId = fileSource.append(data.content);
images.data.push(imageId);
@@ -56,7 +56,7 @@ import ru.m.puzzlez.view.PuzzleImageView;
case REMOVE:
var fileSource:FileSource = Std.instance(source.source, FileSource);
if (fileSource != null) {
ConfirmView.confirm("Delete image?").then(function(result) {
ConfirmView.confirm("Delete image?").then(result -> {
if (result) {
fileSource.remove(imageId);
refresh();
@@ -64,7 +64,7 @@ import ru.m.puzzlez.view.PuzzleImageView;
});
}
case CLEAN:
ConfirmView.confirm("Delete state?").then(function(result) {
ConfirmView.confirm("Delete state?").then(result -> {
if (result) {
gameStorage.delete(imageId);
refresh();
@@ -74,7 +74,7 @@ import ru.m.puzzlez.view.PuzzleImageView;
}
private function refresh():Void {
loading.promise = source.source.getList().then(function(result) images.data = result);
loading.promise = source.source.getList().then(result -> images.data = result);
}
private function start(imageId:ImageId):Void {

View File

@@ -22,8 +22,8 @@ class LoadingWrapper {
private function set_promise(value:Promise<Dynamic>):Promise<Dynamic> {
state = LOADING;
value
.then(function(_) state = NONE)
.catchError(function(error) state = ERROR(error));
.then(_ -> state = NONE)
.catchError(error -> state = ERROR(error));
return value;
}

View File

@@ -31,7 +31,7 @@ class PresetView extends GroupView {
preset = value;
this.image = null;
table.graphics.clear();
loading.promise = imageStorage.resolve(preset.imageId).then(function(image) {
loading.promise = imageStorage.resolve(preset.imageId).then(image -> {
this.image = RenderUtil.cropImage(image, preset.imageRect);
toRedraw();
toUpdate();

View File

@@ -23,7 +23,7 @@ enum Action {
private function set_imageId(value:ImageId):ImageId {
if (imageId != value) {
imageId = value;
loading.promise = imageStorage.resolve(imageId, true).then(function(data) imageView.image = data);
loading.promise = imageStorage.resolve(imageId, true).then(data -> imageView.image = data);
}
return imageId;
}

View File

@@ -23,10 +23,11 @@ import haxework.view.group.VGroupView;
public function launch():Void {
content.stage.stageFocusRect = false;
switcher.change(StartFrame.ID);
stage.addEventListener(KeyboardEvent.KEY_DOWN, function(event:KeyboardEvent) {
stage.addEventListener(KeyboardEvent.KEY_DOWN, (event:KeyboardEvent) -> {
switch event.keyCode {
case Keyboard.ESCAPE:
switcher.change(StartFrame.ID);
case _:
}
});
}

View File

@@ -41,7 +41,7 @@ import ru.m.puzzlez.storage.ImageStorage;
}
private function clean():Void {
ConfirmView.confirm("Really clean all saved data?").then(function(result) {
ConfirmView.confirm("Really clean all saved data?").then(result -> {
if (result) {
gameStorage.clear();
var fileSource:FileSource = cast storage.sources.get(FileSource.ID);