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