Skip to content

Commit 913b48e

Browse files
committed
Add game mode and scripts to editor
1 parent b206f8c commit 913b48e

9 files changed

Lines changed: 737 additions & 1 deletion

File tree

api/lib/src/models/data.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,12 +305,19 @@ class SetonixData extends ArchiveData<SetonixData> {
305305
SetonixData removeTexture(String texture) =>
306306
removeAsset('$kPackTexturesPath/$texture');
307307

308+
Iterable<String> getScripts() => getAssets(kPackScriptsPath, false);
309+
308310
String? getScript(String id) {
309311
final data = getAsset('$kPackScriptsPath/$id');
310312
if (data == null) return null;
311313
return utf8.decode(data);
312314
}
313315

316+
SetonixData setScript(String id, String content) =>
317+
setAsset('$kPackScriptsPath/$id', utf8.encode(content));
318+
319+
SetonixData removeScript(String id) => removeAsset('$kPackScriptsPath/$id');
320+
314321
Iterable<String> getModes() => getAssets(kPackModesPath, true);
315322

316323
GameMode? getMode(String id) {
@@ -340,6 +347,11 @@ class SetonixData extends ArchiveData<SetonixData> {
340347
}).nonNulls,
341348
);
342349

350+
SetonixData setMode(String id, GameMode mode) =>
351+
setAsset('$kPackModesPath/$id.json', utf8.encode(mode.toJson()));
352+
353+
SetonixData removeMode(String id) => removeAsset('$kPackModesPath/$id.json');
354+
343355
SetonixData addAccount(SetonixAccount setonixAccount) {
344356
final accountId = setonixAccount.name;
345357
return setAsset(

app/lib/bloc/editor.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,13 @@ class EditorCubit extends Cubit<SetonixData> {
6565

6666
void setBoard(String id, BoardDefinition definition) =>
6767
emit(state.setBoard(id, definition));
68+
69+
void removeScript(String id) => emit(state.removeScript(id));
70+
71+
void setScript(String id, String content) =>
72+
emit(state.setScript(id, content));
73+
74+
void removeMode(String id) => emit(state.removeMode(id));
75+
76+
void setMode(String id, GameMode mode) => emit(state.setMode(id, mode));
6877
}

app/lib/bloc/world/bloc.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,12 @@ class WorldBloc extends Bloc<PlayableWorldEvent, ClientWorldState> {
185185
final event = Event(
186186
serverEvent: value.main?.data,
187187
target: value.main?.channel ?? kAnyChannel,
188-
clientEvent: data.data ?? UserJoined(channel: data.channel, info: const ConnectionInfoMapper().decode({})),
188+
clientEvent:
189+
data.data ??
190+
UserJoined(
191+
channel: data.channel,
192+
info: const ConnectionInfoMapper().decode({}),
193+
),
189194
source: data.channel,
190195
needsUpdate: value.needsUpdate,
191196
worldName: state.world.name ?? '',

app/lib/l10n/app_en.arb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,16 @@
230230
"clear": "Clear",
231231
"textures": "Textures",
232232
"texture": "Texture",
233+
"scripts": "Scripts",
234+
"modes": "Game Modes",
235+
"tables": "Tables",
236+
"teamId": "Team ID",
237+
"color": "Color",
238+
"createTeam": "Create Team",
239+
"editTeam": "Edit Team",
240+
"createTable": "Create Table",
241+
"editTable": "Edit Table",
242+
"tableId": "Table ID",
233243
"notSet": "Not set",
234244
"category": "Category",
235245
"figure": "Figure",

0 commit comments

Comments
 (0)