diff --git a/.gitignore b/.gitignore index 6b7cc2b..3d60130 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,7 @@ analysis_benchmark.json .packages .pub-preload-cache/ .pub/ +*.lock build/ flutter_*.png linked_*.ds diff --git a/ember.iml b/ember.iml deleted file mode 100644 index 6048a33..0000000 --- a/ember.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/lib/imageEditor/object.dart b/lib/imageEditor/object.dart index c039226..3d7cd80 100644 --- a/lib/imageEditor/object.dart +++ b/lib/imageEditor/object.dart @@ -1,5 +1,4 @@ import 'dart:ui'; -import 'package:flutter/material.dart' hide Image; import 'package:vector_math/vector_math_64.dart' hide Triangle hide Colors; import '../editors/editors.dart'; @@ -29,21 +28,21 @@ class Object { late Vector3 position; Vector3 _tempPosition = Vector3.zero(); late Size size; - Vector2 _from = Vector2(0,0); + Vector2 from = Vector2(0,0); void updatePositionStart(Vector2 to){ - _from.x = to.x; - _from.y = to.y; + from.x = to.x; + from.y = to.y; } void updatePosition(Vector2 to, [double sensitivity=1.0]){ - final double x = (to.x - _from.x)/100*sensitivity; - final double y = (to.y - _from.y)/100*sensitivity; + final double x = (to.x - from.x)/100*sensitivity; + final double y = (to.y - from.y)/100*sensitivity; position.x += x; position.y -= y; - _from.x = to.x; - _from.y = to.y; + from.x = to.x; + from.y = to.y; } void move(int x, int y){ position.x = _tempPosition.x+x/100; @@ -59,13 +58,13 @@ class Object { size = Size(size.width+x,size.height+y); } void scaleMouse(Vector2 to, [double sensitivity=1.0]){ - final double x = ((to.x - _from.x))*sensitivity; - final double y = ((to.y - _from.y))*sensitivity; + final double x = ((to.x - from.x))*sensitivity; + final double y = ((to.y - from.y))*sensitivity; size = Size(size.width+x,size.height+y); - _from.x = to.x; - _from.y = to.y; + from.x = to.x; + from.y = to.y; } } class SpriteImage{ @@ -86,24 +85,24 @@ class SpriteImage{ String name; late Vector3 position; Vector3 _tempPosition = Vector3.zero(); - Vector2 _from = Vector2(0,0); + Vector2 from = Vector2(0,0); Color color; void updatePositionStart(Vector2 to){ - _from.x = to.x; - _from.y = to.y; + from.x = to.x; + from.y = to.y; } void updatePosition(Vector2 to, [double sensitivity=1.0]){ - final double x = ((to.x - _from.x))/100*sensitivity; - final double y = ((to.y - _from.y))/100*sensitivity; + final double x = ((to.x - from.x))/100*sensitivity; + final double y = ((to.y - from.y))/100*sensitivity; position.x += x; position.y -= y; _tempPosition = position; - _from.x = to.x; - _from.y = to.y; + from.x = to.x; + from.y = to.y; } void move(int x, int y){ position.x = _tempPosition.x+x/100; diff --git a/lib/imageEditor/scene.dart b/lib/imageEditor/scene.dart index 7eacbf5..844b030 100644 --- a/lib/imageEditor/scene.dart +++ b/lib/imageEditor/scene.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'dart:io'; -import 'dart:typed_data'; import 'dart:ui'; +import 'package:ember/utils/logger.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart' hide Image; import 'package:vector_math/vector_math_64.dart' hide Triangle, Vector4, Colors; @@ -157,7 +157,7 @@ class ImageScene { } } } - print(type == selectableType); + logger?.verbose(type == selectableType); if(tapLocation != null && rect.contains(tapLocation!) && isDifferent && type == selectableType){ isClicked = true; if(currentSize == null){ @@ -231,7 +231,7 @@ class ImageScene { } // Mark needs update texture void updateTapLocation(Offset details) { - print(details); + logger?.verbose(details); if(!isControlPressed){ objectTappedOn = []; currentSize = null; diff --git a/lib/imageEditor/widget.dart b/lib/imageEditor/widget.dart index db46b79..7d69382 100644 --- a/lib/imageEditor/widget.dart +++ b/lib/imageEditor/widget.dart @@ -22,10 +22,10 @@ class ImageEditor extends StatefulWidget { final ImageScene scene; @override - _ImageEditorState createState() => _ImageEditorState(); + ImageEditorState createState() => ImageEditorState(); } -class _ImageEditorState extends State { +class ImageEditorState extends State { late ImageScene scene; Offset? _lastFocalPointZoom; double? _lastZoom; diff --git a/lib/levelEditor/model/model_renderer.dart b/lib/levelEditor/model/model_renderer.dart index d633f74..9fc5e93 100644 --- a/lib/levelEditor/model/model_renderer.dart +++ b/lib/levelEditor/model/model_renderer.dart @@ -199,7 +199,7 @@ class ModelRender extends LevelEditor{ final Float32List positionsZ = renderMesh.positionsZ; final List vertices = o.mesh[mesh].vertices; - final List normals = o.mesh[mesh].normals; + //final List normals = o.mesh[mesh].normals; final int vertexOffset = renderMesh.vertexCount; final int vertexCount = vertices.length; @@ -212,9 +212,9 @@ class ModelRender extends LevelEditor{ //color information final Int32List renderColors = renderMesh.colors; - final Matrix4 normalTransform = (model.clone()..invert()).transposed(); - final Vector3 viewPosition = Vector3.copy(scene.camera.rotation); - final Material material = o.mesh[mesh].material; + // final Matrix4 normalTransform = (model.clone()..invert()).transposed(); + // final Vector3 viewPosition = Vector3.copy(scene.camera.rotation); + // final Material material = o.mesh[mesh].material; final List colors = o.mesh[mesh].colors; //texture information @@ -317,7 +317,7 @@ class ModelRender extends LevelEditor{ // }); for (int i = 0; i < indexCount; i++) { - if(renderPolys[i] != null){ + //if(renderPolys[i] != null){ final int index0 = i * 3; final int index1 = index0 + 1; final int index2 = index0 + 2; @@ -326,7 +326,7 @@ class ModelRender extends LevelEditor{ indices[index0] = triangle.vertexes[0]; indices[index1] = triangle.vertexes[1]; indices[index2] = triangle.vertexes[2]; - } + //} if(i < scene.objectTappedOn.length){ int sel = scene.objectTappedOn[i].objectLocation; @@ -420,7 +420,7 @@ class ModelRender extends LevelEditor{ final Uint16List indices = Uint16List(indexCount * 3); for (int i = 0; i < indexCount; i++) { - if(renderPolys[i] != null){ + //if(renderPolys[i] != null){ final int index0 = i * 3; final int index1 = index0 + 1; final int index2 = index0 + 2; @@ -429,7 +429,7 @@ class ModelRender extends LevelEditor{ indices[index0] = triangle.vertexes[0]; indices[index1] = triangle.vertexes[1]; indices[index2] = triangle.vertexes[2]; - } + //} } _drwaVert( canvas, @@ -453,7 +453,7 @@ class ModelRender extends LevelEditor{ final Uint16List indices = Uint16List(indexCount * 3); for (int i = 0; i < indexCount; i++) { - if(renderPolys[i] != null){ + //if(renderPolys[i] != null){ final int index0 = i * 3; final int index1 = index0 + 1; final int index2 = index0 + 2; @@ -462,7 +462,7 @@ class ModelRender extends LevelEditor{ indices[index0] = triangle.vertexes[0]; indices[index1] = triangle.vertexes[1]; indices[index2] = triangle.vertexes[2]; - } + //} } _drwaVert( canvas, diff --git a/lib/levelEditor/scene.dart b/lib/levelEditor/scene.dart index 026d4d5..ea698ab 100644 --- a/lib/levelEditor/scene.dart +++ b/lib/levelEditor/scene.dart @@ -11,7 +11,7 @@ import 'level_editor.dart'; import '../editors/editors.dart'; import 'package:http/http.dart' as http; import 'package:path/path.dart' as path; -import 'dart:math' as Math; +import 'dart:math' as math; enum BrushStyles{stamp,fill,erase,move} @@ -70,8 +70,8 @@ class LevelScene { double y = point.dy - center.dy; //APPLY ROTATION - double newX = x * Math.cos(angle) - y * Math.sin(angle); - double newY = x * Math.sin(angle) + y * Math.cos(angle); + double newX = x * math.cos(angle) - y * math.sin(angle); + double newY = x * math.sin(angle) + y * math.cos(angle); //TRANSLATE BACK return Offset(newX + center.dx, newY + center.dy); @@ -464,7 +464,7 @@ class LevelScene { int y = selectedTileLocation < width?0:(selectedTileLocation/width).floor(); int x = selectedTileLocation < width?selectedTileLocation:selectedTileLocation-width*y; flood.floodFill(x, y).then((value){ - levelInfo[selectedLevel].tileLayer[levelInfo[selectedLevel].selectedTileLayer].tiles = flood.allTiles as List; + levelInfo[selectedLevel].tileLayer[levelInfo[selectedLevel].selectedTileLayer].tiles = flood.allTiles; }); } diff --git a/lib/levelEditor/text_edit.dart b/lib/levelEditor/text_edit.dart index 092a62e..c06a082 100644 --- a/lib/levelEditor/text_edit.dart +++ b/lib/levelEditor/text_edit.dart @@ -66,9 +66,9 @@ class OverlayClass extends StatefulWidget { final void Function(String)? onEditingComplete; @override - _OverlayClassState createState() => _OverlayClassState(); + OverlayClassState createState() => OverlayClassState(); } -class _OverlayClassState extends State { +class OverlayClassState extends State { TextEditingController controller = TextEditingController(); @override diff --git a/lib/levelEditor/widget.dart b/lib/levelEditor/widget.dart index 3e9428c..6de7a4f 100644 --- a/lib/levelEditor/widget.dart +++ b/lib/levelEditor/widget.dart @@ -28,10 +28,10 @@ class LevelEditor extends StatefulWidget { final void Function({required LevelEditorCallbacks call, Offset? details})? callback; @override - _LevelEditorState createState() => _LevelEditorState(); + LevelEditorState createState() => LevelEditorState(); } -class _LevelEditorState extends State { +class LevelEditorState extends State { late LevelScene scene; Offset _lastFocalPoint = const Offset(0,0); double? _lastZoom; diff --git a/lib/navigation/right_click.dart b/lib/navigation/right_click.dart index 3193286..4c7e778 100644 --- a/lib/navigation/right_click.dart +++ b/lib/navigation/right_click.dart @@ -121,13 +121,14 @@ class RightClick{ } class OverlayClass extends StatefulWidget { - OverlayClass({ + const OverlayClass({ + Key? key, required this.style, required this.width, required this.theme, required this.function, required this.show, - }); + }):super(key: key); final ThemeData theme; final TextStyle style; @@ -136,9 +137,9 @@ class OverlayClass extends StatefulWidget { final List show; @override - _OverlayClassState createState() => _OverlayClassState(); + OverlayClassState createState() => OverlayClassState(); } -class _OverlayClassState extends State { +class OverlayClassState extends State { RightClickOptions? hoverdOn; @override diff --git a/lib/utils/logger.dart b/lib/utils/logger.dart new file mode 100644 index 0000000..78d2403 --- /dev/null +++ b/lib/utils/logger.dart @@ -0,0 +1,45 @@ +import 'package:logger/logger.dart'; + +NRFLogger? logger; + +/// Flutter Launcher Icons Logger +class NRFLogger { + late Logger _logger; + + /// Returns true if this is a verbose logger + final bool isVerbose; + + /// Gives access to internal logger + Logger get rawLogger => _logger; + + /// Creates a instance of [FLILogger]. + /// In case [isVerbose] is `true`, + /// it logs all the [verbose] logs to console + NRFLogger(this.isVerbose) { + _logger = Logger( + printer: PrettyPrinter( + methodCount: 2, // Number of method calls to be displayed + errorMethodCount: 8, // Number of method calls if stacktrace is provided + lineLength: 120, // Width of the output + colors: true, // Colorful log messages + printEmojis: true, // Print an emoji for each log message + printTime: true // Should each log print contain a timestamp + ), + level: Level.all + ); + } + + /// Logs error messages + void error(Object? message) => _logger.e('Error Log', error: '⚠️ $message'); + + /// Prints to console if [isVerbose] is true + void verbose(Object? message){ + if(isVerbose){ + _logger.t(message.toString()); + } + } + /// Prints to console if [isVerbose] is true + void warning(Object? message) => _logger.w(message.toString()); + /// Prints to console + void info(Object? message) => _logger.i(message.toString()); +} \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 08e0416..06933ff 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -66,10 +66,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c + sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.0.3" flutter_test: dependency: "direct dev" description: flutter @@ -107,6 +107,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.0" + logger: + dependency: "direct main" + description: + name: logger + sha256: "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac" + url: "https://pub.dev" + source: hosted + version: "2.0.2+1" matcher: dependency: transitive description: @@ -132,7 +140,7 @@ packages: source: hosted version: "1.9.1" path: - dependency: transitive + dependency: "direct main" description: name: path sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" @@ -201,7 +209,7 @@ packages: source: hosted version: "1.3.1" vector_math: - dependency: transitive + dependency: "direct main" description: name: vector_math sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" diff --git a/pubspec.yaml b/pubspec.yaml index c9fe1ce..7ed896b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: ember -description: A new Flutter package project. +description: A Flutter plugin designed for flutter flame and bonfire to allow users to create their own levels using tile sheets and sprite sheets. version: 0.0.1 repository: https://github.com/Knightro63/ember @@ -14,10 +14,9 @@ dependencies: http: ^1.1.0 vector_math: ^2.1.4 path: ^1.8.3 + logger: ^2.0.2+1 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 - -flutter: \ No newline at end of file + flutter_lints: ^2.0.3 \ No newline at end of file