Skip to content

Commit 79dfec7

Browse files
committed
Changed project to only use one loop per player.
CURRENTLY BROKEN: - Starting loops (must use mocap command manually) - Stopping loops
1 parent df2a0df commit 79dfec7

1 file changed

Lines changed: 20 additions & 35 deletions

File tree

src/main/java/com/vltno/timeloop/TimeLoop.java

Lines changed: 20 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ public void onInitialize() {
9090
timeSetting = config.timeSetting;
9191
trackTimeOfDay = config.trackTimeOfDay;
9292
ticksLeft = config.ticksLeft;
93-
sceneName = config.sceneName;
9493

9594
showLoopInfo = config.showLoopInfo;
9695
trackItems = config.trackItems;
@@ -112,12 +111,10 @@ public void onInitialize() {
112111

113112
updateEntitiesToTrack(trackItems);
114113

115-
executeCommand(String.format("mocap scenes add %s", sceneName));
116114
if (config.isLooping) {
117115
LOOP_LOGGER.info("Loop was active in config, automatically restarting loop.");
118116
// Reset the in-memory flag so that startLoop() does not return early.
119117
isLooping = false;
120-
executeCommand(String.format("mocap playback start .%s", sceneName));
121118
startLoop();
122119
}
123120
});
@@ -148,7 +145,7 @@ public void onInitialize() {
148145
loopBossBar.addPlayer(player);
149146
if (isLooping) {
150147
LOOP_LOGGER.info("Starting recording for newly joined player: {}", playerName);
151-
executeCommand(String.format("mocap recording start %s", playerName));
148+
executeCommand("mocap recording start " + playerName);
152149
}
153150
});
154151

@@ -159,12 +156,9 @@ public void onInitialize() {
159156
loopBossBar.removePlayer(player);
160157
if (isLooping) {
161158
LOOP_LOGGER.info("Saving recording for Disconnected player: {}", playerName);
162-
String recordingName = playerName + "_" + System.currentTimeMillis();
163-
executeCommand(String.format("mocap recording stop -+mc.%s.1", playerName));
164-
executeCommand(String.format("mocap recording save %s -+mc.%s.1", recordingName.toLowerCase(), playerName));
165-
if (recordingFileExists(recordingName)) {
166-
executeCommand(String.format("mocap scenes add_to %s %s", sceneName, recordingName.toLowerCase()));
167-
}
159+
String recordingName = "-" + playerName + "." + playerName + ".1";
160+
executeCommand(String.format("mocap recording stop " + recordingName));
161+
executeCommand("mocap recording save " + recordingName + " " + recordingName);
168162
}
169163
});
170164

@@ -219,7 +213,7 @@ public void startLoop() {
219213
LOOP_LOGGER.info("Attempted to start already running recording loop");
220214
return;
221215
}
222-
if (showLoopInfo) {loopBossBar.visible(true);}
216+
if (showLoopInfo) { loopBossBar.visible(true); }
223217
isLooping = true;
224218
config.isLooping = true;
225219
startTimeOfDay = serverWorld.getTimeOfDay();
@@ -228,19 +222,22 @@ public void startLoop() {
228222
ticksLeft = loopLengthTicks;
229223
LOOP_LOGGER.info("Starting Loop");
230224
startRecordings();
225+
for (String playerName : recordingPlayers) {
226+
executeCommand(String.format("mocap recording start %s", playerName));
227+
}
231228
}
232229

233230
/**
234231
* Runs the next iteration of the loop.
235232
*/
236233
private void runLoopIteration() {
237234
LOOP_LOGGER.info("Starting iteration {} of loop", loopIteration);
238-
saveRecordings();
239-
removeOldSceneEntries();
240-
startRecordings();
241235
if (trackTimeOfDay) { serverWorld.setTimeOfDay(startTimeOfDay); }
242-
executeCommand("mocap playback stop_all including_others");
243-
executeCommand(String.format("mocap playback start .%s", sceneName));
236+
for (String playerName : recordingPlayers) {
237+
String recordingName = "-" + playerName + "." + playerName + ".1";
238+
239+
executeCommand("mocap playback start " + recordingName);
240+
}
244241
loopIteration++;
245242
config.loopIteration = loopIteration;
246243
config.save();
@@ -257,23 +254,6 @@ private void startRecordings() {
257254
}
258255
}
259256

260-
/**
261-
* Saves the recordings.
262-
*/
263-
public void saveRecordings() {
264-
// Stop and save recordings for each player
265-
for (String playerName : recordingPlayers) {
266-
String recordingName = playerName + "_" + System.currentTimeMillis();
267-
268-
LOOP_LOGGER.info("Processing recording for player: {}", playerName);
269-
executeCommand(String.format("mocap recording stop -+mc.%s.1", playerName));
270-
executeCommand(String.format("mocap recording save %s -+mc.%s.1", recordingName.toLowerCase(), playerName));
271-
if (recordingFileExists(recordingName)) {
272-
executeCommand(String.format("mocap scenes add_to %s %s", sceneName, recordingName.toLowerCase()));
273-
}
274-
}
275-
}
276-
277257
/**
278258
* Stops the loop.
279259
*/
@@ -283,7 +263,12 @@ public void stopLoop() {
283263
isLooping = false;
284264
config.isLooping = false;
285265
loopBossBar.visible(false);
286-
saveRecordings();
266+
for (String playerName : recordingPlayers) {
267+
String recordingName = "-" + playerName + "." + playerName + ".1";
268+
269+
executeCommand("mocap recording stop " + recordingName);
270+
// executeCommand("mocap recording save " + recordingName + " " + recordingName);
271+
}
287272
executeCommand("mocap playback stop_all including_others");
288273
tickCounter = 0;
289274
ticksLeft = loopLengthTicks;
@@ -385,7 +370,7 @@ private void removeOldSceneEntries() {
385370
*/
386371
public void updateEntitiesToTrack(boolean items) {
387372
String entitiesToTrack = "@vehicles" + (items ? ";@items" : "");
388-
executeCommand(String.format("mocap settings playback record_entities %s", entitiesToTrack));
373+
executeCommand(String.format("mocap settings recording record_entities %s", entitiesToTrack));
389374
executeCommand(String.format("mocap settings playback play_entities %s", entitiesToTrack));
390375
}
391376
}

0 commit comments

Comments
 (0)