Skip to content

Commit 2983b46

Browse files
authored
Merge pull request #22 from Hanprogramer/dev
v0.0.2
2 parents 336ba7f + fd7032b commit 2983b46

20 files changed

+556
-228
lines changed

android/.idea/gradle.xml

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/main.dart

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import 'dart:io';
22

3-
import 'package:corecoder_develop/editor.dart';
4-
import 'package:corecoder_develop/plugins_browser.dart';
5-
import 'package:corecoder_develop/settings.dart';
3+
import 'package:corecoder_develop/screens/editor/editor.dart';
4+
import 'package:corecoder_develop/screens/settings/plugins_browser.dart';
5+
import 'package:corecoder_develop/util/cc_project_structure.dart';
66
import 'package:corecoder_develop/util/theme_manager.dart';
77
import 'package:flutter/material.dart';
88
import 'package:flutter/services.dart';
99
import 'package:provider/provider.dart';
1010
import 'package:provider/single_child_widget.dart';
11-
import 'homepage.dart';
12-
import 'editor_drawer.dart';
11+
import 'package:shared_preferences/shared_preferences.dart';
12+
import 'screens/homepage/homepage.dart';
13+
import 'screens/editor/editor_drawer.dart';
1314
import 'package:bitsdojo_window/bitsdojo_window.dart';
1415

1516
void main() async {
@@ -29,7 +30,7 @@ const borderColor = Color(0xFF3BBA73);
2930

3031
class CoreCoderApp extends StatefulWidget {
3132
const CoreCoderApp({Key? key}) : super(key: key);
32-
static const String version = "v0.0.1";
33+
static const String version = "v0.0.2";
3334
static bool isDesktop = (Platform.isWindows || Platform.isLinux || Platform.isMacOS);
3435
static bool isLandscape(BuildContext context){
3536
var q = MediaQuery.of(context);
@@ -48,9 +49,15 @@ class CoreCoderAppState extends State<CoreCoderApp> {
4849
@override
4950
void initState() {
5051
super.initState();
51-
ThemeManager.currentTheme.addListener(() {
52+
_pref.then((value) {
5253
setState(() {
53-
themeName = ThemeManager.currentTheme.value;
54+
themeName = value.getString("theme") ?? themeName;
55+
ThemeManager.currentTheme = ValueNotifier(themeName);
56+
});
57+
ThemeManager.currentTheme.addListener(() {
58+
setState(() {
59+
themeName = ThemeManager.currentTheme.value;
60+
});
5461
});
5562
});
5663
if (Platform.isWindows) {
@@ -63,7 +70,11 @@ class CoreCoderAppState extends State<CoreCoderApp> {
6370
debugPrint(result as String);
6471
});
6572
}
73+
74+
6675
}
76+
static final Future<SharedPreferences> _pref =
77+
SharedPreferences.getInstance();
6778

6879
@override
6980
Widget build(BuildContext context) {

lib/modules/jsapi.dart

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'dart:convert';
21
import 'dart:ffi';
32
import 'dart:io';
43
import 'dart:typed_data';
@@ -11,7 +10,7 @@ import 'package:ffi/ffi.dart';
1110
import 'package:flutter_jscore/flutter_jscore.dart';
1211
import 'package:flutter_jscore/jscore_bindings.dart' as js;
1312

14-
import '../homepage.dart';
13+
import '../screens/homepage/homepage.dart';
1514

1615
String jsStringToDartString(Pointer resultJsString) {
1716
var resultCString = js.jSStringGetCharactersPtr(resultJsString);
@@ -201,7 +200,14 @@ class CoreCoder {
201200
ctx, function, thisObject, argumentCount, arguments, exception);
202201
return nullptr;
203202
}
204-
203+
static String getProjectFolder(String moduleFolderName, String folderName) {
204+
var result = PluginsManager.projectsPath +
205+
moduleFolderName +
206+
Platform.pathSeparator +
207+
folderName +
208+
Platform.pathSeparator;
209+
return result;
210+
}
205211
static Pointer jsGetProjectFolder(
206212
Pointer ctx,
207213
Pointer function,

lib/modules/module_core.dart

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import 'dart:io' show File;
2+
import 'package:corecoder_develop/modules/jsapi.dart';
3+
import 'package:corecoder_develop/util/modules_manager.dart';
4+
import 'package:flutter/material.dart';
5+
6+
import '../main.dart';
7+
class CoreModule extends Module { //TODO doesnt work
8+
9+
@override
10+
CoreModule()
11+
: super(
12+
"Built-in",
13+
"Provides core functionality",
14+
"skybird23333",
15+
"Corecoder 0.0.1",
16+
null,
17+
"com.corecoder.coremodule");
18+
19+
@override
20+
void onInitialized(ModulesManager modulesManager, BuildContext buildContext) async {
21+
super.onInitialized(modulesManager, buildContext);
22+
var template = Template(
23+
"Empty", //title
24+
"Empty project with no workspace plugins or files", //desc
25+
"",
26+
{
27+
"Project Name" : "String",
28+
"Author" : "String",
29+
},
30+
(Map<String, dynamic> args) async {
31+
//do absolutely nothing because this is empty
32+
/// ---------------------------
33+
/// Create .ccsln.json file
34+
/// ---------------------------
35+
var obj = {
36+
"cc_version": CoreCoderApp.version,
37+
"name": args["Project Name"],
38+
"author": args["Author"],
39+
"description": "",
40+
"identifier": identifier,
41+
// must be unique to every module
42+
"folders": {
43+
},
44+
"run_config": []
45+
};
46+
obj["folders"]["Workspace"] = ".";
47+
48+
49+
// Write the file asynchronously
50+
var slnFilePath = CoreCoder.getProjectFolder("core", args["Project Name"]) + "solution.ccsln.json";
51+
var slnFile = File(slnFilePath);
52+
await slnFile.create(recursive: true);
53+
await slnFile.writeAsString(ModulesManager.encoder.convert(obj));
54+
// Return the filepath so it loads the project automatically
55+
return slnFilePath;
56+
},
57+
icon, "com.corecoder.empty");
58+
59+
templates.add(template);
60+
}
61+
62+
@override
63+
List<String> onAutoComplete(String language, String lastToken) {
64+
return [];
65+
}
66+
67+
}

lib/modules/module_jsplugins.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import 'dart:ffi';
22
import 'dart:typed_data';
33
import 'package:corecoder_develop/modules/jsapi.dart';
4-
import 'package:corecoder_develop/util/cc_project_structure.dart';
54
import 'package:corecoder_develop/util/modules_manager.dart';
65
import 'package:flutter/material.dart';
76
import 'package:flutter_jscore/jscore_bindings.dart';
87
import 'package:ffi/ffi.dart';
9-
import 'package:corecoder_develop/homepage.dart';
108
import 'package:flutter_jscore/flutter_jscore.dart' as jscore
119
show
1210
JSContext,

lib/modules/module_minecraft.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import 'dart:io' show Directory, File, Platform;
33
import 'package:corecoder_develop/util/modules_manager.dart';
44
import 'package:flutter/material.dart';
55
import 'package:uuid/uuid.dart';
6-
import 'package:android_external_storage/android_external_storage.dart';
76
import 'package:path_provider/path_provider.dart';
87
class MinecraftModule extends Module {
98
String comMojang = ""; // platform dependent
@@ -58,6 +57,7 @@ class MinecraftModule extends Module {
5857

5958
@override
6059
void onInitialized(ModulesManager modulesManager, BuildContext buildContext) async {
60+
super.onInitialized(modulesManager, buildContext);
6161
if (Platform.isWindows) {
6262
comMojang = Platform.environment['LOCALAPPDATA'] as String;
6363
comMojang +=

0 commit comments

Comments
 (0)