diff --git a/changelog b/changelog index a3f93e205..3c15d7b6d 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,6 @@ +## Changed +* Changed the multi fluid ID recipe, they now use analog circuits instead of silicon based ones, no longer requiring plastic to make + ## Fixed * Fixed pumpjack gauges not syncing properly * Fixed some concrete variants not being revertable into uncolored concrete \ No newline at end of file diff --git a/src/main/java/api/hbm/redstoneoverradio/IRORInfo.java b/src/main/java/api/hbm/redstoneoverradio/IRORInfo.java new file mode 100644 index 000000000..cfd18cb81 --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/IRORInfo.java @@ -0,0 +1,9 @@ +package api.hbm.redstoneoverradio; + +public interface IRORInfo { + + public static String PREFIX_VALUE = "VAL:"; + public static String PREFIX_FUNCTION = "FUN:"; + + public String[] getFunctionInfo(); +} diff --git a/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java b/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java new file mode 100644 index 000000000..821fc8598 --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/IRORInteractive.java @@ -0,0 +1,31 @@ +package api.hbm.redstoneoverradio; + +public interface IRORInteractive extends IRORInfo { + + public static String NAME_SEPARATOR = "!"; + public static String PARAM_SEPARATOR = ":"; + + public static String EX_NULL = "Exception: Null Command"; + public static String EX_NAME = "Exception: Multiple Name Separators"; + + public Object runRORFunction(String name, String[] params); + + /** Extracts the command name from a full command string */ + public static String getCommand(String input) { + if(input == null || input.isEmpty()) throw new RORFunctionException(EX_NULL); + String[] parts = input.split(NAME_SEPARATOR); + if(parts.length <= 0 || parts.length > 2) throw new RORFunctionException(EX_NAME); + return parts[0]; + } + + /** Extracts the param list from a full command string */ + public static String[] getParams(String input) { + if(input == null || input.isEmpty()) throw new RORFunctionException(EX_NULL); + String[] parts = input.split(NAME_SEPARATOR); + if(parts.length <= 0 || parts.length > 2) throw new RORFunctionException(EX_NAME); + if(parts.length == 1) return new String[0]; + String paramList = parts[1]; + String[] params = paramList.split(PARAM_SEPARATOR); + return params; + } +} diff --git a/src/main/java/api/hbm/redstoneoverradio/IRORValueProvider.java b/src/main/java/api/hbm/redstoneoverradio/IRORValueProvider.java new file mode 100644 index 000000000..26e615c6b --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/IRORValueProvider.java @@ -0,0 +1,6 @@ +package api.hbm.redstoneoverradio; + +public interface IRORValueProvider extends IRORInfo { + + public Object provideRORValue(String name); +} diff --git a/src/main/java/api/hbm/redstoneoverradio/RORFunctionException.java b/src/main/java/api/hbm/redstoneoverradio/RORFunctionException.java new file mode 100644 index 000000000..5a6a53d3d --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/RORFunctionException.java @@ -0,0 +1,8 @@ +package api.hbm.redstoneoverradio; + +public class RORFunctionException extends RuntimeException { + + public RORFunctionException(String message) { + super(message); + } +} diff --git a/src/main/java/api/hbm/redstoneoverradio/package-info.java b/src/main/java/api/hbm/redstoneoverradio/package-info.java new file mode 100644 index 000000000..ef1d4eaad --- /dev/null +++ b/src/main/java/api/hbm/redstoneoverradio/package-info.java @@ -0,0 +1,22 @@ +/** + * @author hbm + * + */ +package api.hbm.redstoneoverradio; + +/* + + __ __ __ _______ ________ __ __ __ __ ______ __ + /_/| /_/\ /_/| /______/\ /_______/| /_/| /_/| /_/|_____ /_/| /_____/| /_/| +| || | \\ | || | ___ \\ | ______|/ | ||| || | |/_____| || |___ || | || +| || | \ \\ | || | | \ \\ | ||___ | |/| |/ | ______ || /__| || | ||__ +| || | |\ \\| || | | \ || | |/__/| \ // | |/_____| || | ___|/ | |/_/| +| || | ||\ \| || | | | || | ____|/ >