Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Flavor] Add Alpha flavor #221

Draft
wants to merge 7 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
package com.minecrafttas.mctcommon.registry;

/**
* Interface for declaring that a class can be registered by a class of type {@link AbstractRegistry}
*
* @author Scribble
*/
public interface Registerable {

/**
* @return The name of the extension that is registered
*/
public String getExtensionName();
}
2 changes: 1 addition & 1 deletion src/main/java/com/minecrafttas/tasmod/TASmod.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import com.minecrafttas.tasmod.commands.CommandTickrate;
import com.minecrafttas.tasmod.commands.TabCompletionUtils;
import com.minecrafttas.tasmod.playback.PlaybackControllerServer;
import com.minecrafttas.tasmod.playback.metadata.integrated.StartpositionMetadataExtension;
import com.minecrafttas.tasmod.playback.metadata.builtin.StartpositionMetadataExtension;
import com.minecrafttas.tasmod.registries.TASmodPackets;
import com.minecrafttas.tasmod.savestates.SavestateHandlerServer;
import com.minecrafttas.tasmod.savestates.storage.SavestateMotionStorage;
Expand Down
15 changes: 9 additions & 6 deletions src/main/java/com/minecrafttas/tasmod/TASmodClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,13 @@
import com.minecrafttas.tasmod.handlers.LoadingScreenHandler;
import com.minecrafttas.tasmod.playback.PlaybackControllerClient;
import com.minecrafttas.tasmod.playback.PlaybackControllerClient.TASstate;
import com.minecrafttas.tasmod.playback.filecommands.integrated.DesyncMonitorFileCommandExtension;
import com.minecrafttas.tasmod.playback.filecommands.integrated.LabelFileCommandExtension;
import com.minecrafttas.tasmod.playback.filecommands.integrated.OptionsFileCommandExtension;
import com.minecrafttas.tasmod.playback.metadata.integrated.CreditsMetadataExtension;
import com.minecrafttas.tasmod.playback.metadata.integrated.StartpositionMetadataExtension;
import com.minecrafttas.tasmod.playback.tasfile.flavor.integrated.Beta1Flavor;
import com.minecrafttas.tasmod.playback.filecommands.builtin.DesyncMonitorFileCommandExtension;
import com.minecrafttas.tasmod.playback.filecommands.builtin.LabelFileCommandExtension;
import com.minecrafttas.tasmod.playback.filecommands.builtin.OptionsFileCommandExtension;
import com.minecrafttas.tasmod.playback.metadata.builtin.CreditsMetadataExtension;
import com.minecrafttas.tasmod.playback.metadata.builtin.StartpositionMetadataExtension;
import com.minecrafttas.tasmod.playback.tasfile.flavor.builtin.AlphaFlavor;
import com.minecrafttas.tasmod.playback.tasfile.flavor.builtin.Beta1Flavor;
import com.minecrafttas.tasmod.registries.TASmodAPIRegistry;
import com.minecrafttas.tasmod.registries.TASmodConfig;
import com.minecrafttas.tasmod.registries.TASmodKeybinds;
Expand Down Expand Up @@ -312,9 +313,11 @@ private void registerPlaybackMetadata(Minecraft mc) {
}

public static Beta1Flavor betaFlavor = new Beta1Flavor();
public static AlphaFlavor alphaFlavor = new AlphaFlavor();

private void registerSerialiserFlavors(Minecraft mc) {
TASmodAPIRegistry.SERIALISER_FLAVOR.register(betaFlavor);
TASmodAPIRegistry.SERIALISER_FLAVOR.register(alphaFlavor);
}

public static DesyncMonitorFileCommandExtension desyncMonitorFileCommandExtension;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/minecrafttas/tasmod/gui/InfoHud.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import com.minecrafttas.tasmod.TASmodClient;
import com.minecrafttas.tasmod.events.EventClient.EventDrawHotbar;
import com.minecrafttas.tasmod.playback.PlaybackControllerClient.TASstate;
import com.minecrafttas.tasmod.playback.filecommands.integrated.DesyncMonitorFileCommandExtension;
import com.minecrafttas.tasmod.playback.filecommands.builtin.DesyncMonitorFileCommandExtension;
import com.mojang.realmsclient.gui.ChatFormatting;

import net.minecraft.client.Minecraft;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public static abstract class PlaybackFileCommandExtension implements Registerabl
protected final Path tempDir;

public PlaybackFileCommandExtension() {
this(null);
this((Path) null);
}

/**
Expand All @@ -69,13 +69,18 @@ public PlaybackFileCommandExtension() {
* @param tempFolderName The name of the temp folder
*/
public PlaybackFileCommandExtension(String tempFolderName) {
if (tempFolderName == null) {
this(TASmodClient.tasfiledirectory.resolve("temp").resolve(tempFolderName));
}

public PlaybackFileCommandExtension(Path tempDirectory) {
if (tempDirectory == null) {
tempDir = null;
return;
}
this.tempDir = TASmodClient.tasfiledirectory.resolve("temp").resolve(tempFolderName);

tempDir = tempDirectory;
try {
AbstractDataFile.createDirectory(tempDir);
AbstractDataFile.createDirectory(tempDirectory);
} catch (IOException e) {
e.printStackTrace();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
public class PlaybackFileCommandsRegistry extends AbstractRegistry<PlaybackFileCommandExtension> implements EventPlaybackClient.EventRecordTick, EventPlaybackClient.EventPlaybackTick, EventPlaybackClient.EventRecordClear {

private List<PlaybackFileCommandExtension> enabledExtensions = new ArrayList<>();

private Configuration config = null;

public PlaybackFileCommandsRegistry() {
super("FILECOMMAND_REGISTRY", new LinkedHashMap<>());
}
Expand All @@ -38,16 +38,16 @@ public void unregister(PlaybackFileCommandExtension extension) {
public boolean setEnabled(String extensionName, boolean enabled) {
return setEnabled(extensionName, enabled, true);
}

public boolean setEnabled(String extensionName, boolean enabled, boolean saveToConfig) {
PlaybackFileCommandExtension extension = REGISTRY.get(extensionName);
if(extension == null) {
if (extension == null) {
return false;
}
extension.setEnabled(enabled);
enabledExtensions = getEnabled();
if(saveToConfig) {

if (saveToConfig) {
saveConfig();
}
return true;
Expand All @@ -59,16 +59,20 @@ private void disableAll() {
});
}

public void setEnabled(String... extensionNames) {
setEnabled(Arrays.asList(extensionNames));
}

public void setEnabled(List<String> extensionNames) {
setEnabled(extensionNames, false);
}

public void setEnabled(List<String> extensionNames, boolean saveToConfig) {
disableAll();
for (String name : extensionNames) {
setEnabled(name, true, false);
}
if(saveToConfig)
if (saveToConfig)
saveConfig();
}

Expand All @@ -83,24 +87,24 @@ public List<PlaybackFileCommandExtension> getEnabled() {

return out;
}
public List<PlaybackFileCommandExtension> getAll(){

public List<PlaybackFileCommandExtension> getAll() {
return new ArrayList<>(REGISTRY.values());
}

@Override
public void onRecordTick(long index, TickContainer container) {
enabledExtensions.forEach(extension -> {
if(extension.isEnabled()) {
if (extension.isEnabled()) {
extension.onRecord(index, container);
}
});
}

@Override
public void onPlaybackTick(long index, TickContainer container) {
enabledExtensions.forEach(extension -> {
if(extension.isEnabled()) {
if (extension.isEnabled()) {
extension.onPlayback(index, container);
}
});
Expand All @@ -109,8 +113,8 @@ public void onPlaybackTick(long index, TickContainer container) {
public PlaybackFileCommandContainer handleOnSerialiseInline(long currentTick, TickContainer container) {
PlaybackFileCommandContainer out = new PlaybackFileCommandContainer();
for (PlaybackFileCommandExtension extension : enabledExtensions) {
PlaybackFileCommandContainer extensionContainer=extension.onSerialiseInlineComment(currentTick, container);
if(extensionContainer!=null) {
PlaybackFileCommandContainer extensionContainer = extension.onSerialiseInlineComment(currentTick, container);
if (extensionContainer != null) {
out.putAll(extensionContainer);
}
}
Expand All @@ -120,8 +124,8 @@ public PlaybackFileCommandContainer handleOnSerialiseInline(long currentTick, Ti
public PlaybackFileCommandContainer handleOnSerialiseEndline(long currentTick, TickContainer container) {
PlaybackFileCommandContainer out = new PlaybackFileCommandContainer();
for (PlaybackFileCommandExtension extension : enabledExtensions) {
PlaybackFileCommandContainer extensionContainer=extension.onSerialiseEndlineComment(currentTick, container);
if(extensionContainer!=null) {
PlaybackFileCommandContainer extensionContainer = extension.onSerialiseEndlineComment(currentTick, container);
if (extensionContainer != null) {
out.putAll(extensionContainer);
}
}
Expand Down Expand Up @@ -155,22 +159,22 @@ public void setConfig(Configuration config) {
this.config = config;
loadConfig();
}

private void loadConfig() {
if (config == null) {
return;
}
String enabled = config.get(TASmodConfig.EnabledFileCommands);
setEnabled(Arrays.asList(enabled.split(", ")));
}

private void saveConfig() {
if (config == null) {
return;
}
List<String> nameList = new ArrayList<>();
enabledExtensions.forEach(element ->{
List<String> nameList = new ArrayList<>();

enabledExtensions.forEach(element -> {
nameList.add(element.getExtensionName());
});
config.set(TASmodConfig.EnabledFileCommands, String.join(", ", nameList));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package com.minecrafttas.tasmod.playback.filecommands.integrated;
package com.minecrafttas.tasmod.playback.filecommands.builtin;

import java.io.IOException;
import java.io.Serializable;
import java.nio.file.Path;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.List;
Expand Down Expand Up @@ -40,12 +41,22 @@ public class DesyncMonitorFileCommandExtension extends PlaybackFileCommandExtens
private MonitorContainer currentValues;

public DesyncMonitorFileCommandExtension() {
super("monitoring");
this("monitoring");
}

public DesyncMonitorFileCommandExtension(String tempDirName) {
super(tempDirName);
this.monitorContainer = new BigArrayList<MonitorContainer>(tempDir.toString());
// Is enabled by default
enabled = true;
}

public DesyncMonitorFileCommandExtension(Path tempDir) {
super(tempDir);
this.monitorContainer = new BigArrayList<>(tempDir.toString());
enabled = true;
}

@Override
public String getExtensionName() {
return "tasmod_desyncMonitor@v1";
Expand Down Expand Up @@ -349,9 +360,9 @@ public void onClear() {
} catch (IOException e) {
e.printStackTrace();
}
monitorContainer = new BigArrayList<MonitorContainer>(tempDir.toString());
monitorContainer = new BigArrayList<MonitorContainer>();
lastStatus = TextFormatting.GRAY + "Empty";
lastPos = "";
lastMotion = "";
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.minecrafttas.tasmod.playback.filecommands.integrated;
package com.minecrafttas.tasmod.playback.filecommands.builtin;

import java.io.IOException;
import java.nio.file.Path;

import com.dselent.bigarraylist.BigArrayList;
import com.minecrafttas.tasmod.playback.PlaybackControllerClient.TickContainer;
Expand All @@ -16,7 +17,17 @@ public class LabelFileCommandExtension extends PlaybackFileCommandExtension {
BigArrayList<PlaybackFileCommandContainer> label = new BigArrayList<>();

public LabelFileCommandExtension() {
super("label");
this("label");
}

public LabelFileCommandExtension(String tempDirName) {
super(tempDirName);
this.label = new BigArrayList<>(tempDir.toString());
enabled = true;
}

public LabelFileCommandExtension(Path tempDir) {
super(tempDir);
this.label = new BigArrayList<>(tempDir.toString());
enabled = true;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.minecrafttas.tasmod.playback.filecommands.integrated;
package com.minecrafttas.tasmod.playback.filecommands.builtin;

import java.io.IOException;
import java.nio.file.Path;

import com.dselent.bigarraylist.BigArrayList;
import com.minecrafttas.tasmod.TASmod;
Expand All @@ -18,11 +19,21 @@ public class OptionsFileCommandExtension extends PlaybackFileCommandExtension {
BigArrayList<PlaybackFileCommandContainer> hud;

public OptionsFileCommandExtension() {
super("hud");
this("hud");
}

public OptionsFileCommandExtension(String tempDirName) {
super(tempDirName);
hud = new BigArrayList<>(tempDir.toString());
enabled = true;
}

public OptionsFileCommandExtension(Path tempDir) {
super(tempDir);
this.hud = new BigArrayList<>(tempDir.toString());
enabled = true;
}

@Override
public String getExtensionName() {
return "tasmod_options@v1";
Expand Down Expand Up @@ -58,6 +69,11 @@ public void onPlayback(long tick, TickContainer tickContainer) {
for (PlaybackFileCommand command : line) {
String[] args = command.getArgs();
if (args.length == 1) {
/*
* Ok this may seem dumb, but Boolean.parseBoolean returns false,
* even if something other then true or false was passed...
* If someone finds something less idiotic please tell me...
*/
switch (args[0]) {
case "true":
shouldRenderHud = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ public PlaybackMetadata(PlaybackMetadataExtension extension) {
this(extension.getExtensionName());
}

private PlaybackMetadata(String extensionName) {
public PlaybackMetadata(String extensionName) {
this.extensionName = extensionName;
this.data = new LinkedHashMap<String, String>();
}

private PlaybackMetadata(String extensionName, LinkedHashMap<String, String> data) {
public PlaybackMetadata(String extensionName, LinkedHashMap<String, String> data) {
this.extensionName = extensionName;
this.data = data;
}
Expand All @@ -37,10 +37,18 @@ public void setValue(String key, String value) {
data.put(key, value);
}

public void setValue(Object key, String value) {
setValue(key.toString(), value);
}

public String getValue(String key) {
return data.get(key);
}

public String getValue(Object key) {
return getValue(key.toString());
}

@Override
public String toString() {
String out = "";
Expand Down
Loading
Loading