From a8392f44a02538758c0cecc29d2d41092d4f62e0 Mon Sep 17 00:00:00 2001 From: Sr_endi Date: Fri, 21 May 2021 16:29:43 +0200 Subject: [PATCH 01/61] Initial commit --- .gitignore | 118 +++++++++++ README.md | 20 ++ build.gradle | 112 +++++++++++ gradle.properties | 3 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 185 ++++++++++++++++++ gradlew.bat | 89 +++++++++ settings.gradle | 1 + .../srendi/cctutorial/cctutorial/CCBlock.java | 29 +++ .../cctutorial/cctutorial/CCPeripheral.java | 97 +++++++++ .../cctutorial/cctutorial/CCTileEntity.java | 36 ++++ .../cctutorial/cctutorial/CCtutorial.java | 22 +++ .../cctutorial/cctutorial/Registration.java | 42 ++++ src/main/resources/META-INF/mods.toml | 40 ++++ src/main/resources/pack.mcmeta | 7 + 16 files changed, 806 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle create mode 100644 src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java create mode 100644 src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java create mode 100644 src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java create mode 100644 src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java create mode 100644 src/main/java/de/srendi/cctutorial/cctutorial/Registration.java create mode 100644 src/main/resources/META-INF/mods.toml create mode 100644 src/main/resources/pack.mcmeta diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c37caf --- /dev/null +++ b/.gitignore @@ -0,0 +1,118 @@ +# User-specific stuff +.idea/ + +*.iml +*.ipr +*.iws + +# IntelliJ +out/ +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +.gradle +build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Cache of project +.gradletasknamecache + +**/build/ + +# Common working directory +run/ + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar diff --git a/README.md b/README.md new file mode 100644 index 0000000..ed870c7 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# CC Tutorial +This is a little tutorial on how peripherals in cc works. +We use the simple system with the IPeripheral interface. + +If you want to see, how I use this system with more functions and blocks, take a look at [Advanced Peripherals](https://github.com/Seniorendi/AdvancedPeripherals) + +We create a peripheral with two functions: +* isRaining - a main thread function which will return true when it rains +* sendMessage - a function which will send a message to every player + +## Content +* CCBlock - Our normal block, nothing special + +* CCPeripheral - Our peripheral, here we register functions and manage connected computers + +* Registration - Normal registration to register our blocks, items and so on + +* CCTutorial - Our main class + +* CCTileEntity - Our tile entity diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..626a64a --- /dev/null +++ b/build.gradle @@ -0,0 +1,112 @@ +buildscript { + repositories { + maven { url = 'https://maven.minecraftforge.net' } + mavenCentral() + } + dependencies { + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true + } +} + +apply plugin: 'net.minecraftforge.gradle' + +group = 'de.srendi.cctutorial' +version = '1.0' +archivesBaseName = 'cctutorial' + +java.toolchain.languageVersion = JavaLanguageVersion.of(8) + +minecraft { + mappings channel: 'snapshot', version: '20210309-1.16.5' + + runs { + client { + workingDirectory project.file('run') + + + property 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + property 'forge.logging.console.level', 'debug' + + mods { + cctutorial { + source sourceSets.main + } + } + } + + server { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + property 'forge.logging.console.level', 'debug' + + mods { + cctutorial { + source sourceSets.main + } + } + } + + data { + workingDirectory project.file('run') + + property 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + property 'forge.logging.console.level', 'debug' + + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + args '--mod', 'cctutorial', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + + mods { + cctutorial { + source sourceSets.main + } + } + } + } +} + +// Include resources generated by data generators. +sourceSets.main.resources { srcDir 'src/generated/resources' } + +repositories { + maven { url 'https://squiddev.cc/maven/' } +} + +dependencies { + // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed + // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. + // The userdev artifact is a special name and will get all sorts of transformations applied to it. + minecraft 'net.minecraftforge:forge:1.16.5-36.1.23' + + implementation fg.deobf("org.squiddev:cc-tweaked-1.16.4:${cc_version}") + +} + +// Example for how to get properties into the manifest for reading by the runtime.. +jar { + manifest { + attributes([ + "Specification-Title" : "cctutorial", + //"Specification-Vendor": "cctutorial authors", + "Specification-Version" : "1", // We are version 1 of ourselves + "Implementation-Title" : project.name, + "Implementation-Version" : project.version, + //"Implementation-Vendor": "cctutorial authors", + "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") + ]) + } +} + +jar.finalizedBy('reobfJar') diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..ceeef23 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false +cc_version=1.95.3 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..28ff446 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..a88046d --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'cctutorial' diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java new file mode 100644 index 0000000..b9b2b86 --- /dev/null +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java @@ -0,0 +1,29 @@ +package de.srendi.cctutorial.cctutorial; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockReader; + +import javax.annotation.Nullable; + +public class CCBlock extends Block { + + public CCBlock() { + super(Properties.create(Material.IRON).hardnessAndResistance(5, 10)); + } + + //Create a new tile entity with our registry object + @Nullable + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return Registration.CC_TILEENTITY.get().create(); + } + + //Say minecraft, our CCBlock has a tile entity. + @Override + public boolean hasTileEntity(BlockState state) { + return true; + } +} diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java new file mode 100644 index 0000000..59eaee6 --- /dev/null +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java @@ -0,0 +1,97 @@ +package de.srendi.cctutorial.cctutorial; + +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.peripheral.IComputerAccess; +import dan200.computercraft.api.peripheral.IPeripheral; +import net.minecraft.util.text.StringTextComponent; +import net.minecraftforge.fml.server.ServerLifecycleHooks; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.ArrayList; +import java.util.List; + +/** + * Our peripheral class, this is the class where we will register functions for our block. + */ +public class CCPeripheral implements IPeripheral { + + /** + * A list of all our connected computers. We need this for event usages. + */ + List connectedComputers = new ArrayList<>(); + + /** + * This is our tile entity, we set the tile entity when we create a new peripheral. We use this tile entity to access the block or the world + */ + private final CCTileEntity tileEntity; + + /** + * + * @param tileEntity the tile entity of this peripheral + */ + public CCPeripheral(CCTileEntity tileEntity) { + this.tileEntity = tileEntity; + } + + /** + * We use getType to set the name for our peripheral. A modem would wrap our block as "test_n" + * + * @return the name of our peripheral + */ + @Nonnull + @Override + public String getType() { + return "test"; + } + + /** + * CC use this method to check, if the peripheral in front of the modem is our peripheral + */ + @Override + public boolean equals(@Nullable IPeripheral iPeripheral) { + return this == iPeripheral; + } + + /** + * Will be called when a computer disconnects from our block + */ + @Override + public void detach(@Nonnull IComputerAccess computer) { + connectedComputers.remove(computer); + } + + /** + * Will be called when a computer connects to our block + */ + @Override + public void attach(@Nonnull IComputerAccess computer) { + connectedComputers.add(computer); + } + + public CCTileEntity getTileEntity() { + return tileEntity; + } + + /** + * To register functions for our block, wee need to create final methods with the {@link LuaFunction} annotation + * This function will send a message to every player on the Server + */ + @LuaFunction + public final void sendMessage(String message) { + //Used to get the current server and all online players. + ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayers().forEach(player -> { + //Now, send the message + player.sendStatusMessage(new StringTextComponent(message), false); + }); + } + + /** + * Because we want to access the world, we need to run this function on the main thread. + */ + @LuaFunction(mainThread = true) + public final boolean isRaining() { + return getTileEntity().getWorld().getRainStrength(0) > 0; + } + +} diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java new file mode 100644 index 0000000..3f3f478 --- /dev/null +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java @@ -0,0 +1,36 @@ +package de.srendi.cctutorial.cctutorial; + +import dan200.computercraft.api.peripheral.IPeripheral; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Direction; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; + +import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; + +public class CCTileEntity extends TileEntity { + + public CCTileEntity() { + super(Registration.CC_TILEENTITY.get()); + } + + /** + * Our peripheral, we create a new peripheral for each new tile entity + */ + protected CCPeripheral peripheral = new CCPeripheral(this); + private LazyOptional peripheralCap; + + /** + * When a computer modem tries to wrap our block, the modem will call getCapability to receive our peripheral. + */ + @Override + public LazyOptional getCapability(Capability cap, Direction direction) { + if (cap == CAPABILITY_PERIPHERAL) { + if (peripheralCap == null) { + peripheralCap = LazyOptional.of(() -> peripheral); + } + return peripheralCap.cast(); + } + return super.getCapability(cap, direction); + } +} diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java new file mode 100644 index 0000000..765f55c --- /dev/null +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java @@ -0,0 +1,22 @@ +package de.srendi.cctutorial.cctutorial; + +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Mod; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +// The value here should match an entry in the META-INF/mods.toml file +@Mod("cctutorial") +public class CCtutorial { + + //Our mod id + public static final String MODID = "cctutorial"; + // Directly reference a log4j logger. + private static final Logger LOGGER = LogManager.getLogger(); + + public CCtutorial() { + Registration.register(); + // Register ourselves for server and other game events we are interested in. Currently, we do not use any events + MinecraftForge.EVENT_BUS.register(this); + } +} diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java new file mode 100644 index 0000000..fdba30a --- /dev/null +++ b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java @@ -0,0 +1,42 @@ +package de.srendi.cctutorial.cctutorial; + +import com.google.common.collect.Sets; +import net.minecraft.block.Block; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.tileentity.TileEntityType; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.RegistryObject; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; + +import java.util.function.Supplier; + +public class Registration { + + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, CCtutorial.MODID); + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, CCtutorial.MODID); + public static final DeferredRegister> TILE_ENTITIES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, CCtutorial.MODID); + + //Blocks + public static final RegistryObject CC_BLOCK = register("tutorial_block", CCBlock::new); + + private static RegistryObject register(String name, Supplier block) { + RegistryObject registryObject = BLOCKS.register(name, block); + ITEMS.register(name, ()->new BlockItem(registryObject.get(), new Item.Properties().group(ItemGroup.REDSTONE))); + return registryObject; + } + + //Tile Entities + public static final RegistryObject> CC_TILEENTITY = Registration.TILE_ENTITIES.register("tutorial_block", () -> new TileEntityType<>(CCTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); + + //Register our stuff + public static void register() { + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + BLOCKS.register(modEventBus); + ITEMS.register(modEventBus); + TILE_ENTITIES.register(modEventBus); + } +} \ No newline at end of file diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..c4ef532 --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,40 @@ + +modLoader = "javafml" #mandatory +loaderVersion = "[36,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. +license = "All rights reserved" +[[mods]] #mandatory +# The modid of the mod +modId = "cctutorial" #mandatory +version = "1.0" #mandatory +# A display name for the mod +displayName = "CCtutorial" #mandatory +# The description text for the mod (multi line!) (#mandatory) +description = ''' + A mod to show you, how the magic of cc works. +''' +# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. +[[dependencies.cctutorial]] #optional +# the modid of the dependency +modId = "forge" #mandatory +# Does this dependency have to exist - if not, ordering below must be specified +mandatory = true #mandatory +# The version range of the dependency +versionRange = "[36,)" #mandatory +# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory +ordering = "NONE" +# Side this dependency is applied on - BOTH, CLIENT or SERVER +side = "BOTH" +# Here's another dependency +[[dependencies.advancedperipherals]] +modId = "computercraft" +mandatory = true +versionRange = "1.95.3" +ordering = "NONE" +side = "BOTH" +[[dependencies.cctutorial]] +modId = "minecraft" +mandatory = true +# This version range declares a minimum of the current minecraft version up to but not including the next major version +versionRange = "1.16.5" +ordering = "NONE" +side = "BOTH" diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..8a4c6f7 --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,7 @@ +{ + "pack": { + "description": "cctutorial resources", + "pack_format": 6, + "_comment": "A pack_format of 6 requires json lang files and some texture changes from 1.16.2. Note: we require v6 pack meta for all mods." + } +} From 349e3b7721df3928e7ff8c6bcef5f9e649a36bfd Mon Sep 17 00:00:00 2001 From: Sr_endi <67484093+Seniorendi@users.noreply.github.com> Date: Wed, 29 Dec 2021 01:14:23 +0100 Subject: [PATCH 02/61] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ed870c7..2177da3 100644 --- a/README.md +++ b/README.md @@ -18,3 +18,5 @@ We create a peripheral with two functions: * CCTutorial - Our main class * CCTileEntity - Our tile entity + +* /src/main/resources/META-INF/mods.toml - Here we have our name of the mod, the mod id, the versiond and more. The most importang thing in the file is the modid and the dependencies for addons like cc-tweaked. From 8c78815092b0181a12cd21ef1b147b4c1a5ee090 Mon Sep 17 00:00:00 2001 From: Srendi Date: Wed, 6 Apr 2022 14:54:16 +0200 Subject: [PATCH 03/61] 1.18 --- build.gradle | 10 +++--- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../srendi/cctutorial/cctutorial/CCBlock.java | 35 ++++++++++--------- .../cctutorial/cctutorial/CCPeripheral.java | 17 ++++----- .../cctutorial/cctutorial/CCTileEntity.java | 17 +++++---- .../cctutorial/cctutorial/CCtutorial.java | 6 +--- .../cctutorial/cctutorial/Registration.java | 26 +++++++------- 8 files changed, 60 insertions(+), 55 deletions(-) diff --git a/build.gradle b/build.gradle index 626a64a..847b44d 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true } } @@ -14,10 +14,10 @@ group = 'de.srendi.cctutorial' version = '1.0' archivesBaseName = 'cctutorial' -java.toolchain.languageVersion = JavaLanguageVersion.of(8) +java.toolchain.languageVersion = JavaLanguageVersion.of(17) minecraft { - mappings channel: 'snapshot', version: '20210309-1.16.5' + mappings channel: 'official', version: '1.18.2' runs { client { @@ -88,9 +88,9 @@ dependencies { // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft 'net.minecraftforge:forge:1.16.5-36.1.23' + minecraft 'net.minecraftforge:forge:1.18.2-40.0.40' - implementation fg.deobf("org.squiddev:cc-tweaked-1.16.4:${cc_version}") + implementation fg.deobf("org.squiddev:cc-tweaked-1.18.2:${cc_version}") } diff --git a/gradle.properties b/gradle.properties index ceeef23..ca3d81e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -cc_version=1.95.3 +cc_version=1.100.4 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 28ff446..b1159fc 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java index b9b2b86..ac9187b 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java @@ -1,29 +1,32 @@ package de.srendi.cctutorial.cctutorial; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.material.Material; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockReader; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; -public class CCBlock extends Block { +/** + * This is our block. To tell minecraft that this block has a block entity, we need to implement {@link EntityBlock} + */ +public class CCBlock extends Block implements EntityBlock { public CCBlock() { - super(Properties.create(Material.IRON).hardnessAndResistance(5, 10)); + super(Properties.of(Material.METAL).strength(5, 5)); } - //Create a new tile entity with our registry object + /** + * This is the method from {@link EntityBlock} to create a new block entity for our block + * + * @return A new block entity from our registry object + */ @Nullable @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return Registration.CC_TILEENTITY.get().create(); - } - - //Say minecraft, our CCBlock has a tile entity. - @Override - public boolean hasTileEntity(BlockState state) { - return true; + public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return Registration.CC_TILEENTITY.get().create(pos, state); } } diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java index 59eaee6..8de7c3f 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java @@ -3,8 +3,9 @@ package de.srendi.cctutorial.cctutorial; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; -import net.minecraft.util.text.StringTextComponent; -import net.minecraftforge.fml.server.ServerLifecycleHooks; +import net.minecraft.Util; +import net.minecraft.network.chat.TextComponent; +import net.minecraftforge.server.ServerLifecycleHooks; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -19,7 +20,7 @@ public class CCPeripheral implements IPeripheral { /** * A list of all our connected computers. We need this for event usages. */ - List connectedComputers = new ArrayList<>(); + private final List connectedComputers = new ArrayList<>(); /** * This is our tile entity, we set the tile entity when we create a new peripheral. We use this tile entity to access the block or the world @@ -27,7 +28,6 @@ public class CCPeripheral implements IPeripheral { private final CCTileEntity tileEntity; /** - * * @param tileEntity the tile entity of this peripheral */ public CCPeripheral(CCTileEntity tileEntity) { @@ -79,10 +79,11 @@ public class CCPeripheral implements IPeripheral { */ @LuaFunction public final void sendMessage(String message) { - //Used to get the current server and all online players. + // Used to get the current server and all online players. ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayers().forEach(player -> { - //Now, send the message - player.sendStatusMessage(new StringTextComponent(message), false); + // Now, send the message + // To send a message, we need a Component(We use a TextComponent) and a sender UUID. We just pass an empty uuid in here + player.sendMessage(new TextComponent(message), Util.NIL_UUID); }); } @@ -91,7 +92,7 @@ public class CCPeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final boolean isRaining() { - return getTileEntity().getWorld().getRainStrength(0) > 0; + return getTileEntity().getLevel().getRainLevel(0) > 0; } } diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java index 3f3f478..a224ba7 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java @@ -1,17 +1,20 @@ package de.srendi.cctutorial.cctutorial; import dan200.computercraft.api.peripheral.IPeripheral; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; +import org.jetbrains.annotations.NotNull; import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; -public class CCTileEntity extends TileEntity { +public class CCTileEntity extends BlockEntity { - public CCTileEntity() { - super(Registration.CC_TILEENTITY.get()); + public CCTileEntity(BlockPos pos, BlockState state) { + super(Registration.CC_TILEENTITY.get(), pos, state); } /** @@ -22,9 +25,11 @@ public class CCTileEntity extends TileEntity { /** * When a computer modem tries to wrap our block, the modem will call getCapability to receive our peripheral. + * Then we just simply return a {@link LazyOptional} with our Peripheral */ @Override - public LazyOptional getCapability(Capability cap, Direction direction) { + @NotNull + public LazyOptional getCapability(@NotNull Capability cap, Direction direction) { if (cap == CAPABILITY_PERIPHERAL) { if (peripheralCap == null) { peripheralCap = LazyOptional.of(() -> peripheral); diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java index 765f55c..c8854b0 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java @@ -2,17 +2,13 @@ package de.srendi.cctutorial.cctutorial; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; // The value here should match an entry in the META-INF/mods.toml file @Mod("cctutorial") public class CCtutorial { - //Our mod id + // Our mod id public static final String MODID = "cctutorial"; - // Directly reference a log4j logger. - private static final Logger LOGGER = LogManager.getLogger(); public CCtutorial() { Registration.register(); diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java index fdba30a..ff428b3 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java @@ -1,16 +1,16 @@ package de.srendi.cctutorial.cctutorial; import com.google.common.collect.Sets; -import net.minecraft.block.Block; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; -import net.minecraft.tileentity.TileEntityType; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; import java.util.function.Supplier; @@ -18,25 +18,25 @@ public class Registration { public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, CCtutorial.MODID); public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, CCtutorial.MODID); - public static final DeferredRegister> TILE_ENTITIES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, CCtutorial.MODID); + public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, CCtutorial.MODID); - //Blocks + // Blocks public static final RegistryObject CC_BLOCK = register("tutorial_block", CCBlock::new); private static RegistryObject register(String name, Supplier block) { RegistryObject registryObject = BLOCKS.register(name, block); - ITEMS.register(name, ()->new BlockItem(registryObject.get(), new Item.Properties().group(ItemGroup.REDSTONE))); + ITEMS.register(name, () -> new BlockItem(registryObject.get(), new Item.Properties().tab(CreativeModeTab.TAB_REDSTONE))); return registryObject; } - //Tile Entities - public static final RegistryObject> CC_TILEENTITY = Registration.TILE_ENTITIES.register("tutorial_block", () -> new TileEntityType<>(CCTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); + // Tile Entities + public static final RegistryObject> CC_TILEENTITY = Registration.BLOCK_ENTITIES.register("tutorial_block", () -> new BlockEntityType<>(CCTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); - //Register our stuff + // Register our stuff public static void register() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); BLOCKS.register(modEventBus); ITEMS.register(modEventBus); - TILE_ENTITIES.register(modEventBus); + BLOCK_ENTITIES.register(modEventBus); } } \ No newline at end of file From 73accd5999608c72bd9ac9049b4295de5b7d4efd Mon Sep 17 00:00:00 2001 From: Sr_endi <67484093+Seniorendi@users.noreply.github.com> Date: Wed, 6 Apr 2022 15:01:13 +0200 Subject: [PATCH 04/61] Update README.md --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 2177da3..47c7e17 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ We create a peripheral with two functions: * isRaining - a main thread function which will return true when it rains * sendMessage - a function which will send a message to every player +## Supported Versions +- [1.18](https://github.com/Seniorendi/CCTutorial/tree/1.18) +- [1.16](https://github.com/Seniorendi/CCTutorial/tree/1.16) + ## Content * CCBlock - Our normal block, nothing special @@ -20,3 +24,9 @@ We create a peripheral with two functions: * CCTileEntity - Our tile entity * /src/main/resources/META-INF/mods.toml - Here we have our name of the mod, the mod id, the versiond and more. The most importang thing in the file is the modid and the dependencies for addons like cc-tweaked. + +## Pictures + +![Functions](https://srendi.de/wp-content/uploads/2022/04/Bild_2022-04-06_145710.png) + +![Blocks](https://srendi.de/wp-content/uploads/2022/04/Bild_2022-04-06_145748.png) From f6acd38cbacca80e052995a9028dc1fe991b70b6 Mon Sep 17 00:00:00 2001 From: Sr_endi <67484093+Seniorendi@users.noreply.github.com> Date: Wed, 6 Apr 2022 15:03:46 +0200 Subject: [PATCH 05/61] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 47c7e17..2b499f6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # CC Tutorial -This is a little tutorial on how peripherals in cc works. +This is a little tutorial on how peripherals in cc work. We use the simple system with the IPeripheral interface. If you want to see, how I use this system with more functions and blocks, take a look at [Advanced Peripherals](https://github.com/Seniorendi/AdvancedPeripherals) From 0a5688ebf7bc127ad666619fc0c970f4202f998c Mon Sep 17 00:00:00 2001 From: Srendi Date: Tue, 30 Aug 2022 13:37:15 +0200 Subject: [PATCH 06/61] 1.19 --- README.md | 1 + build.gradle | 6 +++--- gradle.properties | 5 ++++- gradle/wrapper/gradle-wrapper.properties | 2 +- .../java/de/srendi/cctutorial/cctutorial/CCPeripheral.java | 7 +++---- .../java/de/srendi/cctutorial/cctutorial/Registration.java | 2 +- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2b499f6..31895c6 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ We create a peripheral with two functions: * sendMessage - a function which will send a message to every player ## Supported Versions +- [1.19](https://github.com/Seniorendi/CCTutorial/tree/1.19) - [1.18](https://github.com/Seniorendi/CCTutorial/tree/1.18) - [1.16](https://github.com/Seniorendi/CCTutorial/tree/1.16) diff --git a/build.gradle b/build.gradle index 847b44d..7e3030f 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ archivesBaseName = 'cctutorial' java.toolchain.languageVersion = JavaLanguageVersion.of(17) minecraft { - mappings channel: 'official', version: '1.18.2' + mappings channel: 'official', version: "${mc_version}" runs { client { @@ -88,9 +88,9 @@ dependencies { // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft 'net.minecraftforge:forge:1.18.2-40.0.40' + minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" - implementation fg.deobf("org.squiddev:cc-tweaked-1.18.2:${cc_version}") + implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}") } diff --git a/gradle.properties b/gradle.properties index ca3d81e..0af5ab3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,6 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -cc_version=1.100.4 + +cc_version=1.100.9 +mc_version=1.19.2 +forge_version=43.1.3 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b1159fc..8fad3f5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java index 8de7c3f..13e73f0 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java @@ -3,8 +3,7 @@ package de.srendi.cctutorial.cctutorial; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; -import net.minecraft.Util; -import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.Component; import net.minecraftforge.server.ServerLifecycleHooks; import javax.annotation.Nonnull; @@ -82,8 +81,8 @@ public class CCPeripheral implements IPeripheral { // Used to get the current server and all online players. ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayers().forEach(player -> { // Now, send the message - // To send a message, we need a Component(We use a TextComponent) and a sender UUID. We just pass an empty uuid in here - player.sendMessage(new TextComponent(message), Util.NIL_UUID); + // To send a message, we need a Component(In this case a literal text component). + player.sendSystemMessage(Component.literal(message)); }); } diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java index ff428b3..7029325 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java @@ -18,7 +18,7 @@ public class Registration { public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, CCtutorial.MODID); public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, CCtutorial.MODID); - public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, CCtutorial.MODID); + public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, CCtutorial.MODID); // Blocks public static final RegistryObject CC_BLOCK = register("tutorial_block", CCBlock::new); From f92a65bdb52591e130a6a5e603cc57ac0e593b72 Mon Sep 17 00:00:00 2001 From: Sr_endi <67484093+Seniorendi@users.noreply.github.com> Date: Sat, 22 Oct 2022 03:15:29 +0200 Subject: [PATCH 07/61] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 31895c6..f62e69c 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,6 @@ We create a peripheral with two functions: ## Pictures -![Functions](https://srendi.de/wp-content/uploads/2022/04/Bild_2022-04-06_145710.png) +![Functions](https://intelligence-modding.de/wp-content/uploads/2022/04/Bild_2022-04-06_145710.png) -![Blocks](https://srendi.de/wp-content/uploads/2022/04/Bild_2022-04-06_145748.png) +![Blocks](https://intelligence-modding.de/wp-content/uploads/2022/04/Bild_2022-04-06_145748.png) From f90500fdd4456e497c18b3629878a5e5647bba3e Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sat, 28 Jan 2023 08:49:14 +0300 Subject: [PATCH 08/61] All of time and space --- build.gradle | 3 ++ .../cctutorial/cctutorial/CCPeripheral.java | 33 +++++++++++-------- .../cctutorial/cctutorial/CCTileEntity.java | 3 ++ .../cctutorial/cctutorial/Registration.java | 4 +-- .../blockstates/digital_tardim_interface.json | 7 ++++ .../assets/cctutorial/lang/en_uk.json | 3 ++ .../assets/cctutorial/lang/en_us.json | 3 ++ .../resources/assets/cctutorial/lang/rpr.json | 3 ++ .../block/digital_tardim_interface.json | 6 ++++ .../models/item/digital_tardim_interface.json | 3 ++ 10 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json create mode 100644 src/main/resources/assets/cctutorial/lang/en_uk.json create mode 100644 src/main/resources/assets/cctutorial/lang/en_us.json create mode 100644 src/main/resources/assets/cctutorial/lang/rpr.json create mode 100644 src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json create mode 100644 src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json diff --git a/build.gradle b/build.gradle index 7e3030f..f310d32 100644 --- a/build.gradle +++ b/build.gradle @@ -90,6 +90,9 @@ dependencies { // The userdev artifact is a special name and will get all sorts of transformations applied to it. minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" + + implementation files("/home/andrew71/.local/share/multimc/instances/TardimInControl/.minecraft/mods/tardim-1.1.5.jar") + implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}") } diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java index 13e73f0..d90f78f 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java @@ -6,6 +6,9 @@ import dan200.computercraft.api.peripheral.IPeripheral; import net.minecraft.network.chat.Component; import net.minecraftforge.server.ServerLifecycleHooks; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; + import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.ArrayList; @@ -72,26 +75,28 @@ public class CCPeripheral implements IPeripheral { return tileEntity; } + + public TardimData getTardimData() { + return TardimManager.getFromPos(getTileEntity().getPos()); + } + /** * To register functions for our block, wee need to create final methods with the {@link LuaFunction} annotation * This function will send a message to every player on the Server */ - @LuaFunction - public final void sendMessage(String message) { - // Used to get the current server and all online players. - ServerLifecycleHooks.getCurrentServer().getPlayerList().getPlayers().forEach(player -> { - // Now, send the message - // To send a message, we need a Component(In this case a literal text component). - player.sendSystemMessage(Component.literal(message)); - }); - } - /** - * Because we want to access the world, we need to run this function on the main thread. - */ @LuaFunction(mainThread = true) - public final boolean isRaining() { - return getTileEntity().getLevel().getRainLevel(0) > 0; + public final double get_fuel() { + return getTardimData().getFuel(); } + @LuaFunction(mainThread = true) + public final boolean is_locked() { + return getTardimData().isLocked(); + } + + @LuaFunction(mainThread = true) + public final void set_locked(boolean locked) { + getTardimData().setLocked(locked); + } } diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java index a224ba7..95bf197 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java @@ -22,6 +22,9 @@ public class CCTileEntity extends BlockEntity { */ protected CCPeripheral peripheral = new CCPeripheral(this); private LazyOptional peripheralCap; + public BlockPos getPos() { + return this.worldPosition; + } /** * When a computer modem tries to wrap our block, the modem will call getCapability to receive our peripheral. diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java index 7029325..d323c89 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java @@ -21,7 +21,7 @@ public class Registration { public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, CCtutorial.MODID); // Blocks - public static final RegistryObject CC_BLOCK = register("tutorial_block", CCBlock::new); + public static final RegistryObject CC_BLOCK = register("digital_tardim_interface", CCBlock::new); private static RegistryObject register(String name, Supplier block) { RegistryObject registryObject = BLOCKS.register(name, block); @@ -30,7 +30,7 @@ public class Registration { } // Tile Entities - public static final RegistryObject> CC_TILEENTITY = Registration.BLOCK_ENTITIES.register("tutorial_block", () -> new BlockEntityType<>(CCTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); + public static final RegistryObject> CC_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(CCTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); // Register our stuff public static void register() { diff --git a/src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json b/src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json new file mode 100644 index 0000000..c8dc74e --- /dev/null +++ b/src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "cctutorial:block/digital_tardim_interface" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/lang/en_uk.json b/src/main/resources/assets/cctutorial/lang/en_uk.json new file mode 100644 index 0000000..9dd28c0 --- /dev/null +++ b/src/main/resources/assets/cctutorial/lang/en_uk.json @@ -0,0 +1,3 @@ +{ + "block.cctutorial.digital_tardim_interface": "Digital TARDIM Interface" +} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/lang/en_us.json b/src/main/resources/assets/cctutorial/lang/en_us.json new file mode 100644 index 0000000..9dd28c0 --- /dev/null +++ b/src/main/resources/assets/cctutorial/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "block.cctutorial.digital_tardim_interface": "Digital TARDIM Interface" +} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/lang/rpr.json b/src/main/resources/assets/cctutorial/lang/rpr.json new file mode 100644 index 0000000..ceea164 --- /dev/null +++ b/src/main/resources/assets/cctutorial/lang/rpr.json @@ -0,0 +1,3 @@ +{ + "block.cctutorial.digital_tardim_interface": "Циферный Интерфейсъ Хрономашины" +} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json b/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json new file mode 100644 index 0000000..6a4d12c --- /dev/null +++ b/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "cctutorial:blocks/digital_tardim_interface" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json b/src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json new file mode 100644 index 0000000..4a0226c --- /dev/null +++ b/src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json @@ -0,0 +1,3 @@ +{ + "parent": "cctutorial:block/digital_tardim_interface" +} \ No newline at end of file From ff96023b56371d6734fa98fac5a40fa17481c437 Mon Sep 17 00:00:00 2001 From: Andrew71 Date: Sat, 28 Jan 2023 15:51:12 +0300 Subject: [PATCH 09/61] Infinite Potential --- .../cctutorial/cctutorial/CCPeripheral.java | 145 +++++++++++++----- 1 file changed, 104 insertions(+), 41 deletions(-) diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java index d90f78f..521d0c1 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java @@ -3,31 +3,33 @@ package de.srendi.cctutorial.cctutorial; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; -import net.minecraft.network.chat.Component; -import net.minecraftforge.server.ServerLifecycleHooks; +import dan200.computercraft.api.lua.ObjectLuaTable; +import dan200.computercraft.api.lua.LuaException; +import net.minecraft.world.level.Level; + + +// TODO: Fabric and Forge diffirence? (Bottom: Fabric) import com.swdteam.tardim.TardimData; import com.swdteam.tardim.TardimManager; +import com.swdteam.tardim.TardimData.Location; +//import com.swdteam.tardim.tardim.TardimManager; +//import com.swdteam.tardim.tardim.TardimData; + import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * Our peripheral class, this is the class where we will register functions for our block. */ public class CCPeripheral implements IPeripheral { - /** - * A list of all our connected computers. We need this for event usages. - */ - private final List connectedComputers = new ArrayList<>(); - - /** - * This is our tile entity, we set the tile entity when we create a new peripheral. We use this tile entity to access the block or the world - */ - private final CCTileEntity tileEntity; + private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral + private final CCTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates /** * @param tileEntity the tile entity of this peripheral @@ -36,67 +38,128 @@ public class CCPeripheral implements IPeripheral { this.tileEntity = tileEntity; } - /** - * We use getType to set the name for our peripheral. A modem would wrap our block as "test_n" - * - * @return the name of our peripheral - */ + // Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" @Nonnull @Override - public String getType() { - return "test"; - } + public String getType() { return "digital_tardim_interface"; } - /** - * CC use this method to check, if the peripheral in front of the modem is our peripheral - */ + // Apparently CC uses this to check if the peripheral in front of a modem is this one @Override - public boolean equals(@Nullable IPeripheral iPeripheral) { - return this == iPeripheral; - } + public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } - /** - * Will be called when a computer disconnects from our block - */ + // Called when a computer disconnects from the peripheral @Override - public void detach(@Nonnull IComputerAccess computer) { - connectedComputers.remove(computer); - } + public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } - /** - * Will be called when a computer connects to our block - */ + // Called when a computer connects to the peripheral + // TODO: add a sound effect? Like a simple TARDIS beep? @Override - public void attach(@Nonnull IComputerAccess computer) { - connectedComputers.add(computer); - } + public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } public CCTileEntity getTileEntity() { return tileEntity; } + // Get TARDIM's data, which we need for *every* function + // TODO: How do we check if there is no TARDIM?! public TardimData getTardimData() { return TardimManager.getFromPos(getTileEntity().getPos()); } - /** - * To register functions for our block, wee need to create final methods with the {@link LuaFunction} annotation - * This function will send a message to every player on the Server - */ + // Peripheral methods =============================================================== + // Get amount of fuel we have (Out of 100) @LuaFunction(mainThread = true) public final double get_fuel() { return getTardimData().getFuel(); } + @LuaFunction(mainThread = true) + public final double calculate_fuel() { + TardimData data = getTardimData(); + + if (data.getTravelLocation() == null) return 0; + + Location curr = data.getCurrentLocation(); + Location dest = data.getTravelLocation(); + + double fuel = 0.0; + + if (curr.getLevel() != dest.getLevel()) + { + fuel = 10.0; + } + + return 100; //data.calculateFuelForJourney(((Level) curr.getLevel()), dest.getLevel().location(), curr.getPos(), dest.getPos()); + } + + // Check whether the TARDIM is locked @LuaFunction(mainThread = true) public final boolean is_locked() { return getTardimData().isLocked(); } + // Check whether the TARDIM is in flight + @LuaFunction(mainThread = true) + public final boolean is_in_flight() { return getTardimData().isInFlight(); } + + // Supposedly gets UNIX timestamp of when we entered flight + @LuaFunction(mainThread = true) + public final long get_time_entered_flight() { + TardimData data = getTardimData(); + if (!data.isInFlight()) { + return -1; + // ???? + } + return data.getTimeEnteredFlight(); + } + + // Get username of the TARDIM's owner + @LuaFunction(mainThread = true) + public final String get_owner_name() { + TardimData data = getTardimData(); + return data.getOwnerName(); + } + + // Lock/Unlock the TARDIM @LuaFunction(mainThread = true) public final void set_locked(boolean locked) { getTardimData().setLocked(locked); } + + // Returns table with current TARDIM location + @LuaFunction(mainThread = true) + public final ObjectLuaTable get_current_location() { + Location loc = getTardimData().getCurrentLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } + + // Returns flight destination (or null if there isn't one) + @LuaFunction(mainThread = true) + public final ObjectLuaTable get_flight_location() { + TardimData data = getTardimData(); + if (data.getTravelLocation() != null) { + Location loc = data.getTravelLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } else { + return null; + } + } } From 3922140f13419ad7043f442057c027a38a59c330 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sat, 28 Jan 2023 17:01:23 +0300 Subject: [PATCH 10/61] TARDIM factory closed due to supply chain issues --- README.md | 43 ++++------ .../cctutorial/cctutorial/CCPeripheral.java | 80 ++++++++++++++++--- 2 files changed, 82 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index f62e69c..d9de1b9 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,20 @@ -# CC Tutorial -This is a little tutorial on how peripherals in cc work. -We use the simple system with the IPeripheral interface. +# TARDIM: In Control +### All of time and space, *now automated*. -If you want to see, how I use this system with more functions and blocks, take a look at [Advanced Peripherals](https://github.com/Seniorendi/AdvancedPeripherals) +This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim), and adds a way to control your time (but mostly space) machine using +[ComputerCraft: Tweaked](https://tweaked.cc) computers using a new "Digital TARDIM Interface" peripheral. -We create a peripheral with two functions: -* isRaining - a main thread function which will return true when it rains -* sendMessage - a function which will send a message to every player +### How to use +* Place the Digital Interface peripheral inside your TARDIM. +* Connect a computer to the peripheral using a wired modem and wrap it with `peripheral.wrap()`. +* Call one of the many methods available to you. -## Supported Versions -- [1.19](https://github.com/Seniorendi/CCTutorial/tree/1.19) -- [1.18](https://github.com/Seniorendi/CCTutorial/tree/1.18) -- [1.16](https://github.com/Seniorendi/CCTutorial/tree/1.16) +All the methods can be found in the [API documentation](https:/google.com), and there are some examples in the [examples folder](/examples) -## Content -* CCBlock - Our normal block, nothing special +### Example usecases +* Monitor to display fuel levels, current location, and other information on a screen in a nice way. +* Way to remotely summon your TARDIM to you, or to a specific location. (Using chunkloaders) +* Refined control of your TARDIM, such as saving and loading locations, or setting a destination in a GUI. +* Visual effects that activate during flight. -* CCPeripheral - Our peripheral, here we register functions and manage connected computers - -* Registration - Normal registration to register our blocks, items and so on - -* CCTutorial - Our main class - -* CCTileEntity - Our tile entity - -* /src/main/resources/META-INF/mods.toml - Here we have our name of the mod, the mod id, the versiond and more. The most importang thing in the file is the modid and the dependencies for addons like cc-tweaked. - -## Pictures - -![Functions](https://intelligence-modding.de/wp-content/uploads/2022/04/Bild_2022-04-06_145710.png) - -![Blocks](https://intelligence-modding.de/wp-content/uploads/2022/04/Bild_2022-04-06_145748.png) +The possibilities are endless, the only limit is your imagination! (And coding skills) \ No newline at end of file diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java index 521d0c1..682cd48 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java @@ -6,6 +6,7 @@ import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.lua.LuaException; +import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; @@ -61,22 +62,75 @@ public class CCPeripheral implements IPeripheral { } - // Get TARDIM's data, which we need for *every* function - // TODO: How do we check if there is no TARDIM?! - public TardimData getTardimData() { - return TardimManager.getFromPos(getTileEntity().getPos()); + /* Get TARDIM's data, which we need for *every* function + * + * We can't do a simple + * TardimManager.getFromPos(getTileEntity().getPos()) + * because if someone attempts to call a method outside a TARDIM, this would create a new TARDIM/Point to the one with ID of 0 (Due to the way TardimSaveHandler.loadTardisData works). + * Which is obviously not what we want. + * + * So instead we use this, and recieve ability to give user a LuaException if they think that fiddling with time devices is funny + * This is mostly a copy of getIDForXZ function */ + public TardimData getTardimData() throws LuaException { + int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); + + int index = 0; + int x = 0; + int y = 0; + int dx = 0; + int dy = 1; + int segment_length = 1; + int segment_passed = 0; + boolean found = false; + long timecheck = System.currentTimeMillis(); + + while(true) { + if (System.currentTimeMillis() - timecheck > 10000L) { + System.out.println("Finding ID from XZ Coordinates is taking too long!"); + break; + } + + if (X >= x * TardimManager.INTERIOR_BOUNDS + && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS + && Z >= y * TardimManager.INTERIOR_BOUNDS + && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { + found = true; + break; + } + + x += dx; + y += dy; + if (++segment_passed == segment_length) { + segment_passed = 0; + int buffer = dy; + dy = -dx; + dx = buffer; + if (buffer == 0) { + ++segment_length; + } + } + + ++index; + } + + // We really don't want to create a new TARDIM if we are not inside one, do we? + if (!found) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + + return TardimManager.getTardim(index); } // Peripheral methods =============================================================== // Get amount of fuel we have (Out of 100) @LuaFunction(mainThread = true) - public final double get_fuel() { + public final double get_fuel() throws LuaException { return getTardimData().getFuel(); } @LuaFunction(mainThread = true) - public final double calculate_fuel() { + public final double calculate_fuel() throws LuaException { TardimData data = getTardimData(); if (data.getTravelLocation() == null) return 0; @@ -96,17 +150,17 @@ public class CCPeripheral implements IPeripheral { // Check whether the TARDIM is locked @LuaFunction(mainThread = true) - public final boolean is_locked() { + public final boolean is_locked() throws LuaException { return getTardimData().isLocked(); } // Check whether the TARDIM is in flight @LuaFunction(mainThread = true) - public final boolean is_in_flight() { return getTardimData().isInFlight(); } + public final boolean is_in_flight() throws LuaException { return getTardimData().isInFlight(); } // Supposedly gets UNIX timestamp of when we entered flight @LuaFunction(mainThread = true) - public final long get_time_entered_flight() { + public final long get_time_entered_flight() throws LuaException { TardimData data = getTardimData(); if (!data.isInFlight()) { return -1; @@ -117,20 +171,20 @@ public class CCPeripheral implements IPeripheral { // Get username of the TARDIM's owner @LuaFunction(mainThread = true) - public final String get_owner_name() { + public final String get_owner_name() throws LuaException { TardimData data = getTardimData(); return data.getOwnerName(); } // Lock/Unlock the TARDIM @LuaFunction(mainThread = true) - public final void set_locked(boolean locked) { + public final void set_locked(boolean locked) throws LuaException { getTardimData().setLocked(locked); } // Returns table with current TARDIM location @LuaFunction(mainThread = true) - public final ObjectLuaTable get_current_location() { + public final ObjectLuaTable get_current_location() throws LuaException { Location loc = getTardimData().getCurrentLocation(); return new ObjectLuaTable(Map.of( "dimension", loc.getLevel().location().toString(), @@ -145,7 +199,7 @@ public class CCPeripheral implements IPeripheral { // Returns flight destination (or null if there isn't one) @LuaFunction(mainThread = true) - public final ObjectLuaTable get_flight_location() { + public final ObjectLuaTable get_flight_location() throws LuaException { TardimData data = getTardimData(); if (data.getTravelLocation() != null) { Location loc = data.getTravelLocation(); From adaeb5f30424f2dccec23b1292cc70860c9bb902 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sat, 28 Jan 2023 23:20:23 +0300 Subject: [PATCH 11/61] Ghost Monument fix --- README.md | 2 +- .../srendi/cctutorial/cctutorial/CCBlock.java | 2 +- .../cctutorial/cctutorial/CCPeripheral.java | 97 +++++++++++++++--- .../blocks/digital_tardim_interface.png | Bin 0 -> 1705 bytes 4 files changed, 87 insertions(+), 14 deletions(-) create mode 100644 src/main/resources/assets/cctutorial/textures/blocks/digital_tardim_interface.png diff --git a/README.md b/README.md index d9de1b9..5f21d7e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/m * Connect a computer to the peripheral using a wired modem and wrap it with `peripheral.wrap()`. * Call one of the many methods available to you. -All the methods can be found in the [API documentation](https:/google.com), and there are some examples in the [examples folder](/examples) +All the methods can be found in the [API documentation](https:/google.com), and there are some examples in the [examples folder](examples) ### Example usecases * Monitor to display fuel levels, current location, and other information on a screen in a nice way. diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java index ac9187b..3c9f315 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java @@ -16,7 +16,7 @@ import javax.annotation.Nullable; public class CCBlock extends Block implements EntityBlock { public CCBlock() { - super(Properties.of(Material.METAL).strength(5, 5)); + super(Properties.of(Material.METAL).strength(5, 5).noOcclusion()); } /** diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java index 682cd48..0c55a14 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java +++ b/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java @@ -1,5 +1,8 @@ package de.srendi.cctutorial.cctutorial; +import com.swdteam.common.command.tardim.CommandTardimBase; +import com.swdteam.common.command.tardim.CommandTravel; +import com.swdteam.common.data.DimensionMapReloadListener; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; @@ -7,6 +10,9 @@ import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.lua.LuaException; import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; @@ -113,24 +119,28 @@ public class CCPeripheral implements IPeripheral { ++index; } - // We really don't want to create a new TARDIM if we are not inside one, do we? + // We really don't want to access a ghost TARDIM, do we? if (!found) { throw new LuaException("Peripheral is not inside a TARDIM"); } + TardimData T = TardimManager.getTardim(index); + if (T.getCurrentLocation() == null || T.getOwnerName() == null) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } - return TardimManager.getTardim(index); + return T; } // Peripheral methods =============================================================== // Get amount of fuel we have (Out of 100) @LuaFunction(mainThread = true) - public final double get_fuel() throws LuaException { + public final double getFuel() throws LuaException { return getTardimData().getFuel(); } @LuaFunction(mainThread = true) - public final double calculate_fuel() throws LuaException { + public final double calculateFuelForJourney() throws LuaException { TardimData data = getTardimData(); if (data.getTravelLocation() == null) return 0; @@ -150,41 +160,40 @@ public class CCPeripheral implements IPeripheral { // Check whether the TARDIM is locked @LuaFunction(mainThread = true) - public final boolean is_locked() throws LuaException { + public final boolean isLocked() throws LuaException { return getTardimData().isLocked(); } // Check whether the TARDIM is in flight @LuaFunction(mainThread = true) - public final boolean is_in_flight() throws LuaException { return getTardimData().isInFlight(); } + public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); } // Supposedly gets UNIX timestamp of when we entered flight @LuaFunction(mainThread = true) - public final long get_time_entered_flight() throws LuaException { + public final long getTimeEnteredFlight() throws LuaException { TardimData data = getTardimData(); if (!data.isInFlight()) { return -1; - // ???? } return data.getTimeEnteredFlight(); } // Get username of the TARDIM's owner @LuaFunction(mainThread = true) - public final String get_owner_name() throws LuaException { + public final String getOwnerName() throws LuaException { TardimData data = getTardimData(); return data.getOwnerName(); } // Lock/Unlock the TARDIM @LuaFunction(mainThread = true) - public final void set_locked(boolean locked) throws LuaException { + public final void setLocked(boolean locked) throws LuaException { getTardimData().setLocked(locked); } // Returns table with current TARDIM location @LuaFunction(mainThread = true) - public final ObjectLuaTable get_current_location() throws LuaException { + public final ObjectLuaTable getCurrentLocation() throws LuaException { Location loc = getTardimData().getCurrentLocation(); return new ObjectLuaTable(Map.of( "dimension", loc.getLevel().location().toString(), @@ -199,7 +208,7 @@ public class CCPeripheral implements IPeripheral { // Returns flight destination (or null if there isn't one) @LuaFunction(mainThread = true) - public final ObjectLuaTable get_flight_location() throws LuaException { + public final ObjectLuaTable getTravelLocation() throws LuaException { TardimData data = getTardimData(); if (data.getTravelLocation() != null) { Location loc = data.getTravelLocation(); @@ -216,4 +225,68 @@ public class CCPeripheral implements IPeripheral { return null; } } + + // Returns table with all companions of this TARDIM's owner + @LuaFunction(mainThread = true) + public final ObjectLuaTable getCompanions() throws LuaException { + TardimData data = getTardimData(); + ObjectLuaTable companions = new ObjectLuaTable(Map.of()); + for (int i = 0; i < data.getCompanions().size(); i++) { + companions.put(i + 1, data.getCompanions().get(i).getUsername()); + } + return companions; + } + + // Supposed to set dimension of the destination + // TODO: This looks like a hazard if someone inserts a dimension that doesn't exist + @LuaFunction(mainThread = true) + public final void setDimension(String dimension) throws LuaException { + TardimData data = getTardimData(); + + + String key = dimension; + dimension = DimensionMapReloadListener.toTitleCase(dimension); + if (TardimManager.DIMENSION_MAP.containsKey(dimension)) { + key = (String)TardimManager.DIMENSION_MAP.get(dimension); + } else { + dimension = dimension.toLowerCase(); + } + + if (!CommandTravel.isValidPath(key)) { + throw new LuaException("Invalid dimension"); + } else { + ResourceKey dim = ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(dimension)); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + data.getTravelLocation().setLocation(dim); + } + } + + // Set X, Y and Z of travel destination + @LuaFunction(mainThread = true) + public final void setTravelLocation(int x, int y, int z) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + data.getTravelLocation().setPosition(x, y, z); + } + + /* + @LuaFunction(mainThread = true) + public final void demat() throws LuaException { + TardimData data = getTardimData(); + data.setInFlight(true); + } + + @LuaFunction(mainThread = true) + public final void remat() throws LuaException { + TardimData data = getTardimData(); + data.setInFlight(false); + } + + */ } diff --git a/src/main/resources/assets/cctutorial/textures/blocks/digital_tardim_interface.png b/src/main/resources/assets/cctutorial/textures/blocks/digital_tardim_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..d430bc6ddaadb8099d1287982091a014fc1e3c84 GIT binary patch literal 1705 zcmV;a23GlrP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1|&&DK~#8N?VI0g zTtyVeXP0JolbUp!wh2jtZ9)`(6a!K*6)E^olz;^C7*IhU6;XV!FDmGR`XKhf;*$mc zfjn3UMM1$-jA$Ba8x;*rt8HSECSCJ;v*PM^_I@|#&d%NJ-o354a6d52oO5Sx?m6>& zW)o8eeSLlTR4S!5Ha4`pxVWgY*{n(?lUg1f9d(uI@9)neZm6%s83zUiTn?C; zno^san>w9HB-Hr$c!>itx0coF+M1(rlg$>&CX)#rlidvsD!sQ+JK*QbTTa>EvP<2Z z`&-8n>JXFrkJJ|(@X_f{bVXF_fVdMEq2WNLVLV%bi8LMt%K%`!lo6W_gE0sPTIy8q zQ~Oo-!)aHb4l#ns_1~{KsV%-f|3e;u&aqMA006^jJd7@9yaa}sHNCl+EgBAF8nC$| zMoU1LypXYm(Q`L-AZAzj=BxAS$BP#oN$K>*r%qd)Lt7MSx>gBdMH9wcrwF~3E*mp=jGsg;!F(($TsVAQ8P?ygAsap%XfM4Rv z%gfpj#Ke?sdFJQmom2rDMWapQflY^6l>Hi9p7>Q=x$=iAKt~!{Q@V`V0{jrq<#I*C zykdaa07xCu9QDnnT@EuZ1~-i8fHel*|Gc z++=|9SO=iir6X)`kShoCm^I5Tz`+hQ?@jAK_-x@)M#n)=^E!a5Jhp;LoB)uYWz9hl zEZ)kvf&|X8mGMKM>i~dmU^;;^V>%1K7;`{->}ZcQNaVm-3pK9;>gwv$jT^I$cB^Td zj)2j4CgXz#Th+VA|Izb5R(D+Fc#ZI^b>>CJa3)^N$8f+uz&5&QT1DtfxK+f-`45YK5Z*6UL zqyk>sVh(sgZ--y~w%~Yf+0B{Crjx|5{Y8TPJDn~}JCNDW5fjLnOh)TWJqTNQ?Eos6 z0YH{r!N$tUit6m_EWQwgt$eWy_-#U*9>ZEbcIL#f{N(&yj;PesefvDu=;+6tzbrVC zQr!nubR6dLvDwd`ah;aDawg~6dP|?@ zE=Oep%a$zs;+6%1B7DiAY7dA32^O%IOd_39Y?h_I&W4%Dx zu$R{@fG=5}+bFK&u#}Yn;2H7&`G>!wK)62_uzAr38Wq$#D@f(k< z>Ln;%kZLM;H_YWr98lkq(xDu2C(3j+2d_cm z=>S`8S5iYT9=EjeMiyz@($X<_H{TDV|1aZ#XMe*v!OYBzBNb?CYpc4C)_Uq}rh^_c z%60)9c*1A|r2X_!^lf~+Je@IRTOOV|!+05j9y4NtgM+$X(!=;8)6>(ctE)@vYSn{U zPMwj)IUnDRRtX2N+tl0wY*2at<9M=6V@(-I9iS}V9rT!SN9Wv1sCCR3 z9v-gBrfsLeI}K_dhOiX?Q?})?-BeY=j&lH-Jq`1U0lFEGI+?DN9p?Z5C&=-@CIhJh zlp`V{A|m{NZ7Y6u?uednYwL)i#x)I=JIIh=TWjw5!%E3I08ZEr?C;C{0y|8^(Cle6 z|It7;Z&Qbwf9b^+w9fB8DeNTT=4lNWKKogT4r%kZ_eh(+(T|9Th=_=Yh=_=Yh}iik z^)F-=&938G(BJ?701jnXNoGw=04e|g00;m8000000Mb*F00000NkvXXu0mjfqSh>V literal 0 HcmV?d00001 From 6846d04a0144c46ba6f3cb6e123c5b3a26b2293c Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sat, 28 Jan 2023 23:21:02 +0300 Subject: [PATCH 12/61] Model fix --- .../block/digital_tardim_interface.json | 214 +++++++++++++++++- 1 file changed, 210 insertions(+), 4 deletions(-) diff --git a/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json b/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json index 6a4d12c..b1e9ef0 100644 --- a/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json +++ b/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json @@ -1,6 +1,212 @@ { - "parent": "block/cube_all", - "textures": { - "all": "cctutorial:blocks/digital_tardim_interface" - } + "credit": "Made with Blockbench", + "parent": "digital_tardim_interface", + "texture_size": [64, 64], + "textures": { + "1": "cctutorial:blocks/digital_tardim_interface" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 14, 16], + "faces": { + "north": {"uv": [4, 4, 8, 7.5], "texture": "#1"}, + "east": {"uv": [0, 4, 4, 7.5], "texture": "#1"}, + "south": {"uv": [12, 4, 16, 7.5], "texture": "#1"}, + "west": {"uv": [8, 4, 12, 7.5], "texture": "#1"}, + "up": {"uv": [8, 4, 4, 0], "texture": "#1"}, + "down": {"uv": [12, 0, 8, 4], "texture": "#1"} + } + }, + { + "from": [5, 14, 5], + "to": [11, 16, 11], + "faces": { + "north": {"uv": [1.5, 9, 3, 9.5], "texture": "#1"}, + "east": {"uv": [0, 9, 1.5, 9.5], "texture": "#1"}, + "south": {"uv": [4.5, 9, 6, 9.5], "texture": "#1"}, + "west": {"uv": [3, 9, 4.5, 9.5], "texture": "#1"}, + "up": {"uv": [3, 9, 1.5, 7.5], "texture": "#1"}, + "down": {"uv": [4.5, 7.5, 3, 9], "texture": "#1"} + } + }, + { + "from": [11, 14, 7], + "to": [14, 16, 9], + "faces": { + "north": {"uv": [12.5, 0.5, 13.25, 1], "texture": "#1"}, + "east": {"uv": [12, 0.5, 12.5, 1], "texture": "#1"}, + "south": {"uv": [13.75, 0.5, 14.5, 1], "texture": "#1"}, + "west": {"uv": [13.25, 0.5, 13.75, 1], "texture": "#1"}, + "up": {"uv": [13.25, 0.5, 12.5, 0], "texture": "#1"}, + "down": {"uv": [14, 0, 13.25, 0.5], "texture": "#1"} + } + }, + { + "from": [12.5, 14, 3.5], + "to": [12.5, 15, 12.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "west": {"uv": [13, 3.75, 15.25, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [3.5, 14, 12.5], + "to": [12.5, 15, 12.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12.5, 3.75, 14.75, 4], "texture": "#1"}, + "west": {"uv": [13.5, 3.75, 15.75, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [3.5, 14, 3.5], + "to": [12.5, 15, 3.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12.5, 3.75, 14.75, 4], "texture": "#1"}, + "west": {"uv": [13.5, 3.75, 15.75, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [3.5, 14, 3.5], + "to": [3.5, 15, 12.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "west": {"uv": [13, 3.75, 15.25, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [2, 14, 7], + "to": [5, 16, 9], + "faces": { + "north": {"uv": [5, 8, 5.75, 8.5], "texture": "#1"}, + "east": {"uv": [4.5, 8, 5, 8.5], "texture": "#1"}, + "south": {"uv": [6.25, 8, 7, 8.5], "texture": "#1"}, + "west": {"uv": [5.75, 8, 6.25, 8.5], "texture": "#1"}, + "up": {"uv": [5.75, 8, 5, 7.5], "texture": "#1"}, + "down": {"uv": [6.5, 7.5, 5.75, 8], "texture": "#1"} + } + }, + { + "from": [7, 14, 2], + "to": [9, 16, 5], + "faces": { + "north": {"uv": [3.25, 12.5, 3.75, 13], "texture": "#1"}, + "east": {"uv": [2.5, 12.5, 3.25, 13], "texture": "#1"}, + "south": {"uv": [4.5, 12.5, 5, 13], "texture": "#1"}, + "west": {"uv": [3.75, 12.5, 4.5, 13], "texture": "#1"}, + "up": {"uv": [3.75, 12.5, 3.25, 11.75], "texture": "#1"}, + "down": {"uv": [4.25, 11.75, 3.75, 12.5], "texture": "#1"} + } + }, + { + "from": [7, 14, 11], + "to": [9, 16, 14], + "faces": { + "north": {"uv": [0.75, 12.5, 1.25, 13], "texture": "#1"}, + "east": {"uv": [0, 12.5, 0.75, 13], "texture": "#1"}, + "south": {"uv": [2, 12.5, 2.5, 13], "texture": "#1"}, + "west": {"uv": [1.25, 12.5, 2, 13], "texture": "#1"}, + "up": {"uv": [1.25, 12.5, 0.75, 11.75], "texture": "#1"}, + "down": {"uv": [1.75, 11.75, 1.25, 12.5], "texture": "#1"} + } + }, + { + "from": [6, 13, -2], + "to": [10, 17, 2], + "faces": { + "north": {"uv": [10, 9.5, 11, 10.5], "texture": "#1"}, + "east": {"uv": [9, 9.5, 10, 10.5], "texture": "#1"}, + "south": {"uv": [12, 9.5, 13, 10.5], "texture": "#1"}, + "west": {"uv": [11, 9.5, 12, 10.5], "texture": "#1"}, + "up": {"uv": [11, 9.5, 10, 8.5], "texture": "#1"}, + "down": {"uv": [12, 8.5, 11, 9.5], "texture": "#1"} + } + }, + { + "from": [6, 13, 14], + "to": [10, 17, 18], + "faces": { + "north": {"uv": [7, 8.5, 8, 9.5], "texture": "#1"}, + "east": {"uv": [6, 8.5, 7, 9.5], "texture": "#1"}, + "south": {"uv": [9, 8.5, 10, 9.5], "texture": "#1"}, + "west": {"uv": [8, 8.5, 9, 9.5], "texture": "#1"}, + "up": {"uv": [8, 8.5, 7, 7.5], "texture": "#1"}, + "down": {"uv": [9, 7.5, 8, 8.5], "texture": "#1"} + } + }, + { + "from": [-2, 13, 6], + "to": [2, 17, 10], + "faces": { + "north": {"uv": [1, 3, 2, 4], "texture": "#1"}, + "east": {"uv": [0, 3, 1, 4], "texture": "#1"}, + "south": {"uv": [3, 3, 4, 4], "texture": "#1"}, + "west": {"uv": [2, 3, 3, 4], "texture": "#1"}, + "up": {"uv": [2, 3, 1, 2], "texture": "#1"}, + "down": {"uv": [3, 2, 2, 3], "texture": "#1"} + } + }, + { + "from": [14, 13, 6], + "to": [18, 17, 10], + "faces": { + "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, + "east": {"uv": [0, 1, 1, 2], "texture": "#1"}, + "south": {"uv": [3, 1, 4, 2], "texture": "#1"}, + "west": {"uv": [2, 1, 3, 2], "texture": "#1"}, + "up": {"uv": [2, 1, 1, 0], "texture": "#1"}, + "down": {"uv": [3, 0, 2, 1], "texture": "#1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, -1.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "thirdperson_lefthand": { + "translation": [0, -1.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_righthand": { + "translation": [-1.25, 0, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "translation": [3.75, -1.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "translation": [0, -0.5, 0], + "scale": [0.35, 0.35, 0.35] + }, + "gui": { + "rotation": [33, 45, 0], + "scale": [0.6, 0.6, 0.6] + }, + "head": { + "translation": [0, 0.75, 0], + "scale": [1.1, 1.1, 1.1] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, 4.25] + } + } } \ No newline at end of file From 79ad4777b374a4348ec474f01af3be5cebe1edcd Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sun, 29 Jan 2023 00:15:31 +0300 Subject: [PATCH 13/61] You've redecorated. I like it! --- build.gradle | 14 +++++++------- settings.gradle | 2 +- .../tardim_ic/DigitalInterfaceBlock.java} | 6 +++--- .../tardim_ic/DigitalInterfacePeripheral.java} | 12 +++++------- .../tardim_ic/DigitalInterfaceTileEntity.java} | 8 ++++---- .../a71/tardim_ic/tardim_ic}/Registration.java | 12 ++++++------ .../a71/tardim_ic/tardim_ic/TardimInControl.java} | 10 +++++----- src/main/resources/META-INF/mods.toml | 6 +++--- .../blockstates/digital_tardim_interface.json | 7 ------- .../resources/assets/cctutorial/lang/en_uk.json | 3 --- .../resources/assets/cctutorial/lang/en_us.json | 3 --- .../resources/assets/cctutorial/lang/rpr.json | 3 --- .../models/item/digital_tardim_interface.json | 3 --- .../blockstates/digital_tardim_interface.json | 7 +++++++ .../resources/assets/tardim_ic/lang/en_uk.json | 3 +++ .../resources/assets/tardim_ic/lang/en_us.json | 3 +++ src/main/resources/assets/tardim_ic/lang/rpr.json | 3 +++ .../models/block/digital_tardim_interface.json | 2 +- .../models/item/digital_tardim_interface.json | 3 +++ .../textures/blocks/digital_tardim_interface.png | Bin src/main/resources/pack.mcmeta | 2 +- 21 files changed, 55 insertions(+), 57 deletions(-) rename src/main/java/{de/srendi/cctutorial/cctutorial/CCBlock.java => su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java} (86%) rename src/main/java/{de/srendi/cctutorial/cctutorial/CCPeripheral.java => su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java} (96%) rename src/main/java/{de/srendi/cctutorial/cctutorial/CCTileEntity.java => su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java} (83%) rename src/main/java/{de/srendi/cctutorial/cctutorial => su/a71/tardim_ic/tardim_ic}/Registration.java (75%) rename src/main/java/{de/srendi/cctutorial/cctutorial/CCtutorial.java => su/a71/tardim_ic/tardim_ic/TardimInControl.java} (70%) delete mode 100644 src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json delete mode 100644 src/main/resources/assets/cctutorial/lang/en_uk.json delete mode 100644 src/main/resources/assets/cctutorial/lang/en_us.json delete mode 100644 src/main/resources/assets/cctutorial/lang/rpr.json delete mode 100644 src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json create mode 100644 src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json create mode 100644 src/main/resources/assets/tardim_ic/lang/en_uk.json create mode 100644 src/main/resources/assets/tardim_ic/lang/en_us.json create mode 100644 src/main/resources/assets/tardim_ic/lang/rpr.json rename src/main/resources/assets/{cctutorial => tardim_ic}/models/block/digital_tardim_interface.json (99%) create mode 100644 src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json rename src/main/resources/assets/{cctutorial => tardim_ic}/textures/blocks/digital_tardim_interface.png (100%) diff --git a/build.gradle b/build.gradle index f310d32..3f614a2 100644 --- a/build.gradle +++ b/build.gradle @@ -10,9 +10,9 @@ buildscript { apply plugin: 'net.minecraftforge.gradle' -group = 'de.srendi.cctutorial' +group = 'su.a71.tardim_ic' version = '1.0' -archivesBaseName = 'cctutorial' +archivesBaseName = 'tardim_ic' java.toolchain.languageVersion = JavaLanguageVersion.of(17) @@ -66,10 +66,10 @@ minecraft { property 'forge.logging.console.level', 'debug' // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', 'cctutorial', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + args '--mod', 'tardim_ic', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') mods { - cctutorial { + tardim_ic { source sourceSets.main } } @@ -101,12 +101,12 @@ dependencies { jar { manifest { attributes([ - "Specification-Title" : "cctutorial", - //"Specification-Vendor": "cctutorial authors", + "Specification-Title" : "tardim_ic", + //"Specification-Vendor": "tardim_ic authors", "Specification-Version" : "1", // We are version 1 of ourselves "Implementation-Title" : project.name, "Implementation-Version" : project.version, - //"Implementation-Vendor": "cctutorial authors", + //"Implementation-Vendor": "tardim_ic authors", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } diff --git a/settings.gradle b/settings.gradle index a88046d..d13a81c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'cctutorial' +rootProject.name = 'tardim_ic' diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java similarity index 86% rename from src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java index 3c9f315..7aa6edc 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCBlock.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java @@ -1,4 +1,4 @@ -package de.srendi.cctutorial.cctutorial; +package su.a71.tardim_ic.tardim_ic; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.Block; @@ -13,9 +13,9 @@ import javax.annotation.Nullable; /** * This is our block. To tell minecraft that this block has a block entity, we need to implement {@link EntityBlock} */ -public class CCBlock extends Block implements EntityBlock { +public class DigitalInterfaceBlock extends Block implements EntityBlock { - public CCBlock() { + public DigitalInterfaceBlock() { super(Properties.of(Material.METAL).strength(5, 5).noOcclusion()); } diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java similarity index 96% rename from src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java index 0c55a14..6ff7e5f 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCPeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java @@ -1,6 +1,5 @@ -package de.srendi.cctutorial.cctutorial; +package su.a71.tardim_ic.tardim_ic; -import com.swdteam.common.command.tardim.CommandTardimBase; import com.swdteam.common.command.tardim.CommandTravel; import com.swdteam.common.data.DimensionMapReloadListener; import dan200.computercraft.api.lua.LuaFunction; @@ -9,7 +8,6 @@ import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.lua.LuaException; -import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -33,15 +31,15 @@ import java.util.Map; /** * Our peripheral class, this is the class where we will register functions for our block. */ -public class CCPeripheral implements IPeripheral { +public class DigitalInterfacePeripheral implements IPeripheral { private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral - private final CCTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates + private final DigitalInterfaceTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates /** * @param tileEntity the tile entity of this peripheral */ - public CCPeripheral(CCTileEntity tileEntity) { + public DigitalInterfacePeripheral(DigitalInterfaceTileEntity tileEntity) { this.tileEntity = tileEntity; } @@ -63,7 +61,7 @@ public class CCPeripheral implements IPeripheral { @Override public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } - public CCTileEntity getTileEntity() { + public DigitalInterfaceTileEntity getTileEntity() { return tileEntity; } diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java similarity index 83% rename from src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java index 95bf197..43b67cb 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCTileEntity.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java @@ -1,4 +1,4 @@ -package de.srendi.cctutorial.cctutorial; +package su.a71.tardim_ic.tardim_ic; import dan200.computercraft.api.peripheral.IPeripheral; import net.minecraft.core.BlockPos; @@ -11,16 +11,16 @@ import org.jetbrains.annotations.NotNull; import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; -public class CCTileEntity extends BlockEntity { +public class DigitalInterfaceTileEntity extends BlockEntity { - public CCTileEntity(BlockPos pos, BlockState state) { + public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { super(Registration.CC_TILEENTITY.get(), pos, state); } /** * Our peripheral, we create a new peripheral for each new tile entity */ - protected CCPeripheral peripheral = new CCPeripheral(this); + protected DigitalInterfacePeripheral peripheral = new DigitalInterfacePeripheral(this); private LazyOptional peripheralCap; public BlockPos getPos() { return this.worldPosition; diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java similarity index 75% rename from src/main/java/de/srendi/cctutorial/cctutorial/Registration.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index d323c89..791ae93 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/Registration.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,4 +1,4 @@ -package de.srendi.cctutorial.cctutorial; +package su.a71.tardim_ic.tardim_ic; import com.google.common.collect.Sets; import net.minecraft.world.item.BlockItem; @@ -16,12 +16,12 @@ import java.util.function.Supplier; public class Registration { - public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, CCtutorial.MODID); - public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, CCtutorial.MODID); - public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, CCtutorial.MODID); + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, TardimInControl.MODID); + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TardimInControl.MODID); + public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TardimInControl.MODID); // Blocks - public static final RegistryObject CC_BLOCK = register("digital_tardim_interface", CCBlock::new); + public static final RegistryObject CC_BLOCK = register("digital_tardim_interface", DigitalInterfaceBlock::new); private static RegistryObject register(String name, Supplier block) { RegistryObject registryObject = BLOCKS.register(name, block); @@ -30,7 +30,7 @@ public class Registration { } // Tile Entities - public static final RegistryObject> CC_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(CCTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); + public static final RegistryObject> CC_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); // Register our stuff public static void register() { diff --git a/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java b/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java similarity index 70% rename from src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java index c8854b0..f031696 100644 --- a/src/main/java/de/srendi/cctutorial/cctutorial/CCtutorial.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java @@ -1,16 +1,16 @@ -package de.srendi.cctutorial.cctutorial; +package su.a71.tardim_ic.tardim_ic; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; // The value here should match an entry in the META-INF/mods.toml file -@Mod("cctutorial") -public class CCtutorial { +@Mod("tardim_ic") +public class TardimInControl { // Our mod id - public static final String MODID = "cctutorial"; + public static final String MODID = "tardim_ic"; - public CCtutorial() { + public TardimInControl() { Registration.register(); // Register ourselves for server and other game events we are interested in. Currently, we do not use any events MinecraftForge.EVENT_BUS.register(this); diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index c4ef532..bddd714 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -4,13 +4,13 @@ loaderVersion = "[36,)" #mandatory This is typically bumped every Minecraft vers license = "All rights reserved" [[mods]] #mandatory # The modid of the mod -modId = "cctutorial" #mandatory +modId = "tardim_ic" #mandatory version = "1.0" #mandatory # A display name for the mod -displayName = "CCtutorial" #mandatory +displayName = "TARDIM: In Control" #mandatory # The description text for the mod (multi line!) (#mandatory) description = ''' - A mod to show you, how the magic of cc works. + All of time and space, now automated. Control your TARDIM using ComputerCraft: Tweaked. ''' # A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. [[dependencies.cctutorial]] #optional diff --git a/src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json b/src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json deleted file mode 100644 index c8dc74e..0000000 --- a/src/main/resources/assets/cctutorial/blockstates/digital_tardim_interface.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "cctutorial:block/digital_tardim_interface" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/lang/en_uk.json b/src/main/resources/assets/cctutorial/lang/en_uk.json deleted file mode 100644 index 9dd28c0..0000000 --- a/src/main/resources/assets/cctutorial/lang/en_uk.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "block.cctutorial.digital_tardim_interface": "Digital TARDIM Interface" -} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/lang/en_us.json b/src/main/resources/assets/cctutorial/lang/en_us.json deleted file mode 100644 index 9dd28c0..0000000 --- a/src/main/resources/assets/cctutorial/lang/en_us.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "block.cctutorial.digital_tardim_interface": "Digital TARDIM Interface" -} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/lang/rpr.json b/src/main/resources/assets/cctutorial/lang/rpr.json deleted file mode 100644 index ceea164..0000000 --- a/src/main/resources/assets/cctutorial/lang/rpr.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "block.cctutorial.digital_tardim_interface": "Циферный Интерфейсъ Хрономашины" -} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json b/src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json deleted file mode 100644 index 4a0226c..0000000 --- a/src/main/resources/assets/cctutorial/models/item/digital_tardim_interface.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "cctutorial:block/digital_tardim_interface" -} \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json b/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json new file mode 100644 index 0000000..e396b0d --- /dev/null +++ b/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tardim_ic:block/digital_tardim_interface" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/en_uk.json b/src/main/resources/assets/tardim_ic/lang/en_uk.json new file mode 100644 index 0000000..18e60e2 --- /dev/null +++ b/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -0,0 +1,3 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface" +} \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/en_us.json b/src/main/resources/assets/tardim_ic/lang/en_us.json new file mode 100644 index 0000000..18e60e2 --- /dev/null +++ b/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -0,0 +1,3 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface" +} \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/rpr.json b/src/main/resources/assets/tardim_ic/lang/rpr.json new file mode 100644 index 0000000..1b5f525 --- /dev/null +++ b/src/main/resources/assets/tardim_ic/lang/rpr.json @@ -0,0 +1,3 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки" +} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json b/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json similarity index 99% rename from src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json rename to src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json index b1e9ef0..68e78fa 100644 --- a/src/main/resources/assets/cctutorial/models/block/digital_tardim_interface.json +++ b/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json @@ -3,7 +3,7 @@ "parent": "digital_tardim_interface", "texture_size": [64, 64], "textures": { - "1": "cctutorial:blocks/digital_tardim_interface" + "1": "tardim_ic:blocks/digital_tardim_interface" }, "elements": [ { diff --git a/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json b/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json new file mode 100644 index 0000000..17a58c0 --- /dev/null +++ b/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json @@ -0,0 +1,3 @@ +{ + "parent": "tardim_ic:block/digital_tardim_interface" +} \ No newline at end of file diff --git a/src/main/resources/assets/cctutorial/textures/blocks/digital_tardim_interface.png b/src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png similarity index 100% rename from src/main/resources/assets/cctutorial/textures/blocks/digital_tardim_interface.png rename to src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 8a4c6f7..20f2fe7 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { - "description": "cctutorial resources", + "description": "TARDIM: In Control resources", "pack_format": 6, "_comment": "A pack_format of 6 requires json lang files and some texture changes from 1.16.2. Note: we require v6 pack meta for all mods." } From 0f377893d7309207913ae5956c1565c12b898eff Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sun, 29 Jan 2023 19:17:29 +0300 Subject: [PATCH 14/61] JavaDoc is an illusion, and pain is the magician --- README.md | 20 +- examples/basic_monitor.lua | 81 ++++++++ .../tardim_ic/DigitalInterfaceBlock.java | 2 +- .../tardim_ic/DigitalInterfacePeripheral.java | 182 ++++++++++++++---- .../tardim_ic/DigitalInterfaceTileEntity.java | 2 +- .../a71/tardim_ic/tardim_ic/Registration.java | 4 +- src/main/resources/assets/tardim_ic/icon.png | Bin 0 -> 74055 bytes 7 files changed, 244 insertions(+), 47 deletions(-) create mode 100644 examples/basic_monitor.lua create mode 100644 src/main/resources/assets/tardim_ic/icon.png diff --git a/README.md b/README.md index 5f21d7e..1cc2510 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,25 @@ This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/m All the methods can be found in the [API documentation](https:/google.com), and there are some examples in the [examples folder](examples) ### Example usecases -* Monitor to display fuel levels, current location, and other information on a screen in a nice way. +* Monitor fuel levels, current location, and other information on a screen in a nice way. * Way to remotely summon your TARDIM to you, or to a specific location. (Using chunkloaders) * Refined control of your TARDIM, such as saving and loading locations, or setting a destination in a GUI. * Visual effects that activate during flight. -The possibilities are endless, the only limit is your imagination! (And coding skills) \ No newline at end of file +The possibilities are endless, the only limit is your imagination! (And coding skills) + +### FAQ + +Is this for Fabric or Forge? +: As a Fabric player who recognises Forge's large playerbase, I intend to support both major modloaders. +However a version for one of them could be released a bit later than the other one's. + +Can I use this in my modpack? +: Sure, as long as you credit me and link to this page. + +Will there be a 1.19.3 version and beyond? +: Yes, I will try my best to update to later versions as soon as ComputerCraft: Tweaked and TARDIM receive stable versions for them. + +Will you support earlier versions? +: I am not very familiar with those and therefore cannot make versions for before 1.19, +however if there will be a lot of people asking for it I could try sometime in the future. But no gurantees. \ No newline at end of file diff --git a/examples/basic_monitor.lua b/examples/basic_monitor.lua new file mode 100644 index 0000000..bd9659d --- /dev/null +++ b/examples/basic_monitor.lua @@ -0,0 +1,81 @@ +local tardim = peripheral.find("digital_tardim_interface") +local screen = peripheral.find("monitor") + +-- This requires Wojbie's bigfont +-- pastebin get 3LfWxRWh bigfont +local bigfont = require("bigfont") + +screen.clear() +screen.setCursorBlink(false) +screen.setTextScale(0.5) + +local owner = tardim.getOwnerName() + +screen.setCursorPos(1, 1) +bigfont.writeOn(screen, 1, owner .. "'s TARDIM", 2, 2) + +while true do + local fuel = tardim.getFuel() + local in_flight = tardim.isInFlight() + local loca_curr = tardim.getCurrentLocation() + local loca_dest = tardim.getTravelLocation() + screen.setCursorPos(1, 6) + + bigfont.writeOn(screen, 1, "Fuel", 2, 6) + + fuel = math.floor(fuel) + screen.write("") + local fuel_bar = "[" + for i = 1, 50 do + if i * 2 <= fuel then + fuel_bar = fuel_bar .. "#" + else + fuel_bar = fuel_bar .. "." + end + end + fuel_bar = fuel_bar .. "]" + + screen.setCursorPos(14, 6) + screen.write(fuel_bar) + screen.setCursorPos(14, 7) + screen.write(fuel_bar .. " " .. fuel .. "%") + screen.setCursorPos(14, 8) + screen.write(fuel_bar) + + bigfont.writeOn(screen, 1, "Current position", 2, 10) + screen.setCursorPos(50, 10) + screen.write("X: " .. loca_curr.pos.x) + screen.setCursorPos(50, 11) + screen.write("Y: " .. loca_curr.pos.y) + screen.setCursorPos(50, 12) + screen.write("Z: " .. loca_curr.pos.z) + screen.setCursorPos(50, 13) + screen.write("Dim: " .. loca_curr.dimension) + + bigfont.writeOn(screen, 1, "Destination", 2, 15) + screen.setCursorPos(50, 15) + screen.write("X: " .. loca_dest.pos.x) + screen.setCursorPos(50, 16) + screen.write("Y: " .. loca_dest.pos.y) + screen.setCursorPos(50, 17) + screen.write("Z: " .. loca_dest.pos.z) + screen.setCursorPos(50, 18) + screen.write("Dim: " .. loca_dest.dimension) + + + + + screen.setCursorPos(1, 20) + screen.clearLine() + screen.setCursorPos(1, 21) + screen.clearLine() + screen.setCursorPos(1, 22) + screen.clearLine() + if in_flight then + bigfont.blitOn(screen, 1, "In Flight", "000000000", "ddddddddd", 2, 20) + else + bigfont.blitOn(screen, 1, "Not In Flight", "0000000000000", "eeeeeeeeeeeee", 2, 20) + end + + sleep(0.1) +end \ No newline at end of file diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java index 7aa6edc..2f3f298 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java @@ -27,6 +27,6 @@ public class DigitalInterfaceBlock extends Block implements EntityBlock { @Nullable @Override public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return Registration.CC_TILEENTITY.get().create(pos, state); + return Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get().create(pos, state); } } diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java index 6ff7e5f..0f3bc8d 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java @@ -8,11 +8,15 @@ import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.lua.LuaException; +import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.Level; - +import net.minecraft.server.players.PlayerList; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.server.ServerLifecycleHooks; // TODO: Fabric and Forge diffirence? (Bottom: Fabric) import com.swdteam.tardim.TardimData; @@ -24,13 +28,9 @@ import com.swdteam.tardim.TardimData.Location; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; + -/** - * Our peripheral class, this is the class where we will register functions for our block. - */ public class DigitalInterfacePeripheral implements IPeripheral { private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral @@ -52,12 +52,9 @@ public class DigitalInterfacePeripheral implements IPeripheral { @Override public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } - // Called when a computer disconnects from the peripheral + // Called when a computer connects/disconnects from the peripheral @Override public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } - - // Called when a computer connects to the peripheral - // TODO: add a sound effect? Like a simple TARDIS beep? @Override public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } @@ -66,15 +63,21 @@ public class DigitalInterfacePeripheral implements IPeripheral { } - /* Get TARDIM's data, which we need for *every* function - * - * We can't do a simple - * TardimManager.getFromPos(getTileEntity().getPos()) - * because if someone attempts to call a method outside a TARDIM, this would create a new TARDIM/Point to the one with ID of 0 (Due to the way TardimSaveHandler.loadTardisData works). - * Which is obviously not what we want. - * - * So instead we use this, and recieve ability to give user a LuaException if they think that fiddling with time devices is funny - * This is mostly a copy of getIDForXZ function */ + /** + * Get TARDIM's data, which we need for *every* function + *

+ * We can't do a simple + * TardimManager.getFromPos(getTileEntity().getPos()) + *

+ * because if someone attempts to call a method outside a TARDIM, this would create a new TARDIM/Point to the one with ID of 0 (Due to the way TardimSaveHandler.loadTardisData works). + * Which is obviously not what we want. + *

+ * So instead we use this, and get the ability to give user a LuaException if they think that fiddling with time is funny + * This is mostly a copy of getIDForXZ function with some added checks + * + * @return TardimData of the TARDIM that the peripheral is in + * @throws LuaException if the peripheral is not in a TARDIM + * */ public TardimData getTardimData() throws LuaException { int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); @@ -131,12 +134,20 @@ public class DigitalInterfacePeripheral implements IPeripheral { // Peripheral methods =============================================================== - // Get amount of fuel we have (Out of 100) + /** + * Return how much fuel is left in the TARDIM + * + * @return Fuel left (Out of 100) + */ @LuaFunction(mainThread = true) public final double getFuel() throws LuaException { return getTardimData().getFuel(); } + /** + * Get how much fuel it would take to travel to the destination + * @return Amount of fuel needed (Out of 100) + */ @LuaFunction(mainThread = true) public final double calculateFuelForJourney() throws LuaException { TardimData data = getTardimData(); @@ -153,20 +164,34 @@ public class DigitalInterfacePeripheral implements IPeripheral { fuel = 10.0; } - return 100; //data.calculateFuelForJourney(((Level) curr.getLevel()), dest.getLevel().location(), curr.getPos(), dest.getPos()); + Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ()); + Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ()); + fuel += posA.distanceTo(posB) / 100.0; + if (fuel > 100.0) fuel = 100.0; + + return fuel; } - // Check whether the TARDIM is locked + /** + * Check whether the TARDIM is locked + * @return true if locked, false if not + */ @LuaFunction(mainThread = true) public final boolean isLocked() throws LuaException { return getTardimData().isLocked(); } - // Check whether the TARDIM is in flight + /** + * Check whether the TARDIM is in flight + * @return true if in flight, false if not + */ @LuaFunction(mainThread = true) public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); } - // Supposedly gets UNIX timestamp of when we entered flight + /** + * Supposedly gets UNIX timestamp of when we entered flight + * @return UNIX timestamp if in flight, -1 if not + */ @LuaFunction(mainThread = true) public final long getTimeEnteredFlight() throws LuaException { TardimData data = getTardimData(); @@ -176,20 +201,34 @@ public class DigitalInterfacePeripheral implements IPeripheral { return data.getTimeEnteredFlight(); } - // Get username of the TARDIM's owner + /** + * Get username of the TARDIM's owner + * @return String of the owner's username + */ @LuaFunction(mainThread = true) public final String getOwnerName() throws LuaException { TardimData data = getTardimData(); return data.getOwnerName(); } - // Lock/Unlock the TARDIM + /** + * Lock/unlock the TARDIM + * @param locked true to lock, false to unlock + */ @LuaFunction(mainThread = true) public final void setLocked(boolean locked) throws LuaException { getTardimData().setLocked(locked); } - // Returns table with current TARDIM location + /** + * Get the current location of the TARDIM + * @return ObjectLuaTable of the current location with the following keys: + *

    + *
  • dimension - String of the dimension
  • + *
  • pos - table with the keys x, y, z that hold numbers
  • + *
  • facing - String of the facing
  • + *
+ */ @LuaFunction(mainThread = true) public final ObjectLuaTable getCurrentLocation() throws LuaException { Location loc = getTardimData().getCurrentLocation(); @@ -204,7 +243,17 @@ public class DigitalInterfacePeripheral implements IPeripheral { )); } - // Returns flight destination (or null if there isn't one) + /** + * Get the current location of the TARDIM + * @return if there is no destination returns null. + *

+ * Otherwise, ObjectLuaTable of the current location with the following keys: + *

    + *
  • dimension - String of the dimension
  • + *
  • pos - table with the keys x, y, z that hold numbers
  • + *
  • facing - String of the facing
  • + *
+ */ @LuaFunction(mainThread = true) public final ObjectLuaTable getTravelLocation() throws LuaException { TardimData data = getTardimData(); @@ -224,7 +273,10 @@ public class DigitalInterfacePeripheral implements IPeripheral { } } - // Returns table with all companions of this TARDIM's owner + /** + * Get list of the TARDIM owner's companions + * @return ObjectLuaTable containing the usernames of the companions + */ @LuaFunction(mainThread = true) public final ObjectLuaTable getCompanions() throws LuaException { TardimData data = getTardimData(); @@ -235,13 +287,18 @@ public class DigitalInterfacePeripheral implements IPeripheral { return companions; } - // Supposed to set dimension of the destination - // TODO: This looks like a hazard if someone inserts a dimension that doesn't exist + /** + * Set dimension for the TARDIM to travel to + *

+ * This is a serious hazard right now due to the fact that I am unable to check if the dimension is valid. + *

+ * TODO: If invalid dimension is given, the TARDIM is unable to land until the dimension is changed. Add proper checks. + * @param dimension String of the dimension e.g. "minecraft:overworld" + */ @LuaFunction(mainThread = true) public final void setDimension(String dimension) throws LuaException { TardimData data = getTardimData(); - String key = dimension; dimension = DimensionMapReloadListener.toTitleCase(dimension); if (TardimManager.DIMENSION_MAP.containsKey(dimension)) { @@ -262,7 +319,12 @@ public class DigitalInterfacePeripheral implements IPeripheral { } } - // Set X, Y and Z of travel destination + /** + * Set the destination's coordinates + * @param x X coordinate + * @param y Y coordinate + * @param z Z coordinate + */ @LuaFunction(mainThread = true) public final void setTravelLocation(int x, int y, int z) throws LuaException { TardimData data = getTardimData(); @@ -273,18 +335,56 @@ public class DigitalInterfacePeripheral implements IPeripheral { data.getTravelLocation().setPosition(x, y, z); } - /* + + /** + * Set destination to the TARDIM's owner's home (Must be online) + */ @LuaFunction(mainThread = true) - public final void demat() throws LuaException { + public final void home() throws LuaException { TardimData data = getTardimData(); - data.setInFlight(true); + + UUID uuid = data.getOwner(); + String username = data.getOwnerName(); + if (uuid == null || username == null) { + throw new LuaException("TARDIM has no owner"); + } + + PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + ServerPlayer player = playerList.getPlayer(uuid); + if (player == null) { + throw new LuaException("TARDIM owner is not online"); + } + + ResourceKey dim = player.getRespawnDimension(); + BlockPos pos = player.getRespawnPosition(); + if (pos == null) { + throw new LuaException("TARDIM owner has no home"); + } + + setDimension(dim.location().toString()); + setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); } + /** + * Set destination for a player's location (Player must be online) + * @param username - String of the username of the player + */ @LuaFunction(mainThread = true) - public final void remat() throws LuaException { - TardimData data = getTardimData(); - data.setInFlight(false); + public final void locatePlayer(String username) throws LuaException { + PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + ServerPlayer player = playerList.getPlayerByName(username); + if (player == null) { + throw new LuaException("Player not found"); + } + + ResourceKey dim = player.getCommandSenderWorld().dimension(); + BlockPos pos = player.blockPosition(); + + setDimension(dim.location().toString()); + setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); } - */ + // I would love to add this, however it requires TARDIM source code. + // TODO: If I am ever part of the TARDIM team, I will add this. + // TODO: locateBiome, demat, remat, setFacing, toggleFacing } diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java index 43b67cb..cbbc246 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java @@ -14,7 +14,7 @@ import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; public class DigitalInterfaceTileEntity extends BlockEntity { public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { - super(Registration.CC_TILEENTITY.get(), pos, state); + super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get(), pos, state); } /** diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 791ae93..878a533 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -21,7 +21,7 @@ public class Registration { public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TardimInControl.MODID); // Blocks - public static final RegistryObject CC_BLOCK = register("digital_tardim_interface", DigitalInterfaceBlock::new); + public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); private static RegistryObject register(String name, Supplier block) { RegistryObject registryObject = BLOCKS.register(name, block); @@ -30,7 +30,7 @@ public class Registration { } // Tile Entities - public static final RegistryObject> CC_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(CC_BLOCK.get()), null)); + public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); // Register our stuff public static void register() { diff --git a/src/main/resources/assets/tardim_ic/icon.png b/src/main/resources/assets/tardim_ic/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..87a18cf4f8ffad2aaf26e4d5ade5cf9c71955d97 GIT binary patch literal 74055 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

&IIJ>xYh|NS(21R`O(-VhguK5uaXP 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 literal 0 HcmV?d00001 From 16ccb99f60c39d0f0aee079d473bc7912178e31c Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sun, 29 Jan 2023 20:54:25 +0300 Subject: [PATCH 15/61] [That gif of a dalek spinning] --- .../tardim_ic/DigitalInterfacePeripheral.java | 78 +++++++++++++++++++ .../block/digital_tardim_interface.json | 3 +- 2 files changed, 80 insertions(+), 1 deletion(-) diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java index 0f3bc8d..ca05995 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java @@ -384,6 +384,84 @@ public class DigitalInterfacePeripheral implements IPeripheral { setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); } + /** + * Get the rotation of the TARDIM's door + * @return String of the door rotation ("north", "south", "east", "west") + */ + @LuaFunction(mainThread = true) + public final String getDoorRotation() throws LuaException { + TardimData data = getTardimData(); + double rotation = data.getDoorRotation(); + if (rotation == 0) { + return "north"; + } else if (rotation == 90) { + return "east"; + } else if (rotation == 180) { + return "south"; + } else if (rotation == 270) { + return "west"; + } else { + throw new LuaException("Invalid door rotation"); + } + } + + /** + * Set the rotation of the TARDIM's door + * @param rotation String of the door rotation ("north", "south", "east", "west") + */ + @LuaFunction + public final void setDoorRotation(String rotation) throws LuaException { + TardimData data = getTardimData(); + switch (rotation) { + case "north" -> data.setDoorRotation(0); + case "east" -> data.setDoorRotation(90); + case "south" -> data.setDoorRotation(180); + case "west" -> data.setDoorRotation(270); + default -> throw new LuaException("Invalid door rotation"); + } + } + + /** + * Toggle the rotation of the TARDIM's door (north -> east -> south -> west -> north) + */ + @LuaFunction + public final void toggleDoorRotation() throws LuaException { + TardimData data = getTardimData(); + double rotation = data.getDoorRotation(); + if (rotation == 0) { + data.setDoorRotation(90); + } else if (rotation == 90) { + data.setDoorRotation(180); + } else if (rotation == 180) { + data.setDoorRotation(270); + } else if (rotation == 270) { + data.setDoorRotation(0); + } else { + throw new LuaException("Invalid door rotation"); + } + } + + /** + * Add a number to the destination's coordinates + * @param axis String of the axis ("x", "y", "z") + * @param amount Number to add to the axis + */ + @LuaFunction + public final void coordAdd(String axis, int amount) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + Location location = data.getTravelLocation(); + switch (axis) { + case "x" -> location.addPosition(amount, 0, 0); + case "y" -> location.addPosition(0, amount, 0); + case "z" -> location.addPosition(0, 0, amount); + default -> throw new LuaException("Invalid axis"); + } + } + // I would love to add this, however it requires TARDIM source code. // TODO: If I am ever part of the TARDIM team, I will add this. // TODO: locateBiome, demat, remat, setFacing, toggleFacing diff --git a/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json b/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json index 68e78fa..2abd56f 100644 --- a/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json +++ b/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json @@ -208,5 +208,6 @@ "rotation": [-90, 0, 0], "translation": [0, 0, 4.25] } - } + }, + "particles": "block/deepslate_brick" } \ No newline at end of file From 3912bfb16084f218e09a5540cc4c7562aa078866 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sun, 29 Jan 2023 21:15:38 +0300 Subject: [PATCH 16/61] Never trust a spinning Dalek, they will give you wrong methods! --- .../tardim_ic/DigitalInterfacePeripheral.java | 66 +++++++++++-------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java index ca05995..b9a86a9 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java @@ -9,6 +9,7 @@ import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.lua.LuaException; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -391,17 +392,23 @@ public class DigitalInterfacePeripheral implements IPeripheral { @LuaFunction(mainThread = true) public final String getDoorRotation() throws LuaException { TardimData data = getTardimData(); - double rotation = data.getDoorRotation(); - if (rotation == 0) { - return "north"; - } else if (rotation == 90) { - return "east"; - } else if (rotation == 180) { - return "south"; - } else if (rotation == 270) { - return "west"; - } else { - throw new LuaException("Invalid door rotation"); + Direction rotation = data.getTravelLocation().getFacing(); + switch (rotation) { + case NORTH -> { + return "north"; + } + case EAST -> { + return "east"; + } + case SOUTH -> { + return "south"; + } + case WEST -> { + return "west"; + } + default -> { + throw new LuaException("Invalid door rotation"); + } } } @@ -413,12 +420,14 @@ public class DigitalInterfacePeripheral implements IPeripheral { public final void setDoorRotation(String rotation) throws LuaException { TardimData data = getTardimData(); switch (rotation) { - case "north" -> data.setDoorRotation(0); - case "east" -> data.setDoorRotation(90); - case "south" -> data.setDoorRotation(180); - case "west" -> data.setDoorRotation(270); + case "north" -> data.getTravelLocation().setFacing(Direction.NORTH); + case "east" -> data.getTravelLocation().setFacing(Direction.EAST); + case "south" -> data.getTravelLocation().setFacing(Direction.SOUTH); + case "west" -> data.getTravelLocation().setFacing(Direction.WEST); default -> throw new LuaException("Invalid door rotation"); } + + data.save(); } /** @@ -427,18 +436,23 @@ public class DigitalInterfacePeripheral implements IPeripheral { @LuaFunction public final void toggleDoorRotation() throws LuaException { TardimData data = getTardimData(); - double rotation = data.getDoorRotation(); - if (rotation == 0) { - data.setDoorRotation(90); - } else if (rotation == 90) { - data.setDoorRotation(180); - } else if (rotation == 180) { - data.setDoorRotation(270); - } else if (rotation == 270) { - data.setDoorRotation(0); - } else { - throw new LuaException("Invalid door rotation"); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); } + + if (data.getTravelLocation().getFacing() == null) { + data.getTravelLocation().setFacing(Direction.NORTH); + } + + switch (data.getTravelLocation().getFacing()) { + case NORTH -> data.getTravelLocation().setFacing(Direction.EAST); + case EAST -> data.getTravelLocation().setFacing(Direction.SOUTH); + case SOUTH -> data.getTravelLocation().setFacing(Direction.WEST); + case WEST -> data.getTravelLocation().setFacing(Direction.NORTH); + default -> data.getTravelLocation().setFacing(Direction.NORTH); + } + + data.save(); } /** From fd68656000867ba4aa9e0b861f05001b34838b4e Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sun, 29 Jan 2023 23:46:18 +0300 Subject: [PATCH 17/61] Well then, here we go. --- README.md | 43 +++++++++++-------- build.gradle | 2 +- .../block/digital_tardim_interface.json | 6 +-- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 1cc2510..044ddf4 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,45 @@ # TARDIM: In Control ### All of time and space, *now automated*. -This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim), and adds a way to control your time (but mostly space) machine using -[ComputerCraft: Tweaked](https://tweaked.cc) computers using a new "Digital TARDIM Interface" peripheral. +This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers using a new "Digital TARDIM Interface" peripheral. ### How to use * Place the Digital Interface peripheral inside your TARDIM. * Connect a computer to the peripheral using a wired modem and wrap it with `peripheral.wrap()`. -* Call one of the many methods available to you. +* Call one of the many methods available to you! -All the methods can be found in the [API documentation](https:/google.com), and there are some examples in the [examples folder](examples) +All the methods can be found in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) +(Ignore the Java-only methods at the top of the page. Sorry for that, but this is the best auto-generated docs I could find) -### Example usecases -* Monitor fuel levels, current location, and other information on a screen in a nice way. -* Way to remotely summon your TARDIM to you, or to a specific location. (Using chunkloaders) -* Refined control of your TARDIM, such as saving and loading locations, or setting a destination in a GUI. -* Visual effects that activate during flight. +### Note +This is important, due to nature of the mod **anyone** inside your TARDIM with access to a computer and this peripheral +will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters"), so if you want to have this on your server +and do not trust everyone not to steal your blue box, make sure there is some kind of plot claim mod. If there will be demand for it I can try adding a config option to disable all but "harmless" methods.\ +And another thing: the method that sets destination dimension doesn't check if the dimension is valid, if you cannot land just change dimension to a valid one. + +### Example use-cases +* Make a dashboard to monitor fuel levels, current location, and other information on a screen in a nice way. +* Get refined control over your TARDIM, such as saving and loading locations, or setting a destination in a GUI. +* Add visual effects that activate during flight e.g. note blocks or Create mod contraptions. The possibilities are endless, the only limit is your imagination! (And coding skills) ### FAQ -Is this for Fabric or Forge? -: As a Fabric player who recognises Forge's large playerbase, I intend to support both major modloaders. +**Is this for Fabric or Forge?** +: As a Fabric player who recognises Forge's large playerbase, I intend to support both major modloaders. However a version for one of them could be released a bit later than the other one's. +If you would like to use this mod but the version you want is missing I would suggest following the mod. -Can I use this in my modpack? +**Can I use this in my modpack?** : Sure, as long as you credit me and link to this page. -Will there be a 1.19.3 version and beyond? -: Yes, I will try my best to update to later versions as soon as ComputerCraft: Tweaked and TARDIM receive stable versions for them. +**Why are the methods to make the TARDIM travel missing?** +: Implementing these, as well as the `locateBiome` method, would require me to have access to TARDIM mod's source code, +which the developers keep private. If I ever get access to source of the related commands I will add these methods. -Will you support earlier versions? -: I am not very familiar with those and therefore cannot make versions for before 1.19, -however if there will be a lot of people asking for it I could try sometime in the future. But no gurantees. \ No newline at end of file +**Why is the source code not linoed?** +: I would love to open the code and intend to at some point, however I am new to mod making, so I want to first ensure the quality of the mod and the source code. + +**Will there be a 1.19.3 version and beyond?** +: Yes, I will try my best to update to later versions as soon as ComputerCraft: Tweaked and TARDIM receive stable versions for them. \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3f614a2..dbaea1c 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ buildscript { apply plugin: 'net.minecraftforge.gradle' group = 'su.a71.tardim_ic' -version = '1.0' +version = '0.5' archivesBaseName = 'tardim_ic' java.toolchain.languageVersion = JavaLanguageVersion.of(17) diff --git a/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json b/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json index 2abd56f..d5fccbf 100644 --- a/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json +++ b/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json @@ -3,7 +3,8 @@ "parent": "digital_tardim_interface", "texture_size": [64, 64], "textures": { - "1": "tardim_ic:blocks/digital_tardim_interface" + "1": "tardim_ic:blocks/digital_tardim_interface", + "particle": "tardim_ic:blocks/digital_tardim_interface" }, "elements": [ { @@ -208,6 +209,5 @@ "rotation": [-90, 0, 0], "translation": [0, 0, 4.25] } - }, - "particles": "block/deepslate_brick" + } } \ No newline at end of file From 6d6de9f71a830eea7a36415f55e66bdfe089f67f Mon Sep 17 00:00:00 2001 From: Andrew71 Date: Mon, 30 Jan 2023 10:34:05 +0300 Subject: [PATCH 18/61] 11th hour over now --- build.gradle | 12 ++++----- gradle.properties | 4 +++ .../tardim_ic/DigitalInterfacePeripheral.java | 14 ++++++++++ .../a71/tardim_ic/tardim_ic/Registration.java | 10 ++++++- .../assets/tardim_ic/lang/en_uk.json | 3 ++- .../assets/tardim_ic/lang/en_us.json | 3 ++- .../resources/assets/tardim_ic/lang/rpr.json | 3 ++- .../assets/tardim_ic/lang/ru_ru.json | 4 +++ .../recipes/digital_tardim_interface.json | 26 +++++++++++++++++++ 9 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/assets/tardim_ic/lang/ru_ru.json create mode 100644 src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json diff --git a/build.gradle b/build.gradle index dbaea1c..2788ba0 100644 --- a/build.gradle +++ b/build.gradle @@ -10,9 +10,9 @@ buildscript { apply plugin: 'net.minecraftforge.gradle' -group = 'su.a71.tardim_ic' -version = '0.5' -archivesBaseName = 'tardim_ic' +group = project.group +version = project.version +archivesBaseName = project.archivesBaseName java.toolchain.languageVersion = JavaLanguageVersion.of(17) @@ -82,6 +82,8 @@ sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { maven { url 'https://squiddev.cc/maven/' } + + maven { url "https://cursemaven.com"} } dependencies { @@ -90,9 +92,7 @@ dependencies { // The userdev artifact is a special name and will get all sorts of transformations applied to it. minecraft "net.minecraftforge:forge:${mc_version}-${forge_version}" - - implementation files("/home/andrew71/.local/share/multimc/instances/TardimInControl/.minecraft/mods/tardim-1.1.5.jar") - + implementation fg.deobf("curse.maven:tardim-531315:3983700") implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}") } diff --git a/gradle.properties b/gradle.properties index 0af5ab3..096b0cb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,3 +4,7 @@ org.gradle.daemon=false cc_version=1.100.9 mc_version=1.19.2 forge_version=43.1.3 + +group = 'su.a71.tardim_ic' +version = '0.6' +archivesBaseName = 'tardim_ic' \ No newline at end of file diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java index b9a86a9..4a92390 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java @@ -385,6 +385,20 @@ public class DigitalInterfacePeripheral implements IPeripheral { setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); } + /** + * Get online players. Useful for making a GUI for the locate function or just a nice dashboard. + * @return ObjectLuaTable of the online players + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getOnlinePlayers() throws LuaException { + PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + ObjectLuaTable players = new ObjectLuaTable(Map.of()); + for (int i = 0; i < playerList.getPlayers().size(); i++) { + players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); + } + return players; + } + /** * Get the rotation of the TARDIM's door * @return String of the door rotation ("north", "south", "east", "west") diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 878a533..a6c036a 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -4,6 +4,7 @@ import com.google.common.collect.Sets; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraftforge.eventbus.api.IEventBus; @@ -20,12 +21,19 @@ public class Registration { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TardimInControl.MODID); public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TardimInControl.MODID); + public static final CreativeModeTab TARDIM_IC_TAB = new CreativeModeTab("tardim_ic") { + @Override + public ItemStack makeIcon() { + return new ItemStack(Registration.DIGITAL_TARDIM_INTERFACE.get()); + } + }; + // Blocks public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); private static RegistryObject register(String name, Supplier block) { RegistryObject registryObject = BLOCKS.register(name, block); - ITEMS.register(name, () -> new BlockItem(registryObject.get(), new Item.Properties().tab(CreativeModeTab.TAB_REDSTONE))); + ITEMS.register(name, () -> new BlockItem(registryObject.get(), new Item.Properties().tab(TARDIM_IC_TAB))); return registryObject; } diff --git a/src/main/resources/assets/tardim_ic/lang/en_uk.json b/src/main/resources/assets/tardim_ic/lang/en_uk.json index 18e60e2..78baa60 100644 --- a/src/main/resources/assets/tardim_ic/lang/en_uk.json +++ b/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -1,3 +1,4 @@ { - "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface" + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", + "itemGroup.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/en_us.json b/src/main/resources/assets/tardim_ic/lang/en_us.json index 18e60e2..78baa60 100644 --- a/src/main/resources/assets/tardim_ic/lang/en_us.json +++ b/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -1,3 +1,4 @@ { - "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface" + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", + "itemGroup.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/rpr.json b/src/main/resources/assets/tardim_ic/lang/rpr.json index 1b5f525..1cd15ba 100644 --- a/src/main/resources/assets/tardim_ic/lang/rpr.json +++ b/src/main/resources/assets/tardim_ic/lang/rpr.json @@ -1,3 +1,4 @@ { - "block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки" + "block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки", + "itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ" } \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/src/main/resources/assets/tardim_ic/lang/ru_ru.json new file mode 100644 index 0000000..d3bfc8b --- /dev/null +++ b/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -0,0 +1,4 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Цифровой интерфейс TARDIM", + "itemGroup.tardim_ic": "TARDIM: In Control" +} \ No newline at end of file diff --git a/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json b/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json new file mode 100644 index 0000000..2bee8c3 --- /dev/null +++ b/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "GGG", + "R0R", + "GRG" + ], + "key": { + "G": { + "item": "minecraft:gold_ingot", + "count": 1 + }, + "R": { + "item": "minecraft:redstone", + "count": 1 + }, + "0": { + "item": "minecraft:ender_eye", + "count": 1 + } + }, + "result": { + "item": "tardim_ic:digital_tardim_interface", + "count": 1 + } +} \ No newline at end of file From 37c181fa2104d59eabf39adf35906cfdf93b8cf9 Mon Sep 17 00:00:00 2001 From: Andrew71 Date: Mon, 30 Jan 2023 11:00:54 +0300 Subject: [PATCH 19/61] The clock is striking 12 --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 044ddf4..fad4e1c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and ### How to use * Place the Digital Interface peripheral inside your TARDIM. -* Connect a computer to the peripheral using a wired modem and wrap it with `peripheral.wrap()`. +* Connect a computer to the peripheral using a wired modem and wrap it with `peripheral.wrap`/`peripheral.find`. * Call one of the many methods available to you! All the methods can be found in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) @@ -38,8 +38,5 @@ If you would like to use this mod but the version you want is missing I would su : Implementing these, as well as the `locateBiome` method, would require me to have access to TARDIM mod's source code, which the developers keep private. If I ever get access to source of the related commands I will add these methods. -**Why is the source code not linoed?** -: I would love to open the code and intend to at some point, however I am new to mod making, so I want to first ensure the quality of the mod and the source code. - **Will there be a 1.19.3 version and beyond?** : Yes, I will try my best to update to later versions as soon as ComputerCraft: Tweaked and TARDIM receive stable versions for them. \ No newline at end of file From 9f8b8235dd60310aab9dcb511f389de476931d67 Mon Sep 17 00:00:00 2001 From: Andrew71 Date: Mon, 30 Jan 2023 17:51:51 +0300 Subject: [PATCH 20/61] My reward. --- .../a71/tardim_ic/tardim_ic/Registration.java | 3 +- .../command/CommandModemTransmit.java | 70 +++++++++++++++++++ .../tardim_ic/command/CommandSender.java | 40 +++++++++++ .../tardim_ic/tardim_ic/sonic/SonicProbe.java | 22 ++++++ .../recipes/digital_tardim_interface.json | 18 +++-- 5 files changed, 144 insertions(+), 9 deletions(-) create mode 100644 src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java create mode 100644 src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java create mode 100644 src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index a6c036a..82d3c9d 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -29,13 +29,12 @@ public class Registration { }; // Blocks - public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); - private static RegistryObject register(String name, Supplier block) { RegistryObject registryObject = BLOCKS.register(name, block); ITEMS.register(name, () -> new BlockItem(registryObject.get(), new Item.Properties().tab(TARDIM_IC_TAB))); return registryObject; } + public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); // Tile Entities public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java new file mode 100644 index 0000000..db29663 --- /dev/null +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -0,0 +1,70 @@ +package su.a71.tardim_ic.tardim_ic.command; + +// This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public + +import com.mojang.brigadier.Command; +import com.swdteam.common.command.tardim.CommandTardimBase; +import com.swdteam.common.command.tardim.ICommand; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; + +import dan200.computercraft.api.network.Packet; +import dan200.computercraft.api.ComputerCraftAPI; + +import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; + +public class CommandModemTransmit implements ICommand { + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 3) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + try { + int sendChannel = Integer.parseInt(args[0]); + int replyChannel = Integer.parseInt(args[1]); + String message = args[2]; + boolean allDimensions = Boolean.parseBoolean(args[3]) || args[3].equals("true"); + + if (data.getTravelLocation() == null) { + data.setTravelLocation(new TardimData.Location(data.getCurrentLocation())); + } + + if (allDimensions) + { + ComputerCraftAPI.getWirelessNetwork().transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos()))); + } + else { + ComputerCraftAPI.getWirelessNetwork().transmitSameDimension(new Packet(sendChannel, replyChannel, message, + new CommandSender(player, data.getTravelLocation().getPos())), 300); + } + sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source); + } catch (Exception var9) { + sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source); + } + } else { + sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "ccModemTransmit"; + } + + @Override + public String getUsage() { + return "ccModemTransmit "; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} \ No newline at end of file diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java b/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java new file mode 100644 index 0000000..aec340f --- /dev/null +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java @@ -0,0 +1,40 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import dan200.computercraft.api.network.IPacketSender; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; + +public class CommandSender implements IPacketSender { + + private final Player player; + private final Level level; + private final BlockPos pos; + + CommandSender(Player player, BlockPos pos) { + this.player = player; + this.level = player.level; + this.pos = pos; + } + + @NotNull + @Override + public Level getLevel() { + return this.level; + } + + @NotNull + @Override + public Vec3 getPosition() { + return new Vec3(this.pos.getX(), this.pos.getY(), this.pos.getZ()); + } + + @NotNull + @Override + public String getSenderID() { + return this.player.getName().getString(); + } +} diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java b/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java new file mode 100644 index 0000000..2a3cfe5 --- /dev/null +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java @@ -0,0 +1,22 @@ +package su.a71.tardim_ic.tardim_ic.sonic; + +import net.minecraft.world.item.Item; + +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; + +import com.swdteam.client.gui.GuiCommandScreen; + +public class SonicProbe extends Item { + private TardimData tardim; + public SonicProbe(Properties properties) { + super(properties.stacksTo(1)); + } + + public void setTardim(TardimData tardim) { + this.tardim = tardim; + } + + // Add tile entity + +} diff --git a/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json b/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json index 2bee8c3..2721c83 100644 --- a/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json +++ b/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json @@ -1,7 +1,7 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "GGG", + "DDD", "R0R", "GRG" ], @@ -14,13 +14,17 @@ "item": "minecraft:redstone", "count": 1 }, - "0": { - "item": "minecraft:ender_eye", - "count": 1 - } + "0": { + "item": "minecraft:ender_eye", + "count": 1 }, - "result": { - "item": "tardim_ic:digital_tardim_interface", + "D": { + "item": "minecraft:polished_deepslate", "count": 1 } + }, + "result": { + "item": "tardim_ic:digital_tardim_interface", + "count": 1 + } } \ No newline at end of file From 7ea3003be7c42d90bc70e19717bbb6582df58895 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Mon, 30 Jan 2023 21:54:00 +0300 Subject: [PATCH 21/61] World Enough and Craft --- .../tardim_ic/DigitalInterfaceBlock.java | 4 +- .../tardim_ic/DigitalInterfacePeripheral.java | 211 +++++++++++++++++- 2 files changed, 206 insertions(+), 9 deletions(-) diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java index 2f3f298..9efa2bd 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java @@ -10,9 +10,7 @@ import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; -/** - * This is our block. To tell minecraft that this block has a block entity, we need to implement {@link EntityBlock} - */ + public class DigitalInterfaceBlock extends Block implements EntityBlock { public DigitalInterfaceBlock() { diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java index 4a92390..061917c 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java @@ -1,7 +1,12 @@ package su.a71.tardim_ic.tardim_ic; +import com.mojang.datafixers.util.Pair; +import com.swdteam.common.command.tardim.CommandTardimBase; import com.swdteam.common.command.tardim.CommandTravel; import com.swdteam.common.data.DimensionMapReloadListener; +import com.swdteam.common.init.TRDSounds; +import com.swdteam.common.item.ItemTardim; +import com.swdteam.main.Tardim; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; @@ -10,12 +15,19 @@ import dan200.computercraft.api.lua.LuaException; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; import net.minecraft.world.level.Level; import net.minecraft.server.players.PlayerList; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; import net.minecraftforge.server.ServerLifecycleHooks; @@ -430,7 +442,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { * Set the rotation of the TARDIM's door * @param rotation String of the door rotation ("north", "south", "east", "west") */ - @LuaFunction + @LuaFunction(mainThread = true) public final void setDoorRotation(String rotation) throws LuaException { TardimData data = getTardimData(); switch (rotation) { @@ -447,7 +459,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { /** * Toggle the rotation of the TARDIM's door (north -> east -> south -> west -> north) */ - @LuaFunction + @LuaFunction(mainThread = true) public final void toggleDoorRotation() throws LuaException { TardimData data = getTardimData(); if (data.getTravelLocation() == null) { @@ -474,7 +486,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { * @param axis String of the axis ("x", "y", "z") * @param amount Number to add to the axis */ - @LuaFunction + @LuaFunction(mainThread = true) public final void coordAdd(String axis, int amount) throws LuaException { TardimData data = getTardimData(); if (data.getTravelLocation() == null) { @@ -490,7 +502,194 @@ public class DigitalInterfacePeripheral implements IPeripheral { } } - // I would love to add this, however it requires TARDIM source code. - // TODO: If I am ever part of the TARDIM team, I will add this. - // TODO: locateBiome, demat, remat, setFacing, toggleFacing + /** + * Dematerialize the TARDIM + */ + @LuaFunction(mainThread = true) + public final void demat() throws LuaException { + TardimData data = getTardimData(); + + if (data.isInFlight()) { + throw new LuaException("TARDIM is already in flight"); + } + Location loc = data.getCurrentLocation(); + ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(loc.getLevel()); + ItemTardim.destroyTardim(level, loc.getPos(), Direction.NORTH); + data.setInFlight(true); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + // TODO: This is a horrendous way of doing this. Please fix. + String level_str = "tardim:tardis_dimension"; + ServerLifecycleHooks.getCurrentServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_TAKEOFF.get(), SoundSource.AMBIENT, 1.0F, 1.0F); + + data.save(); + } + + /** + * Materialize the TARDIM at the destination + *

+ * Has a LOT of checks to make sure the TARDIM can materialize, so please implement error handling if you use this. + */ + @LuaFunction(mainThread = true) + public final void remat() throws LuaException { + TardimData data = getTardimData(); + + if (data.isInFlight()) { + if (data.getTimeEnteredFlight() < System.currentTimeMillis() / 1000L - 10L) { + Location loc = data.getTravelLocation(); + ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(loc.getLevel()); + double fuel = data.calculateFuelForJourney( + ServerLifecycleHooks.getCurrentServer().getLevel(data.getCurrentLocation().getLevel()), level, data.getCurrentLocation().getPos(), loc.getPos() + ); + if (data.getFuel() >= fuel) { + level.getChunk(loc.getPos()); + BlockPos landingPosButBetter = CommandTravel.getLandingPosition(level, loc.getPos()); + boolean recalc = false; + + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + + if (!recalc) { + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + } + + if (!recalc) { + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + } + + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + loc.setPosition(landingPosButBetter.getX(), landingPosButBetter.getY(), landingPosButBetter.getZ()); + if (Tardim.isPosValid(level, loc.getPos())) { + ItemTardim.buildTardim(level, loc.getPos(), data.getTravelLocation().getFacing(), data.getId()); + data.setCurrentLocation(data.getTravelLocation()); + data.setTravelLocation(null); + data.setInFlight(false); + data.addFuel(-fuel); + data.save(); + +// if (!recalc) { +// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); +// } else { +// sendResponse(player, "Landing recalculated due to obstruction", CommandTardimBase.ResponseType.INFO, source); +// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); +// } + + String level_str = "tardim:tardis_dimension"; + ServerLifecycleHooks.getCurrentServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_LANDING.get(), SoundSource.AMBIENT, 1.0F, 1.0F); + + } else { + throw new LuaException("TARDIM landing obstructed. Aborting..."); + } + } else { + throw new LuaException("TARDIM landing obstructed. Aborting..."); + } + } else { + throw new LuaException("Not enough fuel for journey"); + } + } else { + throw new LuaException("TARDIM is still taking off"); + } + } else { + throw new LuaException("TARDIM has already landed"); + } + } + + /** + * Locate a biome + * @param biome_str String of the biome e.g. "minecraft:plains" + */ + @LuaFunction(mainThread = true) + public final void locateBiome(String biome_str) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + Optional biome = ServerLifecycleHooks.getCurrentServer() + .registryAccess() + .registryOrThrow(Registry.BIOME_REGISTRY) + .getOptional(new ResourceLocation(biome_str)); + if (biome != null && biome.isPresent()) { + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(data.getTravelLocation().getLevel()); + BlockPos blockpos = new BlockPos( + data.getTravelLocation().getPos().getX(), + level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, data.getTravelLocation().getPos()).getY(), + data.getTravelLocation().getPos().getZ() + ); + BlockPos blockpos1 = this.findNearestBiome(level, (Biome)biome.get(), blockpos, 6400, 8); + if (blockpos1 != null) { + data.getTravelLocation().setPosition(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ()); + data.save(); + } else { + throw new LuaException("Biome not found"); + } + } else { + throw new LuaException("Unknown biome"); + } + } + + public BlockPos findNearestBiome(ServerLevel level, Biome biome, BlockPos pos, int i, int j) { + Pair> bb = level.getChunkSource() + .getGenerator() + .getBiomeSource() + .findBiomeHorizontal( + pos.getX(), + pos.getY(), + pos.getZ(), + i, + j, + b_val -> b_val.value() == biome, + level.random, + true, + level.getChunkSource().randomState().sampler() + ); + return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; + } + + // I would love to add this, but the methods are very hard so I will slowly remove the backlog + // TODO: demat, remat } From 7f2d295ba83405d5f580dfb9e21c581548a96658 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Mon, 30 Jan 2023 23:01:45 +0300 Subject: [PATCH 22/61] The Block Now Falls --- gradle.properties | 6 ++--- .../tardim_ic/DigitalInterfaceBlock.java | 7 +----- .../models/item/digital_tardim_interface.json | 22 ++++++++++++++++++- .../blocks/digital_tardim_interface.json | 20 +++++++++++++++++ 4 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 src/main/resources/data/tardim_ic/loot_tables/blocks/digital_tardim_interface.json diff --git a/gradle.properties b/gradle.properties index 096b0cb..5788f09 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,6 +5,6 @@ cc_version=1.100.9 mc_version=1.19.2 forge_version=43.1.3 -group = 'su.a71.tardim_ic' -version = '0.6' -archivesBaseName = 'tardim_ic' \ No newline at end of file +group='su.a71.tardim_ic' +version=0.7 +archivesBaseName='tardim_ic' \ No newline at end of file diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java index 9efa2bd..d851bb5 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java @@ -14,14 +14,9 @@ import javax.annotation.Nullable; public class DigitalInterfaceBlock extends Block implements EntityBlock { public DigitalInterfaceBlock() { - super(Properties.of(Material.METAL).strength(5, 5).noOcclusion()); + super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); } - /** - * This is the method from {@link EntityBlock} to create a new block entity for our block - * - * @return A new block entity from our registry object - */ @Nullable @Override public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { diff --git a/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json b/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json index 17a58c0..256cd83 100644 --- a/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json +++ b/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json @@ -1,3 +1,23 @@ { - "parent": "tardim_ic:block/digital_tardim_interface" + "parent": "tardim_ic:block/digital_tardim_interface", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } } \ No newline at end of file diff --git a/src/main/resources/data/tardim_ic/loot_tables/blocks/digital_tardim_interface.json b/src/main/resources/data/tardim_ic/loot_tables/blocks/digital_tardim_interface.json new file mode 100644 index 0000000..28ee895 --- /dev/null +++ b/src/main/resources/data/tardim_ic/loot_tables/blocks/digital_tardim_interface.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "tardim_ic:digital_tardim_interface", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] + } + ] +} From 914bde6c19f50350153ab4080f2af4d127a1783a Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Wed, 1 Feb 2023 17:37:01 +0300 Subject: [PATCH 23/61] Docs! --- examples/.vscode/settings.json | 3 ++ examples/nav_dash.lua | 29 ++++++++++++ .../tardim_ic/DigitalInterfacePeripheral.java | 44 ++++++++++++++++--- 3 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 examples/.vscode/settings.json create mode 100644 examples/nav_dash.lua diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json new file mode 100644 index 0000000..93e0e54 --- /dev/null +++ b/examples/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "Lua.runtime.version": "Lua 5.4" +} \ No newline at end of file diff --git a/examples/nav_dash.lua b/examples/nav_dash.lua new file mode 100644 index 0000000..8ebe729 --- /dev/null +++ b/examples/nav_dash.lua @@ -0,0 +1,29 @@ +local tardim = peripheral.find("digital_tardim_interface") +local screen = peripheral.find("monitor") + +screen.clear() +screen.setCursorBlink(false) +screen.setTextScale(0.5) + +-- 15x24 +--[[ +~ Current pos + X + Y + Z + Dimension + Facing +~ Destination + X + Y + Z + Dimension + Facing +~Fuel + Remaining + Required + + +TARDIM NAV| 11 + +]] \ No newline at end of file diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java index 061917c..8f6fce4 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java @@ -51,26 +51,48 @@ public class DigitalInterfacePeripheral implements IPeripheral { /** * @param tileEntity the tile entity of this peripheral + * @hidden */ public DigitalInterfacePeripheral(DigitalInterfaceTileEntity tileEntity) { this.tileEntity = tileEntity; } - // Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + * @hidden + */ @Nonnull @Override public String getType() { return "digital_tardim_interface"; } - // Apparently CC uses this to check if the peripheral in front of a modem is this one + /** Apparently CC uses this to check if the peripheral in front of a modem is this one + * @hidden + * @param iPeripheral The peripheral to compare against. This may be {@code null}. + * @return {@code true} if the peripheral is the same as this one. + */ @Override public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } - // Called when a computer connects/disconnects from the peripheral + /** Called when a computer disconnects from the peripheral + * @hidden + * @param computer The interface to the computer that is being detached. Remember that multiple computers can be + * attached to a peripheral at once. + */ @Override public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } + + /** Called when a computer connects to the peripheral + * @hidden + * @param computer The interface to the computer that is being attached. Remember that multiple computers can be + * attached to a peripheral at once. + */ @Override public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } + /** + * I *think* I use this to get peripheral's world position + * @hidden + * @return + */ public DigitalInterfaceTileEntity getTileEntity() { return tileEntity; } @@ -90,7 +112,8 @@ public class DigitalInterfacePeripheral implements IPeripheral { * * @return TardimData of the TARDIM that the peripheral is in * @throws LuaException if the peripheral is not in a TARDIM - * */ + * @hidden + */ public TardimData getTardimData() throws LuaException { int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); @@ -672,6 +695,16 @@ public class DigitalInterfacePeripheral implements IPeripheral { } } + /** + * Helper method to find a biome + * @param level ServerLevel to search + * @param biome Biome to find + * @param pos BlockPos to start from + * @param i Idk what this is, likely a radius + * @param j No idea about this either + * @return BlockPos of the biome + * @hidden + */ public BlockPos findNearestBiome(ServerLevel level, Biome biome, BlockPos pos, int i, int j) { Pair> bb = level.getChunkSource() .getGenerator() @@ -689,7 +722,4 @@ public class DigitalInterfacePeripheral implements IPeripheral { ); return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; } - - // I would love to add this, but the methods are very hard so I will slowly remove the backlog - // TODO: demat, remat } From 1fd2914c92954a57811f8d535de1c5c000193a35 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Wed, 1 Feb 2023 22:23:06 +0300 Subject: [PATCH 24/61] Power Of The Redstone --- gradle.properties | 2 +- .../a71/tardim_ic/tardim_ic/Registration.java | 7 ++ .../DigitalInterfaceBlock.java | 3 +- .../DigitalInterfacePeripheral.java | 41 +++---- .../DigitalInterfaceTileEntity.java | 5 +- .../redsone_input/RedstoneInputBlock.java | 100 ++++++++++++++++++ .../RedstoneInputTileEntity.java | 28 +++++ src/main/resources/META-INF/mods.toml | 8 +- .../blockstates/redstone_tardim_input.json | 7 ++ .../assets/tardim_ic/lang/en_uk.json | 1 + .../assets/tardim_ic/lang/en_us.json | 1 + .../resources/assets/tardim_ic/lang/rpr.json | 1 + .../assets/tardim_ic/lang/ru_ru.json | 1 + .../models/block/redstone_tardim_input.json | 36 +++++++ .../models/item/redstone_tardim_input.json | 23 ++++ .../tardim_ic/textures/blocks/red_contr.png | Bin 0 -> 927 bytes .../textures/blocks/red_contr.png.mcmeta | 7 ++ .../blocks/redstone_tardim_input.json | 20 ++++ .../recipes/redstone_tardim_input.json | 26 +++++ 19 files changed, 290 insertions(+), 27 deletions(-) rename src/main/java/su/a71/tardim_ic/tardim_ic/{ => digital_interface}/DigitalInterfaceBlock.java (88%) rename src/main/java/su/a71/tardim_ic/tardim_ic/{ => digital_interface}/DigitalInterfacePeripheral.java (98%) rename src/main/java/su/a71/tardim_ic/tardim_ic/{ => digital_interface}/DigitalInterfaceTileEntity.java (94%) create mode 100644 src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java create mode 100644 src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java create mode 100644 src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json create mode 100644 src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json create mode 100644 src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json create mode 100644 src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png create mode 100644 src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png.mcmeta create mode 100644 src/main/resources/data/tardim_ic/loot_tables/blocks/redstone_tardim_input.json create mode 100644 src/main/resources/data/tardim_ic/recipes/redstone_tardim_input.json diff --git a/gradle.properties b/gradle.properties index 5788f09..ce08ef1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,5 +6,5 @@ mc_version=1.19.2 forge_version=43.1.3 group='su.a71.tardim_ic' -version=0.7 +version=0.8 archivesBaseName='tardim_ic' \ No newline at end of file diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 82d3c9d..d928b3f 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -13,6 +13,11 @@ import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; +import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputBlock; +import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputTileEntity; + import java.util.function.Supplier; public class Registration { @@ -35,9 +40,11 @@ public class Registration { return registryObject; } public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); + public static final RegistryObject REDSTONE_TARDIM_INPUT = register("redstone_tardim_input", RedstoneInputBlock::new); // Tile Entities public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); + public static final RegistryObject> REDSTONE_TARDIM_INPUT_TILEENTITY = Registration.BLOCK_ENTITIES.register("redstone_tardim_input", () -> new BlockEntityType<>(RedstoneInputTileEntity::new, Sets.newHashSet(REDSTONE_TARDIM_INPUT.get()), null)); // Register our stuff public static void register() { diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java similarity index 88% rename from src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java index d851bb5..bb51307 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceBlock.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic; +package su.a71.tardim_ic.tardim_ic.digital_interface; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.Block; @@ -7,6 +7,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.Registration; import javax.annotation.Nullable; diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java similarity index 98% rename from src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 8f6fce4..847dcf4 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -1,17 +1,6 @@ -package su.a71.tardim_ic.tardim_ic; +package su.a71.tardim_ic.tardim_ic.digital_interface; import com.mojang.datafixers.util.Pair; -import com.swdteam.common.command.tardim.CommandTardimBase; -import com.swdteam.common.command.tardim.CommandTravel; -import com.swdteam.common.data.DimensionMapReloadListener; -import com.swdteam.common.init.TRDSounds; -import com.swdteam.common.item.ItemTardim; -import com.swdteam.main.Tardim; -import dan200.computercraft.api.lua.LuaFunction; -import dan200.computercraft.api.peripheral.IComputerAccess; -import dan200.computercraft.api.peripheral.IPeripheral; -import dan200.computercraft.api.lua.ObjectLuaTable; -import dan200.computercraft.api.lua.LuaException; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -31,6 +20,12 @@ import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; import net.minecraftforge.server.ServerLifecycleHooks; +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.peripheral.IComputerAccess; +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.lua.ObjectLuaTable; +import dan200.computercraft.api.lua.LuaException; + // TODO: Fabric and Forge diffirence? (Bottom: Fabric) import com.swdteam.tardim.TardimData; import com.swdteam.tardim.TardimManager; @@ -38,6 +33,12 @@ import com.swdteam.tardim.TardimData.Location; //import com.swdteam.tardim.tardim.TardimManager; //import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.common.command.tardim.CommandTravel; +import com.swdteam.common.data.DimensionMapReloadListener; +import com.swdteam.common.init.TRDSounds; +import com.swdteam.common.item.ItemTardim; +import com.swdteam.main.Tardim; + import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -316,11 +317,11 @@ public class DigitalInterfacePeripheral implements IPeripheral { @LuaFunction(mainThread = true) public final ObjectLuaTable getCompanions() throws LuaException { TardimData data = getTardimData(); - ObjectLuaTable companions = new ObjectLuaTable(Map.of()); + Map companions = new HashMap<>(); for (int i = 0; i < data.getCompanions().size(); i++) { companions.put(i + 1, data.getCompanions().get(i).getUsername()); } - return companions; + return new ObjectLuaTable(companions); } /** @@ -422,16 +423,18 @@ public class DigitalInterfacePeripheral implements IPeripheral { /** * Get online players. Useful for making a GUI for the locate function or just a nice dashboard. + * * @return ObjectLuaTable of the online players */ @LuaFunction(mainThread = true) public final ObjectLuaTable getOnlinePlayers() throws LuaException { PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); - ObjectLuaTable players = new ObjectLuaTable(Map.of()); - for (int i = 0; i < playerList.getPlayers().size(); i++) { - players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); - } - return players; + Map players = new HashMap<>(); + for (int i = 0; i < playerList.getPlayers().size(); i++) { + players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); + } + + return new ObjectLuaTable(players); } /** diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java similarity index 94% rename from src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java rename to src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java index cbbc246..a598d83 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/DigitalInterfaceTileEntity.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -1,6 +1,5 @@ -package su.a71.tardim_ic.tardim_ic; +package su.a71.tardim_ic.tardim_ic.digital_interface; -import dan200.computercraft.api.peripheral.IPeripheral; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.entity.BlockEntity; @@ -8,7 +7,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.Registration; +import dan200.computercraft.api.peripheral.IPeripheral; import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; public class DigitalInterfaceTileEntity extends BlockEntity { diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java b/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java new file mode 100644 index 0000000..f1856bc --- /dev/null +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java @@ -0,0 +1,100 @@ +package su.a71.tardim_ic.tardim_ic.redsone_input; + +import com.swdteam.common.block.BlockBaseTardimPanel; + +import com.swdteam.common.init.TRDDimensions; +import com.swdteam.common.init.TRDSounds; +import com.swdteam.network.NetworkHandler; +import com.swdteam.network.packets.PacketOpenEditGui; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; +import com.swdteam.tileentity.TileEntityBaseTardimPanel; + +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.DebugPackets; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.common.util.FakePlayerFactory; +import net.minecraftforge.server.ServerLifecycleHooks; +import org.jetbrains.annotations.NotNull; + +import su.a71.tardim_ic.tardim_ic.Registration; + +import javax.annotation.Nullable; + +public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock { + private boolean isPowered = false; + public RedstoneInputBlock() { + super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get().create(pos, state); + } + + @Override + public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { + if (!w.isClientSide) { + + w.playSound((Player)null, blockPos, (SoundEvent) TRDSounds.TARDIM_BEEP.get(), SoundSource.BLOCKS, 0.3F, 0.5F); + + BlockEntity be = w.getBlockEntity(blockPos); + if (be instanceof TileEntityBaseTardimPanel && w.dimension() == TRDDimensions.TARDIS) { + TardimData data = TardimManager.getFromPos(blockPos); + if (data != null && data.hasPermission(player)) { + NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(1, blockPos)); + return InteractionResult.CONSUME; + } + + player.displayClientMessage( + Component.literal("You do not have permission").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true + ); + } + } + + return InteractionResult.CONSUME; + } + + public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { + return true; + } + + public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { + DebugPackets.sendNeighborsUpdatePacket(level, blockPos); + + // get redstone signal + Direction direction = blockState.getValue(FACING); + int redstoneSignal = level.getSignal(blockPos, direction); + if (redstoneSignal > 0 && !isPowered) { + isPowered = true; + BlockEntity be = level.getBlockEntity(blockPos); + if (be instanceof TileEntityBaseTardimPanel && level.dimension() == TRDDimensions.TARDIS) { + TardimData data = TardimManager.getFromPos(blockPos); + if (data != null) { + if (((TileEntityBaseTardimPanel)be).hasCommand()) { + ((TileEntityBaseTardimPanel)be).execute(FakePlayerFactory.getMinecraft(ServerLifecycleHooks.getCurrentServer().getLevel(level.dimension()))); + } + } + } + + } else if (redstoneSignal == 0 && isPowered) + isPowered = false; + } +} diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java b/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java new file mode 100644 index 0000000..c0af4fc --- /dev/null +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java @@ -0,0 +1,28 @@ +package su.a71.tardim_ic.tardim_ic.redsone_input; + +import com.swdteam.tileentity.TileEntityBaseTardimPanel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import org.jetbrains.annotations.NotNull; + +import com.swdteam.common.init.TRDTiles; + +import su.a71.tardim_ic.tardim_ic.Registration; +import com.swdteam.tileentity.TileEntityTardimScanner; +import com.swdteam.common.block.BlockTardimScanner; + + +public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { + public RedstoneInputTileEntity(BlockPos pos, BlockState state) { + super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get(), pos, state); + } + + + public BlockPos getPos() { + return this.worldPosition; + } +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index bddd714..8ca07d9 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -5,7 +5,7 @@ license = "All rights reserved" [[mods]] #mandatory # The modid of the mod modId = "tardim_ic" #mandatory -version = "1.0" #mandatory +version = "0.8" #mandatory # A display name for the mod displayName = "TARDIM: In Control" #mandatory # The description text for the mod (multi line!) (#mandatory) @@ -13,7 +13,7 @@ description = ''' All of time and space, now automated. Control your TARDIM using ComputerCraft: Tweaked. ''' # A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. -[[dependencies.cctutorial]] #optional +[[dependencies.tardim_ic]] #optional # the modid of the dependency modId = "forge" #mandatory # Does this dependency have to exist - if not, ordering below must be specified @@ -25,13 +25,13 @@ ordering = "NONE" # Side this dependency is applied on - BOTH, CLIENT or SERVER side = "BOTH" # Here's another dependency -[[dependencies.advancedperipherals]] +[[dependencies.tardim_ic]] modId = "computercraft" mandatory = true versionRange = "1.95.3" ordering = "NONE" side = "BOTH" -[[dependencies.cctutorial]] +[[dependencies.tardim_ic]] modId = "minecraft" mandatory = true # This version range declares a minimum of the current minecraft version up to but not including the next major version diff --git a/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json b/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json new file mode 100644 index 0000000..a5718cc --- /dev/null +++ b/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tardim_ic:block/redstone_tardim_input" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/en_uk.json b/src/main/resources/assets/tardim_ic/lang/en_uk.json index 78baa60..4d99f9d 100644 --- a/src/main/resources/assets/tardim_ic/lang/en_uk.json +++ b/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -1,4 +1,5 @@ { "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", + "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", "itemGroup.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/en_us.json b/src/main/resources/assets/tardim_ic/lang/en_us.json index 78baa60..4d99f9d 100644 --- a/src/main/resources/assets/tardim_ic/lang/en_us.json +++ b/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -1,4 +1,5 @@ { "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", + "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", "itemGroup.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/rpr.json b/src/main/resources/assets/tardim_ic/lang/rpr.json index 1cd15ba..d28a924 100644 --- a/src/main/resources/assets/tardim_ic/lang/rpr.json +++ b/src/main/resources/assets/tardim_ic/lang/rpr.json @@ -1,4 +1,5 @@ { "block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки", + "block.tardim_ic.redstone_tardim_input": "Краснокаменный Инпутъ Хронобудки", "itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ" } \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/src/main/resources/assets/tardim_ic/lang/ru_ru.json index d3bfc8b..09b05b1 100644 --- a/src/main/resources/assets/tardim_ic/lang/ru_ru.json +++ b/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -1,4 +1,5 @@ { "block.tardim_ic.digital_tardim_interface": "Цифровой интерфейс TARDIM", + "block.tardim_ic.redstone_tardim_input": "Редстоуновый ввод TARDIM", "itemGroup.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json b/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json new file mode 100644 index 0000000..a133d12 --- /dev/null +++ b/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json @@ -0,0 +1,36 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/cube_all", + "ambientocclusion": false, + "textures": { + "1": "tardim_ic:blocks/red_contr", + "2": "tardim_ic:blocks/red_contr2", + "particle": "tardim_ic:blocks/red_contr" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + }, + { + "from": [-0.325, -0.35, -0.35], + "to": [16.35, 16.525, 16.275], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json b/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json new file mode 100644 index 0000000..4a3e535 --- /dev/null +++ b/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json @@ -0,0 +1,23 @@ +{ + "parent": "tardim_ic:block/redstone_tardim_input", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png b/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed7480114230ca6714002b13cea361a0d29323f GIT binary patch literal 927 zcmV;Q17Q4#P)0I%zU9o$*B%cjjeg3{AQXJ*#`)`=5L7 zIrscH*OyMGMMNpJGW9(*Gr}%VCxpW0YNY}*zQl~Hf|7Cen#$LAg9Ud{nd&G%jU z<8wfbk2;Q1F9-rU%GP)UI1)2~bNkP82od4^4^3!|FKU?)#@}?}$({)jiOzhI|N1m= z?bgeBhpi*kPedg1Fas>+@-N2Pfl_g?Apzw;uuu+wtLL_D+Y7dcw4b@M21==+j{p;@ zZbsPk8)3I48Ul*hl88+Ab}OX@r#1$@dH^`zTy-3$m@NS<(U7+Tv3LkjN;${7Oc+T1 z0)WX|uj{q7pqeGm-c9^$bVeXYr~Z(mQ(xSc#+Oc~b-1w~FK<&CwdD_2B$W5;Njb@X}}s8)tg*6ng;VpJWTg?i^$!JcV<7m1#si~4m{{V=3yrB zTmo>`-G&5g!^6yN5$XBz9Y85%4)p^&^Pt8@=RX?(5(}4h#e;LaOE39r>a-p_<6*Dy z@aM>@)bVil;+-9MNR9tQ9SluO8~_$``Gy3P1Acu|+HBkIo4E~i6e_;I{#Ht5P7Ir- z=?RRm8?5q>trWAR`yzu=8yAkIxpCcDcg>;xo9?w^nUh7I$HQhb4+BXDOpk|SnUi|3 zr+D}eOo4P){gjs30000EWmrjOO-%qQ00008000000002eQ Date: Wed, 1 Feb 2023 22:50:19 +0300 Subject: [PATCH 25/61] README.md update --- README.md | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index fad4e1c..64be83c 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,16 @@ # TARDIM: In Control ### All of time and space, *now automated*. -This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers using a new "Digital TARDIM Interface" peripheral. +This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers and redstone using a new blocks and peripherals. -### How to use -* Place the Digital Interface peripheral inside your TARDIM. -* Connect a computer to the peripheral using a wired modem and wrap it with `peripheral.wrap`/`peripheral.find`. -* Call one of the many methods available to you! - -All the methods can be found in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) -(Ignore the Java-only methods at the top of the page. Sorry for that, but this is the best auto-generated docs I could find) +### Features: +* Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using CC methods! Full list of methods is available in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) (Sorry for that, this is the best auto-generated docs I could find for now). The peripheral supports almost all commands that the TARDIM computer panel has. +* Redstone TARDIM Input: New control block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone +* *This is just the beginning, there are more features to come!* ### Note -This is important, due to nature of the mod **anyone** inside your TARDIM with access to a computer and this peripheral -will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters"), so if you want to have this on your server +This is important, due to nature of the mod **anyone** inside your TARDIM with access to a computer and this mod's peripheral +will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters" like fuel info), so if you want to have this on your server and do not trust everyone not to steal your blue box, make sure there is some kind of plot claim mod. If there will be demand for it I can try adding a config option to disable all but "harmless" methods.\ And another thing: the method that sets destination dimension doesn't check if the dimension is valid, if you cannot land just change dimension to a valid one. @@ -28,15 +25,14 @@ The possibilities are endless, the only limit is your imagination! (And coding s **Is this for Fabric or Forge?** : As a Fabric player who recognises Forge's large playerbase, I intend to support both major modloaders. -However a version for one of them could be released a bit later than the other one's. +However, the Fabric version is not yet released as I am waiting until I have a stable version to start porting the mod. If you would like to use this mod but the version you want is missing I would suggest following the mod. **Can I use this in my modpack?** : Sure, as long as you credit me and link to this page. -**Why are the methods to make the TARDIM travel missing?** -: Implementing these, as well as the `locateBiome` method, would require me to have access to TARDIM mod's source code, -which the developers keep private. If I ever get access to source of the related commands I will add these methods. - **Will there be a 1.19.3 version and beyond?** -: Yes, I will try my best to update to later versions as soon as ComputerCraft: Tweaked and TARDIM receive stable versions for them. \ No newline at end of file +: Yes, I will try my best to update to later versions as soon as **both** ComputerCraft: Tweaked and TARDIM receive stable versions for them. + +**I don't know CC, will this always be a CC-only mod?** +: OK, fine, nobody actually asked that. But in case you did, good news: No! As you might've noticed, version 0.8 add a block that make it possible to integrate your TARDIM into good old redstone! Going forward, I plan to add some way to get redstone *output* from the TARDIM as well, and maybe even streamline things like the cloister bell for those who don't want to code their own implementations! \ No newline at end of file From fa3a2c9414710c94198212018ec5fcae9551468a Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Thu, 2 Feb 2023 01:16:05 +0300 Subject: [PATCH 26/61] Always assume your code is going to compile. --- examples/nav_dash.lua | 65 ++++++++++++++++++- .../DigitalInterfacePeripheral.java | 15 ++--- 2 files changed, 71 insertions(+), 9 deletions(-) diff --git a/examples/nav_dash.lua b/examples/nav_dash.lua index 8ebe729..cb1c46a 100644 --- a/examples/nav_dash.lua +++ b/examples/nav_dash.lua @@ -26,4 +26,67 @@ screen.setTextScale(0.5) TARDIM NAV| 11 -]] \ No newline at end of file +]] + +local function dim_char(dimension_str) + + if dimension_str == "minecraft:overworld" then + return "OWR" + elseif dimension_str == "minecraft:the_nether" then + return "NETH" + elseif dimension_str == "minecraft:the_end" then + return "END" + else + return "???" + end + +end + +screen.setCursorPos(math.floor((15 - 10) / 2), 1) +screen.write("TARDIM NAV") + +while true do + screen.setCursorPos(1, 3) + + local pos = tardim.getCurrentLocation() + screen.write("Current pos") + screen.setCursorPos(1, 4) + screen.write("X: " .. pos.pos.x) + screen.setCursorPos(1, 5) + screen.write("Y: " .. pos.pos.y) + screen.setCursorPos(1, 6) + screen.write("Z: " .. pos.pos.z) + screen.setCursorPos(1, 7) + screen.write("Dimension: " .. dim_char(pos.dimension)) + screen.setCursorPos(1, 8) + screen.write("Facing: " .. pos.facing) + + local dest = tardim.getTravelLocation() + screen.setCursorPos(1, 10) + screen.write("Destination") + screen.setCursorPos(1, 11) + screen.write("X: " .. dest.pos.x) + screen.setCursorPos(1, 12) + screen.write("Y: " .. dest.pos.y) + screen.setCursorPos(1, 13) + screen.write("Z: " .. dest.pos.z) + screen.setCursorPos(1, 14) + screen.write("Dimension: " .. dim_char(dest.dimension)) + screen.setCursorPos(1, 15) + screen.write("Facing: " .. dest.facing) + + local fuel = tardim.getFuel() + screen.setCursorPos(1, 17) + screen.write("Fuel") + screen.setCursorPos(1, 18) + screen.write("REM.: " .. fuel .. "/100") + screen.setCursorPos(1, 19) + local Required = tardim.calculateFuelForJourney() + screen.write("REQ.: " .. Required) + screen.setCursorPos(1, 20) + screen.write("ENOUGH: " .. (fuel >= Required and "YES" or "NO")) + + local inFlight = tardim.isInFlight() + screen.setCursorPos(1, 22) + screen.write("IN FLIGHT: " .. (inFlight and "YES" or "NO")) +end \ No newline at end of file diff --git a/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 847dcf4..36cb34b 100644 --- a/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -294,20 +294,19 @@ public class DigitalInterfacePeripheral implements IPeripheral { @LuaFunction(mainThread = true) public final ObjectLuaTable getTravelLocation() throws LuaException { TardimData data = getTardimData(); - if (data.getTravelLocation() != null) { - Location loc = data.getTravelLocation(); - return new ObjectLuaTable(Map.of( + if (data.getTravelLocation() == null) { + data.setTravelLocation(data.getCurrentLocation()); + } + Location loc = data.getTravelLocation(); + return new ObjectLuaTable(Map.of( "dimension", loc.getLevel().location().toString(), "pos", new ObjectLuaTable(Map.of( "x", loc.getPos().getX(), "y", loc.getPos().getY(), "z", loc.getPos().getZ() )), - "facing", loc.getFacing().toString() - )); - } else { - return null; - } + "facing", loc.getFacing().toString() + )); } /** From 86367a386349dd63ae9b8f109fddcfa1d0351c91 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Wed, 12 Apr 2023 22:02:08 +0300 Subject: [PATCH 27/61] Twice Upon a Loader --- .gitattributes | 15 + .gitignore | 23 + .idea/scopes/Fabric_sources.xml | 3 + .idea/scopes/Forge_sources.xml | 3 + Common/build.gradle | 54 ++ .../su/a71/tardim_ic/tardim_ic/Constants.java | 11 + .../blockstates/digital_tardim_interface.json | 7 + .../blockstates/redstone_tardim_input.json | 7 + .../main/resources/assets/tardim_ic/icon.png | Bin 0 -> 74055 bytes .../assets/tardim_ic/lang/en_uk.json | 5 + .../assets/tardim_ic/lang/en_us.json | 5 + .../resources/assets/tardim_ic/lang/rpr.json | 5 + .../assets/tardim_ic/lang/ru_ru.json | 5 + .../block/digital_tardim_interface.json | 213 +++++ .../models/block/redstone_tardim_input.json | 36 + .../models/item/digital_tardim_interface.json | 23 + .../models/item/redstone_tardim_input.json | 23 + .../blocks/digital_tardim_interface.png | Bin 0 -> 1705 bytes .../tardim_ic/textures/blocks/red_contr.png | Bin 0 -> 927 bytes .../textures/blocks/red_contr.png.mcmeta | 7 + .../blocks/digital_tardim_interface.json | 20 + .../blocks/redstone_tardim_input.json | 20 + .../recipes/digital_tardim_interface.json | 30 + .../recipes/redstone_tardim_input.json | 26 + Common/src/main/resources/pack.mcmeta | 7 + Fabric/build.gradle | 64 ++ .../tardim_ic/tardim_ic/TardimInControl.java | 10 + Fabric/src/main/resources/fabric.mod.json | 39 + Fabric/src/main/resources/modid.mixins.json | 15 + Forge/build.gradle | 108 +++ .../a71/tardim_ic/tardim_ic/Registration.java | 56 ++ .../tardim_ic/tardim_ic/TardimInControl.java | 20 + .../command/CommandModemTransmit.java | 70 ++ .../tardim_ic/command/CommandSender.java | 40 + .../DigitalInterfaceBlock.java | 26 + .../DigitalInterfacePeripheral.java | 727 ++++++++++++++++++ .../DigitalInterfaceTileEntity.java | 45 ++ .../redsone_input/RedstoneInputBlock.java | 100 +++ .../RedstoneInputTileEntity.java | 28 + .../tardim_ic/tardim_ic/sonic/SonicProbe.java | 22 + Forge/src/main/resources/META-INF/mods.toml | 46 ++ README.md | 25 + build.gradle | 66 ++ gradle.properties | 28 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59536 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 183 +++++ gradlew.bat | 89 +++ scripts/basicTest.lua | 12 + settings.gradle | 16 + 50 files changed, 2388 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .idea/scopes/Fabric_sources.xml create mode 100644 .idea/scopes/Forge_sources.xml create mode 100644 Common/build.gradle create mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java create mode 100644 Common/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json create mode 100644 Common/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json create mode 100644 Common/src/main/resources/assets/tardim_ic/icon.png create mode 100644 Common/src/main/resources/assets/tardim_ic/lang/en_uk.json create mode 100644 Common/src/main/resources/assets/tardim_ic/lang/en_us.json create mode 100644 Common/src/main/resources/assets/tardim_ic/lang/rpr.json create mode 100644 Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png.mcmeta create mode 100644 Common/src/main/resources/data/tardim_ic/loot_tables/blocks/digital_tardim_interface.json create mode 100644 Common/src/main/resources/data/tardim_ic/loot_tables/blocks/redstone_tardim_input.json create mode 100644 Common/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json create mode 100644 Common/src/main/resources/data/tardim_ic/recipes/redstone_tardim_input.json create mode 100644 Common/src/main/resources/pack.mcmeta create mode 100644 Fabric/build.gradle create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java create mode 100644 Fabric/src/main/resources/fabric.mod.json create mode 100644 Fabric/src/main/resources/modid.mixins.json create mode 100644 Forge/build.gradle create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java create mode 100644 Forge/src/main/resources/META-INF/mods.toml create mode 100644 README.md create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 scripts/basicTest.lua create mode 100644 settings.gradle diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..20fc528 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,15 @@ +* text eol=lf +*.bat text eol=crlf +*.patch text eol=lf +*.java text eol=lf +*.gradle text eol=crlf +*.png binary +*.gif binary +*.exe binary +*.dll binary +*.jar binary +*.lzma binary +*.zip binary +*.pyd binary +*.cfg text eol=lf +*.jks binary \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..778a722 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# eclipse +bin +*.launch +.settings +.metadata +.classpath +.project + +# idea +out +*.ipr +*.iws +*.iml +.idea/* +!.idea/scopes + +# gradle +build +.gradle + +# other +eclipse +run diff --git a/.idea/scopes/Fabric_sources.xml b/.idea/scopes/Fabric_sources.xml new file mode 100644 index 0000000..0448412 --- /dev/null +++ b/.idea/scopes/Fabric_sources.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/scopes/Forge_sources.xml b/.idea/scopes/Forge_sources.xml new file mode 100644 index 0000000..7b5f24d --- /dev/null +++ b/.idea/scopes/Forge_sources.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Common/build.gradle b/Common/build.gradle new file mode 100644 index 0000000..ea3a28a --- /dev/null +++ b/Common/build.gradle @@ -0,0 +1,54 @@ +plugins { + id 'java' + id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' + id 'maven-publish' +} + +archivesBaseName = "${mod_name}-common-${minecraft_version}" + +minecraft { + version(minecraft_version) + runs { + if (project.hasProperty('common_runs_enabled') ? project.findProperty('common_runs_enabled').toBoolean() : true) { + + server(project.hasProperty('common_server_run_name') ? project.findProperty('common_server_run_name') : 'vanilla_server') { + workingDirectory(this.file("run")) + } + client(project.hasProperty('common_client_run_name') ? project.findProperty('common_client_run_name') : 'vanilla_client') { + workingDirectory(this.file("run")) + } + } + } +} + +dependencies { + compileOnly group:'org.spongepowered', name:'mixin', version:'0.8.5' + implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' +} + +processResources { + + def buildProps = project.properties.clone() + + filesMatching(['pack.mcmeta']) { + + expand buildProps + } +} + +publishing { + publications { + mavenJava(MavenPublication) { + groupId project.group + artifactId project.archivesBaseName + version project.version + from components.java + } + } + + repositories { + maven { + url "file://" + System.getenv("local_maven") + } + } +} \ No newline at end of file diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java new file mode 100644 index 0000000..f07c887 --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java @@ -0,0 +1,11 @@ +package su.a71.tardim_ic.tardim_ic; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Constants { + + public static final String MOD_ID = "tardim_ic"; + public static final String MOD_NAME = "TARDIM: In Control"; + public static final Logger LOG = LoggerFactory.getLogger(MOD_NAME); +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json b/Common/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json new file mode 100644 index 0000000..e396b0d --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tardim_ic:block/digital_tardim_interface" + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json b/Common/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json new file mode 100644 index 0000000..a5718cc --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tardim_ic:block/redstone_tardim_input" + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/icon.png b/Common/src/main/resources/assets/tardim_ic/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..87a18cf4f8ffad2aaf26e4d5ade5cf9c71955d97 GIT binary patch literal 74055 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

&IIJ>xYh|NS(21R`O(-VhguK5uaXP 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 literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json new file mode 100644 index 0000000..4d99f9d --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -0,0 +1,5 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", + "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", + "itemGroup.tardim_ic": "TARDIM: In Control" +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json new file mode 100644 index 0000000..4d99f9d --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -0,0 +1,5 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", + "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", + "itemGroup.tardim_ic": "TARDIM: In Control" +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/rpr.json b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json new file mode 100644 index 0000000..d28a924 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json @@ -0,0 +1,5 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки", + "block.tardim_ic.redstone_tardim_input": "Краснокаменный Инпутъ Хронобудки", + "itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ" +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json new file mode 100644 index 0000000..09b05b1 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -0,0 +1,5 @@ +{ + "block.tardim_ic.digital_tardim_interface": "Цифровой интерфейс TARDIM", + "block.tardim_ic.redstone_tardim_input": "Редстоуновый ввод TARDIM", + "itemGroup.tardim_ic": "TARDIM: In Control" +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json new file mode 100644 index 0000000..d5fccbf --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json @@ -0,0 +1,213 @@ +{ + "credit": "Made with Blockbench", + "parent": "digital_tardim_interface", + "texture_size": [64, 64], + "textures": { + "1": "tardim_ic:blocks/digital_tardim_interface", + "particle": "tardim_ic:blocks/digital_tardim_interface" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 14, 16], + "faces": { + "north": {"uv": [4, 4, 8, 7.5], "texture": "#1"}, + "east": {"uv": [0, 4, 4, 7.5], "texture": "#1"}, + "south": {"uv": [12, 4, 16, 7.5], "texture": "#1"}, + "west": {"uv": [8, 4, 12, 7.5], "texture": "#1"}, + "up": {"uv": [8, 4, 4, 0], "texture": "#1"}, + "down": {"uv": [12, 0, 8, 4], "texture": "#1"} + } + }, + { + "from": [5, 14, 5], + "to": [11, 16, 11], + "faces": { + "north": {"uv": [1.5, 9, 3, 9.5], "texture": "#1"}, + "east": {"uv": [0, 9, 1.5, 9.5], "texture": "#1"}, + "south": {"uv": [4.5, 9, 6, 9.5], "texture": "#1"}, + "west": {"uv": [3, 9, 4.5, 9.5], "texture": "#1"}, + "up": {"uv": [3, 9, 1.5, 7.5], "texture": "#1"}, + "down": {"uv": [4.5, 7.5, 3, 9], "texture": "#1"} + } + }, + { + "from": [11, 14, 7], + "to": [14, 16, 9], + "faces": { + "north": {"uv": [12.5, 0.5, 13.25, 1], "texture": "#1"}, + "east": {"uv": [12, 0.5, 12.5, 1], "texture": "#1"}, + "south": {"uv": [13.75, 0.5, 14.5, 1], "texture": "#1"}, + "west": {"uv": [13.25, 0.5, 13.75, 1], "texture": "#1"}, + "up": {"uv": [13.25, 0.5, 12.5, 0], "texture": "#1"}, + "down": {"uv": [14, 0, 13.25, 0.5], "texture": "#1"} + } + }, + { + "from": [12.5, 14, 3.5], + "to": [12.5, 15, 12.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "west": {"uv": [13, 3.75, 15.25, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [3.5, 14, 12.5], + "to": [12.5, 15, 12.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12.5, 3.75, 14.75, 4], "texture": "#1"}, + "west": {"uv": [13.5, 3.75, 15.75, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [3.5, 14, 3.5], + "to": [12.5, 15, 3.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12.5, 3.75, 14.75, 4], "texture": "#1"}, + "west": {"uv": [13.5, 3.75, 15.75, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [3.5, 14, 3.5], + "to": [3.5, 15, 12.5], + "faces": { + "north": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "east": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "south": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "west": {"uv": [13, 3.75, 15.25, 4], "texture": "#1"}, + "up": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"}, + "down": {"uv": [12, 3.75, 14.25, 4], "texture": "#1"} + } + }, + { + "from": [2, 14, 7], + "to": [5, 16, 9], + "faces": { + "north": {"uv": [5, 8, 5.75, 8.5], "texture": "#1"}, + "east": {"uv": [4.5, 8, 5, 8.5], "texture": "#1"}, + "south": {"uv": [6.25, 8, 7, 8.5], "texture": "#1"}, + "west": {"uv": [5.75, 8, 6.25, 8.5], "texture": "#1"}, + "up": {"uv": [5.75, 8, 5, 7.5], "texture": "#1"}, + "down": {"uv": [6.5, 7.5, 5.75, 8], "texture": "#1"} + } + }, + { + "from": [7, 14, 2], + "to": [9, 16, 5], + "faces": { + "north": {"uv": [3.25, 12.5, 3.75, 13], "texture": "#1"}, + "east": {"uv": [2.5, 12.5, 3.25, 13], "texture": "#1"}, + "south": {"uv": [4.5, 12.5, 5, 13], "texture": "#1"}, + "west": {"uv": [3.75, 12.5, 4.5, 13], "texture": "#1"}, + "up": {"uv": [3.75, 12.5, 3.25, 11.75], "texture": "#1"}, + "down": {"uv": [4.25, 11.75, 3.75, 12.5], "texture": "#1"} + } + }, + { + "from": [7, 14, 11], + "to": [9, 16, 14], + "faces": { + "north": {"uv": [0.75, 12.5, 1.25, 13], "texture": "#1"}, + "east": {"uv": [0, 12.5, 0.75, 13], "texture": "#1"}, + "south": {"uv": [2, 12.5, 2.5, 13], "texture": "#1"}, + "west": {"uv": [1.25, 12.5, 2, 13], "texture": "#1"}, + "up": {"uv": [1.25, 12.5, 0.75, 11.75], "texture": "#1"}, + "down": {"uv": [1.75, 11.75, 1.25, 12.5], "texture": "#1"} + } + }, + { + "from": [6, 13, -2], + "to": [10, 17, 2], + "faces": { + "north": {"uv": [10, 9.5, 11, 10.5], "texture": "#1"}, + "east": {"uv": [9, 9.5, 10, 10.5], "texture": "#1"}, + "south": {"uv": [12, 9.5, 13, 10.5], "texture": "#1"}, + "west": {"uv": [11, 9.5, 12, 10.5], "texture": "#1"}, + "up": {"uv": [11, 9.5, 10, 8.5], "texture": "#1"}, + "down": {"uv": [12, 8.5, 11, 9.5], "texture": "#1"} + } + }, + { + "from": [6, 13, 14], + "to": [10, 17, 18], + "faces": { + "north": {"uv": [7, 8.5, 8, 9.5], "texture": "#1"}, + "east": {"uv": [6, 8.5, 7, 9.5], "texture": "#1"}, + "south": {"uv": [9, 8.5, 10, 9.5], "texture": "#1"}, + "west": {"uv": [8, 8.5, 9, 9.5], "texture": "#1"}, + "up": {"uv": [8, 8.5, 7, 7.5], "texture": "#1"}, + "down": {"uv": [9, 7.5, 8, 8.5], "texture": "#1"} + } + }, + { + "from": [-2, 13, 6], + "to": [2, 17, 10], + "faces": { + "north": {"uv": [1, 3, 2, 4], "texture": "#1"}, + "east": {"uv": [0, 3, 1, 4], "texture": "#1"}, + "south": {"uv": [3, 3, 4, 4], "texture": "#1"}, + "west": {"uv": [2, 3, 3, 4], "texture": "#1"}, + "up": {"uv": [2, 3, 1, 2], "texture": "#1"}, + "down": {"uv": [3, 2, 2, 3], "texture": "#1"} + } + }, + { + "from": [14, 13, 6], + "to": [18, 17, 10], + "faces": { + "north": {"uv": [1, 1, 2, 2], "texture": "#1"}, + "east": {"uv": [0, 1, 1, 2], "texture": "#1"}, + "south": {"uv": [3, 1, 4, 2], "texture": "#1"}, + "west": {"uv": [2, 1, 3, 2], "texture": "#1"}, + "up": {"uv": [2, 1, 1, 0], "texture": "#1"}, + "down": {"uv": [3, 0, 2, 1], "texture": "#1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, -1.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "thirdperson_lefthand": { + "translation": [0, -1.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_righthand": { + "translation": [-1.25, 0, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "translation": [3.75, -1.5, 0], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "translation": [0, -0.5, 0], + "scale": [0.35, 0.35, 0.35] + }, + "gui": { + "rotation": [33, 45, 0], + "scale": [0.6, 0.6, 0.6] + }, + "head": { + "translation": [0, 0.75, 0], + "scale": [1.1, 1.1, 1.1] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, 4.25] + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json new file mode 100644 index 0000000..a133d12 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json @@ -0,0 +1,36 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/cube_all", + "ambientocclusion": false, + "textures": { + "1": "tardim_ic:blocks/red_contr", + "2": "tardim_ic:blocks/red_contr2", + "particle": "tardim_ic:blocks/red_contr" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#2"} + } + }, + { + "from": [-0.325, -0.35, -0.35], + "to": [16.35, 16.525, 16.275], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#1"} + } + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json b/Common/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json new file mode 100644 index 0000000..256cd83 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json @@ -0,0 +1,23 @@ +{ + "parent": "tardim_ic:block/digital_tardim_interface", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json b/Common/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json new file mode 100644 index 0000000..4a3e535 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json @@ -0,0 +1,23 @@ +{ + "parent": "tardim_ic:block/redstone_tardim_input", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png b/Common/src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png new file mode 100644 index 0000000000000000000000000000000000000000..d430bc6ddaadb8099d1287982091a014fc1e3c84 GIT binary patch literal 1705 zcmV;a23GlrP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1|&&DK~#8N?VI0g zTtyVeXP0JolbUp!wh2jtZ9)`(6a!K*6)E^olz;^C7*IhU6;XV!FDmGR`XKhf;*$mc zfjn3UMM1$-jA$Ba8x;*rt8HSECSCJ;v*PM^_I@|#&d%NJ-o354a6d52oO5Sx?m6>& zW)o8eeSLlTR4S!5Ha4`pxVWgY*{n(?lUg1f9d(uI@9)neZm6%s83zUiTn?C; zno^san>w9HB-Hr$c!>itx0coF+M1(rlg$>&CX)#rlidvsD!sQ+JK*QbTTa>EvP<2Z z`&-8n>JXFrkJJ|(@X_f{bVXF_fVdMEq2WNLVLV%bi8LMt%K%`!lo6W_gE0sPTIy8q zQ~Oo-!)aHb4l#ns_1~{KsV%-f|3e;u&aqMA006^jJd7@9yaa}sHNCl+EgBAF8nC$| zMoU1LypXYm(Q`L-AZAzj=BxAS$BP#oN$K>*r%qd)Lt7MSx>gBdMH9wcrwF~3E*mp=jGsg;!F(($TsVAQ8P?ygAsap%XfM4Rv z%gfpj#Ke?sdFJQmom2rDMWapQflY^6l>Hi9p7>Q=x$=iAKt~!{Q@V`V0{jrq<#I*C zykdaa07xCu9QDnnT@EuZ1~-i8fHel*|Gc z++=|9SO=iir6X)`kShoCm^I5Tz`+hQ?@jAK_-x@)M#n)=^E!a5Jhp;LoB)uYWz9hl zEZ)kvf&|X8mGMKM>i~dmU^;;^V>%1K7;`{->}ZcQNaVm-3pK9;>gwv$jT^I$cB^Td zj)2j4CgXz#Th+VA|Izb5R(D+Fc#ZI^b>>CJa3)^N$8f+uz&5&QT1DtfxK+f-`45YK5Z*6UL zqyk>sVh(sgZ--y~w%~Yf+0B{Crjx|5{Y8TPJDn~}JCNDW5fjLnOh)TWJqTNQ?Eos6 z0YH{r!N$tUit6m_EWQwgt$eWy_-#U*9>ZEbcIL#f{N(&yj;PesefvDu=;+6tzbrVC zQr!nubR6dLvDwd`ah;aDawg~6dP|?@ zE=Oep%a$zs;+6%1B7DiAY7dA32^O%IOd_39Y?h_I&W4%Dx zu$R{@fG=5}+bFK&u#}Yn;2H7&`G>!wK)62_uzAr38Wq$#D@f(k< z>Ln;%kZLM;H_YWr98lkq(xDu2C(3j+2d_cm z=>S`8S5iYT9=EjeMiyz@($X<_H{TDV|1aZ#XMe*v!OYBzBNb?CYpc4C)_Uq}rh^_c z%60)9c*1A|r2X_!^lf~+Je@IRTOOV|!+05j9y4NtgM+$X(!=;8)6>(ctE)@vYSn{U zPMwj)IUnDRRtX2N+tl0wY*2at<9M=6V@(-I9iS}V9rT!SN9Wv1sCCR3 z9v-gBrfsLeI}K_dhOiX?Q?})?-BeY=j&lH-Jq`1U0lFEGI+?DN9p?Z5C&=-@CIhJh zlp`V{A|m{NZ7Y6u?uednYwL)i#x)I=JIIh=TWjw5!%E3I08ZEr?C;C{0y|8^(Cle6 z|It7;Z&Qbwf9b^+w9fB8DeNTT=4lNWKKogT4r%kZ_eh(+(T|9Th=_=Yh=_=Yh}iik z^)F-=&938G(BJ?701jnXNoGw=04e|g00;m8000000Mb*F00000NkvXXu0mjfqSh>V literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png b/Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed7480114230ca6714002b13cea361a0d29323f GIT binary patch literal 927 zcmV;Q17Q4#P)0I%zU9o$*B%cjjeg3{AQXJ*#`)`=5L7 zIrscH*OyMGMMNpJGW9(*Gr}%VCxpW0YNY}*zQl~Hf|7Cen#$LAg9Ud{nd&G%jU z<8wfbk2;Q1F9-rU%GP)UI1)2~bNkP82od4^4^3!|FKU?)#@}?}$({)jiOzhI|N1m= z?bgeBhpi*kPedg1Fas>+@-N2Pfl_g?Apzw;uuu+wtLL_D+Y7dcw4b@M21==+j{p;@ zZbsPk8)3I48Ul*hl88+Ab}OX@r#1$@dH^`zTy-3$m@NS<(U7+Tv3LkjN;${7Oc+T1 z0)WX|uj{q7pqeGm-c9^$bVeXYr~Z(mQ(xSc#+Oc~b-1w~FK<&CwdD_2B$W5;Njb@X}}s8)tg*6ng;VpJWTg?i^$!JcV<7m1#si~4m{{V=3yrB zTmo>`-G&5g!^6yN5$XBz9Y85%4)p^&^Pt8@=RX?(5(}4h#e;LaOE39r>a-p_<6*Dy z@aM>@)bVil;+-9MNR9tQ9SluO8~_$``Gy3P1Acu|+HBkIo4E~i6e_;I{#Ht5P7Ir- z=?RRm8?5q>trWAR`yzu=8yAkIxpCcDcg>;xo9?w^nUh7I$HQhb4+BXDOpk|SnUi|3 zr+D}eOo4P){gjs30000EWmrjOO-%qQ00008000000002eQ=0.14", + "fabric": "*", + "minecraft": "1.19.x", + "java": ">=17" + }, + "suggests": { + "another-mod": "*" + } + } + \ No newline at end of file diff --git a/Fabric/src/main/resources/modid.mixins.json b/Fabric/src/main/resources/modid.mixins.json new file mode 100644 index 0000000..77cce1a --- /dev/null +++ b/Fabric/src/main/resources/modid.mixins.json @@ -0,0 +1,15 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "com.example.examplemod.mixin", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "client": [ + "ExampleMixin" + ], + "injectors": { + "defaultRequire": 1 + } + } + diff --git a/Forge/build.gradle b/Forge/build.gradle new file mode 100644 index 0000000..cb60d3f --- /dev/null +++ b/Forge/build.gradle @@ -0,0 +1,108 @@ +buildscript { + repositories { + maven { url = 'https://maven.minecraftforge.net' } + mavenCentral() + } + dependencies { + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + } +} +apply plugin: 'java' +apply plugin: 'net.minecraftforge.gradle' +apply plugin: 'eclipse' +apply plugin: 'maven-publish' + +archivesBaseName = "${mod_name}-forge-${minecraft_version}" + +minecraft { + mappings channel: 'official', version: minecraft_version + + if (project.hasProperty('forge_ats_enabled') && project.findProperty('forge_ats_enabled').toBoolean()) { + // This location is hardcoded in Forge and can not be changed. + // https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123 + accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + project.logger.debug('Forge Access Transformers are enabled for this project.') + } + + runs { + client { + workingDirectory project.file('run') + ideaModule "${rootProject.name}.${project.name}.main" + taskName 'Client' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { + modClientRun { + source sourceSets.main + source project(":Common").sourceSets.main + } + } + } + + server { + workingDirectory project.file('run') + ideaModule "${rootProject.name}.${project.name}.main" + taskName 'Server' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { + modServerRun { + source sourceSets.main + source project(":Common").sourceSets.main + } + } + } + + data { + workingDirectory project.file('run') + ideaModule "${rootProject.name}.${project.name}.main" + args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + taskName 'Data' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { + modDataRun { + source sourceSets.main + source project(":Common").sourceSets.main + } + } + } + } +} + +sourceSets.main.resources.srcDir 'src/generated/resources' + +dependencies { + minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" + compileOnly project(":Common") + + implementation fg.deobf("curse.maven:tardim-531315:3983700") + implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}") +} + +tasks.withType(JavaCompile) { + source(project(":Common").sourceSets.main.allSource) +} + +processResources { + from project(":Common").sourceSets.main.resources +} + + +jar.finalizedBy('reobfJar') + +publishing { + publications { + mavenJava(MavenPublication) { + groupId project.group + artifactId project.archivesBaseName + version project.version + artifact jar + } + } + repositories { + maven { + url "file://" + System.getenv("local_maven") + } + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java new file mode 100644 index 0000000..d928b3f --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -0,0 +1,56 @@ +package su.a71.tardim_ic.tardim_ic; + +import com.google.common.collect.Sets; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; +import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputBlock; +import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputTileEntity; + +import java.util.function.Supplier; + +public class Registration { + + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, TardimInControl.MODID); + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TardimInControl.MODID); + public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TardimInControl.MODID); + + public static final CreativeModeTab TARDIM_IC_TAB = new CreativeModeTab("tardim_ic") { + @Override + public ItemStack makeIcon() { + return new ItemStack(Registration.DIGITAL_TARDIM_INTERFACE.get()); + } + }; + + // Blocks + private static RegistryObject register(String name, Supplier block) { + RegistryObject registryObject = BLOCKS.register(name, block); + ITEMS.register(name, () -> new BlockItem(registryObject.get(), new Item.Properties().tab(TARDIM_IC_TAB))); + return registryObject; + } + public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); + public static final RegistryObject REDSTONE_TARDIM_INPUT = register("redstone_tardim_input", RedstoneInputBlock::new); + + // Tile Entities + public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); + public static final RegistryObject> REDSTONE_TARDIM_INPUT_TILEENTITY = Registration.BLOCK_ENTITIES.register("redstone_tardim_input", () -> new BlockEntityType<>(RedstoneInputTileEntity::new, Sets.newHashSet(REDSTONE_TARDIM_INPUT.get()), null)); + + // Register our stuff + public static void register() { + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + BLOCKS.register(modEventBus); + ITEMS.register(modEventBus); + BLOCK_ENTITIES.register(modEventBus); + } +} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java new file mode 100644 index 0000000..6e31198 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java @@ -0,0 +1,20 @@ +package su.a71.tardim_ic.tardim_ic; + +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Mod; + +import su.a71.tardim_ic.tardim_ic.Constants; + +// The value here should match an entry in the META-INF/mods.toml file +@Mod(Constants.MOD_ID) +public class TardimInControl { + + // Our mod id + public static final String MODID = "tardim_ic"; + + public TardimInControl() { + Registration.register(); + // Register ourselves for server and other game events we are interested in. Currently, we do not use any events + MinecraftForge.EVENT_BUS.register(this); + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java new file mode 100644 index 0000000..db29663 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -0,0 +1,70 @@ +package su.a71.tardim_ic.tardim_ic.command; + +// This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public + +import com.mojang.brigadier.Command; +import com.swdteam.common.command.tardim.CommandTardimBase; +import com.swdteam.common.command.tardim.ICommand; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; + +import dan200.computercraft.api.network.Packet; +import dan200.computercraft.api.ComputerCraftAPI; + +import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; + +public class CommandModemTransmit implements ICommand { + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 3) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + try { + int sendChannel = Integer.parseInt(args[0]); + int replyChannel = Integer.parseInt(args[1]); + String message = args[2]; + boolean allDimensions = Boolean.parseBoolean(args[3]) || args[3].equals("true"); + + if (data.getTravelLocation() == null) { + data.setTravelLocation(new TardimData.Location(data.getCurrentLocation())); + } + + if (allDimensions) + { + ComputerCraftAPI.getWirelessNetwork().transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos()))); + } + else { + ComputerCraftAPI.getWirelessNetwork().transmitSameDimension(new Packet(sendChannel, replyChannel, message, + new CommandSender(player, data.getTravelLocation().getPos())), 300); + } + sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source); + } catch (Exception var9) { + sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source); + } + } else { + sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "ccModemTransmit"; + } + + @Override + public String getUsage() { + return "ccModemTransmit "; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java new file mode 100644 index 0000000..aec340f --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java @@ -0,0 +1,40 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import dan200.computercraft.api.network.IPacketSender; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; + +public class CommandSender implements IPacketSender { + + private final Player player; + private final Level level; + private final BlockPos pos; + + CommandSender(Player player, BlockPos pos) { + this.player = player; + this.level = player.level; + this.pos = pos; + } + + @NotNull + @Override + public Level getLevel() { + return this.level; + } + + @NotNull + @Override + public Vec3 getPosition() { + return new Vec3(this.pos.getX(), this.pos.getY(), this.pos.getZ()); + } + + @NotNull + @Override + public String getSenderID() { + return this.player.getName().getString(); + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java new file mode 100644 index 0000000..bb51307 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java @@ -0,0 +1,26 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.Registration; + +import javax.annotation.Nullable; + + +public class DigitalInterfaceBlock extends Block implements EntityBlock { + + public DigitalInterfaceBlock() { + super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get().create(pos, state); + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java new file mode 100644 index 0000000..36cb34b --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -0,0 +1,727 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import com.mojang.datafixers.util.Pair; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.level.Level; +import net.minecraft.server.players.PlayerList; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.server.ServerLifecycleHooks; + +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.peripheral.IComputerAccess; +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.lua.ObjectLuaTable; +import dan200.computercraft.api.lua.LuaException; + +// TODO: Fabric and Forge diffirence? (Bottom: Fabric) +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; +import com.swdteam.tardim.TardimData.Location; +//import com.swdteam.tardim.tardim.TardimManager; +//import com.swdteam.tardim.tardim.TardimData; + +import com.swdteam.common.command.tardim.CommandTravel; +import com.swdteam.common.data.DimensionMapReloadListener; +import com.swdteam.common.init.TRDSounds; +import com.swdteam.common.item.ItemTardim; +import com.swdteam.main.Tardim; + + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.*; + + +public class DigitalInterfacePeripheral implements IPeripheral { + + private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral + private final DigitalInterfaceTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates + + /** + * @param tileEntity the tile entity of this peripheral + * @hidden + */ + public DigitalInterfacePeripheral(DigitalInterfaceTileEntity tileEntity) { + this.tileEntity = tileEntity; + } + + /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + * @hidden + */ + @Nonnull + @Override + public String getType() { return "digital_tardim_interface"; } + + /** Apparently CC uses this to check if the peripheral in front of a modem is this one + * @hidden + * @param iPeripheral The peripheral to compare against. This may be {@code null}. + * @return {@code true} if the peripheral is the same as this one. + */ + @Override + public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } + + /** Called when a computer disconnects from the peripheral + * @hidden + * @param computer The interface to the computer that is being detached. Remember that multiple computers can be + * attached to a peripheral at once. + */ + @Override + public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } + + /** Called when a computer connects to the peripheral + * @hidden + * @param computer The interface to the computer that is being attached. Remember that multiple computers can be + * attached to a peripheral at once. + */ + @Override + public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } + + /** + * I *think* I use this to get peripheral's world position + * @hidden + * @return + */ + public DigitalInterfaceTileEntity getTileEntity() { + return tileEntity; + } + + + /** + * Get TARDIM's data, which we need for *every* function + *

+ * We can't do a simple + * TardimManager.getFromPos(getTileEntity().getPos()) + *

+ * because if someone attempts to call a method outside a TARDIM, this would create a new TARDIM/Point to the one with ID of 0 (Due to the way TardimSaveHandler.loadTardisData works). + * Which is obviously not what we want. + *

+ * So instead we use this, and get the ability to give user a LuaException if they think that fiddling with time is funny + * This is mostly a copy of getIDForXZ function with some added checks + * + * @return TardimData of the TARDIM that the peripheral is in + * @throws LuaException if the peripheral is not in a TARDIM + * @hidden + */ + public TardimData getTardimData() throws LuaException { + int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); + + int index = 0; + int x = 0; + int y = 0; + int dx = 0; + int dy = 1; + int segment_length = 1; + int segment_passed = 0; + boolean found = false; + long timecheck = System.currentTimeMillis(); + + while(true) { + if (System.currentTimeMillis() - timecheck > 10000L) { + System.out.println("Finding ID from XZ Coordinates is taking too long!"); + break; + } + + if (X >= x * TardimManager.INTERIOR_BOUNDS + && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS + && Z >= y * TardimManager.INTERIOR_BOUNDS + && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { + found = true; + break; + } + + x += dx; + y += dy; + if (++segment_passed == segment_length) { + segment_passed = 0; + int buffer = dy; + dy = -dx; + dx = buffer; + if (buffer == 0) { + ++segment_length; + } + } + + ++index; + } + + // We really don't want to access a ghost TARDIM, do we? + if (!found) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + TardimData T = TardimManager.getTardim(index); + if (T.getCurrentLocation() == null || T.getOwnerName() == null) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + + return T; + } + + // Peripheral methods =============================================================== + + /** + * Return how much fuel is left in the TARDIM + * + * @return Fuel left (Out of 100) + */ + @LuaFunction(mainThread = true) + public final double getFuel() throws LuaException { + return getTardimData().getFuel(); + } + + /** + * Get how much fuel it would take to travel to the destination + * @return Amount of fuel needed (Out of 100) + */ + @LuaFunction(mainThread = true) + public final double calculateFuelForJourney() throws LuaException { + TardimData data = getTardimData(); + + if (data.getTravelLocation() == null) return 0; + + Location curr = data.getCurrentLocation(); + Location dest = data.getTravelLocation(); + + double fuel = 0.0; + + if (curr.getLevel() != dest.getLevel()) + { + fuel = 10.0; + } + + Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ()); + Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ()); + fuel += posA.distanceTo(posB) / 100.0; + if (fuel > 100.0) fuel = 100.0; + + return fuel; + } + + /** + * Check whether the TARDIM is locked + * @return true if locked, false if not + */ + @LuaFunction(mainThread = true) + public final boolean isLocked() throws LuaException { + return getTardimData().isLocked(); + } + + /** + * Check whether the TARDIM is in flight + * @return true if in flight, false if not + */ + @LuaFunction(mainThread = true) + public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); } + + /** + * Supposedly gets UNIX timestamp of when we entered flight + * @return UNIX timestamp if in flight, -1 if not + */ + @LuaFunction(mainThread = true) + public final long getTimeEnteredFlight() throws LuaException { + TardimData data = getTardimData(); + if (!data.isInFlight()) { + return -1; + } + return data.getTimeEnteredFlight(); + } + + /** + * Get username of the TARDIM's owner + * @return String of the owner's username + */ + @LuaFunction(mainThread = true) + public final String getOwnerName() throws LuaException { + TardimData data = getTardimData(); + return data.getOwnerName(); + } + + /** + * Lock/unlock the TARDIM + * @param locked true to lock, false to unlock + */ + @LuaFunction(mainThread = true) + public final void setLocked(boolean locked) throws LuaException { + getTardimData().setLocked(locked); + } + + /** + * Get the current location of the TARDIM + * @return ObjectLuaTable of the current location with the following keys: + *

+ */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getCurrentLocation() throws LuaException { + Location loc = getTardimData().getCurrentLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } + + /** + * Get the current location of the TARDIM + * @return if there is no destination returns null. + *

+ * Otherwise, ObjectLuaTable of the current location with the following keys: + *

    + *
  • dimension - String of the dimension
  • + *
  • pos - table with the keys x, y, z that hold numbers
  • + *
  • facing - String of the facing
  • + *
+ */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getTravelLocation() throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(data.getCurrentLocation()); + } + Location loc = data.getTravelLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } + + /** + * Get list of the TARDIM owner's companions + * @return ObjectLuaTable containing the usernames of the companions + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getCompanions() throws LuaException { + TardimData data = getTardimData(); + Map companions = new HashMap<>(); + for (int i = 0; i < data.getCompanions().size(); i++) { + companions.put(i + 1, data.getCompanions().get(i).getUsername()); + } + return new ObjectLuaTable(companions); + } + + /** + * Set dimension for the TARDIM to travel to + *

+ * This is a serious hazard right now due to the fact that I am unable to check if the dimension is valid. + *

+ * TODO: If invalid dimension is given, the TARDIM is unable to land until the dimension is changed. Add proper checks. + * @param dimension String of the dimension e.g. "minecraft:overworld" + */ + @LuaFunction(mainThread = true) + public final void setDimension(String dimension) throws LuaException { + TardimData data = getTardimData(); + + String key = dimension; + dimension = DimensionMapReloadListener.toTitleCase(dimension); + if (TardimManager.DIMENSION_MAP.containsKey(dimension)) { + key = (String)TardimManager.DIMENSION_MAP.get(dimension); + } else { + dimension = dimension.toLowerCase(); + } + + if (!CommandTravel.isValidPath(key)) { + throw new LuaException("Invalid dimension"); + } else { + ResourceKey dim = ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(dimension)); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + data.getTravelLocation().setLocation(dim); + } + } + + /** + * Set the destination's coordinates + * @param x X coordinate + * @param y Y coordinate + * @param z Z coordinate + */ + @LuaFunction(mainThread = true) + public final void setTravelLocation(int x, int y, int z) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + data.getTravelLocation().setPosition(x, y, z); + } + + + /** + * Set destination to the TARDIM's owner's home (Must be online) + */ + @LuaFunction(mainThread = true) + public final void home() throws LuaException { + TardimData data = getTardimData(); + + UUID uuid = data.getOwner(); + String username = data.getOwnerName(); + if (uuid == null || username == null) { + throw new LuaException("TARDIM has no owner"); + } + + PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + ServerPlayer player = playerList.getPlayer(uuid); + if (player == null) { + throw new LuaException("TARDIM owner is not online"); + } + + ResourceKey dim = player.getRespawnDimension(); + BlockPos pos = player.getRespawnPosition(); + if (pos == null) { + throw new LuaException("TARDIM owner has no home"); + } + + setDimension(dim.location().toString()); + setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); + } + + /** + * Set destination for a player's location (Player must be online) + * @param username - String of the username of the player + */ + @LuaFunction(mainThread = true) + public final void locatePlayer(String username) throws LuaException { + PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + ServerPlayer player = playerList.getPlayerByName(username); + if (player == null) { + throw new LuaException("Player not found"); + } + + ResourceKey dim = player.getCommandSenderWorld().dimension(); + BlockPos pos = player.blockPosition(); + + setDimension(dim.location().toString()); + setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); + } + + /** + * Get online players. Useful for making a GUI for the locate function or just a nice dashboard. + * + * @return ObjectLuaTable of the online players + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getOnlinePlayers() throws LuaException { + PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + Map players = new HashMap<>(); + for (int i = 0; i < playerList.getPlayers().size(); i++) { + players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); + } + + return new ObjectLuaTable(players); + } + + /** + * Get the rotation of the TARDIM's door + * @return String of the door rotation ("north", "south", "east", "west") + */ + @LuaFunction(mainThread = true) + public final String getDoorRotation() throws LuaException { + TardimData data = getTardimData(); + Direction rotation = data.getTravelLocation().getFacing(); + switch (rotation) { + case NORTH -> { + return "north"; + } + case EAST -> { + return "east"; + } + case SOUTH -> { + return "south"; + } + case WEST -> { + return "west"; + } + default -> { + throw new LuaException("Invalid door rotation"); + } + } + } + + /** + * Set the rotation of the TARDIM's door + * @param rotation String of the door rotation ("north", "south", "east", "west") + */ + @LuaFunction(mainThread = true) + public final void setDoorRotation(String rotation) throws LuaException { + TardimData data = getTardimData(); + switch (rotation) { + case "north" -> data.getTravelLocation().setFacing(Direction.NORTH); + case "east" -> data.getTravelLocation().setFacing(Direction.EAST); + case "south" -> data.getTravelLocation().setFacing(Direction.SOUTH); + case "west" -> data.getTravelLocation().setFacing(Direction.WEST); + default -> throw new LuaException("Invalid door rotation"); + } + + data.save(); + } + + /** + * Toggle the rotation of the TARDIM's door (north -> east -> south -> west -> north) + */ + @LuaFunction(mainThread = true) + public final void toggleDoorRotation() throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + if (data.getTravelLocation().getFacing() == null) { + data.getTravelLocation().setFacing(Direction.NORTH); + } + + switch (data.getTravelLocation().getFacing()) { + case NORTH -> data.getTravelLocation().setFacing(Direction.EAST); + case EAST -> data.getTravelLocation().setFacing(Direction.SOUTH); + case SOUTH -> data.getTravelLocation().setFacing(Direction.WEST); + case WEST -> data.getTravelLocation().setFacing(Direction.NORTH); + default -> data.getTravelLocation().setFacing(Direction.NORTH); + } + + data.save(); + } + + /** + * Add a number to the destination's coordinates + * @param axis String of the axis ("x", "y", "z") + * @param amount Number to add to the axis + */ + @LuaFunction(mainThread = true) + public final void coordAdd(String axis, int amount) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + Location location = data.getTravelLocation(); + switch (axis) { + case "x" -> location.addPosition(amount, 0, 0); + case "y" -> location.addPosition(0, amount, 0); + case "z" -> location.addPosition(0, 0, amount); + default -> throw new LuaException("Invalid axis"); + } + } + + /** + * Dematerialize the TARDIM + */ + @LuaFunction(mainThread = true) + public final void demat() throws LuaException { + TardimData data = getTardimData(); + + if (data.isInFlight()) { + throw new LuaException("TARDIM is already in flight"); + } + Location loc = data.getCurrentLocation(); + ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(loc.getLevel()); + ItemTardim.destroyTardim(level, loc.getPos(), Direction.NORTH); + data.setInFlight(true); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + // TODO: This is a horrendous way of doing this. Please fix. + String level_str = "tardim:tardis_dimension"; + ServerLifecycleHooks.getCurrentServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_TAKEOFF.get(), SoundSource.AMBIENT, 1.0F, 1.0F); + + data.save(); + } + + /** + * Materialize the TARDIM at the destination + *

+ * Has a LOT of checks to make sure the TARDIM can materialize, so please implement error handling if you use this. + */ + @LuaFunction(mainThread = true) + public final void remat() throws LuaException { + TardimData data = getTardimData(); + + if (data.isInFlight()) { + if (data.getTimeEnteredFlight() < System.currentTimeMillis() / 1000L - 10L) { + Location loc = data.getTravelLocation(); + ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(loc.getLevel()); + double fuel = data.calculateFuelForJourney( + ServerLifecycleHooks.getCurrentServer().getLevel(data.getCurrentLocation().getLevel()), level, data.getCurrentLocation().getPos(), loc.getPos() + ); + if (data.getFuel() >= fuel) { + level.getChunk(loc.getPos()); + BlockPos landingPosButBetter = CommandTravel.getLandingPosition(level, loc.getPos()); + boolean recalc = false; + + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + + if (!recalc) { + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + } + + if (!recalc) { + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + } + + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + loc.setPosition(landingPosButBetter.getX(), landingPosButBetter.getY(), landingPosButBetter.getZ()); + if (Tardim.isPosValid(level, loc.getPos())) { + ItemTardim.buildTardim(level, loc.getPos(), data.getTravelLocation().getFacing(), data.getId()); + data.setCurrentLocation(data.getTravelLocation()); + data.setTravelLocation(null); + data.setInFlight(false); + data.addFuel(-fuel); + data.save(); + +// if (!recalc) { +// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); +// } else { +// sendResponse(player, "Landing recalculated due to obstruction", CommandTardimBase.ResponseType.INFO, source); +// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); +// } + + String level_str = "tardim:tardis_dimension"; + ServerLifecycleHooks.getCurrentServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_LANDING.get(), SoundSource.AMBIENT, 1.0F, 1.0F); + + } else { + throw new LuaException("TARDIM landing obstructed. Aborting..."); + } + } else { + throw new LuaException("TARDIM landing obstructed. Aborting..."); + } + } else { + throw new LuaException("Not enough fuel for journey"); + } + } else { + throw new LuaException("TARDIM is still taking off"); + } + } else { + throw new LuaException("TARDIM has already landed"); + } + } + + /** + * Locate a biome + * @param biome_str String of the biome e.g. "minecraft:plains" + */ + @LuaFunction(mainThread = true) + public final void locateBiome(String biome_str) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + Optional biome = ServerLifecycleHooks.getCurrentServer() + .registryAccess() + .registryOrThrow(Registry.BIOME_REGISTRY) + .getOptional(new ResourceLocation(biome_str)); + if (biome != null && biome.isPresent()) { + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(data.getTravelLocation().getLevel()); + BlockPos blockpos = new BlockPos( + data.getTravelLocation().getPos().getX(), + level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, data.getTravelLocation().getPos()).getY(), + data.getTravelLocation().getPos().getZ() + ); + BlockPos blockpos1 = this.findNearestBiome(level, (Biome)biome.get(), blockpos, 6400, 8); + if (blockpos1 != null) { + data.getTravelLocation().setPosition(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ()); + data.save(); + } else { + throw new LuaException("Biome not found"); + } + } else { + throw new LuaException("Unknown biome"); + } + } + + /** + * Helper method to find a biome + * @param level ServerLevel to search + * @param biome Biome to find + * @param pos BlockPos to start from + * @param i Idk what this is, likely a radius + * @param j No idea about this either + * @return BlockPos of the biome + * @hidden + */ + public BlockPos findNearestBiome(ServerLevel level, Biome biome, BlockPos pos, int i, int j) { + Pair> bb = level.getChunkSource() + .getGenerator() + .getBiomeSource() + .findBiomeHorizontal( + pos.getX(), + pos.getY(), + pos.getZ(), + i, + j, + b_val -> b_val.value() == biome, + level.random, + true, + level.getChunkSource().randomState().sampler() + ); + return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java new file mode 100644 index 0000000..a598d83 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -0,0 +1,45 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.Registration; + +import dan200.computercraft.api.peripheral.IPeripheral; +import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; + +public class DigitalInterfaceTileEntity extends BlockEntity { + + public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { + super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get(), pos, state); + } + + /** + * Our peripheral, we create a new peripheral for each new tile entity + */ + protected DigitalInterfacePeripheral peripheral = new DigitalInterfacePeripheral(this); + private LazyOptional peripheralCap; + public BlockPos getPos() { + return this.worldPosition; + } + + /** + * When a computer modem tries to wrap our block, the modem will call getCapability to receive our peripheral. + * Then we just simply return a {@link LazyOptional} with our Peripheral + */ + @Override + @NotNull + public LazyOptional getCapability(@NotNull Capability cap, Direction direction) { + if (cap == CAPABILITY_PERIPHERAL) { + if (peripheralCap == null) { + peripheralCap = LazyOptional.of(() -> peripheral); + } + return peripheralCap.cast(); + } + return super.getCapability(cap, direction); + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java new file mode 100644 index 0000000..f1856bc --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java @@ -0,0 +1,100 @@ +package su.a71.tardim_ic.tardim_ic.redsone_input; + +import com.swdteam.common.block.BlockBaseTardimPanel; + +import com.swdteam.common.init.TRDDimensions; +import com.swdteam.common.init.TRDSounds; +import com.swdteam.network.NetworkHandler; +import com.swdteam.network.packets.PacketOpenEditGui; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; +import com.swdteam.tileentity.TileEntityBaseTardimPanel; + +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.DebugPackets; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraftforge.common.util.FakePlayerFactory; +import net.minecraftforge.server.ServerLifecycleHooks; +import org.jetbrains.annotations.NotNull; + +import su.a71.tardim_ic.tardim_ic.Registration; + +import javax.annotation.Nullable; + +public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock { + private boolean isPowered = false; + public RedstoneInputBlock() { + super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get().create(pos, state); + } + + @Override + public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { + if (!w.isClientSide) { + + w.playSound((Player)null, blockPos, (SoundEvent) TRDSounds.TARDIM_BEEP.get(), SoundSource.BLOCKS, 0.3F, 0.5F); + + BlockEntity be = w.getBlockEntity(blockPos); + if (be instanceof TileEntityBaseTardimPanel && w.dimension() == TRDDimensions.TARDIS) { + TardimData data = TardimManager.getFromPos(blockPos); + if (data != null && data.hasPermission(player)) { + NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(1, blockPos)); + return InteractionResult.CONSUME; + } + + player.displayClientMessage( + Component.literal("You do not have permission").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true + ); + } + } + + return InteractionResult.CONSUME; + } + + public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { + return true; + } + + public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { + DebugPackets.sendNeighborsUpdatePacket(level, blockPos); + + // get redstone signal + Direction direction = blockState.getValue(FACING); + int redstoneSignal = level.getSignal(blockPos, direction); + if (redstoneSignal > 0 && !isPowered) { + isPowered = true; + BlockEntity be = level.getBlockEntity(blockPos); + if (be instanceof TileEntityBaseTardimPanel && level.dimension() == TRDDimensions.TARDIS) { + TardimData data = TardimManager.getFromPos(blockPos); + if (data != null) { + if (((TileEntityBaseTardimPanel)be).hasCommand()) { + ((TileEntityBaseTardimPanel)be).execute(FakePlayerFactory.getMinecraft(ServerLifecycleHooks.getCurrentServer().getLevel(level.dimension()))); + } + } + } + + } else if (redstoneSignal == 0 && isPowered) + isPowered = false; + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java new file mode 100644 index 0000000..c0af4fc --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java @@ -0,0 +1,28 @@ +package su.a71.tardim_ic.tardim_ic.redsone_input; + +import com.swdteam.tileentity.TileEntityBaseTardimPanel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import org.jetbrains.annotations.NotNull; + +import com.swdteam.common.init.TRDTiles; + +import su.a71.tardim_ic.tardim_ic.Registration; +import com.swdteam.tileentity.TileEntityTardimScanner; +import com.swdteam.common.block.BlockTardimScanner; + + +public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { + public RedstoneInputTileEntity(BlockPos pos, BlockState state) { + super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get(), pos, state); + } + + + public BlockPos getPos() { + return this.worldPosition; + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java new file mode 100644 index 0000000..2a3cfe5 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java @@ -0,0 +1,22 @@ +package su.a71.tardim_ic.tardim_ic.sonic; + +import net.minecraft.world.item.Item; + +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; + +import com.swdteam.client.gui.GuiCommandScreen; + +public class SonicProbe extends Item { + private TardimData tardim; + public SonicProbe(Properties properties) { + super(properties.stacksTo(1)); + } + + public void setTardim(TardimData tardim) { + this.tardim = tardim; + } + + // Add tile entity + +} diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..11913a0 --- /dev/null +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -0,0 +1,46 @@ + +modLoader = "javafml" #mandatory +loaderVersion="[43,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. +license = "All rights reserved" +[[mods]] #mandatory +# The modid of the mod +modId = "tardim_ic" #mandatory +version = "0.9" #mandatory +# A display name for the mod +displayName = "TARDIM: In Control" #mandatory +# The description text for the mod (multi line!) (#mandatory) +description = ''' + All of time and space, now automated. Control your TARDIM using ComputerCraft: Tweaked. +''' +# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. +[[dependencies.tardim_ic]] #optional +# the modid of the dependency +modId = "forge" #mandatory +# Does this dependency have to exist - if not, ordering below must be specified +mandatory = true #mandatory +# The version range of the dependency +versionRange="[43,)" #mandatory +# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory +ordering = "NONE" +# Side this dependency is applied on - BOTH, CLIENT or SERVER +side = "BOTH" +# Here's another dependency +[[dependencies.tardim_ic]] +modId = "computercraft" +mandatory = true +versionRange = "1.95.3" +ordering = "NONE" +side = "BOTH" +[[dependencies.tardim_ic]] +modId = "tardim" +mandatory = true +versionRange = "1.1.3" +ordering = "NONE" +side = "BOTH" +[[dependencies.tardim_ic]] +modId = "minecraft" +mandatory = true +# This version range declares a minimum of the current minecraft version up to but not including the next major version +versionRange = "1.19.2" +ordering = "NONE" +side = "BOTH" \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1329c2c --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# MultiLoader Template + +This project provides a Gradle project template that can compile mods for both Forge and Fabric using a common sourceset. This project does not require any third party libraries or dependencies. + +## Getting Started + +## IntelliJ IDEA +This guide will show how to import the MultiLoader Template into IntelliJ IDEA. The setup process is roughly equivalent to setting up Forge and Fabric independently and should be very familiar to anyone who has worked with their MDKs. + +1. Clone or download this repository to your computer. +2. Configure the project by editing the `group`, `mod_name`, `mod_author`, and `mod_id` properties in the `gradle.properties` file. You will also need to change the `rootProject.name` property in `settings.gradle`. +3. Open the template's root folder as a new project in IDEA. This is the folder that contains this README file and the gradlew executable. +4. If your default JVM/JDK is not Java 17 you will encounter an error when opening the project. This error is fixed by going to `File > Settings > Build, Execution, Deployment > Build Tools > Gradle > Gradle JVM`and changing the value to a valid Java 17 JVM. You will also need to set the Project SDK to Java 17. This can be done by going to `File > Project Structure > Project SDK`. Once both have been set open the Gradle tab in IDEA and click the refresh button to reload the project. +5. Open the Gradle tab in IDEA if it has not already been opened. Navigate to `Your Project > Common > Tasks > vanilla gradle > decompile`. Run this task to decompile Minecraft. +6. Open the Gradle tab in IDEA if it has not already been opened. Navigate to `Your Project > Forge > Tasks > forgegradle runs > genIntellijRuns`. Run this task to set up run configurations for Forge. +7. Open your Run/Debug Configurations. Under the Application category there should now be options to run Forge and Fabric projects. Select one of the client options and try to run it. +8. Assuming you were able to run the game in step 7 your workspace should now be set up. + +### Eclipse +While it is possible to use this template in Eclipse it is not recommended. During the development of this template multiple critical bugs and quirks related to Eclipse were found at nearly every level of the required build tools. While we continue to work with these tools to report and resolve issues support for projects like these are not there yet. For now Eclipse is considered unsupported by this project. The development cycle for build tools is notoriously slow so there are no ETAs available. + +## Development Guide +When using this template the majority of your mod is developed in the Common project. The Common project is compiled against the vanilla game and is used to hold code that is shared between the different loader-specific versions of your mod. The Common project has no knowledge or access to ModLoader specific code, apis, or concepts. Code that requires something from a specific loader must be done through the project that is specific to that loader, such as the Forge or Fabric project. + +Loader specific projects such as the Forge and Fabric project are used to load the Common project into the game. These projects also define code that is specific to that loader. Loader specific projects can access all of the code in the Common project. It is important to remember that the Common project can not access code from loader specific projects. diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..c789a22 --- /dev/null +++ b/build.gradle @@ -0,0 +1,66 @@ +subprojects { + + apply plugin: 'java' + + java.toolchain.languageVersion = JavaLanguageVersion.of(17) + java.withSourcesJar() + java.withJavadocJar() + + jar { + from(rootProject.file("LICENSE")) { + rename { "${it}_${mod_name}" } + } + manifest { + attributes([ + 'Specification-Title' : mod_name, + 'Specification-Vendor' : mod_author, + 'Specification-Version' : project.jar.archiveVersion, + 'Implementation-Title' : project.name, + 'Implementation-Version' : project.jar.archiveVersion, + 'Implementation-Vendor' : mod_author, + 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), + 'Timestamp' : System.currentTimeMillis(), + 'Built-On-Java' : "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", + 'Built-On-Minecraft' : minecraft_version + ]) + } + } + + sourcesJar { + from(rootProject.file("LICENSE")) { + rename { "${it}_${mod_name}" } + } + } + + repositories { + + mavenCentral() + + maven { + name = 'Sponge / Mixin' + url = 'https://repo.spongepowered.org/repository/maven-public/' + } + + maven { + name = 'BlameJared Maven (CrT / Bookshelf)' + url = 'https://maven.blamejared.com' + } + + maven { url 'https://squiddev.cc/maven/' } + maven { url "https://cursemaven.com"} + } + + tasks.withType(JavaCompile).configureEach { + + it.options.encoding = 'UTF-8' + it.options.release = 17 + } + + // Disables Gradle's custom module metadata from being published to maven. The + // metadata includes mapped dependencies which are not reasonably consumable by + // other mod developers. + tasks.withType(GenerateModuleMetadata) { + + enabled = false + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..ac39d09 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,28 @@ +# Project +version=0.9 +group=su.a71.tardim_ic + +# Common +minecraft_version=1.19.2 +common_runs_enabled=false +common_client_run_name=Common Client +common_server_run_name=Common Server + +# Forge +forge_version=43.1.30 +//forge_ats_enabled=true + +# Fabric +fabric_version=0.62.0+1.19.2 +fabric_loader_version=0.14.9 + +# Mod options +mod_name="TARDIM: In Control" +mod_author=Andrew_7_1 +mod_id=tardim_ic + +# Gradle +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false + +cc_version=1.100.9 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7454180f2ae8848c63b8b4dea2cb829da983f2fa GIT binary patch literal 59536 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 QuEJmfE|#`Dqx|px0L@K;Y5)KL literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ae04661 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..b4f908a --- /dev/null +++ b/gradlew @@ -0,0 +1,183 @@ +#!/usr/bin/env bash + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MSYS* | MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +ARGV=("$@") +eval set -- $DEFAULT_JVM_OPTS + +IFS=$' +' read -rd '' -a JAVA_OPTS_ARR <<< "$(echo $JAVA_OPTS | xargs -n1)" +IFS=$' +' read -rd '' -a GRADLE_OPTS_ARR <<< "$(echo $GRADLE_OPTS | xargs -n1)" + +exec "$JAVACMD" "$@" "${JAVA_OPTS_ARR[@]}" "${GRADLE_OPTS_ARR[@]}" "-Dorg.gradle.appname=$APP_BASE_NAME" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "${ARGV[@]}" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/scripts/basicTest.lua b/scripts/basicTest.lua new file mode 100644 index 0000000..0918304 --- /dev/null +++ b/scripts/basicTest.lua @@ -0,0 +1,12 @@ +-- This is a very basic test script +-- This basically just verifies the mod works + +local int = peripheral.find("digital_tardim_interface") +if int == nil then + error("No interface found") +end + +print(int.getOwnerName() .. "'s TARDIM") +print("FUEL: " .. int.getFuel() .. "/100") +print("IN FLIGHT? " .. int.isInFlight()) +print("IS LOCKED? " .. int.isLocked()) diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..299e94c --- /dev/null +++ b/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + repositories { + gradlePluginPortal() + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } + maven { + name = 'Sponge Snapshots' + url = 'https://repo.spongepowered.org/repository/maven-public/' + } + } +} + +rootProject.name = 'tardim_ic' +include("Common", "Fabric", "Forge") \ No newline at end of file From 35027ef5d49b7be037096c2907b66501ea2012ef Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Thu, 13 Apr 2023 16:02:55 +0300 Subject: [PATCH 28/61] Small fix, I guess --- Forge/build.gradle | 2 +- .../command/CommandModemTransmit.java | 1 + Forge/src/main/resources/META-INF/mods.toml | 2 +- README.md | 48 ++++++++++++------- gradle.properties | 2 +- 5 files changed, 34 insertions(+), 21 deletions(-) diff --git a/Forge/build.gradle b/Forge/build.gradle index cb60d3f..474d167 100644 --- a/Forge/build.gradle +++ b/Forge/build.gradle @@ -76,7 +76,7 @@ dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" compileOnly project(":Common") - implementation fg.deobf("curse.maven:tardim-531315:3983700") + implementation fg.deobf("curse.maven:tardim-531315:4453925") implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}") } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java index db29663..70f30ab 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -7,6 +7,7 @@ import com.swdteam.common.command.tardim.CommandTardimBase; import com.swdteam.common.command.tardim.ICommand; import com.swdteam.tardim.TardimData; import com.swdteam.tardim.TardimManager; + import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index 11913a0..3133d7a 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -34,7 +34,7 @@ side = "BOTH" [[dependencies.tardim_ic]] modId = "tardim" mandatory = true -versionRange = "1.1.3" +versionRange = "1.2.2" ordering = "NONE" side = "BOTH" [[dependencies.tardim_ic]] diff --git a/README.md b/README.md index 1329c2c..d5eb344 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,37 @@ -# MultiLoader Template +# TARDIM: In Control +### All of time and space, *now automated*. -This project provides a Gradle project template that can compile mods for both Forge and Fabric using a common sourceset. This project does not require any third party libraries or dependencies. +This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers and redstone using a new blocks and peripherals. -## Getting Started +### Features: +* Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using CC methods! Full list of methods is available in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) (Sorry for that, this is the best auto-generated docs I could find for now). The peripheral supports almost all commands that the TARDIM computer panel has. +* Redstone TARDIM Input: New control block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone +* *This is just the beginning, there are more features to come!* -## IntelliJ IDEA -This guide will show how to import the MultiLoader Template into IntelliJ IDEA. The setup process is roughly equivalent to setting up Forge and Fabric independently and should be very familiar to anyone who has worked with their MDKs. +### Note +This is important, due to nature of the mod **anyone** inside your TARDIM with access to a computer and this mod's peripheral +will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters" like fuel info), so if you want to have this on your server +and do not trust everyone not to steal your blue box, make sure there is some kind of plot claim mod. If there will be demand for it I can try adding a config option to disable all but "harmless" methods.\ +And another thing: the method that sets destination dimension doesn't check if the dimension is valid, if you cannot land just change dimension to a valid one. -1. Clone or download this repository to your computer. -2. Configure the project by editing the `group`, `mod_name`, `mod_author`, and `mod_id` properties in the `gradle.properties` file. You will also need to change the `rootProject.name` property in `settings.gradle`. -3. Open the template's root folder as a new project in IDEA. This is the folder that contains this README file and the gradlew executable. -4. If your default JVM/JDK is not Java 17 you will encounter an error when opening the project. This error is fixed by going to `File > Settings > Build, Execution, Deployment > Build Tools > Gradle > Gradle JVM`and changing the value to a valid Java 17 JVM. You will also need to set the Project SDK to Java 17. This can be done by going to `File > Project Structure > Project SDK`. Once both have been set open the Gradle tab in IDEA and click the refresh button to reload the project. -5. Open the Gradle tab in IDEA if it has not already been opened. Navigate to `Your Project > Common > Tasks > vanilla gradle > decompile`. Run this task to decompile Minecraft. -6. Open the Gradle tab in IDEA if it has not already been opened. Navigate to `Your Project > Forge > Tasks > forgegradle runs > genIntellijRuns`. Run this task to set up run configurations for Forge. -7. Open your Run/Debug Configurations. Under the Application category there should now be options to run Forge and Fabric projects. Select one of the client options and try to run it. -8. Assuming you were able to run the game in step 7 your workspace should now be set up. +### Example use-cases +* Make a dashboard to monitor fuel levels, current location, and other information on a screen in a nice way. +* Get refined control over your TARDIM, such as saving and loading locations, or setting a destination in a GUI. +* Add visual effects that activate during flight e.g. note blocks or Create mod contraptions. -### Eclipse -While it is possible to use this template in Eclipse it is not recommended. During the development of this template multiple critical bugs and quirks related to Eclipse were found at nearly every level of the required build tools. While we continue to work with these tools to report and resolve issues support for projects like these are not there yet. For now Eclipse is considered unsupported by this project. The development cycle for build tools is notoriously slow so there are no ETAs available. +The possibilities are endless, the only limit is your imagination! (And coding skills) -## Development Guide -When using this template the majority of your mod is developed in the Common project. The Common project is compiled against the vanilla game and is used to hold code that is shared between the different loader-specific versions of your mod. The Common project has no knowledge or access to ModLoader specific code, apis, or concepts. Code that requires something from a specific loader must be done through the project that is specific to that loader, such as the Forge or Fabric project. +### FAQ -Loader specific projects such as the Forge and Fabric project are used to load the Common project into the game. These projects also define code that is specific to that loader. Loader specific projects can access all of the code in the Common project. It is important to remember that the Common project can not access code from loader specific projects. +**Is this for Fabric or Forge?** +: As a Fabric player who recognises Forge's large playerbase, I intend to support both major modloaders. +Right now, only Forge version is present. However, as of April 13th 2023, I started to port to multi-loader system and intend to have a Fabric version soon. + +**Can I use this in my modpack?** +: Sure, as long as you credit me and link to this page. + +**Will there be a 1.19.3 version and beyond?** +: Yes, I will try my best to update to later versions as soon as **both** ComputerCraft: Tweaked and TARDIM receive stable versions for them. + +**I don't know CC, will this always be a CC-only mod?** +: OK, fine, nobody actually asked that. But in case you did, good news: No! As you might've noticed, version 0.8 add a block that make it possible to integrate your TARDIM into good old redstone! Going forward, I plan to add some way to get redstone *output* from the TARDIM as well, and maybe even streamline things like the cloister bell for those who don't want to code their own implementations! \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index ac39d09..4c8926d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ fabric_version=0.62.0+1.19.2 fabric_loader_version=0.14.9 # Mod options -mod_name="TARDIM: In Control" +mod_name="tardim_in_control" mod_author=Andrew_7_1 mod_id=tardim_ic From dcd820a10ffae71cd1e5efb8b21d57967713aa2a Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Thu, 13 Apr 2023 17:14:36 +0300 Subject: [PATCH 29/61] Fix for new TARDIM version (TardimBuilder) --- .../digital_interface/DigitalInterfacePeripheral.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 36cb34b..a095ec9 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -2,6 +2,7 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; import com.mojang.datafixers.util.Pair; +import com.swdteam.common.init.TardimRegistry; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; @@ -625,7 +626,8 @@ public class DigitalInterfacePeripheral implements IPeripheral { if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { loc.setPosition(landingPosButBetter.getX(), landingPosButBetter.getY(), landingPosButBetter.getZ()); if (Tardim.isPosValid(level, loc.getPos())) { - ItemTardim.buildTardim(level, loc.getPos(), data.getTravelLocation().getFacing(), data.getId()); + TardimRegistry.TardimBuilder builder = TardimRegistry.getTardimBuilder(data.getTardimID()); + builder.buildTardim(level, loc.getPos(), data.getTravelLocation().getFacing(), data.getId()); data.setCurrentLocation(data.getTravelLocation()); data.setTravelLocation(null); data.setInFlight(false); From c3a67bb2e6ea33afe60514c36f43e4cca96fe295 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Thu, 13 Apr 2023 18:36:55 +0300 Subject: [PATCH 30/61] License, commands, AND STILL NOT GINGER --- Common/build.gradle | 16 ++++++ .../command/CommandCloisterBell.java | 54 ++++++++++++++++++ .../command/CommandModemTransmit.java | 12 ++-- .../tardim_ic/command/CommandSender.java | 0 .../tardim_ic/registration/CommandInit.java | 13 +++++ .../resources/{assets/tardim_ic => }/icon.png | Bin .../a71/tardim_ic/tardim_ic/Registration.java | 1 + .../tardim_ic/tardim_ic/TardimInControl.java | 4 ++ Forge/src/main/resources/META-INF/mods.toml | 4 +- LICENSE | 21 +++++++ gradle.properties | 2 +- 11 files changed, 119 insertions(+), 8 deletions(-) create mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java rename {Forge => Common}/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java (81%) rename {Forge => Common}/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java (100%) create mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java rename Common/src/main/resources/{assets/tardim_ic => }/icon.png (100%) create mode 100644 LICENSE diff --git a/Common/build.gradle b/Common/build.gradle index ea3a28a..442df8e 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -21,9 +21,25 @@ minecraft { } } +repositories { + maven { + url "https://cursemaven.com" + content { + includeGroup "curse.maven" + } + } +} + dependencies { compileOnly group:'org.spongepowered', name:'mixin', version:'0.8.5' implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' + + // CC: R and TARDIM + //implementation("curse.maven:cc-restitched-462672:3908334") + compileOnly("org.squiddev:cc-tweaked-1.19.1:${cc_version}") + compileOnly("curse.maven:tardim-531315:4453925") + //implementation ("org.squiddev:cc-tweaked-1.19.1:${cc_version}") + } processResources { diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java new file mode 100644 index 0000000..28359ff --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java @@ -0,0 +1,54 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import com.swdteam.common.command.tardim.CommandTardimBase; +import com.swdteam.common.command.tardim.ICommand; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; + + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.player.Player; + +//import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; + +public class CommandCloisterBell implements ICommand { + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 0) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + try { + CommandTardimBase.sendResponse(player, "", CommandTardimBase.ResponseType.COMPLETE, source); + } catch (Exception var9) { + CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source); + } + } else { + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "cloisterBell"; + } + + @Override + public String getUsage() { + return "cloisterBell"; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java similarity index 81% rename from Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java rename to Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java index 70f30ab..82912cc 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -1,8 +1,8 @@ package su.a71.tardim_ic.tardim_ic.command; // This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public +// 13.04.23 ITS ALIVE -import com.mojang.brigadier.Command; import com.swdteam.common.command.tardim.CommandTardimBase; import com.swdteam.common.command.tardim.ICommand; import com.swdteam.tardim.TardimData; @@ -19,7 +19,7 @@ import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; public class CommandModemTransmit implements ICommand { @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { - if (args.length == 3) { + if (args.length == 3) { // TODO: 3 or 4??? TardimData data = TardimManager.getFromPos(pos); if (data != null) { if (data.hasPermission(player)) { @@ -41,16 +41,16 @@ public class CommandModemTransmit implements ICommand { ComputerCraftAPI.getWirelessNetwork().transmitSameDimension(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos())), 300); } - sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source); + CommandTardimBase.sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source); } catch (Exception var9) { - sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source); + CommandTardimBase.sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source); } } else { - sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); } } } else { - sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); } } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java similarity index 100% rename from Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java rename to Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java new file mode 100644 index 0000000..1b25632 --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -0,0 +1,13 @@ +package su.a71.tardim_ic.tardim_ic.registration; + + +import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; +import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; +import com.swdteam.common.init.CommandManager; + +public class CommandInit { + public static void init() { + CommandManager.register(new CommandModemTransmit()); + CommandManager.register(new CommandCloisterBell()); + } +} diff --git a/Common/src/main/resources/assets/tardim_ic/icon.png b/Common/src/main/resources/icon.png similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/icon.png rename to Common/src/main/resources/icon.png diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index d928b3f..1677e42 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,6 +1,7 @@ package su.a71.tardim_ic.tardim_ic; import com.google.common.collect.Sets; +import com.swdteam.common.command.tardim.ICommand; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java index 6e31198..c0e9ed3 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java @@ -5,6 +5,8 @@ import net.minecraftforge.fml.common.Mod; import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.registration.CommandInit; + // The value here should match an entry in the META-INF/mods.toml file @Mod(Constants.MOD_ID) public class TardimInControl { @@ -14,6 +16,8 @@ public class TardimInControl { public TardimInControl() { Registration.register(); + CommandInit.init(); // Register commands + // Register ourselves for server and other game events we are interested in. Currently, we do not use any events MinecraftForge.EVENT_BUS.register(this); } diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index 3133d7a..8482b4b 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -1,7 +1,7 @@ modLoader = "javafml" #mandatory loaderVersion="[43,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. -license = "All rights reserved" +license = "MIT" [[mods]] #mandatory # The modid of the mod modId = "tardim_ic" #mandatory @@ -12,6 +12,8 @@ displayName = "TARDIM: In Control" #mandatory description = ''' All of time and space, now automated. Control your TARDIM using ComputerCraft: Tweaked. ''' +logoFile = "icon.png" +authors = "Andrew_7_1" # A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. [[dependencies.tardim_ic]] #optional # the modid of the dependency diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7508967 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Andrey Nikitin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/gradle.properties b/gradle.properties index 4c8926d..783e70d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ fabric_version=0.62.0+1.19.2 fabric_loader_version=0.14.9 # Mod options -mod_name="tardim_in_control" +mod_name=tardim_in_control mod_author=Andrew_7_1 mod_id=tardim_ic From f4ad2518952169ecc7a0d39d42a4f466a05d77f4 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Fri, 14 Apr 2023 17:52:30 +0300 Subject: [PATCH 31/61] Fabric?! IMPOSSIBLE --- Common/build.gradle | 5 +- Fabric/build.gradle | 6 ++ .../a71/tardim_ic/tardim_ic/Registration.java | 50 +++++++++ .../tardim_ic/tardim_ic/TardimInControl.java | 1 + .../redstone_input/RedstoneInputBlock.java | 101 ++++++++++++++++++ .../RedstoneInputTileEntity.java | 18 ++++ Fabric/src/main/resources/fabric.mod.json | 25 ++--- Fabric/src/main/resources/modid.mixins.json | 15 --- .../tardim_ic/tardim_ic/TardimInControl.java | 4 +- .../command/CommandCloisterBell.java | 0 .../command/CommandModemTransmit.java | 2 - .../tardim_ic/command/CommandSender.java | 0 .../redsone_input/RedstoneInputBlock.java | 8 +- .../tardim_ic/registration/CommandInit.java | 0 README.md | 2 +- gradle.properties | 2 +- 16 files changed, 195 insertions(+), 44 deletions(-) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java delete mode 100644 Fabric/src/main/resources/modid.mixins.json rename {Common => Forge}/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java (100%) rename {Common => Forge}/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java (97%) rename {Common => Forge}/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java (100%) rename {Common => Forge}/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java (100%) diff --git a/Common/build.gradle b/Common/build.gradle index 442df8e..16f36a0 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -36,10 +36,9 @@ dependencies { // CC: R and TARDIM //implementation("curse.maven:cc-restitched-462672:3908334") - compileOnly("org.squiddev:cc-tweaked-1.19.1:${cc_version}") - compileOnly("curse.maven:tardim-531315:4453925") + //compileOnly("org.squiddev:cc-tweaked-1.19.1:${cc_version}") + //compileOnly("curse.maven:tardim-531315:4453925") //implementation ("org.squiddev:cc-tweaked-1.19.1:${cc_version}") - } processResources { diff --git a/Fabric/build.gradle b/Fabric/build.gradle index 337a4a2..25559d8 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -13,6 +13,12 @@ dependencies { modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' implementation project(":Common") + + modApi 'com.electronwill.night-config:core:3.6.3' + modApi 'com.electronwill.night-config:toml:3.6.3' + + modImplementation "curse.maven:tardim-531315:4453924" + modImplementation "curse.maven:cc-restitched-462672:3908334" } loom { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java new file mode 100644 index 0000000..200a45d --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -0,0 +1,50 @@ +package su.a71.tardim_ic.tardim_ic; + +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.core.Registry; + +import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; + + +//import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; +//import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; +import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; +import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; + +import su.a71.tardim_ic.tardim_ic.Constants; + +public class Registration { + // Blocks + + //public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); + public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); + + // Tile Entities + //public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); + //public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY= new RedstoneInputTileEntity(); + public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY = Registry.register( + Registry.BLOCK_ENTITY_TYPE, + new ResourceLocation("tardim_ic", "redstone_tardim_input"), + FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, REDSTONE_TARDIM_INPUT).build() + ); + + private static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder + .create(new ResourceLocation("tardim_ic", "main")) + .icon(() -> new ItemStack(REDSTONE_TARDIM_INPUT)) + .build(); + + + // Register our stuff + public static void register() { + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new FabricItemSettings().tab(TARDIM_IC_TAB))); + + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java index 9f2bd38..785cf51 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java @@ -6,5 +6,6 @@ public class TardimInControl implements ModInitializer { @Override public void onInitialize() { + Registration.register(); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java new file mode 100644 index 0000000..4caefbb --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java @@ -0,0 +1,101 @@ +package su.a71.tardim_ic.tardim_ic.redstone_input; + +import com.swdteam.tardim.common.block.BlockBaseTardimPanel; +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.common.init.TRDSounds; +import com.swdteam.tardim.network.NetworkHandler; +import com.swdteam.tardim.network.PacketOpenEditGui; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; + +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.DebugPackets; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.phys.BlockHitResult; + +import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.Registration; + +import javax.annotation.Nullable; + +public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock { + private boolean isPowered = false; + private Player lastPlayer = null; + public RedstoneInputBlock() { + super(FabricBlockSettings.of(Material.METAL).strength(2, 4)); // No occlusion? + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.create(pos, state); + } + + @Override + public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { + if (!w.isClientSide) { + + w.playSound(null, blockPos, TRDSounds.TARDIM_BEEP, SoundSource.BLOCKS, 0.3F, 0.5F); + + BlockEntity be = w.getBlockEntity(blockPos); + if (be instanceof TileEntityBaseTardimPanel && w.dimension() == TRDDimensions.TARDIS) { + TardimData data = TardimManager.getFromPos(blockPos); + if (data != null && data.hasPermission(player)) { + this.lastPlayer = player; + NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(blockPos, 1)); + return InteractionResult.CONSUME; + } + + player.displayClientMessage( + Component.literal("You do not have permission").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true + ); + } + } + + return InteractionResult.CONSUME; + } + + public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { + return true; + } + + public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { + DebugPackets.sendNeighborsUpdatePacket(level, blockPos); + + // get redstone signal + Direction direction = blockState.getValue(FACING); + int redstoneSignal = level.getSignal(blockPos, direction); + if (redstoneSignal > 0 && !isPowered) { + isPowered = true; + BlockEntity be = level.getBlockEntity(blockPos); + if (be instanceof TileEntityBaseTardimPanel && level.dimension() == TRDDimensions.TARDIS) { + TardimData data = TardimManager.getFromPos(blockPos); + if (data != null && !level.isClientSide && this.lastPlayer != null) { + if (((TileEntityBaseTardimPanel)be).hasCommand()) { + ((TileEntityBaseTardimPanel)be).execute(this.lastPlayer); + } + } + } + + } else if (redstoneSignal == 0 && isPowered) + isPowered = false; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java new file mode 100644 index 0000000..0d67be3 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java @@ -0,0 +1,18 @@ +package su.a71.tardim_ic.tardim_ic.redstone_input; + +import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; +import su.a71.tardim_ic.tardim_ic.Registration; + + +public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { + public RedstoneInputTileEntity(BlockPos pos, BlockState state) { + super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY, pos, state); + } + + public BlockPos getPos() { + return this.worldPosition; + } +} diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 4cbbe42..7bd0ab7 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -1,39 +1,34 @@ { "schemaVersion": 1, - "id": "modid", + "id": "tardim_ic", "version": "${version}", - "name": "Example Mod", - "description": "This is an example description! Tell everyone what your mod is about!", + "name": "Tardim: In Control", + "description": "All of time and space, now automated. Control your TARDIM using ComputerCraft: Tweaked.", "authors": [ - "Me!" + "Andrew_7_1" ], "contact": { "homepage": "https://fabricmc.net/", "sources": "https://github.com/FabricMC/fabric-example-mod" }, - "license": "CC0-1.0", - "icon": "assets/modid/icon.png", + "license": "MIT", + "icon": "icon.png", "environment": "*", "entrypoints": { "main": [ - "com.example.examplemod.ExampleMod" + "su.a71.tardim_ic.tardim_ic.TardimInControl" ] }, - "mixins": [ - "modid.mixins.json" - ], "depends": { - "fabricloader": ">=0.14", + "fabricloader": ">=0.14.10", "fabric": "*", "minecraft": "1.19.x", - "java": ">=17" - }, - "suggests": { - "another-mod": "*" + "java": ">=17", + "tardim": ">=1.2.2" } } \ No newline at end of file diff --git a/Fabric/src/main/resources/modid.mixins.json b/Fabric/src/main/resources/modid.mixins.json deleted file mode 100644 index 77cce1a..0000000 --- a/Fabric/src/main/resources/modid.mixins.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "required": true, - "minVersion": "0.8", - "package": "com.example.examplemod.mixin", - "compatibilityLevel": "JAVA_17", - "mixins": [ - ], - "client": [ - "ExampleMixin" - ], - "injectors": { - "defaultRequire": 1 - } - } - diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java index c0e9ed3..07c89cd 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java @@ -3,8 +3,6 @@ package su.a71.tardim_ic.tardim_ic; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; -import su.a71.tardim_ic.tardim_ic.Constants; - import su.a71.tardim_ic.tardim_ic.registration.CommandInit; // The value here should match an entry in the META-INF/mods.toml file @@ -12,7 +10,7 @@ import su.a71.tardim_ic.tardim_ic.registration.CommandInit; public class TardimInControl { // Our mod id - public static final String MODID = "tardim_ic"; + public static final String MODID = Constants.MOD_ID; public TardimInControl() { Registration.register(); diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java similarity index 100% rename from Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java rename to Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java similarity index 97% rename from Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java rename to Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java index 82912cc..47637d6 100644 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -14,8 +14,6 @@ import net.minecraft.world.entity.player.Player; import dan200.computercraft.api.network.Packet; import dan200.computercraft.api.ComputerCraftAPI; -import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; - public class CommandModemTransmit implements ICommand { @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java similarity index 100% rename from Common/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java rename to Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java index f1856bc..bdfd4aa 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java @@ -1,7 +1,6 @@ package su.a71.tardim_ic.tardim_ic.redsone_input; import com.swdteam.common.block.BlockBaseTardimPanel; - import com.swdteam.common.init.TRDDimensions; import com.swdteam.common.init.TRDSounds; import com.swdteam.network.NetworkHandler; @@ -29,14 +28,15 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.BlockHitResult; -import net.minecraftforge.common.util.FakePlayerFactory; + +import net.minecraftforge.common.util.FakePlayerFactory; // TODO: ??? import net.minecraftforge.server.ServerLifecycleHooks; + import org.jetbrains.annotations.NotNull; +import javax.annotation.Nullable; import su.a71.tardim_ic.tardim_ic.Registration; -import javax.annotation.Nullable; - public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock { private boolean isPowered = false; public RedstoneInputBlock() { diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java similarity index 100% rename from Common/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java rename to Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java diff --git a/README.md b/README.md index d5eb344..3bc4e59 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# TARDIM: In Control +# TARDIM: In Control ![Modrinth Downloads](https://img.shields.io/modrinth/dt/tardim-in-control?color=00AF5C&label=modrinth&style=flat&logo=modrinth) ### All of time and space, *now automated*. This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers and redstone using a new blocks and peripherals. diff --git a/gradle.properties b/gradle.properties index 783e70d..ffd83e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,7 @@ forge_version=43.1.30 # Fabric fabric_version=0.62.0+1.19.2 -fabric_loader_version=0.14.9 +fabric_loader_version=0.14.10 # Mod options mod_name=tardim_in_control From c396617f30c34915b229d2789f2f39dbdb7aeef0 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Fri, 14 Apr 2023 17:58:36 +0300 Subject: [PATCH 32/61] Forge? I hardly knew 'er! --- .../DigitalInterfaceBlock.java | 1 + .../DigitalInterfacePeripheral.java | 50 +++++++++++++------ .../DigitalInterfaceTileEntity.java | 4 +- .../tardim_ic/tardim_ic/sonic/SonicProbe.java | 22 -------- Forge/src/main/resources/META-INF/mods.toml | 2 +- 5 files changed, 41 insertions(+), 38 deletions(-) delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java index bb51307..284345f 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java @@ -7,6 +7,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import org.jetbrains.annotations.NotNull; + import su.a71.tardim_ic.tardim_ic.Registration; import javax.annotation.Nullable; diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index a095ec9..dc1dafa 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -1,8 +1,6 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; import com.mojang.datafixers.util.Pair; - -import com.swdteam.common.init.TardimRegistry; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; @@ -19,7 +17,6 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.server.ServerLifecycleHooks; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IComputerAccess; @@ -31,6 +28,7 @@ import dan200.computercraft.api.lua.LuaException; import com.swdteam.tardim.TardimData; import com.swdteam.tardim.TardimManager; import com.swdteam.tardim.TardimData.Location; +import com.swdteam.common.init.TardimRegistry; //import com.swdteam.tardim.tardim.TardimManager; //import com.swdteam.tardim.tardim.TardimData; @@ -378,6 +376,9 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void home() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } TardimData data = getTardimData(); UUID uuid = data.getOwner(); @@ -386,7 +387,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { throw new LuaException("TARDIM has no owner"); } - PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); ServerPlayer player = playerList.getPlayer(uuid); if (player == null) { throw new LuaException("TARDIM owner is not online"); @@ -408,8 +409,13 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void locatePlayer(String username) throws LuaException { - PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); - ServerPlayer player = playerList.getPlayerByName(username); + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + + ServerPlayer player = playerList.getPlayerByName(username); if (player == null) { throw new LuaException("Player not found"); } @@ -428,7 +434,11 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final ObjectLuaTable getOnlinePlayers() throws LuaException { - PlayerList playerList = ServerLifecycleHooks.getCurrentServer().getPlayerList(); + if (this.tileEntity.getLevel().isClientSide()) { + return null; + } + + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); Map players = new HashMap<>(); for (int i = 0; i < playerList.getPlayers().size(); i++) { players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); @@ -533,13 +543,17 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void demat() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + TardimData data = getTardimData(); if (data.isInFlight()) { throw new LuaException("TARDIM is already in flight"); } Location loc = data.getCurrentLocation(); - ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(loc.getLevel()); + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); ItemTardim.destroyTardim(level, loc.getPos(), Direction.NORTH); data.setInFlight(true); if (data.getTravelLocation() == null) { @@ -548,7 +562,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { // TODO: This is a horrendous way of doing this. Please fix. String level_str = "tardim:tardis_dimension"; - ServerLifecycleHooks.getCurrentServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_TAKEOFF.get(), SoundSource.AMBIENT, 1.0F, 1.0F); + this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_TAKEOFF.get(), SoundSource.AMBIENT, 1.0F, 1.0F); data.save(); } @@ -560,14 +574,18 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void remat() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + TardimData data = getTardimData(); if (data.isInFlight()) { if (data.getTimeEnteredFlight() < System.currentTimeMillis() / 1000L - 10L) { Location loc = data.getTravelLocation(); - ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(loc.getLevel()); + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); double fuel = data.calculateFuelForJourney( - ServerLifecycleHooks.getCurrentServer().getLevel(data.getCurrentLocation().getLevel()), level, data.getCurrentLocation().getPos(), loc.getPos() + this.tileEntity.getLevel().getServer().getLevel(data.getCurrentLocation().getLevel()), level, data.getCurrentLocation().getPos(), loc.getPos() ); if (data.getFuel() >= fuel) { level.getChunk(loc.getPos()); @@ -642,7 +660,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { // } String level_str = "tardim:tardis_dimension"; - ServerLifecycleHooks.getCurrentServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_LANDING.get(), SoundSource.AMBIENT, 1.0F, 1.0F); + this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_LANDING.get(), SoundSource.AMBIENT, 1.0F, 1.0F); } else { throw new LuaException("TARDIM landing obstructed. Aborting..."); @@ -667,12 +685,16 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void locateBiome(String biome_str) throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + TardimData data = getTardimData(); if (data.getTravelLocation() == null) { data.setTravelLocation(new Location(data.getCurrentLocation())); } - Optional biome = ServerLifecycleHooks.getCurrentServer() + Optional biome = this.tileEntity.getLevel().getServer() .registryAccess() .registryOrThrow(Registry.BIOME_REGISTRY) .getOptional(new ResourceLocation(biome_str)); @@ -681,7 +703,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { data.setTravelLocation(new Location(data.getCurrentLocation())); } - ServerLevel level = ServerLifecycleHooks.getCurrentServer().getLevel(data.getTravelLocation().getLevel()); + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(data.getTravelLocation().getLevel()); BlockPos blockpos = new BlockPos( data.getTravelLocation().getPos().getX(), level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, data.getTravelLocation().getPos()).getY(), diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java index a598d83..b8bdfc9 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -4,15 +4,17 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; + import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; + import org.jetbrains.annotations.NotNull; import su.a71.tardim_ic.tardim_ic.Registration; import dan200.computercraft.api.peripheral.IPeripheral; import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; -public class DigitalInterfaceTileEntity extends BlockEntity { +public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalInterfaceTileEntity { public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get(), pos, state); diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java deleted file mode 100644 index 2a3cfe5..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java +++ /dev/null @@ -1,22 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.sonic; - -import net.minecraft.world.item.Item; - -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; - -import com.swdteam.client.gui.GuiCommandScreen; - -public class SonicProbe extends Item { - private TardimData tardim; - public SonicProbe(Properties properties) { - super(properties.stacksTo(1)); - } - - public void setTardim(TardimData tardim) { - this.tardim = tardim; - } - - // Add tile entity - -} diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index 8482b4b..eadc068 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -37,7 +37,7 @@ side = "BOTH" modId = "tardim" mandatory = true versionRange = "1.2.2" -ordering = "NONE" +ordering = "AFTER" side = "BOTH" [[dependencies.tardim_ic]] modId = "minecraft" From c43331624e854df3033ea200d4bb29b1495cbd3e Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Fri, 14 Apr 2023 19:35:57 +0300 Subject: [PATCH 33/61] 4 and a half billion years of coding later --- .../FakeDigitalInterfaceTileEntity.java | 24 + .../IDigitalInterfaceEntity.java | 9 + .../assets/tardim_ic/lang/en_uk.json | 3 +- .../assets/tardim_ic/lang/en_us.json | 3 +- .../resources/assets/tardim_ic/lang/rpr.json | 4 +- .../assets/tardim_ic/lang/ru_ru.json | 3 +- Fabric/build.gradle | 3 + .../a71/tardim_ic/tardim_ic/Registration.java | 24 +- .../DigitalInterfaceBlock.java | 26 + .../DigitalInterfacePeripheral.java | 759 ++++++++++++++++++ .../DigitalInterfacePeripheralProvider.java | 21 + .../DigitalInterfaceTileEntity.java | 24 + Fabric/src/main/resources/fabric.mod.json | 3 +- .../DigitalInterfaceTileEntity.java | 2 +- 14 files changed, 896 insertions(+), 12 deletions(-) create mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java create mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java new file mode 100644 index 0000000..bcfe79d --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java @@ -0,0 +1,24 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +public class FakeDigitalInterfaceTileEntity implements IDigitalInterfaceEntity { + public BlockPos blockPos; + public Level level; + + FakeDigitalInterfaceTileEntity(BlockPos in_block, Level in_level) { + this.blockPos = in_block; + this.level = in_level; + } + + @Override + public BlockPos getPos() { + return this.blockPos; + } + + @Override + public Level getLevel() { + return this.level; + } +} diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java new file mode 100644 index 0000000..bdcfbb0 --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java @@ -0,0 +1,9 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +public interface IDigitalInterfaceEntity { + public BlockPos getPos(); + public Level getLevel(); +} diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json index 4d99f9d..db92b1c 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -1,5 +1,6 @@ { "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", - "itemGroup.tardim_ic": "TARDIM: In Control" + "itemGroup.tardim_ic": "TARDIM: In Control", + "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json index 4d99f9d..db92b1c 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -1,5 +1,6 @@ { "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", - "itemGroup.tardim_ic": "TARDIM: In Control" + "itemGroup.tardim_ic": "TARDIM: In Control", + "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/rpr.json b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json index d28a924..cfa537a 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/rpr.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json @@ -1,5 +1,7 @@ { "block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки", "block.tardim_ic.redstone_tardim_input": "Краснокаменный Инпутъ Хронобудки", - "itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ" + "itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ", + "itemGroup.minecraft.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ" + } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json index 09b05b1..7176736 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -1,5 +1,6 @@ { "block.tardim_ic.digital_tardim_interface": "Цифровой интерфейс TARDIM", "block.tardim_ic.redstone_tardim_input": "Редстоуновый ввод TARDIM", - "itemGroup.tardim_ic": "TARDIM: In Control" + "itemGroup.tardim_ic": "TARDIM: In Control", + "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/Fabric/build.gradle b/Fabric/build.gradle index 25559d8..e9f8306 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -14,8 +14,11 @@ dependencies { implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' implementation project(":Common") + // Blame CC: Restitched for this... modApi 'com.electronwill.night-config:core:3.6.3' modApi 'com.electronwill.night-config:toml:3.6.3' + modApi 'org.squiddev:Cobalt:0.5.5' + modImplementation "io.netty:netty-codec-http:4.1.77.Final" modImplementation "curse.maven:tardim-531315:4453924" modImplementation "curse.maven:cc-restitched-462672:3908334" diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 200a45d..0e4c6d2 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,5 +1,6 @@ package su.a71.tardim_ic.tardim_ic; +import dan200.computercraft.api.ComputerCraftAPI; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.BlockItem; @@ -13,8 +14,10 @@ import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; -//import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; -//import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfacePeripheralProvider; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; + import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; @@ -23,21 +26,26 @@ import su.a71.tardim_ic.tardim_ic.Constants; public class Registration { // Blocks - //public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); + public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); // Tile Entities //public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); - //public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY= new RedstoneInputTileEntity(); public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY = Registry.register( Registry.BLOCK_ENTITY_TYPE, new ResourceLocation("tardim_ic", "redstone_tardim_input"), FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, REDSTONE_TARDIM_INPUT).build() ); + public static final BlockEntityType DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registry.register( + Registry.BLOCK_ENTITY_TYPE, + new ResourceLocation("tardim_ic", "digital_tardim_interface"), + FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() + ); + private static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder - .create(new ResourceLocation("tardim_ic", "main")) - .icon(() -> new ItemStack(REDSTONE_TARDIM_INPUT)) + .create(new ResourceLocation("tardim_ic")) + .icon(() -> new ItemStack(DIGITAL_TARDIM_INTERFACE)) .build(); @@ -46,5 +54,9 @@ public class Registration { Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new FabricItemSettings().tab(TARDIM_IC_TAB))); + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(TARDIM_IC_TAB))); + + ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java new file mode 100644 index 0000000..9f1ee66 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java @@ -0,0 +1,26 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.Registration; + +import javax.annotation.Nullable; + + +public class DigitalInterfaceBlock extends Block implements EntityBlock { + + public DigitalInterfaceBlock() { + super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.create(pos, state); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java new file mode 100644 index 0000000..14ad22d --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -0,0 +1,759 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import com.mojang.datafixers.util.Pair; +import com.swdteam.tardim.common.command.tardim.CommandTravel; +import com.swdteam.tardim.common.data.DimensionMapReloadListener; +import com.swdteam.tardim.common.init.TRDSounds; +import com.swdteam.tardim.common.init.TardimRegistry; +import com.swdteam.tardim.common.item.ItemTardim; +import com.swdteam.tardim.main.Tardim; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimData.Location; +import com.swdteam.tardim.tardim.TardimManager; + +import dan200.computercraft.api.lua.LuaException; +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.lua.ObjectLuaTable; +import dan200.computercraft.api.peripheral.IComputerAccess; +import dan200.computercraft.api.peripheral.IPeripheral; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.players.PlayerList; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.levelgen.Heightmap; +import net.minecraft.world.phys.Vec3; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.*; + + +public class DigitalInterfacePeripheral implements IPeripheral { + + private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral + private final IDigitalInterfaceEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates + + /** + * @param tileEntity the tile entity of this peripheral + * @hidden + */ + public DigitalInterfacePeripheral(IDigitalInterfaceEntity tileEntity) { + this.tileEntity = tileEntity; + } + + /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + * @hidden + */ + @Nonnull + @Override + public String getType() { return "digital_tardim_interface"; } + + /** Apparently CC uses this to check if the peripheral in front of a modem is this one + * @hidden + * @param iPeripheral The peripheral to compare against. This may be {@code null}. + * @return {@code true} if the peripheral is the same as this one. + */ + @Override + public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } + + /** Called when a computer disconnects from the peripheral + * @hidden + * @param computer The interface to the computer that is being detached. Remember that multiple computers can be + * attached to a peripheral at once. + */ + @Override + public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } + + /** Called when a computer connects to the peripheral + * @hidden + * @param computer The interface to the computer that is being attached. Remember that multiple computers can be + * attached to a peripheral at once. + */ + @Override + public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } + + /** + * I *think* I use this to get peripheral's world position + * @hidden + * @return + */ + public IDigitalInterfaceEntity getTileEntity() { + return tileEntity; + } + + + /** + * Get TARDIM's data, which we need for *every* function + *

+ * We can't do a simple + * TardimManager.getFromPos(getTileEntity().getPos()) + *

+ * because if someone attempts to call a method outside a TARDIM, this would create a new TARDIM/Point to the one with ID of 0 (Due to the way TardimSaveHandler.loadTardisData works). + * Which is obviously not what we want. + *

+ * So instead we use this, and get the ability to give user a LuaException if they think that fiddling with time is funny + * This is mostly a copy of getIDForXZ function with some added checks + * + * @return TardimData of the TARDIM that the peripheral is in + * @throws LuaException if the peripheral is not in a TARDIM + * @hidden + */ + public TardimData getTardimData() throws LuaException { + int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); + + int index = 0; + int x = 0; + int y = 0; + int dx = 0; + int dy = 1; + int segment_length = 1; + int segment_passed = 0; + boolean found = false; + long timecheck = System.currentTimeMillis(); + + while(true) { + if (System.currentTimeMillis() - timecheck > 10000L) { + System.out.println("Finding ID from XZ Coordinates is taking too long!"); + break; + } + + if (X >= x * TardimManager.INTERIOR_BOUNDS + && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS + && Z >= y * TardimManager.INTERIOR_BOUNDS + && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { + found = true; + break; + } + + x += dx; + y += dy; + if (++segment_passed == segment_length) { + segment_passed = 0; + int buffer = dy; + dy = -dx; + dx = buffer; + if (buffer == 0) { + ++segment_length; + } + } + + ++index; + } + + // We really don't want to access a ghost TARDIM, do we? + if (!found) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + TardimData T = TardimManager.getTardim(index); + if (T.getCurrentLocation() == null || T.getOwnerName() == null) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + + return T; + } + + // Peripheral methods =============================================================== + + /** + * Return how much fuel is left in the TARDIM + * + * @return Fuel left (Out of 100) + */ + @LuaFunction(mainThread = true) + public final double getFuel() throws LuaException { + return getTardimData().getFuel(); + } + + /** + * Get how much fuel it would take to travel to the destination + * @return Amount of fuel needed (Out of 100) + */ + @LuaFunction(mainThread = true) + public final double calculateFuelForJourney() throws LuaException { + TardimData data = getTardimData(); + + if (data.getTravelLocation() == null) return 0; + + Location curr = data.getCurrentLocation(); + Location dest = data.getTravelLocation(); + + double fuel = 0.0; + + if (curr.getLevel() != dest.getLevel()) + { + fuel = 10.0; + } + + Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ()); + Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ()); + fuel += posA.distanceTo(posB) / 100.0; + if (fuel > 100.0) fuel = 100.0; + + return fuel; + } + + /** + * Check whether the TARDIM is locked + * @return true if locked, false if not + */ + @LuaFunction(mainThread = true) + public final boolean isLocked() throws LuaException { + return getTardimData().isLocked(); + } + + /** + * Check whether the TARDIM is in flight + * @return true if in flight, false if not + */ + @LuaFunction(mainThread = true) + public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); } + + /** + * Supposedly gets UNIX timestamp of when we entered flight + * @return UNIX timestamp if in flight, -1 if not + */ + @LuaFunction(mainThread = true) + public final long getTimeEnteredFlight() throws LuaException { + TardimData data = getTardimData(); + if (!data.isInFlight()) { + return -1; + } + return data.getTimeEnteredFlight(); + } + + /** + * Get username of the TARDIM's owner + * @return String of the owner's username + */ + @LuaFunction(mainThread = true) + public final String getOwnerName() throws LuaException { + TardimData data = getTardimData(); + return data.getOwnerName(); + } + + /** + * Lock/unlock the TARDIM + * @param locked true to lock, false to unlock + */ + @LuaFunction(mainThread = true) + public final void setLocked(boolean locked) throws LuaException { + getTardimData().setLocked(locked); + } + + /** + * Get the current location of the TARDIM + * @return ObjectLuaTable of the current location with the following keys: + *

+ */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getCurrentLocation() throws LuaException { + Location loc = getTardimData().getCurrentLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } + + /** + * Get the current location of the TARDIM + * @return if there is no destination returns null. + *

+ * Otherwise, ObjectLuaTable of the current location with the following keys: + *

    + *
  • dimension - String of the dimension
  • + *
  • pos - table with the keys x, y, z that hold numbers
  • + *
  • facing - String of the facing
  • + *
+ */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getTravelLocation() throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(data.getCurrentLocation()); + } + Location loc = data.getTravelLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } + + /** + * Get list of the TARDIM owner's companions + * @return ObjectLuaTable containing the usernames of the companions + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getCompanions() throws LuaException { + TardimData data = getTardimData(); + Map companions = new HashMap<>(); + for (int i = 0; i < data.getCompanions().size(); i++) { + companions.put(i + 1, data.getCompanions().get(i).getUsername()); + } + return new ObjectLuaTable(companions); + } + + /** + * CommandTravel.isValidPath is for some reason private on Fabric so we reverse engineer it :/ + * SWDteam pls fix + * @hidden + */ + private static boolean isValidPathTemp(String s) { + for(int i = 0; i < s.length(); ++i) { + if (!CommandTravel.validPathChar(s.charAt(i))) { + return false; + } + } + return true; + } + + /** + * Set dimension for the TARDIM to travel to + *

+ * This is a serious hazard right now due to the fact that I am unable to check if the dimension is valid. + *

+ * TODO: If invalid dimension is given, the TARDIM is unable to land until the dimension is changed. Add proper checks. + * @param dimension String of the dimension e.g. "minecraft:overworld" + */ + @LuaFunction(mainThread = true) + public final void setDimension(String dimension) throws LuaException { + TardimData data = getTardimData(); + + String key = dimension; + dimension = DimensionMapReloadListener.toTitleCase(dimension); + if (TardimManager.DIMENSION_MAP.containsKey(dimension)) { + key = (String)TardimManager.DIMENSION_MAP.get(dimension); + } else { + dimension = dimension.toLowerCase(); + } + + if (!isValidPathTemp(key)) { + throw new LuaException("Invalid dimension"); + } else { + ResourceKey dim = ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(dimension)); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + data.getTravelLocation().setLocation(dim); + } + } + + /** + * Set the destination's coordinates + * @param x X coordinate + * @param y Y coordinate + * @param z Z coordinate + */ + @LuaFunction(mainThread = true) + public final void setTravelLocation(int x, int y, int z) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + data.getTravelLocation().setPosition(x, y, z); + } + + + /** + * Set destination to the TARDIM's owner's home (Must be online) + */ + @LuaFunction(mainThread = true) + public final void home() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + TardimData data = getTardimData(); + + UUID uuid = data.getOwner(); + String username = data.getOwnerName(); + if (uuid == null || username == null) { + throw new LuaException("TARDIM has no owner"); + } + + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + ServerPlayer player = playerList.getPlayer(uuid); + if (player == null) { + throw new LuaException("TARDIM owner is not online"); + } + + ResourceKey dim = player.getRespawnDimension(); + BlockPos pos = player.getRespawnPosition(); + if (pos == null) { + throw new LuaException("TARDIM owner has no home"); + } + + setDimension(dim.location().toString()); + setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); + } + + /** + * Set destination for a player's location (Player must be online) + * @param username - String of the username of the player + */ + @LuaFunction(mainThread = true) + public final void locatePlayer(String username) throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + + ServerPlayer player = playerList.getPlayerByName(username); + if (player == null) { + throw new LuaException("Player not found"); + } + + ResourceKey dim = player.getCommandSenderWorld().dimension(); + BlockPos pos = player.blockPosition(); + + setDimension(dim.location().toString()); + setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); + } + + /** + * Get online players. Useful for making a GUI for the locate function or just a nice dashboard. + * + * @return ObjectLuaTable of the online players + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getOnlinePlayers() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return null; + } + + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + Map players = new HashMap<>(); + for (int i = 0; i < playerList.getPlayers().size(); i++) { + players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); + } + + return new ObjectLuaTable(players); + } + + /** + * Get the rotation of the TARDIM's door + * @return String of the door rotation ("north", "south", "east", "west") + */ + @LuaFunction(mainThread = true) + public final String getDoorRotation() throws LuaException { + TardimData data = getTardimData(); + Direction rotation = data.getTravelLocation().getFacing(); + switch (rotation) { + case NORTH -> { + return "north"; + } + case EAST -> { + return "east"; + } + case SOUTH -> { + return "south"; + } + case WEST -> { + return "west"; + } + default -> { + throw new LuaException("Invalid door rotation"); + } + } + } + + /** + * Set the rotation of the TARDIM's door + * @param rotation String of the door rotation ("north", "south", "east", "west") + */ + @LuaFunction(mainThread = true) + public final void setDoorRotation(String rotation) throws LuaException { + TardimData data = getTardimData(); + switch (rotation) { + case "north" -> data.getTravelLocation().setFacing(Direction.NORTH); + case "east" -> data.getTravelLocation().setFacing(Direction.EAST); + case "south" -> data.getTravelLocation().setFacing(Direction.SOUTH); + case "west" -> data.getTravelLocation().setFacing(Direction.WEST); + default -> throw new LuaException("Invalid door rotation"); + } + + data.save(); + } + + /** + * Toggle the rotation of the TARDIM's door (north -> east -> south -> west -> north) + */ + @LuaFunction(mainThread = true) + public final void toggleDoorRotation() throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + if (data.getTravelLocation().getFacing() == null) { + data.getTravelLocation().setFacing(Direction.NORTH); + } + + switch (data.getTravelLocation().getFacing()) { + case NORTH -> data.getTravelLocation().setFacing(Direction.EAST); + case EAST -> data.getTravelLocation().setFacing(Direction.SOUTH); + case SOUTH -> data.getTravelLocation().setFacing(Direction.WEST); + case WEST -> data.getTravelLocation().setFacing(Direction.NORTH); + default -> data.getTravelLocation().setFacing(Direction.NORTH); + } + + data.save(); + } + + /** + * Add a number to the destination's coordinates + * @param axis String of the axis ("x", "y", "z") + * @param amount Number to add to the axis + */ + @LuaFunction(mainThread = true) + public final void coordAdd(String axis, int amount) throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + Location location = data.getTravelLocation(); + switch (axis) { + case "x" -> location.addPosition(amount, 0, 0); + case "y" -> location.addPosition(0, amount, 0); + case "z" -> location.addPosition(0, 0, amount); + default -> throw new LuaException("Invalid axis"); + } + } + + /** + * Dematerialize the TARDIM + */ + @LuaFunction(mainThread = true) + public final void demat() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + + TardimData data = getTardimData(); + + if (data.isInFlight()) { + throw new LuaException("TARDIM is already in flight"); + } + Location loc = data.getCurrentLocation(); + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); + ItemTardim.destroyTardim(level, loc.getPos(), Direction.NORTH); + data.setInFlight(true); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + // TODO: This is a horrendous way of doing this. Please fix. + String level_str = "tardim:tardis_dimension"; + this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_TAKEOFF, SoundSource.AMBIENT, 1.0F, 1.0F); + + data.save(); + } + + /** + * Materialize the TARDIM at the destination + *

+ * Has a LOT of checks to make sure the TARDIM can materialize, so please implement error handling if you use this. + */ + @LuaFunction(mainThread = true) + public final void remat() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + + TardimData data = getTardimData(); + + if (data.isInFlight()) { + if (data.getTimeEnteredFlight() < System.currentTimeMillis() / 1000L - 10L) { + Location loc = data.getTravelLocation(); + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); + double fuel = data.calculateFuelForJourney( + this.tileEntity.getLevel().getServer().getLevel(data.getCurrentLocation().getLevel()), level, data.getCurrentLocation().getPos(), loc.getPos() + ); + if (data.getFuel() >= fuel) { + level.getChunk(loc.getPos()); + BlockPos landingPosButBetter = CommandTravel.getLandingPosition(level, loc.getPos()); + boolean recalc = false; + + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + + if (!recalc) { + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + } + + if (!recalc) { + for(int jj = 0; jj < 32; ++jj) { + if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + BlockPos pos2 = landingPosButBetter.offset( + level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1), + 0, + level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1) + ); + landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + recalc = true; + break; + } + } + } + } + + if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { + loc.setPosition(landingPosButBetter.getX(), landingPosButBetter.getY(), landingPosButBetter.getZ()); + if (Tardim.isPosValid(level, loc.getPos())) { + TardimRegistry.TardimBuilder builder = TardimRegistry.getTardimBuilder(data.getTardimID()); + builder.buildTardim(level, loc.getPos(), data.getTravelLocation().getFacing(), data.getId()); + data.setCurrentLocation(data.getTravelLocation()); + data.setTravelLocation(null); + data.setInFlight(false); + data.addFuel(-fuel); + data.save(); + +// if (!recalc) { +// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); +// } else { +// sendResponse(player, "Landing recalculated due to obstruction", CommandTardimBase.ResponseType.INFO, source); +// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); +// } + + String level_str = "tardim:tardis_dimension"; + this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_LANDING, SoundSource.AMBIENT, 1.0F, 1.0F); + + } else { + throw new LuaException("TARDIM landing obstructed. Aborting..."); + } + } else { + throw new LuaException("TARDIM landing obstructed. Aborting..."); + } + } else { + throw new LuaException("Not enough fuel for journey"); + } + } else { + throw new LuaException("TARDIM is still taking off"); + } + } else { + throw new LuaException("TARDIM has already landed"); + } + } + + /** + * Locate a biome + * @param biome_str String of the biome e.g. "minecraft:plains" + */ + @LuaFunction(mainThread = true) + public final void locateBiome(String biome_str) throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + Optional biome = this.tileEntity.getLevel().getServer() + .registryAccess() + .registryOrThrow(Registry.BIOME_REGISTRY) + .getOptional(new ResourceLocation(biome_str)); + if (biome != null && biome.isPresent()) { + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } + + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(data.getTravelLocation().getLevel()); + BlockPos blockpos = new BlockPos( + data.getTravelLocation().getPos().getX(), + level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, data.getTravelLocation().getPos()).getY(), + data.getTravelLocation().getPos().getZ() + ); + BlockPos blockpos1 = this.findNearestBiome(level, (Biome)biome.get(), blockpos, 6400, 8); + if (blockpos1 != null) { + data.getTravelLocation().setPosition(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ()); + data.save(); + } else { + throw new LuaException("Biome not found"); + } + } else { + throw new LuaException("Unknown biome"); + } + } + + /** + * Helper method to find a biome + * @param level ServerLevel to search + * @param biome Biome to find + * @param pos BlockPos to start from + * @param i Idk what this is, likely a radius + * @param j No idea about this either + * @return BlockPos of the biome + * @hidden + */ + public BlockPos findNearestBiome(ServerLevel level, Biome biome, BlockPos pos, int i, int j) { + Pair> bb = level.getChunkSource() + .getGenerator() + .getBiomeSource() + .findBiomeHorizontal( + pos.getX(), + pos.getY(), + pos.getZ(), + i, + j, + b_val -> b_val.value() == biome, + level.random, + true, + level.getChunkSource().randomState().sampler() + ); + return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java new file mode 100644 index 0000000..c6fea50 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java @@ -0,0 +1,21 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.peripheral.IPeripheralProvider; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; + +public class DigitalInterfacePeripheralProvider implements IPeripheralProvider { + @NotNull + @Override + public IPeripheral getPeripheral(@NotNull Level level, @NotNull BlockPos blockPos, @NotNull Direction direction) { + if (level.getBlockState(blockPos).getBlock() instanceof DigitalInterfaceBlock) { + return new DigitalInterfacePeripheral(new FakeDigitalInterfaceTileEntity(blockPos, level)); + } + + return null; + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java new file mode 100644 index 0000000..f7d9ca2 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -0,0 +1,24 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import su.a71.tardim_ic.tardim_ic.Registration; + + +public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalInterfaceEntity { + + public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { + super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); + } + + public BlockPos getPos() { + return this.worldPosition; + } + + /** + * The peripheral + */ + protected DigitalInterfacePeripheral peripheral = new DigitalInterfacePeripheral(this); +} diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 7bd0ab7..7a2f3c2 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -28,7 +28,8 @@ "fabric": "*", "minecraft": "1.19.x", "java": ">=17", - "tardim": ">=1.2.2" + "tardim": ">=1.2.2", + "computercraft": ">=1.101.0" } } \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java index b8bdfc9..6a596fc 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -14,7 +14,7 @@ import su.a71.tardim_ic.tardim_ic.Registration; import dan200.computercraft.api.peripheral.IPeripheral; import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; -public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalInterfaceTileEntity { +public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalInterfaceEntity { public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get(), pos, state); From 64be11775fa7bce360d941406ae0aa02a9fee711 Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Fri, 14 Apr 2023 23:11:44 +0300 Subject: [PATCH 34/61] I had a duty of updating --- .../a71/tardim_ic/tardim_ic/Registration.java | 2 + .../command/CommandCloisterBell.java | 47 +++++++++++++ .../command/CommandModemTransmit.java | 69 +++++++++++++++++++ .../tardim_ic/command/CommandSender.java | 39 +++++++++++ .../DigitalInterfacePeripheral.java | 38 ++++++++++ .../tardim_ic/registration/CommandInit.java | 14 ++++ .../command/CommandModemTransmit.java | 4 +- .../tardim_ic/registration/CommandInit.java | 2 +- 8 files changed, 212 insertions(+), 3 deletions(-) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 0e4c6d2..6154b6c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -22,6 +22,7 @@ import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.registration.CommandInit; public class Registration { // Blocks @@ -58,5 +59,6 @@ public class Registration { Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(TARDIM_IC_TAB))); ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); + CommandInit.init(); } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java new file mode 100644 index 0000000..00479cc --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java @@ -0,0 +1,47 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import com.swdteam.tardim.common.command.tardim.CommandTardimBase; +import com.swdteam.tardim.common.command.tardim.ICommand; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; + +//import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; + +public class CommandCloisterBell implements ICommand { + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 0) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + try { + CommandTardimBase.sendResponse(player, "", CommandTardimBase.ResponseType.COMPLETE, source); + } catch (Exception var9) { + CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source); + } + } else { + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "cloister-bell"; + } + + @Override + public String getUsage() { + return "cloister-bell"; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java new file mode 100644 index 0000000..d625d46 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -0,0 +1,69 @@ +package su.a71.tardim_ic.tardim_ic.command; + +// This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public +// 13.04.23 ITS ALIVE + +import com.swdteam.tardim.common.command.tardim.CommandTardimBase; +import com.swdteam.tardim.common.command.tardim.ICommand; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; + +import dan200.computercraft.api.ComputerCraftAPI; +import dan200.computercraft.api.network.Packet; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; + +public class CommandModemTransmit implements ICommand { + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 3) { // TODO: 3 or 4??? + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + try { + int sendChannel = Integer.parseInt(args[0]); + int replyChannel = Integer.parseInt(args[1]); + String message = args[2]; + boolean allDimensions = Boolean.parseBoolean(args[3]) || args[3].equals("true"); + + if (data.getTravelLocation() == null) { + data.setTravelLocation(new TardimData.Location(data.getCurrentLocation())); + } + + if (allDimensions) + { + ComputerCraftAPI.getWirelessNetwork().transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos()))); + } + else { + ComputerCraftAPI.getWirelessNetwork().transmitSameDimension(new Packet(sendChannel, replyChannel, message, + new CommandSender(player, data.getTravelLocation().getPos())), 300); + } + CommandTardimBase.sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source); + } catch (Exception var9) { + CommandTardimBase.sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source); + } + } else { + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "cc-modem-transmit"; + } + + @Override + public String getUsage() { + return "/cc-modem-transmit "; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java new file mode 100644 index 0000000..89af0db --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java @@ -0,0 +1,39 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import dan200.computercraft.api.network.IPacketSender; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; + +public class CommandSender implements IPacketSender { + + private final Player player; + private final Level level; + private final BlockPos pos; + + CommandSender(Player player, BlockPos pos) { + this.player = player; + this.level = player.level; + this.pos = pos; + } + + @NotNull + @Override + public Level getLevel() { + return this.level; + } + + @NotNull + @Override + public Vec3 getPosition() { + return new Vec3(this.pos.getX(), this.pos.getY(), this.pos.getZ()); + } + + @NotNull + @Override + public String getSenderID() { + return this.player.getName().getString(); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 14ad22d..93c329d 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -1,6 +1,7 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; import com.mojang.datafixers.util.Pair; +import com.swdteam.tardim.common.command.tardim.CommandTardimBase; import com.swdteam.tardim.common.command.tardim.CommandTravel; import com.swdteam.tardim.common.data.DimensionMapReloadListener; import com.swdteam.tardim.common.init.TRDSounds; @@ -756,4 +757,41 @@ public class DigitalInterfacePeripheral implements IPeripheral { ); return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; } + + @LuaFunction(mainThread = true) + public final void setSkin(String skin) throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + + TardimData data = getTardimData(); + + ResourceLocation skinToApply = null; + Iterator var13 = TardimRegistry.getRegistry().keySet().iterator(); + + label39: { + ResourceLocation builder; + TardimRegistry.TardimBuilder b; + do { + if (!var13.hasNext()) { + break label39; + } + + builder = (ResourceLocation)var13.next(); + b = TardimRegistry.getTardimBuilder(builder); + } while(!b.getDisplayName().equalsIgnoreCase(skin) && !builder.toString().equalsIgnoreCase(skin)); + + skinToApply = builder; + } + + if (skinToApply == null) { + throw new LuaException("Skin" + skin + "' not found"); + } + + TardimData.Location loc = data.getCurrentLocation(); + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); + data.setIdentifier(skinToApply); + + //TardimRegistry.getTardimBuilder(skinToApply).changeTardimSkin(data, level, loc.getPos(), loc.getFacing(), player); + } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java new file mode 100644 index 0000000..bc68ea7 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -0,0 +1,14 @@ +package su.a71.tardim_ic.tardim_ic.registration; + + +import com.swdteam.tardim.common.init.CommandManager; + +import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; +import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; + +public class CommandInit { + public static void init() { + CommandManager.register(new CommandModemTransmit()); + //CommandManager.register(new CommandCloisterBell()); + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java index 47637d6..9e95ffc 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -54,12 +54,12 @@ public class CommandModemTransmit implements ICommand { @Override public String getCommandName() { - return "ccModemTransmit"; + return "cc-modem-transmit"; } @Override public String getUsage() { - return "ccModemTransmit "; + return "/cc-modem-transmit "; } @Override diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index 1b25632..294a2cb 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -8,6 +8,6 @@ import com.swdteam.common.init.CommandManager; public class CommandInit { public static void init() { CommandManager.register(new CommandModemTransmit()); - CommandManager.register(new CommandCloisterBell()); + //CommandManager.register(new CommandCloisterBell()); } } From 926721b349505c9afc2fdeff2859fd62f6a034a6 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sat, 15 Apr 2023 09:54:40 +0300 Subject: [PATCH 35/61] NEVER TELL ME THE RULES --- .../tardim_ic/tardim_ic/utils/FakePlayer.java | 27 +++++++ .../DigitalInterfacePeripheral.java | 36 ++++++++- .../DigitalInterfacePeripheral.java | 73 ++++++++++++++++++- 3 files changed, 130 insertions(+), 6 deletions(-) create mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java new file mode 100644 index 0000000..583e975 --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java @@ -0,0 +1,27 @@ +package su.a71.tardim_ic.tardim_ic.utils; + +import com.mojang.authlib.GameProfile; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; + +import java.util.UUID; + +public class FakePlayer extends Player { + + public FakePlayer(Level lvl, BlockPos blockPos) { + super(lvl, blockPos, 0, new GameProfile(UUID.randomUUID(), "DigitalInterfaceFakePlayer"), null); + } + + @Override + public boolean isSpectator() { + return false; + } + + @Override + public boolean isCreative() { + return false; + } +} + + diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 93c329d..812e787 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -33,6 +33,7 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; +import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -758,6 +759,11 @@ public class DigitalInterfacePeripheral implements IPeripheral { return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; } + /** + * Set the skin of the TARDIM + * @param skin Skin name to change to + * @hidden + */ @LuaFunction(mainThread = true) public final void setSkin(String skin) throws LuaException { if (this.tileEntity.getLevel().isClientSide()) { @@ -785,13 +791,39 @@ public class DigitalInterfacePeripheral implements IPeripheral { } if (skinToApply == null) { - throw new LuaException("Skin" + skin + "' not found"); + throw new LuaException("Skin '" + skin + "' not found"); } TardimData.Location loc = data.getCurrentLocation(); ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); data.setIdentifier(skinToApply); - //TardimRegistry.getTardimBuilder(skinToApply).changeTardimSkin(data, level, loc.getPos(), loc.getFacing(), player); + // FakePlayer... + TardimRegistry.getTardimBuilder(skinToApply).changeTardimSkin(data, level, loc.getPos(), loc.getFacing(), new FakePlayer(this.tileEntity.getLevel(), this.tileEntity.getPos())); + } + + /** + * Get all available TARDIM skins. Useful for making a GUI skin selection. + * + * @return ObjectLuaTable of the available skins + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getSkins() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return null; + } + + Map skins = new HashMap<>(); + + Iterator var5 = TardimRegistry.getRegistry().keySet().iterator(); + int i = 0; + while(var5.hasNext()) { + ResourceLocation builder = (ResourceLocation)var5.next(); + TardimRegistry.TardimBuilder b = TardimRegistry.getTardimBuilder(builder); + skins.put(i + 1, b.getDisplayName()); + i++; + } + + return new ObjectLuaTable(skins); } } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index dc1dafa..c00164f 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -24,20 +24,17 @@ import dan200.computercraft.api.peripheral.IPeripheral; import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.lua.LuaException; -// TODO: Fabric and Forge diffirence? (Bottom: Fabric) import com.swdteam.tardim.TardimData; import com.swdteam.tardim.TardimManager; import com.swdteam.tardim.TardimData.Location; import com.swdteam.common.init.TardimRegistry; -//import com.swdteam.tardim.tardim.TardimManager; -//import com.swdteam.tardim.tardim.TardimData; - import com.swdteam.common.command.tardim.CommandTravel; import com.swdteam.common.data.DimensionMapReloadListener; import com.swdteam.common.init.TRDSounds; import com.swdteam.common.item.ItemTardim; import com.swdteam.main.Tardim; +import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -748,4 +745,72 @@ public class DigitalInterfacePeripheral implements IPeripheral { ); return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; } + + /** + * Set the skin of the TARDIM + * @param skin Skin name to change to + * @hidden + */ + @LuaFunction(mainThread = true) + public final void setSkin(String skin) throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + + TardimData data = getTardimData(); + + ResourceLocation skinToApply = null; + Iterator var13 = TardimRegistry.getRegistry().keySet().iterator(); + + label39: { + ResourceLocation builder; + TardimRegistry.TardimBuilder b; + do { + if (!var13.hasNext()) { + break label39; + } + + builder = (ResourceLocation)var13.next(); + b = TardimRegistry.getTardimBuilder(builder); + } while(!b.getDisplayName().equalsIgnoreCase(skin) && !builder.toString().equalsIgnoreCase(skin)); + + skinToApply = builder; + } + + if (skinToApply == null) { + throw new LuaException("Skin '" + skin + "' not found"); + } + + TardimData.Location loc = data.getCurrentLocation(); + ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); + data.setIdentifier(skinToApply); + + // FakePlayer... + TardimRegistry.getTardimBuilder(skinToApply).changeTardimSkin(data, level, loc.getPos(), loc.getFacing(), new FakePlayer(this.tileEntity.getLevel(), this.tileEntity.getPos())); + } + + /** + * Get all available TARDIM skins. Useful for making a GUI skin selection. + * + * @return ObjectLuaTable of the available skins + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getSkins() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return null; + } + + Map skins = new HashMap<>(); + + Iterator var5 = TardimRegistry.getRegistry().keySet().iterator(); + int i = 0; + while(var5.hasNext()) { + ResourceLocation builder = (ResourceLocation)var5.next(); + TardimRegistry.TardimBuilder b = TardimRegistry.getTardimBuilder(builder); + skins.put(i + 1, b.getDisplayName()); + i++; + } + + return new ObjectLuaTable(skins); + } } From 93c69dec492d5bc79262519b907b770ebbb5aecc Mon Sep 17 00:00:00 2001 From: Andrey Nikitin Date: Sat, 15 Apr 2023 23:56:14 +0300 Subject: [PATCH 36/61] Docked in! --- .../tardim_ic/blockstates/tardim_dock.json | 7 + .../assets/tardim_ic/lang/en_uk.json | 1 + .../assets/tardim_ic/lang/en_us.json | 1 + .../resources/assets/tardim_ic/lang/rpr.json | 1 + .../assets/tardim_ic/lang/ru_ru.json | 1 + .../tardim_ic/models/block/tardim_dock.json | 130 ++++++++++++++++++ .../tardim_ic/models/item/tardim_dock.json | 23 ++++ .../tardim_ic/textures/blocks/tardim_dock.png | Bin 0 -> 1653 bytes .../a71/tardim_ic/tardim_ic/Registration.java | 12 ++ .../tardim_dock/TardimDockBlock.java | 77 +++++++++++ .../tardim_dock/TardimDockBlockEntity.java | 30 ++++ 11 files changed, 283 insertions(+) create mode 100644 Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/item/tardim_dock.json create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_dock.png create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json new file mode 100644 index 0000000..8cda046 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tardim_ic:block/tardim_dock" + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json index db92b1c..10f9f74 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -1,6 +1,7 @@ { "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", + "block.tardim_ic.tardim_dock": "TARDIM Dock", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json index db92b1c..10f9f74 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -1,6 +1,7 @@ { "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", + "block.tardim_ic.tardim_dock": "TARDIM Dock", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/rpr.json b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json index cfa537a..d2d603b 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/rpr.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json @@ -1,6 +1,7 @@ { "block.tardim_ic.digital_tardim_interface": "Циферный Интерфейсъ Хронобудки", "block.tardim_ic.redstone_tardim_input": "Краснокаменный Инпутъ Хронобудки", + "block.tardim_ic.tardim_dock": "Конюшня для TARDIM", "itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ", "itemGroup.minecraft.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ" diff --git a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json index 7176736..1cb3857 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -1,6 +1,7 @@ { "block.tardim_ic.digital_tardim_interface": "Цифровой интерфейс TARDIM", "block.tardim_ic.redstone_tardim_input": "Редстоуновый ввод TARDIM", + "block.tardim_ic.tardim_dock": "Стыковочная станция для TARDIM", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json new file mode 100644 index 0000000..8f72de8 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json @@ -0,0 +1,130 @@ +{ + "credit": "Made with Blockbench", + "render": "translucent", + "texture_size": [64, 64], + "textures": { + "0": "tardim_ic:blocks/tardim_dock", + "particle": "tardim_ic:blocks/tardim_dock" + }, + "elements": [ + { + "from": [2, 0, 2], + "to": [14, 12, 14], + "faces": { + "north": {"uv": [4, 0, 7, 3], "texture": "#0"}, + "east": {"uv": [4, 3, 7, 6], "texture": "#0"}, + "south": {"uv": [4, 6, 7, 9], "texture": "#0"}, + "west": {"uv": [7, 0, 10, 3], "texture": "#0"}, + "up": {"uv": [10, 6, 7, 3], "texture": "#0"}, + "down": {"uv": [10, 6, 7, 9], "texture": "#0"} + } + }, + { + "from": [0, 12, 0], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 8, 4, 9], "texture": "#0"}, + "east": {"uv": [0, 9, 4, 10], "texture": "#0"}, + "south": {"uv": [4, 9, 8, 10], "texture": "#0"}, + "west": {"uv": [8, 9, 12, 10], "texture": "#0"}, + "up": {"uv": [4, 4, 0, 0], "texture": "#0"}, + "down": {"uv": [4, 4, 0, 8], "texture": "#0"} + } + }, + { + "from": [12, 0, 0], + "to": [12, 12, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "east": {"uv": [10.5, 0, 10, 3], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "west": {"uv": [10, 0, 10.5, 3], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + } + }, + { + "from": [4, 0, 14], + "to": [4, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "east": {"uv": [10, 0, 10.5, 3], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "west": {"uv": [10.5, 0, 10, 3], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [4, 0, 0], + "to": [4, 12, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "east": {"uv": [1.5, 10, 1, 13], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "west": {"uv": [1, 10, 1.5, 13], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + } + }, + { + "from": [12, 0, 14], + "to": [12, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "east": {"uv": [1, 10, 1.5, 13], "texture": "#0"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, + "west": {"uv": [1.5, 10, 1, 13], "texture": "#0"}, + "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, 0.5], + "scale": [0.3, 0.3, 0.3] + }, + "thirdperson_lefthand": { + "scale": [0.3, 0.3, 0.3] + }, + "firstperson_righthand": { + "translation": [1.75, -0.25, 0], + "scale": [0.5, 0.5, 0.5] + }, + "firstperson_lefthand": { + "translation": [3, 0, 0], + "scale": [0.5, 0.5, 0.5] + }, + "ground": { + "translation": [0, -0.25, 0], + "scale": [0.4, 0.4, 0.4] + }, + "gui": { + "rotation": [18, 45, 0], + "translation": [0, -0.5, 0], + "scale": [0.65, 0.65, 0.65] + }, + "head": { + "rotation": [0, -90, 0], + "scale": [1.2, 1.2, 1.2] + }, + "fixed": { + "rotation": [-90, 0, 0], + "scale": [1.2, 1.2, 1.2] + } + }, + "groups": [ + { + "name": "group", + "origin": [8, 8, 8], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/models/item/tardim_dock.json new file mode 100644 index 0000000..72aaf33 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/item/tardim_dock.json @@ -0,0 +1,23 @@ +{ + "parent": "tardim_ic:block/tardim_dock", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_dock.png b/Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_dock.png new file mode 100644 index 0000000000000000000000000000000000000000..b82f67e7d8bbda026b451958048983c657fcbce1 GIT binary patch literal 1653 zcmV-*28#KKP)6v|V z_JD}UvPN(q+b)w1IVVu({4qR457*bZeL9!pHjaR_)$=kQbpCT26`K2OuBYjtjtOb} z8yRg7?C&p7U*-wg*?q))w9~yA8XbI+N}K;srMyO&K4*TpRQ3^&hqgxj0y7Z@F{_>; z8pxBq;Rw_k$P?9x>{IE6U{9r^;@%K|ka1hi!?;@in`(SqT<}}Q#6-cHE6|Bc-!7T0 z>Xnzzk(IT4<95xaJM(DmbHB1tIWoB*@QHW!>XoL4f!3jYD|^u!pS$rD?bd6Kkg97w z;sfK)`0i0%{nI-y79arm?B^d+VPc&7E5%i!YwtVfMn`!5(D2alu{D4Nkm=2O+FbhO zcRnuPzvo#2v_JX66t}0(pC!3wcc;eY{MYwC_)H(9MG!cmPl_w>ykdm~{LRWHy}0RE z+0WZ`nyJ|wW9-sC&#x>lMJj+4NS=Pm@&!8a|JPo<$Y!dJ9R`)OXy5%7U7nfZ zKeRE1XAxoEzID52a%%D*1jj?c7620$ABX12^--|~w2Q?RZi@wwWP{-$Ul3FwmLL|O z0@scXo}(``3&>xPEYmRk<$KG~W&uc@T%QM7XnuZSnY9jI&-B3>uF%a}-|`%Cvx5NI z5~8AQmAoDV(LdwH0BBuez}ey|tw9+r0%s%wfVB7OXGj->q(b;Q+Cp6BJe?n;<@=2r z>DpG^!Pe3x1jZ?lsL28@U9(&l80v};d|BZ9#276u+@+gem-!*aa*kjgtZ#X)0kd7T zMm#}CWCtnL)YZ1k@n?Y)3-!_m*S(QpSNP;wfSxs?01E(`mLP~|k3M`}@-)aJ@52(* zye(;v+L)|f2$35DoP6)J)gUafr5iAoS>oS!=6`J(6YSM@`9amvm6Y;UZ<8j7AJM3; zIdlHqYqVv)R$)ekw2&*>{wNP0Hx)tTYN)?I+jO&bwLNh6`p1z)^rOIM0jThFEVg-3 z5|V*y`L@zD_4d2I7ZeDlw3(;xbPKpF?-||6>z#rHVDj}KaI9e8tL+gS zXSCYBrUk{g!LxucklG$Wu&K6p@4t0C&wK1hhb7;L?D44WJ4GlL(1T+fYWq%c|}KuT`tu&khXu?xBw3+Nj?hLNB@>WnTa!g`gf6 za?{hK3MguX3WDl-00rC^5b{D$cMBn}&WRGCEWoQCHR9^Jpn6{4A`^mgg!WbI=!O7N z0p_#>FRABptYPd8khTw?FOy@g>hq#y9PzilwB(T|Lwtw=siUSq6ZDl~(gY$9Ggq}u zia;QUZozW_sqIZUyj5TFyO?&XWpN#<3rJfHh~3b#h!tP~ zZ_@!vz{~Ky?8e<+B>qje^7w$JH7nO}{VK z3e?|6tWtkJlmHx)CiZEafDSo_AICMKl~6H+DD>}#5`bvI=7k%-&yyhzkTETi7dsFi zJJm+h9&_-{b6FW?BuJ1TL4pJc5+q2F;KcDCCoE2eHlZ2{00000NkvXXu0mjf_evd7 literal 0 HcmV?d00001 diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 6154b6c..6b1c08a 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -23,12 +23,15 @@ import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; +import su.a71.tardim_ic.tardim_ic.tardim_dock.TardimDockBlock; +import su.a71.tardim_ic.tardim_ic.tardim_dock.TardimDockBlockEntity; public class Registration { // Blocks public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); + public static final Block TARDIM_DOCK = new TardimDockBlock(); // Tile Entities //public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); @@ -44,6 +47,12 @@ public class Registration { FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() ); + public static final BlockEntityType TARDIM_DOCK_BLOCKENTITY = Registry.register( + Registry.BLOCK_ENTITY_TYPE, + new ResourceLocation("tardim_ic", "tardim_dock"), + FabricBlockEntityTypeBuilder.create(TardimDockBlockEntity::new, TARDIM_DOCK).build() + ); + private static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder .create(new ResourceLocation("tardim_ic")) .icon(() -> new ItemStack(DIGITAL_TARDIM_INTERFACE)) @@ -58,6 +67,9 @@ public class Registration { Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(TARDIM_IC_TAB))); + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_dock"), TARDIM_DOCK); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "tardim_dock"), new BlockItem(TARDIM_DOCK, new FabricItemSettings().tab(TARDIM_IC_TAB))); + ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); CommandInit.init(); } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java new file mode 100644 index 0000000..5c5373b --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java @@ -0,0 +1,77 @@ +package su.a71.tardim_ic.tardim_ic.tardim_dock; + +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.common.init.TRDSounds; +import com.swdteam.tardim.network.NetworkHandler; +import com.swdteam.tardim.network.PacketOpenEditGui; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.DebugPackets; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.EntityBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.phys.BlockHitResult; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import su.a71.tardim_ic.tardim_ic.Registration; + +public class TardimDockBlock extends Block implements EntityBlock { + public TardimDockBlock() { + super(FabricBlockSettings.of(Material.METAL).strength(2, 4).noOcclusion()); // No occlusion? + } + +// @Nullable +// @Override +// public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { +// return Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.create(pos, state); +// } + + @Override + public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { + if (!w.isClientSide) { + BlockEntity be = w.getBlockEntity(blockPos); + if (be instanceof TardimDockBlockEntity) { + + player.displayClientMessage( + Component.literal("Dock ID: " + ((TardimDockBlockEntity) be).dock_id).withStyle(ChatFormatting.BLUE).withStyle(ChatFormatting.BOLD), true + ); + } + } + + return InteractionResult.CONSUME; + } + + public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { + return true; + } + + // Un-register the dock + @Override + public void destroy(LevelAccessor levelAccessor, BlockPos blockPos, BlockState blockState) { + super.destroy(levelAccessor, blockPos, blockState); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { + return Registration.TARDIM_DOCK_BLOCKENTITY.create(blockPos, blockState); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java new file mode 100644 index 0000000..24fc141 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java @@ -0,0 +1,30 @@ +package su.a71.tardim_ic.tardim_ic.tardim_dock; + +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +import su.a71.tardim_ic.tardim_ic.Registration; + +public class TardimDockBlockEntity extends BlockEntity { + public int dock_id; + + public TardimDockBlockEntity(BlockPos blockPos, BlockState blockState) { + super(Registration.TARDIM_DOCK_BLOCKENTITY, blockPos, blockState); + this.dock_id = 123; + } + + @Override + public void saveAdditional(CompoundTag tag) { + tag.putInt("dock_id", dock_id); + super.saveAdditional(tag); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + dock_id = tag.getInt("dock_id"); + } +} From 6b97acb3a3d1bc86a0b0f37016f943fd18f0fab7 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sun, 16 Apr 2023 11:55:48 +0300 Subject: [PATCH 37/61] Better sources --- Fabric/src/main/resources/fabric.mod.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 7a2f3c2..edd4ec9 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -9,8 +9,7 @@ "Andrew_7_1" ], "contact": { - "homepage": "https://fabricmc.net/", - "sources": "https://github.com/FabricMC/fabric-example-mod" + "sources": "https://github.com/Andrew-71/tardim-in-control" }, "license": "MIT", From f6a2fa93f2f261a890a6fe3d7ac92b68a4544002 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sun, 16 Apr 2023 19:40:34 +0300 Subject: [PATCH 38/61] Haha cloister go bom --- .../assets/tardim_ic/lang/en_uk.json | 3 ++- .../assets/tardim_ic/lang/en_us.json | 3 ++- .../resources/assets/tardim_ic/lang/rpr.json | 4 ++-- .../assets/tardim_ic/lang/ru_ru.json | 3 ++- .../resources/assets/tardim_ic/sounds.json | 9 +++++++++ .../assets/tardim_ic/sounds/cloister.ogg | Bin 0 -> 33920 bytes Common/src/main/resources/iconCurseForge.png | Bin 0 -> 121412 bytes Common/src/main/resources/pack.mcmeta | 3 +-- .../command/CommandCloisterBell.java | 18 ++++++++++++++++++ .../tardim_ic/registration/CommandInit.java | 2 +- 10 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 Common/src/main/resources/assets/tardim_ic/sounds.json create mode 100644 Common/src/main/resources/assets/tardim_ic/sounds/cloister.ogg create mode 100644 Common/src/main/resources/iconCurseForge.png diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json index 10f9f74..c0f8968 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -3,5 +3,6 @@ "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", "block.tardim_ic.tardim_dock": "TARDIM Dock", "itemGroup.tardim_ic": "TARDIM: In Control", - "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" + "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", + "subtitles.tardim_ic.cloister": "Cloister bell rings" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json index 10f9f74..c0f8968 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -3,5 +3,6 @@ "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", "block.tardim_ic.tardim_dock": "TARDIM Dock", "itemGroup.tardim_ic": "TARDIM: In Control", - "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" + "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", + "subtitles.tardim_ic.cloister": "Cloister bell rings" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/rpr.json b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json index d2d603b..51c5140 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/rpr.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/rpr.json @@ -3,6 +3,6 @@ "block.tardim_ic.redstone_tardim_input": "Краснокаменный Инпутъ Хронобудки", "block.tardim_ic.tardim_dock": "Конюшня для TARDIM", "itemGroup.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ", - "itemGroup.minecraft.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ" - + "itemGroup.minecraft.tardim_ic": "ТАРДИМЪ: Подъ Контрольемъ", + "subtitles.tardim_ic.cloister": "Звукъ временного колокола" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json index 1cb3857..27ccb07 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -3,5 +3,6 @@ "block.tardim_ic.redstone_tardim_input": "Редстоуновый ввод TARDIM", "block.tardim_ic.tardim_dock": "Стыковочная станция для TARDIM", "itemGroup.tardim_ic": "TARDIM: In Control", - "itemGroup.minecraft.tardim_ic": "TARDIM: In Control" + "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", + "subtitles.tardim_ic.cloister": "Звон монастырского колокола" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/sounds.json b/Common/src/main/resources/assets/tardim_ic/sounds.json new file mode 100644 index 0000000..e66c8c9 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/sounds.json @@ -0,0 +1,9 @@ +{ + "cloister": { + "subtitle": "subtitles.tardim_ic.cloister", + "sounds": [ + "tardim_ic:cloister" + ] + } +} + diff --git a/Common/src/main/resources/assets/tardim_ic/sounds/cloister.ogg b/Common/src/main/resources/assets/tardim_ic/sounds/cloister.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9c9f38a0b2d357e2ee8b52b063b8238b7e8b4c6b GIT binary patch literal 33920 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 literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/pack.mcmeta b/Common/src/main/resources/pack.mcmeta index 20f2fe7..760e561 100644 --- a/Common/src/main/resources/pack.mcmeta +++ b/Common/src/main/resources/pack.mcmeta @@ -1,7 +1,6 @@ { "pack": { "description": "TARDIM: In Control resources", - "pack_format": 6, - "_comment": "A pack_format of 6 requires json lang files and some texture changes from 1.16.2. Note: we require v6 pack meta for all mods." + "pack_format": 6 } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java index 00479cc..bdc60fa 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java @@ -5,8 +5,14 @@ import com.swdteam.tardim.common.command.tardim.ICommand; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.player.Player; +import com.swdteam.tardim.common.init.TRDDimensions; +import net.minecraft.world.level.Level; +import su.a71.tardim_ic.tardim_ic.Registration; + //import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; public class CommandCloisterBell implements ICommand { @@ -17,6 +23,18 @@ public class CommandCloisterBell implements ICommand { if (data != null) { if (data.hasPermission(player)) { try { + Level lvl = player.getLevel(); + if (!lvl.isClientSide) { + lvl.playSound( + null, + pos, + Registration.CLOISTER_SOUND_EVENT, + SoundSource.BLOCKS, + 1.5f, + 1f + ); + } + CommandTardimBase.sendResponse(player, "", CommandTardimBase.ResponseType.COMPLETE, source); } catch (Exception var9) { CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index bc68ea7..4db50bf 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -9,6 +9,6 @@ import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; public class CommandInit { public static void init() { CommandManager.register(new CommandModemTransmit()); - //CommandManager.register(new CommandCloisterBell()); + CommandManager.register(new CommandCloisterBell()); } } From 9e9412e53e6e902d486c2cac8ae2975e2feedbce Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sun, 16 Apr 2023 23:46:48 +0300 Subject: [PATCH 39/61] The Masters Dalek Plan --- .../tardim_ic/tardim_ic/utils/FakePlayer.java | 7 +- .../tardim_ic/models/block/tardim_dock.json | 158 +++++++++++++----- .../a71/tardim_ic/tardim_ic/Registration.java | 13 ++ .../command/CommandCloisterBell.java | 11 +- .../tardim_ic/tardim_ic/mixin/FuelTank.java | 34 ++++ .../redstone_input/RedstoneInputBlock.java | 30 ++-- .../RedstoneInputTileEntity.java | 23 +++ .../tardim_ic/tardim_dock/DockData.java | 21 +++ .../tardim_ic/tardim_dock/DockManager.java | 88 ++++++++++ .../tardim_dock/TardimDockBlock.java | 8 +- .../tardim_dock/TardimDockBlockEntity.java | 1 + Fabric/src/main/resources/fabric.mod.json | 3 + .../src/main/resources/tardim_ic.mixins.json | 14 ++ Forge/build.gradle | 9 + .../a71/tardim_ic/tardim_ic/Registration.java | 14 +- .../tardim_ic/tardim_ic/TardimInControl.java | 2 +- .../command/CommandCloisterBell.java | 19 ++- .../tardim_ic/tardim_ic/mixin/Commands.java | 17 ++ .../tardim_ic/tardim_ic/mixin/FuelTank.java | 9 + .../RedstoneInputTileEntity.java | 28 ---- .../RedstoneInputBlock.java | 28 ++-- .../RedstoneInputTileEntity.java | 41 +++++ .../tardim_ic/registration/CommandInit.java | 2 +- .../src/main/resources/mixins.tardim_ic.json | 15 ++ README.md | 36 ++-- 25 files changed, 492 insertions(+), 139 deletions(-) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java create mode 100644 Fabric/src/main/resources/tardim_ic.mixins.json create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java rename Forge/src/main/java/su/a71/tardim_ic/tardim_ic/{redsone_input => redstone_input}/RedstoneInputBlock.java (80%) create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java create mode 100644 Forge/src/main/resources/mixins.tardim_ic.json diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java index 583e975..c55aabc 100644 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java @@ -10,7 +10,12 @@ import java.util.UUID; public class FakePlayer extends Player { public FakePlayer(Level lvl, BlockPos blockPos) { - super(lvl, blockPos, 0, new GameProfile(UUID.randomUUID(), "DigitalInterfaceFakePlayer"), null); + super(lvl, blockPos, 0, new GameProfile(UUID.randomUUID(), "FakePlayer_tardimic"), null); + } + + public FakePlayer(Level lvl, BlockPos blockPos, UUID id) { + super(lvl, blockPos, 0, new GameProfile(id, "FakePlayer_tardimic"), null); + } @Override diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json index 8f72de8..bc13bb6 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json @@ -1,9 +1,8 @@ { "credit": "Made with Blockbench", - "render": "translucent", "texture_size": [64, 64], "textures": { - "0": "tardim_ic:blocks/tardim_dock", + "1": "tardim_ic:blocks/tardim_dock", "particle": "tardim_ic:blocks/tardim_dock" }, "elements": [ @@ -11,76 +10,128 @@ "from": [2, 0, 2], "to": [14, 12, 14], "faces": { - "north": {"uv": [4, 0, 7, 3], "texture": "#0"}, - "east": {"uv": [4, 3, 7, 6], "texture": "#0"}, - "south": {"uv": [4, 6, 7, 9], "texture": "#0"}, - "west": {"uv": [7, 0, 10, 3], "texture": "#0"}, - "up": {"uv": [10, 6, 7, 3], "texture": "#0"}, - "down": {"uv": [10, 6, 7, 9], "texture": "#0"} + "north": {"uv": [4, 0, 7, 3], "texture": "#1"}, + "east": {"uv": [4, 3, 7, 6], "texture": "#1"}, + "south": {"uv": [4, 6, 7, 9], "texture": "#1"}, + "west": {"uv": [7, 0, 10, 3], "texture": "#1"}, + "up": {"uv": [10, 6, 7, 3], "texture": "#1"}, + "down": {"uv": [10, 6, 7, 9], "texture": "#1"} } }, { "from": [0, 12, 0], "to": [16, 16, 16], "faces": { - "north": {"uv": [0, 8, 4, 9], "texture": "#0"}, - "east": {"uv": [0, 9, 4, 10], "texture": "#0"}, - "south": {"uv": [4, 9, 8, 10], "texture": "#0"}, - "west": {"uv": [8, 9, 12, 10], "texture": "#0"}, - "up": {"uv": [4, 4, 0, 0], "texture": "#0"}, - "down": {"uv": [4, 4, 0, 8], "texture": "#0"} + "north": {"uv": [0, 8, 4, 9], "texture": "#1"}, + "east": {"uv": [0, 9, 4, 10], "texture": "#1"}, + "south": {"uv": [4, 9, 8, 10], "texture": "#1"}, + "west": {"uv": [8, 9, 12, 10], "texture": "#1"}, + "up": {"uv": [4, 4, 0, 0], "texture": "#1"}, + "down": {"uv": [4, 4, 0, 8], "texture": "#1"} } }, { - "from": [12, 0, 0], - "to": [12, 12, 2], + "from": [12, 7, 0], + "to": [12, 12, 1], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "east": {"uv": [10.5, 0, 10, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "west": {"uv": [10, 0, 10.5, 3], "texture": "#0"}, - "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, - "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [10.25, 0, 10, 1.25], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [10, 0, 10.25, 1.25], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#1"} } }, { - "from": [4, 0, 14], + "from": [12, 6, 1], + "to": [12, 7, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#1"} + } + }, + { + "from": [4, 4, 0], + "to": [4, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [1.25, 10, 1, 12], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [1, 10, 1.25, 12], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#1"} + } + }, + { + "from": [4, 3, 1], + "to": [4, 4, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [1.5, 12, 1.25, 12.25], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [1.25, 12, 1.5, 12.25], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "texture": "#1"} + } + }, + { + "from": [4, 7, 15], "to": [4, 12, 16], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "east": {"uv": [10, 0, 10.5, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "west": {"uv": [10.5, 0, 10, 3], "texture": "#0"}, - "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#0"}, - "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#0"} + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [10, 0, 10.25, 1.25], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [10.25, 0, 10, 1.25], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"} } }, { - "from": [4, 0, 0], - "to": [4, 12, 2], + "from": [4, 6, 14], + "to": [4, 7, 15], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "east": {"uv": [1.5, 10, 1, 13], "texture": "#0"}, - "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "west": {"uv": [1, 10, 1.5, 13], "texture": "#0"}, - "up": {"uv": [0, 0.5, 0, 0], "texture": "#0"}, - "down": {"uv": [0, 0, 0, 0.5], "texture": "#0"} + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [10.5, 1.25, 10.25, 1.5], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"} } }, { - "from": [12, 0, 14], + "from": [12, 4, 15], "to": [12, 12, 16], "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, "faces": { - "north": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "east": {"uv": [1, 10, 1.5, 13], "texture": "#0"}, - "south": {"uv": [0, 0, 0, 3], "texture": "#0"}, - "west": {"uv": [1.5, 10, 1, 13], "texture": "#0"}, - "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#0"}, - "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#0"} + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [1, 10, 1.25, 12], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [1.25, 10, 1, 12], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [12, 3, 14], + "to": [12, 4, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "east": {"uv": [1.25, 12, 1.5, 12.25], "texture": "#1"}, + "south": {"uv": [0, 0, 0, 3], "texture": "#1"}, + "west": {"uv": [1.5, 12, 1.25, 12.25], "texture": "#1"}, + "up": {"uv": [0, 0.5, 0, 0], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 0, 0.5], "rotation": 180, "texture": "#1"} } } ], @@ -124,7 +175,24 @@ "origin": [8, 8, 8], "color": 0, "nbt": "{}", - "children": [0, 1, 2, 3, 4, 5] + "children": [ + 0, + 1, + { + "name": "group", + "origin": [8, 8, 8], + "color": 0, + "nbt": "{}", + "children": [2, 3, 4, 5] + }, + { + "name": "group", + "origin": [8, 8, 8], + "color": 0, + "nbt": "{}", + "children": [6, 7, 8, 9] + } + ] } ] } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 6b1c08a..9110a0b 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,8 +1,11 @@ package su.a71.tardim_ic.tardim_ic; import dan200.computercraft.api.ComputerCraftAPI; + import net.fabricmc.fabric.api.item.v1.FabricItemSettings; + import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; @@ -26,6 +29,10 @@ import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import su.a71.tardim_ic.tardim_ic.tardim_dock.TardimDockBlock; import su.a71.tardim_ic.tardim_ic.tardim_dock.TardimDockBlockEntity; +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; +import com.swdteam.tardim.common.block.BlockFuelStorage; + + public class Registration { // Blocks @@ -58,6 +65,10 @@ public class Registration { .icon(() -> new ItemStack(DIGITAL_TARDIM_INTERFACE)) .build(); + // Cloister bell + public static final ResourceLocation CLOISTER_SOUND = new ResourceLocation("tardim_ic:cloister"); + public static SoundEvent CLOISTER_SOUND_EVENT = new SoundEvent(CLOISTER_SOUND); + // Register our stuff public static void register() { @@ -70,6 +81,8 @@ public class Registration { Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_dock"), TARDIM_DOCK); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "tardim_dock"), new BlockItem(TARDIM_DOCK, new FabricItemSettings().tab(TARDIM_IC_TAB))); + Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); + ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); CommandInit.init(); } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java index bdc60fa..788f8d6 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java @@ -4,16 +4,13 @@ import com.swdteam.tardim.common.command.tardim.CommandTardimBase; import com.swdteam.tardim.common.command.tardim.ICommand; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; + import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceKey; import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.player.Player; - -import com.swdteam.tardim.common.init.TRDDimensions; import net.minecraft.world.level.Level; -import su.a71.tardim_ic.tardim_ic.Registration; -//import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; +import su.a71.tardim_ic.tardim_ic.Registration; public class CommandCloisterBell implements ICommand { @Override @@ -34,8 +31,6 @@ public class CommandCloisterBell implements ICommand { 1f ); } - - CommandTardimBase.sendResponse(player, "", CommandTardimBase.ResponseType.COMPLETE, source); } catch (Exception var9) { CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source); } @@ -55,7 +50,7 @@ public class CommandCloisterBell implements ICommand { @Override public String getUsage() { - return "cloister-bell"; + return "/cloister-bell"; } @Override diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java new file mode 100644 index 0000000..263794b --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java @@ -0,0 +1,34 @@ +package su.a71.tardim_ic.tardim_ic.mixin; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.TitleScreen; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.ComparatorBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.ComparatorBlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; + +//@Mixin(TileEntityFuelStorage.class) +//public class FuelTank extends BlockEntity, ComparatorBlockEntity { +// +// public ExampleMixin(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { +// super(blockEntityType, blockPos, blockState); +// } +// +// @Inject(at = @At("HEAD"), method = "init()V") +// private void init(CallbackInfo info) { +// +// Constants.LOG.info("This line is printed by an example mod mixin from Fabric!"); +// Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); +// Constants.LOG.info("Classloader: {}", this.getClass().getClassLoader()); +// } +//} +//public class FuelTank { +//} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java index 4caefbb..05ef6cb 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java @@ -16,7 +16,6 @@ import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -24,21 +23,20 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.ComparatorBlock; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.BlockHitResult; import org.jetbrains.annotations.NotNull; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; import javax.annotation.Nullable; public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock { - private boolean isPowered = false; - private Player lastPlayer = null; public RedstoneInputBlock() { super(FabricBlockSettings.of(Material.METAL).strength(2, 4)); // No occlusion? } @@ -56,10 +54,10 @@ public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBl w.playSound(null, blockPos, TRDSounds.TARDIM_BEEP, SoundSource.BLOCKS, 0.3F, 0.5F); BlockEntity be = w.getBlockEntity(blockPos); - if (be instanceof TileEntityBaseTardimPanel && w.dimension() == TRDDimensions.TARDIS) { + if (be instanceof RedstoneInputTileEntity && w.dimension() == TRDDimensions.TARDIS) { TardimData data = TardimManager.getFromPos(blockPos); if (data != null && data.hasPermission(player)) { - this.lastPlayer = player; + ((RedstoneInputTileEntity) be).lastPlayer = player.getGameProfile().getId(); NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(blockPos, 1)); return InteractionResult.CONSUME; } @@ -80,22 +78,26 @@ public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBl public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { DebugPackets.sendNeighborsUpdatePacket(level, blockPos); + BlockEntity be = level.getBlockEntity(blockPos); + if (!(be instanceof RedstoneInputTileEntity)) { + return; + } + // get redstone signal Direction direction = blockState.getValue(FACING); int redstoneSignal = level.getSignal(blockPos, direction); - if (redstoneSignal > 0 && !isPowered) { - isPowered = true; - BlockEntity be = level.getBlockEntity(blockPos); - if (be instanceof TileEntityBaseTardimPanel && level.dimension() == TRDDimensions.TARDIS) { + if (redstoneSignal > 0 && !((RedstoneInputTileEntity) be).isPowered) { + ((RedstoneInputTileEntity) be).isPowered = true; + if (level.dimension() == TRDDimensions.TARDIS) { TardimData data = TardimManager.getFromPos(blockPos); - if (data != null && !level.isClientSide && this.lastPlayer != null) { + if (data != null && !level.isClientSide && ((RedstoneInputTileEntity) be).lastPlayer != null) { if (((TileEntityBaseTardimPanel)be).hasCommand()) { - ((TileEntityBaseTardimPanel)be).execute(this.lastPlayer); + ((TileEntityBaseTardimPanel)be).execute(new FakePlayer(level, blockPos, ((RedstoneInputTileEntity) be).lastPlayer)); } } } - } else if (redstoneSignal == 0 && isPowered) - isPowered = false; + } else if (redstoneSignal == 0 && ((RedstoneInputTileEntity) be).isPowered) + ((RedstoneInputTileEntity) be).isPowered = false; } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java index 0d67be3..091bd65 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java @@ -3,11 +3,17 @@ package su.a71.tardim_ic.tardim_ic.redstone_input; import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.state.BlockState; import su.a71.tardim_ic.tardim_ic.Registration; +import java.util.UUID; + public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { + public boolean isPowered = false; + public UUID lastPlayer = null; + public RedstoneInputTileEntity(BlockPos pos, BlockState state) { super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY, pos, state); } @@ -15,4 +21,21 @@ public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { public BlockPos getPos() { return this.worldPosition; } + + + @Override + public void saveAdditional(CompoundTag tag) { + tag.putBoolean("is_powered", isPowered); + if (lastPlayer != null) { + tag.putUUID("last_player", lastPlayer); + } + super.saveAdditional(tag); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + isPowered = tag.getBoolean("is_powered"); + lastPlayer = tag.getUUID("last_player"); + } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java new file mode 100644 index 0000000..f140e20 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java @@ -0,0 +1,21 @@ +package su.a71.tardim_ic.tardim_ic.tardim_dock; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +public class DockData { + public String name; + public BlockPos blockPos; + public Level level; + public boolean active = true; + + public DockData(int id, Level level, BlockPos blockPos) { + this.level = level; + this.blockPos = blockPos; + this.name = DockManager.addDock(this); + } + + public void setActive(boolean setting) { + this.active = setting; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java new file mode 100644 index 0000000..fc6c12f --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java @@ -0,0 +1,88 @@ +package su.a71.tardim_ic.tardim_ic.tardim_dock; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import com.swdteam.tardim.main.Config; +import com.swdteam.tardim.main.Tardim; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tardim.TardimSaveHandler; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.level.storage.LevelResource; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.Map; + +public class DockManager { + private static Map DOCK_DATA = new HashMap<>(); + Gson gson = new Gson(); + + + public DockManager() { + } + + public static DockData getDock(String name) { + return DOCK_DATA.get(name); + } + + public static String addDock(DockData dockData) { + String new_id = Integer.toString(DOCK_DATA.size()); + DOCK_DATA.put(new_id, dockData); + return new_id; + } + + public void toggleActive(String name, boolean active) { + DockData dockData = DOCK_DATA.get(name); + dockData.setActive(active); + } + + public void updateDock(String name, DockData dockData) { + DOCK_DATA.put(name, dockData); + } + + public void load(MinecraftServer server) throws Exception { + File file = new File(server.getWorldPath(LevelResource.ROOT) + "/tardim_ic/dock_map.json"); + + // Check if file exists + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + FileWriter writer = new FileWriter(file); + writer.write(gson.toJson(new HashMap())); + writer.close(); + return; + } + + Type typeOfDockMap = new TypeToken>() { }.getType(); + + JsonReader reader = new JsonReader(new FileReader(file)); + String json = gson.fromJson(reader, String.class); + DOCK_DATA = gson.fromJson(json, typeOfDockMap); + + System.out.println("Loaded TARDIM: IC docks"); + } + + public void save(MinecraftServer server) throws Exception { + File file = new File(server.getWorldPath(LevelResource.ROOT) + "/tardim_ic/dock_map.json"); + + // Check if file exists + if (!file.exists()) { + file.getParentFile().mkdirs(); + file.createNewFile(); + } + + Gson gson = new Gson(); + String json = gson.toJson(DOCK_DATA); + JsonWriter writer = new JsonWriter(new FileWriter(file)); + writer.jsonValue(json); + writer.close(); + + System.out.println("Saved TARDIM: IC docks"); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java index 5c5373b..3168884 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java @@ -35,15 +35,9 @@ import su.a71.tardim_ic.tardim_ic.Registration; public class TardimDockBlock extends Block implements EntityBlock { public TardimDockBlock() { - super(FabricBlockSettings.of(Material.METAL).strength(2, 4).noOcclusion()); // No occlusion? + super(FabricBlockSettings.of(Material.METAL).strength(2, 4).noOcclusion()); } -// @Nullable -// @Override -// public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { -// return Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.create(pos, state); -// } - @Override public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { if (!w.isClientSide) { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java index 24fc141..46d8f90 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java @@ -10,6 +10,7 @@ import su.a71.tardim_ic.tardim_ic.Registration; public class TardimDockBlockEntity extends BlockEntity { public int dock_id; + public DockData data; public TardimDockBlockEntity(BlockPos blockPos, BlockState blockState) { super(Registration.TARDIM_DOCK_BLOCKENTITY, blockPos, blockState); diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index edd4ec9..c4befe5 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -21,6 +21,9 @@ "su.a71.tardim_ic.tardim_ic.TardimInControl" ] }, + "mixins": [ + "tardim_ic.mixins.json" + ], "depends": { "fabricloader": ">=0.14.10", diff --git a/Fabric/src/main/resources/tardim_ic.mixins.json b/Fabric/src/main/resources/tardim_ic.mixins.json new file mode 100644 index 0000000..22f1e80 --- /dev/null +++ b/Fabric/src/main/resources/tardim_ic.mixins.json @@ -0,0 +1,14 @@ + +"required": true, +"minVersion": "0.8", +"package": "su.a71.tardim_ic.mixin", +"compatibilityLevel": "JAVA_17", +"mixins": [ +], +"client": [ +"FuelTank" +], +"injectors": { +"defaultRequire": 1 +} +} \ No newline at end of file diff --git a/Forge/build.gradle b/Forge/build.gradle index 474d167..35c37d8 100644 --- a/Forge/build.gradle +++ b/Forge/build.gradle @@ -5,12 +5,14 @@ buildscript { } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + classpath 'org.spongepowered:mixingradle:0.7.+' } } apply plugin: 'java' apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' +apply plugin: 'org.spongepowered.mixin' archivesBaseName = "${mod_name}-forge-${minecraft_version}" @@ -70,6 +72,11 @@ minecraft { } } +mixin { + add sourceSets.main, 'refmap.tardim_ic.json' + config 'mixins.tardim_ic.json' +} + sourceSets.main.resources.srcDir 'src/generated/resources' dependencies { @@ -78,6 +85,8 @@ dependencies { implementation fg.deobf("curse.maven:tardim-531315:4453925") implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}") + + annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' } tasks.withType(JavaCompile) { diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 1677e42..2f96cd0 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,7 +1,9 @@ package su.a71.tardim_ic.tardim_ic; import com.google.common.collect.Sets; -import com.swdteam.common.command.tardim.ICommand; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; @@ -16,8 +18,9 @@ import net.minecraftforge.registries.RegistryObject; import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; -import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputBlock; -import su.a71.tardim_ic.tardim_ic.redsone_input.RedstoneInputTileEntity; +import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; +import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; +import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import java.util.function.Supplier; @@ -26,6 +29,7 @@ public class Registration { public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, TardimInControl.MODID); public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TardimInControl.MODID); public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TardimInControl.MODID); + public static final DeferredRegister SOUNDS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, TardimInControl.MODID); public static final CreativeModeTab TARDIM_IC_TAB = new CreativeModeTab("tardim_ic") { @Override @@ -47,11 +51,15 @@ public class Registration { public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); public static final RegistryObject> REDSTONE_TARDIM_INPUT_TILEENTITY = Registration.BLOCK_ENTITIES.register("redstone_tardim_input", () -> new BlockEntityType<>(RedstoneInputTileEntity::new, Sets.newHashSet(REDSTONE_TARDIM_INPUT.get()), null)); + // Cloister bell + public static final RegistryObject CLOISTER_SOUND = SOUNDS.register("cloister", () -> new SoundEvent(new ResourceLocation(TardimInControl.MODID, "cloister"))); + // Register our stuff public static void register() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); BLOCKS.register(modEventBus); ITEMS.register(modEventBus); BLOCK_ENTITIES.register(modEventBus); + SOUNDS.register(modEventBus); } } \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java index 07c89cd..10c6b81 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java @@ -4,6 +4,7 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; +import com.swdteam.tardim.TardimSaveHandler; // The value here should match an entry in the META-INF/mods.toml file @Mod(Constants.MOD_ID) @@ -14,7 +15,6 @@ public class TardimInControl { public TardimInControl() { Registration.register(); - CommandInit.init(); // Register commands // Register ourselves for server and other game events we are interested in. Currently, we do not use any events MinecraftForge.EVENT_BUS.register(this); diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java index 28359ff..7af746f 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java @@ -13,9 +13,12 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.Level; +import su.a71.tardim_ic.tardim_ic.Registration; //import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; + public class CommandCloisterBell implements ICommand { @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { @@ -24,7 +27,17 @@ public class CommandCloisterBell implements ICommand { if (data != null) { if (data.hasPermission(player)) { try { - CommandTardimBase.sendResponse(player, "", CommandTardimBase.ResponseType.COMPLETE, source); + Level lvl = player.getLevel(); + if (!lvl.isClientSide) { + lvl.playSound( + null, + pos, + Registration.CLOISTER_SOUND.get(), + SoundSource.BLOCKS, + 1.5f, + 1f + ); + } } catch (Exception var9) { CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source); } @@ -39,12 +52,12 @@ public class CommandCloisterBell implements ICommand { @Override public String getCommandName() { - return "cloisterBell"; + return "cloister-bell"; } @Override public String getUsage() { - return "cloisterBell"; + return "/cloister-bell"; } @Override diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java new file mode 100644 index 0000000..e290cd1 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java @@ -0,0 +1,17 @@ +package su.a71.tardim_ic.tardim_ic.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import com.swdteam.common.init.CommandManager; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import su.a71.tardim_ic.tardim_ic.registration.CommandInit; + +@Mixin(value = CommandManager.class, remap = false) +public abstract class Commands { + @Inject(method="init()V", at=@At("TAIL")) + private static void init(CallbackInfo ci) { + CommandInit.init(); + System.out.println("TARDIM: IC added commands using mixin"); + } +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java new file mode 100644 index 0000000..f4b1190 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java @@ -0,0 +1,9 @@ +package su.a71.tardim_ic.tardim_ic.mixin; + +import com.swdteam.tileentity.TileEntityFuelStorage; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(TileEntityFuelStorage.class) +public abstract class FuelTank { + +} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java deleted file mode 100644 index c0af4fc..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java +++ /dev/null @@ -1,28 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.redsone_input; - -import com.swdteam.tileentity.TileEntityBaseTardimPanel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.LazyOptional; -import org.jetbrains.annotations.NotNull; - -import com.swdteam.common.init.TRDTiles; - -import su.a71.tardim_ic.tardim_ic.Registration; -import com.swdteam.tileentity.TileEntityTardimScanner; -import com.swdteam.common.block.BlockTardimScanner; - - -public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { - public RedstoneInputTileEntity(BlockPos pos, BlockState state) { - super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get(), pos, state); - } - - - public BlockPos getPos() { - return this.worldPosition; - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java similarity index 80% rename from Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java rename to Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java index bdfd4aa..675132b 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.redsone_input; +package su.a71.tardim_ic.tardim_ic.redstone_input; import com.swdteam.common.block.BlockBaseTardimPanel; import com.swdteam.common.init.TRDDimensions; @@ -29,16 +29,13 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.BlockHitResult; -import net.minecraftforge.common.util.FakePlayerFactory; // TODO: ??? -import net.minecraftforge.server.ServerLifecycleHooks; - import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock { - private boolean isPowered = false; public RedstoneInputBlock() { super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); } @@ -59,6 +56,7 @@ public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBl if (be instanceof TileEntityBaseTardimPanel && w.dimension() == TRDDimensions.TARDIS) { TardimData data = TardimManager.getFromPos(blockPos); if (data != null && data.hasPermission(player)) { + ((RedstoneInputTileEntity) be).lastPlayer = player.getGameProfile().getId(); NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(1, blockPos)); return InteractionResult.CONSUME; } @@ -79,22 +77,26 @@ public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBl public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { DebugPackets.sendNeighborsUpdatePacket(level, blockPos); + BlockEntity be = level.getBlockEntity(blockPos); + if (!(be instanceof RedstoneInputTileEntity)) { + return; + } + // get redstone signal Direction direction = blockState.getValue(FACING); int redstoneSignal = level.getSignal(blockPos, direction); - if (redstoneSignal > 0 && !isPowered) { - isPowered = true; - BlockEntity be = level.getBlockEntity(blockPos); - if (be instanceof TileEntityBaseTardimPanel && level.dimension() == TRDDimensions.TARDIS) { + if (redstoneSignal > 0 && !((RedstoneInputTileEntity) be).isPowered) { + ((RedstoneInputTileEntity) be).isPowered = true; + if (level.dimension() == TRDDimensions.TARDIS) { TardimData data = TardimManager.getFromPos(blockPos); - if (data != null) { + if (data != null && !level.isClientSide && ((RedstoneInputTileEntity) be).lastPlayer != null) { if (((TileEntityBaseTardimPanel)be).hasCommand()) { - ((TileEntityBaseTardimPanel)be).execute(FakePlayerFactory.getMinecraft(ServerLifecycleHooks.getCurrentServer().getLevel(level.dimension()))); + ((TileEntityBaseTardimPanel)be).execute(new FakePlayer(level, blockPos, ((RedstoneInputTileEntity) be).lastPlayer)); } } } - } else if (redstoneSignal == 0 && isPowered) - isPowered = false; + } else if (redstoneSignal == 0 && ((RedstoneInputTileEntity) be).isPowered) + ((RedstoneInputTileEntity) be).isPowered = false; } } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java new file mode 100644 index 0000000..06f4303 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java @@ -0,0 +1,41 @@ +package su.a71.tardim_ic.tardim_ic.redstone_input; + +import com.swdteam.tileentity.TileEntityBaseTardimPanel; + +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.state.BlockState; +import su.a71.tardim_ic.tardim_ic.Registration; + +import java.util.UUID; + + +public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { + public boolean isPowered = false; + public UUID lastPlayer = null; + + public RedstoneInputTileEntity(BlockPos pos, BlockState state) { + super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get(), pos, state); + } + + public BlockPos getPos() { + return this.worldPosition; + } + + + @Override + public void saveAdditional(CompoundTag tag) { + tag.putBoolean("is_powered", isPowered); + if (lastPlayer != null) { + tag.putUUID("last_player", lastPlayer); + } + super.saveAdditional(tag); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + isPowered = tag.getBoolean("is_powered"); + lastPlayer = tag.getUUID("last_player"); + } +} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index 294a2cb..1b25632 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -8,6 +8,6 @@ import com.swdteam.common.init.CommandManager; public class CommandInit { public static void init() { CommandManager.register(new CommandModemTransmit()); - //CommandManager.register(new CommandCloisterBell()); + CommandManager.register(new CommandCloisterBell()); } } diff --git a/Forge/src/main/resources/mixins.tardim_ic.json b/Forge/src/main/resources/mixins.tardim_ic.json new file mode 100644 index 0000000..68e23e1 --- /dev/null +++ b/Forge/src/main/resources/mixins.tardim_ic.json @@ -0,0 +1,15 @@ +{ + "required": true, + "package": "su.a71.tardim_ic.tardim_ic.mixin", + "compatibilityLevel": "JAVA_17", + "refmap": "refmap.tardim_ic.json", + "mixins": [ + "Commands" + ], + "client": [ + ], + "injectors": { + "defaultRequire": 1 + }, + "minVersion": "0.8.4" +} \ No newline at end of file diff --git a/README.md b/README.md index 3bc4e59..9da4025 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,15 @@ # TARDIM: In Control ![Modrinth Downloads](https://img.shields.io/modrinth/dt/tardim-in-control?color=00AF5C&label=modrinth&style=flat&logo=modrinth) ### All of time and space, *now automated*. -This mod is an addon for the [TARDIM mod](https://modrinth.com/mod/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers and redstone using a new blocks and peripherals. +![Example dashboard](https://cdn.modrinth.com/data/xsv4H3pa/images/a6726a966b6ceb6cbfa81d4886b26375ee500854.png) + +This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers and redstone using new blocks and peripherals. ### Features: -* Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using CC methods! Full list of methods is available in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) (Sorry for that, this is the best auto-generated docs I could find for now). The peripheral supports almost all commands that the TARDIM computer panel has. -* Redstone TARDIM Input: New control block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone +* Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using computers! Full list of methods is available in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) (Sorry for that, this is the best auto-generated docs I could find for now). The peripheral supports almost all commands that the TARDIM computer panel has. +* Redstone TARDIM Input: New block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone * *This is just the beginning, there are more features to come!* -### Note -This is important, due to nature of the mod **anyone** inside your TARDIM with access to a computer and this mod's peripheral -will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters" like fuel info), so if you want to have this on your server -and do not trust everyone not to steal your blue box, make sure there is some kind of plot claim mod. If there will be demand for it I can try adding a config option to disable all but "harmless" methods.\ -And another thing: the method that sets destination dimension doesn't check if the dimension is valid, if you cannot land just change dimension to a valid one. - ### Example use-cases * Make a dashboard to monitor fuel levels, current location, and other information on a screen in a nice way. * Get refined control over your TARDIM, such as saving and loading locations, or setting a destination in a GUI. @@ -21,17 +17,27 @@ And another thing: the method that sets destination dimension doesn't check if t The possibilities are endless, the only limit is your imagination! (And coding skills) +### Note +Due to nature of the mod **anyone** inside your TARDIM with access to a computer and this mod's peripheral +will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters" like fuel info), so if you want to use this mod on your server, +please don't let untrustworthy players anywhere near your computer.\ +And another thing: the method that sets destination dimension can't check if the dimension is valid. If you cannot land just change dimension to a valid one like overworld or nether. + ### FAQ **Is this for Fabric or Forge?** -: As a Fabric player who recognises Forge's large playerbase, I intend to support both major modloaders. -Right now, only Forge version is present. However, as of April 13th 2023, I started to port to multi-loader system and intend to have a Fabric version soon. +: Both! As a Fabric player who recognises Forge's large playerbase, I support both major modloaders. **Can I use this in my modpack?** -: Sure, as long as you credit me and link to this page. +: Sure, as long as you don't claim the mod as your own. A link to this mod's page would be appreciated too. **Will there be a 1.19.3 version and beyond?** -: Yes, I will try my best to update to later versions as soon as **both** ComputerCraft: Tweaked and TARDIM receive stable versions for them. +: Right now my focus on 1.19.2, but I will try my best to update to later versions as soon as this mod is fully stable. -**I don't know CC, will this always be a CC-only mod?** -: OK, fine, nobody actually asked that. But in case you did, good news: No! As you might've noticed, version 0.8 add a block that make it possible to integrate your TARDIM into good old redstone! Going forward, I plan to add some way to get redstone *output* from the TARDIM as well, and maybe even streamline things like the cloister bell for those who don't want to code their own implementations! \ No newline at end of file +**I encountered a bug or have a suggestion. What do I do?** +: If you have a problem or suggestion, the best way to get them to me is through the project's Discord server. + +**I don't know ComputerCraft, will this always be a CC-only mod?** +: Ok fine, nobody actually asked that. But in case you did, good news: No! The mod already adds things like Redstone TARDIM Input, +which let you integrate your TARDIM into good old redstone. Going forward, +I plan to add even more ways to control the TARDIM without computers for those who don't want to code their own implementation. \ No newline at end of file From 86331811a8a9215ff3b04260ae1a130eb7a95456 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Mon, 17 Apr 2023 21:51:54 +0300 Subject: [PATCH 40/61] Pain is pain leaving the pain --- .../a71/tardim_ic/tardim_ic/Registration.java | 37 ++++++++++++++++- .../tardim_ic/tardim_ic/mixin/FuelTank.java | 34 --------------- .../tardim_ic/tardim_dock/DockData.java | 5 ++- .../tardim_ic/tardim_dock/DockManager.java | 31 +++++++++----- .../tardim_dock/TardimDockBlock.java | 41 ++++++++++++++++++- .../tardim_dock/TardimDockBlockEntity.java | 18 ++++++-- Fabric/src/main/resources/fabric.mod.json | 3 -- .../src/main/resources/tardim_ic.mixins.json | 14 ------- .../command/CommandCloisterBell.java | 8 ---- .../tardim_ic/tardim_ic/mixin/Commands.java | 1 + .../tardim_ic/tardim_ic/mixin/FuelTank.java | 9 ---- 11 files changed, 114 insertions(+), 87 deletions(-) delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java delete mode 100644 Fabric/src/main/resources/tardim_ic.mixins.json delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 9110a0b..0d2bf84 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,10 +1,21 @@ package su.a71.tardim_ic.tardim_ic; +import com.swdteam.tardim.common.command.*; +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.main.Config; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimIDMap; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tardim.TardimSaveHandler; +import com.swdteam.tardim.util.world.SchematicUtils; import dan200.computercraft.api.ComputerCraftAPI; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerWorldEvents; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; @@ -26,12 +37,16 @@ import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; +import su.a71.tardim_ic.tardim_ic.tardim_dock.DockManager; import su.a71.tardim_ic.tardim_ic.tardim_dock.TardimDockBlock; import su.a71.tardim_ic.tardim_ic.tardim_dock.TardimDockBlockEntity; import com.swdteam.tardim.tileentity.TileEntityFuelStorage; import com.swdteam.tardim.common.block.BlockFuelStorage; +import java.util.Iterator; +import java.util.Map; + public class Registration { // Blocks @@ -41,7 +56,6 @@ public class Registration { public static final Block TARDIM_DOCK = new TardimDockBlock(); // Tile Entities - //public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY = Registry.register( Registry.BLOCK_ENTITY_TYPE, new ResourceLocation("tardim_ic", "redstone_tardim_input"), @@ -85,5 +99,26 @@ public class Registration { ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); CommandInit.init(); + + ServerLifecycleEvents.SERVER_STARTING.register((server) -> { + DockManager.server = server; + DockManager.clearCahce(); + + try { + DockManager.load(); + } catch (Exception var2) { + var2.printStackTrace(); + } + }); + ServerWorldEvents.UNLOAD.register((server, world) -> { + try { + if (DockManager.server == null) { + return; + } + DockManager.save(); + } catch (Exception var5) { + var5.printStackTrace(); + } + }); } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java deleted file mode 100644 index 263794b..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java +++ /dev/null @@ -1,34 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.mixin; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.TitleScreen; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.ComparatorBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.entity.ComparatorBlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.swdteam.tardim.tileentity.TileEntityFuelStorage; - -//@Mixin(TileEntityFuelStorage.class) -//public class FuelTank extends BlockEntity, ComparatorBlockEntity { -// -// public ExampleMixin(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { -// super(blockEntityType, blockPos, blockState); -// } -// -// @Inject(at = @At("HEAD"), method = "init()V") -// private void init(CallbackInfo info) { -// -// Constants.LOG.info("This line is printed by an example mod mixin from Fabric!"); -// Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); -// Constants.LOG.info("Classloader: {}", this.getClass().getClassLoader()); -// } -//} -//public class FuelTank { -//} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java index f140e20..3566ba8 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java @@ -8,14 +8,15 @@ public class DockData { public BlockPos blockPos; public Level level; public boolean active = true; + public boolean occupied = false; - public DockData(int id, Level level, BlockPos blockPos) { - this.level = level; + public DockData(BlockPos blockPos) { this.blockPos = blockPos; this.name = DockManager.addDock(this); } public void setActive(boolean setting) { this.active = setting; + DockManager.updateDock(this.name, this); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java index fc6c12f..84d27f0 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java @@ -9,6 +9,7 @@ import com.swdteam.tardim.main.Tardim; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import com.swdteam.tardim.tardim.TardimSaveHandler; +import com.swdteam.tardim.tardim.TardimIDMap; import net.minecraft.server.MinecraftServer; import net.minecraft.world.level.storage.LevelResource; @@ -21,7 +22,8 @@ import java.util.Map; public class DockManager { private static Map DOCK_DATA = new HashMap<>(); - Gson gson = new Gson(); + static Gson gson = new Gson(); + public static MinecraftServer server; public DockManager() { @@ -32,21 +34,26 @@ public class DockManager { } public static String addDock(DockData dockData) { - String new_id = Integer.toString(DOCK_DATA.size()); - DOCK_DATA.put(new_id, dockData); - return new_id; + int new_id = DOCK_DATA.size(); + while (DOCK_DATA.containsKey(Integer.toString(new_id))) { + System.out.println(new_id + "Was taken so we try another"); + new_id++; + } + System.out.println("PICKED ID: " + new_id); + + DOCK_DATA.put(Integer.toString(new_id), dockData); + return Integer.toString(new_id); } - public void toggleActive(String name, boolean active) { - DockData dockData = DOCK_DATA.get(name); - dockData.setActive(active); + public static void removeDock(String name) { + DOCK_DATA.remove(name); } - public void updateDock(String name, DockData dockData) { + public static void updateDock(String name, DockData dockData) { DOCK_DATA.put(name, dockData); } - public void load(MinecraftServer server) throws Exception { + public static void load() throws Exception { File file = new File(server.getWorldPath(LevelResource.ROOT) + "/tardim_ic/dock_map.json"); // Check if file exists @@ -68,7 +75,7 @@ public class DockManager { System.out.println("Loaded TARDIM: IC docks"); } - public void save(MinecraftServer server) throws Exception { + public static void save() throws Exception { File file = new File(server.getWorldPath(LevelResource.ROOT) + "/tardim_ic/dock_map.json"); // Check if file exists @@ -85,4 +92,8 @@ public class DockManager { System.out.println("Saved TARDIM: IC docks"); } + + public static void clearCahce() { + DOCK_DATA.clear(); + } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java index 3168884..c17695c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java @@ -7,6 +7,8 @@ import com.swdteam.tardim.network.PacketOpenEditGui; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; +import com.swdteam.tardim.tileentity.TileEntityTardim; +import com.swdteam.tardim.tileentity.tardim.TardimType96TileEntity; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; @@ -32,6 +34,10 @@ import net.minecraft.world.phys.BlockHitResult; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; +import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; + +import net.minecraft.world.level.block.RedstoneLampBlock; public class TardimDockBlock extends Block implements EntityBlock { public TardimDockBlock() { @@ -45,7 +51,7 @@ public class TardimDockBlock extends Block implements EntityBlock { if (be instanceof TardimDockBlockEntity) { player.displayClientMessage( - Component.literal("Dock ID: " + ((TardimDockBlockEntity) be).dock_id).withStyle(ChatFormatting.BLUE).withStyle(ChatFormatting.BOLD), true + Component.literal("Dock name: '" + ((TardimDockBlockEntity) be).data.name + "'").withStyle(ChatFormatting.DARK_AQUA).withStyle(ChatFormatting.BOLD), true ); } } @@ -57,10 +63,14 @@ public class TardimDockBlock extends Block implements EntityBlock { return true; } - // Un-register the dock + // Un-register the dock when breaking @Override public void destroy(LevelAccessor levelAccessor, BlockPos blockPos, BlockState blockState) { super.destroy(levelAccessor, blockPos, blockState); + BlockEntity be = levelAccessor.getBlockEntity(blockPos); + if (be instanceof TardimDockBlockEntity) { + DockManager.removeDock(((TardimDockBlockEntity) be).data.name); + } } @Nullable @@ -68,4 +78,31 @@ public class TardimDockBlock extends Block implements EntityBlock { public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { return Registration.TARDIM_DOCK_BLOCKENTITY.create(blockPos, blockState); } + + + public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { + DebugPackets.sendNeighborsUpdatePacket(level, blockPos); + + BlockEntity be = level.getBlockEntity(blockPos); + if (!(be instanceof TardimDockBlockEntity)) { + return; + } + + // get redstone signal + if (level.hasNeighborSignal(blockPos)) { + if (!((TardimDockBlockEntity) be).isPowered) { + ((TardimDockBlockEntity) be).isPowered = true; + } + } + else if (((TardimDockBlockEntity) be).isPowered) { + ((TardimDockBlockEntity) be).isPowered = false; + } + ((TardimDockBlockEntity) be).updateActive(); + + // Check stuff + ((TardimDockBlockEntity) be).data.occupied = (level.getBlockEntity(blockPos.above()) instanceof TileEntityTardim); + if ((level.getBlockEntity(blockPos.above()) instanceof TileEntityTardim)) { + System.out.println("Oooo TARDIM docked!!!!"); + } + } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java index 46d8f90..30d3660 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java @@ -2,30 +2,40 @@ package su.a71.tardim_ic.tardim_ic.tardim_dock; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; +import net.minecraft.world.level.block.ComparatorBlock; +import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.ComparatorBlockEntity; import net.minecraft.world.level.block.state.BlockState; import su.a71.tardim_ic.tardim_ic.Registration; public class TardimDockBlockEntity extends BlockEntity { - public int dock_id; + public boolean isPowered = false; public DockData data; + private BlockPos blockPos; public TardimDockBlockEntity(BlockPos blockPos, BlockState blockState) { super(Registration.TARDIM_DOCK_BLOCKENTITY, blockPos, blockState); - this.dock_id = 123; + this.blockPos = blockPos; + this.data = new DockData(blockPos); + } + + public void updateActive() { + this.data.setActive(this.isPowered); } @Override public void saveAdditional(CompoundTag tag) { - tag.putInt("dock_id", dock_id); + tag.putString("data_name", data.name); + tag.putBoolean("data_active", data.active); super.saveAdditional(tag); } @Override public void load(CompoundTag tag) { super.load(tag); - dock_id = tag.getInt("dock_id"); } } diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index c4befe5..edd4ec9 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -21,9 +21,6 @@ "su.a71.tardim_ic.tardim_ic.TardimInControl" ] }, - "mixins": [ - "tardim_ic.mixins.json" - ], "depends": { "fabricloader": ">=0.14.10", diff --git a/Fabric/src/main/resources/tardim_ic.mixins.json b/Fabric/src/main/resources/tardim_ic.mixins.json deleted file mode 100644 index 22f1e80..0000000 --- a/Fabric/src/main/resources/tardim_ic.mixins.json +++ /dev/null @@ -1,14 +0,0 @@ - -"required": true, -"minVersion": "0.8", -"package": "su.a71.tardim_ic.mixin", -"compatibilityLevel": "JAVA_17", -"mixins": [ -], -"client": [ -"FuelTank" -], -"injectors": { -"defaultRequire": 1 -} -} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java index 7af746f..4bfa48a 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java @@ -5,20 +5,12 @@ import com.swdteam.common.command.tardim.ICommand; import com.swdteam.tardim.TardimData; import com.swdteam.tardim.TardimManager; - import net.minecraft.core.BlockPos; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import su.a71.tardim_ic.tardim_ic.Registration; -//import static com.swdteam.common.command.tardim.CommandTardimBase.sendResponse; - - public class CommandCloisterBell implements ICommand { @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java index e290cd1..1e9262a 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java @@ -7,6 +7,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; +// TARDIM loads commands a bit later on Forge, so we have to use mixins for this :/ @Mixin(value = CommandManager.class, remap = false) public abstract class Commands { @Inject(method="init()V", at=@At("TAIL")) diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java deleted file mode 100644 index f4b1190..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/FuelTank.java +++ /dev/null @@ -1,9 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.mixin; - -import com.swdteam.tileentity.TileEntityFuelStorage; -import org.spongepowered.asm.mixin.Mixin; - -@Mixin(TileEntityFuelStorage.class) -public abstract class FuelTank { - -} From eecac8ac7c08102a14a1ed0d1f41e59aa3bad081 Mon Sep 17 00:00:00 2001 From: Andrew71 Date: Mon, 17 Apr 2023 22:30:08 +0300 Subject: [PATCH 41/61] I know this face --- .../DigitalInterfacePeripheral.java | 26 ++++++++++++++++++ .../DigitalInterfacePeripheral.java | 27 +++++++++++++++++++ Forge/src/main/resources/META-INF/mods.toml | 2 +- gradle.properties | 2 +- 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 812e787..f72e511 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -33,6 +33,7 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; +import su.a71.tardim_ic.tardim_ic.Registration; import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; import javax.annotation.Nonnull; @@ -826,4 +827,29 @@ public class DigitalInterfacePeripheral implements IPeripheral { return new ObjectLuaTable(skins); } + + /** + * Play cloister bell sound. + */ + @LuaFunction(mainThread = true) + public final void cloisterBell() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + try { + Level lvl = this.tileEntity.getLevel(); + if (!lvl.isClientSide) { + lvl.playSound( + null, + this.tileEntity.getPos(), + Registration.CLOISTER_SOUND_EVENT, + SoundSource.BLOCKS, + 1.5f, + 1f + ); + } + } catch (Exception var9) { + throw new LuaException("There was an error trying to play the sound"); + } + } } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index c00164f..60ea768 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -1,6 +1,7 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; import com.mojang.datafixers.util.Pair; +import com.swdteam.common.command.tardim.CommandTardimBase; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; @@ -34,6 +35,7 @@ import com.swdteam.common.init.TRDSounds; import com.swdteam.common.item.ItemTardim; import com.swdteam.main.Tardim; +import su.a71.tardim_ic.tardim_ic.Registration; import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; import javax.annotation.Nonnull; @@ -813,4 +815,29 @@ public class DigitalInterfacePeripheral implements IPeripheral { return new ObjectLuaTable(skins); } + + /** + * Play cloister bell sound. + */ + @LuaFunction(mainThread = true) + public final void cloisterBell() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return; + } + try { + Level lvl = this.tileEntity.getLevel(); + if (!lvl.isClientSide) { + lvl.playSound( + null, + this.tileEntity.getPos(), + Registration.CLOISTER_SOUND.get(), + SoundSource.BLOCKS, + 1.5f, + 1f + ); + } + } catch (Exception var9) { + throw new LuaException("There was an error trying to play the sound"); + } + } } diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index eadc068..ddaa3b9 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -5,7 +5,7 @@ license = "MIT" [[mods]] #mandatory # The modid of the mod modId = "tardim_ic" #mandatory -version = "0.9" #mandatory +version = "1.0" #mandatory # A display name for the mod displayName = "TARDIM: In Control" #mandatory # The description text for the mod (multi line!) (#mandatory) diff --git a/gradle.properties b/gradle.properties index ffd83e6..fc9bf37 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Project -version=0.9 +version=1.0 group=su.a71.tardim_ic # Common From 024d00049ecb2bdebf021c2a1c868385056d0e92 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Mon, 8 May 2023 23:22:33 +0300 Subject: [PATCH 42/61] Say it with me, not even close --- .../FakeDigitalInterfaceTileEntity.java | 24 -- .../blockstates/tardim_door_soviet.json | 124 ++++++++ .../blockstates/tardim_floor_soviet.json | 5 + .../blockstates/tardim_roof_soviet.json | 5 + .../tardim_door_bottom_closed.json | 279 ++++++++++++++++++ .../tardim_door_bottom_open.json | 279 ++++++++++++++++++ .../tardim_door_sides.json | 16 + .../tardim_door_sides_bottom.json | 97 ++++++ .../tardim_door_sides_top.json | 13 + .../tardim_door_top_front_closed.json | 22 ++ .../tardim_door_top_front_open.json | 22 ++ .../tardim_soviet_chronobox/tardim_floor.json | 73 +++++ .../tardim_soviet_chronobox/tardim_roof.json | 22 ++ .../blocks/tardim_soviet_chronobox.png | Bin 0 -> 2056 bytes .../a71/tardim_ic/tardim_ic/Registration.java | 101 +++---- .../DigitalInterfacePeripheral.java | 16 +- .../DigitalInterfaceTileEntity.java | 88 +++++- .../FakeDigitalInterfaceTileEntity.java | 89 ++++++ .../IDigitalInterfaceEntity.java | 12 + .../SovietChronoboxTileEntity.java | 13 + .../tardim_ic/tardim_dock/DockData.java | 22 -- .../tardim_ic/tardim_dock/DockManager.java | 99 ------- .../tardim_dock/TardimDockBlock.java | 108 ------- .../tardim_dock/TardimDockBlockEntity.java | 41 --- .../DigitalInterfacePeripheral.java | 147 ++++----- .../DigitalInterfaceTileEntity.java | 71 +++++ .../FakeDigitalInterfaceTileEntity.java | 89 ++++++ .../IDigitalInterfaceEntity.java | 3 + SWD_MOMENT.txt | 4 + 29 files changed, 1451 insertions(+), 433 deletions(-) delete mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java create mode 100644 Common/src/main/resources/assets/tardim_ic/blockstates/tardim_door_soviet.json create mode 100644 Common/src/main/resources/assets/tardim_ic/blockstates/tardim_floor_soviet.json create mode 100644 Common/src/main/resources/assets/tardim_ic/blockstates/tardim_roof_soviet.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_bottom.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_top.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_closed.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_open.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_floor.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_roof.json create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_soviet_chronobox.png create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java rename {Common => Forge}/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java (76%) create mode 100644 SWD_MOMENT.txt diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java deleted file mode 100644 index bcfe79d..0000000 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java +++ /dev/null @@ -1,24 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; - -public class FakeDigitalInterfaceTileEntity implements IDigitalInterfaceEntity { - public BlockPos blockPos; - public Level level; - - FakeDigitalInterfaceTileEntity(BlockPos in_block, Level in_level) { - this.blockPos = in_block; - this.level = in_level; - } - - @Override - public BlockPos getPos() { - return this.blockPos; - } - - @Override - public Level getLevel() { - return this.level; - } -} diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_door_soviet.json b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_door_soviet.json new file mode 100644 index 0000000..efab0e8 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_door_soviet.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=north,half=lower,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom" + }, + "facing=north,half=lower,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed" + }, + "facing=north,half=upper,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top" + }, + "facing=north,half=upper,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed" + }, + "facing=west,half=lower,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom", + "y": 270 + }, + "facing=west,half=lower,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed", + "y": 270 + }, + "facing=west,half=upper,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top", + "y": 270 + }, + "facing=west,half=upper,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed", + "y": 270 + }, + "facing=east,half=lower,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom", + "y": 90 + }, + "facing=east,half=lower,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed", + "y": 90 + }, + "facing=east,half=upper,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top", + "y": 90 + }, + "facing=east,half=upper,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed", + "y": 90 + }, + "facing=south,half=lower,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom", + "y": 180 + }, + "facing=south,half=lower,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_closed", + "y": 180 + }, + "facing=south,half=upper,open=false,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top", + "y": 180 + }, + "facing=south,half=upper,open=false,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_closed", + "y": 180 + }, + "facing=north,half=lower,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom" + }, + "facing=north,half=lower,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open" + }, + "facing=north,half=upper,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top" + }, + "facing=north,half=upper,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open" + }, + "facing=west,half=lower,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom", + "y": 270 + }, + "facing=west,half=lower,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open", + "y": 270 + }, + "facing=west,half=upper,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top", + "y": 270 + }, + "facing=west,half=upper,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open", + "y": 270 + }, + "facing=east,half=lower,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom", + "y": 90 + }, + "facing=east,half=lower,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open", + "y": 90 + }, + "facing=east,half=upper,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top", + "y": 90 + }, + "facing=east,half=upper,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open", + "y": 90 + }, + "facing=south,half=lower,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_bottom", + "y": 180 + }, + "facing=south,half=lower,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_bottom_open", + "y": 180 + }, + "facing=south,half=upper,open=true,front=false": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_sides_top", + "y": 180 + }, + "facing=south,half=upper,open=true,front=true": { + "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_door_top_front_open", + "y": 180 + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_floor_soviet.json b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_floor_soviet.json new file mode 100644 index 0000000..2363709 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_floor_soviet.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_floor" } + } +} diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_roof_soviet.json b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_roof_soviet.json new file mode 100644 index 0000000..9adda15 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_roof_soviet.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "tardim_ic:block/tardim_soviet_chronobox/tardim_roof" } + } +} diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json new file mode 100644 index 0000000..e9ed518 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json @@ -0,0 +1,279 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "0": "tardim_ic:blocks/tardim_soviet_chronobox", + "particle": "tardim_ic:blocks/tardim_soviet_chronobox" + }, + "elements": [ + { + "from": [13, 0, 0], + "to": [15, 32, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [12.5, 0, 13, 8], "texture": "#0"}, + "east": {"uv": [12.5, 0, 12.75, 8], "texture": "#0"}, + "south": {"uv": [12.5, 0, 13, 8], "texture": "#0"}, + "west": {"uv": [12.75, 0, 13, 8], "texture": "#0"}, + "up": {"uv": [12.5, 0, 13, 0.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [12.5, 7.75, 13, 8], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [3, 0, 0], + "to": [13, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"}, + "east": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"}, + "south": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"}, + "west": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#0"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [3, 15, 0], + "to": [13, 17, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"}, + "east": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"}, + "south": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"}, + "west": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#0"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [3, 17, 0], + "to": [13, 30, 0], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [3, 17, -16], + "to": [13, 30, -16], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"}, + "east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 17, -13], + "to": [0, 30, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [15, 17, -13], + "to": [15, 30, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [7, 18, 0.425], + "to": [9, 20, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "east": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "south": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "west": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "up": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "down": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"} + } + }, + { + "from": [6, 19, 0.425], + "to": [7, 20, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "east": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "south": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "west": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "up": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "down": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"} + } + }, + { + "from": [9, 19, 0.425], + "to": [10, 20, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "east": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "south": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "west": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "up": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "down": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"} + } + }, + { + "from": [11, 20, 0.425], + "to": [12, 22, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "east": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "south": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "west": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "up": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "down": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"} + } + }, + { + "from": [4, 20, 0.425], + "to": [5, 22, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "east": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "south": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "west": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "up": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "down": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"} + } + }, + { + "from": [5, 21, 0.425], + "to": [6, 22, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "east": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "south": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "west": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "up": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "down": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"} + } + }, + { + "from": [5, 22, 0.425], + "to": [11, 23, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "east": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "south": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "west": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "up": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "down": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"} + } + }, + { + "from": [7, 23, 0.425], + "to": [9, 24, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "east": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "south": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "west": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "up": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "down": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"} + } + }, + { + "from": [10, 21, 0.425], + "to": [11, 22, 0.425], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "east": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "south": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "west": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "up": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "down": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"} + } + }, + { + "from": [3, 2, 0], + "to": [13, 15, 0], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "east": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "south": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"}, + "west": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "up": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [3, 30, 0], + "to": [13, 32, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"}, + "east": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"}, + "south": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"}, + "west": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#0"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [1, 0, 0], + "to": [3, 32, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [15.5, 0, 16, 8], "texture": "#0"}, + "east": {"uv": [15.5, 0, 15.75, 8], "texture": "#0"}, + "south": {"uv": [15.5, 0, 16, 8], "texture": "#0"}, + "west": {"uv": [15.75, 0, 16, 8], "texture": "#0"}, + "up": {"uv": [15.5, 0, 16, 0.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [15.5, 7.75, 16, 8], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [2, 15.5, 0.5], + "to": [5, 16.5, 1.5], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"}, + "east": {"uv": [7, 0.5, 7.25, 0.75], "texture": "#0"}, + "south": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"}, + "west": {"uv": [7.25, 0, 7.5, 0.25], "texture": "#0"}, + "up": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"}, + "down": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [0, 0, 0], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json new file mode 100644 index 0000000..72ab1d2 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json @@ -0,0 +1,279 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "0": "tardim_ic:blocks/tardim_soviet_chronobox", + "particle": "tardim_ic:blocks/tardim_soviet_chronobox" + }, + "elements": [ + { + "from": [14, 0, 1], + "to": [15, 32, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [12.5, 0, 12.75, 8], "texture": "#0"}, + "east": {"uv": [12.5, 0, 13, 8], "texture": "#0"}, + "south": {"uv": [12.75, 0, 13, 8], "texture": "#0"}, + "west": {"uv": [12.5, 0, 13, 8], "texture": "#0"}, + "up": {"uv": [12.5, 0, 13, 0.25], "texture": "#0"}, + "down": {"uv": [12.5, 7.75, 13, 8], "texture": "#0"} + } + }, + { + "from": [14, 0, 3], + "to": [15, 2, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"}, + "east": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"}, + "south": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"}, + "west": {"uv": [13, 7.5, 15.5, 8], "texture": "#0"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"} + } + }, + { + "from": [14, 15, 3], + "to": [15, 17, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"}, + "east": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"}, + "south": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"}, + "west": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#0"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"} + } + }, + { + "from": [14, 17, 3], + "to": [14, 30, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "east": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"}, + "south": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"} + } + }, + { + "from": [14.425, 18, 7], + "to": [14.425, 20, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "east": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "south": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "west": {"uv": [9.25, 1, 8.75, 1.5], "texture": "#0"}, + "up": {"uv": [9.25, 1, 8.75, 1.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9.25, 1, 8.75, 1.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 19, 9], + "to": [14.425, 20, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "east": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "south": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "west": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}, + "up": {"uv": [8.75, 1, 8.5, 1.25], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8.75, 1, 8.5, 1.25], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 19, 6], + "to": [14.425, 20, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "east": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "south": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "west": {"uv": [9.5, 1, 9.25, 1.25], "texture": "#0"}, + "up": {"uv": [9.5, 1, 9.25, 1.25], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9.5, 1, 9.25, 1.25], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 20, 4], + "to": [14.425, 22, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "east": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "south": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "west": {"uv": [10, 0.5, 9.75, 1], "texture": "#0"}, + "up": {"uv": [10, 0.5, 9.75, 1], "rotation": 270, "texture": "#0"}, + "down": {"uv": [10, 0.5, 9.75, 1], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 20, 11], + "to": [14.425, 22, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "east": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "south": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "west": {"uv": [8.25, 0.5, 8, 1], "texture": "#0"}, + "up": {"uv": [8.25, 0.5, 8, 1], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8.25, 0.5, 8, 1], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 21, 10], + "to": [14.425, 22, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "east": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "south": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "west": {"uv": [8.5, 0.5, 8.25, 0.75], "texture": "#0"}, + "up": {"uv": [8.5, 0.5, 8.25, 0.75], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8.5, 0.5, 8.25, 0.75], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 22, 5], + "to": [14.425, 23, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "east": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "south": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "west": {"uv": [9.75, 0.25, 8.25, 0.5], "texture": "#0"}, + "up": {"uv": [9.75, 0.25, 8.25, 0.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9.75, 0.25, 8.25, 0.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 23, 7], + "to": [14.425, 24, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "east": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "south": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "west": {"uv": [9.25, 0, 8.75, 0.25], "texture": "#0"}, + "up": {"uv": [9.25, 0, 8.75, 0.25], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9.25, 0, 8.75, 0.25], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14.425, 21, 5], + "to": [14.425, 22, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "east": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "south": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "west": {"uv": [9.75, 0.5, 9.5, 0.75], "texture": "#0"}, + "up": {"uv": [9.75, 0.5, 9.5, 0.75], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9.75, 0.5, 9.5, 0.75], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [14, 2, 3], + "to": [14, 15, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "east": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"}, + "south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "west": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "up": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "down": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"} + } + }, + { + "from": [14, 30, 3], + "to": [15, 32, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#0"}, + "east": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"}, + "south": {"uv": [15.75, 7.5, 16, 8], "texture": "#0"}, + "west": {"uv": [13, 0, 15.5, 0.5], "texture": "#0"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "texture": "#0"} + } + }, + { + "from": [14, 0, 13], + "to": [15, 32, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [15.5, 0, 15.75, 8], "texture": "#0"}, + "east": {"uv": [15.5, 0, 16, 8], "texture": "#0"}, + "south": {"uv": [15.75, 0, 16, 8], "texture": "#0"}, + "west": {"uv": [15.5, 0, 16, 8], "texture": "#0"}, + "up": {"uv": [15.5, 0, 16, 0.25], "texture": "#0"}, + "down": {"uv": [15.5, 7.75, 16, 8], "texture": "#0"} + } + }, + { + "from": [14.5, 15.5, 11], + "to": [15.5, 16.5, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [7, 0.5, 7.25, 0.75], "texture": "#0"}, + "east": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"}, + "south": {"uv": [7.25, 0, 7.5, 0.25], "texture": "#0"}, + "west": {"uv": [7.25, 0, 8, 0.25], "texture": "#0"}, + "up": {"uv": [7.25, 0, 8, 0.25], "rotation": 270, "texture": "#0"}, + "down": {"uv": [7.25, 0, 8, 0.25], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [15, 17, -13], + "to": [15, 30, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 17, -13], + "to": [0, 30, -3], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 0, 10, 3.25], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [3, 17, -16], + "to": [13, 30, -16], + "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, + "faces": { + "north": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#0"}, + "east": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#0"}, + "west": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, + "up": {"uv": [10, 0, 12.5, 3.25], "rotation": 90, "texture": "#0"}, + "down": {"uv": [10, 0, 12.5, 3.25], "rotation": 270, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [0, 0, 0], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides.json new file mode 100644 index 0000000..5ea61b2 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides.json @@ -0,0 +1,16 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "particle": "tardim:block/tardim_tt" + }, + "groups": [ + { + "name": "group", + "origin": [0, 0, 0], + "color": 0, + "nbt": "{}", + "children": [] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_bottom.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_bottom.json new file mode 100644 index 0000000..5006320 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_bottom.json @@ -0,0 +1,97 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "1": "tardim_ic:blocks/tardim_soviet_chronobox", + "particle": "tardim:block/tardim_tt" + }, + "elements": [ + { + "from": [1, 0, 0], + "to": [3, 32, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12.5, 0, 13, 8], "texture": "#1"}, + "east": {"uv": [12.75, 0, 13, 8], "texture": "#1"}, + "south": {"uv": [12.5, 0, 13, 8], "texture": "#1"}, + "west": {"uv": [12.5, 0, 12.75, 8], "texture": "#1"}, + "up": {"uv": [12.5, 0, 13, 0.25], "rotation": 270, "texture": "#1"}, + "down": {"uv": [12.5, 7.75, 13, 8], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [3, 0, 0], + "to": [13, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 7.5, 15.5, 8], "texture": "#1"}, + "east": {"uv": [15.75, 7.5, 16, 8], "texture": "#1"}, + "south": {"uv": [13, 7.5, 15.5, 8], "texture": "#1"}, + "west": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#1"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#1"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [3, 15, 0], + "to": [13, 17, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#1"}, + "east": {"uv": [15.75, 7.5, 16, 8], "texture": "#1"}, + "south": {"uv": [13, 3.75, 15.5, 4.25], "texture": "#1"}, + "west": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#1"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#1"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [3, 2, 0], + "to": [13, 15, 0], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10, 3.25, 12.5, 6.5], "texture": "#1"}, + "east": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#1"}, + "south": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#1"}, + "west": {"uv": [12.5, 3.25, 10, 6.5], "texture": "#1"}, + "up": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 270, "texture": "#1"}, + "down": {"uv": [12.5, 3.25, 10, 6.5], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [3, 30, 0], + "to": [13, 32, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13, 0, 15.5, 0.5], "texture": "#1"}, + "east": {"uv": [15.75, 7.5, 16, 8], "texture": "#1"}, + "south": {"uv": [13, 0, 15.5, 0.5], "texture": "#1"}, + "west": {"uv": [15.25, 7.5, 15.5, 8], "texture": "#1"}, + "up": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 270, "texture": "#1"}, + "down": {"uv": [15.75, 5.25, 16, 7.75], "rotation": 90, "texture": "#1"} + } + }, + { + "from": [13, 0, 0], + "to": [15, 32, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [15.5, 0, 16, 8], "texture": "#1"}, + "east": {"uv": [15.75, 0, 16, 8], "texture": "#1"}, + "south": {"uv": [15.5, 0, 16, 8], "texture": "#1"}, + "west": {"uv": [15.5, 0, 15.75, 8], "texture": "#1"}, + "up": {"uv": [15.5, 0, 16, 0.25], "rotation": 270, "texture": "#1"}, + "down": {"uv": [15.5, 7.75, 16, 8], "rotation": 90, "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [0, 0, 0], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_top.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_top.json new file mode 100644 index 0000000..b9980a8 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_sides_top.json @@ -0,0 +1,13 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "groups": [ + { + "name": "group", + "origin": [0, 0, 0], + "color": 0, + "nbt": "{}", + "children": [] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_closed.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_closed.json new file mode 100644 index 0000000..1ad61f0 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_closed.json @@ -0,0 +1,22 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "0": "tardim_ic:blocks/tardim_soviet_chronobox", + "particle": "tardim_ic:blocks/tardim_soviet_chronobox" + }, + "elements": [ + { + "from": [-4, 16, 4.15], + "to": [20, 24, 4.15], + "faces": { + "north": {"uv": [0, 2, 6, 4], "texture": "#0"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#0"}, + "south": {"uv": [0, 2, 6, 4], "texture": "#0"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 6, 0], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_open.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_open.json new file mode 100644 index 0000000..1ad61f0 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_top_front_open.json @@ -0,0 +1,22 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "0": "tardim_ic:blocks/tardim_soviet_chronobox", + "particle": "tardim_ic:blocks/tardim_soviet_chronobox" + }, + "elements": [ + { + "from": [-4, 16, 4.15], + "to": [20, 24, 4.15], + "faces": { + "north": {"uv": [0, 2, 6, 4], "texture": "#0"}, + "east": {"uv": [0, 0, 0, 2], "texture": "#0"}, + "south": {"uv": [0, 2, 6, 4], "texture": "#0"}, + "west": {"uv": [0, 0, 0, 2], "texture": "#0"}, + "up": {"uv": [0, 0, 6, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 6, 0], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_floor.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_floor.json new file mode 100644 index 0000000..742139d --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_floor.json @@ -0,0 +1,73 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "1": "tardim_ic:blocks/tardim_soviet_chronobox", + "particle": "tardim_ic:blocks/tardim_soviet_chronobox" + }, + "elements": [ + { + "from": [0, 0.1, 0], + "to": [16, 0.1, 16], + "faces": { + "north": {"uv": [1.5, 15.75, 5.5, 16], "texture": "#1"}, + "east": {"uv": [1.75, 15.75, 5.75, 16], "texture": "#1"}, + "south": {"uv": [1.5, 15.75, 5.5, 16], "texture": "#1"}, + "west": {"uv": [1.75, 15.75, 5.75, 16], "texture": "#1"}, + "up": {"uv": [12, 8, 16, 12], "texture": "#1"}, + "down": {"uv": [12, 8, 16, 12], "texture": "#1"} + } + }, + { + "from": [-2, 0, -2], + "to": [1, 32, 1], + "faces": { + "north": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "east": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "south": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "west": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "up": {"uv": [11.25, 8.75, 12, 8], "texture": "#1"}, + "down": {"uv": [11.25, 16, 12, 15.25], "texture": "#1"} + } + }, + { + "from": [-2, 0, 15], + "to": [1, 32, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 16]}, + "faces": { + "north": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "east": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "south": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "west": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "up": {"uv": [11.25, 8, 12, 8.75], "texture": "#1"}, + "down": {"uv": [11.25, 15.25, 12, 16], "texture": "#1"} + } + }, + { + "from": [15, 0, -2], + "to": [18, 32, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "east": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "south": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "west": {"uv": [12, 16, 11.25, 8], "texture": "#1"}, + "up": {"uv": [12, 8.75, 11.25, 8], "texture": "#1"}, + "down": {"uv": [12, 16, 11.25, 15.25], "texture": "#1"} + } + }, + { + "from": [15, 0, 15], + "to": [18, 32, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 16]}, + "faces": { + "north": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "east": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "south": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "west": {"uv": [11.25, 16, 12, 8], "texture": "#1"}, + "up": {"uv": [12, 8, 11.25, 8.75], "texture": "#1"}, + "down": {"uv": [12, 15.25, 11.25, 16], "texture": "#1"} + } + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_roof.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_roof.json new file mode 100644 index 0000000..2558b8c --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_roof.json @@ -0,0 +1,22 @@ +{ + "credit": "Made by karoter2", + "texture_size": [64, 64], + "textures": { + "0": "tardim_ic:blocks/tardim_soviet_chronobox", + "particle": "tardim_ic:blocks/tardim_soviet_chronobox" + }, + "elements": [ + { + "from": [-4, 0, -4], + "to": [20, 8, 20], + "faces": { + "north": {"uv": [0, 0, 6, 2], "texture": "#0"}, + "east": {"uv": [0, 0, 6, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 6, 2], "texture": "#0"}, + "west": {"uv": [0, 0, 6, 2], "texture": "#0"}, + "up": {"uv": [0, 4, 6, 10], "texture": "#0"}, + "down": {"uv": [0, 4, 6, 10], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_soviet_chronobox.png b/Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_soviet_chronobox.png new file mode 100644 index 0000000000000000000000000000000000000000..ce231686de612ba5e2af7bbe9d1e6687f3086a75 GIT binary patch literal 2056 zcmV+j2>17iP)Px+!bwCyRCt`-Tgz)3M;QOvNMyBoEK-n{I#{tusaqrAJ?iNqcg@lu*YGb*dP9S+N>z5JWw!ztK03)yuNm%@2(B zF*`HgH{W~4b62i>*6(&ZsMQw0;W#eFMH~xx-R*YJ?REeFg+dXJAOAeZ+upx_zYhSb ztE(uN%eZ>=s(k;|4?p$+;G0`FZ*m+Rm6_4{61;Nkk+IU>BU zxNIHgT&0ND?T#dt(@|ck8|~?R946o7y4?;OuZVobMXxQ8uZ+L)Ht;@35;)4`vU30V z+Sh#mc(8WIU<$oUBOU3>kMZ&Q+$D-W-sKgX0y^Yl~6sC3-=kOY{x>9__UZy&DE1p7fvk zeXw?C?!nrfx%C@=^oM*tHHf)6z%&e_n8Dx0VMkf*G~+W0-`u(}$8~?)@7_cQ@_JJB zb-hx;0045*B8(IQ9It4IGf50RCkE2@{MjV1sRED?IbW(qJFQOYAOiVH z6AoVn@>+z^L{i*q3&=ny4m+qde8jQ9rOQnKP>A1s@>D(pAQ?gMn=5j)cb_~pjN?i0 zV(S@RY&}zmC7ge!io=(I_1!p-ZjdZ|x10F%I2PF6*hIBjN3Sg;aoZc4c>mK+u=w5z zwl_9$>2eeMf9_y=V^elo^A~2K`-Ja){mV#l2-CP)4iQFb9B^TIB@rdZMa>^%hZmMt zq2MAJY7HMpdo9!&zS4-|0~(Z1AT4Gf z;%g0mCJb=B(op|S%$T-s)eTx!I*m|0?{~bSlnCC}EWzh7i^x^+0@NvqmM-r3iYp5r zy&#gr>v}cokeZOT2t>#zoNkd#!ZwuMS)iNdnmqF8Z^`1%O226hc{fjw(pNl*tfaTKjy(RrEMtag|B% zau|s{F#}-wxj*rItk4NNDbXA`K(+RqXnt>-kWM_mpEXWOXj*@=C{5t8t}e&XiU(f#Brf`0ZxD}>iU3uPyki~IV%P{di3pBfz8d^_a>?yOCtzq zp`&hW7*}1dq!O-q2Y!88?l29LdL2@M`4R0hg{i$j9Cijt!?DMq?xLf4z@T?Js9l6)Y=b;-%Zlo1A$Y0ok9NKNA)Y8`0HsD!- z(qazXdvSvb9d-I& zSbkmHZK1f0K?EZi(z80=A!mXv{=`+KvNWS)XdKuoSNt7cD1JX*C=4cUtNEp>0TX}v zh8ReF&9W+NLz)o;((@WUvdsaItEMMA1R_pn5MAr-i3z6#9*dlG3oZu$`}@yj0h6y< z91FQGKm&3dwO$z=2EoCp>D5J4^ZU{5W09^w378u8F?1_VcY(m5KqAivWEpYTF;Z_X9hAyb2C3HtGRpuGdlGA&5);Vki!f5o zKfM*X06{<4Mduju)%0o+Fkn>XZGaB42{wo@LhYlKq+Jl1horIup8D$l-oy6`_%8s6 z-K2_@`A}G%VX*A~khar5N`PMI00xCpxo5EZ3S#$_QvK0`Cimh(HYEVCGXWSd mLiYybA*g;(UaF%PMEDo-cAZ1wzd4lv0000 TILE_SOVIET_CHRONOBOX; public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); - public static final Block TARDIM_DOCK = new TardimDockBlock(); // Tile Entities public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY = Registry.register( @@ -68,12 +63,6 @@ public class Registration { FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() ); - public static final BlockEntityType TARDIM_DOCK_BLOCKENTITY = Registry.register( - Registry.BLOCK_ENTITY_TYPE, - new ResourceLocation("tardim_ic", "tardim_dock"), - FabricBlockEntityTypeBuilder.create(TardimDockBlockEntity::new, TARDIM_DOCK).build() - ); - private static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder .create(new ResourceLocation("tardim_ic")) .icon(() -> new ItemStack(DIGITAL_TARDIM_INTERFACE)) @@ -83,6 +72,12 @@ public class Registration { public static final ResourceLocation CLOISTER_SOUND = new ResourceLocation("tardim_ic:cloister"); public static SoundEvent CLOISTER_SOUND_EVENT = new SoundEvent(CLOISTER_SOUND); + public static TardimRegistry.TardimBuilder TARDIM_TYPE_SOVIET; + + private static BlockEntityType createTardimTile(String string, FabricBlockEntityTypeBuilder builder) { + Type type = Util.fetchChoiceType(References.BLOCK_ENTITY, string); + return (BlockEntityType)Registry.register(Registry.BLOCK_ENTITY_TYPE, new ResourceLocation(Constants.MOD_ID, string), builder.build(type)); + } // Register our stuff public static void register() { @@ -92,33 +87,25 @@ public class Registration { Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(TARDIM_IC_TAB))); - Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_dock"), TARDIM_DOCK); - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "tardim_dock"), new BlockItem(TARDIM_DOCK, new FabricItemSettings().tab(TARDIM_IC_TAB))); - Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); + FLOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_floor_soviet"), new BlockTardimFloor(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion(), new BlockTardimFloor.TardimTileData() { + public BlockEntityType getType() { + return TILE_SOVIET_CHRONOBOX; + } + public BlockEntityTicker getTicker() { + return TileEntityTardim::serverTick; + } + public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) { + return new SovietChronoboxTileEntity(var1, var2); + } + })); + TILE_SOVIET_CHRONOBOX = createTardimTile("tardim_soviet_chronobox", FabricBlockEntityTypeBuilder.create(SovietChronoboxTileEntity::new, new Block[]{FLOOR_SOVIET_CHRONOBOX})); + DOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_door_soviet"), new BlockTardimDoors(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); + ROOF_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_roof_soviet"), new BlockTardimRoof(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); + TARDIM_TYPE_SOVIET = new TardimRegistry.TardimBuilder(new ResourceLocation(Constants.MOD_ID, "tardim_soviet_chronobox"), "TARDIM Soviet Chronobox", ROOF_SOVIET_CHRONOBOX, DOOR_SOVIET_CHRONOBOX, FLOOR_SOVIET_CHRONOBOX); + ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); CommandInit.init(); - - ServerLifecycleEvents.SERVER_STARTING.register((server) -> { - DockManager.server = server; - DockManager.clearCahce(); - - try { - DockManager.load(); - } catch (Exception var2) { - var2.printStackTrace(); - } - }); - ServerWorldEvents.UNLOAD.register((server, world) -> { - try { - if (DockManager.server == null) { - return; - } - DockManager.save(); - } catch (Exception var5) { - var5.printStackTrace(); - } - }); } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index f72e511..8fd1287 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -45,7 +45,6 @@ public class DigitalInterfacePeripheral implements IPeripheral { private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral private final IDigitalInterfaceEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates - /** * @param tileEntity the tile entity of this peripheral * @hidden @@ -111,7 +110,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { * @throws LuaException if the peripheral is not in a TARDIM * @hidden */ - public TardimData getTardimData() throws LuaException { + public TardimData getTardimDataInitial() { int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); int index = 0; @@ -154,17 +153,26 @@ public class DigitalInterfacePeripheral implements IPeripheral { } // We really don't want to access a ghost TARDIM, do we? + // If we fail checks here are not inside a TARDIM if (!found) { - throw new LuaException("Peripheral is not inside a TARDIM"); + return null; } TardimData T = TardimManager.getTardim(index); if (T.getCurrentLocation() == null || T.getOwnerName() == null) { - throw new LuaException("Peripheral is not inside a TARDIM"); + return null; } return T; } + public TardimData getTardimData() throws LuaException { + TardimData data = this.getTileEntity().getTardim(); + if (data == null || data.getCurrentLocation() == null || data.getOwnerName() == null) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + return data; + } + // Peripheral methods =============================================================== /** diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java index f7d9ca2..2e84bb7 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -1,24 +1,96 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import su.a71.tardim_ic.tardim_ic.Registration; -public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalInterfaceEntity { +public class DigitalInterfaceTileEntity extends BlockEntity {//implements IDigitalInterfaceEntity { + //public TardimData data; // Our TARDIM + public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); + //this.data = getTardimDataInitial(); } - public BlockPos getPos() { - return this.worldPosition; - } +// public BlockPos getPos() { +// return this.worldPosition; +// } +// +// @Override +// public TardimData getTardim() { +// return null; +// } - /** - * The peripheral - */ - protected DigitalInterfacePeripheral peripheral = new DigitalInterfacePeripheral(this); +// /** +// * The peripheral +// */ +// protected DigitalInterfacePeripheral peripheral = new DigitalInterfacePeripheral(this); + +// public TardimData getTardimDataInitial() { +// int X = this.getPos().getX(), Z = this.getPos().getZ(); +// +// int index = 0; +// int x = 0; +// int y = 0; +// int dx = 0; +// int dy = 1; +// int segment_length = 1; +// int segment_passed = 0; +// boolean found = false; +// long timecheck = System.currentTimeMillis(); +// +// while(true) { +// if (System.currentTimeMillis() - timecheck > 10000L) { +// System.out.println("Finding ID from XZ Coordinates is taking too long!"); +// break; +// } +// +// if (X >= x * TardimManager.INTERIOR_BOUNDS +// && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS +// && Z >= y * TardimManager.INTERIOR_BOUNDS +// && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { +// found = true; +// break; +// } +// +// x += dx; +// y += dy; +// if (++segment_passed == segment_length) { +// segment_passed = 0; +// int buffer = dy; +// dy = -dx; +// dx = buffer; +// if (buffer == 0) { +// ++segment_length; +// } +// } +// +// ++index; +// } +// +// // We really don't want to access a ghost TARDIM, do we? +// // If we fail checks here are not inside a TARDIM +// if (!found) { +// return null; +// } +// TardimData T = TardimManager.getTardim(index); +// if (T.getCurrentLocation() == null || T.getOwnerName() == null) { +// return null; +// } +// +// return T; +// } +// +// @Override +// public void load(CompoundTag tag) { +// super.load(tag); +// this.data = getTardimDataInitial(); +// } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java new file mode 100644 index 0000000..f39e937 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java @@ -0,0 +1,89 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +public class FakeDigitalInterfaceTileEntity implements IDigitalInterfaceEntity { + public BlockPos blockPos; + public Level level; + public TardimData data; // Our TARDIM + + + FakeDigitalInterfaceTileEntity(BlockPos in_block, Level in_level) { + this.blockPos = in_block; + this.level = in_level; + this.data = getTardimDataInitial(); + } + + @Override + public BlockPos getPos() { + return this.blockPos; + } + + @Override + public Level getLevel() { + return this.level; + } + + @Override + public TardimData getTardim() { + return this.data; + } + + public TardimData getTardimDataInitial() { + int X = this.getPos().getX(), Z = this.getPos().getZ(); + + int index = 0; + int x = 0; + int y = 0; + int dx = 0; + int dy = 1; + int segment_length = 1; + int segment_passed = 0; + boolean found = false; + long timecheck = System.currentTimeMillis(); + + while(true) { + if (System.currentTimeMillis() - timecheck > 10000L) { + System.out.println("Finding ID from XZ Coordinates is taking too long!"); + break; + } + + if (X >= x * TardimManager.INTERIOR_BOUNDS + && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS + && Z >= y * TardimManager.INTERIOR_BOUNDS + && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { + found = true; + break; + } + + x += dx; + y += dy; + if (++segment_passed == segment_length) { + segment_passed = 0; + int buffer = dy; + dy = -dx; + dx = buffer; + if (buffer == 0) { + ++segment_length; + } + } + + ++index; + } + + // We really don't want to access a ghost TARDIM, do we? + // If we fail checks here are not inside a TARDIM + if (!found) { + return null; + } + TardimData T = TardimManager.getTardim(index); + if (T.getCurrentLocation() == null || T.getOwnerName() == null) { + return null; + } + + return T; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java new file mode 100644 index 0000000..6c94757 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java @@ -0,0 +1,12 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import com.swdteam.tardim.tardim.TardimData; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +public interface IDigitalInterfaceEntity { + public BlockPos getPos(); + public Level getLevel(); + + public TardimData getTardim(); +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java new file mode 100644 index 0000000..4e6e499 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java @@ -0,0 +1,13 @@ +package su.a71.tardim_ic.tardim_ic.soviet_chronobox; + +import com.swdteam.tardim.common.init.TRDTiles; +import com.swdteam.tardim.tileentity.TileEntityTardim; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; +import su.a71.tardim_ic.tardim_ic.Registration; + +public class SovietChronoboxTileEntity extends TileEntityTardim { + public SovietChronoboxTileEntity(BlockPos pos, BlockState state) { + super(Registration.TILE_SOVIET_CHRONOBOX, pos, state); + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java deleted file mode 100644 index 3566ba8..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockData.java +++ /dev/null @@ -1,22 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.tardim_dock; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; - -public class DockData { - public String name; - public BlockPos blockPos; - public Level level; - public boolean active = true; - public boolean occupied = false; - - public DockData(BlockPos blockPos) { - this.blockPos = blockPos; - this.name = DockManager.addDock(this); - } - - public void setActive(boolean setting) { - this.active = setting; - DockManager.updateDock(this.name, this); - } -} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java deleted file mode 100644 index 84d27f0..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/DockManager.java +++ /dev/null @@ -1,99 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.tardim_dock; - -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import com.swdteam.tardim.main.Config; -import com.swdteam.tardim.main.Tardim; -import com.swdteam.tardim.tardim.TardimData; -import com.swdteam.tardim.tardim.TardimManager; -import com.swdteam.tardim.tardim.TardimSaveHandler; -import com.swdteam.tardim.tardim.TardimIDMap; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.level.storage.LevelResource; - -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.Map; - -public class DockManager { - private static Map DOCK_DATA = new HashMap<>(); - static Gson gson = new Gson(); - public static MinecraftServer server; - - - public DockManager() { - } - - public static DockData getDock(String name) { - return DOCK_DATA.get(name); - } - - public static String addDock(DockData dockData) { - int new_id = DOCK_DATA.size(); - while (DOCK_DATA.containsKey(Integer.toString(new_id))) { - System.out.println(new_id + "Was taken so we try another"); - new_id++; - } - System.out.println("PICKED ID: " + new_id); - - DOCK_DATA.put(Integer.toString(new_id), dockData); - return Integer.toString(new_id); - } - - public static void removeDock(String name) { - DOCK_DATA.remove(name); - } - - public static void updateDock(String name, DockData dockData) { - DOCK_DATA.put(name, dockData); - } - - public static void load() throws Exception { - File file = new File(server.getWorldPath(LevelResource.ROOT) + "/tardim_ic/dock_map.json"); - - // Check if file exists - if (!file.exists()) { - file.getParentFile().mkdirs(); - file.createNewFile(); - FileWriter writer = new FileWriter(file); - writer.write(gson.toJson(new HashMap())); - writer.close(); - return; - } - - Type typeOfDockMap = new TypeToken>() { }.getType(); - - JsonReader reader = new JsonReader(new FileReader(file)); - String json = gson.fromJson(reader, String.class); - DOCK_DATA = gson.fromJson(json, typeOfDockMap); - - System.out.println("Loaded TARDIM: IC docks"); - } - - public static void save() throws Exception { - File file = new File(server.getWorldPath(LevelResource.ROOT) + "/tardim_ic/dock_map.json"); - - // Check if file exists - if (!file.exists()) { - file.getParentFile().mkdirs(); - file.createNewFile(); - } - - Gson gson = new Gson(); - String json = gson.toJson(DOCK_DATA); - JsonWriter writer = new JsonWriter(new FileWriter(file)); - writer.jsonValue(json); - writer.close(); - - System.out.println("Saved TARDIM: IC docks"); - } - - public static void clearCahce() { - DOCK_DATA.clear(); - } -} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java deleted file mode 100644 index c17695c..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlock.java +++ /dev/null @@ -1,108 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.tardim_dock; - -import com.swdteam.tardim.common.init.TRDDimensions; -import com.swdteam.tardim.common.init.TRDSounds; -import com.swdteam.tardim.network.NetworkHandler; -import com.swdteam.tardim.network.PacketOpenEditGui; -import com.swdteam.tardim.tardim.TardimData; -import com.swdteam.tardim.tardim.TardimManager; -import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; -import com.swdteam.tardim.tileentity.TileEntityTardim; -import com.swdteam.tardim.tileentity.tardim.TardimType96TileEntity; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.ChatFormatting; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.network.protocol.game.DebugPackets; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.EntityBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.IntegerProperty; -import net.minecraft.world.level.material.Material; -import net.minecraft.world.phys.BlockHitResult; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import su.a71.tardim_ic.tardim_ic.Registration; -import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; -import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; - -import net.minecraft.world.level.block.RedstoneLampBlock; - -public class TardimDockBlock extends Block implements EntityBlock { - public TardimDockBlock() { - super(FabricBlockSettings.of(Material.METAL).strength(2, 4).noOcclusion()); - } - - @Override - public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { - if (!w.isClientSide) { - BlockEntity be = w.getBlockEntity(blockPos); - if (be instanceof TardimDockBlockEntity) { - - player.displayClientMessage( - Component.literal("Dock name: '" + ((TardimDockBlockEntity) be).data.name + "'").withStyle(ChatFormatting.DARK_AQUA).withStyle(ChatFormatting.BOLD), true - ); - } - } - - return InteractionResult.CONSUME; - } - - public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { - return true; - } - - // Un-register the dock when breaking - @Override - public void destroy(LevelAccessor levelAccessor, BlockPos blockPos, BlockState blockState) { - super.destroy(levelAccessor, blockPos, blockState); - BlockEntity be = levelAccessor.getBlockEntity(blockPos); - if (be instanceof TardimDockBlockEntity) { - DockManager.removeDock(((TardimDockBlockEntity) be).data.name); - } - } - - @Nullable - @Override - public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { - return Registration.TARDIM_DOCK_BLOCKENTITY.create(blockPos, blockState); - } - - - public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { - DebugPackets.sendNeighborsUpdatePacket(level, blockPos); - - BlockEntity be = level.getBlockEntity(blockPos); - if (!(be instanceof TardimDockBlockEntity)) { - return; - } - - // get redstone signal - if (level.hasNeighborSignal(blockPos)) { - if (!((TardimDockBlockEntity) be).isPowered) { - ((TardimDockBlockEntity) be).isPowered = true; - } - } - else if (((TardimDockBlockEntity) be).isPowered) { - ((TardimDockBlockEntity) be).isPowered = false; - } - ((TardimDockBlockEntity) be).updateActive(); - - // Check stuff - ((TardimDockBlockEntity) be).data.occupied = (level.getBlockEntity(blockPos.above()) instanceof TileEntityTardim); - if ((level.getBlockEntity(blockPos.above()) instanceof TileEntityTardim)) { - System.out.println("Oooo TARDIM docked!!!!"); - } - } -} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java deleted file mode 100644 index 30d3660..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/tardim_dock/TardimDockBlockEntity.java +++ /dev/null @@ -1,41 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.tardim_dock; - -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.Tag; -import net.minecraft.world.level.block.ComparatorBlock; -import net.minecraft.world.level.block.EntityBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.entity.ComparatorBlockEntity; -import net.minecraft.world.level.block.state.BlockState; - -import su.a71.tardim_ic.tardim_ic.Registration; - -public class TardimDockBlockEntity extends BlockEntity { - public boolean isPowered = false; - public DockData data; - private BlockPos blockPos; - - public TardimDockBlockEntity(BlockPos blockPos, BlockState blockState) { - super(Registration.TARDIM_DOCK_BLOCKENTITY, blockPos, blockState); - this.blockPos = blockPos; - this.data = new DockData(blockPos); - } - - public void updateActive() { - this.data.setActive(this.isPowered); - } - - @Override - public void saveAdditional(CompoundTag tag) { - tag.putString("data_name", data.name); - tag.putBoolean("data_active", data.active); - super.saveAdditional(tag); - } - - @Override - public void load(CompoundTag tag) { - super.load(tag); - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 60ea768..76cccef 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -2,6 +2,21 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; import com.mojang.datafixers.util.Pair; import com.swdteam.common.command.tardim.CommandTardimBase; +import com.swdteam.common.command.tardim.CommandTravel; +import com.swdteam.common.data.DimensionMapReloadListener; +import com.swdteam.common.init.TRDSounds; +import com.swdteam.common.init.TardimRegistry; +import com.swdteam.common.item.ItemTardim; +import com.swdteam.main.Tardim; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimData.Location; +import com.swdteam.tardim.TardimManager; + +import dan200.computercraft.api.lua.LuaException; +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.lua.ObjectLuaTable; +import dan200.computercraft.api.peripheral.IComputerAccess; +import dan200.computercraft.api.peripheral.IPeripheral; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; @@ -10,31 +25,14 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.players.PlayerList; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; import net.minecraft.world.level.Level; -import net.minecraft.server.players.PlayerList; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; - -import dan200.computercraft.api.lua.LuaFunction; -import dan200.computercraft.api.peripheral.IComputerAccess; -import dan200.computercraft.api.peripheral.IPeripheral; -import dan200.computercraft.api.lua.ObjectLuaTable; -import dan200.computercraft.api.lua.LuaException; - -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; -import com.swdteam.tardim.TardimData.Location; -import com.swdteam.common.init.TardimRegistry; -import com.swdteam.common.command.tardim.CommandTravel; -import com.swdteam.common.data.DimensionMapReloadListener; -import com.swdteam.common.init.TRDSounds; -import com.swdteam.common.item.ItemTardim; -import com.swdteam.main.Tardim; - import su.a71.tardim_ic.tardim_ic.Registration; import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; @@ -46,13 +44,12 @@ import java.util.*; public class DigitalInterfacePeripheral implements IPeripheral { private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral - private final DigitalInterfaceTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates - + private final IDigitalInterfaceEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates /** * @param tileEntity the tile entity of this peripheral * @hidden */ - public DigitalInterfacePeripheral(DigitalInterfaceTileEntity tileEntity) { + public DigitalInterfacePeripheral(IDigitalInterfaceEntity tileEntity) { this.tileEntity = tileEntity; } @@ -92,7 +89,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { * @hidden * @return */ - public DigitalInterfaceTileEntity getTileEntity() { + public IDigitalInterfaceEntity getTileEntity() { return tileEntity; } @@ -113,7 +110,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { * @throws LuaException if the peripheral is not in a TARDIM * @hidden */ - public TardimData getTardimData() throws LuaException { + public TardimData getTardimDataInitial() { int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); int index = 0; @@ -156,15 +153,24 @@ public class DigitalInterfacePeripheral implements IPeripheral { } // We really don't want to access a ghost TARDIM, do we? + // If we fail checks here are not inside a TARDIM if (!found) { - throw new LuaException("Peripheral is not inside a TARDIM"); + return null; } TardimData T = TardimManager.getTardim(index); if (T.getCurrentLocation() == null || T.getOwnerName() == null) { - throw new LuaException("Peripheral is not inside a TARDIM"); + return null; } - return T; + return T; + } + + public TardimData getTardimData() throws LuaException { + TardimData data = this.getTileEntity().getTardim(); + if (data == null || data.getCurrentLocation() == null || data.getOwnerName() == null) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + return data; } // Peripheral methods =============================================================== @@ -173,7 +179,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { * Return how much fuel is left in the TARDIM * * @return Fuel left (Out of 100) - */ + */ @LuaFunction(mainThread = true) public final double getFuel() throws LuaException { return getTardimData().getFuel(); @@ -182,7 +188,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { /** * Get how much fuel it would take to travel to the destination * @return Amount of fuel needed (Out of 100) - */ + */ @LuaFunction(mainThread = true) public final double calculateFuelForJourney() throws LuaException { TardimData data = getTardimData(); @@ -266,15 +272,15 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final ObjectLuaTable getCurrentLocation() throws LuaException { - Location loc = getTardimData().getCurrentLocation(); + Location loc = getTardimData().getCurrentLocation(); return new ObjectLuaTable(Map.of( - "dimension", loc.getLevel().location().toString(), - "pos", new ObjectLuaTable(Map.of( - "x", loc.getPos().getX(), - "y", loc.getPos().getY(), - "z", loc.getPos().getZ() - )), - "facing", loc.getFacing().toString() + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() )); } @@ -291,7 +297,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final ObjectLuaTable getTravelLocation() throws LuaException { - TardimData data = getTardimData(); + TardimData data = getTardimData(); if (data.getTravelLocation() == null) { data.setTravelLocation(data.getCurrentLocation()); } @@ -299,9 +305,9 @@ public class DigitalInterfacePeripheral implements IPeripheral { return new ObjectLuaTable(Map.of( "dimension", loc.getLevel().location().toString(), "pos", new ObjectLuaTable(Map.of( - "x", loc.getPos().getX(), - "y", loc.getPos().getY(), - "z", loc.getPos().getZ() + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() )), "facing", loc.getFacing().toString() )); @@ -313,14 +319,15 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final ObjectLuaTable getCompanions() throws LuaException { - TardimData data = getTardimData(); + TardimData data = getTardimData(); Map companions = new HashMap<>(); - for (int i = 0; i < data.getCompanions().size(); i++) { - companions.put(i + 1, data.getCompanions().get(i).getUsername()); - } - return new ObjectLuaTable(companions); + for (int i = 0; i < data.getCompanions().size(); i++) { + companions.put(i + 1, data.getCompanions().get(i).getUsername()); + } + return new ObjectLuaTable(companions); } + /** * Set dimension for the TARDIM to travel to *

@@ -331,7 +338,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void setDimension(String dimension) throws LuaException { - TardimData data = getTardimData(); + TardimData data = getTardimData(); String key = dimension; dimension = DimensionMapReloadListener.toTitleCase(dimension); @@ -378,7 +385,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { if (this.tileEntity.getLevel().isClientSide()) { return; } - TardimData data = getTardimData(); + TardimData data = getTardimData(); UUID uuid = data.getOwner(); String username = data.getOwnerName(); @@ -415,15 +422,15 @@ public class DigitalInterfacePeripheral implements IPeripheral { PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); ServerPlayer player = playerList.getPlayerByName(username); - if (player == null) { - throw new LuaException("Player not found"); - } + if (player == null) { + throw new LuaException("Player not found"); + } - ResourceKey dim = player.getCommandSenderWorld().dimension(); - BlockPos pos = player.blockPosition(); + ResourceKey dim = player.getCommandSenderWorld().dimension(); + BlockPos pos = player.blockPosition(); - setDimension(dim.location().toString()); - setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); + setDimension(dim.location().toString()); + setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); } /** @@ -437,13 +444,13 @@ public class DigitalInterfacePeripheral implements IPeripheral { return null; } - PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); Map players = new HashMap<>(); for (int i = 0; i < playerList.getPlayers().size(); i++) { players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); } - return new ObjectLuaTable(players); + return new ObjectLuaTable(players); } /** @@ -452,8 +459,8 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final String getDoorRotation() throws LuaException { - TardimData data = getTardimData(); - Direction rotation = data.getTravelLocation().getFacing(); + TardimData data = getTardimData(); + Direction rotation = data.getTravelLocation().getFacing(); switch (rotation) { case NORTH -> { return "north"; @@ -479,7 +486,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void setDoorRotation(String rotation) throws LuaException { - TardimData data = getTardimData(); + TardimData data = getTardimData(); switch (rotation) { case "north" -> data.getTravelLocation().setFacing(Direction.NORTH); case "east" -> data.getTravelLocation().setFacing(Direction.EAST); @@ -496,7 +503,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void toggleDoorRotation() throws LuaException { - TardimData data = getTardimData(); + TardimData data = getTardimData(); if (data.getTravelLocation() == null) { data.setTravelLocation(new Location(data.getCurrentLocation())); } @@ -523,18 +530,18 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void coordAdd(String axis, int amount) throws LuaException { - TardimData data = getTardimData(); - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(new Location(data.getCurrentLocation())); + } - Location location = data.getTravelLocation(); - switch (axis) { - case "x" -> location.addPosition(amount, 0, 0); + Location location = data.getTravelLocation(); + switch (axis) { + case "x" -> location.addPosition(amount, 0, 0); case "y" -> location.addPosition(0, amount, 0); case "z" -> location.addPosition(0, 0, amount); default -> throw new LuaException("Invalid axis"); - } + } } /** @@ -546,7 +553,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { return; } - TardimData data = getTardimData(); + TardimData data = getTardimData(); if (data.isInFlight()) { throw new LuaException("TARDIM is already in flight"); @@ -555,7 +562,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); ItemTardim.destroyTardim(level, loc.getPos(), Direction.NORTH); data.setInFlight(true); - if (data.getTravelLocation() == null) { + if (data.getTravelLocation() == null) { data.setTravelLocation(new Location(data.getCurrentLocation())); } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java index 6a596fc..d03667d 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -1,7 +1,10 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -15,9 +18,11 @@ import dan200.computercraft.api.peripheral.IPeripheral; import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalInterfaceEntity { + public TardimData data; // Our TARDIM public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get(), pos, state); + this.data = getTardimDataInitial(); } /** @@ -29,6 +34,11 @@ public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalI return this.worldPosition; } + @Override + public TardimData getTardim() { + return this.data; + } + /** * When a computer modem tries to wrap our block, the modem will call getCapability to receive our peripheral. * Then we just simply return a {@link LazyOptional} with our Peripheral @@ -44,4 +54,65 @@ public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalI } return super.getCapability(cap, direction); } + + public TardimData getTardimDataInitial() { + int X = this.getPos().getX(), Z = this.getPos().getZ(); + + int index = 0; + int x = 0; + int y = 0; + int dx = 0; + int dy = 1; + int segment_length = 1; + int segment_passed = 0; + boolean found = false; + long timecheck = System.currentTimeMillis(); + + while(true) { + if (System.currentTimeMillis() - timecheck > 10000L) { + System.out.println("Finding ID from XZ Coordinates is taking too long!"); + break; + } + + if (X >= x * TardimManager.INTERIOR_BOUNDS + && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS + && Z >= y * TardimManager.INTERIOR_BOUNDS + && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { + found = true; + break; + } + + x += dx; + y += dy; + if (++segment_passed == segment_length) { + segment_passed = 0; + int buffer = dy; + dy = -dx; + dx = buffer; + if (buffer == 0) { + ++segment_length; + } + } + + ++index; + } + + // We really don't want to access a ghost TARDIM, do we? + // If we fail checks here are not inside a TARDIM + if (!found) { + return null; + } + TardimData T = TardimManager.getTardim(index); + if (T.getCurrentLocation() == null || T.getOwnerName() == null) { + return null; + } + + return T; + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + this.data = getTardimDataInitial(); + } } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java new file mode 100644 index 0000000..df5fe94 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java @@ -0,0 +1,89 @@ +package su.a71.tardim_ic.tardim_ic.digital_interface; + +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +public class FakeDigitalInterfaceTileEntity implements IDigitalInterfaceEntity { + public BlockPos blockPos; + public Level level; + public TardimData data; // Our TARDIM + + + FakeDigitalInterfaceTileEntity(BlockPos in_block, Level in_level) { + this.blockPos = in_block; + this.level = in_level; + this.data = getTardimDataInitial(); + } + + @Override + public BlockPos getPos() { + return this.blockPos; + } + + @Override + public Level getLevel() { + return this.level; + } + + @Override + public TardimData getTardim() { + return this.data; + } + + public TardimData getTardimDataInitial() { + int X = this.getPos().getX(), Z = this.getPos().getZ(); + + int index = 0; + int x = 0; + int y = 0; + int dx = 0; + int dy = 1; + int segment_length = 1; + int segment_passed = 0; + boolean found = false; + long timecheck = System.currentTimeMillis(); + + while(true) { + if (System.currentTimeMillis() - timecheck > 10000L) { + System.out.println("Finding ID from XZ Coordinates is taking too long!"); + break; + } + + if (X >= x * TardimManager.INTERIOR_BOUNDS + && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS + && Z >= y * TardimManager.INTERIOR_BOUNDS + && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { + found = true; + break; + } + + x += dx; + y += dy; + if (++segment_passed == segment_length) { + segment_passed = 0; + int buffer = dy; + dy = -dx; + dx = buffer; + if (buffer == 0) { + ++segment_length; + } + } + + ++index; + } + + // We really don't want to access a ghost TARDIM, do we? + // If we fail checks here are not inside a TARDIM + if (!found) { + return null; + } + TardimData T = TardimManager.getTardim(index); + if (T.getCurrentLocation() == null || T.getOwnerName() == null) { + return null; + } + + return T; + } +} diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java similarity index 76% rename from Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java rename to Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java index bdcfbb0..ccbb39c 100644 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java @@ -1,9 +1,12 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; +import com.swdteam.tardim.TardimData; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; public interface IDigitalInterfaceEntity { public BlockPos getPos(); public Level getLevel(); + + public TardimData getTardim(); } diff --git a/SWD_MOMENT.txt b/SWD_MOMENT.txt new file mode 100644 index 0000000..cb9226a --- /dev/null +++ b/SWD_MOMENT.txt @@ -0,0 +1,4 @@ +=== HOW MANY PROBLEMS TARDIM HAS?! === +1. A few log messages definitely left from testing (e.g. aklfjsjsfw) +2. isValidFlightPath is private of Fabric +3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS \ No newline at end of file From 7fe9425c7bee9bcf19789dcd8196282148c83a29 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Wed, 10 May 2023 22:20:35 +0300 Subject: [PATCH 43/61] I found it!!!!! --- .../tardim_soviet_chronobox/tardim_door_bottom_closed.json | 4 ++-- .../tardim_soviet_chronobox/tardim_door_bottom_open.json | 4 ++-- .../main/java/su/a71/tardim_ic/tardim_ic/Registration.java | 5 +++-- .../digital_interface/DigitalInterfacePeripheral.java | 1 - .../DigitalInterfacePeripheralProvider.java | 1 + .../digital_interface/DigitalInterfacePeripheral.java | 1 - Forge/src/main/resources/META-INF/mods.toml | 2 +- gradle.properties | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json index e9ed518..5897e27 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_closed.json @@ -85,8 +85,8 @@ } }, { - "from": [15, 17, -13], - "to": [15, 30, -3], + "from": [16, 17, -13], + "to": [16, 30, -3], "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, "faces": { "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json index 72ab1d2..cbe3454 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_soviet_chronobox/tardim_door_bottom_open.json @@ -228,8 +228,8 @@ } }, { - "from": [15, 17, -13], - "to": [15, 30, -3], + "from": [16, 17, -13], + "to": [16, 30, -3], "rotation": {"angle": 0, "axis": "y", "origin": [15, 0, 0]}, "faces": { "north": {"uv": [10, 0, 12.5, 3.25], "texture": "#0"}, diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 6568dca..6a4d7ee 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -33,6 +33,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfacePeripheralProvider; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; @@ -57,10 +58,10 @@ public class Registration { FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, REDSTONE_TARDIM_INPUT).build() ); - public static final BlockEntityType DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registry.register( + public static final BlockEntityType DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registry.register( Registry.BLOCK_ENTITY_TYPE, new ResourceLocation("tardim_ic", "digital_tardim_interface"), - FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() + FabricBlockEntityTypeBuilder.create(DigitalInterfaceTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() ); private static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 8fd1287..a093d97 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -107,7 +107,6 @@ public class DigitalInterfacePeripheral implements IPeripheral { * This is mostly a copy of getIDForXZ function with some added checks * * @return TardimData of the TARDIM that the peripheral is in - * @throws LuaException if the peripheral is not in a TARDIM * @hidden */ public TardimData getTardimDataInitial() { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java index c6fea50..4b88e07 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java @@ -12,6 +12,7 @@ public class DigitalInterfacePeripheralProvider implements IPeripheralProvider { @NotNull @Override public IPeripheral getPeripheral(@NotNull Level level, @NotNull BlockPos blockPos, @NotNull Direction direction) { + if (level.isClientSide()) return null; // Please...? if (level.getBlockState(blockPos).getBlock() instanceof DigitalInterfaceBlock) { return new DigitalInterfacePeripheral(new FakeDigitalInterfaceTileEntity(blockPos, level)); } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 76cccef..9c51db9 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -107,7 +107,6 @@ public class DigitalInterfacePeripheral implements IPeripheral { * This is mostly a copy of getIDForXZ function with some added checks * * @return TardimData of the TARDIM that the peripheral is in - * @throws LuaException if the peripheral is not in a TARDIM * @hidden */ public TardimData getTardimDataInitial() { diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index ddaa3b9..e94d668 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -5,7 +5,7 @@ license = "MIT" [[mods]] #mandatory # The modid of the mod modId = "tardim_ic" #mandatory -version = "1.0" #mandatory +version = "1.1" #mandatory # A display name for the mod displayName = "TARDIM: In Control" #mandatory # The description text for the mod (multi line!) (#mandatory) diff --git a/gradle.properties b/gradle.properties index fc9bf37..debfa5c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Project -version=1.0 +version=1.1 group=su.a71.tardim_ic # Common From b31624ca4abcbd5481e2e8a035f1fa8b5ecd84f2 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Fri, 12 May 2023 10:05:12 +0300 Subject: [PATCH 44/61] Credits and minor import improvement --- .../assets/tardim_ic/models/block/digital_tardim_interface.json | 2 +- .../assets/tardim_ic/models/block/redstone_tardim_input.json | 2 +- .../resources/assets/tardim_ic/models/block/tardim_dock.json | 2 +- .../src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java | 1 - .../tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java | 1 - 5 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json index d5fccbf..d0300c3 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench", + "credit": "Made by karoter2 with Blockbench", "parent": "digital_tardim_interface", "texture_size": [64, 64], "textures": { diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json index a133d12..ac65f2f 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench", + "credit": "Made by karoter2 with Blockbench", "parent": "block/cube_all", "ambientocclusion": false, "textures": { diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json index bc13bb6..3ae2da8 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json @@ -1,5 +1,5 @@ { - "credit": "Made with Blockbench", + "credit": "Made by karoter2 with Blockbench", "texture_size": [64, 64], "textures": { "1": "tardim_ic:blocks/tardim_dock", diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 6a4d7ee..3d9e1a3 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -40,7 +40,6 @@ import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; - public class Registration { // Blocks public static Block DOOR_SOVIET_CHRONOBOX; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java index 05ef6cb..5c81fc0 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java @@ -23,7 +23,6 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.ComparatorBlock; import net.minecraft.world.level.block.EntityBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; From 9a23bc0752aeee839bd861d548d1c6938b719c11 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Fri, 12 May 2023 10:55:53 +0300 Subject: [PATCH 45/61] Make ComputerCraft optional --- Fabric/build.gradle | 5 ++- .../a71/tardim_ic/tardim_ic/Registration.java | 25 +++++-------- .../DigitalInterfaceBlock.java | 3 +- .../DigitalInterfaceTileEntity.java | 3 +- .../tardim_ic/registration/CommandInit.java | 2 -- .../registration/ComputerCraftCompat.java | 36 +++++++++++++++++++ .../tardim_ic/registration/Exteriors.java | 4 +++ Fabric/src/main/resources/fabric.mod.json | 9 +++-- 8 files changed, 62 insertions(+), 25 deletions(-) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java diff --git a/Fabric/build.gradle b/Fabric/build.gradle index e9f8306..f2f9c97 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -21,7 +21,10 @@ dependencies { modImplementation "io.netty:netty-codec-http:4.1.77.Final" modImplementation "curse.maven:tardim-531315:4453924" - modImplementation "curse.maven:cc-restitched-462672:3908334" + //modImplementation "curse.maven:cc-restitched-462672:3908334" + //.. maybe? + modApi "curse.maven:cc-restitched-462672:3908334" + modCompileOnly "curse.maven:cc-restitched-462672:3908334" } loom { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 3d9e1a3..32ccbea 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -6,9 +6,9 @@ import com.swdteam.tardim.common.block.BlockTardimRoof; import com.swdteam.tardim.common.init.TardimRegistry; import com.swdteam.tardim.tileentity.TileEntityTardim; -import dan200.computercraft.api.ComputerCraftAPI; import com.mojang.datafixers.types.Type; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.Util; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; @@ -31,13 +31,11 @@ import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityT import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfacePeripheralProvider; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; +import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; public class Registration { @@ -47,7 +45,6 @@ public class Registration { public static Block FLOOR_SOVIET_CHRONOBOX; public static BlockEntityType TILE_SOVIET_CHRONOBOX; - public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); // Tile Entities @@ -57,15 +54,9 @@ public class Registration { FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, REDSTONE_TARDIM_INPUT).build() ); - public static final BlockEntityType DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registry.register( - Registry.BLOCK_ENTITY_TYPE, - new ResourceLocation("tardim_ic", "digital_tardim_interface"), - FabricBlockEntityTypeBuilder.create(DigitalInterfaceTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() - ); - - private static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder + public static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder .create(new ResourceLocation("tardim_ic")) - .icon(() -> new ItemStack(DIGITAL_TARDIM_INTERFACE)) + .icon(() -> new ItemStack(REDSTONE_TARDIM_INPUT)) .build(); // Cloister bell @@ -81,12 +72,13 @@ public class Registration { // Register our stuff public static void register() { + if (FabricLoader.getInstance().isModLoaded("computercraft")) { + ComputerCraftCompat.register(); + } + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new FabricItemSettings().tab(TARDIM_IC_TAB))); - Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(TARDIM_IC_TAB))); - Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); FLOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_floor_soviet"), new BlockTardimFloor(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion(), new BlockTardimFloor.TardimTileData() { @@ -105,7 +97,6 @@ public class Registration { ROOF_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_roof_soviet"), new BlockTardimRoof(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); TARDIM_TYPE_SOVIET = new TardimRegistry.TardimBuilder(new ResourceLocation(Constants.MOD_ID, "tardim_soviet_chronobox"), "TARDIM Soviet Chronobox", ROOF_SOVIET_CHRONOBOX, DOOR_SOVIET_CHRONOBOX, FLOOR_SOVIET_CHRONOBOX); - ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); CommandInit.init(); } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java index 9f1ee66..b0977d9 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java @@ -8,6 +8,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import org.jetbrains.annotations.NotNull; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; import javax.annotation.Nullable; @@ -21,6 +22,6 @@ public class DigitalInterfaceBlock extends Block implements EntityBlock { @Nullable @Override public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.create(pos, state); + return ComputerCraftCompat.DIGITAL_TARDIM_INTERFACE_TILEENTITY.create(pos, state); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java index 2e84bb7..bee0a9c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java @@ -8,6 +8,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; public class DigitalInterfaceTileEntity extends BlockEntity {//implements IDigitalInterfaceEntity { @@ -15,7 +16,7 @@ public class DigitalInterfaceTileEntity extends BlockEntity {//implements IDigit public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { - super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); + super(ComputerCraftCompat.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); //this.data = getTardimDataInitial(); } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index 4db50bf..ca5e64d 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -4,11 +4,9 @@ package su.a71.tardim_ic.tardim_ic.registration; import com.swdteam.tardim.common.init.CommandManager; import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; -import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; public class CommandInit { public static void init() { - CommandManager.register(new CommandModemTransmit()); CommandManager.register(new CommandCloisterBell()); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java new file mode 100644 index 0000000..9ba3347 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java @@ -0,0 +1,36 @@ +package su.a71.tardim_ic.tardim_ic.registration; + +import com.swdteam.tardim.common.init.CommandManager; +import dan200.computercraft.api.ComputerCraftAPI; +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfacePeripheralProvider; +import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; + +public class ComputerCraftCompat { + public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); + + public static final BlockEntityType DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registry.register( + Registry.BLOCK_ENTITY_TYPE, + new ResourceLocation("tardim_ic", "digital_tardim_interface"), + FabricBlockEntityTypeBuilder.create(DigitalInterfaceTileEntity::new, DIGITAL_TARDIM_INTERFACE).build() + ); + + public static void register() { + Constants.LOG.info("Loaded ComputerCraft compatibility!"); + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB))); + + CommandManager.register(new CommandModemTransmit()); + ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java new file mode 100644 index 0000000..590e76f --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java @@ -0,0 +1,4 @@ +package su.a71.tardim_ic.tardim_ic.registration; + +public class Exteriors { +} diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index edd4ec9..b8939a8 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -27,8 +27,11 @@ "fabric": "*", "minecraft": "1.19.x", "java": ">=17", - "tardim": ">=1.2.2", - "computercraft": ">=1.101.0" - } + "tardim": ">=1.2.2" + }, + + "suggests": { + "computercraft": ">=1.101.0" + } } \ No newline at end of file From 7107936a61c2ab50c92cd8dce32f6bf8b71624ea Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sat, 13 May 2023 21:50:10 +0300 Subject: [PATCH 46/61] It's like an HRA but with your friends instead of Hiss --- .../a71/tardim_ic/tardim_ic/Registration.java | 40 ++++--------- .../DigitalInterfacePeripheral.java | 11 +++- .../jammer/LocationJammerMaterial.java | 56 +++++++++++++++++++ .../tardim_ic/mixin/JammerMixin.java | 29 ++++++++++ .../tardim_ic/registration/Exteriors.java | 53 ++++++++++++++++++ .../tardim_ic/tardim_ic/roundels/roundels.txt | 4 ++ .../SovietChronoboxTileEntity.java | 3 +- Fabric/src/main/resources/fabric.mod.json | 3 + .../src/main/resources/mixins.tardim_ic.json | 15 +++++ SWD_MOMENT.txt | 2 +- 10 files changed, 183 insertions(+), 33 deletions(-) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/LocationJammerMaterial.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/roundels/roundels.txt create mode 100644 Fabric/src/main/resources/mixins.tardim_ic.json diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 32ccbea..882ac92 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -14,9 +14,8 @@ import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.util.datafix.fixes.References; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.*; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.entity.BlockEntity; @@ -31,19 +30,17 @@ import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityT import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import su.a71.tardim_ic.tardim_ic.jammer.LocationJammerMaterial; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; +import su.a71.tardim_ic.tardim_ic.registration.Exteriors; import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; public class Registration { // Blocks - public static Block DOOR_SOVIET_CHRONOBOX; - public static Block ROOF_SOVIET_CHRONOBOX; - public static Block FLOOR_SOVIET_CHRONOBOX; - public static BlockEntityType TILE_SOVIET_CHRONOBOX; public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); @@ -63,40 +60,23 @@ public class Registration { public static final ResourceLocation CLOISTER_SOUND = new ResourceLocation("tardim_ic:cloister"); public static SoundEvent CLOISTER_SOUND_EVENT = new SoundEvent(CLOISTER_SOUND); - public static TardimRegistry.TardimBuilder TARDIM_TYPE_SOVIET; - - private static BlockEntityType createTardimTile(String string, FabricBlockEntityTypeBuilder builder) { - Type type = Util.fetchChoiceType(References.BLOCK_ENTITY, string); - return (BlockEntityType)Registry.register(Registry.BLOCK_ENTITY_TYPE, new ResourceLocation(Constants.MOD_ID, string), builder.build(type)); - } + public static final ArmorMaterial LOCATION_JAMMER_MATERIAL = new LocationJammerMaterial(); + public static final Item LOCATION_JAMMER = new ArmorItem(LOCATION_JAMMER_MATERIAL, EquipmentSlot.CHEST, new Item.Properties().tab(TARDIM_IC_TAB)); // Register our stuff public static void register() { + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "location_jammer"), LOCATION_JAMMER); + if (FabricLoader.getInstance().isModLoaded("computercraft")) { - ComputerCraftCompat.register(); + ComputerCraftCompat.register(); // Register ComputerCraft-related features } + Exteriors.register(); // Register custom TARDIM exteriors Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new FabricItemSettings().tab(TARDIM_IC_TAB))); Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); - FLOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_floor_soviet"), new BlockTardimFloor(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion(), new BlockTardimFloor.TardimTileData() { - public BlockEntityType getType() { - return TILE_SOVIET_CHRONOBOX; - } - public BlockEntityTicker getTicker() { - return TileEntityTardim::serverTick; - } - public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) { - return new SovietChronoboxTileEntity(var1, var2); - } - })); - TILE_SOVIET_CHRONOBOX = createTardimTile("tardim_soviet_chronobox", FabricBlockEntityTypeBuilder.create(SovietChronoboxTileEntity::new, new Block[]{FLOOR_SOVIET_CHRONOBOX})); - DOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_door_soviet"), new BlockTardimDoors(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); - ROOF_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_roof_soviet"), new BlockTardimRoof(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); - TARDIM_TYPE_SOVIET = new TardimRegistry.TardimBuilder(new ResourceLocation(Constants.MOD_ID, "tardim_soviet_chronobox"), "TARDIM Soviet Chronobox", ROOF_SOVIET_CHRONOBOX, DOOR_SOVIET_CHRONOBOX, FLOOR_SOVIET_CHRONOBOX); - CommandInit.init(); } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index a093d97..e89d3f1 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -1,7 +1,6 @@ package su.a71.tardim_ic.tardim_ic.digital_interface; import com.mojang.datafixers.util.Pair; -import com.swdteam.tardim.common.command.tardim.CommandTardimBase; import com.swdteam.tardim.common.command.tardim.CommandTravel; import com.swdteam.tardim.common.data.DimensionMapReloadListener; import com.swdteam.tardim.common.init.TRDSounds; @@ -28,11 +27,13 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.players.PlayerList; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; +import org.squiddev.cobalt.Lua; import su.a71.tardim_ic.tardim_ic.Registration; import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; @@ -40,6 +41,8 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.*; +import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; + public class DigitalInterfacePeripheral implements IPeripheral { @@ -438,6 +441,12 @@ public class DigitalInterfacePeripheral implements IPeripheral { throw new LuaException("Player not found"); } + for (ItemStack armour : player.getArmorSlots()) { + if (armour.is(LOCATION_JAMMER)) { + throw new LuaException("Player location jammed"); + }; + } + ResourceKey dim = player.getCommandSenderWorld().dimension(); BlockPos pos = player.blockPosition(); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/LocationJammerMaterial.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/LocationJammerMaterial.java new file mode 100644 index 0000000..b0d04bb --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/LocationJammerMaterial.java @@ -0,0 +1,56 @@ +package su.a71.tardim_ic.tardim_ic.jammer; + + +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; +import org.jetbrains.annotations.NotNull; + +public class LocationJammerMaterial implements ArmorMaterial { + private static final int[] BASE_DURABILITY = new int[] {13, 15, 16, 11}; + private static final int[] PROTECTION_VALUES = new int[] {1, 1, 1, 1}; + + @Override + public int getDurabilityForSlot(EquipmentSlot slot) { + return BASE_DURABILITY[slot.getIndex()] * 33; + } + + @Override + public int getDefenseForSlot(EquipmentSlot slot) { + return PROTECTION_VALUES[slot.getIndex()]; + } + + @Override + public int getEnchantmentValue() { + return 0; + } + + @Override + public @NotNull SoundEvent getEquipSound() { + return SoundEvents.ARMOR_EQUIP_GENERIC; + } + + @Override + public @NotNull Ingredient getRepairIngredient() { + return Ingredient.of(Items.IRON_INGOT); + } + + @Override + public @NotNull String getName() { + // Must be all lowercase + return "location jammer"; + } + + @Override + public float getToughness() { + return 0.0F; + } + + @Override + public float getKnockbackResistance() { + return 0.1F; + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java new file mode 100644 index 0000000..cf6eb09 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java @@ -0,0 +1,29 @@ +package su.a71.tardim_ic.tardim_ic.mixin; + +import com.swdteam.tardim.common.command.tardim.CommandLocate; +import com.swdteam.tardim.common.command.tardim.CommandTardimBase; +import dan200.computercraft.api.lua.LuaException; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; +import su.a71.tardim_ic.tardim_ic.registration.CommandInit; + +import static com.swdteam.tardim.common.command.tardim.CommandTardimBase.sendResponse; +import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; + +@Mixin(value = CommandLocate.class, remap = false) +public class JammerMixin { + @Inject(method="execute([Ljava/lang/String;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/core/BlockPos;Lcom/swdteam/tardim/common/command/tardim/CommandTardimBase/CommandSource;)V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData/Location)V"), locals = LocalCapture.CAPTURE_FAILHARD) + private static void init(CallbackInfo ci, Player player, Player otherPlayer, CommandTardimBase.CommandSource source) { + for (ItemStack armour : player.getArmorSlots()) { + if (armour.is(LOCATION_JAMMER)) { + sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source); + }; + } + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java index 590e76f..59d8352 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java @@ -1,4 +1,57 @@ package su.a71.tardim_ic.tardim_ic.registration; +import com.mojang.datafixers.types.Type; +import com.swdteam.tardim.common.block.BlockTardimDoors; +import com.swdteam.tardim.common.block.BlockTardimFloor; +import com.swdteam.tardim.common.block.BlockTardimRoof; +import com.swdteam.tardim.common.init.TardimRegistry; +import com.swdteam.tardim.tileentity.TileEntityTardim; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; +import net.minecraft.Util; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.datafix.fixes.References; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Material; +import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; + public class Exteriors { + // Soviet Chronobox + public static TardimRegistry.TardimBuilder TARDIM_TYPE_SOVIET; + public static Block DOOR_SOVIET_CHRONOBOX; + public static Block ROOF_SOVIET_CHRONOBOX; + public static Block FLOOR_SOVIET_CHRONOBOX; + public static BlockEntityType TILE_SOVIET_CHRONOBOX; + + private static BlockEntityType createTardimTile(String string, FabricBlockEntityTypeBuilder builder) { + Type type = Util.fetchChoiceType(References.BLOCK_ENTITY, string); + return (BlockEntityType) Registry.register(Registry.BLOCK_ENTITY_TYPE, new ResourceLocation(Constants.MOD_ID, string), builder.build(type)); + } + + public static void register() { + FLOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_floor_soviet"), new BlockTardimFloor(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion(), new BlockTardimFloor.TardimTileData() { + public BlockEntityType getType() { + return TILE_SOVIET_CHRONOBOX; + } + public BlockEntityTicker getTicker() { + return TileEntityTardim::serverTick; + } + public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) { + return new SovietChronoboxTileEntity(var1, var2); + } + })); + TILE_SOVIET_CHRONOBOX = createTardimTile("tardim_soviet_chronobox", FabricBlockEntityTypeBuilder.create(SovietChronoboxTileEntity::new, new Block[]{FLOOR_SOVIET_CHRONOBOX})); + DOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_door_soviet"), new BlockTardimDoors(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); + ROOF_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_roof_soviet"), new BlockTardimRoof(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); + TARDIM_TYPE_SOVIET = new TardimRegistry.TardimBuilder(new ResourceLocation(Constants.MOD_ID, "tardim_soviet_chronobox"), "TARDIM Soviet Chronobox", ROOF_SOVIET_CHRONOBOX, DOOR_SOVIET_CHRONOBOX, FLOOR_SOVIET_CHRONOBOX); + + } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/roundels/roundels.txt b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/roundels/roundels.txt new file mode 100644 index 0000000..713482e --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/roundels/roundels.txt @@ -0,0 +1,4 @@ +"Base:" + * Quartz + * Deepslate + * Stone? \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java index 4e6e499..0a81513 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java @@ -5,9 +5,10 @@ import com.swdteam.tardim.tileentity.TileEntityTardim; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.registration.Exteriors; public class SovietChronoboxTileEntity extends TileEntityTardim { public SovietChronoboxTileEntity(BlockPos pos, BlockState state) { - super(Registration.TILE_SOVIET_CHRONOBOX, pos, state); + super(Exteriors.TILE_SOVIET_CHRONOBOX, pos, state); } } \ No newline at end of file diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index b8939a8..dec8061 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -21,6 +21,9 @@ "su.a71.tardim_ic.tardim_ic.TardimInControl" ] }, + "mixins": [ + "mixins.tardim_ic.json" + ], "depends": { "fabricloader": ">=0.14.10", diff --git a/Fabric/src/main/resources/mixins.tardim_ic.json b/Fabric/src/main/resources/mixins.tardim_ic.json new file mode 100644 index 0000000..f2465f8 --- /dev/null +++ b/Fabric/src/main/resources/mixins.tardim_ic.json @@ -0,0 +1,15 @@ +{ + "required": true, + "package": "su.a71.tardim_ic.tardim_ic.mixin", + "compatibilityLevel": "JAVA_17", + "refmap": "refmap.tardim_ic.json", + "mixins": [ + "JammerMixin" + ], + "client": [ + ], + "injectors": { + "defaultRequire": 1 + }, + "minVersion": "0.8.4" +} \ No newline at end of file diff --git a/SWD_MOMENT.txt b/SWD_MOMENT.txt index cb9226a..40aaade 100644 --- a/SWD_MOMENT.txt +++ b/SWD_MOMENT.txt @@ -1,4 +1,4 @@ === HOW MANY PROBLEMS TARDIM HAS?! === 1. A few log messages definitely left from testing (e.g. aklfjsjsfw) -2. isValidFlightPath is private of Fabric +2. isValidFlightPath is private on Fabric 3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS \ No newline at end of file From ed5f002edc88e09e2c2a40cf74537ccfbf5bff33 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sun, 11 Jun 2023 13:57:33 +0300 Subject: [PATCH 47/61] How many seconds in eternity? --- .../assets/tardim_ic/lang/en_uk.json | 3 +- .../assets/tardim_ic/lang/en_us.json | 9 +- .../assets/tardim_ic/lang/ru_ru.json | 3 +- .../tardim_ic/models/block/food_machine.json | 104 ++++++++++++++++++ .../tardim_ic/models/item/food_machine.json | 23 ++++ .../models/item/location_jammer.json | 6 + .../textures/blocks/food_machine.png | Bin 0 -> 4164 bytes Fabric/build.gradle | 3 + .../a71/tardim_ic/tardim_ic/Registration.java | 24 +--- .../fuel_storage/FuelLevelDisplaySource.java | 60 ++++++++++ .../RequiredFuelDisplaySource.java | 54 +++++++++ .../tardim_ic/mixin/JammerMixin.java | 20 ++-- .../tardim_ic/registration/CreateCompat.java | 21 ++++ Fabric/src/main/resources/fabric.mod.json | 1 - SWD_MOMENT.txt | 7 +- 15 files changed, 304 insertions(+), 34 deletions(-) create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json create mode 100644 Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json index c0f8968..db7410f 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_uk.json @@ -4,5 +4,6 @@ "block.tardim_ic.tardim_dock": "TARDIM Dock", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", - "subtitles.tardim_ic.cloister": "Cloister bell rings" + "subtitles.tardim_ic.cloister": "Cloister bell rings", + "display_source.fuel_level": "TARDIM fuel level" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json index c0f8968..51aef28 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/en_us.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/en_us.json @@ -1,8 +1,9 @@ { - "block.tardim_ic.digital_tardim_interface": "Digital TARDIM Interface", - "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM Input", - "block.tardim_ic.tardim_dock": "TARDIM Dock", + "block.tardim_ic.digital_tardim_interface": "Digital TARDIM interface", + "block.tardim_ic.redstone_tardim_input": "Redstone TARDIM input", + "block.tardim_ic.tardim_dock": "TARDIM dock", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", - "subtitles.tardim_ic.cloister": "Cloister bell rings" + "subtitles.tardim_ic.cloister": "Cloister bell rings", + "display_source.fuel_level": "TARDIM fuel level" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json index 27ccb07..a37d071 100644 --- a/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json +++ b/Common/src/main/resources/assets/tardim_ic/lang/ru_ru.json @@ -4,5 +4,6 @@ "block.tardim_ic.tardim_dock": "Стыковочная станция для TARDIM", "itemGroup.tardim_ic": "TARDIM: In Control", "itemGroup.minecraft.tardim_ic": "TARDIM: In Control", - "subtitles.tardim_ic.cloister": "Звон монастырского колокола" + "subtitles.tardim_ic.cloister": "Звон монастырского колокола", + "display_source.fuel_level": "Уровень топлива в TARDIM" } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json b/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json new file mode 100644 index 0000000..c4b5c76 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json @@ -0,0 +1,104 @@ +{ + "credit": "Made by karoter2 (Feulim)", + "texture_size": [128, 128], + "textures": { + "0": "tardim_ic:blocks/food_machine", + "particle": "tardim_ic:blocks/food_machine" + }, + "elements": [ + { + "from": [0, 0, 1], + "to": [16, 10, 16], + "faces": { + "north": {"uv": [1.875, 1.875, 3.875, 3.125], "texture": "#0"}, + "east": {"uv": [0, 1.875, 1.875, 3.125], "texture": "#0"}, + "south": {"uv": [5.75, 1.875, 7.75, 3.125], "texture": "#0"}, + "west": {"uv": [3.875, 1.875, 5.75, 3.125], "texture": "#0"}, + "up": {"uv": [3.875, 1.875, 1.875, 0], "texture": "#0"}, + "down": {"uv": [5.875, 0, 3.875, 1.875], "texture": "#0"} + } + }, + { + "from": [0.5, 1, 16.02], + "to": [15.5, 15, 16.02], + "faces": { + "north": {"uv": [8.25, 1.625, 10.125, 3.375], "texture": "#0"}, + "east": {"uv": [8.25, 1.625, 8.25, 3.375], "texture": "#0"}, + "south": {"uv": [10.125, 1.625, 12, 3.375], "texture": "#0"}, + "west": {"uv": [10.125, 1.625, 10.125, 3.375], "texture": "#0"}, + "up": {"uv": [10.125, 1.625, 8.25, 1.625], "texture": "#0"}, + "down": {"uv": [12, 1.625, 10.125, 1.625], "texture": "#0"} + } + }, + { + "from": [0, 10, 0], + "to": [16, 12, 16], + "faces": { + "north": {"uv": [2, 5.125, 4, 5.375], "texture": "#0"}, + "east": {"uv": [0, 5.125, 2, 5.375], "texture": "#0"}, + "south": {"uv": [6, 5.125, 8, 5.375], "texture": "#0"}, + "west": {"uv": [4, 5.125, 6, 5.375], "texture": "#0"}, + "up": {"uv": [4, 5.125, 2, 3.125], "texture": "#0"}, + "down": {"uv": [6, 3.125, 4, 5.125], "texture": "#0"} + } + }, + { + "from": [0, 12, 9], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0.875, 6.25, 2.875, 6.75], "texture": "#0"}, + "east": {"uv": [0, 6.25, 0.875, 6.75], "texture": "#0"}, + "south": {"uv": [3.75, 6.25, 5.75, 6.75], "texture": "#0"}, + "west": {"uv": [2.875, 6.25, 3.75, 6.75], "texture": "#0"}, + "up": {"uv": [2.875, 6.25, 0.875, 5.375], "texture": "#0"}, + "down": {"uv": [4.875, 5.375, 2.875, 6.25], "texture": "#0"} + } + }, + { + "from": [5, 11, 4], + "to": [11, 14, 10], + "rotation": {"angle": -22.5, "axis": "x", "origin": [9, 12, 8]}, + "faces": { + "north": {"uv": [6.5, 6.125, 7.25, 6.5], "texture": "#0"}, + "east": {"uv": [5.75, 6.125, 6.5, 6.5], "texture": "#0"}, + "south": {"uv": [8, 6.125, 8.75, 6.5], "texture": "#0"}, + "west": {"uv": [7.25, 6.125, 8, 6.5], "texture": "#0"}, + "up": {"uv": [7.25, 6.125, 6.5, 5.375], "texture": "#0"}, + "down": {"uv": [8, 5.375, 7.25, 6.125], "texture": "#0"} + } + }, + { + "from": [1, 12, 3], + "to": [4, 13, 6], + "faces": { + "north": {"uv": [0.375, 0.875, 0.75, 1], "texture": "#0"}, + "east": {"uv": [0, 0.875, 0.375, 1], "texture": "#0"}, + "south": {"uv": [1.125, 0.875, 1.5, 1], "texture": "#0"}, + "west": {"uv": [0.75, 0.875, 1.125, 1], "texture": "#0"}, + "up": {"uv": [0.75, 0.875, 0.375, 0.5], "texture": "#0"}, + "down": {"uv": [1.125, 0.5, 0.75, 0.875], "texture": "#0"} + } + }, + { + "from": [12, 12, 3], + "to": [15, 13, 6], + "faces": { + "north": {"uv": [0.375, 0.375, 0.75, 0.5], "texture": "#0"}, + "east": {"uv": [0, 0.375, 0.375, 0.5], "texture": "#0"}, + "south": {"uv": [1.125, 0.375, 1.5, 0.5], "texture": "#0"}, + "west": {"uv": [0.75, 0.375, 1.125, 0.5], "texture": "#0"}, + "up": {"uv": [0.75, 0.375, 0.375, 0], "texture": "#0"}, + "down": {"uv": [1.125, 0, 0.75, 0.375], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "group", + "origin": [8, 8, 8], + "color": 0, + "nbt": "{}", + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json b/Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json new file mode 100644 index 0000000..68b0612 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/item/food_machine.json @@ -0,0 +1,23 @@ +{ + "parent": "tardim_ic:block/food_machine", + "display": { + "thirdperson_righthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "thirdperson_lefthand": { + "rotation": [ 75, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ], + "translation": [ 0, 1, 0 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + }, + "firstperson_righthand": { + "rotation": [ 0, 45, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json b/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json new file mode 100644 index 0000000..1a1fcc4 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "tardim_ic:item/location_jammer" + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png b/Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png new file mode 100644 index 0000000000000000000000000000000000000000..8d355f7e3ffc09cb1041e5ed0af64d6efa757e30 GIT binary patch literal 4164 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 CWfElo literal 0 HcmV?d00001 diff --git a/Fabric/build.gradle b/Fabric/build.gradle index f2f9c97..15c4d4b 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -25,6 +25,9 @@ dependencies { //.. maybe? modApi "curse.maven:cc-restitched-462672:3908334" modCompileOnly "curse.maven:cc-restitched-462672:3908334" + + // Create! + modCompileOnly "curse.maven:create-fabric-624165:4537370" } loom { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 882ac92..4d792e5 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,34 +1,18 @@ package su.a71.tardim_ic.tardim_ic; -import com.swdteam.tardim.common.block.BlockTardimDoors; -import com.swdteam.tardim.common.block.BlockTardimFloor; -import com.swdteam.tardim.common.block.BlockTardimRoof; -import com.swdteam.tardim.common.init.TardimRegistry; -import com.swdteam.tardim.tileentity.TileEntityTardim; - - -import com.mojang.datafixers.types.Type; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.Util; -import net.minecraft.core.BlockPos; + import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; -import net.minecraft.util.datafix.fixes.References; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.*; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.SoundType; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.core.Registry; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import su.a71.tardim_ic.tardim_ic.jammer.LocationJammerMaterial; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; @@ -36,12 +20,11 @@ import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; +import su.a71.tardim_ic.tardim_ic.registration.CreateCompat; import su.a71.tardim_ic.tardim_ic.registration.Exteriors; -import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; public class Registration { // Blocks - public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); // Tile Entities @@ -70,6 +53,9 @@ public class Registration { if (FabricLoader.getInstance().isModLoaded("computercraft")) { ComputerCraftCompat.register(); // Register ComputerCraft-related features } + if (FabricLoader.getInstance().isModLoaded("create")) { + CreateCompat.register(); // Register Create-related features + } Exteriors.register(); // Register custom TARDIM exteriors Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java new file mode 100644 index 0000000..43bc8fc --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java @@ -0,0 +1,60 @@ +package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; + +import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; +import com.simibubi.create.content.logistics.block.display.source.PercentOrProgressBarDisplaySource; +import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; +import com.simibubi.create.foundation.utility.Lang; + +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; + +import net.minecraft.world.level.block.entity.BlockEntity; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; + +import static su.a71.tardim_ic.tardim_ic.Constants.LOG; + +public class FuelLevelDisplaySource extends PercentOrProgressBarDisplaySource { + @Override + protected Float getProgress(DisplayLinkContext context) { + if (context.level() != context.level().getServer().getLevel(TRDDimensions.TARDIS)) { + return null; + } + BlockEntity te = context.getSourceTE(); + if (!(te instanceof TileEntityFuelStorage fuelStorage)) + return null; + TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos()); + LOG.info(String.valueOf((float) (data.getFuel()))); + return (float) (data.getFuel() / 100); + } + + @Override + protected boolean progressBarActive(DisplayLinkContext context) { + return context.sourceConfig() + .getInt("Mode") != 0; + } + + @Override + protected String getTranslationKey() { + return "fuel_level"; + } + + @Override + @Environment(EnvType.CLIENT) + public void initConfigurationWidgets(DisplayLinkContext context, ModularGuiLineBuilder builder, boolean isFirstLine) { + super.initConfigurationWidgets(context, builder, isFirstLine); + if (isFirstLine) + return; + builder.addSelectionScrollInput(0, 120, + (si, l) -> si.forOptions(Lang.translatedOptions("display_source.fuel_level", "percent", "progress_bar")) + .titled(Lang.translateDirect("display_source.fuel_level.display")), + "Mode"); + } + + @Override + protected boolean allowsLabeling(DisplayLinkContext context) { + return true; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java new file mode 100644 index 0000000..056c2a5 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java @@ -0,0 +1,54 @@ +package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; + +import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; +import com.simibubi.create.content.logistics.block.display.source.NumericSingleLineDisplaySource; +import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; +import com.simibubi.create.foundation.utility.Components; + +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; + +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.phys.Vec3; + +public class RequiredFuelDisplaySource extends NumericSingleLineDisplaySource { + @Override + protected MutableComponent provideLine(DisplayLinkContext displayLinkContext, DisplayTargetStats displayTargetStats) { + if (displayLinkContext.level() != displayLinkContext.level().getServer().getLevel(TRDDimensions.TARDIS)) + return null; + BlockEntity te = displayLinkContext.getSourceTE(); + if (!(te instanceof TileEntityFuelStorage fuelStorage)) + return null; + TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos()); + + if (data.getTravelLocation() == null) return ZERO.copy(); + + TardimData.Location curr = data.getCurrentLocation(); + TardimData.Location dest = data.getTravelLocation(); + + double fuel = 0.0; + + if (curr.getLevel() != dest.getLevel()) + { + fuel = 10.0; + } + + Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ()); + Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ()); + fuel += posA.distanceTo(posB) / 100.0; + if (fuel > 100.0) fuel = 100.0; + + return Components.literal(String.valueOf(fuel)); + } + + protected String getTranslationKey() { + return "required_fuel"; + } + + protected boolean allowsLabeling(DisplayLinkContext context) { + return true; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java index cf6eb09..633b6a6 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java @@ -2,7 +2,10 @@ package su.a71.tardim_ic.tardim_ic.mixin; import com.swdteam.tardim.common.command.tardim.CommandLocate; import com.swdteam.tardim.common.command.tardim.CommandTardimBase; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; import dan200.computercraft.api.lua.LuaException; +import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -14,16 +17,19 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import static com.swdteam.tardim.common.command.tardim.CommandTardimBase.sendResponse; +import static su.a71.tardim_ic.tardim_ic.Constants.LOG; import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; @Mixin(value = CommandLocate.class, remap = false) public class JammerMixin { - @Inject(method="execute([Ljava/lang/String;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/core/BlockPos;Lcom/swdteam/tardim/common/command/tardim/CommandTardimBase/CommandSource;)V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData/Location)V"), locals = LocalCapture.CAPTURE_FAILHARD) - private static void init(CallbackInfo ci, Player player, Player otherPlayer, CommandTardimBase.CommandSource source) { - for (ItemStack armour : player.getArmorSlots()) { - if (armour.is(LOCATION_JAMMER)) { - sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source); - }; - } + @Inject(method="execute()V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData$Location;)V")) + public void execute(CallbackInfo ci) { + LOG.info("test"); +// for (ItemStack armour : player.getArmorSlots()) { +// if (armour.is(LOCATION_JAMMER)) { +// sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source); +// ci.cancel(); +// }; +// } } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java new file mode 100644 index 0000000..d5d4222 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java @@ -0,0 +1,21 @@ +package su.a71.tardim_ic.tardim_ic.registration; + +import com.simibubi.create.content.logistics.block.display.AllDisplayBehaviours; +import net.minecraft.resources.ResourceLocation; +import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.FuelLevelDisplaySource; +import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.RequiredFuelDisplaySource; + +import static com.swdteam.tardim.common.init.TRDTiles.TILE_FUEL_STORAGE; + +public class CreateCompat { + + public static void register() { + Constants.LOG.info("Loaded Create compatibility!"); +// Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); +// Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB))); + + AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_storage_display_source"), new FuelLevelDisplaySource()), TILE_FUEL_STORAGE); + AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_required_display_source"), new RequiredFuelDisplaySource()), TILE_FUEL_STORAGE); + } +} diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index dec8061..2da5547 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -22,7 +22,6 @@ ] }, "mixins": [ - "mixins.tardim_ic.json" ], "depends": { diff --git a/SWD_MOMENT.txt b/SWD_MOMENT.txt index 40aaade..a9ac663 100644 --- a/SWD_MOMENT.txt +++ b/SWD_MOMENT.txt @@ -1,4 +1,9 @@ === HOW MANY PROBLEMS TARDIM HAS?! === 1. A few log messages definitely left from testing (e.g. aklfjsjsfw) 2. isValidFlightPath is private on Fabric -3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS \ No newline at end of file +3. FABRIC AND FORGE HAVE DIFFERENT JAVA IMPORT PATHS +4. [FIXED] Adding custom commands was private for literally 0 reason +5. com.swdteam.tardim.common.data.DimensionMapReloadListener has modid tutorial in + public ResourceLocation getFabricId() { + return new ResourceLocation("tutorial", "tardim_dimension_lookup"); + } \ No newline at end of file From faa15aee6b4ccb998377e25f6ff8a18c1902676a Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Mon, 12 Jun 2023 21:52:50 +0300 Subject: [PATCH 48/61] And the shepherd's boy says... --- .../textures/models/armor/personal_jammer.png | Bin 0 -> 437 bytes .../tardim_ic/command/CommandListBiomes.java | 54 ++++++++++++++++++ .../command/CommandListDimensions.java | 45 +++++++++++++++ .../DigitalInterfacePeripheral.java | 36 ++++++++++++ .../tardim_ic/registration/CommandInit.java | 2 + Fabric/src/main/resources/fabric.mod.json | 1 + .../src/main/resources/mixins.tardim_ic.json | 1 - .../tardim_ic/command/CommandListBiomes.java | 54 ++++++++++++++++++ .../command/CommandListDimensions.java | 47 +++++++++++++++ .../DigitalInterfacePeripheral.java | 40 ++++++++++++- .../tardim_ic/registration/CommandInit.java | 4 ++ TODO.txt | 47 +++++++++++++++ 12 files changed, 329 insertions(+), 2 deletions(-) create mode 100644 Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer.png create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java create mode 100644 TODO.txt diff --git a/Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer.png b/Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer.png new file mode 100644 index 0000000000000000000000000000000000000000..c98028b2cc09a5e97b75333a24f842a29e2cdefa GIT binary patch literal 437 zcmV;m0ZRUfP)Gpbx`i&KzqF;Dif`b_kOO4NkqRZDYoT3wgVMD_p@EV>4H*&?+c|?f z6a`t9Eh$)J(X-g!58_37{mB4;Q#ljw%9}GuD7{$fW=~WR%aWNQjFTh*A*7)@^viIjaL6wK;V1ABAb_qTqX$s zU^<(ZVrBR<6P;mG&#oSD=?ls7Qh|?Edvw{F@cr$@VGDc=RE@~SB+K#p{RII3&$CM< z0j|8oELsA1BeF4XI#m-obdZR)oYvCS8l7Gjf$xE2xiCJzI04CWERzI>{XPQU!}Iu| zvSvkql1xRY^L2!@>VY=CibiDjL0!EGtsRg}Ozr8XE1+(RY5w}|)~o;%XbDiclJ|;n z6Us1dLK(Z5aPK(u$CI7y07`Qn0De9{S{>UKi^XE0`~l2$wR|c7Tsi;%01jnXNoGw= f04e|g00;m8000000Mb*F00000NkvXXu0mjfeT2BD literal 0 HcmV?d00001 diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java new file mode 100644 index 0000000..eb6e399 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java @@ -0,0 +1,54 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import com.swdteam.tardim.common.command.tardim.CommandTardimBase; +import com.swdteam.tardim.common.command.tardim.ICommand; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.biome.Biome; + + +public class CommandListBiomes implements ICommand{ + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + ; + if (args.length == 1 || args.length == 0) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + Registry biomeRegistry = player.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + biomeRegistry.keySet().forEach( + (ResourceLocation res) -> { + String out = res.toString(); + if (args.length == 0 || (args[0].equals(out.split(":")[0]))) { + CommandTardimBase.sendResponse(player, out, CommandTardimBase.ResponseType.INFO, source); + } + } + ); + } else { + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "list-biomes"; + } + + @Override + public String getUsage() { + return "/list-biomes"; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java new file mode 100644 index 0000000..ead9842 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java @@ -0,0 +1,45 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import com.swdteam.tardim.common.command.tardim.CommandTardimBase; +import com.swdteam.tardim.common.command.tardim.ICommand; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.player.Player; + +public class CommandListDimensions implements ICommand{ + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 0) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + // TODO: Does this really work? + for (ServerLevel serverLevel : player.getLevel().getServer().getAllLevels()) { + CommandTardimBase.sendResponse(player, serverLevel.dimension().location().toString(), CommandTardimBase.ResponseType.INFO, source); + } + } else { + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "list-dimensions"; + } + + @Override + public String getUsage() { + return "/list-dimensions"; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index e89d3f1..d3a1d5a 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -868,4 +868,40 @@ public class DigitalInterfacePeripheral implements IPeripheral { throw new LuaException("There was an error trying to play the sound"); } } + + /** + * Get a table with all registered biomes' names. + * Useful for creating advanced navigation systems. + * @return ObjectLuaTable with all biomes' technical names + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getBiomes() throws LuaException { + Map biomes = new HashMap<>(); + Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + Iterator biome_it = biomeRegistry.keySet().iterator(); + int i = 0; + while (biome_it.hasNext()) { + biomes.put(i + 1, biome_it.next().toString()); + i++; + } + + return new ObjectLuaTable(biomes); + } + + /** + * Get a table with all registered dimensions' names. + * Useful for creating advanced navigation systems. + * @return ObjectLuaTable with all dimensions' technical names + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getDimensions() throws LuaException { + Iterator dim_it = this.tileEntity.getLevel().getServer().getAllLevels().iterator(); // TODO: Does this really work? + Map dimensions = new HashMap<>(); + int i = 0; + while (dim_it.hasNext()) { + dimensions.put(i + 1, dim_it.next().dimension().location().toString()); + i++; + } + return new ObjectLuaTable(dimensions); + } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index ca5e64d..8071a5e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -4,9 +4,11 @@ package su.a71.tardim_ic.tardim_ic.registration; import com.swdteam.tardim.common.init.CommandManager; import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; +import su.a71.tardim_ic.tardim_ic.command.CommandListBiomes; public class CommandInit { public static void init() { + CommandManager.register(new CommandListBiomes()); CommandManager.register(new CommandCloisterBell()); } } diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 2da5547..dec8061 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -22,6 +22,7 @@ ] }, "mixins": [ + "mixins.tardim_ic.json" ], "depends": { diff --git a/Fabric/src/main/resources/mixins.tardim_ic.json b/Fabric/src/main/resources/mixins.tardim_ic.json index f2465f8..6fc1843 100644 --- a/Fabric/src/main/resources/mixins.tardim_ic.json +++ b/Fabric/src/main/resources/mixins.tardim_ic.json @@ -4,7 +4,6 @@ "compatibilityLevel": "JAVA_17", "refmap": "refmap.tardim_ic.json", "mixins": [ - "JammerMixin" ], "client": [ ], diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java new file mode 100644 index 0000000..1455788 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java @@ -0,0 +1,54 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import com.swdteam.common.command.tardim.CommandTardimBase; +import com.swdteam.common.command.tardim.ICommand; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.biome.Biome; + + +public class CommandListBiomes implements ICommand{ + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + ; + if (args.length == 1 || args.length == 0) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + Registry biomeRegistry = player.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + biomeRegistry.keySet().forEach( + (ResourceLocation res) -> { + String out = res.toString(); + if (args.length == 0 || (args[0].equals(out.split(":")[0]))) { + CommandTardimBase.sendResponse(player, out, CommandTardimBase.ResponseType.INFO, source); + } + } + ); + } else { + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "list-biomes"; + } + + @Override + public String getUsage() { + return "/list-biomes"; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java new file mode 100644 index 0000000..2ff16ea --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java @@ -0,0 +1,47 @@ +package su.a71.tardim_ic.tardim_ic.command; + +import com.swdteam.common.command.tardim.CommandTardimBase; + +import com.swdteam.common.command.tardim.ICommand; +import com.swdteam.tardim.TardimData; +import com.swdteam.tardim.TardimManager; + +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.player.Player; + +public class CommandListDimensions implements ICommand{ + @Override + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 0) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + // TODO: Does this really work? + for (ServerLevel serverLevel : player.getLevel().getServer().getAllLevels()) { + CommandTardimBase.sendResponse(player, serverLevel.dimension().location().toString(), CommandTardimBase.ResponseType.INFO, source); + } + } else { + CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + } + + @Override + public String getCommandName() { + return "list-dimensions"; + } + + @Override + public String getUsage() { + return "/list-dimensions"; + } + + @Override + public CommandTardimBase.CommandSource allowedSource() { + return CommandTardimBase.CommandSource.BOTH; + } +} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java index 9c51db9..7df5118 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java @@ -33,9 +33,12 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; +import net.minecraftforge.client.DimensionSpecialEffectsManager; import su.a71.tardim_ic.tardim_ic.Registration; import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; +import net.minecraftforge.registries.ForgeRegistries; + import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.*; @@ -93,7 +96,6 @@ public class DigitalInterfacePeripheral implements IPeripheral { return tileEntity; } - /** * Get TARDIM's data, which we need for *every* function *

@@ -846,4 +848,40 @@ public class DigitalInterfacePeripheral implements IPeripheral { throw new LuaException("There was an error trying to play the sound"); } } + + /** + * Get a table with all registered biomes' names. + * Useful for creating advanced navigation systems. + * @return ObjectLuaTable with all biomes' technical names + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getBiomes() throws LuaException { + Map biomes = new HashMap<>(); + Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + Iterator biome_it = biomeRegistry.keySet().iterator(); + int i = 0; + while (biome_it.hasNext()) { + biomes.put(i + 1, biome_it.next().toString()); + i++; + } + + return new ObjectLuaTable(biomes); + } + + /** + * Get a table with all registered dimensions' names. + * Useful for creating advanced navigation systems. + * @return ObjectLuaTable with all dimensions' technical names + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getDimensions() throws LuaException { + Iterator dim_it = this.tileEntity.getLevel().getServer().getAllLevels().iterator(); // TODO: Does this really work? + Map dimensions = new HashMap<>(); + int i = 0; + while (dim_it.hasNext()) { + dimensions.put(i + 1, dim_it.next().dimension().location().toString()); + i++; + } + return new ObjectLuaTable(dimensions); + } } diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index 1b25632..20be2d0 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -1,6 +1,8 @@ package su.a71.tardim_ic.tardim_ic.registration; +import su.a71.tardim_ic.tardim_ic.command.CommandListBiomes; +import su.a71.tardim_ic.tardim_ic.command.CommandListDimensions; import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; import com.swdteam.common.init.CommandManager; @@ -9,5 +11,7 @@ public class CommandInit { public static void init() { CommandManager.register(new CommandModemTransmit()); CommandManager.register(new CommandCloisterBell()); + CommandManager.register(new CommandListBiomes()); + CommandManager.register(new CommandListDimensions()); } } diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 0000000..f8a0bee --- /dev/null +++ b/TODO.txt @@ -0,0 +1,47 @@ +TODO for 1.2 and beyond + +Blocks: + Food Dispenser - one button iterates over food types, another dispenses it at cost of some fuel + Cartridge Loader - one button to write to the cartridge, another to load information from it (Right now just location, in the future maybe other too) + Dock Station - lets you get into locations you often visit better, good tool for shop keepers as well. On RP servers could prevent liftoff. + Roundels? - Both normal and storage. +Items: + Personal Location Jammer - when worn, prevents others from locating you. Possibly add some kind of power mechanic to make it less OP + Location Cartridge - a cartridge that stores a location to later visit it with a TARDIM. Can be locked like map. Potentially add a way to write in the field. +Commands: + Quick return - set destination to previous materialisation point. +Compat: + CC - add more meaningful peripherals to things like fuel tank + Create - Port to 0.5.1, add display sources to more things. Also look into mechanical TARDIM power-up + +Mixins: + Location jammer working + Better fuel tank (More fuel sources, do not eat buckets) + Into demat for quick return mixin + Fuel tank should give off comparator output based on how full it is, and time rotor based on whether we are in flight + Potentially let name change appearance of TARDIM Controls? +Code: + Make better and coherent file structure. Unify Forge and Fabric where possible. Prepare for if SWDTeam ever unify more things. + + +Achievements/Advancements: + "Nobody needs soup more than me" + Get soup from TARDIM's food machine + + "Power of the Redstone" + Activate a redstone input + + "From Russia with love" + Set exterior to Soviet Chronobox (or any other potential USSR-themed exteriors) + + "Cyber-Upgrade" + Craft a digital interface + + "???" + Register a dock + + "I prefer jelly" + Put on a location jammer + + "I will always remember..." + Save (or maybe lock like a map?) a location cartridge \ No newline at end of file From 48d214a0eedefec44c74ac80c52a751374b34974 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Fri, 16 Jun 2023 18:09:00 +0300 Subject: [PATCH 49/61] There's this mountain of pure diamond --- CHANGELOG.txt | 15 ++ .../tardim_ic/blockstates/food_machine.json | 8 + .../item/cartridges/cartridge_pins.png | Bin 0 -> 163 bytes .../item/cartridges/cartridge_shell.png | Bin 0 -> 216 bytes .../item/cartridges/temp/cartridge_blue.png | Bin 0 -> 361 bytes .../item/cartridges/temp/cartridge_green.png | Bin 0 -> 248 bytes .../item/cartridges/temp/cartridge_red.png | Bin 0 -> 382 bytes .../a71/tardim_ic/tardim_ic/Registration.java | 17 +- .../blocks/food_machine/FoodMachineBlock.java | 107 +++++++++++++ .../food_machine/FoodMachineTileEntity.java | 40 +++++ .../redstone_input/RedstoneInputBlock.java | 4 +- .../RedstoneInputTileEntity.java | 2 +- .../{ => blocks}/roundels/roundels.txt | 0 .../command/CommandCloisterBell.java | 3 + .../tardim_ic/command/CommandListBiomes.java | 11 +- .../command/CommandListDimensions.java | 4 +- .../command/CommandModemTransmit.java | 5 + .../FakeTardimPeripheralTileEntity.java} | 6 +- .../ITardimPeripheralTileEntity.java | 14 ++ .../TardimPeripheralProvider.java | 37 +++++ .../DigitalInterfaceBlock.java | 2 +- .../DigitalInterfaceTileEntity.java | 14 ++ .../DigitalInterfacePeripheral.java | 148 ++--------------- .../peripherals/FuelStoragePeripheral.java | 73 +++++++++ .../peripherals/TardimPeripheral.java | 67 ++++++++ .../peripherals/TardimScannerPeripheral.java | 150 ++++++++++++++++++ .../peripherals/TimeRotorPeripheral.java | 107 +++++++++++++ .../DigitalInterfacePeripheralProvider.java | 22 --- .../DigitalInterfaceTileEntity.java | 97 ----------- .../IDigitalInterfaceEntity.java | 12 -- .../tardim_ic/mixin/BetterFuelMapMixin.java | 42 +++++ .../mixin/BetterFuelStorageMixin.java | 52 ++++++ .../tardim_ic/mixin/JammerMixin.java | 20 +-- .../tardim_ic/registration/CommandInit.java | 2 + .../registration/ComputerCraftCompat.java | 8 +- .../src/main/resources/mixins.tardim_ic.json | 2 + SWD_MOMENT.txt | 8 +- TODO.txt | 8 +- 38 files changed, 814 insertions(+), 293 deletions(-) create mode 100644 CHANGELOG.txt create mode 100644 Common/src/main/resources/assets/tardim_ic/blockstates/food_machine.json create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/cartridge_pins.png create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/cartridge_shell.png create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/temp/cartridge_blue.png create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/temp/cartridge_green.png create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/temp/cartridge_red.png create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineBlock.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java rename Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/{ => blocks}/redstone_input/RedstoneInputBlock.java (98%) rename Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/{ => blocks}/redstone_input/RedstoneInputTileEntity.java (94%) rename Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/{ => blocks}/roundels/roundels.txt (100%) rename Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/{digital_interface/FakeDigitalInterfaceTileEntity.java => computercraft_compat/FakeTardimPeripheralTileEntity.java} (91%) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/TardimPeripheralProvider.java rename Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/{ => computercraft_compat/blocks}/digital_interface/DigitalInterfaceBlock.java (91%) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java rename Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/{digital_interface => computercraft_compat/peripherals}/DigitalInterfacePeripheral.java (85%) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelMapMixin.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelStorageMixin.java diff --git a/CHANGELOG.txt b/CHANGELOG.txt new file mode 100644 index 0000000..3afeadc --- /dev/null +++ b/CHANGELOG.txt @@ -0,0 +1,15 @@ +Added list-biomes and list-dimensions TARDIM commands + Corresponding ComputerCraft methods + This is a community-requested QOL feature that lets users scroll through available biomes and, + with lua methods, make advanced navigation dashboards even easier. + +Computercraft compatibility improvements + Made ComputerCraft optional + Added peripherals for fuel storage, time rotor and scanner blocks + Added digital interface methods that list biomes and dimensions + +Added Create compatibility + Added various display sources for fuel storage + +Improved TARDIM's fuel system + Any item that can be used as fuel in furnace should now be able to power up a TARDIM + Buckets no longer get destroyed, and only get their fluids taken \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/food_machine.json b/Common/src/main/resources/assets/tardim_ic/blockstates/food_machine.json new file mode 100644 index 0000000..75f685a --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/food_machine.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "tardim_ic:block/food_machine"}, + "facing=east": { "model": "tardim_ic:block/food_machine", "y": 90}, + "facing=south": { "model": "tardim_ic:block/food_machine", "y": 180}, + "facing=west": { "model": "tardim_ic:block/food_machine", "y": 270} + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/cartridge_pins.png b/Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/cartridge_pins.png new file mode 100644 index 0000000000000000000000000000000000000000..6aab34aeebde88bb6c7b97c138a9d5c813ce9453 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Vm)0PLo9le z6C~;$y#Js1KVM(y-~a!PxBlPmZuu`9biPIJ!@o0CZRg|v8SkmBo&WH&c+)R-WnU}WaUXtRmhUVkvjrLT1p0{hAlp6y>#ZOgU-&wjLK#LeW MUHx3vIVCg!06m&S%K!iX literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/cartridge_shell.png b/Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/cartridge_shell.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4d59eef62b88b0108fc8fac9ffb38ef54eba45 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_SO6joDAgmd%8G= zXiVHXVI%J$0|D3hfv*}|dYAGX;PW}C(lgQ1h)I-rNi*x5NvFOs&3`0vnk%pP?Edxt z-@kjE@V$sl|E^d1j!%cnlAfIj_?Xnu#l_Xcz0atGEnY}cc)rg6KsClas-BL4lg*?P zM84=aPx$BS}O-R5*>*kiAO702GD4)FdQWVg(I?NKiVuxC)A6ClT@(;^Zt8U%*EYbrv06 zb*K(i2RAJ(Mnp&(t8FlvG{nIlk|tQ!p6y=lIeh2B&`XF9(+lOuy3(m1Y*Ab`shu6N zva^veJYJU*o?L%oyLv>|jc}R`x^Bc<>w*#C16fR+0wDG;7B@}6B-piqC7^!P%GB{Xg$3+;n->v84aD!CU_Se)>W<-N9w5rbM$z zgTV;~0sCzyn>H{Wdsmd;t03(tu|!aX?T|vVgG4Mp7lY;%bAw;+A3WhQV@T2FXy$2^ zY+J|9s&Jd-Gt(JYg=P*Z24)53gl)|^Zr}KJMXh02BCteK?APz@I)CjqE}vP!oS@fm w^G-nQ7kh2ni3JLW7<6P33>`{zczhWcI?d*=R3D$Z59k#JPgg&ebxsLQ01S>@!2kdN literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/temp/cartridge_red.png b/Common/src/main/resources/assets/tardim_ic/textures/item/cartridges/temp/cartridge_red.png new file mode 100644 index 0000000000000000000000000000000000000000..c930dc0f036423bbe53a20d0fc26aff574d6390f GIT binary patch literal 382 zcmV-^0fGLBP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0TW3?K~y+TV;E*2 zTu<%)-~ZG8-(DpA|NnzDFbxtz#!#hjzyzh?;Qg8P44=RJXL$SiKA67q<^zMW5I-1W z1B_4_3_v!(6n^^o3rrt>_?*FAO`d^+g_+^%t9J}5FWo}XgTirFk^8SID#-BT*B>xn zjF*ey?30&Z_M2}%!1UQ?uTb=0c;WDOW`;ZbQeZa7R%-<*29Tj3SBP+NfW?skh5;}+7UAAkOWX>@?$0uX>X z_0jv!;J}P-tYQ%N@dJyY1FQzX0t^H|E;xAnEW^#)_fW)P03}3Wz*tHQoM4ax4Oc7- cdBDH`00HiA@M9U^-v9sr07*qoM6N<$f`@6Ke*gdg literal 0 HcmV?d00001 diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 4d792e5..a4d86bc 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -14,10 +14,11 @@ import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineBlock; +import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineTileEntity; import su.a71.tardim_ic.tardim_ic.jammer.LocationJammerMaterial; -import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; -import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; -import su.a71.tardim_ic.tardim_ic.Constants; +import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputBlock; +import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; import su.a71.tardim_ic.tardim_ic.registration.CreateCompat; @@ -26,6 +27,7 @@ import su.a71.tardim_ic.tardim_ic.registration.Exteriors; public class Registration { // Blocks public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); + public static final Block FOOD_MACHINE = new FoodMachineBlock(); // Tile Entities public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY = Registry.register( @@ -34,6 +36,12 @@ public class Registration { FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, REDSTONE_TARDIM_INPUT).build() ); + public static final BlockEntityType FOOD_MACHINE_TILEENTITY = Registry.register( + Registry.BLOCK_ENTITY_TYPE, + new ResourceLocation("tardim_ic", "food_machine"), + FabricBlockEntityTypeBuilder.create(FoodMachineTileEntity::new, FOOD_MACHINE).build() + ); + public static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder .create(new ResourceLocation("tardim_ic")) .icon(() -> new ItemStack(REDSTONE_TARDIM_INPUT)) @@ -61,6 +69,9 @@ public class Registration { Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new FabricItemSettings().tab(TARDIM_IC_TAB))); + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "food_machine"), FOOD_MACHINE); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "food_machine"), new BlockItem(FOOD_MACHINE, new FabricItemSettings().tab(TARDIM_IC_TAB))); + Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); CommandInit.init(); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineBlock.java new file mode 100644 index 0000000..fb1565e --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineBlock.java @@ -0,0 +1,107 @@ +package su.a71.tardim_ic.tardim_ic.blocks.food_machine; + +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.common.init.TRDSounds; +import com.swdteam.tardim.network.NetworkHandler; +import com.swdteam.tardim.network.PacketOpenEditGui; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.network.protocol.game.DebugPackets; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.*; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.material.Material; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputTileEntity; +import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; + +import javax.annotation.Nullable; + +import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING; + +public class FoodMachineBlock extends HorizontalDirectionalBlock implements EntityBlock { + public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; + + public FoodMachineBlock() { + super(FabricBlockSettings.of(Material.METAL).strength(2, 4).noOcclusion()); // No occlusion? + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH)); + //this.registerDefaultState(this.stateDefinition.any().setValue(HORIZONTAL_FACING, Direction.NORTH)); + } + + public BlockState getStateForPlacement(BlockPlaceContext $$0) { + return this.defaultBlockState().setValue(FACING, $$0.getHorizontalDirection().getOpposite()); + } + protected void createBlockStateDefinition(StateDefinition.Builder $$0) { + $$0.add(FACING); + } + + + @Nullable + @Override + public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { + return Registration.FOOD_MACHINE_TILEENTITY.create(pos, state); + } + + @Override + public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { + if (!w.isClientSide) { + w.playSound(null, blockPos, TRDSounds.TARDIM_BEEP, SoundSource.BLOCKS, 0.3F, 0.5F); + BlockEntity be = w.getBlockEntity(blockPos); + if (be instanceof FoodMachineTileEntity && w.dimension() == TRDDimensions.TARDIS) { + TardimData data = TardimManager.getFromPos(blockPos); + if (data != null && data.hasPermission(player)) { + if (data.getFuel() >= 0.05) { + data.setFuel(data.getFuel() - 0.05); // Remove some fuel in exchange for food + ItemEntity food = new ItemEntity(EntityType.ITEM, w); + + // Select type of food here + food.setItem(new ItemStack(Items.BREAD, 1)); + + + food.setPos(Vec3.atCenterOf(blockPos).add(new Vec3(0, 0.2, 0))); + w.addFreshEntity(food); + } else { + player.displayClientMessage( + Component.literal("You do not have enough fuel").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true + ); + } + return InteractionResult.CONSUME; + } + + player.displayClientMessage( + Component.literal("You do not have permission").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true + ); + } + } + + return InteractionResult.CONSUME; + } + + public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { + return true; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java new file mode 100644 index 0000000..98966b8 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java @@ -0,0 +1,40 @@ +package su.a71.tardim_ic.tardim_ic.blocks.food_machine; + +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import su.a71.tardim_ic.tardim_ic.Registration; + +import java.util.UUID; + +public class FoodMachineTileEntity extends BlockEntity { + public boolean isPowered = false; + public UUID lastPlayer = null; + + public FoodMachineTileEntity(BlockPos pos, BlockState state) { + super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY, pos, state); + } + + public BlockPos getPos() { + return this.worldPosition; + } + + + @Override + public void saveAdditional(CompoundTag tag) { + tag.putBoolean("is_powered", isPowered); + if (lastPlayer != null) { + tag.putUUID("last_player", lastPlayer); + } + super.saveAdditional(tag); + } + + @Override + public void load(CompoundTag tag) { + super.load(tag); + isPowered = tag.getBoolean("is_powered"); + lastPlayer = tag.getUUID("last_player"); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java similarity index 98% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java rename to Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java index 5c81fc0..99ed818 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.redstone_input; +package su.a71.tardim_ic.tardim_ic.blocks.redstone_input; import com.swdteam.tardim.common.block.BlockBaseTardimPanel; import com.swdteam.tardim.common.init.TRDDimensions; @@ -99,4 +99,4 @@ public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBl } else if (redstoneSignal == 0 && ((RedstoneInputTileEntity) be).isPowered) ((RedstoneInputTileEntity) be).isPowered = false; } -} +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java similarity index 94% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java index 091bd65..f75390c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.redstone_input; +package su.a71.tardim_ic.tardim_ic.blocks.redstone_input; import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/roundels/roundels.txt b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt similarity index 100% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/roundels/roundels.txt rename to Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java index 788f8d6..eb02775 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java @@ -12,6 +12,9 @@ import net.minecraft.world.level.Level; import su.a71.tardim_ic.tardim_ic.Registration; +/* +This command transmits the cloister bell sound in a big enough radius that you could hear it in any reasonably sized interior. + */ public class CommandCloisterBell implements ICommand { @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java index eb6e399..146ac06 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java @@ -8,9 +8,16 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.FurnaceFuelSlot; import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity; +import net.minecraft.world.level.block.entity.FurnaceBlockEntity; +/* +This command prints list of all biomes into the console to find technical names +You can also pass an argument to search for entries with this string (e.g. amethyst for terralith:amethyst_rainforest + */ public class CommandListBiomes implements ICommand{ @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { @@ -23,7 +30,7 @@ public class CommandListBiomes implements ICommand{ biomeRegistry.keySet().forEach( (ResourceLocation res) -> { String out = res.toString(); - if (args.length == 0 || (args[0].equals(out.split(":")[0]))) { + if (args.length == 0 || out.toLowerCase().contains(args[0].toLowerCase())) { CommandTardimBase.sendResponse(player, out, CommandTardimBase.ResponseType.INFO, source); } } @@ -44,7 +51,7 @@ public class CommandListBiomes implements ICommand{ @Override public String getUsage() { - return "/list-biomes"; + return "/list-biomes <..search_query>"; // TODO: how to communicate this better } @Override diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java index ead9842..d5cebda 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java @@ -8,6 +8,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.player.Player; +/* +This command prints list of all dimensions into the console to find technical names + */ public class CommandListDimensions implements ICommand{ @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { @@ -15,7 +18,6 @@ public class CommandListDimensions implements ICommand{ TardimData data = TardimManager.getFromPos(pos); if (data != null) { if (data.hasPermission(player)) { - // TODO: Does this really work? for (ServerLevel serverLevel : player.getLevel().getServer().getAllLevels()) { CommandTardimBase.sendResponse(player, serverLevel.dimension().location().toString(), CommandTardimBase.ResponseType.INFO, source); } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java index d625d46..f7472bc 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java @@ -14,6 +14,11 @@ import dan200.computercraft.api.network.Packet; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; +/* +This command sends out a ComputerCraft modem signal +This could be useful for connecting advanced navigation systems into "vanilla" controls +You can specify both channels, message and even make the message go across dimensions + */ public class CommandModemTransmit implements ICommand { @Override public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java similarity index 91% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java index f39e937..173e76e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java @@ -1,17 +1,17 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; +package su.a71.tardim_ic.tardim_ic.computercraft_compat; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; -public class FakeDigitalInterfaceTileEntity implements IDigitalInterfaceEntity { +public class FakeTardimPeripheralTileEntity implements ITardimPeripheralTileEntity { public BlockPos blockPos; public Level level; public TardimData data; // Our TARDIM - FakeDigitalInterfaceTileEntity(BlockPos in_block, Level in_level) { + public FakeTardimPeripheralTileEntity(BlockPos in_block, Level in_level) { this.blockPos = in_block; this.level = in_level; this.data = getTardimDataInitial(); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java new file mode 100644 index 0000000..3485898 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java @@ -0,0 +1,14 @@ +package su.a71.tardim_ic.tardim_ic.computercraft_compat; + +import com.swdteam.tardim.tardim.TardimData; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +// This is used to getPost(), getLevel() and getTardim() nicely without refactoring code to account for PeripheralProvider +// At least I believe so. Otherwise don't really remember why I don't just pass these methods to the peripherals. +public interface ITardimPeripheralTileEntity { + public BlockPos getPos(); + public Level getLevel(); + + public TardimData getTardim(); +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/TardimPeripheralProvider.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/TardimPeripheralProvider.java new file mode 100644 index 0000000..9561de3 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/TardimPeripheralProvider.java @@ -0,0 +1,37 @@ +package su.a71.tardim_ic.tardim_ic.computercraft_compat; + +import com.swdteam.tardim.common.block.BlockFuelStorage; +import com.swdteam.tardim.common.block.BlockRotor; +import com.swdteam.tardim.common.block.BlockTardimScanner; +import dan200.computercraft.api.peripheral.IPeripheral; +import dan200.computercraft.api.peripheral.IPeripheralProvider; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.NotNull; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.FuelStoragePeripheral; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.TardimScannerPeripheral; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.TimeRotorPeripheral; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.DigitalInterfacePeripheral; + +public class TardimPeripheralProvider implements IPeripheralProvider { + @Override + public IPeripheral getPeripheral(@NotNull Level level, @NotNull BlockPos blockPos, @NotNull Direction direction) { + if (level.isClientSide()) return null; // Please...? + + Block block = level.getBlockState(blockPos).getBlock(); + if (block instanceof DigitalInterfaceBlock) { + return new DigitalInterfacePeripheral(new FakeTardimPeripheralTileEntity(blockPos, level)); + } else if (block instanceof BlockFuelStorage) { + return new FuelStoragePeripheral(new FakeTardimPeripheralTileEntity(blockPos, level)); + } else if (block instanceof BlockRotor) { + return new TimeRotorPeripheral(new FakeTardimPeripheralTileEntity(blockPos, level)); + } else if (block instanceof BlockTardimScanner) { + return new TardimScannerPeripheral(new FakeTardimPeripheralTileEntity(blockPos, level)); + } + + return null; + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java similarity index 91% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java rename to Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java index b0977d9..6aec966 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; +package su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.Block; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java new file mode 100644 index 0000000..d7f39e4 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java @@ -0,0 +1,14 @@ +package su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; + +import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; + + +public class DigitalInterfaceTileEntity extends BlockEntity {//implements IDigitalInterfaceEntity { + public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { + super(ComputerCraftCompat.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java similarity index 85% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java rename to Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java index d3a1d5a..c4d3b70 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java @@ -1,6 +1,5 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; +package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; -import com.mojang.datafixers.util.Pair; import com.swdteam.tardim.common.command.tardim.CommandTravel; import com.swdteam.tardim.common.data.DimensionMapReloadListener; import com.swdteam.tardim.common.init.TRDSounds; @@ -14,8 +13,9 @@ import com.swdteam.tardim.tardim.TardimManager; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.lua.ObjectLuaTable; -import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; + +import com.mojang.datafixers.util.Pair; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; @@ -33,27 +33,23 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; -import org.squiddev.cobalt.Lua; + import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.*; - import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; +import javax.annotation.Nonnull; +import java.util.*; -public class DigitalInterfacePeripheral implements IPeripheral { - private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral - private final IDigitalInterfaceEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates +public class DigitalInterfacePeripheral extends TardimPeripheral implements IPeripheral { /** * @param tileEntity the tile entity of this peripheral * @hidden */ - public DigitalInterfacePeripheral(IDigitalInterfaceEntity tileEntity) { - this.tileEntity = tileEntity; + public DigitalInterfacePeripheral(FakeTardimPeripheralTileEntity tileEntity) { + super(tileEntity); } /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" @@ -63,118 +59,6 @@ public class DigitalInterfacePeripheral implements IPeripheral { @Override public String getType() { return "digital_tardim_interface"; } - /** Apparently CC uses this to check if the peripheral in front of a modem is this one - * @hidden - * @param iPeripheral The peripheral to compare against. This may be {@code null}. - * @return {@code true} if the peripheral is the same as this one. - */ - @Override - public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } - - /** Called when a computer disconnects from the peripheral - * @hidden - * @param computer The interface to the computer that is being detached. Remember that multiple computers can be - * attached to a peripheral at once. - */ - @Override - public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } - - /** Called when a computer connects to the peripheral - * @hidden - * @param computer The interface to the computer that is being attached. Remember that multiple computers can be - * attached to a peripheral at once. - */ - @Override - public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } - - /** - * I *think* I use this to get peripheral's world position - * @hidden - * @return - */ - public IDigitalInterfaceEntity getTileEntity() { - return tileEntity; - } - - - /** - * Get TARDIM's data, which we need for *every* function - *

- * We can't do a simple - * TardimManager.getFromPos(getTileEntity().getPos()) - *

- * because if someone attempts to call a method outside a TARDIM, this would create a new TARDIM/Point to the one with ID of 0 (Due to the way TardimSaveHandler.loadTardisData works). - * Which is obviously not what we want. - *

- * So instead we use this, and get the ability to give user a LuaException if they think that fiddling with time is funny - * This is mostly a copy of getIDForXZ function with some added checks - * - * @return TardimData of the TARDIM that the peripheral is in - * @hidden - */ - public TardimData getTardimDataInitial() { - int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); - - int index = 0; - int x = 0; - int y = 0; - int dx = 0; - int dy = 1; - int segment_length = 1; - int segment_passed = 0; - boolean found = false; - long timecheck = System.currentTimeMillis(); - - while(true) { - if (System.currentTimeMillis() - timecheck > 10000L) { - System.out.println("Finding ID from XZ Coordinates is taking too long!"); - break; - } - - if (X >= x * TardimManager.INTERIOR_BOUNDS - && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS - && Z >= y * TardimManager.INTERIOR_BOUNDS - && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { - found = true; - break; - } - - x += dx; - y += dy; - if (++segment_passed == segment_length) { - segment_passed = 0; - int buffer = dy; - dy = -dx; - dx = buffer; - if (buffer == 0) { - ++segment_length; - } - } - - ++index; - } - - // We really don't want to access a ghost TARDIM, do we? - // If we fail checks here are not inside a TARDIM - if (!found) { - return null; - } - TardimData T = TardimManager.getTardim(index); - if (T.getCurrentLocation() == null || T.getOwnerName() == null) { - return null; - } - - return T; - } - - public TardimData getTardimData() throws LuaException { - TardimData data = this.getTileEntity().getTardim(); - if (data == null || data.getCurrentLocation() == null || data.getOwnerName() == null) { - throw new LuaException("Peripheral is not inside a TARDIM"); - } - return data; - } - // Peripheral methods =============================================================== /** @@ -397,7 +281,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void home() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { + if (this.getTileEntity().getLevel().isClientSide()) { return; } TardimData data = getTardimData(); @@ -408,7 +292,7 @@ public class DigitalInterfacePeripheral implements IPeripheral { throw new LuaException("TARDIM has no owner"); } - PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + PlayerList playerList = this.getTileEntity().getLevel().getServer().getPlayerList(); ServerPlayer player = playerList.getPlayer(uuid); if (player == null) { throw new LuaException("TARDIM owner is not online"); @@ -430,11 +314,11 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final void locatePlayer(String username) throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { + if (this.getTileEntity().getLevel().isClientSide()) { return; } - PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + PlayerList playerList = this.getTileEntity().getLevel().getServer().getPlayerList(); ServerPlayer player = playerList.getPlayerByName(username); if (player == null) { @@ -461,11 +345,11 @@ public class DigitalInterfacePeripheral implements IPeripheral { */ @LuaFunction(mainThread = true) public final ObjectLuaTable getOnlinePlayers() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { + if (this.getTileEntity().getLevel().isClientSide()) { return null; } - PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + PlayerList playerList = this.getTileEntity().getLevel().getServer().getPlayerList(); Map players = new HashMap<>(); for (int i = 0; i < playerList.getPlayers().size(); i++) { players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java new file mode 100644 index 0000000..9a22a02 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java @@ -0,0 +1,73 @@ +package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; + +import com.swdteam.tardim.tardim.TardimData; +import dan200.computercraft.api.lua.LuaException; +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.peripheral.IPeripheral; +import net.minecraft.world.phys.Vec3; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; + +import javax.annotation.Nonnull; + + +/* +* CC Peripheral for TARDIM's fuel storage block. +* Only provides getters for the fuel parts for people who cannot afford or don't need the digital interface. + */ +public class FuelStoragePeripheral extends TardimPeripheral implements IPeripheral { + /** + * @param tileEntity the tile entity of this peripheral + * @hidden + */ + public FuelStoragePeripheral(FakeTardimPeripheralTileEntity tileEntity) { + super(tileEntity); + } + + /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + * @hidden + */ + @Nonnull + @Override + public String getType() { return "tardim_fuel_storage"; } + + + // Peripheral methods =============================================================== + + /** + * Return how much fuel is left in the TARDIM + * + * @return Fuel left (Out of 100) + */ + @LuaFunction(mainThread = true) + public final double getFuel() throws LuaException { + return getTardimData().getFuel(); + } + + /** + * Get how much fuel it would take to travel to the destination + * @return Amount of fuel needed (Out of 100) + */ + @LuaFunction(mainThread = true) + public final double calculateFuelForJourney() throws LuaException { + TardimData data = getTardimData(); + + if (data.getTravelLocation() == null) return 0; + + TardimData.Location curr = data.getCurrentLocation(); + TardimData.Location dest = data.getTravelLocation(); + + double fuel = 0.0; + + if (curr.getLevel() != dest.getLevel()) + { + fuel = 10.0; + } + + Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ()); + Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ()); + fuel += posA.distanceTo(posB) / 100.0; + if (fuel > 100.0) fuel = 100.0; + + return fuel; + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java new file mode 100644 index 0000000..4dee2ed --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java @@ -0,0 +1,67 @@ +package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; + +import com.swdteam.tardim.tardim.TardimData; +import dan200.computercraft.api.lua.LuaException; +import dan200.computercraft.api.peripheral.IComputerAccess; +import dan200.computercraft.api.peripheral.IPeripheral; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.ITardimPeripheralTileEntity; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.*; + +// Base CC peripheral for whn you need something with access to a TARDIM +public abstract class TardimPeripheral implements IPeripheral { + + private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral + public final ITardimPeripheralTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates + /** + * @param tileEntity the tile entity of this peripheral + * @hidden + */ + public TardimPeripheral(ITardimPeripheralTileEntity tileEntity) { + this.tileEntity = tileEntity; + } + + /** Apparently CC uses this to check if the peripheral in front of a modem is this one + * @hidden + * @param iPeripheral The peripheral to compare against. This may be {@code null}. + * @return {@code true} if the peripheral is the same as this one. + */ + @Override + public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } + + /** Called when a computer disconnects from the peripheral + * @hidden + * @param computer The interface to the computer that is being detached. Remember that multiple computers can be + * attached to a peripheral at once. + */ + @Override + public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } + + /** Called when a computer connects to the peripheral + * @hidden + * @param computer The interface to the computer that is being attached. Remember that multiple computers can be + * attached to a peripheral at once. + */ + @Override + public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } + + /** + * I *think* I use this to get peripheral's world position + * @hidden + * @return + */ + public ITardimPeripheralTileEntity getTileEntity() { + return tileEntity; + } + + + public TardimData getTardimData() throws LuaException { + TardimData data = this.getTileEntity().getTardim(); + if (data == null || data.getCurrentLocation() == null || data.getOwnerName() == null) { + throw new LuaException("Peripheral is not inside a TARDIM"); + } + return data; + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java new file mode 100644 index 0000000..e4caaee --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java @@ -0,0 +1,150 @@ +package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; + +import com.swdteam.tardim.common.init.TardimRegistry; +import com.swdteam.tardim.tardim.TardimData; +import dan200.computercraft.api.lua.LuaException; +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.lua.ObjectLuaTable; +import dan200.computercraft.api.peripheral.IPeripheral; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.players.PlayerList; +import net.minecraft.world.level.biome.Biome; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; + +import javax.annotation.Nonnull; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + + +/* + * CC Peripheral for TARDIM's scanner block. + * Only provides getters for data-related (mostly table output) methods e.g. biome or companion list + * for people who cannot afford or don't need the digital interface. + */ +public class TardimScannerPeripheral extends TardimPeripheral implements IPeripheral { + /** + * @param tileEntity the tile entity of this peripheral + * @hidden + */ + public TardimScannerPeripheral(FakeTardimPeripheralTileEntity tileEntity) { + super(tileEntity); + } + + /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + * @hidden + */ + @Nonnull + @Override + public String getType() { return "tardim_scanner"; } + + + // Peripheral methods =============================================================== + + /** + * Get username of the TARDIM's owner + * @return String of the owner's username + */ + @LuaFunction(mainThread = true) + public final String getOwnerName() throws LuaException { + TardimData data = getTardimData(); + return data.getOwnerName(); + } + + /** + * Get list of the TARDIM owner's companions + * @return ObjectLuaTable containing the usernames of the companions + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getCompanions() throws LuaException { + TardimData data = getTardimData(); + Map companions = new HashMap<>(); + for (int i = 0; i < data.getCompanions().size(); i++) { + companions.put(i + 1, data.getCompanions().get(i).getUsername()); + } + return new ObjectLuaTable(companions); + } + + /** + * Get online players. Useful for making a GUI for the locate function or just a nice dashboard. + * + * @return ObjectLuaTable of the online players + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getOnlinePlayers() throws LuaException { + if (this.tileEntity.getLevel().isClientSide()) { + return null; + } + + PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); + Map players = new HashMap<>(); + for (int i = 0; i < playerList.getPlayers().size(); i++) { + players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); + } + + return new ObjectLuaTable(players); + } + + /** + * Get all available TARDIM skins. Useful for making a GUI skin selection. + * + * @return ObjectLuaTable of the available skins + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getSkins() throws LuaException { + if (this.getTileEntity().getLevel().isClientSide()) { + return null; + } + + Map skins = new HashMap<>(); + + Iterator var5 = TardimRegistry.getRegistry().keySet().iterator(); + int i = 0; + while(var5.hasNext()) { + ResourceLocation builder = (ResourceLocation)var5.next(); + TardimRegistry.TardimBuilder b = TardimRegistry.getTardimBuilder(builder); + skins.put(i + 1, b.getDisplayName()); + i++; + } + + return new ObjectLuaTable(skins); + } + + /** + * Get a table with all registered biomes' names. + * Useful for creating advanced navigation systems. + * @return ObjectLuaTable with all biomes' technical names + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getBiomes() throws LuaException { + Map biomes = new HashMap<>(); + Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + Iterator biome_it = biomeRegistry.keySet().iterator(); + int i = 0; + while (biome_it.hasNext()) { + biomes.put(i + 1, biome_it.next().toString()); + i++; + } + + return new ObjectLuaTable(biomes); + } + + /** + * Get a table with all registered dimensions' names. + * Useful for creating advanced navigation systems. + * @return ObjectLuaTable with all dimensions' technical names + */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getDimensions() throws LuaException { + Iterator dim_it = this.getTileEntity().getLevel().getServer().getAllLevels().iterator(); // TODO: Does this really work? + Map dimensions = new HashMap<>(); + int i = 0; + while (dim_it.hasNext()) { + dimensions.put(i + 1, dim_it.next().dimension().location().toString()); + i++; + } + return new ObjectLuaTable(dimensions); + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java new file mode 100644 index 0000000..7a2d622 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java @@ -0,0 +1,107 @@ +package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; + +import com.swdteam.tardim.tardim.TardimData; +import dan200.computercraft.api.lua.LuaException; +import dan200.computercraft.api.lua.LuaFunction; +import dan200.computercraft.api.lua.ObjectLuaTable; +import dan200.computercraft.api.peripheral.IPeripheral; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; + +import javax.annotation.Nonnull; +import java.util.Map; + +/* + * CC Peripheral for TARDIM's time rotor block. + * Only provides getters for the flight status for people who cannot afford or don't need the digital interface. + */ +public class TimeRotorPeripheral extends TardimPeripheral implements IPeripheral { + /** + * @param tileEntity the tile entity of this peripheral + * @hidden + */ + public TimeRotorPeripheral(FakeTardimPeripheralTileEntity tileEntity) { + super(tileEntity); + } + + /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + * @hidden + */ + @Nonnull + @Override + public String getType() { return "tardim_time_rotor"; } + + + // Peripheral methods =============================================================== + + /** + * Check whether the TARDIM is in flight + * @return true if in flight, false if not + */ + @LuaFunction(mainThread = true) + public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); } + + /** + * Supposedly gets UNIX timestamp of when we entered flight + * @return UNIX timestamp if in flight, -1 if not + */ + @LuaFunction(mainThread = true) + public final long getTimeEnteredFlight() throws LuaException { + TardimData data = getTardimData(); + if (!data.isInFlight()) { + return -1; + } + return data.getTimeEnteredFlight(); + } + + /** + * Get the current location of the TARDIM + * @return ObjectLuaTable of the current location with the following keys: + *

+ */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getCurrentLocation() throws LuaException { + TardimData.Location loc = getTardimData().getCurrentLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } + + /** + * Get the current location of the TARDIM + * @return if there is no destination returns null. + *

+ * Otherwise, ObjectLuaTable of the current location with the following keys: + *

    + *
  • dimension - String of the dimension
  • + *
  • pos - table with the keys x, y, z that hold numbers
  • + *
  • facing - String of the facing
  • + *
+ */ + @LuaFunction(mainThread = true) + public final ObjectLuaTable getTravelLocation() throws LuaException { + TardimData data = getTardimData(); + if (data.getTravelLocation() == null) { + data.setTravelLocation(data.getCurrentLocation()); + } + TardimData.Location loc = data.getTravelLocation(); + return new ObjectLuaTable(Map.of( + "dimension", loc.getLevel().location().toString(), + "pos", new ObjectLuaTable(Map.of( + "x", loc.getPos().getX(), + "y", loc.getPos().getY(), + "z", loc.getPos().getZ() + )), + "facing", loc.getFacing().toString() + )); + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java deleted file mode 100644 index 4b88e07..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheralProvider.java +++ /dev/null @@ -1,22 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import dan200.computercraft.api.peripheral.IPeripheral; -import dan200.computercraft.api.peripheral.IPeripheralProvider; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.NotNull; - -public class DigitalInterfacePeripheralProvider implements IPeripheralProvider { - @NotNull - @Override - public IPeripheral getPeripheral(@NotNull Level level, @NotNull BlockPos blockPos, @NotNull Direction direction) { - if (level.isClientSide()) return null; // Please...? - if (level.getBlockState(blockPos).getBlock() instanceof DigitalInterfaceBlock) { - return new DigitalInterfacePeripheral(new FakeDigitalInterfaceTileEntity(blockPos, level)); - } - - return null; - } -} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java deleted file mode 100644 index bee0a9c..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ /dev/null @@ -1,97 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import com.swdteam.tardim.tardim.TardimData; -import com.swdteam.tardim.tardim.TardimManager; -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; - -import su.a71.tardim_ic.tardim_ic.Registration; -import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; - - -public class DigitalInterfaceTileEntity extends BlockEntity {//implements IDigitalInterfaceEntity { - //public TardimData data; // Our TARDIM - - - public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { - super(ComputerCraftCompat.DIGITAL_TARDIM_INTERFACE_TILEENTITY, pos, state); - //this.data = getTardimDataInitial(); - } - -// public BlockPos getPos() { -// return this.worldPosition; -// } -// -// @Override -// public TardimData getTardim() { -// return null; -// } - -// /** -// * The peripheral -// */ -// protected DigitalInterfacePeripheral peripheral = new DigitalInterfacePeripheral(this); - -// public TardimData getTardimDataInitial() { -// int X = this.getPos().getX(), Z = this.getPos().getZ(); -// -// int index = 0; -// int x = 0; -// int y = 0; -// int dx = 0; -// int dy = 1; -// int segment_length = 1; -// int segment_passed = 0; -// boolean found = false; -// long timecheck = System.currentTimeMillis(); -// -// while(true) { -// if (System.currentTimeMillis() - timecheck > 10000L) { -// System.out.println("Finding ID from XZ Coordinates is taking too long!"); -// break; -// } -// -// if (X >= x * TardimManager.INTERIOR_BOUNDS -// && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS -// && Z >= y * TardimManager.INTERIOR_BOUNDS -// && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { -// found = true; -// break; -// } -// -// x += dx; -// y += dy; -// if (++segment_passed == segment_length) { -// segment_passed = 0; -// int buffer = dy; -// dy = -dx; -// dx = buffer; -// if (buffer == 0) { -// ++segment_length; -// } -// } -// -// ++index; -// } -// -// // We really don't want to access a ghost TARDIM, do we? -// // If we fail checks here are not inside a TARDIM -// if (!found) { -// return null; -// } -// TardimData T = TardimManager.getTardim(index); -// if (T.getCurrentLocation() == null || T.getOwnerName() == null) { -// return null; -// } -// -// return T; -// } -// -// @Override -// public void load(CompoundTag tag) { -// super.load(tag); -// this.data = getTardimDataInitial(); -// } -} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java deleted file mode 100644 index 6c94757..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java +++ /dev/null @@ -1,12 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import com.swdteam.tardim.tardim.TardimData; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; - -public interface IDigitalInterfaceEntity { - public BlockPos getPos(); - public Level getLevel(); - - public TardimData getTardim(); -} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelMapMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelMapMixin.java new file mode 100644 index 0000000..bbaba40 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelMapMixin.java @@ -0,0 +1,42 @@ +package su.a71.tardim_ic.tardim_ic.mixin; + +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +import static com.swdteam.tardim.tardim.TardimManager.FUEL_MAP; + +// This mixin aims to make TARDIM fuel system less awful by allowing users to put standard furance fuel into it. +@Mixin(value = TardimManager.class, remap = false) +public class BetterFuelMapMixin { + + @Overwrite + public static boolean isFuel(Item i) { + return FUEL_MAP.containsKey(i) || AbstractFurnaceBlockEntity.getFuel().containsKey(i); + } + + @Overwrite + public static double getFuel(Item i) { + if (!isFuel(i)) { + return 0.0; + } + + if (!AbstractFurnaceBlockEntity.getFuel().containsKey(i)) { + return (Double)FUEL_MAP.get(i); + } + else + return AbstractFurnaceBlockEntity.getFuel().get(i) / 8000.0; // Adapt with coal's 1600 ticks -> 0.2 fuel + } + +// //@Inject(method = "getFuel(Lnet/minecraft/world/item/Item;)V", at = @At("TAIL")) +// @Overwrite +// public static void getFuel(Item i, CallbackInfo info) { +// LOG.info("We're in #TARDIM"); +// if (AbstractFurnaceBlockEntity.getFuel().containsKey(i)) { +// +// } +// } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelStorageMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelStorageMixin.java new file mode 100644 index 0000000..a685dea --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelStorageMixin.java @@ -0,0 +1,52 @@ +package su.a71.tardim_ic.tardim_ic.mixin; + +import com.swdteam.tardim.common.block.BlockFuelStorage; +import com.swdteam.tardim.common.init.TRDDimensions; +import com.swdteam.tardim.tardim.TardimData; +import com.swdteam.tardim.tardim.TardimManager; +import com.swdteam.tardim.tileentity.TileEntityFuelStorage; +import net.fabricmc.loader.impl.util.log.Log; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.BucketItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.HopperBlock; +import net.minecraft.world.level.block.entity.HopperBlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +import static su.a71.tardim_ic.tardim_ic.Constants.LOG; + +@Mixin(value = TileEntityFuelStorage.class, remap = false) +public class BetterFuelStorageMixin { + + // This is rather inefficient as we iterate 2 times + // However, the hoppers are so small and this method is called so rarely that it should be fine. + @Inject(method = "serverTick(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lcom/swdteam/tardim/tileentity/TileEntityFuelStorage;)V", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/entity/HopperBlockEntity;removeItem(II)Lnet/minecraft/world/item/ItemStack;"), + locals = LocalCapture.CAPTURE_FAILHARD) + private static void saveLavaBuckets(Level world, BlockPos pos, BlockState state, TileEntityFuelStorage blockEntity, CallbackInfo ci) { + //CAPTURE_FAILHARD: If the calculated locals are different from the expected values, throws an error. + HopperBlockEntity mixin_hopper = (HopperBlockEntity)world.getBlockEntity(blockEntity.getBlockPos().above()); + for(int j = 0; j < mixin_hopper.getContainerSize(); ++j) { + ItemStack stack = mixin_hopper.getItem(j); + double fuel = TardimManager.getFuel(stack.getItem()); + if (fuel > 0.0) { + if (stack.getItem() instanceof BucketItem) { + LOG.info("THIS IS A BUCKET"); + mixin_hopper.setItem(j, new ItemStack(stack.getItem().getCraftingRemainingItem(), 2)); + } else { + mixin_hopper.removeItem(j, 1); + } + } + } + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java index 633b6a6..f32227b 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java @@ -22,14 +22,14 @@ import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; @Mixin(value = CommandLocate.class, remap = false) public class JammerMixin { - @Inject(method="execute()V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData$Location;)V")) - public void execute(CallbackInfo ci) { - LOG.info("test"); -// for (ItemStack armour : player.getArmorSlots()) { -// if (armour.is(LOCATION_JAMMER)) { -// sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source); -// ci.cancel(); -// }; -// } - } +// @Inject(method="execute()V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData$Location;)V")) +// public void execute(CallbackInfo ci) { +// LOG.info("test"); +//// for (ItemStack armour : player.getArmorSlots()) { +//// if (armour.is(LOCATION_JAMMER)) { +//// sendResponse(player, "Player's location is jammed", CommandTardimBase.ResponseType.FAIL, source); +//// ci.cancel(); +//// }; +//// } +// } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index 8071a5e..406069b 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -5,10 +5,12 @@ import com.swdteam.tardim.common.init.CommandManager; import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; import su.a71.tardim_ic.tardim_ic.command.CommandListBiomes; +import su.a71.tardim_ic.tardim_ic.command.CommandListDimensions; public class CommandInit { public static void init() { CommandManager.register(new CommandListBiomes()); + CommandManager.register(new CommandListDimensions()); CommandManager.register(new CommandCloisterBell()); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java index 9ba3347..52dc61e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java @@ -12,9 +12,9 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.Registration; import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfacePeripheralProvider; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.TardimPeripheralProvider; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceTileEntity; public class ComputerCraftCompat { public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); @@ -31,6 +31,6 @@ public class ComputerCraftCompat { Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB))); CommandManager.register(new CommandModemTransmit()); - ComputerCraftAPI.registerPeripheralProvider(new DigitalInterfacePeripheralProvider()); + ComputerCraftAPI.registerPeripheralProvider(new TardimPeripheralProvider()); } } diff --git a/Fabric/src/main/resources/mixins.tardim_ic.json b/Fabric/src/main/resources/mixins.tardim_ic.json index 6fc1843..d945634 100644 --- a/Fabric/src/main/resources/mixins.tardim_ic.json +++ b/Fabric/src/main/resources/mixins.tardim_ic.json @@ -4,6 +4,8 @@ "compatibilityLevel": "JAVA_17", "refmap": "refmap.tardim_ic.json", "mixins": [ + "BetterFuelMapMixin", + "BetterFuelStorageMixin" ], "client": [ ], diff --git a/SWD_MOMENT.txt b/SWD_MOMENT.txt index a9ac663..addca91 100644 --- a/SWD_MOMENT.txt +++ b/SWD_MOMENT.txt @@ -6,4 +6,10 @@ 5. com.swdteam.tardim.common.data.DimensionMapReloadListener has modid tutorial in public ResourceLocation getFabricId() { return new ResourceLocation("tutorial", "tardim_dimension_lookup"); - } \ No newline at end of file + } + +Andrew71's proposals: + +1. Quick-return command +2. add support for far more fuel sources via AbstractFurnaceBlockEntity.getFuel() on top of built-in TARDIM method +3. Unify package names on Forge and Fabric \ No newline at end of file diff --git a/TODO.txt b/TODO.txt index f8a0bee..82778f1 100644 --- a/TODO.txt +++ b/TODO.txt @@ -11,7 +11,7 @@ Items: Commands: Quick return - set destination to previous materialisation point. Compat: - CC - add more meaningful peripherals to things like fuel tank + CC - add more meaningful peripherals to things like fuel tank, CREATIVE INTERFACE? Create - Port to 0.5.1, add display sources to more things. Also look into mechanical TARDIM power-up Mixins: @@ -44,4 +44,8 @@ Achievements/Advancements: Put on a location jammer "I will always remember..." - Save (or maybe lock like a map?) a location cartridge \ No newline at end of file + Save (or maybe lock like a map?) a location cartridge + +Crafting recipe for floppy with tardim tutorial installer + +Power indicator for redstone interface \ No newline at end of file From d23f20c0f8836d9deb3d2d02f7cce102c3cdbe09 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sat, 17 Jun 2023 22:10:20 +0300 Subject: [PATCH 50/61] Okay fine I'll stop quoting Heaven Sent --- .../su/a71/tardim_ic/tardim_ic/Constants.java | 19 +++++++++++-- .../models/armor/personal_jammer_layer_1.png | Bin 0 -> 437 bytes .../models/armor/personal_jammer_layer_2.png | Bin 0 -> 437 bytes ...ation_jammer.json => personal_jammer.json} | 2 +- .../computercraft/lua/premade/NavDash.lua | 3 ++ .../a71/tardim_ic/tardim_ic/Registration.java | 8 +++--- .../food_machine/FoodMachineTileEntity.java | 19 +++++++------ .../DigitalInterfacePeripheral.java | 4 +-- ...erial.java => PersonalJammerMaterial.java} | 4 +-- .../tardim_ic/mixin/JammerMixin.java | 2 +- Fabric/src/main/resources/fabric.mod.json | 2 +- Forge/src/main/resources/META-INF/mods.toml | 4 +-- README.md | 26 ++++++++++-------- TODO.txt | 8 +++++- gradle.properties | 2 +- media/banner.png | Bin 0 -> 475717 bytes media/banner_narrow.png | Bin 0 -> 431121 bytes media/icon.png | Bin 0 -> 58949 bytes 18 files changed, 64 insertions(+), 39 deletions(-) create mode 100644 Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer_layer_1.png create mode 100644 Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer_layer_2.png rename Common/src/main/resources/assets/tardim_ic/models/item/{location_jammer.json => personal_jammer.json} (53%) create mode 100644 Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua rename Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/{LocationJammerMaterial.java => PersonalJammerMaterial.java} (93%) create mode 100644 media/banner.png create mode 100644 media/banner_narrow.png create mode 100644 media/icon.png diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java index f07c887..1789b8c 100644 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java @@ -1,11 +1,24 @@ package su.a71.tardim_ic.tardim_ic; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import org.apache.logging.log4j.LogManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Random; + public class Constants { - public static final String MOD_ID = "tardim_ic"; - public static final String MOD_NAME = "TARDIM: In Control"; - public static final Logger LOG = LoggerFactory.getLogger(MOD_NAME); + public static final String MOD_ID; + public static final String MOD_NAME; + public static final Logger LOG; + public static final Gson GSON; + + static { + MOD_ID = "tardim_ic"; + MOD_NAME = "TARDIM: In Control"; + LOG = LoggerFactory.getLogger(MOD_NAME); + GSON = (new GsonBuilder()).setPrettyPrinting().create(); + } } \ No newline at end of file diff --git a/Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer_layer_1.png b/Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer_layer_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c98028b2cc09a5e97b75333a24f842a29e2cdefa GIT binary patch literal 437 zcmV;m0ZRUfP)Gpbx`i&KzqF;Dif`b_kOO4NkqRZDYoT3wgVMD_p@EV>4H*&?+c|?f z6a`t9Eh$)J(X-g!58_37{mB4;Q#ljw%9}GuD7{$fW=~WR%aWNQjFTh*A*7)@^viIjaL6wK;V1ABAb_qTqX$s zU^<(ZVrBR<6P;mG&#oSD=?ls7Qh|?Edvw{F@cr$@VGDc=RE@~SB+K#p{RII3&$CM< z0j|8oELsA1BeF4XI#m-obdZR)oYvCS8l7Gjf$xE2xiCJzI04CWERzI>{XPQU!}Iu| zvSvkql1xRY^L2!@>VY=CibiDjL0!EGtsRg}Ozr8XE1+(RY5w}|)~o;%XbDiclJ|;n z6Us1dLK(Z5aPK(u$CI7y07`Qn0De9{S{>UKi^XE0`~l2$wR|c7Tsi;%01jnXNoGw= f04e|g00;m8000000Mb*F00000NkvXXu0mjfeT2BD literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer_layer_2.png b/Common/src/main/resources/assets/minecraft/textures/models/armor/personal_jammer_layer_2.png new file mode 100644 index 0000000000000000000000000000000000000000..c98028b2cc09a5e97b75333a24f842a29e2cdefa GIT binary patch literal 437 zcmV;m0ZRUfP)Gpbx`i&KzqF;Dif`b_kOO4NkqRZDYoT3wgVMD_p@EV>4H*&?+c|?f z6a`t9Eh$)J(X-g!58_37{mB4;Q#ljw%9}GuD7{$fW=~WR%aWNQjFTh*A*7)@^viIjaL6wK;V1ABAb_qTqX$s zU^<(ZVrBR<6P;mG&#oSD=?ls7Qh|?Edvw{F@cr$@VGDc=RE@~SB+K#p{RII3&$CM< z0j|8oELsA1BeF4XI#m-obdZR)oYvCS8l7Gjf$xE2xiCJzI04CWERzI>{XPQU!}Iu| zvSvkql1xRY^L2!@>VY=CibiDjL0!EGtsRg}Ozr8XE1+(RY5w}|)~o;%XbDiclJ|;n z6Us1dLK(Z5aPK(u$CI7y07`Qn0De9{S{>UKi^XE0`~l2$wR|c7Tsi;%01jnXNoGw= f04e|g00;m8000000Mb*F00000NkvXXu0mjfeT2BD literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json b/Common/src/main/resources/assets/tardim_ic/models/item/personal_jammer.json similarity index 53% rename from Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json rename to Common/src/main/resources/assets/tardim_ic/models/item/personal_jammer.json index 1a1fcc4..d8930c2 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/item/location_jammer.json +++ b/Common/src/main/resources/assets/tardim_ic/models/item/personal_jammer.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "tardim_ic:item/location_jammer" + "layer0": "tardim_ic:item/personal_jammer" } } \ No newline at end of file diff --git a/Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua b/Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua new file mode 100644 index 0000000..bbd4d8d --- /dev/null +++ b/Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua @@ -0,0 +1,3 @@ +--[[ + This is source code of my personal TARDIM Navigation Dashboard (NavDash) +] \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index a4d86bc..3d3be0e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -16,7 +16,7 @@ import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineBlock; import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineTileEntity; -import su.a71.tardim_ic.tardim_ic.jammer.LocationJammerMaterial; +import su.a71.tardim_ic.tardim_ic.jammer.PersonalJammerMaterial; import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputTileEntity; import su.a71.tardim_ic.tardim_ic.registration.CommandInit; @@ -51,12 +51,12 @@ public class Registration { public static final ResourceLocation CLOISTER_SOUND = new ResourceLocation("tardim_ic:cloister"); public static SoundEvent CLOISTER_SOUND_EVENT = new SoundEvent(CLOISTER_SOUND); - public static final ArmorMaterial LOCATION_JAMMER_MATERIAL = new LocationJammerMaterial(); - public static final Item LOCATION_JAMMER = new ArmorItem(LOCATION_JAMMER_MATERIAL, EquipmentSlot.CHEST, new Item.Properties().tab(TARDIM_IC_TAB)); + public static final ArmorMaterial PERSONAL_JAMMER_MATERIAL = new PersonalJammerMaterial(); + public static final Item PERSONAL_JAMMER = new ArmorItem(PERSONAL_JAMMER_MATERIAL, EquipmentSlot.CHEST, new Item.Properties().tab(TARDIM_IC_TAB)); // Register our stuff public static void register() { - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "location_jammer"), LOCATION_JAMMER); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "personal_jammer"), PERSONAL_JAMMER); if (FabricLoader.getInstance().isModLoaded("computercraft")) { ComputerCraftCompat.register(); // Register ComputerCraft-related features diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java index 98966b8..272b893 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java @@ -2,6 +2,8 @@ package su.a71.tardim_ic.tardim_ic.blocks.food_machine; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -10,11 +12,11 @@ import su.a71.tardim_ic.tardim_ic.Registration; import java.util.UUID; public class FoodMachineTileEntity extends BlockEntity { - public boolean isPowered = false; - public UUID lastPlayer = null; + public int curr_food_index; public FoodMachineTileEntity(BlockPos pos, BlockState state) { - super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY, pos, state); + super(Registration.FOOD_MACHINE_TILEENTITY, pos, state); + this.curr_food_index = 0; } public BlockPos getPos() { @@ -24,17 +26,16 @@ public class FoodMachineTileEntity extends BlockEntity { @Override public void saveAdditional(CompoundTag tag) { - tag.putBoolean("is_powered", isPowered); - if (lastPlayer != null) { - tag.putUUID("last_player", lastPlayer); - } + tag.putInt("curr_food_index", curr_food_index); + //tag.putBoolean("is_powered", isPowered); super.saveAdditional(tag); } @Override public void load(CompoundTag tag) { super.load(tag); - isPowered = tag.getBoolean("is_powered"); - lastPlayer = tag.getUUID("last_player"); + curr_food_index = tag.getInt("curr_food_index"); + //lastPlayer = tag.getUUID("last_player"); + //event.addListener(new FuelMapReloadListener(GSON, "tardim_fuel")); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java index c4d3b70..8825990 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java @@ -37,7 +37,7 @@ import net.minecraft.world.phys.Vec3; import su.a71.tardim_ic.tardim_ic.Registration; import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; -import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; +import static su.a71.tardim_ic.tardim_ic.Registration.PERSONAL_JAMMER; import javax.annotation.Nonnull; import java.util.*; @@ -326,7 +326,7 @@ public class DigitalInterfacePeripheral extends TardimPeripheral implements IPer } for (ItemStack armour : player.getArmorSlots()) { - if (armour.is(LOCATION_JAMMER)) { + if (armour.is(PERSONAL_JAMMER)) { throw new LuaException("Player location jammed"); }; } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/LocationJammerMaterial.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/PersonalJammerMaterial.java similarity index 93% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/LocationJammerMaterial.java rename to Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/PersonalJammerMaterial.java index b0d04bb..e9b6adf 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/LocationJammerMaterial.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/PersonalJammerMaterial.java @@ -9,7 +9,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; import org.jetbrains.annotations.NotNull; -public class LocationJammerMaterial implements ArmorMaterial { +public class PersonalJammerMaterial implements ArmorMaterial { private static final int[] BASE_DURABILITY = new int[] {13, 15, 16, 11}; private static final int[] PROTECTION_VALUES = new int[] {1, 1, 1, 1}; @@ -41,7 +41,7 @@ public class LocationJammerMaterial implements ArmorMaterial { @Override public @NotNull String getName() { // Must be all lowercase - return "location jammer"; + return "personal_jammer"; } @Override diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java index f32227b..90b4eaf 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java @@ -18,7 +18,7 @@ import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import static com.swdteam.tardim.common.command.tardim.CommandTardimBase.sendResponse; import static su.a71.tardim_ic.tardim_ic.Constants.LOG; -import static su.a71.tardim_ic.tardim_ic.Registration.LOCATION_JAMMER; +import static su.a71.tardim_ic.tardim_ic.Registration.PERSONAL_JAMMER; @Mixin(value = CommandLocate.class, remap = false) public class JammerMixin { diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index dec8061..ac004f4 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "${version}", "name": "Tardim: In Control", - "description": "All of time and space, now automated. Control your TARDIM using ComputerCraft: Tweaked.", + "description": "All of time and space, now automated and improved. This mod aims to make TARDIM even better.", "authors": [ "Andrew_7_1" ], diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index e94d668..23b11c1 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -5,12 +5,12 @@ license = "MIT" [[mods]] #mandatory # The modid of the mod modId = "tardim_ic" #mandatory -version = "1.1" #mandatory +version = "1.2" #mandatory # A display name for the mod displayName = "TARDIM: In Control" #mandatory # The description text for the mod (multi line!) (#mandatory) description = ''' - All of time and space, now automated. Control your TARDIM using ComputerCraft: Tweaked. + All of time and space, now automated and improved. This mod aims to make TARDIM even better. ''' logoFile = "icon.png" authors = "Andrew_7_1" diff --git a/README.md b/README.md index 9da4025..23dc7a9 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ -# TARDIM: In Control ![Modrinth Downloads](https://img.shields.io/modrinth/dt/tardim-in-control?color=00AF5C&label=modrinth&style=flat&logo=modrinth) -### All of time and space, *now automated*. +![TARDIM: IC Banner](./media/banner.png) +### All of time and space, *now automated and improved*. -![Example dashboard](https://cdn.modrinth.com/data/xsv4H3pa/images/a6726a966b6ceb6cbfa81d4886b26375ee500854.png) - -This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim), and adds a way to control your time (but mostly space) machine with [ComputerCraft: Tweaked](https://tweaked.cc) computers and redstone using new blocks and peripherals. +This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim), +and adds a way to control your time (but mostly space) machine with new blocks, redstone, +and even other mods like [ComputerCraft: Tweaked](https://tweaked.cc) computers or [Create](https://github.com/Creators-of-Create/Create) ### Features: +TODO: Re-make this for 1.2 * Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using computers! Full list of methods is available in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) (Sorry for that, this is the best auto-generated docs I could find for now). The peripheral supports almost all commands that the TARDIM computer panel has. * Redstone TARDIM Input: New block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone * *This is just the beginning, there are more features to come!* @@ -15,7 +16,7 @@ This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/m * Get refined control over your TARDIM, such as saving and loading locations, or setting a destination in a GUI. * Add visual effects that activate during flight e.g. note blocks or Create mod contraptions. -The possibilities are endless, the only limit is your imagination! (And coding skills) +The possibilities are endless, the only limit is your imagination! ### Note Due to nature of the mod **anyone** inside your TARDIM with access to a computer and this mod's peripheral @@ -31,13 +32,14 @@ And another thing: the method that sets destination dimension can't check if the **Can I use this in my modpack?** : Sure, as long as you don't claim the mod as your own. A link to this mod's page would be appreciated too. -**Will there be a 1.19.3 version and beyond?** -: Right now my focus on 1.19.2, but I will try my best to update to later versions as soon as this mod is fully stable. +**Will there be a 1.20 version and beyond?** +: Right now my focus on 1.19.2, but I will try my best to move to later versions as soon as this mod is fully stable, +and dependencies are out. **I encountered a bug or have a suggestion. What do I do?** : If you have a problem or suggestion, the best way to get them to me is through the project's Discord server. -**I don't know ComputerCraft, will this always be a CC-only mod?** -: Ok fine, nobody actually asked that. But in case you did, good news: No! The mod already adds things like Redstone TARDIM Input, -which let you integrate your TARDIM into good old redstone. Going forward, -I plan to add even more ways to control the TARDIM without computers for those who don't want to code their own implementation. \ No newline at end of file +**Do I need to install ComputerCraft or Create for this mod?** +: Nope! While I highly suggest you do (because digital interface is in my opinion the star of the show), +you can enjoy a lot of TARDIM: In Control's features with only TARDIM installed. +If you ever decide to add other optional dependencies, the relevant blocks will become available! \ No newline at end of file diff --git a/TODO.txt b/TODO.txt index 82778f1..69557d0 100644 --- a/TODO.txt +++ b/TODO.txt @@ -48,4 +48,10 @@ Achievements/Advancements: Crafting recipe for floppy with tardim tutorial installer -Power indicator for redstone interface \ No newline at end of file +Power indicator for redstone interface + +Treasure Disk with pre-installed code that users might enjoy + +Datapack-driven way to control where a TARDIM can travel and at what price (For instance, for liftoff) + +Possibly an enchantment that works same as personal jammer \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index debfa5c..6b170a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Project -version=1.1 +version=1.2 group=su.a71.tardim_ic # Common diff --git a/media/banner.png b/media/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..781ece3a8daa9cb58e05739f96d927e13c60999e GIT binary patch literal 475717 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
oD?;e`na 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%0A@ze`A`Y^UuUbr|u>|-46< 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 YoW7!;c8rLM2A)XIVs+M7C`4?t*K7#^K~v@8EL% zLYZh?k@QHXEmI_~?JMVO$TCVEoa6$vs;5xpH0Fm_*;S}j!7uR!%2fuhG3`+Z045}o z9|dQ4@+^EV(DAV7h7B)CIL2PNm!pA*5inHbv4P+NdN-uu>|YbYahfRJ7d&>b&&R?7 z0~?~@Qg#awQWvtM&3BT(`MF8MdDffvEx0Tbg4ezTW=^D$vBIsEhPV&o!Kb7=x0g%J zC+ojb{2x!3f8%%g5{P$PhLE;M40fzKLJa1M(l!~{%%?iDmW^DAz8i8=^7c#K9s9AG zpQl)}LPF*36QX(9&Xf$1V02$36oZhViL!=)f5y5&x>jSsHBxAkf;m|br&S7=91~OQ zN4nu`061qz;PCJ)5N(~vh}*sAZ4i4jGE=H{meWI=LZ$8 zE3J%XPu>m2folCB>*^Y4EJ5q~Nt{z<`WXip`WJvJSCp;2B_ET1AwTIZz}fxj=}Xl) zG5k}kZ>#^7)V)hr%YyShGDH}_D>YWa*6x2YWdhb$G_YxVf>XvE=@2h~2{_zo(Yj5Z z!9=OmObNr^opjk6QG*vLeS8+74YVGxfAdhWA=^EbaSI$tB4ivZFEQh=J}T3EeJ<*S zcqG)*ouVyGiX-g834bHgwXXDgNFrdM{?-$}=!*}nn;94gmT-EUPCMQr7iS+|AD|%F z;!Y9r-T#im@A~f4qTHa<%t9;yH6q@3Dox4(Z?@^8?_PQlc(4U$2JpU`SBCu!>opZr z=xn1lU7lq@&LF3A%29?GEEv+P5F>1^FQXpw9W`#l@@)IwZQIs5tTgv2P=a$b;wdMr z)k_p7=7)0m0G90}d5dpjsa}tdMY6s5aLam6WkyS8YL;t4d+%sX&#(gHgRBF`O_b@7 zhS`DyfV;86MHnC}eoX#|ud$W22%sS%v2LB}sm9ciuAB_agIweZNK>KxGkk~lJ-Ewh zj&5{Kzm7L~F>>C6eg(5E;wv0WO&Cd0g6@%RoQh|MvYDX#yJ-FO(iUFktXQ%jYRKCYd9wpmVE@ih^Ga-khp?ub3xY!b( z6t${A1|0}&V|Hf1Cl8MJhk^8p;>9|fb>+B5UY)4ZfuDwg1W@6Au!Ia$pL6c)Y)S=HSPU)82wepL{I(N5FZ*I4e1UQpqY0kDBzHPh96ytB z$;lxQhh&XxYDBpmpFwjOnE~Lj`c87*j%wUFC$JsvTXFVoTR1uzQ>HRH&l3(|TI5=2 zTYJiRCBcq^lw+{R8zhVd>?yIfgwJktyJ4sMQNZ2*@T};Hg$s`E3)s-c!cLO$u+$M2 z$D6+6%-@K(P<<21;#O6-2rCFB(YX~Mz~XH{L4dQ5e6{0#cEJ<0P6|q889K?Z@F(S> z!~v(*n=k@)f5`-F(B71ACZlrIXA$nS}aWYxe2_fd8^HEK?v*j z`S@qRu(Ry1x`%PNaswwukSeKDg^uUdmGUz@r1WTTL5xj<>mZZ_?KFUZMe&%?S&c3{ zIK~dJyH6Brhy`l%G2ntVP4{jsqgqk&34NXy#s#Q%vUgP657XYYVW(ppb(;t#z==hD+oU9BLEIoWcjP#E zfkU0KP=UH0;BG?_0ovlJVh^V6ZJ=8`T2J@^Zx7RXWuw4V9S|%m^kqV3a@#;A2R11Q z{OrwuD+bAmy~-#0kYnAe_s-#n#TamfA^qrSvfa}ebTAmc&)dhuATQ6u4+n=mB1g(e zXet5-Gc))aH*tv`eCk=Bkf1Iifh)=$i}{QPOzI9Lc)H|ixJsS*=+LQ5b-0I}12iF} z2wA)4#v};~TjeoE;eyM9Qn-k^q&cpE=oqU|2@SfY9URbiX+HK(ha{kl>eA-FE-1eL zTa{iPOq5c~03If0}C_hJ>uTG4T;x#>**|&#VvwQc*BOyMr2NoZnL#CLh=*6!ZaZk@XsX8q}Pt*mnP`yJ+f$Qlr? ziOULvh;R>i|(j`_=XfdLCy#S<*sEfY2h!<;j!lJEYZv7mbn?6;bz1{Aq{@60w? zHRKtFh#c7Ic&j36>K2um_WN9RvUucr(&ESM;7UYMaXrURLU+k<7>%5)VgbAb1?% z=nyNFqO8I3xT}(s&vbd74jC%8|GA_ecV24VA`3%E2!oi#V*MqshabCT1O|7`Gh zG?ddLe2Kv4=8%HQ{uEe1X`G@(U99$L41X_%!o(Upx*2Oi#)Zu!QZ+2MBF|6qx;0AJ z3M>Fkc2!D_Yw|n{f!--|badqFXF>p8h;WBHPpZ#H9i7<4 zm5b++0q~??f|5hA^Qw4=GI4V_KWa!nVz26axrA~irI+-_;G1+A%I#UM zNOU}Wr1=Hqb*6Q=PsiBJM)6W$TZ{P~T9(f2<=W^x|2>(Dl?Te7%>b%7Ola;p=qt#B zD2ntdJFg{}g7$|Lj_-&-HybRHKkgN2&hT~MdW3R3sq&LyA8g#s>8Il&j7D10%dri3 zb?bQB)5a&c!aaoj{34!JxSPXcH*^dTuW_birV;%1PIkMayLcD)C~%r;cj%eIbsL{I zk`nuy!a5>B0dJjWGWs$cY*TzkyZ7#R_Y2EG01Su4GdN}dZ2gJi0i;dsJ{wwQST%S_ zv4@fK+_QA}5n|A25H_=;HY9_(5>dcAkt)0r(XCBk?hdYN1A=ozt++_?>9}HcC+|u9 z7{(e*yk_GW{bETa*b8OpcY&W=(pxJvm-E@KIK8B@+J*g#A0RFaKJj0(PDqM=q|V02 zLEEZqzw!{v0AGMjOM~0Ss_cbnE#k>N^qOAfKadQ1*(&b)K-z z7QE3FTKzM5044w}d1_zFk#=o|A{5F=Z=djF))U*i(|V~W$k-%irgQkZo>}#h?hA2 zykW2vvb;fSy<45?Tdt?G577F!1RhHF=_W8^{)3V;XKVCK`27606AiwRc|n7Db!sa| zAE`d=%~2`|wi|o70qR-K+@pQ{LCzE1^Y5jA`Q`)Wwu=l=UdwT`*8PlY)01WVn(m(W z5kB~DzaXX@o8r9Ny&}CuKBH25@5u3@>asN}x!3Z@VimA6oo{w=+MbK>T)oqKeM^}8 z!0CIHSh~h}B0tkt>yk7^zV7$aqEqAR$e0dnvu5B?RTwwPI_K$@dcg3Y2;h_NcShMk zSJQdtOCmJrFIQIZNnodOCS)Z&)sHQa&6(1_+LZmOWg znK;7Yu`$;NqB?(5YGZc1u}h}X&^L`>1SL~hd%v@{7x8d|H*0mVTQ)8$RVy{s`tG;dThH_gQcq#8F~YMeio~tt zP}i>(j<@bPYG%N45#o`d(IIECg1!$SL}=W|Y9mC#ZCAjDODUEnWQL{~5*oWLYTXFl z3y^yMP<=Y!Z|861K$$JlSE36FK)I~MwAXvmDybP;t?qc~_)L&>tE{WIW_ z?O5!3?o0!c!Q3zuw3tor7q^S{_wXKMd=rI;s83Ega5C1+3A3i(Mg)EcZTf>jwjuSP zphNCHIeDPzH{FKTifkHJ4mJ$gTzzjY1Muzp?Z@iOWz)YF>Y#MRzR~jywk%^;nej>C zZ4sxa@Jn-mx;RzO;%|F}EHX+5futzLfA1y`ITgH%25l1sq! zi)56q`b4z7+4^4pQSSlE`jb#SpLu)}petl`Kc|c9t-9|R`imY;hsLBDgwSS>n~%+C z-fL6P(kAxqW|bjf{G6G_L_Sw# z_Mh44f59<97FXSicW{ z1JW&SR~@=tt{YP<`UXBaowhiH%}w$1+?=`br}?MeuFt-b$+^yZ`c=@_=XT*tsgpS* zWrp;AMgi=_h$W~t1rB>)-s+k|F7eXo>gnXZ4j~M=wC*eV7)Y+qp9e*FBVT+pDXLAcEIIBg6z7E?MHV_jhTU#th>b~M`lnz@ZU{(`O=(-Wtre=8XA z1lcMI%$KKB^8lj=zc>qcd?;59&JAzNS{eEnio~Hz5J92UEl$pl+VkKqPwW%G&y<{r zr?*SiW9ItaM5dUUMB>o9d4XF_N9E2pWuTeq9@4{2wg049x(*Y&SoH7;Qi7%D&sKJ=G7XJc4JKd&agk>LnG-imc`rc~AG|8~EC zk%bX>G1GP5MR6u<@^!wMQr!|01*Kp?*o-_4bqLY$ zr#yllJCX^#j7|9I{VQvlr%o~QM`rDORxq`sMO8anX~JZGdA2h35E?7_>Fq2jhrCpT zL5>1JNYi>5Q(&JZqa+bLLo&(lr)e#KI6NiPU9$;drbOQynKpmWjwax}`ijt2m{R>x zht}mU7a^83NZkja+2jrSiA(3tpE@9D4Os_}ax$ZqQ#M+R9g%R>&6}8H@4J7{`ouQ zXGe{`er>)HX`2&zh3y0mW8nMuGksIoLoX?Nmq9M5;`0OTSJA}%i)>X-D)(2&6#Xw~jR_D9{CB@L|RaU@EXtN@#?7P<+`82jDVF<}iB=tvX zV%UkL`^7rA7NZDMB;0_<;?%xbh1Adks+yXuOMiWD_=X>k{$gSyB($VsPxwhwYG6OH zW+J2$r5zSkXNt5ti5Z}^a<~eY<>u{7CXBJ;QhK=J@t>%ZA~WL`udL5v8F$}meG2aA z*%hWZ6&=-LKly-)%$j*`gHKYz=3=9O>3h1U|K^DXLH3do>75ANEH0RJP4 zG&A~xJ7Et|-_Smwio?be_y45>CkV?i+q|C@gtk&XUaet!I{$DNdRL4iS#qG7@z7|S`fqkHZ1-@+UQ#|v>`$khz<4~T ziq)7Ndg;VMO9TGoYG$&D^9Ap7tFU$-uT8J7+xg*S+YWSo(fdm&N`w4dB7P_OqtPes z4y}uxI14jc>~Fbb-Y_R2>^MU#8Ch9l$pWkK&$x%IYm7y9}>qe^L=v+Ozm|h|$xHt|t z_d8@G$DO}4Zrwgxop%L0J-%=0&FMsK%2MQo2q*P_n-(}pk_#N4$%YCv&+T(wJ;9$& z*l+#;y1Khv3%ah56`Fs4Y5WqOO!01B&OnXbt|S$Kq&T(lz0O^+1~)p3wl8Xq@2;sm zxF=?jsqW|9|D)<0qbqB(u6<%Vso1t{JEVX`>ASKvM8FBGDNHFkc8iBahBW70K2oE6@` zhbZY;u6n^Vx0&k4{H|_`1s2a-ACla;F6Sg_`o(Kd{0gUL{x;QVw>SADteu%tAz8FS z{N7Fg%f>0O(^0RLSETf_fE>gjDL;aEtD;h!MUH2(4V=Q%plrqI12{2#sa1O#YcXTj zBDNZe0rfEVvq_EGDeEUXzxV&mX_$4Mxd_>;v$KosWU*#~oW-^KU`3v;m;tlXTu}&_ zuR8~v9>jYdWjfQ!o}wt7UT@jg@kqYNc~?|vAK3NH;P5eU6KA>>N!-@j`rirv_+(OBgr#ED0%8naKckn3II=`^Cd(<6Lyq`ez}FJ z4>{SbF-0N)D&Xbsoghf$^q28(zVO%eV{Bw>b|VdLk+g6IsVg7+ypfd_vu)z%IrS?@ z;Mgy$=`%V9XD~V#NzC(8ImaJUI4#SncyHV=mly&XHqXb|oYgqylFB@8H0}CWWxCf$ z@eAj=+nFz|b>E*dCumfqc>jc=_3M6dqtvL)Fn3YJKLCIgiS%@_38v1V3lE%3)yL^( z+)wL)&+Pq9{AkSyt-u~nY&e(e{oGTF3g2a{K*(OkOl4)ur`a?bFw!U<%gNb;psoi_ zsL9kklg_UNHfvAmKg$-w8Es)>ZA#==DF42{E~HY%_WoSb?LX}MsNM60nEP84WPo>C zpa6R)DrqO%2e2=tmFi~k9pC`W3Usx(pEWo9S7rsqSwgleLUYgyB_Y_kQsJ~5Y@%NG zSlE|;rUC6*wOm^Q4DzGn89;C|lJ7Zu%Vp+v01O%>XdznM$r_aDmD27kdNvnt6bW#t zX22BHZAJ!8%W;CN;Z2>%ceHV+ekFf#(s3pSW#spas}tUl9_{VHADyzn$|}*Z*Ev~& zm^K|2%nfXu=n95dpxjBqj$i)$*U1M@y-OD!$^bReEA&|G>2TTVPgsLWLB3(Q+>UcN zQNy}jyg#9!sFbX<**8zS@lf~TmQz^**j=7y$xJ?0D9`FDP_xuugjlt&r@sxk=73K_ zT8%{Rq2v7S$P#R%GHhww@Wf=Wu}mo^3Z8am0hRJ%>+!D~4k*e#&;;S9few{@KU-?j z70KD~MXtXq^UcV_*%>Owgp<58A2(*o7=n{TKZ7x0en3a^q?7jlL0CAWNv4EF9-}ba zT@u5>J7#NO(yS%5tWDt31pn=&Z>Wt*2)z5poA~=J74IDtMxpJR=)t&BJU?hVkg%6$G5;*HDTsl~0k9j(H{NZT-c;2B3`pbPf z>+U5KA?UlcXNZxQIS+^_h3@x6$mBHbs^!$nu6?SpIo}dO!8bX-@oH= zDDuGkl4D%(&NCPr{ek22yu!G9q962YiCRxcbm1j3wWqFH2h1&GeL8CQ@CU1vi+l~G zjGt0DftOGrtAv5fFspqZ*7K+Ca$g~g5o|kMHmZFrq8@2wdQy#FFg@Pc(~Y{ERRHxK(YNzL&YS!-)&t~1*K{x7xD|D@vy3_KXj22hkn zwr7DFG0UP>Pe41+Y5gn9{7`T1Ju01I$!ew7OA1&i|63iCLT48@$W_m!Q!G&Lo*M09nPqQMe!j< zNr3ai(?ZOgF4~n3IX%IeQCy74v^uMC9H_|)XO4{gQbQm((SmZTZY9pJ%I;@7v!Rk~ z>b*aG66k=XkjpT(EudE}7<;Lqi-5X5aJb~gpZ|?Fu~dQbYsp#MA_|umRc*t8e8Ot7 z=wU(uk(50PFZT9o>USJsbA|~B{(EV;VsnSGJTMP<7jsUB&N8IH)cz<6KJ9PSIc=&nHk=S#qpX_42*nF`9#<}%sfW?0qlUQDroC}O1$igPDK5D1~*(Kn#hlqd2{_y1@WjdwN z?d|!SvjL2=MJ!buDc*g!nSoQjWt6Ewb5@s`0TG9vx^N5q2U64^9XB+j5Cf?lQ3th* zLY)(snO#a4moQRk%qAeca32iMg^pjq2M#RiH6FQ)Fuih8_FhQ0SPXsRUoyv2h2IZl z4zo|H$n6?#nte{9CX3>uuu^q_@4hX0Dw;U(-OI&xOA>{UB$H^tO4MJ>D&BEhjlv6N zEI1O891`;MPIza2+BVNL1{QSS6XiF(PCeVLFXK!;I`O{B9UvAI-aUFtMB0Mrzev0b z$Ip*=WFgVR!|xMYav;vKjzjKqID6@2AX>h9P@c!+pL&~^CV58xZbd1XP*seC;+gAC68TE9TV`I=Z+|pYV`T^GKs#Z(dy3oj~Nyr>L#5NO;2vcwcHJ zcy!bg@vP~^a?U%pTwkJ_p)bWH8ynAviw1v~dMJGp>US;kjBk}pidH%xxN%1u?C4v8 z`z+GHq^V;gMc0p+cr1$I9J?6tllq`y!ig}ZnGd?(t<3*sTj-986>UU3$0W0`jgLyb zB=`o?a{R6+HPw-RIn@DbC|5kD`ge*V*}Kf<*FtQ7RR3{bcewKq^lc@?SIk+|Ly9xl z{*w{7yWS(}f?)h|KD`P^esE09Pd}eihV&#c*C)s9&U5d-4EEmi`^J=fjDM^z-S6}9 zVq>iW?|=7o8kovGuU6~LWXK!dE>K_h>?wjS5jXQEwbllBf*g=0CCZFT>A5A`#qfTL zhgM15fz#rOKXa-08BUKcYA>BML>}aHIgVraJ>~>Z;sj>gTs1Fir>y)KeC1RjakCV9Ji=toH7bF$TDP3bT} z<7o_`hl;@z&Y22&HQ8>$F6()~?AYSR+WpXQp{65{a?Sn1=&Mc(u*O(_9K_~l!=055U8Qrfk?(#Boi@qzqNQt96heWkIeroE8%I^Up;ad9<|5wgh{`bAkBkEVEQ(`Xj62NW6C88C@c2rRVqRE}>jf z)GpG4k%}lCa99$d&%IpWA6)A*K2fd?JrL+HbiP`TF!>LCgMrhFDEegHjXPgW`gv;L zza1jC48rs_vlQg1_r;@Pbhu4=d#7Io1(N14sFJnr_AQLXLDgj$X-2t8u%1U%B46d> z`bNJ`(f2ncT+Y$!9>xY7HuwndlSr{+ZdldP3Fdv(-W}6#Ms%I-5UNE#fP0~d%)_m@ zW+=v<$!S&oTzRzyh+>t8#(1Zn=*#sl%Km6|U1;;GQQsNJfF@+^8X;dyGS@F8Ar?&N zc-^m*QRG3Q1PjN69?!!S1u4SKle}0WlZBDgcm7fZ%!FzGCf?F{={m!a_sA>jV(aBhH}vTpbU%o`xUVpCJ4H zCNA`V#KpJJ@dCewD)yB`z~5-fi53Kw!$lv-f8{wF@=#0_qTAJbRoydb03*zkfMVR9 z2C&6XH|d+~leHtj)E|)17ZJrz8LYl?M1*~bikKEA7$Rv@@tF9%Sb+vq0__)~LgnBx zr5}}oyb*Z#7>Mr>OgM|3b(mMqeBCo%UQo3Hw+T}qp`{pgY;2);q1T*GAo$UWV&(<5Kbn2zkYt0eW! zO8ejZ3_8gDlFQ3rno2+4=egIE4Y)(i_f*a*P%6cKBZ&XiAGRbzDz;h8SU?`wU9+`4 zhOrGX(U%VvC$e{5BG`!h`I7HQq^9ztEr3nRS;Qf=Q-N~el!(I+5vx(Y_j?_->`#if z0Zj`EPx4!UwN8ydZ#(0U3;EAhWPqQJP6wozBpzkf8#pwD{EaR-;6;he*ak}KQ8ue? z5sL}iN~f+Y>WPGmDhq6+esk!Qi0AU7=5%*>Cmu@Of;(15K}a}IYQQg2;0~tc`zg8@ z$i8^PNOXTv|4tuF%mv+0CLSCSX5L+y%MABXjV^j}VkD98`7eGzYm4iYF8G(%ZYy#* zwOmQeljP*S3f*S?a~Tm8l`eu49(NPioTLk&&~7>sEV|h)LaV$@(hbncuFuzONihXk z&?L^AOG~0|$cc&#Z{l}|KZe zf1-Ot-;@Q_pmH0jlPcLNz;oHDX39NjR{M>h@<$20x0r8@EPB^-aQ!apAaY%C8U^yT*z@LwwikyjkfQET#~@`as`57@#Y_}GSy8|9sV%TXZp@<0UAY~ zu6I<%q{Z5-m9)J|I`g@?QlCWv+aTPkPm(O3H7llxjuG?SbGHP3a|*Nh%MDuleX?g0 zA)m?1)Y{=xDkN=xQE3+f6bG7szpk54M$aE>%ii(~KS2J#zbXEsy7fYP4CHpcSS~%IELPAKF!7kFG8-6RjBa5E0x}ZV zL-l7_(XSqC4*0eQ3nM_Jagm6%{-?j? z7dAX|e({U}l@NZq@KKLp%OUPl=&vRGCIZmCCxJRx)9h=4Q4~3M6y9t&hR4=l0qK{a z6SKN;0&SwGmo12y|{KnvMw2zpe?aXxQN-##vo=0^u z3-8&?-l$$jhm0ukUM}Aug!hf#$^p<6n0!>M3!+X7_Mm`Dnt~rLwm;Ej9IkSU5LFim zYkSu%-#_*ncq1G7Ho7vOL6(Iy$m^(qa=e3v$7(7-7!KDK?bnx`ph2N?@mrj%q->68 zaAfA7b7CF9VFDR79H`dtL&bjXr~iQ%sccBb>^-?tY+6hyARP&%5VFZW!17jiODS+9 z=h6HWPTZYkj__S@ibomC(an#d6R2_xiwsGdYj&)*a|wb!RZ5P--cJEtH9v7&m%qO- zh`j|?pwZ{(t1W1v3p=Ef2Ewttu8Bd$J-G^7JmuC+DFha**IyBNorGZ2xDw`Eof2M= z=Pqo`kej6__^-OcE5B`zIwFqlr6%C7*!(!b)%hIkkvc&fNDy?MBniu-aZi#~w4HQs z8&N4&>mBp#DzDV}+fatK^H{A9Iv-2xpi^BIxRUf`!o7VcsL-?^rIUnJfz4X}S_f^c zZ1CtJME8c@9GWuY_!;ej+}sWeRa??5RJHEbwfw;p<7KTm zMO5^w%SxIxlEQp12|{9&qynn!`0r)xkQk8yc>U?i;dc`5SSD+)BLOM=72{X}{WsvZ zM<00qxj3(`YGz_`BgVk0APUg2atpWCNN!}U`vt;o1ujH5}E z^G0l-rf{q&v;D?=Z`^Jnd?f72C|`UsnB0J4d}j07?VA=VBrN!HRKf!&_0=3UEWbyP zn2CQu$0~t;QKB%R@%_HEr7Ga8K-t-)@P$G}?VAHF=!Q zs$TEFdP|gr?@9JQU3RqPeXGFYM{zdiK75a*pQ9=7icBCtsUVO1mChXP!p^_?>YIKU zn9#Q0yPnBs7t%Vs`R$KGV;Ab0l2YYLE|(dcs}oCdK=SrS%nDLl9W^{)e}Y%I@Z?G$ ztr94De#qAdEFPYT^K-cT`kYr59Ksq&k zI6POV5Yco-%U6ZKS2J(t0cc3S3iT@HwgbP)BAOiKFo=11n^Wwikx}TsmMT5=gVSa1 z=bJkicl7!z5H!|$90tbtdmRgppb(X?&uH-YbI7TayK)n_n{2k=fs!rg+v6p*ZG3pM zwnUU)^|lX`*L_s1@S#R~vJGK9B9C~i(aBQ2oRHd6QU0)_SeVw6`?xVJt6UKwU$qHH zFn4x`5oek=K3GBDu|4>(Gq=5($LsD>7PTK`f7y>;zo0awa>A7vDuD?D-Zr3zvzYA% z)Cb`I!+srzE6x?zBm7Tz{5##Cnpc&P#6RRt=I_>C#10%(36#joP{}weI*^gUYNK9A zhKArsD9QWJ=dv$TWsrx4t;$WaTYNjChR?Ca+ixa7bc}A^_^v z)G93HPZpnZ!V;~t&pl&#gX#$$*WzW;NXr5if+^R`;CDO4Z%|y56Mx=PNc!H$7-TGn zO~oXiMSp6I!FNIiv~yBGqp}FHB+b+rH{7?;NDzQY_C{1xLyvP$-)E*MTofp_AG-p5 zY!a|g-XN`1uDhrTdyRaB8A!~wKP)vd7T)ji#6We7U zIJ@US&sU&XvV4EKifIRsa#_XR>xk}1s2)O~vG7awo^vPh+d9M$`1sSXxk(&o#t{{NdB-!WM<;-nB z=H81IEov38Z^O(Q$MdW%MJR#Y{>+4zq+h{vwMVqZGU#G+k`~$~P}!M&!VP_5)P4)! zD{xzOUT3<@eRyf_jGipsfmI6`hR>;}XQ=@ihh(hcw)3XdquGI$q8Ea)pW2>Ec$ZyV z7hmK?S)h|oGbXu7L)4?OfD4pU?h~*~lB)~SC<+mYsXAH>VzmJ;ch@WPi*RwIM2)xM zxjjKj(GZ?^&NxbMZCoQ4Mw~8!L8%gH2IA)vtj5KO6wv2!vYjEKlnCI z{@pwdD^o2F^#g#5*NoRb^6?K)a_87ZG*5JIR7fr0wS3sQrhl|cu-UABk9?60Q+AQm zrNe$*K_Uo{WKV{lTrKYMdCT@|0bP5nq3}K(K{QP5>GTrR=%FAX zb{_p1=ZUnwYCNmQ^VIQ;l#W)I#!QjYJP3>*pNe)@NWPHSh8Omi6s2R2ZW9xkK$6-N zh{4JIswobfD3(7=F>5S(~h*YoJK&8abde9fUQx z#=@{b(u3zDlhZ>w|A0Z06qLQdOvp)W={TBQJIn8=BL>PMUa&z~mfk@pFgB|dIb}N@ zgD!&dKw?#F?<<}|RvK~5135rp5-5JMUUoJ)OBKvCJki6ry;5vAZ!7-!#)mH+oH$5r{I^NR4G2R1z(8xj-ec?6i?%k6(pG-1n4%^AKg@~1HrM~8_u?1 z-6DC;HTPZoHn}>xis0&fCH=hDcIq5NC7r~AE7!wzhExs8_I;HA2rkpgnIMq5ZsA!& zMbWwb*&mL?qOttZ|76ndmk~ct#PbseOCu3?p6%3aV?%uP>fh8w-;trKXM0RM5Cncc zV$4GLx-SdnI1-?%{s~44ZqR_OjAgC*mv3+(rB*skqP?rmc?;va442x4H`=vpS!daf zqZ1~m31w4;^mw;Ep5-+d1VZ~*BW!Y9 zA)D>JZ$h8iAPHw-f1i4^&eegwtTa#=<WQNjKq3^dj(MM=K9oFX%SPr&N2z=m z&LQ4ZY1wX$bWk((u{JHcOAw84YpPGgr8)a$Bsh*>h!hr6mEh5hSm#}QgiMBH1xyoa zkNnlJ*qM6s$(N56$sGKby;9x{TKjj-j?7@kmjWUw6gh76o&aow?AI_xM0G0*LbEr@ z87_NcO1+tGB!bRdz3iX7Wo2PfcNL*kIM%0%4zu8<`_tpRw+mYxNDT?bFX7O}=O1(r zKYsjVScHOcx;(w2=}NMGr}7)Tp$tH=g`L{m4H0Lm7r%-RU>%*bJY9!hY==`xQS{4@ ze%wK$@#wHVQ)^K$%1ecAYQI1<+@2_M8QP&=Xtk7>Za9&ZIZ#0ty{QoEgs<;22SXvp z(;}gQ2wV!n+j7KeYQ73SaD9hvx=Ko#`Z4`(7z^^dXQGT*gRL9o^e-y)kG}F4o`9-Y%%5ww5za<}k9_G0XGp-xeo2|5WixFEb{k;B*%lx^n`%K@(q+^WmxG~b+ z2I?DN@uoua%C!X}^&vv6*~mHi&|@TAwB_#kzeb{L?!d_^2*V#_B;+s*S{nqo<6|^j z(Od6ulEO%)l}Ho8S>w)#F_nWsiOZ(N0!#SqmY;I`1gkt*zk^`gq}Ou2E)P7&Jc^#q zwEGR$)6Hoe(iwQiGCse7#O)czDj?hR`mz~+omDUO#OAm)S)5I_A3#-KFipM|sr!m! zm0GczVhw>+ZxgyPCI-o+__FFkNyla7Ce)nABTOSYJgtxX0;OBdCu0HJ`g@pJE}4TA z#XT{;PYhR@3&hVkUYB7<&U$Geaa?Vqfb-2!;3b}8O5M0yKnLT3WULe>9?bR$AJkdt z-g@P2r2bC%h4*MOAx>B{#US_Vfz2DHdvkBfAohrc#L#Z&%y>%fDWZlj0yi` z=LM{%W~{l~23p#;<{e?lzJBdsdvt$>4i(TlV^WJms4t%59R_x^8|Ubr31(ZOxq3X4 z;x&pe`2pT8`W~9VoleHkd?1jc<4A@BOFxbeROG?FVMRv0q51F|Q2L#Oeq?xK7kaM$QW0 zF#Ck=-E2%X5(N^Q?vF@zB#W%)U$a2sLzFuq9CKl2i~&(jgK~zX`cy zjI?vjlscJ5K93$1{RZTW<@?UMg$zX>OL@}J7wM%4h=V9eD98wHHF;UPazr2Wi*r$23rgRPF_JLXUrmE#Pqsx?O7Ck znpH-rrB|j!Q%i{!$pi(kVD{YT-|wod1`AlA;0^c0kgUL+ptk=E2ng*hIH;{6xNCxc zxl7cU5(_Z^k8)uF17D{Ed}+T8Lw#7@f{MaKK|t%mEKFb>xn{B5F%_@g+a%PEAH^yP z$nBd=J1B($mP#pkq}0=k!2mAoCvd2YWD~#UGdJN4I!}?Grnd-|ndj$OAh_qe?0W#Y zq6&=Q^`Q|1%O1-ZJLJSlw$9$X==)axQ0?n)*?r?}{bu0B5xGbwSg+Bl_mLl>f!pL* zoov$y#VRkgPtsHn25+T8_7%qBuK{bIyf~Vtmm201TPHa-9(JNwy#-kIeF629KygaT z;F8RuhR_NLtzf_sC$P?epG^r@Rgcx%U~E|y<9Cq8v3`J8ULidw)Lu+i#LFKJ2UJIh z#Ts4Mrxs}?ud&~$ZIoJ~#E5AqV34%o%g7j!f;o6>Gp{@z3HBl^`=T{ntyBh_&E`L4 zO5t>+gl9zd2GPC`J^zriD1B7A0KA0Ae_Y?PC{an*62YH2#YDI zTP%{4oEjXt$Z_Nw0;mMhiSn{Ad+E?Aq!BP>M_SOCGIWNGib`8MiNq&+Ty-ji{i$rk z)4)ynOWDnvl|Txf(i_)B`R z=|*vKYravl)JH^jWb!W4WE+l5`=$5-d9IasE-y4G z4{~qlTM?&m@uBn72#UYdhj|#Aq3*4;su~jVSpwmxqd{3=yiB~m2FQBKJOmWcv=bp{ z{Z(3NaBAdpE#MYv2SuKJ#NH;cL?IZ8&{xE-v?;U$sWjuKJ71t#YlVOTH~2vpF0gU_ zXDiNruw_&oDbDG+s{p?6rJ?@ozK*mhs4$dPl-&3-wjAx-3=-jTs&^Pt+>!XrUN+xP z7BO5$VEbxxUV*oQ%Q&~Pbe3|c9Yq|7Wek9r5{78bAqZ||PwjH7kZ83QD#zzt`nea$ zr-DX#QUbpG^O-c^b&q>SsMz;etG~`1(QOz%#0e_E)f2!XZd7oti>_U2el_Bt=2R%9 ziYNA2vEX9gjx_V|hKIxM z9^Oe*&vss5vdxa-!Ox7ilQU!v5GSeH3)bY^x`zYdsaYNZpQDOn`=}q60z_`IT&B?J z$lzCkuQQ_8X+x;L)$X}eix*>FN@EEK3$2NzY`!>rF~T@!)M)!l2XvLg&=4S3_zO$r z%H6T#G%?da&XCVbIc&nv&(bV9-4vmKd)ItSe}3EmYnVf-2y&4f zEG4a@?kNPiY?iAM*l~6LOH%zSu$qHLfNs_}q5>~P(q!M!1=vrh)u4v-@Rn!J^Zc+& z^m#TS3_R<)L4Y|X;q1{6a=0-u5TTd_EAzHRTIi{8niPCFWV-mJM~V_QN|FX~S7cp= z4+VjsnyRz=Cqio<3&!c~LX6)n-5|cZ{#?!#OKR1HB4VI}C2}Q7<8WajLB{j69==#UvM;BVfxE6$zCSdU&yrx~hm7fXM;7yWRP`XLfHJ@$| z%fQ06AyA_2u5T=(dQWD$dHWJzKM~(1V%eua_R%6PGo?EG!-$%f0LvnLAt1By!@`rL zC%tW=Gbm5T3R3uM78efz-Un-<@>SfkqUsJ-uQ@io_a+L0GrbS;@u? zPBqB#!J6~aa$s_gTwx3G_BWIg@Ejbu8+H+Xz2+EKgW$$bN|0}P^IPv4SO}QNJyjcQ zr9{Dy;nqiorBw5Hz}<1pkl|Zg5ZnC=Hx;7jdpZ%IY$icQGIpgw?sm&c`ZK)5I&R}j zU3wJ@N^dl$p2YjUW+pD{VLVl+DV9MXzn1+St z<>#+GYWy@>&h05Bgkd)_^GAt}RMI>UW}L@eaelkFv{nL2K93zR=~W+1L_7_cqsj1v zA+#&9=Lk_G)!3X;U=QPgaKyF4XfAP0^x8XZ%t z=K^3r@AeEH13J=rcev2ov6_H7FG62)*Ca^2bnq0HEZh!v-E15C-~NmyWg|OhWv~A! zQ~VLy_C)|}%%|4z`Kr}`XLwKbrH-(fe3Zo*BF~f6Lzo!oa;+0`?*r|H2a^l%M4(i3 zUcWzvOC+5Uv&hVQY*7L6#S~z<7WC_bMAQQ8Bc_Z8Jgk7H{~$~|@yWcUV;9p>!`I>> z&eHaya44{lb^}R+QB&B~lUHTW^v`L{U%3OoB^`^L?HVZH%wHh zZ4A#U)BPV|(OIyjY>=^h*Lh(i%LjCSz=$xNtL8uAc-9ch3fhShFB4;OQ`W;9DNQ7d zC3ugpgQC!ILoNN-1@2n<*@*3TbdjBt@45n=eBaH!Kw`hnw;L<{Z~3(sh+U&+m0Eq@ z2!s3UKH{qpiZYcPNw1vMzeV)w6}`;~`MvWar=GJ4E@7>ni{2gfIP1USv2kLUc0??& zi*7c|pCf91WY08vZxRVHu&fOClv?{e2ce07Sc-bmd{4~^KkH@5!H zkqo*&pecWrO}5<1nbMy1>gRr*EwiSEH|?jmQU=XIC-dbi9|po2BhOa1)}M#GN3 zGVleDG|Z(q+W1GF%;sEmj+Ls=+kl8)I}G41Ajn#I;3))dGcx?0B?=noZosgGHd}my zjI_48Z)yUBBAf~R$RI@x)TCq}@Am^o=gG~r{dFkv#nR!`hlrDDWS-&{X=9)}!SJCX z$CW7%Z6Fr}qojUt?F>pNhBo}_DWC=Jd_y{cJFUwf-h^`2blF@6nR|5bLYHslfy_zd z#-W0NuSo}o4rLFg@7h~oe!i@1?mON7RFl4M`IX@tUOeHrY_t7|hJl1=ldfR zKr1ovU8_sE5+MJL9f2p>H6RdTz!LjITO7j;0rKtfO}byHpSqHnnRe*FS!TAX0& zms^tpVqgiXtoMjQH67RSwEkr={BbLt!sp~~XiP>W@KRBW!khOm%0=;7d$!wO=p7xO zm49@MIK95x;L=X+_KRhR(oA{;E7O@xf9?ZQ4O|@v@cC}h1*wJiF?pp!cUBGia1!XW z@jp3S;V@z&AhEKC%6<~g$3w?wc!WjU1h15y9E_?7vn>5YA3hQU`8rZDTZwACvA+s_ z*5C~buY)$FtgTL8*D7Bfc~^op*SsX|@fK`mL~0hk9dYrLNXEY#urF|UAq#H0r)=jE*F2LK-h;iA?{zO(E*9}17josXV@ln!QP$ z`9_*1jV;8Gdh`K05)aG>W04;21Kbamu?`;LK2NT8;Br5=k*OVaBBQe*Zf>sXN7137 z$)386Vv|IWTbq=)w8YOOQ(XyZjR!XLuC_l+K}s3lz#C(!{IbB&YdVNL5#d*(S6weR zswF$OaJfv*ffqCk(^^Bdrdi?rAywKBFU}r}GLUuiHv7$5 z-Fz6e4O6Kplo9`K-$m6UbjB?$HD#kWq=Z)qL^tiAOy5|d-m2|5FH-3BvLB{JO?SU8 z+PY${;<8{E;#H?4GmwBnnr!&PY@3#w^N%fk>Zh`$4bB4|$s zX=m$2(-#QxkU=~(4=khqu5Yn9#2s#e?v9fEKjQNa*aLEMO$A%P2BsfhCPJM#1|;+M z3E0#1#Q*HA>Z$o&qSV5jLHbW0EJ4s3c*>Jl=X0&$mMS1ldkan1$5Zh~5N##SXlfFn zxL!wZ8Z9JDZ{UrI)orxDE~(fUR|Nd#Z6mno$3Ce)yZf$@yctDG_q9CbEj$`Dw*rhXc?rUSxO(YhRD&vezSuKDv!%_nQghmb{Xp$>;-4 z@z#B324PQ3+7Oq!PRk%8PJ~U34&b!Lu0fQ3vI1O*U~#-+aW!~#Bj`W>JTmLLA_!B+ zA;q9jv1`b-Q;BDu6`5iEp^3k|3sC&R*C7I-NA4Mr(*G57;@`dEJ}Z5gavhOp@^(O!_4s+WiEk$sR1;Xd6J#}}g{W5flLAuQn z0=^eQksDZg3^&{2ZiQLc_6XN%f30-R!H^0(aP zQ%VXfZED2i7&da^cgWf51xuwrW5iAvg>6#C>s}LeoxaTqjlgD2pnOgOtgt5K#ugCLa3yVp!+T42}UC363r(^;jM8Q*6 zJ?sT{RFQ|B@-C{hRpcd0&A8#3qFZZH-YRxo6q=b zi99{4l4ahzDRbj8shAZta;u=o4hzS$DT&vMedhk%M z@;=I@{usjN=&nmjN96}siCL6yF8Mvsc!B1O1K0TkB>AU81&VoeLdp;^8AGHB%|Eb- zia*N-(N{&89Ml(HX?dQciQ|$@H>F>ar@tGs7!EKfd6ELxO>BU%NrHf|VWWgar-LxF z)wq=vO;R-nJfy1gn-`@HeW`sAncw(My}D)&!%t9Et&^1TUv@jM-hu zCDK^2!FE+KSPGB3OW$(VoZqn923Q^gm@O9vyo;Q`CQhuP%eu}tr2a+yZo=#47)eec z8|GkYp`d|y4yHt${Xt-xk}(1U6Zxa-o2A;RL1tCaYS~;gobQ%Z5rDh+kM&1f@+ptL zEwK}5yyod=$xduW9by^e2z|GjsIgOcY~Nb}2iKFNOLb&Y%Up%38{UX5j3#(1Cm2^F zzMDhl^4&LK2d6%isi0Yhu{k$<;Ya@Bj^Mg)V>)g7^mU(HENle~mgzr~KHF;8&wW%@ za3ZG1i3-&jbC`HqmK4(AX4_DDxjB=n$MOmw;h^QEc*u#IZuH-C7J zN{q#jvsko65fJ7DrTd%jVTCDj!I0b(pK5tlNcuGB7J@P|WS8n6+0~)6AT_{x+`Gjn zx-?t`W?p)M1D{AJF27BgH#PA13K-~W7XKBQRb0m7;bl<0umEZr5Y7?x*94vn<{OHJ z-$ncaLABUDSIpjjV}wK8bb%>|#n5kL)I?))|0vJa?c*@*N^yW&V1jTLm>?7m#Gb}j zCK5snu~&RLwC3zW_^#pFTpF5idi1|FYp-oX5{>p?-{{SQ(pC029N8d-G>0q+3Bu<% zHvqSIZlUq}8mS#ShHk7#9jS`*RuR)qSBCK(nDgFnJ&fxbs{AaJm%sBz&Wb1N7fB?A zN_?Nri1=J2DijD)LzbXS(W!5iD@cTB!p;|B?>g5J9=!cSxhIhu-G zT4g~v;)=M)K`nAmVrO{EfXjw4On5iXGO1~~Wlf`!#00v|QaHW?bZxQk49PyQDkn!b zO6snRzyQ+;eX8u@^vw>2XQoW0>}KnWC+_bIp9GK5NSA%y~0 zK0pe-FoWO}9uw&l~X>>{&LWHL;dG+|-^GW>Po~I8fS$`3pcKhUQCM0|z7ar0{cEzG!Zq zNe8oKjYWg`i78`iJkSNNc{FYUN8I|-2(0gJXHtpGyg`6<2d_}@$L`=4;`z<=1WB9# z&jqzsLPsb#7Wlwo#u(82h!4Cly#X87%t%LB!>uNlbnrdHhg-!ZL)k`5#v?=~c&0@Bo4cXoI;O9 zzBm_wQ813-(d;28`(^QTJ73jiWKhw4yi@Lc<$TlzlnRrgq9_H{GK(t(u0r4b)IRjHqrf5DjdGvh-L(VEVmQ|vY>z1tCnX_~ z8&}#HvCn<|uej_HR)yr2IS};I_17}A5zOLG8JBP}<}HjtUj zf%iH7t@ze@1Wrr^0YNlO>t^YR`VYA93BElnPwx1mjxma)`|R`WxAPL+o2dljE^t-s z86dWxZOKfnd~3rq9*+Fp!h@NfI5r4*ZUk=92|62H&N+||RYrsrxku=jt04%rrx;=n zwAe^UtyYz8HDU40;>i0eUGpNz)67hbb&dVlXE*Vue5<1k@6r3wyW|ejVX1am{lqO6 zm#t9qTvKoxr}yt!uQNyC%ncGvRxgHMf6sKs$dDtS=a&2u^!p(0X&PP2nh5?aa4M{W&&%q zN}^Ts4}aXT&UV6l2L*Su`FlfN%~AnE(jx-sc`wCo5Ze%pQW@~M!0-x9P~QU>cNseR;-<# z3R(V)!ROEVWclL5;T+1E{B3-o^m#9e?Zm_Zpu;!0s$pH|GUuC0{B%UDn>blU8W}s@ zQK%_vl|j-9GHNNQov@de;Z0k}N~vTX#d6~rPQaF=d=Q$96#C~L$G)jH-ZUR^;zkkt_( zvTEeA|5ZVbp4TtJ$+CuQ@uSF>?*oVbcEK0aKBGNh9l#J!a20hoUBZp2Lu4EYl3iGN z@(937n4O|Ht@z~9Gg>Z3J(c%>70 z%&QG%aiq3g6Fv`P=NRd%w?GijP_mt`Yu0ea<#J$kq_*6L7Z9Bb4kuGf>?l7K6=}s& z?~V64pI69>EIE?>mJRht1XP&HRm~%%PF%> zt*Sq-tHs^6a=js(0Rd>JM8Nq-Lrtx%vVkSpeLGNC%j^?J13&74(y^G}$mI(dAA&OK zG}-@6;BN6)SmBYRK*UF9N&^bSo+1tt+ZZ z&TO?ra6xaQN&L_Lh(`h&vC|!e$|YlOzGRSa;z#?SCd6TsxNOM|-?lU-}!J$MIdN7k@Ckx*Vhqnm2cbR2Z{$m<27 zBLb}PlJ&eyBL(hB$$~fmkFyN#v!*tkQ==_Y&+hzFSGVzthJ0bdR6d(0x-Q8?6wn%q zLCw^`cKI=tWD2jf5-zYH=70F^UtX9iKtPR}TH)qTO47xf9eThL-$6Cg|tqOl1#92Y7pHAmqda019AyE(nk5xOyN*ga}^TVO!Y~i~W41yr? zOAaO_E7!cnx>~5c;yuogH@1omn`rLB`)Ko)CfD!yE?wvpWP!{RkwUM=GJR7hD4x5m zn@oGYy*rA{_`)?(lZofKBv8t$BSM-zEmFNa0_6Az8Tdb#0J$!3IDk1ziff^cbmg4) z0=fn5v;}Z+!_{XJGRch%-<3OQ9|{)>99A3GXbvme!J1IDcHRkf{UBU0+O;fGxC~9N zcDE*Fy_JBQp3fc+AZdSB2Cn;Qk8=Nxg5wEcTgHYmuSmt`+vVLL@Xe)cm)=!q0;QWWK25=>_ zctTp89Wfg{(ptymxcZw&r%G!6NaloZ&lk;6hjT`7IcTgwwVpYA%HYziOMNZkV8r#` ze8b>i{iaP`7pAN0lMBdAG7!sEkAk@f^SpcW*ZO>SuNNfU8&7lH{1)iqnZqZuo|}HGIKk0O%2Y+LXv1;L!S5j+BOCVoSGI=c98>2^A7_0hy8y1}qzK!z#+I$<@IpF?0 z6nzZ#C2i~{ij!snk$^uB?Q7pc-J8E5{Pf&p0J-P$$1l5u2h+o6I03(w=ky1IijueV zU{J$%L)TsU;#>5Yv%Mzh}0X2$ZeK`58WDigck{5 zRnOWrM_g)}j{^Jt;fQMt@a&NHUF^?9<~TCQkx8DirmDy=m?H@kiJK+~I;hN=QG$8| z50Ijm(`r)iWuO!|{>UO>ae8rtrot3tq9*)j&-{a{_*HP15rf!sqW7?N03Dx zAozt^@g0pCP~P6i0BpPk3kJankvn;BTQ(z{d!1Dum?>aYl~%0!oc?m>6V%#f23B3q zy%b;QIS9g<0nB3sM|C~*w$$3{c=P9ZHX6JN#l2ymfmVBqL8~e~%G&UHjO)#JK0)uT z`ph|)-)on@CD%I#Sp>L8_#nS{a1{3ZcyN^Q(XuRZIY=&{|8dAh7k-K-fZVz6w^)&J z&#d8ts9ik*L0{p5F}yaB&F0j+WDCJjwP5aCdgqNd0s*H$b2#VMKcJue_%NH1p@C?i zJT&Z4s>%QwvKPc-<9j8^!S~)Vw2$gfMb6T>B zJqM5Y<-m6ToFRZ*n*iD#UZv^n%@&}12q5>k`s9}+HiBQz@dS>u<}CSG z`(7YR+){fwslDP|TlRQsTL=B+&ZlU_>R^0k{^0_#@z-?vS zl6%;LaP}^__g-3Z_uW3R%Q|L{^SA9gbIQ&NWxPT}b}C5^%WCM-;3R-qxaaqB=zu-* zD8qw`$-||N7^Mh+mwv6lcJGT4z4uWkt^KkqWmqWckSj`P!K%`-`6z54>whAdrAtA-2L2elSOWn8q<9Lc}ZY2-vb6vlb$>P!ik;apsa)g zw4c5`z$|jl0BUOo-F(-R+bn#lw z%<-8u8Z_%W3u)H7>db~DoIU`@|8nP()V7TVK_tBdUEVl-=1jWvzWeO8>`@QW0~NN* z*ZF%HQyO-0@JqC(lhjDJ$$0$s0^}Z;HT;#h)LEgaT_MUEHG{H-Pi4w*sT0`)-B>gl zrTg!?iypZ1&OiWi=qbPX`BC(npC3&jOWpd^0OZ;fMi5=@q&+#;cW$}b^unjG^m$o!Cd)VyUUpj8=NV<99B{X(a zp=nR_D}&tF6Fxg8?#XOs=>(Faqyng?)d&LE1x{?wwuXo7aR|us^Cjc!fnwb>E*W9U z9=(H>u{julZ_>4GXNm(jc=xTh(&G<47>J&Q`r~uXJI_;@hjd`8a=*eYSE?!}33S(f z#_WOi`R?AYFC$`#dQsBQd#gXEo9}!wkfb5Mvd3e?iZSO>kxexgs(rrza^oJYFxx`**d0BT zlhejl?ne`3kC&Cv?|=JSznEovRidY|d-^VXcf$s0eXawiO`94Ct8bzn!03R0OX{E7OpNWn>SE^{909|Yf@d4fN2GG z%ccEx&2xQjrwkw$OrTcK3M^}(hNcwK3Z!r=;b^gi3+d1!kFeJofq|&lYjUunW2wo( zlyb6+5~HySXIoznXTtVu{)!^4sIhEb_TB+<4+@NjEOIS;i|$*6oBo#v?rr?(f!*tQO! z#-j33i@d1FOzn>~qZzsuLtI}YEN;V|g>?sjv3F}F^=z#)JCpo!EJ?@My|aLWP*6`P zM^MUuYt6$M5pSSZ2hBR@)`yy10!*{c^`I?m-QwNH;}$JE*hzBMTLsN1An<6+?B%lUydc=9Q7jj(IRWz){c5I_^?{ zJYoP3GzY|BWHz1nqeE%V{~k-3VY5CGKTFKaVAq4kUX0Ka)2HEvNYaf zTtn91`@IMb>(caogTp7LYssFk9Uj`+x2=0^FIRgzH0M=gg}b`s9?p1uQi-MK*K@vW z0QtiY(fEmzEMux@&LHcY?$;qKCiOt|M1Zd`-D4<&Jjs37ew!(S+^T9NvI8vZ3HB8N z89Hll)^^2T7PyY6?>R1|A`gH7t*Dv(17{3MEj{q)OM%#7tf$YOO;=raC1rM2nW)BP z_DYngb>9_G>$;%#Ruodgxs*L>24^kXw=%)r?YP&Q4jsXMfHOwWFU#2g+Y`=hI0*+#4T)(2eJsJWE!Y`gT%0VaYcB}A z;Oz0co}v{2F)rHh0D}yrta4bVrZd2J&P53&OuINKF2+|av-x=+J74BrMkV97oA(2~WAeaRkIRrRZkhF%=aE^iPTIEY19uTrcIO@N(Wr0P?l#y6C-+ItYowDQft<7qWW#PIn3z zaYQ2yo-$>4PgdvwA_X+-?vaZCz8HG+L3`xUp5M#$0FaBjEUQZ`PU^o z$4(`gfh!wd_sbw7r;zeW4y246GmRLWO6?W@rM|9K(^S}4T~G7={4i~--WHw-M=cic4ZaW<9?cy4S5uJKfjbc5x8Oyj0BVCS`KZLRnje7{! zjWIT4n6_8ELw%j*+ESYvn&|39_fy4&I=7#bR@Xu41i%UUI`dG%xs4zc>s*K9K~`&C zr^jz^)W(YIJ85hHGFA>x1q$&5&=$&f^6kTrYCDZivs=lq&-MocBGKD0jGtlSHNm{5nDgJ>|8PJ45#L!xW& zZ^pUcb&oMW6LT6ya{nHq%0rq|@N(lgH_IB|n$B~!-IqPcSj^~jAal$}onGY+RvR=(vd zX{WZ*w=kN19P3n>p_33biN523V%!+jY%QcAh@3?DWrV z>))hkcZaF7^;@>m@2*=+o9d-W00UYUW5$l9TkpGDTGer(fSD zb%+50dXGWluT%GeKp zN@g#*(JSKpWdEWq2`A?Ni0w_<_5Jkf0Wm0mUj6iwjv)l&8bJ%#K{?}hrEGyeqjS?| z)Ls8|VB`b*;rcQR=N40V*ksB=X$~;Q^|t|xJ8V3goo9TWaUF_&M<-(~f~DvPJ5Lo#CWQS;k2r$}FBhdCa0?4)E?p_V~ut6pa{5 zX{hwx>M!V)yPgU*dz=|%W4>{{&!LcZ23Q*hvY?N0KN0?pAZ$&akl74gH%{@KSHhVb z+?G9ZdIFXWeQrvVl%iT9fF%gHqO6?$aN&i1WsgG`H};iQEc$@Rv1Up-VSZjm>brD( zL0*WCKca|64zv4YWx+uy0m%7WvF~@NKmOdZRzf}Ulr@DaLcQwj_bVzYWPNZv@%Aq% zDT!v%vUG?h!G!pUY(hxBPUaRL0?1P{C5wuR>9VWm(ox4AOX0A72y*5j09pqH79fn9 zs1+{_Iqr)>0^y&8ONfx ztzNK+%Ev{teuX3DB>%dY{Ns1B{Qn90zZr=9gI;x9NBXqW=-f*$rA#m5%RwlyWn*_v zV7JBvTNMAMDr(=b$^@LixxHe|mvqbB&rn;N zF^WIvk=Zt$&ynr>>`a$mcoL16v^|Bg@+d1-`xu$N!XT!Y;o@Kn^1fgMhwQ5rW24Oz zJqUyMWaIDp^M!LpoHY`Sba7qV-nKf5a8$AVy$D_^n0{EoTG`vi2&QQ--JIQai&&@0 zH=pOV)zx%^oqleK=*PTUU#|$_12y3Bm=8*)T+}NT$?bKTOCgG>sCR4iIxlQ0y zA4!>onY475qdcN50FxPck*?)(zC#S{u*&atLS~_-sIryxIIY zV|Jk2@w>b8L3kBe3daRO3mWJUKPkaH`S!A90cOvl{`hRVX3-5)SZp}+Fu$??xV15i zXNpbcF?~m3(|Q;q$ivv;PG*C45%X*CWRK}srn~e2bxe4FX0V4(Nd8hoCcHLJ5a?oN zo3njSqWNr;m9{&?Wg^n2gz}WhS@x;1;66#5&JVjIJ-=K9xY%)gr? z+lH4>2w;6d7l$v&s*CFY`OTYLE0Dq#q+1^%j0QmG8?0{t&@FZD^`CV$aZDQ z9`Emvrdw)ECkYaHY&FM3#|iX^+y<*IEcaQ`jo0H#&P&Wu^3>cLd01O`ST8vJ?R1;DAbL1C_vu zM@c9JBt1(PfE;^Y*~T7vZABY(_iRH7asVSfz9-sf0 ze*~OGeg{pRrZ4G!WyHydh|!x_fv#9|kpAy7I@Z`&7!47fVjW}AQMH!TNGC5&>sfYc3||M$Q)mI<*8(?4XDkN!)^PF<~*?j znND9fQ0En%4TBrNPdI-xg+O0#1iE7TaQ~XHlndZ>rt3D+;KW4ZlOBI(`B$#=#d*bY z6?~RlWA_HM2!RBYf$)(jE}5GxCU9ss=nXVf}?pdwq)T5`!W#=87v)c7)+&nl#ZfnV`+5PQ*MOP0{xx7|jOUdLq1q=o|X z=fvXVoHMC8t{n zndB*JDs3fF=d4;^@w{vcb^^$iSu;vNt^NQhiaDJo1z(hY0C}Q1t8pP=eysYmgI0c$ zx}x+c7&752wJhed>9n)YCS>pM92l`2$pnWf^<;bXS)e#-g+KQwvb;LxzwN(j3rZcCgWK<9%KA=Ab&R{qp#$ zwDiSy1IZw9C6fVM#2H{0UrZ;Rb}EIKI@i!LGQ}(bF4q^=CI^iX>c}^3( zbmDObo9GW={346YevYWrDF8APNx>J#3TnJ(6=-WSyC4D8n?sKzdRL-vNQ=L#Ds>7n zL1TUM26(3cASdEL2V3T->I9I#5m*MZmSKDz(?Hww2iZJ{0WASd2fjk7)8)g;Zd9hke@a4NWEIFOzD0qu2z`dHX= z{edsqn*j>m6`+1qP>@4cTyPQ{a>U`3J7x#gUt;T$vj=TuoDe990R6#tqswi{=5t(T@T|Qvwvfw3aM-=UDvp?Af8tAmlBKInP zQ2>EoNH0 zWcF+=LeofLr)hKI2+b%W8GBrRDilx-E~)>LdRyxa3aBMh(eOlRonap+v4&{YT@PKt z3pJYco#?Xje@+DjF)&_k8pL}Nfp&05o5uTf~)Blo!* zKFrU6KIhx@Sb@SVa;zh(>A?UqoUniX@6Tq_uTMOZknLn_aw=wfrf;Ib@x!?i({YhO z&QxzBrX}aROc#JW(OQ#$8bbhiqS@yD@97AT$M#|99890sSf=mGLjbw^k=3q5&;!@N zKJQ%D0T8YMa=kOSKGNC5z>10>%2<;C1lrXsE?xlg1 zFc>p-EZutVJv3vx?JS?8m>GH!?S;t*Lw1iBXP4*q#+YF2PU_gdVC4CCu)AU2Y+Oxh z%>FaHFF7~2pu-+YW5}3e21Pdva$LBCh25u8UstCy^ptuYX*V~-O4y7aH=05@MU*#r zZ)T{%`j;|P1?_uq=(ur?y7@l)HInbLUO1TRUGyQ6xfUxSgbZ>7Nas!1Lt`x3R+^Jf zQ82H{N=xa|v(KTrO`8Jw!l{$T(84QEqtT;=nV!$3zGfWGWzCF@nI_l2759g^=#?L~ z1#idfehUw5+-352@g2Til4yNN=09ieSHeeV_mBB0XW_T{l080w0djloab%ApD?ZMW zFlgE13l{|Do9tILk;v0rMO~Y|5VIM%m|SiE@|cd9RXmZv0AXZ6(IBM^3JJ@g^)aKN zu|fU-#ur_EjZfL*Y9pz1hEs;DNDTYVoU*e*8LtqLIaP=K71hCk~}Y0@wNa#BJISC^K}OBNtci&_L6EwNiJ?YFCdPCzmr(+MEg zq9xjC?H8$wmKeNcoA^!0B0n{jMUGm@hK2)1NVCP+tEiRio0)8Qt4gSYjXJeGO{lXB zVASv)=_>_)5GYyz2a&;`WieQ5k$+B|wV#pE8PwN@TI6rhlh3^!NG)t+F`RqxMRd|> zr*R#;{>I8|7Ae9gZqO44AH@v{m0JL*#xOxd5ZhEFyt zBz-;9R=JY1U5pLD_-%{-N$;=ua+}1*v>HDP2vkNUCEn-p#d?W!G*F~{GxfG@iPwx4 zjhDol@VuG@V-BOTXy$A}-7I6n9726sIBShM#H4nmM*Q z%o$k)RJ8q(#F4UQ&EC!?kfvf)3H4Izxn`=izw}Z#r-%w?%(givU=(+4S-(wy|EUwV zS2uyZr#SDkhD{~x)8=^Wu6RwI*a z%#M^daSzKGu5zS$NA<_1Gd$ie`wr(6hAG+)6JM`TIDZ6X7LKQEt{Lbp@LQ^LA@IeA z06{ln6lvSc^?02QT-069EF5dwdpb6K#@WTz#&UD1BjD1+a<;s|3BVA&R|o`xnP3;n z6K1&LyHF!JJ}bBe_R{72pAQ)Zc9|&(&531@+cG?ybaVgdNJaAoItS_%cgJd7i*yYS zx*;<|jN66s#_wv&Fc!@#HDLL>St|p%rm(1pu3ET|4n1Nhvh9~RtCb@gVQ zaUe1`-aCH61iJH~C4`@*hPB3am!h#W@%(luUE@=Sa8_gun_@qE9iA`SCx!K+N!6GH z1p6TaF#3D?$2uAzFc9>%)UsV+ywCG|kbQ%+q?-K=8QJ+%wB6AZ$~Nn~aBg>j65c~# zv6mSw)rpcA7qQ$_O}Da)OAH_cP##1BK)B$_QwgP<@QsPR@xPs`cVQzX!oiTO=z7$QbH9vvBOW#vrimK=Yp|d~Htg}Q_l^%cSAzFOfUjw68KjApo7DrP!!$7ajw#D}-Z{qGY z+oH369n(dF`rY0J$+pNX<}-rpk?XaV-Hi_XiL$Z@gJfH%@a=A*z7Cw{l69qoD641! zh4V+6KTC~LN6p97S@)&wbJNeZuqP6Q!da9*b$s7mI|B{lDXeKRBhtkSk`u$zI zwkSVDKRsGfcG~N__TVSsRp2FfQ>6Q=L~GY|(SJYcpa3fQxSa~v{9efF={x=14I8$K zZj$PK2Tz$YyeBL40FeTk^4NbuV zjJ^nb5FUao@;`Aca(fmz3?=IVgfq}a>Fjqu)hJW5MB2CL6oIh}Vo`>Jw>f|a(IP>u zTR4(hO5Y?ziW=L-n$5KE<|nAC2Ee1g4YECW_G|`Gty#t}=%84M3_6X5eh?a>+oQeg z1VvrL9v#TCzS&C_dDgJWR9JGL%@G7JzO~{#TOFSF*Q}%4?s<;d+6@^ngYfBoyaMBk z;D>WAzKAj{Wei}ja4j)QLw2n(n$&eaRF&6DZ|f$*nh|CFyJy^Re76vI2vPpTJp?qh zQEIPR%M{4Q1{(c`o_vFz{r7u;fDEo>m!=nj2JVt`PoVwx-oZixmqmrs4kWB4bHm;| zH~}<%i41cc`wPJGzV22kmIPQdmoB5e4uS6E!O7}ZpPiK?SpZtvUI%+>osqEcPMElv8Hv!)z0BCDJp^lnQOpgXY{`f!Nq{sjHRv>2=bcfT=J6A}t zj`_uOfqv-@?uBN$63%+;-5Q7{(2rHsQ!V+t3A;(=)!@rNNs+j|ZQO(jbjOkhX~IOa z(-itXG6RKnm#y}@yVq%FY=t&XZE#W!+>Y|98zPvmc!y)S1ck8y7;paSKLnuM*y=Vn z(H|E)NC3)%XpsM%OCF^0Hu=Zj7Sm07TWZAfJ9eq;Z1Lc{ik%r*h3?K?nM@FD!I`DD zcdOLb0~^Z28KT=1S}CUugA$l6`!1>7*i=QW6)S96VDdTR;4cu|gmK9pHIs5iZ8vCO zBz!DSJoIp&^_PG0KL=<4pfeD95?t~Hwtgo{&I*E{a*L^G#^D4Xtw~4dYN3|(ZxMX7wl>J}PdL%ZZdYJm zEi5@e?DMRA&vbS%b0&PA_dZWx(eb-6v*i)9Y3_o-^f@CLVlyGgL}({Cts@UQRBS!M zcY!@L=EIQN)e-iW8CxV0p*LQ6m2O#d1GTpJQhR)(+D8|xE-(L=H|2}yz-iN_M#3rp z@@an0gQ4g7CxLASAeXE&)E|FtSu3@5xc3$MCq4a13RQ%9)!FY?R8)wbEk%X(D3WFA zut>7A6gv8V0-8QK%QaFjc996AzM!2#qgZBbhKdNbkYP}3y9S>$J*O{biF7G-7{ zv&glm!{k9cH#t}djP+=gx;B5!&Yf8OS`sKAUTF4_IiAOvD!bUS$UAC3WhbvOO9LPt zGRU8L9$Do6&znM7G#_XfJs1`7`D~S`EjPe0_1$D0Dy+;x{vDe>VMWIpAmIfdM-;cn z2mz?k{LSms*J)NtkY#+`pZ-CWRoiBkaXbJ8I*ws1l#twL>34)0b30t_SkXRh%`}#4 z%Ad`E@D@2lK~JeMDPu=X*ZazbpizKDB=MjK$0OSD5gJ@$$52G8e zKApymF*8!g!IpMv{@M<jSbA8^SMtegkb#E!P2hI)w zZY0Z^TdJGvVB1EE>&e)g6oKa(Je)LxjcC0Gh6VIv(&uX@b1oWFZy^-R`mZP&=@8HL0OvmfDiQc8Vqk0jW|_@5qGaY!{-nJqoHs(Crw_!Y zvz{+9eN(0%SjNB!pk-f&c}%Q$}`?t5Qzx11g>NutdHn>%I2*2L_Y&jjJ_~)G9alWx?RY0jg$p zPY%4@WcJIZ%BD+vB3tYV1wk*nQ|?%E&XgXz( zOZ;Fh?NM6#S_|Q43R_iFjU2mX{YFsr*;*oiJS}JziV8w>;!zSR0hxUzQH})!8QK#9 z1jvy&{@k*b)J96Aa0bd=J!afky5j1q>7c_7wNS3;AYRCP=$o_1Jva=|ftZ8erDBQ5 z!&oH0Mt6t*4~lnV^9K5P%_0W{^tJ!@2yJNyhDtW+h`t!zq9v2dB$`C>#@}OOVf@|r z5dGh|=5?f-oh49mnX*r((UiIAMRQIF?tw7-Lnp%Cc2 z46+6QWzPiDs5Dt2#kGk5H^KNJ`kiZ&Z~lfUtnG{sl7ldbXicm9zH0#xLC+trS+t-F zG&wR&V`^NbhJ9OVpcwaknFGto~% zj7FFu8|(q5xiSQhOQ#?Mi`Ie**!j`jv9Me5Bb}?>qFQJaps}4OJ>nHjow&h zb4z9E6sT_QZP0qvs1Zdp|Bolr)G6k<&wAC&BWwVz3{0@;RZji`+kjYXkwp5L+p|n0 ze@QSpbV3Hm4FE0HI-g}VAL)R!Wlv1h&jCzxM}W3m5O|1c5Lx+@3rb5S}q)^B(2N}qeu-{c9 zdtVTo9pGGW8X_)1@_vWc8zMib(0w+_d|a&Jwu_4++xa~uqTBJ zN9*5Z9=K>9^r2ppUm()kOAp=mcY5gF`v{rj18pj)>%tK_VMRs7x+I?!nl-Z|Ey^n= z+5hjvZCF7lJuPI`b~q!1^yrf7rQTN`Y%^qzBZC~7UI6JEAtHpr``h?gZ++OL$3f*NBd9{Z*UyXS_U~N9XC+d=28Jr;(fpZ3rZyK5p;%KbJKc{ln?11@i?o`jWL31@+Is*A^T5J?+$9 z^&v&Ov~kj!hqdA~K_qM6YXHO$&AMF3aAwW>Bdkj zs3qarcXNFrpe5l;EEm9;m6>a!g9GSkH7NVntqlJhq_fHN1*~^S)Hy%;Mth*_YwK`qfVlr;|=NOyJDg(-xJF;EDD$b7t{u z03~)-A!qwA#jt2y>cJ)2+_wfKT7q7TdKdr|2EYFcv|y;MNt92_QFi9$=iuJ;2kq>yB~GiZ-n2-~n<;P>tkV=b+?2JwjU=g9%Fh zpFN0kn za?D^9XdNzrB}94H*b($gKrX*6k_V*3Q!+c33U_uvFH#4lAwny z@5~%#H_9G0!~6GG#?R>in`&$6!Z~LK#>~S(w|_+G8ngWkdt6ky#ujwz{p-bd_-#8# z`XyZxx=+dK!-_`xxK?u8##Qdtx(9h^ai)TOArU~k$zFe1v*QuGk;`>=vxiT0l~L@W zy92+JgG52EZrNvz0IlIIEzQle=$dQk-Q{lvqSvBa)4V^px2Mw;pye|ncR1xw+FL8B zVQu=_V*hQX2>6UpwAapv0-Yx)y+<=$74{h-m=ehwv6eM_G8Im>lwMR-;=uUokL>>5 zz-*p@OnH0uc;5J(C2XZANA;XKfrO}yA{eT97BcE52jG2xfGjro^{#gRAqTN{qdqp2tR#ji2S*+ue4&(2SljX zkxTN!8bF@M|JjaqR@dzY0!kst>yL@;S+SWRd5-K$1^q$o zanvAR`$eah0!+TjQdQNcqR@g>r4{qN0OX;4XH2_PQRoIR!1&suBpxt?P~j>ArCP8kqZAuH_oN3?V}*8%z7Pl% zbW#Bd08x{yNhqFjZgaq6l#Nm9ZL6nV)QR7^foqh@f?lk90M2?)=H*X79aA%%QhUv( z)Q)bfg1&AAZJU|SsjoLyS2j^buvo}&$Zur7)}5HO+lk7ND)mpRl`a?zh)`te+pEZ%$qg zo`zp=G1hCiU<_pzjG>&7*1F`eHRPmg*#qJ_Iy&g}mtUdHb#;EO!2aGB78cSEkN+{{ zW^_|eOD%Oblrz;TK>lGn{yOfaFi26+r1w=g(?rA1i!hyijqJ^gBKbwa#Po5PXz2I^_4 zq3#B)ERtKDF!7rH*z_n&r?0EJ=&S0kKy<>k))xBL(xrr-K{O2@zhBEBH#W)n7YC{Q znQPiOVNF*MvT3vyoKBcMYzh@kJJ?)@Q&p*B(-+iUh4Ul+UC{A)Z9TOt5Y{NHtv&YH zoA%siA8&vXYPq8pcf{)N^xw+?y$v#ppSy8AD>EFXSqB|RJMOfT#UZD#d~JIJgHZ#w z)wzyrQx(&s_Q1jIYEO4{k>e86&YSO3Ms}g;I-E02>t3~;H|-tWwCwGVsjUOq!PYjA z{wNgAA4TDUQAunG?)BvM)>iuWbI(&-t1+lKiB}5s5QTnn?EZAhudHR86v`X76BSI_ zOHj6{hg2>v;CFK`ljPqlSrbefkMF|X7oQVtt!*s()}}@eYu$bC^7C@&$U}D{{4_S` z9MCb2i3vgSm()XLxd`Svvgd!l&eY|dsjHu#pC!E}b2 z>V{9Ks@+11Zh4BTYT|(d9z^VTDf^iFv&YRf-nAsS9GfnL^WL40IUbB2S^xkb07*na zRQByorRF&Rd_69Bd z;~%KCB>=-rQRt-8PGPF`%uI7_K`px7{!L7?E~7+D=JWfrU&o&l$`asHr=-Ue!| zSVehbcjPEqI4E3eZfWr0_#V5HH%hG=*HC*cO4P*XTqM#*k3RDjJ^#{5iUt!slLit= z?=A$HaUh=i3L!GTa0&npV}O;)^P_F!2VyGzG!P@A*$YedV=z{$OKv%VrRRa2A{Uf! z_uPIvJ@L>Z1ZqmZ+nBLq>E^rdr0Fwf@R`w4@jfA=2J3UgPR9xWi&kp<@+Bcau6SaG zl7ETlym9(&FYgUy7kK)v4ON?I-c3&gmgRc-x#wsZ4IJ#>BC@LpA=w(5`gKU0JL9t#ljd*Tz(rs`@s|Kwi>mc=Ot$PpxiOau{& zgrqKRlHZSUYOPpFk*;RfdV8W*sW_W$-VBAuwP50&wtyy#YkL*OHa@q&2=L@{@6Z#^ zy%U(jMwrE!=;PAl@4PQBzKi!|^O_ihxr3~}Eu{=@XjxbZ_Jl-#x5!kqzXJ#w4uISe zxD@HwN?X_chX5iP8}G}131(j&tSJzbP8H4w(QgoN`@{Wh<@5?B?@jsEfLjI>e6~dg zONe+6GjfRbQ;iY9TC%COrbf@+ukpQ?*cK;G98K5$?w5p2W@8i2ah19oH&AmKg7fU> zx^b;Qm&_l(E8E=gDR^tio%3$qA@y%?aDw@p;HbanZ@1IqOCAnn-{-mi^V#&1AMQ^f zgO5$~R~*dcq{RLTFlMAi_nJz+epqvBhH|`^5RQrLq&z}@;CaI3yTUl zX``*`BhDz!9zL1nZ}nqzVeXf|Bb@tQ^m^IIiFFl+ac0%VCA6j29xs@PAZ~LK5bLv? z1QbtziA19G^b7COGtd7wkbv8wq9SqjI2b4f&A+T=o55EMJ3W}7D{cHTa);6I?d|14 zu-|i84O3zrQAJrfVeb2qJ+7)-RYkcdT3Y_(0J6vVJNBJ9WoLylUP%WA>2%xy)1gme z$Bn1o&6`gL9d1d0ONY)S=mYdj;Gw`pfsdxLsYIWJI(v>?SzT?Tgc9z$I}v5&Z#Qib zMb*pFg<@gq^yzfdUH4GQj3j8LQYn4jn^k)I_19?Om465%LNUdkH{jQ6RNtuvX zQwevm;}!}BesZm4iKAF-cn_mt+a1Xnuf~Q<*R5ZhYngI=m=C|Ezuos@z**$i6Tot| z?R2*h!0`-0gr61x?WaRjEc=)XM4A`LwaI&^yRm}08Y_hKHP$D~j1oMjx$GSsM2+8t zNZ8_O2UE_7sV*mox6A5kYw40RPN%YOzV>#b%d4kOn?^VO^;ViXeVXYGI6^f8-Yi`$ z!aD8{O*95>y1_N%dpf8Cb%5G7yK`_QI$$LZ(fskdP~l{E02Umg&%g3MJ@VA@K#T)7 zvPtJ_K(l_`?@pqrlg!xxq3l8$u@f>mt(i5g)cD0Kq(-{GbKmYPddgRHWxs%RwIN83988wVI5!2YYWer~O5-T$uixB6S1tMn)o%$Vs4fPO zqduTfA4KqwIH=C=4D#gkK{&xMS1?by8p~bk8QuVLfMvsXIGVzF!+l?(cwlXH6`l9L zCj|)0do0?mn17F7j;!AP;2H4AMgfE4ac6efQ^y zp>z}I=Bw6Hq^rppBp)z9u8ST*8A=yvWXdj>F zuv0|=eO{-$Y)*N7j@#?KWJhA|y!+;xwD78HskOy_<`C@d#~-^No&1Z#3Cv*eCZFS? z01QF%z5pWDgKT!UrdQ^UoKCr;wzFhHyOowd*Tv5!3HV03?@lif81r+%L4WzV7f@Mg zsXraDJY~}Oku>*`pVOoXW(EjZvPNI$R%-mx9)J@_=aPIV?1kLXGrido0>7bFfBAmj z>MvVA2et$fL{2*OWDfX*uF=z6%bDZ|j08w-^dcZANAm;PgA=v|TS5lVf(fGOn;0WR zTuN0n4RqsePZNIn-L&9@!xd7?O#$-63wLL zq$(u?eb&(Z{!0J}Z>OGnKAm>n`L^UY|KH~S6M=jD`FfNzSr&*7$y1LNwIb9@v)`|% zsIcBA^dIjxapI(CZq~~R(Jr1|6yU|kB0uVf|3jBwYtJ+e@U^}@8q_^E&%d5tf9c-@ zN|~V+mq48AJKeI#9Y(1iDDPnK1ctjPs$J-~Nz*LyLj+mm8GO^Rzx&-{ z2Ewm&1HrKBNHn&X!+jE3L@!{Ya7@|3)k3WsR#RUW=y2U-hRI|i&-yrqGHeV1;;fHK zWPSYk@j$Zi{2t4}ejXy>m2ucoiU!~tOO)r z@RQjk%oNT+W^xYpSP#9=EP*kjifPf@lWD94Aa~66{o-YcifF#mNVr@>FuRZnr|zo- zxaa{==>(8#G~bpiW)9ryrcidiEu#;CDfN3+338s zy@KQ02>XB=`K9YMQznh3>wouaTLv=#oe?|Q0}hcafDC3ZxFMi#AWT#V=Trbf^P*27 zgZbXu@1VyXd?*lSaY0@VU3m6!wBO#_3+y;2#x*-gC<_#XZjd*2C(0eY-GIi*>re>C zRtf26nI-r?8qu;i4OS$A6W&?=Cf#s#aKQ<%pHKd|Jvc$kMkQvF^eUIZxLzxRHHGpg z>}m*N@s=5k;DpNp3{F6T$e%0;BG3=v!vuSR5;6vi5NWplt2QRdl-Ux#W{;cMNx_2m z%!}{Q)6cydNPO`vE$vBolY0ALf=_(_g(bR;=7n;Jq=n_RE-?FX8lIcgqoVr#!c7g5o8))edGVp zp+_BU%X~}&At&rY#rjhE{rTroWm#FmYrkt36c!cHrE~vCM}7Yo-7$xND3v3KQK!Tf zMa+k3C)cKwHH|J%dycWm{@wN*3*DgbJ!+I|l7qSj6vN11u{JMRJ; z3<`6d7)yhq5$)?XQU7Ri)@1Ek_UxcHZ$nySFUqM1XtYh&$L9#H?Llqww#^i2+d{o< zsHY=VfaF=^h#q~Hx|=qd-kp(+tf6CU8UIPIQOkEBd;F3!=1|?H+N2*TUjqsqJo|9E zYTS?X(&m?bXY+98$lz843RgP^}F8RQVb^qDj1=EZl?n6YC_5)sN? zr^1C}%Sg{{tnD0>E(p*hPCaSR1(C54>80+*a?TcV(ghtU)@wf2=9EES12FCzKrYa4 zYpbj2yx$B)2Kjiiehp9|D_=md-bZ~sc1qx6_ay6Fz}WP*)KFK$0ChnhKu$P}A9;E? zJ@@j;K!B=bWtI;2VIMyDaM%&^G&{o3LK!$a>~;j(hs=6O{ARRlfBsvzV_bR!!&&b>}=xlbbXOd8)L@ix_Y|oybGx8n_x1S zr+{Al_rIdiLV9)g!Q_yHOb?37{c21Ie+e>6+#|MRtVu?C~vh<84a=tv!C_g6pZsqAzfe zw#e_ujG$cu_W3x?doYvqG*&X>D17aHHQ9RB5{^0v?=?2ecg%ate;>-4_?kVAejYq! z%J817&;vxu@eV|deu;1BIUXc1cHB7n-Mj^KFjK1=uoDX#tcOPibE!ZN*VuBF)1R-q zHW0ic$q(sKRk~{R`tn=g&M-bh2$1hHWAZK`CH!)_)gQoQK;*;~*Iq+o$Bnhf0*79v zMbS=DTt3`}4be)e5$TQ4l6w}@L-*V}ltnI(amn;)bi-}8(9~&Q^@tH5Y1FqFT+h~0 z9}gL+lI#Y4e7_=YFj=u^`QM?88#)o&T>Agc4~VI9`cLC>F+LN2j#5uc9UJUjTPvAT zx?d6GddU{ES;?TniF;DPq&>}!#Yi_bmA=gfxVc_(7u|9HziHKn-vnZSj~O?XZocad zdwsc3%yDLpv{cnZjx($5B#X)TanqO$R7Tf4=cHdVket!Hq3yy3Uwx z?lPRB*>H+l$2O`(&{~wb{+q1_v2}cm|KIw1Y(=q?tCHW-2|84r@y9ZCN6|G`{E|So9v^?= z=+HGbEU7hllnTFId}%^7yAmBV7LzX%d7n`a?)$yzvI0@t-xRWh=f7P$|#J*@#-DbMt((9?NE|{Pz&}857zuO977pGfSf^2LC~*I7Zi<; zP!}|x!?2UP8!D-*xvF1Z*G5&mhP>#4g_HKC!b#>Dxi-xVOwBRpK z4h6gkwlv<8&pC@uKkpp#c?dXAqBHTnz!{sCmb4?!JRe}^feN>C>jpbbzi^Vchpu54 zjr`uR6wVuA>O2DB8XWfIx&X>v_R{HVOiWZt1{F=&hih1yGQ`y=wP1bL zeA;h2AX7DW#MF53s?=}b@O8=DBYK?Ua}+J9BTH0&9J*AyO-BK>_vPpQmg?*3d>}#o29J7;GlWHj&h-GU8IQu)>zpMa~kK(Li9;=W6lr$aL z4!V(OiOTj1i9P^dp*5ifd%hOv)n}4FWPbU1za{9iK{VLU*IMmoBFY(ALc?YpDyV;5 zNw6cpmL$`1to?MqtI11}v3e!i_xaz%f8l?HZC@~28}s2)*&kpp!=qAP4?se5GE-|y zE8TGI^?rebw%(5!JC*}Ir_Z#MW#wQ%tWQh!cxMweuKN#xj$C+VxfHa_hLB0pxx6?p zI!hBI4uwKgFmX>^*D==~Z>>V`@LJP)j`a1>(id0IGcUXsh~JBAkI$b+ha7RZh5Q3d zMfUZ{Kyq&fAvwo&^B4#hdoJG5-ME3vF!i=0@!I9U$~vYflsiJQo||j9j1ZDU7@yM3 zn0MZMlWz1adz?0^eRRR<^74NTJQ}h8BSW)hmRzfosz^W6aC zp?zmeyHru=1|kykqNZ>Jz`cL+nRDorv(B(_@5>?wQ_@{1WW9Q{r~!PfEU%y|FS(p5 z%R%um)Ql47kN7+53<_r&lxtOG&;o|Isl^Uehb(d%HJ9vAHG<|ggF_0-U*I3U`rLKkwYW!xosm?cmyj5#U>CXFKp|%cz(_w&9 zNt68mPlBFAW=P9*@W9LGfPY~z?<95#QYJ0W{*4iwaX2f&vpswF8J z+oYX3#(t{Q*;q+izj@Q-P{!D6S)R~Wutz})oxg{Ih-cDzycfULw)&^VD z&Q5V;gS1wEK;5l%?1<%95`o3wMTOPI_WNXBS46!XjkM*9m#EJ|gS???3oW|kY1-1b z4P<{NT2em$JwGp-E;!?dG;6P!Cg&E;+Tk+~r`(aTU?%OwknNVw|IMu6X{?VG-E!Fc76 zovPY5Yu=N0{jqpY{_J_%o(vme!OcqvK^8;JECIG5&a~SQD1$X>ryo+LEeOGCLnxFx zYC08++nEEp`>$ol*#(_ z&km&@{{YDV@&3s6M)YxO>2fX5)6z8C+}_L?kcP3c>=VLqGmeR)Z%+7P?H>)_C6hh; za14-JGML|e^DSD$8O;8#Tgd*zh82pjN>poB;_0z=F;1cDL}oDfuC2E>~^eCt|h7=c8n*(WX%h$!=y@^si6eWLyL^C( zsFQ7Wg6C>`=@B+x81JR)-=x0o4l0_o7lm_+I2fs=xrJ`LZk}I(Aw4Roe`+tSSo8&v zpM}){kYA&!bnOs8?o~ku=6bA(z4w?&=bU3VrBWkT) zOJoSL16#||f34ua9Q>Xx4FEYQ%B}6C<#VlTNVF5B{lb88fBDr{(m{tFVxbt&vt2E9 zMN%~oBBcyjXK%dvAG-C%n*yPgN!7Rd^=tl87K!Gxm}Y8Q4um6Chu)>I`YB#&2s8$Fb7ezws+E954=LFJ}mX*D016< z&$34rxj^xC`@W#BW4U7-8p`{#l(m2b=wKl#LgtV~_Cfb4Hnvs+w5`310rJ%WF$7GT zIfHJw>ka}_fLX!M(6h(|>mVvMj{qN5XwPhdxB(wsB&^1~rR#I#A$3k~D0BC^Yxg(}g?x-0;N77(? zm-HQc&e%a9X3Ws{I^+KS^(U)n-i;3r)v!2a1i{;TRhuL@EGse4+;A*=fFo0W7M@ z`%QD@$^e~PGUi?=t@`)Ts+ew`bWgNH~17LMU&>0|4@|B5h zV}SfKaqz=+0fDqQ%Q^7mqTdRF%LM_*2!c%nkSF?34}XWg9?|tcuqLQ|_G}_AdY~3~ z0+7>82`-cU5I`;;tZ+sK{pOcP&EQ zR%)sGkRshJ_Du5r8@&PK2>cwr-4T}WQmM0{g0_|}vjwle@ah_R^yzno0wo0lHD**X z&HLl8Xw2wh(_b@lM=(HcWuf9g=Fk6a3S?%so8k$SKYnKlXBQ4?oolbtRJa~^FSQ4q z1DFLs3!v5qs$E-GM-DHft1tf_laSH<{~E>ak-hwQN{TSa&v=dH~3U zvL_@%L05Q_DdTgBCQ!kI-AN5)`HKIjq^=7`=!6v&73-1_gTp;(oha+`w{8=UgCFX* zXBdU|JhFiLSszSXCfCY8xNh)x_YpQ!<~z3iAnR=KL$9X{K97I~V=-Z)NipuCLQ zHhtOeL}%IWWY0AAGRB^-g)_ef&iqv-XMQxQ(u=RIrpKNMCL0xX1Lw}a-fl3EqR~z1 z^gnTblCHE`Xt6whuiG1RCw8=_oti3Em`W7H9^u6~3d*D5+s!sRxKbp0w<1W_>p&9+ zC(B49%{md&O4(!#!vIdiZf9{GrUrLLxiuDIw5 zDqmlguERIfuOuY^$L@SMc1M{VyKrpT9lLRZ*hV+)QwBNvY6RaRO>T}dnYyis99*)D zBGJ6Z1CcrY+cVCh+UlAlrR#i~*DPkusSd}kAQQ-ogA2jLBAI#3AeRo7C_4oKUHjVt zx?*e`C|hA{>6Sr`;M9nKWgw7=F@T3+zwYg9rsneZ^lUP1kQ_6}2k<_pTT=y)pMLJy zOqCr9nFAt|$^s5THmb@Xd27`N!tzL7big5i+`j>0pzX2~Y09KAl$k$*h9O&pGejNA zG!53C0NbIbo!aWYWLsOzGav!Th5Nc>PXJ5I#x>NsagFI6u-%?|VFf+?{E9$;HvdL( z@SntihI`HA403CrA;2_b(wfS;#B8(*d$1coxNvSU4J-R47vlf`AOJ~3K~yfBn%uSQZx z!T8;1b4!TkUiv$#@P|RThe*A#ue4&(2SjErYaax-@60JXE0lp!%aeV0+|VNiAc2gG z5FNDN_vozO97zTFhVvAqdME9{#e*<`3(zjyIX)1r0x*D~4A8VjizxScn=!1`f zN$yO#!~Hj^mDH=wUR7CX%1X6u@%v4jI4PQ&^|C^=%fMe6+!G3mis;fSe@{n#{}=+O z8gFoLqsB#gu*0JkxmI^5ey|~$0v!B*S$Jb0^fJLoeQ=(POy(PIy;-kCZWvkA$rIL0 z*0cKrHIroy6`uH3DnO4EelCb$xbuh{#zBd?wcV|?W+exi%wDs|?|+5q*1b53+>V@< zMSe3)DFJn|OWAj|ag?03xs^|%zWMc?7zb?JS`FdN?A+l@O}94O0N zle`w=jj&q5H(7!K~upT0m&=r9~QwsIb^3=m6A&E80a=@CJb=%r7d7x2&x zgD!zFBa1lmY3%4>rgz7Hmkd#6;^+3PP*yc$**899fcOEBGf*g^j@RdXpJm?1>IVju z`NRPE{r555w@D9y6Evq#K=a*2t<|4Wchd&#Y&Y&CUYt;=0LWSP``Br|)hIPrtfV#z z8%IN9D=oO?8QM_2C6G1YRrU;!Bja})&;eP$XeguZ=4ySOkPeXVJ*YZh$^mlAn&8Yk zYYD4Z_Lrmvd7`u0v~DFcRrCyu5!kc3TVi7rzsk!yy#nM2JP9g$Kahnwhz}h-vZy~; z4E93q$mx_bY$EG!qWzcyt0a4Zmu|b&-B4E)nJZnev)e5DKVB$fnDYdXN2$5;ecOHv z_OCnce}z^D#O&rpUg>r%>W}~I_yg$Yf>Jf`dw61?QWOTb^2cmXd82o*2X$LMUS=ye zsa(m}7j{31pbQCE1$)|UHo`m0-{d;XK~a34bfQMD9ts)0+KFLpK=kV70YD&44r)`6 zoSx7h>&72v92?OXa&nY_)*WTsVzQ4t1Jw4=U2nK{ULZ`KOl^PSA@t)P%rePdk(4G& zirU@>+kv-6NffO+dUb8gwJcf-=nwrtFz;a}b6J7g?+m7_KxUZEx$w8lmSfBw$M5iS z*^@z{>}zVR`iOd3>&%nbi|vq3+2bTG)fsg5IB=OO=UqpK&OXds`amjsEx1jXJ#O^R z3w-si&pOGyIQrp}Z{PH}dE7k!89YHfc)g%S!=xNssp^X!}S*rU(-!J2@G zzjYZA`e^{!<1E_!OG-+j8MK@f#S8|x7W~kKeo0``gpu@z3r`^YG`5`KF>3V!^Q#6} zg21ugl06YvCur5Nj~Ww+`uChPqgFS4qpEHtqB*P9S3GZY9@&mYUKE+MoYeGR6jP^7 zqZ@Ahvks)jKLwE#A|Mq`Gf*zGBZunki?*WYN`j2WiyMFc-Pxh$nAIJl>~jqr1Do5~6^sPR#oyt}1V z=zMqT6TWF!$^KM0aSvOaucnIkwfZQA{kW~8i|)GrRa&!lefn-8gF6WQZ-cRa(oYYj zAN^n-i@_+=0C`s7Sf-*v;7Tf+63(P>R)IZWq_<12bs6s+ z8~cwu8kn)4N;!Pj-(8TGP3O<~0qwizbW#j?#h?Toy~~d%Gv92i0Q9Q+^f@jUVQq?J zA$V0+y!gcUTG0y>QEwEc&Mls@uWjB#uR`eyV~eU$dT{Z5wB+8u2Xa;cq`m#`_t@)T zheFIeVaht=@}g0SbT(5@OC5us?OWEzgR4A6>WQ=N5kMfcIW^C&P~Q`;ANVyae^DU& zeW`fLEL&as<_)W<1#B~hn<9}YJqA7DKOd%r>;XRYV$K`tjivYAq3M8_C#YeZnLjEp z9S|8N1><(IQBWg@Oxr8Wj0d3kzW%1C1F3@z2Qjk8Pe12O+xmfCFRnq}Nqv^JKR9En zQg7R4>cSX-7C#B9ZcwX_+4U#3I?{33$M|NCFi zm{Gbtt|*jMFq*Q5Pod(8d)RBbM*ElvK)h)N)lZedao+zM){`1BCRJgCWl?J8{(wzk zG; zKR;n_LdL!AU`?@%mu?rJhA{5SE}lf$g_e?GgY{vO_aMkfl-(}Up?V{r_`WN!;M$SH z3ux}8V0{>6>TNitzgla*>-sCNTdRs9(_bAFSd2HoNCY$FkKKW5KL^$n1UBahgS5=K?5lJVJj=p-az%A|I0*6tKBElM-!UX zruVuHG>YBi#dd&>Gje;>U^ZtkWABgjv|09HqLvmgsLl_ptiaTgsdU3_H`7#Wl8?-; z=MsNy43@UmeyTIq=o8zM?Z8%oaEhyZ$_i=w6FPX>`aj&2_~ZQ9gG zhPs?c!NMMDDUv`zUJlLq%@K6)tQ`rN1-ayWENS z9l4{X)2JPeA}A8^rZTP4maktkQGi4C|9bU9dg7n&1yYyE{YR(Ym5}*9d(5Eo<{V8> z)(krW6;0ZchD|@fv~R&MZm#-}_c&YTj)bZYdmtRzpicw<21=@wHJsx)#f1IN*bpe9 zIepD+8D*vG>GBIMqRn;nDeLmki~W}XvY$@;(JVUgxLJhX`1oeMU(b2odr0r zw|w$s3DH_M>53*WU0f zRi&oNm7GOx)c>NYN=si{MbG?eRUon-H-0?be*a>7aDqhk43Kwfvfq{(=E>HwcewAu z3>H}wz6bp;Bd3VQ?fz3CNL%~yKW)J@n;Tka-c8RCe)`=QAV2#|I_;b@?G)=A{A#By z7Oj21`{ndJ>sofZo8g&a*^Bi*tf^*S^Kq2hzxIPZxwP@lVT;?gIwt`V!oF!Rc z?+@%)_WzlE4E1&Obj1Z15$uN`8rJMw+nSZz#htK=zj|Fz8p~-vOuQrGTp2#&5X#CM z>B)EENhYkD2>gP~WC6dRImo}Pw2Wn6UuVe}_ViNm#gNFpd(5D7Pd|zfWNX|nize?y z!=@i-v6rLNRJoe>EMw-KcAvQ9kGz|S$HUzxx_=G=g~#p+(BI5VD6*H~XLRy8(8hYyCr^yiwC>!ReOwLe z;NyxXS3$4&_iJnE@qm0>oINh^*~6xh?~AS8fIPn^3@od@UiJfbG?*DH&9AZtYiU8v z`u>oepM$4N8Qzl> zdVokdJ~(y1Mr6uIqnYd#|hRu3gt%%i4R_wTog!5s;1|3WO9|LV6FW z@BjPG%)B>u=FWRF$(xX1?(c^|GUd*_=iYnH`Of*y=k(A$_j^L~<9rnR-j#YCnd@)A zg;GpeeIvlXg;oyz24}Z>XR1o~21Wt&w{GJSb|(0u<0*53HH#e1 z_9`}7#4Pf~45WVHNwx#mfxi$y>iHBMV=P}l>_oEwsjOsfe?`Zw6k|`s*mLA)+0Rz0 zpHPabQzxn7qqKZGFy%|mjxjbh_~CQUGMV$oj-dx0d6=?t#K?QD2@M0s^j+bCA1r~f zw)J+^wTAVguOCNi2bqB#+n55Wp>(xMmF6&;2#0z0?z60!o~_9Ae4pA)nIIcBSJB-M zy+>6w!3a3FGPR>#k8Fe+E=NSXm^Eu>9K+F7w(32pqsx}T3WiinJZF+8RA2ut=pX>cPdd&7kRzbY7SLQowWf^U{^ID8 z2NbCQIo7ih6&+ZQ0LWi>3IO@jguh3+K?k|$um5MEN%SiU>(}Oe0c*1z0C`szDVl!O zR9V31YiCEZ-05UjKhsqhmeq*lv2X+!0u5~C@oA-mCj=Bg1I#8l4rTIu{97#+rF)Vz`nuyT8JPi89=V; zw7;_eJ`CQ1^}&!KqX#uV_T1;x)Z7}j-@l~`FhzSIu=c#eP4&lBkT%mCyo?&}2&^sq zUVeTWnWYqk{SbpQ#_%7tuCO|~_I9Pdw>t;_?B~n)EIkM#s?P-0V$B|V#GZ883Hym_ zHsFt#Y+_dHq}rkdRKIb#glWMJAa^*9ib7yXOc}Kg#Q?;PLU6vefVCNOvo2(3PI$ko zuA?ffufG1$tMud}p!n`^^J+)ef;Hjda}T3^CXE(Z6Od`W%MlD}imV9@RQ3~C6U?Rc z`axhV==uQ^nv#3iR&K6g<`9uiGM-ck5`WiBHE` zOE@-HQ^l%}sJ&SP1X1t({zpG1WbpUA`K!rK7ntdwd;VO@6MR#~=H24=)2)h`vdx2+ z4Ls610>g6C>FP_4qv5$GzpEYVaCHe)7kncRFtlAVHoJit<4~d~WyGFb3Qk~~MNr6w zB~-t0nGh5LEaTZ%zNYUNuOVcT_wj}(fe&Kay3U)oVMAb%ns?}aw;-@F?{~m-y6UFu z2o%D`rf$pttHn$(P{68n!6SW4sM)2ca{}5Kq1k|lh@!juZ+Fsn-^}$S8>Ej5WytO! z_~H7$-E7Gs#~4S)CRrkN)!+wfw5V=21+#FB%DKA{3N10v2(;&EvZX3b_S9~0&_Nbq z%n!~Q$26zLvxt=)&PtO3slAa!4*Hm2Qw@<&Kx)ts(Z3r`?Z8?y{5|B@1YT+0qMR6O zawSRak2Mg2f%3K%YN}jEjb*Dv<2(XRQq8PEgn+LK>nPQL@`UVN zDKTpogD=6jc0-Mi%yA=gj@j?#zL>!_8Ffu6kYZ3CJK8{%_$WJF2Au1COKyA88 zG+oS@ASUJnX(k9Vej^2t^GfMS_qBVSKf^BD73>}5zs#mVDMKkSYaHv-I2Vu!^3U7u z@T7hw^!jr-+w}r5+f~~e*dcCg8l5A+5nb27-$A=xQ#4PW&FCdS?lKdkZ)T8-_1`h? zDzkP_7bvj#^y7$R!d+pJ~FPHDr4!2tOWmLMkR-2(u*{J2pA#ir8lkDn?sse}Z`o2XL{ z>ekm0D3@*PR7e0vi|uUKR|KQfU|;J0&cQFu)KK~}HCL=BQsfRgYkw4GhOuUO0=!*L zHANzL3w;kv9`6h=4_H^AqR@%QPNkC^$_)ZfYYXSAj#dl3I_BQ0%OGeES>#}{GS(J$ zruE3|PP2_+d{P+ikDYHs^YIu5C-<0&Iu z%&6wTn~CPY8;#M#CUbxLFi$yKJ(zntc>+LKwdPA2ls1AAGR9~=ct5kHs;sFcjz!1m zg^=@8&N_nwYlXxfJDUOQSnbVXU?k3swq|N5Tc!D2O>4f-*bKyhK~A&BA?KV__57Ef zBvrAm{&tP=)pRz?eDzGf&q-A}tA@?lF8CGo|8eHOx9ry1o}-@mru~N5D(jiWL99bB z+4BQIA^QkS5WpYc$FDC`c=-mBI?m(cyd5rgRCz~+g%hJO0)>$wb) zqc+Px3ywe_D(!E#P;!c?7P*ZvqGpjdcPm29-7H6LrVzQft*(^1y4oozXE#$FB~^jm zURmT=Q$}SIa}p&9PS6z|c2K)$c4O{lF5Fye*EKu?vV+ZDtr1_UuG0u)k#mivan?vr zD2OtnbaQDnJ@Dv9p4AE3|A1+9*L zK|fII1X=%qISO%;8l2#aW}Sl*258o$qsbWwhwn+JooLEPAcc}gOs3R)k!BsvE?E!) zKipwdFfz&EOo>g(667?TjD-5V)4c*2s&;`u9c>N5zJN3Q4X#7(jkBvK-#c(`&qg3? zNHX1a&4~o6P-AoN>~c$$$eLu&I&D0Mgu9x|FxQ?7LL7P|D0 z7gO1mQpfLbdZ8^q4yRn~U^QdR)Y#c&qVpgHX`&aS?hL5@1`#)iPn zPyo5Wtl?myd#d|6-OIyu1QdL4NHAQUGS?m|TtiCVgCPcXl z6FW>tXD3tEel%yfCtzEo=5TvF2SK%`p140}G7I&`qvN>rl`NBX>yPirL0Sek%(@Ji zX8mj*3?7otK)Del@9sX+-LVP<(yI1zP^NnYq`mxia*)gG&04ZH3YAH_%l_n6{ak}y-m^y-&+L$A(uGT1hzQFN3ckPx8Ss41L9 zZ!Dw8K_Nv8s7{i(uLMh>h8tXiWI4Pv0TIy% ze4oi<>EiQ`kWj0S)u`2jNgGI5sNb+erB*jGT!!kc3;UL-)yK@BcuBo;IkkE<-T%l3 zeV$rf93FoOwfhfVR8mr8)YSsl^yiub$R5Ay#%pQX0sEV3R_nA!V%CFRA4ScK45xyH z`@LBT0V0M1n{>)Y^|=l8_4KcM?x!#3d_kQaC=R`{qCI*^Ad6h0^f1+?DN~;_URx3T z&_C(U*!gP$DWUXK{5ppZZewFQ?iaqKr7MaeuJqtN`C~`Z{h;H{&Jx~>nqQzRlF@Mk z^mRrrYL4RbNPxQWSUB1Nly9ruOs(~0a**69#X7%VVQP}J(bFyUYB=Mt7_~%$HL?(W z_3kH2=>1QYc#=gvBt404xb%1$J#H5olroH+3y?bm_Q)LI*eg}~TCt8-H-=UnOMUDN znI&$YrOr`FaE@$N0BER?y`PXdR&cO%Yy+*?|ER4|q&3@8R!t8)Hk-CYgbK;+SM}}d zM+{A;>n}Z?hNLGNI;ya=X8(VaI3gu2dnfFU$L&ox!6>qEc zPlZ*2|8W8X2}{V@UtT<}R*>UwMh!u%mNIheu;1Zt4~`{~Ci*94H0&7KH-udSulxqe{O0m5~r7k>{K zK^@kX+Ku*lA1^=W>knCT(tToEJ#AV3mbg#&iI)6W#HEwGplen$f%l=4W=*GrOmz*% zCFSr4%hr_VdY{X&#O1*`+N91=2wtMpynQJxZ(nh~u%=3|rWOio2SDc=?=7T{=dAE# zP4%J}NBmU@@p1I$a}U+BQG<`?^J0$^C^kVnFCr>85%`+chOM-%ZWA?C6lh5i>O<94 zY&rpyC`unQol=JHCCE)zJ8baJEKF|IwT*PwzdodmTg>#x5$Je7e?)p}BHeJ=aWukI zmI*pj?xd3lI+U@sHC7S=@z{r8ZZ>-^0CMbWutDO}Mo~i6PQ7O%82cFFYy`VXkbzCT z2|m+1f0uap+D6W(Li-7xe0=IeyVOhp2m{;lp4XXYX;M zWv^^+s;074A5eQUSY5@v$aVI(T$%OEUVv{UbJruS6yJfpvXE7!*u-o~8oE2xwJ3D; zC6^Nd6e8Uiq@4kZZ-BI7=Dxjrv~b|8OozaFML=y+B|!4Zz$G$^A!7Cdvrah~8HHjJ z;d43B;&Z_nSNZE4!g-}PJaWm(B6{NauRO`-4EpG2h^jFHYU8X-uWB+?y>J#g`Rd-d z24xq)IMY;FNdB&N$vNbsw7jVt>|#H|t>pj!AOJ~3K~&sB1^vKa_aS@y$rrz(#mgf? zYY%#~yE+Ss|FM)v(z(cw&^}{FPEaUnHW7`8{L=@XXg2~VX?ek!2hpAr!2lDyDrRsx zW!X^sm;d~+h1x&l2-^bW;$4t)1a_s2*hj=KG{%Jb4e&z*u>r{Z^RIr}U#QiCAM5wy z5I)~nxx!YT$gkx0H_;75G2M2PHQP9PkX(UkYm!qh+J3x?NJ^W-K?UZa zFpFSQaZxedeATs{P|x(Yxit0{^NOGc1V5N5^zDJ#R@KOI>Y(gH10)A2{cPM<`~t8^ ztVO&>5K33PO>HnRd)Tnor;eOLgHm#t4%YjUNbdHyigMH;zl;h!F#dZubOX2d zU4#)Dc0NI;B}G# z)93ZRE^5$Z1WZ&i8^Vp=hxr`3=cyE90)u#;SoS*8I_eG1`*%NCO7DKOgz)!BH>{}> zkJ*b(IA(7yTac8!DGKS9BJjbhuDkRYg0nZ+ z6iUb(Lm9iyq^KBU29%%cSk|onPH?t{8bb39i6Ebhon}x>LPjsx2j-(OilT8gTFNZ4Be(23mSNKM zD)TRTFi+v8LZ-9g9tLSw&kmH>z9^(mi+HOAQT?-z$@nlI+WIGDs^cc^cZM z1$&~p@Vh{;WaKrna3d`LJ@yz5{>$H20BPYHhL5)5A=#58k*|2BK~StdWO=AU2vX|SveEH=NNmaZ(~v5$m*-cSBt zqdVw?1;xd`c29EL-?d+U{-_S0{~J=2Jok4G+|iv8fKUF!S<`9OkrOG3f;b`Uv>`hm zLJ3*pL~8YpZB)JP8)__HW3|;>+mYs7PGQDCu!L|BTA*pHGi$#T0veIrw_r&DJ^$Lb z5s~@sj9+)}@%#NsLB^|7$J;-AE}Zi1rSCI|nC#*2*H=s`8@- zfGC0A2fo!JO+kmhevSDO^&R@Vtp*$B)H>$sQ*7g$`5q0VH@#5*rmn6|u3yz!zm*zG zSFr=$Y;ZYMngdF0-oBP7ESbX&8AMOK__ZfWEk1Yn&~&=)lA{UPh9NY4Ee@ImY+tf5)Ae7p#k>$^!Ctv{~jzZpejF zYKwX7y~yI)?we^3IsmH86OP`CPB?aNp%x`%8vzI@CSc9Z8QtA3@Oc`aOlhO0Q1qZw z@SGC2X-(MD3)sLTj?JUzD*l9N8no}gOxvKG~NH` zLzI=J)vUyLC<^(a;-q@D4v?GAB~{N>nM=Al+L;Xnb>aYecu61aX8z?ss(MD1ul`hU z)-aIjAwZ6jI)A$4Vmjr_)5xdQ8xLga4NkWO$W@(B)Ul1{y)YgI8J6pAR=vV_zpC@e z^*4LHPdyuKbw&Q2pY1^eF{7SfM@xOTbw2dNH9+p+yqfni=Qpl64&`ls0-ArR9kLxn0m6fX=@^_#xrv zKods*0QoIf9d9W!0=+uN6x4(D59Xli!tXigHZFBI`J!S3yW6<_jO*CCrbF8n;p9%- zANzS=EBsGDqz4TZDf?|a!+u=Qv8yQsS0TMl*!cy$zowzd1{@#jCM#Y@&WOOkdu z2y81n@*rhp=crCUjipG<9+&yxTM4>=9+(iY{S5(}*dtI&9TfOTVCgFXwRXui0LCjk z25HUH!r9}u-N>}|x~-tkJN(1az=Un})X5C5s;yw>2iM;v>I#rOBc1%JN$bOG!!(`|{@3eFxlcw`P5CiX4o}8%2MA@NOD4YLuXyvjSuX)FM;g^(L|XzZl?TOgxl+ zV_AUEfSz|*?7pAwFMZ`dPr-2(HG6FdB5EOEv zDJTTeL+l%7=^{J{G6t3g!_TUT4oif+wQ1a5K-q!K4%*14bCP|yqU+H zb%Um=$nEhF7|$L*0zkQqjJVPH?B-PlN_ZXkAY;Q&qGBmFA)Rt|pCzytVEh;$XUDKS zi!js}yFF{WHD4jtv7OE*%iPDi2LN*W8L-O)PLVP*sjL?O72x+s%o)#21w8`Px+NTv zn;h)>q4e0A^`aiDGd}#!BgThFefIWv4rejXno7qUZp~uOw8>%?SZW+}TDlLzK8Q`A zq}<&p5oNV{0^~aAgMNvOc@4fNnV+wsyn?Rz%jHzK-UF&>&SK7IrZ3p|!Dh##re^L} zn`E2sLlTGt&h$&`!Mhl&fPFQHl7~;C#LS(#Jx_KvnoJi&U;+}5UVP?xPi!>Xzyv$? zK-<6smt$!gDA>b5h7jFQS>vos8vv5aSH3G{M7+lo=~7f(WZ6EypsOV@q^oT?0vTLuTHTI5pTyKUp(gPAs{>uUi!iNSHE*E2XDaBzeA=kDA8N%i#uk?cnCg5q<^ zsmIbOe>j?wvPM%>%wSci)`Ad>bX}@$FE>v5pvX$Q1X%@GX>5Ur)5`UNf`MA(Prl?W zg$}aFlas|dtaio;*b!{0PJ2*yy2o>8R?1u&&&WI683Mhq1dHDq=VoouC&wa-rIkpvMO`=Dx!PemP7EyJ{D zkF?ya0z!7#30B|$wbib^4< zn$3_mxdF)a%*7`>%3Opz+XLj1{V)_jZq&IVaK5`5`5x+fco$@3TkWO*I}O_wE;=Eb zSInObl<*oLM<(!1R~}DU8KNF2XEt3ptC~3p)XRva`?r9UXu4G-|0SA%CaJMhRa{*7%tgdi79Q%wEu|8|O3< z^8_Cmd}YRF=leqf(lwV{K^Xr?w_x!2!IU`Im=I;-dqCay;)MkNLw5qu#1FOsBRpf8 zLO}dZl)39smNE(Tl3nYOT;PiR+r5Y=#bh(7#B!U#*<~|y;$DJil^&g*nS7$o|-wj)SWZMu~ zyRyJ8J6d~W(EjVcpG7W{R`D16+Uekh#l^)=WhFw_?GU(NgvP?t$ABIAtn<&|KQS@U z)ZSE0O;rWdQoVtahfk)|ys2VI1y8BfNuyRj%tWnD>@TU3P^-^hQa~^CLuz$lQWYxp zwfh6>%nXp<>i5$v{TU#~#{$T^4zwRL4iKD|YJF!J)p`eYG}lsBSBD1+09oV!=Ap!i z08pm}BpS1v8|v%nU-v#pUw!^1b#{n#%01{@zk1}*oK(8}qN8Z^&bv}vayBJojArE+ z)PS)PAOk@NsG-N>%Q%^hN#zI7?#Auq{jkZu$xkiSCDd5HmI2z9der^|^*a%2kw5+N zx1P{KV?AAa+YK~*#(@Hc3BwQuuR!_1nJ21Y=xjZq7IlcZ@qVaXzX2d|OLY-#V+Z@@ z5C)F8-tm7hEV3sYV=*jhH!Pycb#sM?EEp3Xe!86A|8xZ*A~DhpVCU7B%%tH%jf5cz z#U*CY(8+(G7(+c&ygRs_BHx$L-zJd}tXVYvVP3m_YHcXj9NUEq>c`rA69C-J%if@N zLoHA|59{fvm%gQ@7B}TLB0WQW?|H}!Ir;c~Xy#$N3p8>F{>YwiG}CIDgFnhwf5Ll~ zwaNEfrtp(AF`EH}X{iH$Fh@RN^_1t9lDaU``hlev@N%u=booi#W=nyc1R zbM*#3&zbfw#H}(yB72s z3Xq@28RTLK9lQO|&A7YSe_eFi!%IPNhw?2g)f-tx?ADX4pbzGC_+F!_{S-Fk}5G`Q9Gh{5renhn%czK)rM zcs)tJ3F~On63Ke1ZlJsV^|9+((tgyc^NOWRQLq<@G5k29=qU>4c;A6n!a* zLg}NYQ`%@#fLK>2RTj)8P~U5Y9VyYVoJF3LJHCfC$s@-{rOQjBCNCHej5fY0UGhy; z+BX^3E112Wdih&gx}w-s(2O?tel+PhZmcQhc&7T+g~M~x=$cDr(vUPGc&V^`kTw2j ztNmNDh%m<1TFmyRv1}ja6~mLMux*esY!8ZaWEXUQ{NVpk>yL|l?PzOa8fT+@iYb5d z<=5%SNB>J5?UDC4W@cs5eUCgy!*WunrK*VSF6cOR`bBGF1#MaWrpf-*&1xH;m{j4B z<(k`%X<(!@8!lzoBz2zH7pLjUVWtH79{@vZX^;+;65FH)em{2}-F4gFJ*j~m1$y=4 z_o1T?n<&Tu5_hu4A43UQV+Fey{sxS@v=oz@^8`nwZKQ~G?S#~ACA*kxD)3EN6ON(8 zEOVkq3zh%;2?LA9E|qSrrH7uFLtDyfyT8b6?!=lyDWE@Ia*e}sxDd}?4M1|ZS?fZbGv&! zg`BHE_V{f#5P))HgM6UGg?T^hY;WPDz#a#LL|lsG4`fElvR|m7Y&8u|&y$>6UHrR> zU%wFOt>L%*;IrlQ{_N$E^V@DmfPCuMyqmlHbX$MN1$#+sy7d~BT75sd^7?BiD?2Oj z4D35dOiRq2AOO`^Lycv>Qq{Vz2tgV`gJZ`I>XPp9=0snx11C|&xWgsX>h)Cd%jYV! zx?!W^fRHEVL@pqtTca3}n>I!JeKY5;U(ZYpf%9@lqEcXCo4!9?dBatdm7Oh&8fU%6 zqjs`rcj}wBC&n%^(c&d^)C?rnigeWeE-Ef6rkk(1i8d6ML}bQyl!rhGJ?@B!blj19 z5b7kR44udZS5$Ny#U>1~M7l8bV@s{Z4qzGuqo&AUo3^9$Jc%`8!wniE{4qA2>bkLV z9o1}DN}a7uDz$WTD?Rh_JX-c+t)~wckBlB$phTTDc zg3h6=+fLn`Co4%r==rj{-tVWjZFN*t@Lh;nrq)g(Kxf2Wr&3&Ertn@k_BX*`YN`_c zebbg2df>4+R9)K?F}czog!OdNaeL8GhwdhToltOdCLBje*&^5(SWg|M13BV7Gd+;! zK$DTcd>91EC|iahhk;zb}(ezDFE=qs;fa|yzTUAXHJ@EJ(+FTlW zqt5H$^7{FEP8>ylJaf8*!Y@5PKpqpH zN+b3Gu#_s?2&dzwrLU_DLE`Bh!kcA%x4P{)$4BgrM0>o+x2(57YL zH$lc{f3=F<`d~@q907)5NJ>hg>;HBm?LT9>37m=IawSrLys$P8XO(< zrN3|x81yOG<)PNJ*%=i44D*vO4LGFj_TBF4d)?ibBBkpwBb6#6b)`S6EILxJv{h=bo<{C-rm&tMM>rEJ*MBFR ziO5KOfA$J?thw=#I~^YEW7l6cQ?ietk7rrdJOkuShV|t1MLoSv*Y^Zxj_J&noY!Ek zs$BOC+kB`AJVNqKyq*@lD6A*U$Ffx$=;@c|QFF7afXEs@`Cm|oJW&$;M5#o|xeEW> zJ`Gsd?~a;Gvu5sLwGnnZ-l9(f_}RSlHNqKaYzSn}-1#6b9TuuKwE4J{ezjZM&ulwt z<^<%WV(r(|+EmHwneCq4j-w<~kf+@@RU)Y3;n`GCp$Uj%26f1sGW++56 zLSQi4M;IKw6*6aKb|q>02(qzOkBY}Q@QSIsxJP)G932dYH|;703hc% zRwyZFJSFF9c7Y7omH8)J%9rd+#OtB|nSr>5`UYl*1X$~ZjeuIr_x?wNVrPn+e_uT9hy6lgK5t4X}4St?sd!1@ZHt=)cLfNX1 ztl$O%qt26cwug8)@gp)K+nAV9RVnh zbW2K3qU&zGfunt*(^nHm&3{%N!5_ z-FP!fG&WWWUD&dGtWDV&N}~W22+Dg1*>5|8yg%ToJH;e{LzyboeYJYGKab*s8eL5T1RB* zOV7PXFF*GZL9rWX!4ZHWdg+CSup)|@$%szJ!Ihk~3k^ycYNvL9u6awl@dn0JQROu8U1nfMLuH8NEOMF*^7mpB3xAq3Ys=f-K_jLEytu4+0<1 zPk@~loH3me6O8rBh!V5MQSOA}1cMsa2aL~9W8=cWv)|i{N`f{dGP*mnT$t7_qUW(T z0F=iJN}-H#hjKtou=&}EP_gzak!HQ4livPl85?&I`J5eS6ITI4tD{|Y2At;386X)K zb=6AEPg~#$X8~AR5Hy8Ma-8qHzU<^wx}WHs33_MLJ=hAy@gCebK*$BcwsQv1b*Sekfpd$0&1!m{pGAGub6j zyK(W$7N8aZT=zfrnI{2UsDBNR_UsGJAFk!m`e)A)_S{`^_DKS%us)<`AJ>K+%;lw$bH=L< zKVgoAg)Ps3VVRTJ(G?e6N~K#$oi0Jg*QwdGr_hD} z_a};pi3yxnH6@EFW!OZumZ;$j=HT#E2oAThd%27e2*bN${RDHqIf7;o%#fJ5v&sr- zzQt$NDUg_9&JflUNZ60d`+@qP^73-J_ODla!tRCF%sgawPBw^+4wj*StbvU}=IcQq zmn~Zbv z^~J{eFr9nkq@M7A?8pfUMSV&{!+ZR&fd^Pd zASybF4mliUp|2nS<-w-yW6XjP+=;Q*R<8Mi8p?jL_!8WJ<9Lrx;!#C8q|9B9Fzugy zYOE-r%GGnIy)~Hl0cP8U%L*AF2UgMFo8Ry6QWW2viwX+w5CHNiqekU#Z(}UdgNvFZ zcieqDjTkvpb(m|)q2h~CDY;F+qY9?hNuw#XZJWCo-X$Qp0*dsYR11J>1m=yIJ{4Ol z=)t=mpat{hdlK;&>9Ovu=SBH^GXDBQB_9kBR}qTUuM*4-F|&{@73;Opd536V1+F|asBlmP;NCz5cDv7 z@=5IEH!6M&998_G5LL{Ppg$tJn(7g_oK@t(xI5{3 zU%f_knjT;Q40Q*XnPy$hzlwyS2d& zfN>^W!2$|t*B7lXqH8X_is{w|+Kw>-oJBWtPntDzk|c}nSW8&}oO{S1H)qkg1;}}I zxX2(kZnegdx21%ZIKZ&)gAzI}Nn|)tK>{m44yy0F9{$9;Oy&#ErE@McWil(oYuw@- z<&0MZ7T1xxd13{1O}~q|o0N7Zl&lilqllOIrAPdjjMf40-8MQq}<( z(}*oVu8mIs2xI0q_+(6S)su1ThMl0>ZdlLT8n)6fOHhTL?P;~kRQ8mm-C$1%nGM$O zYksDsB+%7=Il@%B3&BFE7B&q`H-c6+EqhJExYKihoVWa_7-o$elD99#CZww}=X8Gx zBaiSQO4)3XAOQ9aLt+N@pYOk&M|a zEwvk|cJoRLNbcS~uvuj;vd1Coo0h*NWRmJW!)IRcFnj#w>(%UWA=?$fLh15xHzrH< zE?)W-(eHj5m= z9L?1M=bUQjH`Dj?exUpQ`G6-f!!#hbpcc7_^3*2N-IYSx$Hu)o-O=X&j?=o*pA6Am z;${HD4|IcRqxLmLbhl9Hs*mJ!-;aIf3Ej6!hll9rJuT7Ch!VC$KWk3L`qEXDG3G$E zKC^uh*3iRfmrdE-=Q)_P==fwy*@6L@bq51yxFi@cFUkx&=%AvKQz+U*%trtqN7n=; z5ZOvGgE{IKK)J{m;O<*-wM=FLnF^-*KU|0WQg1R9-1mIoj!29ETJxiqwmC3ui404uhey($OrR+*K06EU4jGYgmv^?=_vI}zAE&#a=P>b;b zsI6v*bie86czxMwYS_A3$mWPhhKR%gW;^cNi(=gcKpv@a@BWPS{+$3F+FEL;qF^ou zM5@iY`oO9JCpjGcdh0I~>!{CMRXm@DjM`UP%hUO&+tkGKP|t%y6PcYxkVPH$Z>h3C zLT%p-fLu}N&P4^qoN3^EESz82mjQA)%`UO+Vh-{(e=!2uk!6-KW=0R?%K2D^yOJ}- zqM}qE5wn%3jb*0rJ1(VVL{$+~@!lsZ=>1RKmqYLqt@5?B&HQ2W=1r1*`TBd!PrFhM z2%OE`O{Dq8n1VH}a_!fa+O(mVq-67HrV0(rA#4mqVIVte>_HKgInGp#w<$5#B9_=; zn(xP-qBlG$!IVEbpYDD5KB0yw#(=Xr6U4nxA9s`(kktfsu5pG6Vvw&oyK3ct&3#cZ z6q}ey8Kb9DbnIZ;W!sm=eOOK^UHz9MX-Jw_?;7%sk_`wP4>n!iL2GY1HY9pssC_FE zwgK;PHa55wAXg|oA7#`Iwy+-}i`kM*3l_c)m(uL7esUam7H*$5{+{Li-}g)8-Fo)p zJ}&!cT9a<)offU1mi};HjuK6g&ucv_PCd>S{=0NHH8a=Nc3w9K0b>kWRv(nOj z6!dd_)%W|TRXY(*7#v4uoxC3%c+gZDoRZ7*tN4ScQYqEC2Bvm(wX<<#PmK~%bzz0T zdM~obts5>>l=f{6)Y;k)aP;HdjSUTS&z<*pRHASae6TDA3|rK= z!XI;eN;r6NPW3?UK~aw8nloJ9_r^T5 z`EbsU^wFH3x{<9Ae&kWM;I9`RO!#SRaDt888#Q)~|BgPcrLxttDL!==I~zco=o4tm z!@tvLFj}v6W1hQt7x8!pvIw+Wu})B1s(kI2Lc~AD{hg1N)2Cnm?1_QruIGL0YB&Y1 zy7(|kPfHLwmY6lpBG){=#S5u?&6gH-7Q2~to!}t}wm`NLDEkJdjpPgpH$bEDqpt(K~0>LVmuliiin)`l`_uHL|u%_;+lU%IBzH`#t=dy4t3E=lMF89Q0W z9pAHI$t%>_P%eB%WpyLn^Y70*%-lbR&c1N_jC*(ItGDm-ceb%?Kt@^`%B-}Qq&haU zc0SYsx>W+GT{l;7PUF0I|I;7ogHN4jGQ0WajPwM$?$VYrxh@I!(pj8 zCXqqD-OAn#%T1-L{(Kmvry9U2MWG@2(L1zPDgg zD0A!qlri=otFE*TYf>Cv{XRE#KsZ|hGKc!|2@#Sxybn%n6+j6#mAb!Lu;KAr1kYY~ z*);@~sYo~IAb&XH6#C=E7gCf^QW8GLWRne#qpFk2*L=nMd$_gQ?Y_EFiuAWA6qk_B zc3WcRSoYJJ8-ku-!^_HK+K&6B*HBTR7voNJtE~8H^^g4KUuh6K7FU_Bb)S5GAD~I_j44diu}PUq`qWv- zlg>QvOfI7uB>+ou*#LEYt7J`fSGHjr)NWeAHL7*pMr!Z#Kw5Vu+r3I60~mMs3eDr* z+E_^&m%Sm>9>?1@mDbWjkAF_pwawlAJlp#K=v{lub(|z+{4U!y+0{YlC)kMkTLb%0 zTtcRWX&B5Ko0h%7-(_sef7-}8ffsBE4)g}khIi_)VZ*!PV`nQwyLtAK-{6B)YV||t z(rYd!u)i3a4D&%ESNSiWF||6*Z>LRmzFX>!6H!9ePL#dtQC4d8@^!Rz^{3PUYIW_% z>g@8<56cSarMDLD5Y+0Xu`Ka*_zzlGTwJ`v1LXMdp$q^W!T`{qWPs$^Y?LKtj8$tq z8zP1w0ia86Yp#|?Ryq|*`E?4v3-s<5<*u`xTARd!1PAWIc?;;FdmkcDt`D@}2*6Q& z{%O-_@@^x91Xegja(6qHlCpOe0cFqyHiGiXKJYj=Z{}=Tvm#^+y3qeF zdyjFhQ4(NKVur<70KFrWzCa|Z=6L;n?mW8x@ApxCy%@n93Hiy&&Z4^?zK8ORbRddC zK3@zWa~~1F#@5;1Lam@RLUgRDcDRhf3HJuf2BT81-D@0AYY8#+w-!a!@EqZOlQL?Y z<4}Py0Xfk=G+5@&5M{{q5Syr}vXGiPCRB39eMDsf-#3a4zum!%iKp5gxrbZQ-@M~DoWG@$3XuZ#z)Ao zGz1=*=SsHD*u>E0&>XZBZta-I2m9}!#4O8NLe0vOMK4qPw&3_eJXWlN(z{@QX5BQ9 zpq0De^l3E7vi~O2s3~VrTvE1h$F|0DD*53hVSM!q$Wasph%hT3DY?p0fL&@$Oeo!cLrx}!qED>W?yx&h1>%O*p6M~4| z{&*$L`36Q?Wak?1-|xWv>AG7Gke4W&0ieAT1Gm(7BVeVirB+w_vkT`U)BAjMiOkRo`p*{-F6Z>VDJH^Q7kE7ytqOAUsU>A+^4S!UmubvdW=Vz$k~eK+ht^ZtNm zR7l3Xg99N~(422pJKn>3gYt6v$dPGnvA$=C6tMd_-@?NUj>F$$nH+J@u5{9|lLhbx zU6IK(&N|3Uxk;|=UI)D@F=Gt>F$OT2ZDczcG0IY4FPFT`BA1%3X5KRZcAA5(pyO@+ z@jbQPqoHBnz2}k7T?Z&Rk(<829NU*}2r zB_u3dd&{*nea8MwoXR#gFAyL5Wz7CY1m2Y_deP!%;H4365S{#9a*hX{ZKH1)AB*7p zgdwBZkEfqE!4jF#uI#b--+oW`-f@p7wD!6m(#{Ts-DqsBA?#o$!>V6nZx`SbV_ z{CVV)X>@xG`%IEvdt8$r>@RV^QUv?cPwg%B?DMhnrJHTcP-nf2sWOy5S1Q_Ct#sjc z`WzemKwJ_RIwY8%f^UI70G3ab(ljza02F`j^@X(jCmAV><3$$o!Z6G;k$H*aDdUM^ z6L!k~2X*y;c#YZo8VJ8E68+UGW=oEJpluN7%~us9~$<2&=AXriY&Rk~Wv^kcxmC z5fS$^h3I&xBg{ux;|{ZRgw>lIjk=u3I^xz*6B1}we3YCso>ForP*hxkXvmoWa!cS1 zf+{4Aur4^l8sG@iqB*ta6crZJ^_N}ii6gAr6E<*Tk4AvOrN10b8AGhum-+ji$3c(5 z=BIivftZ{|-RZ#g0LU})r%~1}hg-5Npe{!?rruF^Q!w)A3Y*9Kk$dHZU?=Hvjl8 z$#gusfyG{voHKz^hVD*LvGIZZ+^KC4%E2CxPt)EWkVk`KoC9YiIv&oG;)T!gx;D1W zrFHb+6JJt|+blhQc)97%0679@&kqqeYX%I#FjpiQU*`+a{gp~oETxUyn-Vids}!b& zpe{Wy&iqtM&=n|3Z31UI+M3mxz=j~k&aN(c`_;GT>Bpb;#E%F4=z+%`q}-vog553e zqsmmbS)!l1wYhB9wViLrCX-o~V~YTWA)}|MOdyIc;48D&{c3`2h1&buJ38pu$DgJ* zUwJd)zA$|I|FZ&7S=SY28VqUK|1E(r>4sF zwE3qGsjV6NyZTNwk!BM;`}#s^ZU)nsM@{h;``YPXWVU+r2D``Zung0^JdT0aVJ-dj z>PzY1!wwdx)j6Pz*-^x`gtG%WMeXJvsdnQs>gw1Qv94opA2Mct3-dDcd1Q{)mx4hx zn6Zu$4zIkuh<;cW`BDNA`>38hsLk)En-;GxdXTq_-vWg~dTIil^@n|F(uCoGI^+OQ z0hWNi1e>9;>6<&EL7g?Nz9dH|neH$vg`fx;oTk;-F&yMr1kF}zrVYg#=+;D5X;ioQM|P%m zb+)nLH)_h6mTcRQ+03sk@I(o-kAznHXo-Y2XI$%bpObSaW!OZDj!o2na%W>?of@}u z!K$jkFtUFyln+GJo9k0n7cZd7!tbf8y)|I)s1doV_z(U*(1If{dH3OT{%L0Cfa-9U z0&E5L*+r4aBDa$mT@v8b2RNQObRuVzt7m{Lvfgrl^LcH~E>eSkDw%P{c<6&l@%qcI z_k_}KK>oJR2-rG)<5S5BkP~My7cY30ON{iSxz7~ADv-Gwo%aG6rC@a@rHSm+Y$#B4$@i%%OtDZ?kRj@2`n!r+CIE33S6=3#OU!G<+9uw<1i5}A*% z)<66DS9<5;<=wCe!plv62FSs*bB!dB(2k|T4ybi=GPu4LjCZkvc@INyMwFxSU{;&J z7N~6oP%8#hH`F)MeSb&kyZI3ZY6F>_HzTuCq-vG*k#)JE@2O(lT0efi-$1{SFnb$)*rb!=;(x=qWOC9)?r0Uj&^iIGIp zm$JvNx%nDO7WNp0{U~OC8sw0JW=$pN)By}9*|=s2P3^`_~mX#}H(4%`MkbvYCk?Hi3PO zc1#Q%ZB10WVJWrLY?21$bY~(uKJZ1$i|OUJL9Om# zFi3YkBtrKX%V+Tk(VrD^H)8@CoU=}zN<-3uSwIlPN+??da^FuRs5q{`0_psGvQ4oG~5l_u+aN?)Tx8h2Z@N=7=3Ei;e_HBi5TKFR!2*F82nc z;VklV&)`4!yRk8lWTN0i^btpJw#n!~BQ?H}Fzwv-#oarxKVY63%GWYQ4-U$VF$YrS z*aL-ZJv&-I97xZ4<`f5=;&`T7kB$~=X`z2k`-liQIM9-^#!<@9i9)1lxRqf2y_@+k zD%GLqMRkUO8c$@Nfb!8&y^(6StYjy*9wE9JHJzUL%9EN-?#HC>+=053S6p-mp-!c- z$pAJOMfF>M)v^|>(T}|Wkn4Q}!$C}Z8fA^0LD6wyMzEa$$Ltsh$Pza8)K6{A$XFFY zP-HDU^Vrk$)@yG^+!@w)X8*U<6E&M|BGZQ&1M9HY$(&(!nP+ZC%{4#{`Rt)H40=YM zB`coTu~+iL3j}&jy?GCiXVXKESpjm+_)E#P02odCvbH|zQX^(laSSWXIE@#jM+%~(>ma;_4eNqe_wsgP9=m6x3Pa^B}-ucZdv)Br8d2ru?;y#9%YZ?oX!}%A2Y)l%aL+Me8F4}v=B24 zRl4bA9?(sz!65t5H8%mM1^sof$^4@X)HcJ94;$SYFg&}ucp+`8M?G@m z=^=mr@pH%k03ZNKL_t)#)C%e2+2ha!0FF;b_PCLa(`Fy!1jG7r>gtl!9uGCX#^1R+ z!``;JKDC<;uRa{mH#dABymX;sPODFZub(0*DF)U z<{j_%({rRKMyfoAw+~!q9D&U2OuGD<%W2y5Y2sS4!vxz~IC~uXEwfuURa4D|B@qd< zvZGeVS-N@ITh!WQW~iv6|LnNb>O4&V$VpKiYAPtYk$0fI$Bfv`r$o;tA{3F`VOw;R zkB&KfcRKd)2|`URHRE^|E6M^jOIHVj)g7h`v5*6#)iMe{hze7|n2mUK0aQ^(Ym-nf zrLn$&?gMT1cae`k4d2(kdj+C6k2!1t9dp=t%bbFmCM9>grN;A?RUc8uwt9+7&Zfl7 zv6_(+&RG-g_c+)?MI_2HA3`~Mtk3dAX;JQ`I^S>#vvJTB%y32h+gD$BgHaOKjRtS9z-Y9}j;T0X@SnGce?=%Z9#l|@bH{WvQD*QWC zI?l$bBHC70%Jf50W2)>|+O*jkk&0a~Jossxnv9~!{$@G`=4(h?DTu?^T|8&oV_5922(b1cQD4yE{1Fp$V=wCVi>s2-0}ET#;j;NBZ#$3UOG zbjz5W9=x5%6!J)6Yr+-!RAQJrEv zxYx5TBmv0bkWtT7r_4`w{j&$tTkFfHsb&KQx*@Y1^I$&{^54j00y1QlBkU#R>%OA$ zHD3vD!Tlf2Sw$btS>*{pzTW}+(X}^U!?oXydK&B%v7CVVTgZe_F2qr_(|u)Q-;ML! zv557KeixLFb*f|8v^VgauKkMt7$*<^{^938do-s+htJrBGv07+>kaj4W&0OodMo<4 zMh0H_2{gqBEKkkdje(}_HE;Ag(0_sv&J130NtD`BYN_2Qtlz5YM!NU0F9~G}9Jk*9 zK%Sk0z4rk^K0#CM25Q)f{jQY(^3js>0ag)&iM_*JNA)94z+DNt= zoSs+qb7sGXoA)R7#Yh4m>&t$nIt09wuVH2>G?cq~_mdxK&fH&J?Y&0F+iD`)^qc+) zklX4=N)+Ynas*|JnJ&?h-jP%C+hxPr8VV9Au+e!`iBr!Rum&V%jNw0KKqUA?SwKY$ z4N3vyfJ*VKHvr??>dFXvjq!eDj>CV~(9r03i*b5kW>zNM{m@;MH#$$aB?@42ijB?E zP(dwqn>iD*rLL6EA%93bN}|U|>@Wn3rjOW*gXFEvnf__M54IQlbj$!29Ve7xP_Ok< zTT>0QHW^!ELj&FW_xowSM?TX@yA7lBPMu0%-_sk;Q^+~w-3%s|{W^y#*IUaTI%Bdl zN|TMYX+vu-Wt4JZ55PYTd)`9x-B>{-i;)puE{yw@vU+;xsk!dUPdE^GWRG8c{xhulCJ%EyM!zZ06B<^ug zQQ@C=1u-62e!a*x>Nnm4)681YJ4)A)kd~P_K)eMlk z^>ga;7fRQ+_ZhS9n2@0b=>_*IPV#D~Brvw(qp)`ZATKE_q{p87jzDeibyG82eRnP@ zD7*t==k@!H&+o4~NpFsklXpeOMAPYKpROhs#sq^gv3@|Ut_Ft&~0{Vl*A>dlUre3FG3psw_1+PLg3 z0_EP|wBc-wCuWSb$tDav+o9s!^xwI04~Bl5!T}YkgVKC>R}f^?=w94VvXO4P?r)yZ zOCf6c^m9(5GtNC-$Rg*BKFR8wQWXrfk4~FeHR_&u<@9a6e4U?oEI`>aByXz4>5M4F zjmzGoy3*Bx6RE7cfgXEdKH+DiTU3<7fal>eb~XW?@w|@A!6s0Eixxb`^i}4jLIzNv z6DTor3?-zEp!k%buDfhrL#`iSa|6>lrsT>2&xQ(iaDWmYKuBYG0nPq=IlVjkM^6G1 zBK1w%<2jQi45f2U*@p(l8y!Uo z^tAIiQ^(iz9HY!5;YN^VR&v)-URGkR{ilrs;!^-cJZnFgEC(X8jYtM`nyccy;&$I`(jp4i*xv?q7$RN>2HyY|WPz zxx-BA`w@Wg+Z( zYeNNiB5NPtVb0nwDlDcOuDp>dwu)JBJ?#tbhpfXE*ki&lOL@l;lTWss`P&-Gspy9n zEH$H9r*vTtM9vm)YJ(`0lCvv~*z;ryP+PJ7TPj=qnH8x0@)!E#%U>eyE5SG+>yiUE zlMO7e>}LW{Yh90O;HE5lJSYWrA(=)wk=X)fd!Tm9Dh(vJi+u_O_KNEWK?yRS8~X*9 zzeVt28youtpa0$yzo1)RZ!jpKE$luTiM1H&8KL%Z^Y8Hg*w+VH6ZWD6W8|MNis`*FcRI-Api=3fJ6aXac zEYre(qW$U%uhFY7c#{>}o8lMAcLCTt`q1%o^r5?2vdE=MMq9I{WUNxV;ftcQVS5mQ zBoLwMCL@yoN{CSeRsz#(%&Aj=lO}F#>~n+JDdt&fQSw!)Bt&R_A2`P+qIrJ z#sLDI^M@(I-pI8y#~whryPBN$U7fUb?bl3^XQs3j3^_%igtU>AK5`$5iA&IGlZT&4 zPo3zBj|L@WNh$J-#x_9Rn$17bnw3A$gO7bm)gFLA5tF6u@Sq`S33TP34^jaYMs6Eg1OY*Tx(Mk%qc)l#LneuR^VxS0OXuK`q=%J+V5Tge4 zwyyK$ZP*Z`(}=uOZdc!onl<)M%FwdLz?K18=J@1X$_6WfFPJsPK_6?slm>*UYuh0} z&KLU#`eW+Q-3@i_BR{yo^UlYtXEM6%=Gx61Yz6-h0!G@Ks;RuPh92O6Fc$$8c$wcB zMQVQq$k`USc!tFmz_~Vh+66*D1$6bgvemS4+1pkIGS>NR&P_J}xef4W)u$9@qXFAT zTzo3;VW9zXds|>zLxrW3oR_u$^dsm-(2?->U~|?-tlNgIzf#S{<<#EZBruw&&+?PJ zo;XVRnDt3{ke_!eSA85eU7IV<5Z7^YA46Q2=WpIb?ejFudj}!cv&|fwzc~uDH z!dCXv>do}hJBvMG1?iJht?BB@c-Zhe<^O}a{8#=K0CG$QGJwuFaWC3u(ntYNRfXnw zj;s)94m#VYxq2gYv^TTEU!=q_3SYPgG3)Q49L1qd5Z6LAQ!9YdL(Iy-W_;^)x6#I4 z+LZgG@Jc$RW|2=P{4}=Y>|JTt9G}xeMAdCFXfT95!Ctvg+O3K`s60>&JfRb3A zYZY{n&z%6s7^81>1quHq`#WoAhTj>UAAF}`c)#9zWRa&)oQVz&iZ@sXWb%ST+zWZp zBMVPI=Tu7;IfIX;`o4OkFEaP7EjYfx@7GmW>(%-i)W=`ECwRT_-(^%*WROE5*4S7sh%wmMwK?K7a=oQFh-1W92n2k`( zJN5)b?U^I&kpTcDU!O0g(5kJa2k(897R*~XP*>U@{+u=P2Sm~j74U7GrDLXDXvrFZ zyc8~YnviK>X|gPGJAj;PEn5LUBPEdW`SK|JV5W+3|4+)gg04c|nwV zwXi=RAnBR^K1*-E_RfI3^cN)}Oh1RD4W_FuKFHz##(6wu|BFm4AgVKCgF(j-<`%a*qIVu7`cz8FVHbz)?{KT?$lq)_@fNA&Yu@T1!da@Z54t3RWPg6}N0kJ(AD){jo5jJ$n03m5;-AX7jGcHknF=yu|Gn)N!> zCX?xP0LTZY4wGh(oA(CTA}>9MQdDm^KBrYjCH;MIL9y44%IyY_W4)Yo>hI}-i_Z_( zc9{3hwidQk;+b8<$YQ4MQ)MQm3)Oy_mHBQ0Dzw+CSt*N3N{T|M8vPX@SA(nf5h$lI`&rD4a+EZn z!pw}q<6;Mp+hy9?o!OG>?Epqy-ZJy|x5}GtmuT-%AvXw; zz5YsX*rd2N@J&|{N}^!R>gSwoA3NHp*}$-a>pR=GF;iO2rWI;=1mk$}Rwq5FE%ujP z)~mPbKeFkn*#8jJ9sJaQl9c~=faZU$p>1%WY_`b ztlyyS;^2JLcMxg0CHp;4`eYXw>+JWLayA2p1`S9HZV`c6$ol7V*V4PQfAR#VMLEaY z@BSN&L|I3Jz5qX?H0!sukpTFBjXIp4P&4$6N?urTF#8jsOEg#8tRr<}vw3FU&mIR` zDEz&8L*N91$tE8!d}S>tG0|yTK|~wspfA;|n}^f)&4Z|3FJT-J{Oe*+y5)LBWxIrK zW6t7jMfnCUE2hpL-WN<(^d|YtMo`d!4`SOoy$;N@y#BX{6NcRYTwI`1tDnZKyD>3A zwoPW-W&BU1R)_A1pbVYTU#7RB6mw7gxIRt#=`dT&zWoEOIzeER-QlHPqT%9RN?A zn+8rtN5YS0w?0FK7`k{}Brb(>+zi$RDXHfQGKyNSFTAycR;+SLuj0Iiy7BkBqfEx1 zFN!nBGsjwuKb`W)?5B`9Be2&290&Dia@IJCic63?zwFja1m_Iv2aXQV^%@%h4^S)e zI@0>l)rGp!?=V%K7iK zo4l%cAye{pa&2;T=H$&fOF=n82_5ZjWFM{nj>=Zgrmn7_UWf7j*dsb_yxA5Ym*^?D zzO|`JlXJg|;sGx9jZl+e*6;MkdZJvq=rd}T4Ymdp1Of8Tg>_U5>gH$Wxu$M*(jx}Q z4;xR%m?+lm);fTa!uiiqOMRK;@v^-L04D6>q^zA(s$#or@?OyEpwGzwa%2IwAkz@* zNRthm(=R{w3cd8~%Z`B*&3SU?qJmz;Z4W#64=X$R{2`m zX8y2w^QKU1cE9}mQ616#ugS0EJ6YR(;Tr5O#{~A5V2|K`$%P$YVxwVsS@ssyms#b- z9w4{TnPdRDt*&F6gR99~24%|R&2W^%Mv&V9*k86vGnt?L@AID6jd}T_=${Y%gR+d2 zt$u|a?#N2BQnrEu9%Y|Iy+qYtYN?`dKEd&>14s(4vy87iI5|E!hw`VLXG%sPPD1Hu z3ue4VL|zr5Cd%GthtKZQ>u+ytu#x91x8&-rdX^nLa0RGmbE*0<>%QxUwB%IxL z!|k3Vo`w84g^GRc{(~157xy+b;dawS9Zhy0z6g5kzWYz5ORxSbA&XoWLxp@CU?Qhh z*Gof)fgi#y;_srSsuHR$S;Rg_c{73I3NcgiFjF~cocFbxf27h?A6fPnFjIW|#m~J` zMxd`uqaFmU^w((Bo(^PGl#gZ}GLFoEYIJNo4V(Borrb7Ch(Wp8^y7QfR9(V`TKdSn zX>jTYHEI((rZLJ?mI-I*uqfoXSIvfzIr~ueqJ3L~pmc+>>E91LN(<*Na&4sbblm## z{b{N3bn2{$wEHe%-9#LGWA?j%DJ+A{PpBDFvg9>MU2GrItOLk{vnOr1C<~6pKnHbn zLk<7$&_Nyk`A`bet$?b(lcV?4%~F#xzn^Q6-+t3SJfVVtvU>hS=hE*_IYFTKg2EA> zl1o)?0FvWPJ`hWv3cqKmoQkHhO8H3Fa~7w zXDV6pxK_zU~{^vg#AT zfv^7F-YCEx3c7XFUkClVg=UAeCc{W|yva{ZC7)nSRZYjZm45Oy%jnt*pA;%N(CYG10ZlTJGfjZ>d zUrKx418g@(A3BbXK4ceR>%o2qIZqu5_OYNm!CA2G+efsTls$QW&-OW^&f}yP&}p-F zI*5ktcC01qs|;)R7t|dLt|k2Sldsk=&7Xq=Y$sh1&Yd&QIgQRd|8(*(K#s9cnRj4V zBKq3G0Mb}xsRQcxrG|6IZ7deX1R3PDTUJu7DGJ;AeyiRC&}pXw|DxFe!8_n!EtvOT zt(Ky8vikk>$yaOXlP}jqe9Z9%0Oa@o=N?N2IrQR$v|*N@vTco(2FE*GQIV2aZ5%B6 zfMIrwzcU6?$>?|;3qoWrg!9%C_~`eOY#mkCw$Ou5&ZBC#)XfgM%6r!#kt5$lsT4$(kUqkaLC!%O zja5VdJhgp<0rKZxWsp1+i-2*6e+vM)O5J=qopH|T zp^@(U=YyUwkEtvVC$j(L|Jl0^FfFR9eZF1V_FcBIY^4ea2sQ*kEYWB*_HJSlllYsM zqDGTwjJ-u;jIpE|TP$EjO>D6@iUp9~wz06iunP;@=6~LEXTI;=nLFRk?9Ru6;XV%! z3p?e`t>>QiJ@1jDJ276N^oDxc(?JRUkS1NE(Ze7TqSmU{yg{8it!v!QOzNCwn{oVH z%HRJ)2bhY~1RxGN=Zk5}^VN(@7mQ$?JZ`IgWvXIpAWx8kz)7y7?4d`>(*0!*+Rn4 z?!`I&K}r}g;cNUy#vc$#3SV{0))mS;s;O_IzdW{>YU+Yd0gE-|ybI4^VuC$-T<13f zn7o61yV0Y^y|!b2uQL$*z$-ZVG4eA%SL$Q@)71u$&XN|j3TyfU_xy$4ed|5y?(XlL z_WhORab3od0|AiF7+Z2}k3rY}uP9CX?irUGQc_ds7gt|Sv*ygSNvnfs=S&la{Ta#^ zhUrgK&K|aRz(?Is{wb$PaVVIHh07qx?H9d06m#eqZlP`Qh zP0axl+=6P{*gc2SXoU_QQ#d&;H0V_#Du~^?_RJ?|q$SXKr%j_N6Y~^@Cjiw^Grr4= zqDVo`q}5cp>;-0qArBYw7QuK(NWtMsY^KrNLe}rKCTIL$N^oN^LFP-^XfY8W9rXL# z|46N^t$SwU4p6NQm^6aEedaU*%hM_%kIu1_H{m#q(eWfTZ~0PFTX6sYQ!XWEEG49k zq{Q?B5$&o2<{X}3JH=gc=$Xcs@=}>(p{$4!`9k`CJ)nwc#x`cW$;NnBS0_FBEjptm z001BWNkl|hJVa&98NhHh^lty{lp`dA!l)yNEC7(Y$TTURJ7VQg3r zJn{)`sR@4mv$Ny4iFC}I(aMHCXmBDGA95b&29#GiabSALvAKF_N6f3F;l-4aJ;s*% z#|@t7N9c$`nh>io+FR@FXsr{{HPWiy+S*3Hzx|$=I6J(w)t-7ydg?Ix$wf11WNxZz zj3s5zcm{kRV{a8f`Y8SMNlos-==*2?zh5K6#Shg;wUfcXcv|iRO3Ex|g%@TSCueJk zY&+n1f>TLacIs>E=$b2kOJ$qN`(O2aPZ;nP!14i7<%!3r06986Z_;rLG|3>7Si9Zq z3qPOJcSoZ77Ps;5tPA$-v9o_^9xUx;x54$cXn~p*z zi9=1}V$Gv!8_@(gjqmyUM==D*$2$OWv34ErSi1m_uYLD^Wz2b9vDl`|EEWnugN7=5 zzxaoJVg_r|@wvkRcoKs@_#@kNJ%$C4Kj|6pwB+{|Zz#Jt#Vsf?k&#f^t54gspbp-J7OHCpHWlX;S5l= zL~{o4y2ymD)7vzL3ppwRdD&hhs|dyqrsV8#O!P@igIbX4E5Lct0X~By+qBuS-&a@H z&{aSCHC1n|@%?4J-5}=Zcd$A#i&XXR29;&!Asib2+7?SV0?N&DW7+p(5o<1aWKfz|R0%siERiJ`1?B z{+;`x2Ssv7;)(@oXu-lm$hZwuof6k>23&T}vs1=G%}SI*hm(O674sLA3`0LBN9#k9u` z6#(PkK4Th9odiH5QcYoa{6HT?zT`>8@QB=H88AY!3LqYc5s4X44iLYS;;6!gf#oFU z{AOk)bomM8tvWpRqO`1R8yF!WEi}xQLm9w00CE83g0wDjy;N3grW<~93ssg!Rd?%C zzXBM);@6kaEI3mvXR#?;!%V|rY7{x=>S@MdQkEg@{Q%G#6C&2nE|})=@**V%k=-HXKRL#_>Dr=(Ts( z#l$$q{JGFZG{F}^Zp#r_*wf7irkZu{dS)jpN54=!C1w;b2_-cbPSqhiW@TAyE1#uv zZbe!-GCxHBiK!=k&-Y7XGd$loBCf#U@bB6Q2J%*3=dH1T`Sk3(7wF-?Jr+38q)!uX z54kBqs2HcLxvox=_GViD;a{~*lgI%k79ZywAQx-9P@YIg9m(?&&a$+;{T=x?1?dOT zX=FHc!?**JC5Cm^&hee*dT6 zQLdST+-jDn0J*aMS-Wxc^N?qoPU<7Y&NKgE*$VdDf|381Ej7tG1~CFDPOv}roNV)1 z&jEqMZlmLkP#9<^|BSZPt_j=00|AhWJ^BJIu+dk59PI#bCN*a~C1;k1C_m{eWC2dX zu2RoPa;|CRyuhTbtl9Co1K`B^t}ifXET0-pZH%z*W~_o1m?nU|Zw06BtA zA|*t*L+qU1-c(5j=c~7_ zHt3U&7SUa|-NTXOK^KtM?)ua1tnwnCcZDC(=|?~=T@cx1082hSTk9VpK%uVKvSm5j zG0x(&MFpYqVuB4L@6W-l3z}NQ52loy@$54IaanYuK_7p#i0;1ao|ps=Wq=6sJtrAl z|NR2k42B32g#C{O@UWy|ie_uecZuuFv#TMc*|I%bJ?ly1JZwm+x>jP%4AGF}Od6JyWea?hd^+K1bAu2h zbNB7{4rGu_hhflfmTWBjgXhT{(8lw>sy5x9=0j?N>uW3vQ}Z2+z@h`sq4bgaJEaH~ zKc+@YhC-B-UPu{52XS5;$g|3kM3D_5`j!xpFSE%~_jK~45zrI6_`XjnW_z;9hk^@;4Ns&dyGbAdh7f`7eHrC@*0+neJwHIkHwWnuGCZ z^UHdR+>vHt^qHj3&1xT`avxd06G{;7_ghL4);9*>Pz`6w3B?KH(?%#@XH7#HHIy%* zZ8dB7&Ya;;RLaBiA&dnIEu4GZVe_;YM2UI`UNY z=JxR4XT#GI=!*ZFO`|6rLWpV+`HkZ#e(*3RH^EUBDKc3_)J5zGj@{qM{2}yoivyI_MGs$b^bk1Rx)xk05WY zqg`;m!-fmoo|A0EC?Be`=fv7ANTRyp$DWhhL4KC}WHHtvR=gWP4(VptbX(WF83ru| z0w5Pe7^oJ=DlbI+i69S;a5F7Wdj1r)=dg$B2*Wyi4$rU%;o^v3&Sg8{*a46uB3MUC zumj|xmPmhc%~jX?jR-EM&Yq(dmzS3YJ@0JK8!({MKL16%aOQLpN=2HbcL-9-Ue>wj zZ5AECfn$Eee#eQl1?G5ioDGy0xKpGUx_1Lvx;v?@v4V{54rTu+D=nvMesNu2(&qRX zGXvJ|eHqV~l1I-TL#G@+N%5g!kItX`4ayyNlucQuo#le{%6)!o;2bZ!{<`=Qv=QWP zd0|2!O3#~28HERheJmjRgD7iP#e=ju%c7e3>hTpI$UgFq$LN`-eUNWFem*PrL0RXT z%PBcINz6_&)qqgev8k5ybkhzqa6-0*>^6(_ddy=;tqVZi-p2Ox5{UEqb6(YoSEy#) zI~oft7{C|ljo^<%01W(LX!D2v{+RC+2p*fAe4TTRZmRmy?fbpH(Yh{(_VNafi}VvvadD`ETK-(~q!qU5xT&pg)t$$p@6Qpgk!@V@Z8G^z&|C#c#$}u{wr)}) z%rzhO41#m)K6DYpRYg7Q{}Y9y$3ecieY$QWVHEVf*_nKLartzp?yN>h9X9rG^epNTY%S zPN%dyowWKR3Z99nv4W-5m&OEJ@Yjk1cr{0mj~jIt^%z$K0gyvZV0c!REgw#7KCr#L zorVkQw6QRD}36uDfGgB-cY zojG-CXyeEKp!RKcR=AV>j(&!N7Sik4qi34^42P{9+Lkwdor~6fy47#EQNa;|yR~&Y8_1u0xX63Nk>5tx3$JHp{dZ>)B1z-|1&ML9FVRXY zmVWvKb#+7zAh?f@IKHR3Zhq+=;s%gA*Lm|uq^P#Q0W)M+8WkRJnu9n8qqeP~oE@ri zDJ!j@Yp%S$FAmkca1?y?s|>JK2arQ9%Px;?0S9oB^;oi&eQqK*2brI}(rx@ZD+Ni^ zakGCEj@Y)Y5CFL|*X-6>fVB%_0@k9p!Xr=INY>Y&c{W~wj!m~)6nBC?!o&XB}3UMsCAd9}^|Z$o>lIi)!w_-9uW{`OIJS02a# z14^MBao4@K(TEZ9{Ey>ks{~E{WjOX)Yd27R=|?=4vF?e2`K8;t+~!tv5C{I0AxW8( zJ!UqKE8*C7QdA;+iIiyWPII^Q435U_4V6kBNbKjF+qh2(QpU$w5J4yD| z`J_|R%+9%pv5vK}ZqtXF`K-1r{G25RpHJ!ePI>k9kXLWns=Tv(XBV~a3?_Fk)`P(b zsgzMLo&9=^jg6doG8RgSJkF1uK*!7(tEQeClBkuJ-`QG28$S96;qU$xxAUnV+aERX z29R?e?1{%YQ&M)ev&=U@a+#C_g692?ETpY5O8190|Jo5_3HEVD!GWBT4}NwiJJ`p$ zyI*nl+x}>y&YdkBe6_u?BC72#+8k*>ZPDXWnl8D`ceHoXzn)u0%T@(1e~gInbH8;K zozKzZ5qyP#J=Zp`bVjMCC3ehb~Hk94yc|v=AcrVw@$j>k6Nf`2KhzJY)z7nMc zSX%w)ISi0TQo{***exx@P9AfX4Ph!J@SL%$CYUdl<`ewy4dshzdqXK1J?c7-wFR>3 z4r%ocNUOiV5#&lrUSlx5{NGKqVoh}*KJKqxR+UY5S1Ksjzc=XYSnABWz}mMN4DMwMSn6-J~WAP zM<33TGa|CdYd=S8Gw+T$fHp7~?F_iio!gj=q~;>;qNg5zhMxY{Gl3H-FzydK{1E#2 z<=>~&^bDy!Lc$IQOVt@^Fd-q56HsmszlOiAEj@tJ%5C1;Jo;$YJ;!@pAi0v1h5j6- zyat9pB90JE4rXfSt~P4eyp%e722y~G=n`*ir>f5%;{&o)(9h}lQ)%>}-&W_4 zVQ>UV5VDojG*xiy=?5c~KJ@>?OBhn$(tHiwf;w7FG`9)q5p{~|r|kAE>+ zeP0nR0O!FszqTJ8b$E&5BpaHTPW#QhG%Sr~wHI<#t$zDnk+aHHw9$S%g}l!ryP`*A z{OZ>VIem$Gg*uKf?Ut8OGj9_=f8e+wiG8$=hJ zK82=CRC6-}Xqt5N<&H>9I0x6f_W--4+pQ{H}GQ^q-* z+pFKc$BfX3)Bq|b_dc|k0NMs!(o=`hkG^v-6In6;;2cZKok+tArn2+e%epP<)E6+c z|6haktgB-?wbZPomg?2iwQGlnG_!RD4zdLY=-Rx2R=stPW36m#-bwfUGd69Wlbc1i z-}M_BnV+wyWniyN&KhMSB@nT_2}xopf-cxL_p|o9jq@O$(c3su$BO_|vR!Ro_`7iC zY^hm8ZB1J#Yrj(|eyB<^>;DK8PiQIsfVNeBsGJiKIX>~|%N*+#=J~3(|IlxMoLdVr zmI-Nm_7ZlMnj1H$@3Y36?z~~CFah|K3xM&fe*T+%0J+pCB0BX@y5iSAQ}ZTLl(Sq* zHAkC*4AfBhIg7geceVU$lbe=C?3!K_UDD=l28%nQUMWiw)^@D$}0?4sHUvlBWl$WEfTW|ym zn`pSwwvC&Y)279bE55cqtpTn7KVm(kbcI?!V zFZws|BW<3=lKOR=?$HQ-L8eei4iX!eE?D^{%6R8|^exdiJH#SZ8+aXrQ|F z@AH|>N;QW43Cfp62cE4;s~bJkSot|seDSOU^UN84G!4m`PCY$-=c%*iz(+T%StwAEW%Yt||oD`*;=VQ6@I7A(fo%I99#)Vvr6`#+ij&{{p2;Yo|a*i}krkt@y z@Wvh<9lEH;FtBRyVNERD8j!59JYt9&LLTPh4;Rrrzq@as7w#asA+Tp4iu{ZdC(!iC zBNW*$^a;Sd;ROdMLmuRVbzr+XqR69FNwDAWOqPDb!jh0CTmm+r+@2fJ@l++6$xk!D zX^}$-sVV>sV0=3O8)m^p3UZO(bnP9SlRW5>m^hR!Jm(OaaoB;BGkR7Sw1pvpT!cCh zpYwM06Hs;ij_^ElalG`S0bC(`T|fHj+i3k+#g1q$Mh^q!$VH!#H;E63K^LrvaAY)X zUZy-6vRgXPb4SY-TJzrh3ZUMvI`P~}Vxv4~)Jz)WLIOY=sIsmm<1~tNUgUZZT99Wt z*O4ofl^B|l7#SK4w!I6vBLbATId4P_>P zD8?Y#&!9NU7`cB;0A$!QATMrR^OmwN!WlmC7$>nu0OWTE0+4g}LlSjJ5@qC1Xv`i~^^fjPX&m^53+1#eY1L^<3-KfB&s`vF^!$|ec{WK3VbY_ zuii!uLtbnsXnA^p&&K!nPJ>hK?SvXym}ut{`qh^)RiN}s}Ip3;8QsF!K7d6^^C!%J4 zZFxV}_t)+x8lFGR3HbMP)0S1QQq{`W6n|ZNdnY~d;!0Y+y1!BK&OU?Pf9w&X>A1P0 zBR}G7$S8~Jq}^eE+CO!#vP%Z4pHfni z=|?~RKRWX0!xe>V;2;3Ub*dLww}hO(ZM?b$T-xS7+Z3gL2)M& z8Ak?T$qgPnn7(t#kLkNV`Z3|>y{8z|v~?v_e5QilaPSW=oK8j4&$LAychT0>Z_?H^ zZ$t<9LUELoUO>ar@+c*1G)r>#ewY)Cd&rqMbA343TCLk!=?{0_zfbnpHrR5rlj!^B zO(*;y8Q$Nnh{D$T5N$t$RLK)D~Hq^t6f001BWNklsBHzJ7adB4C1aS}n3}sE z6Ltp-An!+;_jYTn>^QvF4N%k(INaK{xB7eeJ=P(R7wvMlyA2>WD~ayV6h zJC}k?@ypAvrJAii!9Bx3q}N4@H3>9|oeUANRYfT&df!LFrLm&ej`AiVZ9_z912$O2(r2l$;tPe;$6)$FXH!Pr{y{*&{wv?dJ32c%>CwMD zNRRyaLBh`gl@5bwe&{Ts__DF1z7ZmNfQSl%czEuJJi6+}n`rh?YM$C4o*m0)0C?J> z0lnh~Co({uSvXzUAYe3gFboJdSPX2YfAIu>7MR3eHz{CI85=>}Bk-NxM%M23V-b+V`4$FTdAZjM#t zNrem-jQdCtfO;VEd5$WDIGsUS)>u~8Q1i4}`C6o#xLq}Ut&AtkLvgPq9qUl-=-eqH zkHWd7Lkx;9{CF|vmunkXxuqbwIIw3V4jWA0|K4$Q@Ie!4TiyC_w3cupIAzvh%&lc7 zf~vye3Xr3wT9DkuS>UoR^cNr(P6TJPuy7P_RB~})c|gPw2yFYtN?=26Kp!-1asgfZ z!;{I_SouRMTr{p z{Bq?&H-MbgDGoTrAp`H2hswThUn_dE%dDt#Cu5s84rPt8a)rtNuX!HTn$5TG3wHD{qSVvgsb-ImmTg9*T~Y-VH}L;yvc;Ue=IL_nMwRJrHA%^CY$BBcpP z7LCfU+yHW+26UfeZw{h1_|Ej4{TSF(>^Mgon)xX`*>PfA#Kofx-4qVw@rjJYhS-~Z z*l{8UWZW%FHf-7*IUo_haI#_0!xRe1hISC$;Q9Rx;XP%gm2~Z| zZld}+XIh}>9b%MIr*YKc^72xT9kQ}Z*&7rg`!RXsT+1PK<;L12r@+l zb+$vh2Dz13k{DeqL5skV{uyaTW~=HFGKntLW6kM6k_kRJH1LP4JW-8-91& z{KUR#XMdW35{uNd2(bCzc)yh1cyA+h2O!65@1iLabLjljCKJ>^t%7-&Kj{R@-(L;R z2$PzuywMI{pUn=ploVXm>U6$BIWMqOTbkOBin`VC0)51O)kE!e0*6)vA83B0=5m+nxyO#RFoG237gp z@to}JEc(gi7t@SchX~a*9;+e%D>c432*t7%n5)<a^&+jdW)l69^Ph3@%Whc#B=oY6R{a9Y}lT zY?F!)=O|D48bvP5rTMJ;!$wr(8OrO-XNCAWJWG`X3SS$3r(}rr-gA*FG|v`mq55q@ z64NLtqe!D5Q73YdDr6c#zOhsb{8Xp6YtcVjR=+`Yn?6+dlZl7|;jR>`6Ky^vYt0*M*94Xyq(2TZuRTnR~Wl#n{YkuNknK6j|8 z3hL|X>Dpi4Lgl3uUaS61Ulx-}?3`RJ-wg>e$i9GP206TR8Pphs?SlUpzp% zu>cN1@xG#!S$B;fH|MLPh4mmxe`VHjfBya_a>THjhrElONW0qV&3#3HLN(Pj^s6hb z_Yb3w|J3l8R3`yyb!`qkDtDez#sjGVcCM{x*< z`|XY|jmZdyp5{8MHd;H*izC9`iT1wN*>yxLu`BXQ$^dyMZHFu+9E(y@ATM1~CX|DM zS6;)Jal^+CQAfL)wh-hsmJMcSp(vQ+)ob6Pie)eOI0yM#(c>tN(nn6F%%TG$q*<8U zHoF^hjQi6*Y~%?VIWqHkI#mNqVNKXptBz0D7*9U_3_bbSGoIC5`XHC>uVHLgA68OQ z(i2bbP$*Q=uLt?KIV&rZZn^VXDlREfJQHDne30rQ;xlGrg#d%3d4O)|>Sz;d9NU5x z5h%C_a_h5@;tW#HQ1?M}m_x=^KDU|k-R*m@Z?x8fOc9Aj!JK&hnV0C1e>~yazhV%r zh->dSVNq3;SAEt2Q4a7iM8cP*r4FSZefuDSdX!v-A^-R>PL-v`%}Y6g9Hg&)mHwGF z;?*v^T3x-6#zn7IgSEU&j1|crfz*mPldFnk{rckY%>b*nHvpJYqopwRp;)5$Rt=%% zu&Y&4Jutu9@3x2is=jOqlb?}~9D8!!1dYuLQs}Z5Y3thmD)vfydlxeL{P^do0XPD+~ zyI2iiYYbGQ5{C`qKpXfH<&u~x(kj7MBNyyJkos2kAdR0je2>juQ|*0oagZj6u=kz+ zA6ZAdNQh%DZlT(ZA2IO|V+a9MV-C}&{9OA!qQ})>EfGDwGA6ml3ybpUx|^@2f})WW z3foj64%9)wj$K``y`_dz%9+-gtN)fgxVpv0Y){>}SoDWw`N=&k`AH>zxOKg_QZfkT z_nJ1l_#UTk74vpSQF$Q&YV3UFecBQHE7J7oHM*My!X6E*@-co;I6c7yXPWBS zVjOaCtR~OgULO2gbO$d_5lPI_hrs3pX@0)7`h;&LFwozvk;T*2R@ZH(k1< zwDgtmPJ76hk%bf*`ap>2B!8x(z5V(()Y9k$w7%7~KSe zAUtTzcZA~Nm<3`1oz|;yZP{n@sG;Ih&&~uq0}NZRFToyzF^$7o*x7DQ4E$S2^w}eW zyVw}$uvn{RWsoQ1mh0|{Nn~)0nmXo>1;hDkb4uuIvx_M%E@D^$v>rF}dz4u?O&RVm zNLIglKka~F;&9~Y4O2IBH9md_gLrTPf#?7w0`$EfH@Ei&3b8W|2Ba$C(M4?y6|}2e zjnV`g?w0HBq|KGVv*I8}b?zw>X#f4P1o^|v(>^pQllD9OVq5etv9Z_&RRot@!FlmNNoEw zXh?!1_c`afT!9>OuQ>XX=ZUt_^)pB(dyOkY6i0)GCQ@4NL?)mh!VQkmXpioF=!moy zDVZ>wBl{Ig=(W}|h%1jFkW3zZ=qY;PnV0%JF8ekz_UyahRK4+zt0^Njfe(WX6`ymI zEeJ9t(@%Hg*eYN8JXNiFL(_)(*(RHVy|x59++B+H7v5$#)-&we<7Qo?608h^$t2b5 zKcJj3httr+bRL(89KYwT2WipAOZJVGUOR2izaS?!o9_6-jg+00&VZ9}cr?+_+GHLR$S8<-!NHM5k^Dj_ely7Iqh!=W8;)(xwLg&PJr z$Dx?yBz(q-JPyYKoXBA{2U|1b{isp)AA0y3ZDrkQAWX3NB`@d zgDBs$+;L`*g7u{aA^$kr`;zr2#>zAF)Z@>39xFUmSaBe9&-M+a*Q_GaFOJRybFYci z8lFCketh9{%1Dn8ri6VwoyN`jo?;(kd{iudg*JcrvSS_cWu}XU)wEg^|BT1;zrG$J z_TTJ(%;k!0$JZJL_4IU_5sT*C97rC!^SJU(slvK<3S!Vk$N3%myO;G;X^*hIvWl9v zEN936xS1C@d}zCNG}5ZK?r{*GtLwJY-=0`T09N;=lAMxEmtXZ`I&9{_v};ELRj+@K zNzh1Z2We~-tTm{ia;a$_t0WLNem9R~SLcOhO>}Ww_1E5qn#}%3U&doyE;z@peEW|M z^_dlG>gnkPtEhdai~3_fI(hPbS#;jX6FA7mDp*%WPCAZ?r=6kty4c>Y;&r>P1%1O5 zOb$jC>xgXg2V(CNvAP_5oekxmvj2W~;Q=&m=65BfQ3RcKQ{|VhFsZsnQr1K}KmF1g zTCqk=t|ml9DYdPBirgXIdBrUx_IC5#S_8+dGC%p zKRhS)?IFNMCWPXB`tO0->K3}?`a5a!9uqw-Y>H5bZd$yd>}Cw9Ao}0yGxh=GE*3&4 zM28-B5dGw`izzEROM+lRJl2qIR`$#)Cmgt!HOv(vN@sLppTk!HUBNKy&i&!k9?O4MYb6R9(xtLi|W` z3keYn%EZ(>$|#sdgAq~A5s{JYIBxJTN=5E+Tf_zqo!c8L6{(i4?r!?v-H+)n_dP_d z`=o!vLm?+Ck-m5K6vE$ffn>fo#6_aZF&XR1m(ZrgE~)?;E7$c9A7-i#B{1BF7fz#u z^pQ-6h&;xUo@5AEGkhhQobp>!0!U)ZVT`0^jd6~Z9nI9*SY|qh#PdWH`SUdY$>)Py zT*Ai9+?j>+jiX1i%zfCvMI`CullYIiS#(irLm9z|Crs6wehI9c^Y z{(pVHv%@TBoCEX+IiRI>y|UH{ne|WUk9R&uZEcp!@<5H1J?FiMKDzOaYp7&YAv?hU z`m}6a!$#SDb1t?Wv@B=BKRrj3_z3#oMlp0=2@i*^-dc2MawbhV_LolZ5YCZL9^u>5 zM@(R8;!yk$n)lSp%tYRohrG9z-SdB+oSa0L{qj;eY}O&XXM+F&fOA)C9Zi^fsRKOZ z_3*8G^y{H+-E)tPPB7-J$?DcT|&vkELacU`=pZo^Y+G= z$Y+koPNIu1m`drXrecV&G^lXu$^1uEg)rEjKvZM=kc23Ef_f zuW_^C-1a1~4;Pi(t7{l`f(w;nRXy-IHc*331#k|-`iP9q{Uz$ro*1{?!wLVpSL%~#6IlrH@V#p zyK=_NgW29sNlE52Ex_^GjUQ50@gYoTv;!YyUp&X8Z@WLwRk_TMy^quon#yWzeKuoV z=89&XWa>!YX21i29ymJNEIZn}Xx>Y!2q1aTB|a|1zQZGD7AUqSeC1HPu?IDE>};Wy z>NV^qbNBz~YH7D8-0V&>6`#`bZni$&qqFxT*F#B#(<@c4p^|B*Ge|DmhuD7*q$T4C z=*E@n>S^AB)wCl9goJ{ke7g3=D+y8La)H7S0(F$25vWpZlkF+F-Q4VP*<&d1c<9U1$vs+-s6ngIFDi#L?rnH=O$In z>}}Z)12F!_yB?&4`=ZstEe??OnAyb~MIIj?FWjklu2rThkUP>-^ul~ewM#aQx`#a z80#QB?CI;IaD+Uhoj*YU`6mbCQnf&&!79qPl3uwQbB?Rp;L8kL=$+Z(js1EBVA zPb{UD7(@tVqz$7>zcY;xu_m7*;J7ZHex~ZAgbe(u*QsX1hct4+F*JCXdG^rl!O~&2 z-{Y$Hqm>ZRKz4|-#0*By~YWUyM|4fHk;jk z^V=U@Z8$GBn)Pm-ZP(k_ajC~XfL!CCw}b4V5TALGk}5ravY5+#nM;Pjck^Kj8;fq=)7!Wm_}@bfp@z0M zLnTmZ&1eK+`#$IL5wLfMBn@XmxjkiGIRnJ6EAK?~>r)*48a$vH%XW^OXTKR%poD#n zNZ{1$ac26INDYurc9jj>957oy+Bw&wtq+ja{yhxVuC1eaFRdm367(p9n~ORH^qg+I^^#=FoaX0(ft6M*B+?`h}s zP_k+;R!flK?z!vF43zIlrH`sKfqVjEgyTltV)Pil2>D~91oHkp@gbJ_!a3)kPJ;(a zYT0pv7`H=u7TE@cs!LmAB`bP)F5#R9(eJ=og7g6(e|{ATa3QEKHdcPFs1DWCwb4UQ zEv1_Jz=8uH=e8!U(>P;cdHL$_o^5Z$przIUjQ`(HE}|ojJe&p%61j)5_{1aM8l)~< zJ2EIy6CcCGnHt*j&B(D;`sq{Dv}J|od+Zlty@3=14sI!k8aEGj$PJUs8^>=pT43>d;#P3q zIh1KT$~{WP{yq5S?OjQ9$6fQNzTSsX{8bzvUx9DJ7zaRp{I!iAjki|`9XQiWbOM3kbAM;yx4cj-fVY_ng5pOie(Q*+aGlHn{s`i_8SOy zv5X+M^3(-wzY$CNS1gZF1i6b1$o5-iF{=Rq<>jTjV=Eg7fc)HVoi6q^DV+trRR@s6*=L>GdTS4i z(w%K})LOfNnn9)kak7`>^O%P3y9?JGTOw4?HV@!yd@EanKN#{2l%Y<~*Z^!`tJNJ{()5UfJ zr_6{SV$VRR^qn>K`)uc%`+}PdYq#|syfKitT)@o5eO+V4_ds@9QaiEIakXp>s~zF_2sFI+?!VH) zkM_*8cm~mmxb}_{7FAVk?$hSb_nYEoj4ipg$Dr%?0p!AebI4%_(WO8C0cB^)spz5w zwr=IXR)@5@WIf<_;UF**9Jg#yH=hJ-TBQ51r`fe<^6Gon$L>z;-q_PcRjXd3s+F(V z)Jr<)xqq*w&sS7akMBG&F5h4nO-3m6vz`s5^FAZ$w64;vHGxa5L$>2LH~fMM3JXM@ z4|6{UI1bYI$&dp(`=s%dAjyFtTA^sl zH>qeUq>>^VC!)yLee_SNulU^ApFWINvANr(8U7g(;3xVRPTnLFI1<^mZG~@_o}mNC z`9+-kiW1ZFC@D>q=Ej`bR$odWa#)w*Z{#4q^@cyt=1O;oyuS7fqR78{)+EZ#jDYo6 z2w~)opY;P~P=*U+Zd$6?iG_{8iv!gkKyJRtW@%Yiw%o#YC#teG*$%9)t*2dBb~xBZ%miVLJV!C*}1bRqIOi@6RXsPyw^`H&lY=?yN?F18-#gILG* zoBaco(QfpxG;PJQ1oZf@ylgD?kp3U^}S8-?MCivZjc48T8)|E9lMl%VQEj4kzWYbD(q- z85oG(8GrcqDXZu}r3Il9(!6yw?~kzo$Zdv|Stlis$2wa^Sq|*B9rk<6c9X|MZvdRr zR#RUp-Vhv!dKK=R&fH>>Y>{mp=*SM4F3D-cO(0Su@@LwzG%f6X2K6o5iTSzIR_wXm$L zEciZkK5?J`^7FoRI>kxpieR&)W{-A8UrF=6xAw5Q9eD(|)vTk|`chNMJlbq?v)^?8 zkLQHp4<1V(NWq>L=j%wp@6sW~Z_B$V*0EJ#B@D5?Af3`@eX{fW>d4+30CJGloO^PJ zvWlkj9-%~fnxwVzWeYs}$K1&?Na%jz>}|~A_aOD>jGm>*(J76=5V4;wHG2%j z#YgfcdwIV8n*N_#0Fdu&tCi zB!UIh7v{gbj#jJDlEzwU9-_TktXhCXxCx$Ep4bvKpk-k!HbOB4;RzXdg0Q znPLGw^YjAh>Iyc`3fQ1WA6`I5&nmP{oEEvJs1+xRfL+Z0^f z+SX%~sc;^RF{M;uF@n8;(th8J1Kk=N=qeyzqOMz7Svn4m_fZ$4N1rdtrJ}A+_7P<% z0H+YorI8blr6I#o*a_xmEMYxJ9uBGYNR2ROFn8>E)$3~O>BejCr1G-eP2}|3+q>_2 zmZkgN*>vieCn^VS;gp=b}8X)<>J^zaIoIhaAhc*!OIG3*_cz(`~=MmU41)lnbEtf&5RZM0O9sFTEEp;e;|J?m4H#_1u!!w2@Wzn<~u6CJ&{|MV|gNLTj$Vtc2FdQJmgj{KL z30O(R?)>o@;e*K8jJ*Ao!=hVz$8t@RYIcx7GUc|XEA@A-^ew^1Q$B3J#qCtswepLpI^#7cjpQ1=FaeE;#o>Fkrn5&SBV z5=X*jQ1=H04?p||)mMDh+Y}D}9&4PgxKVU;d#u|t{KtCh$lHgA0`Xn= z@kvBm*FE|$Ja>wDq4td2(?zA9Jwuf%|D)_34DkJX1Fc-^Jm2|!@9w-_tcBgS2`8R*OXkGah0|8zOWzQ1@2z4lHy zbq5u_XEq`}W6q3xI{wHK#a{?N_~--AqJsTTa02+erXYw3CB%~DIiqG!{1BvKvbTWV zrs>a^l0jXsHogFB$2fv8cC>7vm2cf^lEy@>Fnw38Z>0IJtS8K)pi4o)NV?{RE2ywY zC6Gap3w1%DaEQ{}EcU z2!7F^TRf=e^-Y;3fVYQcj4e6YFz8_lg;e>F03N)N+jz0j_=S7;`V=Gh369COI|lvRAN z5(Ef4e8b{@F&=9b%*EB~>*@Jd*HLpzU_K^1_TN1{yDt4~)0PVRSGb;-gO*wcF#dm+ zeuw7Foh78!P2(5F1{N+mQ^}Hq4$E+bK}NSt4r~i6tiUv^Lvf03z5MYJz(jpsPj@E+ z*H1U>!|NYdEUbOgpCjBOaIh)Tqw zfj;*-SshCeOTFe(vdvKhkgo+Gp9MsjyZ`3Ot#sQ>_r!!uf#~t?oH4Py;|(1RJQj=g&EV>MOsXjfxCAPG_Y&_o)JXhYi^#Jp*-InS`RKK}50dhxmcc$S>n z^T$R1YKZxI>ggxYg%_Qp zD*M6-kYgX|zw^v3I;H;rIq%bRen^9csQa`IAZJJDE9+_Hy5Jq5Aln^(R53fyWH~N9 zKrW!b~BMbXVIPxkh>A6FmGWm*cC>2KYmTxk9%1`#o5kBM50R& zLT~`N)^Vf!Cww*_R%aF-$cm4=Kl)m8`>?H;b4Djo+J~n(ZqfFDd5%l6rGDFm)H`q7 z#^Xw+Arg(d47`0Zbs> z$Z7?cgBkf#Xn4WY-iew6WaAG_0{A>u0c){N2^(Kk(nG}LYwwlQ`-`dq2Wx@DoOSLg zbk=#NsJX}E2l4pEIF}1ZuuZjV34eR>(}c&j&0h0P)AX={+5E7&J2+sB)ne=cV@Nx? zDV(Af_aaDa{=5bB%u_Gz*|>>eAbRwo#T(1KOR{)qPA`}2>9&cNZwTU=g2H^d=K9MB z3fbWj3NbLAGQ31fE&&O~!ajSg1MCOO4(bK}blXd?u0W}&u5=-F?TVQ)^lJIOt_bnG@7^Vr04&$j#jM;RE4wB=%!1T zl$O4tGdQEIRe?*b7Zl~wHP>B6g)le(dYSD9@B$#Y^RNQ8l8{AnL}Y}|XyP}~3`7Oc z3Il2Y-NZw5&j!O8;5>4IAk@FJqfG;pyG4=rI`owbqD7HMCSDv3#-T2MDvh=cC`=-- zpde8#@1k{JLf!W;Em`!%KJdnDNH)Sw9IG+Hf{G&7lP01@k(+hHfeHtA96T}$^gwy9 zd5p|K4Wl4KYZL(F+u(>If9C0z_J}BQY#=M%zLz@MTNof0;AT1@62Mw9+~EM{awh&K z!t?CSapTMIlb#LZOSHGjD)zS$?Eb4k{%NRMPBoi87P$nwc81rvARMi(&v5zF;G)RG zlZrRr2>B$r*Mk#SrfJz@9R~!oRb%xk>b4~5Lm^&Q7k&I0{pk;XrM9-_OEgwKj|FO06Y({sU$Gqzia`OGvFVwcQ_~Zhn4i!hn0al zbI`oU%r0_7GRoS@x^K+>~4wm zF!3ulTOmF0`6ds+2iohTq&t<>fwAqWa;)-qW4X@S~iq@uLWP!9~%< z24+Q@Gj0I6`}xr6*o_9V`;Q>k)K&vdLSB6+?2EB;IPHrcB183j`mUyps98x}oIwHrTHg8FJ3cF<$bt)bd_Cn(+DIx_*}y2}Lt zM5@1z0D^tF4dgLITle%R*SjedL|d|~do1fe+(xEP&6(S>rH=*Nw8Rd`%AvRKjgdq)??PFQN>+@jCaWhmGt*nd+Yri z@cZKnY0lik2$AI0{Bc+B6=V#fTQ3W4&o3^IZ~I)a+DyKOf42J=%smS>c2m^~-k*VK zx`X3*lT&rWCCMr20dkj_$#qkojr773=UyrTrpy9Bysm69ZCvss6KJi{-Q7cPeOS(a zKpG097}R8h$dPwkes)wcPfVoN=N`rbD=f8c8Xd@)j6;iEl3-iIChFMkLu%a~QR>04 zbQq@6U}L89t{v3gQbl#8iyUnIK%&Sw($ZU(BQj&$tnX81(R4KjU`IPO+t^(ecysSP zf1|e6eK~Ti7LFE0UUb08gq%E9K|cERFkDI(IdeH_*_&`Ixj?wlq}HYGXP_Jaciu!A zUT}a}AD_ItsD{CMGm6}LW)B+#x7~Cv8wf!c5k)?caXjl zx@G(DJk7xyl1bZYH&9n+J8z=+gLN+uN2^;TdXyg0{>n!rl2!=bRB1qToBN!y`WvY~ z@;UW^U8=LSv7F^<#J)Tfe$O`zq=72hdn$2=~`?#u^kcQ z%Be?0s3OmCM*d{UiLKl3b#7(71eth+-Tu%WI^9Q^8(@p5joPw>R9}Yivx3LZo(PaL z$Yn+VXFA#!?PhOdt1W`G+w69s++XVZMSD+CBV)tevxnMjpryd+v2``=+R;qAb~MnI zHE&Vpt~N0OUC$rh&kzGnYzz;JkO0ZY9!`mAP>+Z*_d<|11bCr3e34(WY0D}mf6Aqz zY%|?(?VSVw)JqYP*>ua24P`g_jR^MgeBCtz0g&Hz=Wi${*Gd~B=8Le0OC0uaTT>-% zM+7;qd)6Gb+}TcNTjUTFIm2NcL$2hi)o+ByaHK6XW7aJyR~xArQ6Izk5d_Wr3CB{} zi2as z+9If)sU-)K(b)``%CVxbVUK(4pkGdF5*k#UdeEbqb?eFKw$h3k95MdP(=QW(#ez;Z8uVIa0^~O@-cWYa?y^O#Z-nKl^0! zX4eB?uP5fCQkM!cVNyMbsVM3_MTMujGX=#!f!Agr-gyPH=Sd+D0K7l02ODoAo`)Dm+ke1b{UM z`N-|fn6x@>kJ?PG`TL^EZK+cc&lof`ky5h93buPj5m8*63%gX`O@oFca9%8XuB2UU zFb>vHk2D^-x;oi7cy`{)fg1;qM?Gp*J{>i4B;jYPKwcf-Qg-pdN_zu<{PMqdo4IbV zHVmb-obfbdSSmX? zs@G5#vmM>{Z$FBho(HU6mD;ry!&0*8z!R>eVJWiIwn6pfpV8{~|4JZOSq1fd>*LMz z)d5$Z1GF@CwX7BA zuXHPNh;%Ag{0!YY`4{SXhgwFdZ5_+@K4uo$TdHR$j!LGxwfD``Znih> z5$#*Tvi3-C5^^OrT5TH5sc+eAvi;^}U8r`MlNBF%4!fW*SBlA6^Ch|-9$bE*+0#UIBiDlvlT|pKMjdpf zE$1%r_)y155AS1(7k)v1`orISD?}MYE8^NaPFPe`M<0AP6;A$!e!iA}ro6YNzMcL#Z*@%i zGB+!MzIXNnN=uC>l)%TARdO&*oP9B;os8_=U9{=bc~tqOn(JOPxESM5a!Ab?&$cJd z=)$(w*@f1AB-`)0(Pj4;+UJyq5y|QU&LA4GkFMo8Bjyf#vz=7e&`ys%zn1?Fx)c=T z(bd=eobn4tDk~F!@$?)!`Nbd*;qb@%!A@RZ#5vd@_J+;zc$_uGkV;oA@Od>`4NWa0l0e(_XcL$T#nzyXf;}Dt% zZ#QgHETz#r`?iYPY;f#5Mb3j7*Z=?^07*naR8vo)!YL=&f>E~%6^*jRN-!#`Xgs@` zYU=}2XvGP1O@A@WN1r zgqJSQReU4OKcIFgCc1At0 zMxI?+v4!rqFYI-5rVyg9BN6Fnlp})(ns=!9|}bnH&LH$%K6wMVJ(A9NMS{ufavi% zZoMxi;{@&et4kSLc`>znDhS4*jVm&IK6Q>lH|?kO!0ZG0yWFLtO;@SYnU-yNKH6+kCPn+()` zrE5%^9U{i}B@PlBfY8tXeUk%#UbVhSjPIQh0#OishW4I)a4sD;r-0()rO6oz(WnE@ zq)`W+q2|PHYoMjC-A3CRE1j>G_7~VvuqDz*PBd*RIA6RRi-Pzn=QAvTTy_ZJDnTGx z%6|h)0-+6n=qs;&W&-5>*q?PS?i>K*nFR+p0CJ14C4;J-AL{i&k2afbJrRV7Wz^kafxbwywS^d< z*t)uJgmSsw5|LH;99Nr71J(p)vx!{3AY5P^rH|N8ngP$WkJcjGbKIMJUUE0y>1k+!akdi~wPr8oq zw_I>O!#NG-HLGB_&wu(Qn*ZdB1X6|9(q9Mm?4qKKjv;aXBnq7}pc|6g-Y{z<9ewyn zWp9AvbIif#Qqh!?l>djV@WsDj3){(ReejcLZ5ACs9_86O6$)4XoxaDlBLOO>(&Y@2 z7aTytS?XE#Gr2UXHQ&4rGF-Qt_fI$b1iqx^nzbw;3tIq+bWK}U(|Zfc>5ccR0*`?8 z(?ou+<>=b8Pogu=ImwZmS?3c#fB{l?Kxq_bR{-Ql%ZZ=&n4@NhF*D8j= zk?^Z*rqb-_Yibp51>)!P959!ja%2!+aH$4q`mtyzW12%?4csPx3?PP^342K z=(%~XcqUAGs6tFH=??*~pB0NcbZp6Q4TG-xUjxXKQxfTimwcP%95I99t<)PJg4@#nkb9e49f>4VtxJ`<;%6r#++X*7Q3ca;>T@bN;W zdHur2l%OK`krupBO3PL^__DuyY3s_6Vf?adW7%_`5$QGW%?Eh$1jRyXefHcLbnzwM zqU4kaGYkec@{=YcXRGW)L~qw^FlC{`JGtptjPeP7z-h@q5LT}HbD7<0;4rtDr2w|o zZltbVt@=LkQwJZ8QW!UrkG_nh&*Xy5wuK`cBmEA!5JUz)!;62gj?00b^nHE5n^A@c z(@Abd*_(GemMoM%fyIs8w z?gOBjmODWq`Cy}gG&cZeJ2T#Om63Cbc&V1h>w6mya%42}fd~o3&CG7?*MU#xaOHJW z^KmY7ArK(R4vu6LP+~^D*6Hfjmmo$lnLsM7t=sATKmL;zFZv>oYI^DN*j{6l58Bmz zOy`h6r-edvD-lIY0IID@R#paGcjFaQRHE)t0DnZ(o|?}RIj*1 z&NSIxH|=~sOOm#)nPfLwL$ZqiP8bEH=iwPGa_M=oLTp)K{r2X9bQUIUJRp7J7VBmA!lP~!N$ZuM_ zq3q_}C2P5RBgjK^&Uq)(+2;WuH`^5w!SRDdB%W6FN04^waA>_cp4`J~}A?d!I)JQ1}uR?^bfZ>L>tHYH2HJ`%TX^#yqQ1=F1`b=`|JzrcEx zo;Q(IYGjou9>eziBHI38&oLVID_W7U{hEQj-)z3W*E6ws9rmHBjbG5;{;_~otgh+( z`Fqe6{W-VdGk6c)x{B?3Cn;orKGb2?hp1@si8SWWbCoDQ1VgNT|1XYnYsjel&k@w}yW=93Xkvk~a*FZeO?XQQ8$=2Z@PT%U3rr zKptSgMF){_d)tPx+q@_*cs^^yLTdeomwd~?#Bh@--f7B03joJ#`lx`i`Dx)Vw128y z0>t)AEl49au<*bF$GNAQ8a6NI=%DV-cISbP$DrqC_8d(F-Ts_WhtashE>!Zz0Pw^H z(AHSN(dF@j26J`m>YC`U4?aepE?)W-0dV@i6#9*7F8hD>z5_gq<68TC>OvCgjo!f+ z(?l^Ca4%pR7i`CAPHZPmoO%%RS{HeCno!k@`Y%pM4al;ry$8;nl1nRwm z+V?;2ncZ(^c4wts>H7fZdY*^K0J%U$zmc}g&YU@O=Dg>;=bUAc%ikKH_+e=@V#?(d zpOkKMHbOR?89Hu;8R&d0!%VybS>!+d{;%lNsj8t5uM4uHpnRGQSnc% z{Vo6|80y}~ro`-W9x$}; z41I_6S9yBvQ>`)T^&K>`+($bycp(q+24&ul`a{*lTd1w6oNMX2)rad>V9ryAEBXv4 zM()JL%uIj)0@KJrR3Pf8+OzpY#P4B+W?fKrzCi!`*VXTu2-JS(%P_usWBQT;6ups% zM*CF=h*bX2U8`v2E!SEOS0ma|H?Hi+E>|P(A#0$f#y`{$1#Mrb`9)2{yZCjoSaPh-VeV@xp`{200h|y znrt-ygoC6EfZY5P*lYDC_fTWyK~a0oN04MhhC|~>8$ah(eE;C{i&gaYcBpNaGa!MSYtL%HiMIoQ>A>0Ev!%ZKDAD^Okb)&!1 z6#S?teefQ#rpxzH&uOEal+m}c6Q}6A-}*V#*ZHWuI@G=n@%|7q)PLNgByWLr4#^l= zHb%Q2Ef{3hy^157m=VL3U37?j^>w?087i5kFZ+ap8A=4R{D@G7(QKIhL&q9u_4B3S z1SDdL%#be0p|PRtA0I zGk4Ma1+xv}7VOtie4a(wP9^Xg=Z=Ol!FE4Yi>2Eq?Hz$WX0+{WCOjbiU-y;hAgRZRy+9PH5k< z^g=>%HrIZaOGRLATIz~9n%)ZV5ntQh(Mj#?*aU2P43vJZ2VqSxgu_q_P*QRtB_*kj z3`B~G{#p7J{X+%?vZIv)ov?ygpP@#1L)mVoKLpSp>~kqAp%VyvhjvWQMHadJAO-sV zSc*$brQC^^Fx@}snGl48Oi)Az+Uu=>-c+H?ha;%0g1-0dpHtnt$RXgmb`9e@rmwGg zuvCwj^7)`y|Bt&RnspJe*#Ee;iKSr33uF&_EP~KLKZbD+1!?qSBRam#4?yn2GKxo? zW;Yg$*M6&H2V;r8`gR3vdb{%7br|!i;zDo0do8_ z8~T@p0F}!=rIy73K)&-S2FV=(U2egz!9KR5;)bPB?xag79)Wi;HsTD;wrfQ~i<+lQ zBQC}2L7B097<;L$sJC^VF=Pld()K!+$kMDU+vUjCtf{G|Z$9|ngrDJV`tgopS+G;u zb3lUIcpDvKdo4bROP3(4PLwv0k6Grv+@Gz6?L!(%W308hUT3SZIb%IPIu2`fu0Det zL^OJ|)zDob4{BK)mWPwOIVfA+D@_@L4gpBc`(;S{xl8{$M1yRwaq2io9auMg~qb4gG|@=#6Q>3 z6aQN0{o))?$((mBFB zFVq$*&Sr6TkQSc(_{HBXtqa}X1H^k^S7#Gd6}`nEd0%%IQ?B#ne(X5gI70_+PY&szZk3(0T#u*Z=$p)l{1qejX=|hAb=REkK@=l|XmjK9z>2Sm#HqKh8*<|9*$x zu6R3`TsGL&nNQz{+pxR%Oti)|3y&`7&807HShc1vu5yV#1fuwCnKfoErDTpZ9O<%w zAPcnZrOF;A?Th@~UKfJA$n5`ZmQhfbrT9d3adM!{$XOacQmwFSnYGfeefo$tZF-y5 zKJ#+eSu1;cd#S#*mhdy&4FKW?@4A&%-mC_7!!ATA7P}7(KzRMBz0}8cf;C>jz95}$ zucNA?Z}3lFzLIc%l*Xpd9$P>cEW4k5W@dwry>t&sNv=_tB@xv9^z)^J@=4)tTAyHm zC^>x$&0daR8!7nM^a;N9u#<7C9~%TZA3-~LQ!eG_Ie?x4Z2HhzQ1WjKTTiy>L(h>f z6#fpZ`;-i|c0H2)bbAhxlYaDrUsHJml9Wb`%A>CWa~YMVjDzJ9l*`-pF_?_NZr;~J z>c`YQhP*p$S@S}3K#c1ZbJ(<%?Ml|T*Bn<<54rkdoVpF=Vc_3H?RmLz0!AfDT_Q;d zFNoqj2`pRy$lF>`O7dORPW1(QmhUJ&x&LhUn(fk9dX<8KacBG8=i+^4V9BcY-9WJt zwL11hU~FRxYpgn8CB&I$Lq)F5FY&UM%h&XGy|EsYt=qB_;74t5DC5LK_Tf7Q zQ*R3m6&%N!%pSLZCeFW;5WFJqIVbk6rLuj`Dz(v@Tf6AFO(*D`BMsrAR>!BF3ii^c zx0jTx_i8-(a03%Xglc{1eEQfYKA_YoWlFEy$&{Fqs{j)?=r@$_cdg}X){PICI@aau z%)bw1q1oSsX8{;ThFeEV6-PtBcw%QK*A~)uCg2hUqBVVORyaEc$IPXvi|DOVEb=>V9IMnKhpm-8ZXwOM{L>Vh zkYX)n)W+VmnvU;$N--e$D8X~1nPZn=2Q9AS_6(QWRDmcsijtTT6mkI2oNHYfQ9+`H zn}~86o;jXUvc@S9lzqM3oVg}wphS<*-R*^Y={LXl3$=xrwiC~vJ}H%MzGe(1CRovn z0FuXprnq30Ba8gNYrmnIl0t_QORi660_7NoY>Y#^0Ls}h4I{`L2h(}Ye=&hs@!j$U z0HaB}A=n+D^8c5du2JlCMc{&U_`o|(x7HG(F+u-o4mNIk<>j|%%`-1L50YNbzb?xF z-*DyCm(b0(UQ5{EL)&q5EM??hs5Kw~{Bq54#r_xn2V;p1wyUFwDvREvGaXIT!?jh^ zj=F6s9^-zD`7nS6+qYqE?8D;rKG!wrGG2Ht0xmFb`2a|g(kUr@6xWTi2NSf^78_1i zUN!s=>*d$Ke2lhl`!`_eu%c7T=1&~|#lh07Bg^)?KX@QSLk$^1!{H@8-x;KVdObLl zF{s5dXEn$kWUlhqW;)Z^q)?{HQz~LH^irX%Yw5Di+;p`4*^rG%3*OJsk+R-EFyHoP zze63ZD#hU8qGo#Lg_Cspy*lJW-@wn|6F@_I`}};q5pfjI;pm7 zrvSAK2{q*rdabvsof<0-Q)4Iyq*v?bjdBT^67a0r+|~i_fEod}uNug6&baw>;pLy< zKs>WyeHQP0l8SdcsqD=yZC&)YXG*B1ZiuwInt26ad-oj^Ne0Mq8O{j{R(?mRDeKn1 z{%kcfV2%N}_#{ftyMQuATwr9A8P`)|yaoJ588(yCY-&_>L!8ChP$T zs?J3)S{w%zeMJer+{8TgXv5+iD3(>FjuM1SWA{Y6-R0nV7a=tF?E~uYcjwRyzk7 zJ7*IhhpqOIWUHBThk)Po5gHq~?l_OF33yvNP+hC0Pf(j#X6-1(`5Dq7^dZ)msPB7_ z>cJqyYf&##Ue6XdYff4CAsRbtrLxZOp2}lyFe{W56cwPdlNI#6@BGqt7Hk;mgPxZF zIo9c-IoWjeQX~~vU^B*b@`4Z2xLK+VjEv8n8@?|xscci{)xKuc>UDy7gAe_WP5rpo zJTCT>?w!6Irm~)8n*ue6r&H#rnG_vk?l*>yCbWOpM#ZMr#Uo8y!974-tVQuqapp4L zWB#{zjyPwT@i6wi6klts$3TEs5Aa!71<|++7K3P#-y|xA;*!Tu5BV>rGSDtsU0Frn z{EyF3O?CKL4l}dT=^Nkv9E}+}QaMA4^XhcRx1$t9OMOWw$WcHSrY|kXjC>UU$=m99 zthF-ba$XfP=G~_EDz9R#e!!sv(Z?Mde&ATEhmSYYnioz|=jreVBwWD$z|oXo^9Q1A z*@U^bI{bnAU;QoBlx}mJUGxBswchb}fWRZBUPg%$NX}}-lz+u8lKh5}Tsx9#qz_O>0{_{q|Rn`Dch3NJ*WYzjpyAxJq;NQN~ro+1_fnk2Si9V-MoY=ztRK ztV%}wxEs!iM7P?KZR}?i_@r|UdlO%8))2-IrJygm>H#$gl8^+si;leYCxV@58i>8U zL3({#CB3$_g7DvAX~AG)FcA1$Us1{91JxZ@=F9KP!%nr%SvVi11q){xn~NB9&Uzgs zs18Fdi25AW)Kq;$qPI1T5n1Y_Y(*$kbBv{|Z*@bJg;HEOvS5Dq7*Tczu(bP0raoGq3v;{~uZRy7;f6@}pBsE)G<0;zx{ExUUv%P8Qdw4^4 zE^@bJ-*5dEmq85y#Ob3bZ{lK#icN4h*>E_^90{krw4R8Vk)g5jfCBh~a^|odcVN&ui`t;{MBJJSn84vtZmf?GM8c(1oDByZI5RET z(*tn=L{z0v3y$LzrU%#dIyW8dcy=Jb;P~W)A8;J#-+A>nRAVa>(bU{Ue}1Z%@bkU) z?i~T_)d0uuxbp^ufd&C-(5)#MV{8GQHqcG;=^O;o-aw}gzD!+bTD6qxc&`rl)&b-~ zH#xPj(8b>LC>WjQuY8CShg&uLOaQuQ$CC=<2o5waZ>gfUch-iTAt50?nr^vvG)=YH z4v8t*v;h4}k^2{<(!I~p(QSWsQoCYA98PgK)70^Ziix9yq)Zxp!BtA2WN6xSj&&dQ zgxENob0Yw9wT3+hGgcf3)%Z5=iZnoe&+U^aJyoswKC$2qEkKT7iQ=74IAm6AD|VjkS?xJ^2C1 zSxdP9RT?XRLeCBaC@wyQvd7M)(HAb~zCK+VMDalQVVj&W^mD5G5)zGpZwaSR_|w~*j+0s;D7VNvNr zXB!|tn|A47$0uC(Wo4z)efNKm3g*wGfD{x6nWRZudbp?r@j5*!?xwlW9@=*|eaJF7psn$6< zWByFK?~@;-tnBoV@`CY*%#hUFsW!?cL}wgfpxkjNvIE&}UJ+x|87~)Rm&-gz4{!m= zMJS2B30l~r)P1IvnyZf)K)Lf;9Y}7O%C_q@??ZIPERN1l4GNQ@y2mhHkrgv6eH?9k zaSuKJ(mv`1h4Xujf$^KK9_2LD(qTw`O&M2Y|009Dc-K=(4Ps$mIS*QbJwQLs`rjIK z-}ZU&V5s5nm6kV^ViSh*Po*XXvdFWXhMF+)cTu-lKgw7QFdTjxA;SStqX5a}EOOMR zn84I`&Ma~m#mFMJuTwX`3l6j4Ig=Q)7vc<)w)1Q;Y5y3dXy1@a_q`#Lh zh2Cl?w}4grt+%I_o?iVtt$uQ2*nw5h0DtPUchQ1{M%@(S5P$%rtWmQa2L%9>VCgV{ zU$gHz=Oy%8Q`Hd$a`02Gcj>xydXQuDoo*nf+dS#ssb7=&$z$kU>L1n*B5OxYznbzU zEVk8b2m1m5i&|xUgJ%5)-~H9Qo@QOnfEkK0jPbwmrmN_KAHG>(G2p1>5f>_;7O#cw z)0|~1>myYL#TP6g$^UB|kCi0&EW-h-HQa+#bln&z(fhOPc0vTUECqMa&; zh)Dc3FPsw);hj(r!zV#yRiVp#}goCXVU)Ky#gxnim4!Li?fI5#xh}O(7pXoVG6X%nMNnQb%3i5RfYg1p-UH?U#As9026Z+BbRp_k(@G2Lb~YQ1u{a zE|&;!XcnIpaApX#08uIf|^FV`YcHgu%cZTN_~a=B6zpC=BVRrBBs^b zW`iKA1vhyJ=UYCfgrOk#b6Ct|JpUGIkD`k}(2((etyaeZC_BF~-C(x|R4fUDlUH?s$YBcB`q~q@)_~}4#JuDS9 zk*#&%x^4yn$mPvWV~=S2$IegvxH``IC||*>NP?YDZk;X2g57TfAsQLG0Z|qtHD~g` zHJ^PBUUzplJ@T{vp}+s}5B_Ar!+TJU?$e(|Ft_0=G4A2g9lCGlU~biyfKj^7{md)b~0nx1|oD~oNm6|)5%Z{3jW!}EdjP)UJOQv0K zw=b3RfMm-Lv~FZSTVJo4Jsy5PAOf4NxoQU8bkn7jnQvh#Zhjb1IskyOjdole3`-#T zHMmvg4#(MtRlI@33}CqT8$=1rXdt#52{5d$Yogyh`VZQ<9f70amF=_fG!ckL-``$T z`rRSe8H4I7?9!yk<9|SX!7oPAE*(_o!gv#yS6AJ>f>zzWoMK|ZoFeoL5>q)4BiTmd z--UIvj}yo&cvS+eU6K-1@#`mK)D?%c+rUonQ`V53ZM9TevfU^bJQ(5k295&|2QWTm z@!g8;fS|G?TmC}T#aom>0)XNG#}5}bg=-eEw0+ebmtXAR)Z*-CxT)5K5H6=xx0ymH z-YKZor_!+Da7?*PnTvdFD*6%>}KdDEEA zf}=14B9oe}$X3%pxx-Bv7r} zBX!*Xa+BH!-#a{eA|+>zp`_vY6x1Fx%>ageHYK5rjQ{nxnIMZWcM1*9RO=2g0C-}D zqpo_{$x8acL%${%ZQ*QgjxWgA@azeck~P7RIOU?h zXW27ghU%mpJtm)73_xEe4Xf6P0)2#_vKFuyI8H70H5#Ojrb=pSuHZ;Wj)pYuag!bQ zEOHYASs8+o7yx{1Hy6 zNCM=SUYtvpX#w)@ijquHgY&lV*>5TR6My#S6vuo5I7!YN$EAum@KEc7=MgaGR-Q{; zq^@C4gq~xe-U5(vW^4i+Z>cTfF*dD{+S&&C_BVbWF^cs_0_37ryK`(^!%0Jb=+6c- z^AEk*X`oim8Mn}pK@I>KRGu=WJ+hXcdSat*z|4!T6ae`O&LWp7d!D$H3A^bV8(FRX*vf#*1=iHAP;?a6iu9W2Td%vUCB~_&TY}?Tn5O$@iRZ` z1`GSyxURmtHsI(K@nVN4r~4b!t{;G$f!rIurIw@%_7TcM6zzDN^*3}qvSp)_ zM$jX_ecb;UI7p2|!FvjeOV@fv?w#|0UIOGfnEU8H?{ubT2 zTYjoFn!0gyj)t&-`nV*F^A1NGP5@g*mir zK`uo{TfKz;dd6j+VxNn=-{|@m+M={fgKp&qFrV3+K!iXj2FZQf@`jxs8YwfW$y}$F zEw7Uu)5ih-k!8yhm6zAhPk!`hM6$=TGUDm|D<{yHv7@p0KYsrQ2wCK^>?ID*V{B5U@dxW=Q}tnjUu0le_5eAWYQ|V5 z3LY53AMLuxzEa#qBuEH4MJ;l$C;4x>lcUp?fSwW5>Q?eDGV1}1AKvm8GLv`l{?5}q zwEmScdgpLMIQN^Ae(R3QV=*8s>^5-Wrdo#pe*6>fr-J!2q>V8^vGK@soTFwsg2tew zikkSK)Mbkp*Vk=Pz9R&XhfD!Yw1;Wn^mmOIKH+q?52g7#>nDJ5L_s4vuBGNE^>hoM zyuV3sb?DnBCMF@7E?jm$<&IyVd<$sa_rCBGYHKPF-2p1#cMdnw`d3fU=?K)7@xR#4 z{T%>pZ@OwEO`Vt`IR^rils1y)Ui)SKX|*6{H1B);VMnH;3C^ltqzB0Ls?DR~R9>Kw zAfx6L4q?cAN=_Tehu7gb6Pf;1J_NxLUkjQnDT^FN()PlA^zg&~q_#G-?qxV;3jql$ zuLP~VRnICaI+`ZTxs@i)y@e3zYBsKowDE`3)==hnwcCL(v`v7@b9f#fNcktSz#`F{ zA*DIx#$$hpb)A2kL;lxs*go}%{VN`0`Bk5Ek$1aMB5UMsrmQ5Oe;mi@z7r!F=jg=SuM zKjn;@$A^jl2b=_$83YDKPnQ*F#I%g-Hqk%-u_5ei0Fe+|-7_`RO@W1z#;ptn>CY4h zSeBy44k0rCQ=k4I&9})P4#T+)`6H(8)XSgdg~kD_qq%}w>&vLoU}_O(UcE$Ub%u+_ zPG8Ew`CRDMDGTnTaTf`I!_r;#v}5CssI~E=yu|2maWk!bsp7pl;x^!WVvb52^i!Q&Pa>r`=_w08(1LT}h zr4=+`!*k$a?o=Ai0e4n5`Osw3rb`0EOg}h$tB&d*2TL>|AWLd>0LZ`nYpSjB#T@3T z%c%AK(N*JZHOK=rv0xQVD!9#2o~3BlYAV|Klmj4h14FDYx5hTb99vI4^m~y#ctMo% z%AL4~ViX&QsHeM=s*k^|W{~#<>8Yn)pr@XEVd#!STh|$&y!~4KCkM!K|0Z1Qseh7j z=Q1z?Bo4rY(q{`h)B~r z;8=dE4pVbo33b}QoPoLlnHWFo2AZw z>7xgF4-uW9?!Llamjh-fX4p2Xig?wxj2WSqNV!dZ2P{S$5t+H01C|= z8~=-0aJ&HI{bmPx)kiEgF8W9d27ABOZ4%v2#TxM02nvIr2sM8Zq@Hd%+CyNH^h904 zg{w5V@3h+0&kcb>nGO9w&QCN>_3lYT>dE~kqY{+c-J#jy!&aT zwAtx1y?jPJTpZr9Mz=E45SrALmKh)ESC~?2MY}0BnWq>>y-mn+@fA)~|n!{`rsfVfP!MjOfz& z*|cmyHbqBAa{yTOm^lPn+r57~4cYb$O&=8}RNRy1BH_cA4URO_3SZ(_j{30D{`Ly26-K0b zyQs195Y?6KRsv2#y49Cfbn1zOR=Rw%(Cglk_qMTg#_c@53}w23KnWnZlZ~^Z&tF% zVdU(4{ZXne-Raa?e(3nU9{ene(77&I+%!v>0l)yoCl05Plb3Q`<;3CHoG~M^VMP-W zjmOvlD<5Q$4g1I=Ptx`s;RkIIkZ|J_BWUV`6vf#MO7sOQzM@dIL57QWuc4ydYc=&m z2U1h!(h5*Y`Y6g7Q^3YIoZWKsqX@MoBeUJ$FOuT`kmGhLtD5Qu=f#B%f$^uqS- z2k7BPpP=?I2P9xayy1pR>HT+Jr_fv@(mQMPEN%Y){PtH{%Wc&09iRrTKCzR!y4phr zL1nDnWL^hox?HPg18{MT^t(Ph$WI_Z6J}mdQ|7-TtZc&J;U( zg4EmHMOCGR)Yeo<-KOJKv#|B+mvc#+ujr?Qih6N?#$U9Yrp~)V*(V?)N47sfCGTuh z_KBvJF8b@!Wz^K79{4>-<9nB!M-z5*G`rSgYU|I? z-`Ad`mbUQ9Hns;idM;g{)<1<)esaMrGzo!ql0zB&dm8}0CPG@vR_wOdNT*WlrJz>J z8gU_^wwCTWerySyCJ*P%wxNr_AT3%X)DGy6Jr}U%rUlJ$JN!Pr?Js^old$$U8h70 z{8bghL2m_zBCvS%(=XFgPrc*|K=v}`43MvK?vdQTiHlwO_crwo0-%JwUtf8U>MIUV z7w)&qeTbnz)ANYgXfCtsb^i?nX!2Z3M+Kr{!M(1XM|@S;$twEc553!H=dj-6S#d;y z#SiBLoD*cAQoD~4QAcwXQ%TxOF}a=#T>jv7O)KZ8u68OvwwXW^$q5o(8}Xb=%6zPkHT{=DM>o?|%Bn0c!KJXxV~HMMe^mGid(u z2Pq|EwDP#NhEr6y@keyJz247j&i%FFICHwv!prP6U{A@T{0SFRe8O<4EQ66~zTP0c z`gSe7y{kU#`)_h`BHjN<*zq&e;L8LAaW8P#Vneax%MQOLf_q$je=;lTAeV#Y*#LBA zUiwJ}q2-T6CgF}3f65t!X2b1AkGImZuT+K;un39Q#j`W%ibXlL>~Zw(K1cuB8p~`n4)!LOl9kkR{EJL%y^o}e8O@UkaF#E8)Q3s>^#M< zjZ1ZQN>5KOJ+o#LJ@d>fVGl+K?^k(v+PMSBhmo7;TTtVn-MP2fKoB6E%aLj%lAoshyv7E|} zzUE-Gb3chTEf3r=KB{723kh`g=*a>A_j1f`Rb^X;nr(q67`W6;#N7FLw=Y` zXh-NCc{uyKmZ-P4i>cO;5rVo}0w~ux6usA9f>2JJvx+9z>NpEZ@ZVAG2@A|+1E{2h zHf$=V=GO2!GS8`I8^X&Ow7oLl0oo$_xZs)xC^>C}^>onZp4dVAUjLmFNc0QH`7uP? z4ov-l@__)w#wBv(6Aoipqi0jrs98!>j{t3rObe4RD@Y95KJw@j5y>K-HUR+%$Rf8Q zc7+kIF_N1q*hrR*c)wE(XEq!@={b`rEoTx_rJ6vw8MuXK>P%%bw@kjy{{DdNzy~n^ zIF4vDdlos2WKeWr<1~S}y1FL%;g9}ECr|1#d;ET{eErCgIrOCmK0^3uHhdGZ>a)ho zarCdL@-Vfa-f4&-LjZ`{j9TM?rq;v(7Y=4*^CIgJbf9vePaq5jd0zlIe}p!Meqdw7 z_%@U(Sg`zSR^SF_D8*1qU9kdq;VocX5Qm)uLpfs%Wx9uSug)1f6qvN9*Z1LuWc#sH&up&U7|YpDp5C z-rb$+Hw-dz-IpmLDbreG!623Fe~yl9e^LqVL4ex2mn-S;@zx>D)q6Le+YxXJ{$Qu# z_yrE9A_sqz6jE<@r#A7#X+etLKz}0Wqp=G6#xW59;?SdEaIA@!se{Vk6S9U?fE*cO zh0p(3WQa*ElEEKS$EVQBt5ll-x`Tm_0w+Meb=^bMfpQ_XHdufhkBN$jqxi&B%Ac@^ z;uF&dnIdk@sk0nCQS>4Hss%+QfLzvp?O>jX&|ael$U(Q7O&8zz4gP61$mdW2a&v6s zFt+0t7-OpjGU6IHS7!fgTd28e1~H0WL&~G$hEe{cC0YQwviPkKKn~mIYy;%@9>_xe zL^l9m0OYbfc(Kp$?En_fbT&~X_Q{TB4%(I`)7?jNo&w}xoSM4eeKh`}>kY?MfB|v@ z%~c+k=TT(GuV4QL{qtYXdv=iiy94Bz8L9N(gCCVg7KwfbXQf(#pmh$Px$vL}LqVOeoGkFT7*x?grYl zrPdb{ijb4Q|7$BMd2p~)6cMj-;_-I;rWu7yrJ!784tvcq1p zIyD*Vpp!+$X}=lae&>Qg@*bqIIqpPe?Y`F^p(3`fF@JhY|_ zFZM+-qpA&RoY6vm3-DUe2mg!Y7_bkTJ0K^=>^MM=JQ99CD`$_-%c3RovaDbPE*p?d z7hU=Z${syi*$b`Y9nn9B{7T<%-=*dMuWA;{B2Y)l97pGBaf-I}METifnI_QXCEWJv>z__#h?nu9HfbN>-_BSw^cY^%| zCAS(Xtg>6Imt2@@v>sB2-4USdaRoGe*(cRx-CiW?K1Id5o>G!^fj_?ZW+fdw27hh; zCkBu64(sAbba(L9ttU<#@_3K-vLONFcw)Gz)={VQWB0v}<`$?KIf=t_#6}itQC5nY zj>Sw{X@V~O4=?`ea)tD31qAatLWXaWaTxi({0)8g`C%_;%(}v-|X;5fd8Rg~; z-a&FufzP?_tD^RF==LC0mlo3gSJgVsy}dztqp*hFEDS##=1_$4T;4lnd@?P+ERWzE z3{6*53~?6uoST&zTQDZ}z430yA~(JSKzVE;C8p-moU6V_$*4nPD1WRak)d=%%_46< z%~|A;0Q-g~$I=H@j-i}Pi)Ja5p>*keN;F_tvdGP0h>oKe(52=~G=TCriZSbexv5EP zE}@OUICM%I18*q!|2E?shH}=J0**M7TNi+m;U#G zo$sMs=i&?=lEW@DGnF3v>b*32v|1kuQPvzlB7;l}1|4CVb;o{f&Z9&2tol^~OzdPT z>!w-+Xq;98G~8^2zz}65At{6AU-xB7NmnyzS{qN%_UHdwI7EzwL-8Ahb^OmyeAH0p z^}Tz;KLT*l+aKO+48@LBSv-&DlVNfF7Q zls&820LWPi*R^<8X4rPUk>|Ng_pg z*<=nmGqMrf9LB+*2)d~`Mh%sRtZdvcWRRQlsMEOGBXv0T-sN9&WU(SR^VHGTnL3t( zVS|0fJibCtt@gfV44deo!lKgeK@`Hjlej+dtYi|SRLHl!c^~EE7!`C_hXuKgaQ0{$ zIA-c1X0sS*zY%98-reN0gHWOZB6sXJhBHyI@!(XEbY-xQ<+Z-@kP(Ed3m8+!lmmNi zKwys*B#bMNIlle*9}@z;Wc%#R!g_kWu-2D-CgddQdxb^E9~!Ehumd`pUZueK;eZx< z?-;_*PzwZT{LJfV>Vi8J-w4j@M++aP<2KviEUufuzbY&Mxn4!+><;({!19+r{$ff< zO1Eq*$bZO|!1Ii?q;(>@_%`J;wQOe&7^H5kThJD#W>0i2SvBZ^b^*x|aJg;cj}_(t zIbbDBPV`W>;Tw71`>vxKuU|@mD478;hLcHj3};o$a3+-=?AOK~!KxtS);_2$DIJbT8#(g4;-QC`tXj1m32i6+jyNzo%5g!|kN)e>c<)u#h- zJc8q9FGcd*bjr-XKmo}^>ojD;Yxb$or#fwT;n%S5o5IJ+Ws>?V{eXmuM;?8WcI*s) zLWMnhTy)uFf%+uH4ND8@7_&Ay`sfI@=~uqhIS&ElQg9E~T9@~8`FZy9FJC8Fi4MB~ zf40UP=P;B%#80`g5A)<6h2;i5)-`KhrDxW>`mXfNX;xQPAV^=|R$TJ4q1qb*uUz$t ze^-DUNj!JodmAlYGKWhNm<{rkJw|0IfLx=zBLH#-o045_Ln3XHZ@&Z2*ZVty1Po?d z)mj(NfS;tMWE-{Cm9n4IE$~PWjyvrRP^(|C>=Trul)MX4P3aCg_{O7zgk7^S2D#n9 zAbSToOL!cpV6ZU|2z;)msO0gTL_^B{^$P#?*R!xwt*YM;c1^o-MSN5a@{?h%rev3P#%)hNCD)W#Ww$T8b4!&LcauONa6GU zO>K=9m{XzKIz|hf2ja5gfzGA;>D@MS%W;s+)8&IyhrOz6UBtWhOZ5bfH#gXC8S1*=N?+T5{*L|BmZ40gM3O^Cn~N)aP>`%dxjY zHI^~ty+HwxM`EnaKpPVvH|@cgc&9ADCU2=NqQ=UD0|ND?t?F*GVxK%iwI}ycL)9Vi zyf6eXo^60!fS=z~SPd}$ovn4Wd(*EdHETT68Dktopo2evoPxndBD$xrxOA-tRCv%L zs=4v30p#B_0CH1tCL|qTXZy0 z`LQ>Yny$JD(8&no9RXel^x}+Gqrq{xT!zd@`8$dpFLNcw?l%NAR4v<`y z5dd2VI3}sTq;s7rw84)c}G3HxxFr28GWHIa?2hUES;u* z)wmq}E8RhRUw>Gm+lNB0ZgximfyBip(};gf4EGcvIE_$ef^xEj8|hr>S$zO zzfS_c;h1TyJx_w1HA^I+)mJoO_;bOXQ(FeJfx7j#L>CN9$)rsBi z*^Y9DSSDS@S^I0Zs13KTbO8Zvj{#l$ylcK7mkE7d`k0AWCnuu_mwe()qA>Y?aMSGs5qP^>=ug^}+r7G%yWWXE_EbFA< zc{FTzE+q}m<)3yRx0Vu|hgmb$nk)&fDLP@1gKoE@sgmkW?BsF_X6xzgrN_XNss*Q>4>ZuPn{jwMP0!leSNzvDs{=2G3i}#QGX%|+~gMtg1oI* zaS7dd$JNH3E;@+F#`F=>Iq*%US%=f0s(3SXaX^K6t@$6AN84P&(c+?=a7aQHcT??g zLf{8GWi;dCD$#B_+x8HAw7hAQo;OvIRRJy>xQ)043tBph2vE6Iv=r++SckuGU6DLZBuEl&k z;j94Uqetb?SHFB0WoAl1SO9z21(cq5fnsj;vTe47*^}&zGsTQwhR#?np9}C#WRR<- zd4Eu(j#|36r<)oo4^n;Ak$!8E=Z&31Gnai_Ilp58L1)?ZR%=@~{d0W<)zte<90;GB zoKFBb)alasnY45s>W^C!nwXqH3$FW$%2D7$?2$7lHFK;}srqC$)5pp6?`{R%dRopzii%Hm&EnFHAy4q>)>%XI_6FU_be$zEzZzoM_qafha=a1fNT#$?WMCx(^I4VqcZ#)Vuu- zSH$VI25PP=p{AN*YwjXozvGd)V+&~JrJu0*(|YLejwjiFA@AWWtv&Rw_2q-meFM)( zRz@6s;D%8&JjFU6 zk%XUS!?@*+ol7%uRzk)#_F(ubqGGsIAQ(iQ{yyi9tQS-J&M%#PG`>F9GnnfHIA_4} ztxDPB!63CYo}~IydqZVwac6t`>4=T>5T|O;x1URZ9JpW7dCe6vY1O5f;|0X)to+PhLXtNtSN_fv3g0pP}MiPb&#e zEp6TO+^bb|wH$B`KLRbi)E&rGFz?!JlU&Ov6U zX;lTdW-e-bAj?8&g8``r{;Y^zflS@n<6Ajn*Y4>6^<7I{DRs0~6EbJLW{{hUC}->( znsLcJO1&93nrhSl*!Wr%9gToPGok}1@4rN^2Z(kN(H%r2@yq+~0UT796r|H71sN1= zW;-IYIc^xuT5>n#jh!tikswu{+(+-c{Wt1tN0LGKn+~9Lbsf1JMaNjwF>vr_jh#mbnvk2Ifd@zl zS&-bUtd9p1hY}<>vjC8HpXuPkAv5fJQ$A=BiAplB;jy2Hl{;-bPJHoqW1{|)TUvR1~*t2{`@kx7K zqp0~4$A2*ppdS#C`$^K}{i8-^(^tOqLCVaqoUl+=hyX@(rfg$lzXOvBsMa0Eo=bfk z{cA^Gq+T zf3=p5mPmBlL!Z0%o^X~&AUi9KzW(4{grA{?z$J?lK?Gy2_Uq@J?9uc$9UxChj;1@WA3@m}>bD@%ZSiu9 zwR8vu(BwAOVX(~*xCq_q7+bezyY3OH&PL{V{*=ocV~u^H^2jE(Q$$179Z{sl8n)Rj zH!q`GZ(63xZ6-e`A#4CYvG*=B8x<<#C<>oM@#=bCY0xX{{W zu5_u+mE|gvd)L#^-OsYwXRgoTnd4~f`mOZL+BdwfnLw~Ks+%s~T3T8<*mXU~`yvjI zbMWG|3+ayAFQ*uZQW6=g86z*E)ZD3x)y!+-=xfs22x%j=1e3fOS{lo;!F}0r{f{2X z(lyo{=ivW#t_^H&0h%)V2AT{IMmi&7eed1;MJ0Kdd}9EdfV1-4I_#8yr@BDq8bkJ=y(da*$+1V4(z&)#tNz_Ep%bq z5_^{lgu9%BwQ`Dk2MAOOJzk=OAK)I?N7>`%v5m|2mVTV_#?DoJX-$>1{pDX0d}<*L9wa(e+D7X))zIlP-dIb$ zP6U?F;<@mvs=huX99(?O7ua^TT9B&B_R`)r|HNl@PtAv&X_sjDzyOeE=1tMq?)`@t z%6&trxa@HYDA}e%*q2tcSz!*tIceAKqx8Fo_*LC}*hw^Nna!^nh~{AHnvz11-7YuR z;37XZri*U2Q>phm$#T}LcsBx?;8RV@pRTN3;kSej+XCJ&);lBQ!}cVb5xNKfIRyeg zZ!aqO&x1r>oT=gLNz{T#%+bthrKqK=PGPdeZ5p!vW*UJ z`-c)NX|j}T-cc9M#N4uAFMVcvNy++wjTUcT=10p7^u(}JtjzVRpgU-}upS2l`3U9|3%N<#L}yRDg&z|p6Be%zZ7^Hrk2gM$HZ3>EKx(KZ799Cfap zjEbh@)O;E?Je!7RjHNixrW&-9>Os+{(PhwtDP>-%vA&!05r!T?2YBqFuYwucua4NIVpf9yt@XEGQV_kh6wQHOHSn_#m*xsiR$ zu)>B)C>_GP1Bx@6jEGA(8u~auqm)`11gLTJx<493-TrL<9h__nul*8dtI17d)cg;1 z+Uk(Mxuc0T?`#Y^kmzAL-n%4BBOuGQ`AEnSbo~f`TT=aCmTNF`pp1^!piT{ars;$= zp8-c(bG?x34rG(t+EATrI)EInfLw2V;iq(33J#1UK%NjEMb}@RLsP~j*)rK&KwA?a z^JKO7vmtbDW6mbe8ZWZRrC#l$BGfZRs=4Ys0+!<#tE%52DLUi0i`dV1|< z@ABkP?y<#RwlI?x&Pr7d>SrAw=lwjuwn;|b6w1t)CnOLKj z>BsuWCh9qJcE(yb>aWl^>Ye@LAe+hq43ay`ih17~bz;CZ^;!{dQ$fup<4V8s;&aWM zZGhYsv;i54PZ>>5tv^D0_Lg|k3c{xQ_XfysS-FI6xoHVSNnj#_L{l!MxWrUN0$2|n z1s$X07?f-*d5X>QQBDy8*PBa_t+_AS!9e5pq3l>QTiv*hWw)i4>MHgNMir?cAbeWE ztu*1nYZP79(OOSipZ_s+v|4o$nfkG`oz}nV4#!?Y(uPHyEJ2gsJjIJ@`3`oQ*&sK^-+6%!?L-iZ6tsQ1m!5mIhK`h2c8{lT^>C59pKmVBUUIj_ z&$ot(_rKr~>+orZX!;A=004PLE&vD=_0-i*Z>}a=l%Jy}C{n7;znc%n=08rI2%^ouv8=g&v7OJhx0|+X9Wd7?qKH~{EHE6z4PUtD|lmX zUyu$LwbDzQYY187VQE2X3jcMRB4?4? zYkYX_=y`M@9Gi7zJE^_NZJ~**QqVA?-gSF(74>$X_LNaB>bg9jWQM{Rsw{q+4s3Z$ zsXGH;{Q1|b>Af6K87Rq_S=LbmZ?0AhIt09t0Q8%v7Bm3w-GWl)YgxK%cIOgrV#B}fx1kcE&3p# z(6f9VfFk6GO-{?B`B!|F5L{xlAXS~%Lwh%?G6_TAwXOBEZST7b0PV*aJY<@6WGdZu zImN_U`X(wWMy!o=8-sz7G1+a@XtSi%o9u<0JvK@rc60!IuRg|^T{+{p~&G82sn;0$1pn$`uFibhPk(i=eD zX8`2Sh94kDw~_6$)WcXqr$#J;+_by`0nVfzIdKu!eP<`83%$2+)DLWz^$U>OgApP) z)*0!;=__A)KY{96Zo2+4K#mOZ3Om6ID+PDp(W9<2LGr57U33O^X@7w{K5g!Z1TGSB zK+3{vzNmm(ZZZkRwEy*6+T`CDAcwxX`KBdw%Z*DoD=Ty+U_Imv)Io4PXRJy!yG7X= zk!>2Pw`+)_-V`^^PIeEJUDhP<+w7Nl9yJ~>WZrmA$hNcXfeA@zwD4+smLdYY!2a|z zXMopE>|g%ucG(Ysd>oI<&GoYL2_Q%2I5Nl+<1OYf4EmHgD{1nan>4oWPk3zYO%IT} zz~-#OJ-R4enMAy1O9yDejH@|_0_PE>=>Tt6yKLzCSLoXy1yJ$~eNjLpHK+tZDqxlA z>TLEXZteiNJz!G=CCg%L&V@@xxow;rV0-A`(?@B!(Xtn&Sow5JkyQp$q(=bCuN|UUEs$=M zNJ6GPg7&?ZDKO^}`zW%R(??vW$hDh~Z`bZ)^t(TS|2eYo4)vk573BwL^hcOO#vE~md_he$e7hdBFTp> zFOf>#KXcGmf?9|vt)+%26hxySTS1h`l?+j_o3QnQT0;N}>MIT~^?FZN|3G&Lnr%$M*ed#|`3N12BOA03ZNK zL_t)r;yjpWk1B37>uf-)j|R{;pR>pd+FV3-FIZ{ZbruL9%t5+PeWNZGssp#!&;4vPo%8; z>6{T98x!xOPIJ{O>Og}+65x3D_yr1ulUb9tsqzr@u`wxHeM2+-Xd3i`;cFojG=!ME<_#jRmz^rSv5OXbGj+@ZZ{`fVr35F5*+91kN1L5)50ruBM?g`lW@)$?;|hC% z)N^4gs`?je1|>17%K&b*D!SBNAKHh*nfZcmoHFNThcjFN^Jzcmb~Q{395|q4%NsM7;uBNY<`>yi z=mqlSti9B3@3Y*Dzt~aN6>?K?_!S{HM)n4tx#roo=;;Uo z%vAdN*FHqqS!%Yf=-=f^|1j17$Qvs53z;&M0B7rl!6w6g47=})iyl#@$lu)R0CHEG zjK6E(GY{{%Gp?Zv3b5x|0G^P^^;}{>-E#quR}g@5j}0IBY+P60-Qjk?czA!rvvk0K za^JnzQ^D-XqC3XgVcA2Vj?8)`(fd26Mgr5IM@=WVT=57%ddNAh`+9BB53MaPG^vBv zi}yS*<<(XmWXf2~{jlUrTD1Jj{L^gs{qX}YvR&5KYk_Zl2y88Eq-}ef{4x6kgCReJ z$F#?Or~iBb$g#dIU6@157GzUz&zaC#VsLAzrsNcY4qo^l>TGMUeP938<<*Ow*~tB` z6*n4RZ|4N)jcEn9(1aP+Dv&(btIn_t+2S2sfE%XHmIBW`tZ(NfeF7jy_IMyBo}yzD zDLPjC4A@GWwKbjM^EsHYRBO=i^~n1m+YC__sfz8*T35cJevL8K?yUy!?)Vy~{zhP1 z&iI9nWPvlCjdWt)2C6LCPHoK5OF20t zq$`N1x#|ejm1ECUWkF|YxY_KyrLk{9vHBk@H+*Ey)wd2iL|W!VnacG%jdIlv}w8vm1h@JQgndCcv0X9<-dj127a-Y($}_2~<- zzqO(A5FOn5HzlC#^cf`L)`T+=7d<`_-5tDj>xmPGhVbRuTYacN&#w+E)jDbcT)bd9 z-Sxq%9Dq)AOuQvX_AhbhS~mmE^LL30rT4IrW4y<1@Pw{4`+?U7i4u~tDRcBJ)%aq{ zJaZGpX5i8%<0Z)EWT3qAFm<%nGQgxpvV=?!u7x^d@m-WVdX_>rSbcIY?SJbrqi(k7 zBr+b~+Sy23b~TW6Ui3LY=iu@{u#~!jSC|{bqEVwVdgEjMNP)mj-b0X`{YKQ|1rw9# zs>PWEYEQGp#V666C3jK&m|4o>Q5SpLriZDusmk#%{n1dPP<@}QouIc}PUX(nMGFVR z$+K3_l$k3O=Mui9aMQygi##ro@Nma7&KzFw2 z>d(_~CA&08m1TQr&*sMz1K<2kUBZj$m{uo7)RnY1WsE@W86C?`qRhO>Tz4}jHa>Jv zH64DkfymBp+akvA5M+=G$2Ze2i=Y>@Go8&;arAY?8Qas_OY5H7M$bOCje2{BoQ$A+ zA{=5L`^YskclHED*Tg5L(ny)w)yN8ItUOG0r}i)nyciq9!5_+uvwyG7DPbJ?ZG&w( zM=?IwltF*pRA0umxg7P$jf16rzBEd+zsx6%nsR~g)hh!;`J-pi+$DD@jza{<9NM*p ziVwV^IAdGed+70vHB{H&*%^Bd6sUbt`lk~$Xx5)6B9%wnL(hjN$Iu5>j-yFaCQ(}E zSPs5{F$me?Y$cmBw&Bz}RF4t_A=*tyALiQp=a?St%yOxw5D$c*Gozw7dmKPw)yci= z2m`?AUeZD%V;WD$@U#)M=<3f>;xMZ;47z{(;LCJy=Nct|3I^kb*X!w6sa03l!!W*g z$$2&cb7xPYkKcVQB_+y1M*+$hIfMTR$q^a`pxenqFDVQ@=I7Y=5ut6P9Q%oIor&kk z`wjmNK}TJuS(i4}pAdnRE+K8Mrlw69Le)>5bv;d;eZ4JPtcl)!@t4$MV?aXS$3Hhz zQFCj!vwl#=FqJNulcr#x&>PUn!X~p?M|%Uk_54q%!{Myw9IgKMe&w(F-N7v*4#O>I z_7f;AYaFF#jWg^9p||8YGkYQCPTZFFC}KbY#zZ?ZH}alj)?-gH0v{AmomoN%0BE9BifNcTOs` zp0BgXFth*xM@_qmViS_ZNE;o+Sf65m+zMi0fPDSiv}XO*u#a_C=5YGY2X3dVtl`R9 zMgK-myP9GX3;>@+BuMq;`$J_KpIiM!90tu{+w!)QIL*6XYJjfd<$&$CkAD+2TxFUFl>(M^93LuHY}d*{qPkud0Z0J zRUILWCzb?)4VGN{MZ$hyHcUma#?BS<1z_4@;#HQ!is?J`+^ntUUM`PVQl! zPGemuHPjSSN5>iCeB`kXwTJhcmmpaCOP{}$GSj8nvH_xu{0k^^)J#Jc8NSh;ZmK%| zHnlMWm?~}FZFbx#d^rxAorAW!nSrvl;xLavIBa(KD&{Qt2q$`&4Zh=DoBwJgm{0P2u-dOc|F*%a>&-epL7#r_a5KCeFA@vDMmIs%hJ%N3?95k+#_}8Vr)B z=2Le5REkST3i%uKHoLGH15r`NSx*h}=V0i=n*_syvF0E>yY>{*A0K-uB7W3GbJN(D zDpzMwh9-J zT(ak*W8)}i!XgnsEEyrl9Ii4CWxw~y9s+)nGBDa3?noE|V@vIcUDScHpkC4hSw3wnEWE6Y zy*0GY2WS{{4oU{dfmz1B*iwhs2ZzCJ{7yz6`wI@&2L{Qu8J^VHT1Ryi2gM#_1Ie`k zTP}Wf;F8dP<{Cw;%)z2odf`nlW`=Doo(u$oU+F0>UA>bi>>F1k0CEa9)j9wj0OS`h zm`2gjGR2eM)vb4`n;F_(p2i|-C~H$#U?A!KTlc)EKr}BpEI#=#$P2F&6zUb?HW#Wf z`ENJ`qDDFD*R;3Rx>B!$GDbv>8BQQ9+1?&1;*95Y3jIM#TMs?|MhzV+4ZlI^Wqb#9 zjWgphuwdf2nZ+VW6?t6}vB(iprlCvlwWeh#` zug$dQos)x_s{U?5_V{hfM^HvuOo;Xv6j4)WuAnKiQ~)0!!|u(GQDxa4$0MB?Ool0^ zIb6F%N$DaYkp%{WIdAk#KHM=-4w_p{aE>^nildO#0(|(&8a-Rh((dV^>XL2L)?m>u z!`BI9*IBnp)Z&{k?#G-Rg^R=KJ+kT%;&-I%uvfq!{9784Nosd0RSC? z^&<3ers+2g1$j)OxbC4jX83%or>rO^VO<{%icYuD^JMT4QQ|P+Owk2x?0)O7 z9K2*U1RcFm*hGczwED|N8Tu3t{s{xni7p&Da#UYp+{OUW48JeIq3zOnX|!-oCdGlB zA#V!n6-2s^oPHI>OQ15I-PUlDs*Z2r%oVj^h1zr{FFM0nYLtZt-NTtnVmaCaU?5*T zJ*TO?wVvv#k5JE<4wqVRI{U%?K*&cLExPJ61fX1QtxXm5_DjE_&W%OFB>w~JXY%lHF{FtNkjnHe(@w3=K)R}R$-|Xub z0SK}29B2g)AvRV7Tk+d$gNoo}vBuPX;7m07f~&Q3_NNXR+4{zNG1hC>Z=*FEA_I_r z?SWO4ohdo%8Nhe;593o`j=-^ZJo>{7;L*mYCdSz=+X2HKvj*E_r2u17Cp&s2drUK? zLSMP8FCUwnS9=U^n>K5OGkB+?k+#0{D{b)3Kh}HKO$K%L_X>+jANsch$TNo1gDiUj zAUErV>vRzI9DrB|nl&@)OiE}mUrr~USc*o7I426&9D35a2G9_Sg*0tApP4M?8G%bU zooT1~s-u)U@X$hhv7J^ATn>lEH?j;{q1BG42)Y1u>*ZFaH_y))|`;MjydAgwIz8*TX z>scx~@Ula$O_n*wqg?cxKS!&2H5}&C7v4$ZFIrCUhnS5SWe&YUXF}%*^IHv?cg6Jp z1iVkr$RWK>*&Z?0whZ);pEILkl4IZ^U%Uu+dQC%wJt>0?@*C zt*Ubz~Fup0WI*4!@7A$29vN zh7ybf&irv}0!)y+rc!|9TDwWNgfwf2gGMhgKv8KPaSq+`;;*T*!(yYw)NS9_La*;= zB01@IK;_`!0`{RU%OC(zvN$ED=F-B;KS?Q)-w`^y_`u6_aQ9k=57o_P*RL%%o89FM zZ(Fyp+2I$>8Fe8C@yllgUC9t;9hiCMhq~E3Bt@ z2Pbu0@*xKk=dLaP%gIKe29P{4jYf=_LkYuDg&k*38pcSs7i)AfpHJNc2~HqcSMX68 z^CkR)*7%B<4Ph?0h6DFTv7ZtwU7@`<*k=Up9Z*0$_MtwqAtFB1aL?UfpBL`ZE`Itk z6knj9_eAPiFk4)=G>aw~_zu>6M(z|EHSJQ$o48n8-@dWpkih%&QQuNmUDk_cZ-|K> z#^AWUtVcVTkWTDmpQN$T8t>KXH}*%^S!2Wo-7lao;~mIWZ)>Wg+Eec+zHIGzjAMs2 z%~l=1RxD;9B*5L#P?I|;t)0A1ul`%#3xIX$3=AG^&sCOj!IWw9L3dh*FtZw_S zap*z@xgCUV<8S$GD3TLKPjpNI9X{R?p*lqYT5;7ybj6afOf}Wp3q=}aLlpqNY)Ipq zIr{NzI%Ey!5gf5x3v=8&4jho3*kUgdHQSwN9PyeTIYnbgH=d&E_jI$_j>)i zMxPGk=;Hvm$>YBt>`kvZ9mZVU{}7&X)uJJy^lsAfAcLq0B?a}!OR{{Pu~ z59m6MD^2)&$T@=~BEd|8Ip<7DRF)iNdE_M9GY;b!+dKcxdN!P$usgfwtS8tr_Uu~r zSiwQEtzb!vBE_5oKmY_OlE^tf|be{8oo84yA<{Bn|T-(@Epe=3M9HeE==8TiTn&%_w zb^R+)pQh(7M|z$KARp*KP3b|4G=FV<8~)Gt-a>n)!`he*M@Q4DzW2 z$kP(>m*4(K0HoBOoioTy&!+(7#XNu5=LCo!Sy`sVksgdcMsp2GCf8M5GzCqpeLB_t zm>ocFH}+fFhw<8hW^_BOY5V&QkW)p|EDuO+N9;Q5E%+ZEq&D_FNBKRGOQ*mZ<(TW7p<3%;l!8X z1C}J7fdL=hI~f`!Gv4oSO-D?OZj+q&vUHy%eoCcnuAX`s4K)VPR$B*TWK>(4t6X)_ z?|{&%buVWsXD?y`W?)_7X+`wc$^S^tU8*QP8OswA5&HINCixrJsVl{I@#0JGhbDWR zR5(`=d000RCQ5Mj_%cIpQT((RSI)d_A+*x_#3y7TXVw}fod%v=QcqmL&+SOUqM>p* zASN}N=Qz!GkQjDgAFO=O@W>da=iHGKoriu%oL_@8y3g>}KoI&ok3a6WM(PXc6 zFa1-B1;)>t^>^_3zcrCq;AG!@GUrpS?WUEftdK@B>spIX&cf2|U*__%MzFcJgTU%b zoOIxW#ViwEz@&&dxjYt|FBXlE9k5rrAN`7--Unhs~7LoyPvJ8-ZGf33-(=Hms(%H zb|Ies)NYV-qcn|)Y~wr`nNNYIAEUOBG*T#k?O;H1UJ?urHU0mD^qI)aUn2xg$vLC} zNRF?y=F#}wKQi18Z+i{PuJ?MIgli-uXJgHtud{@N*2r0ExO*NYXI}+5CR*zs7{#Ge ztt^M&Hk)w#w+Q+O@-W|u8uER?R3FYY`?Jd;SAbiQ0jXt?-zwg3sYPy|MQ(K(g4+&E zK^8gH&rw_dfDijmwBc3=WPvGI^XFgPhj4!fOVM_<*D&jrv&cyX-k=~sLCmYCUYgP@ za^<`D8Q4os%V+7TtjgoeX=5wP{Kho>PkEt1dRv6P;Vv>6MqaNV=I+%4}#eQ2q^!ZlaLz>K|( z1*|};^%js5v}QNS97?LEOeBZyjyeX+H4wrnKu#OLxrMt?xavu<4moF}$TOCL$!K%f z%?}Qn!X6+Q(l1fjisiF~yD9*en4zj=fVS5bgR)XB>xDV^O64eJ8y}X~HUQ*2eaW-) ze4|6?Y^&k9Q~@vzz`UfNWYeZ1srpSJbJz|b9~kuEy%V7cxFsis<5Q1KM{=SrHyUgf zsWQ{c$%)og#07wyZs-Ba(k7;4vF|`qj{MIOXHNmAmWvtW13joNJzxRITid+&`|rMi z)^@L}7Ek+>rygC4$M>z|eT8N_EU|9RAZLJ_vh_*MUaa>XYJl9hh9oA>Q0ffZWEz?Q zWy;XbUn~d6NzUFZvHsS(7x3o0?#tO{5J3K|k08U8K~9P)xr_FQrAGn)xuNvP7++r5 zd&=c2w$5oE$@saN)Wa$1ga~ zl)IN1I`rYz&n@`RK0p3jC<2gV8xQYZfsa4EQBdcjy-8;NN~Ch8r-86YWgb|?!c4}I z1i6iMLyZPyvqmYB>9W~3*c!8<-4Ho#dcj&G(7fQ&eQ=tmPMOq2IFm9+`%so$zt7{r zUthRg`8O`A41}$lTkv1}e*D)^e0wL01$~cwdsgD(Pj3$F6G?s0+f|R5b2njn&LRQu z@JdvYl>5l5)H)vG+QWtbASY7Q%FWi2c{0T(&2Ny-Og8gdFhN$C{U=h%riZ?P*u-h@ zM8*+H#CxH(+9Li5G;Lhj%-_=NPaBF=FzPPyW3AT3aZf2>l=gU6mD<6E)7m?F@PEGl zHtOm{f5M5~j&}_C=>(ALv1Gy)!dTrem21H2UyVRFBFj;xzV*8+S*^xzKy#u;DJ1@QquDg6PKze$4Ul1 zC%r7#g(ws0qq|Kdu#D)*jZ`w=#g~rYa?#!KOf=}fkDWa(Dt!zQ5#jVJQX&FL$i&8{ zU|Loo;*&BBc4F;Us+%lR;?mWLw6US?OQn9fT-m}huEN5Qm_Cb3O&AI1gqsk##z;h< zhpunzz&}&=c$2P_5Ok;h4xHdHW*4eAx#vF0L|;siR?h&HebgG2FqymJNz7gK48m!x zRqd75fac0e=Z!)CkonmSm(re$NLpxYH&2LGe3dH1p1snJ(^on$ zI_h*!H||%h_K)K07b_~>am*4Q_mUEyWdi3oKE-XRbqYdm-LwSsdvZ+@0AS0oVM9p& z+4+Z#i;c#XjfJ9|aYPg{XRbvevC|9=?a)9M>Te#$(10n}HOB3PKmy6d4)=3#pPa0o z?q>KYLnSN>^OirZW(n&P0&R4!o&0yD9*yDs+d78v>w`@psYf%pZzrBT7JEvyzwZE^ z{{%qSW0}AMD3fU#Vhy#(6&B>fSg>@jAbr)}+kv9QiDifY03ZNKL_t*Zuc5K7)L#DF z!843itIaZ5$;>xk(>8W(xJX!71m-W>$M0j5@#4Db$Nml7hAdt(6UvI+f3gDugU-i+ zgI5NPl^34hiIvM{av1;u$a}k6x%Sq&9bZC1(saXRG>7^X3>lb%d;r(U5}UHt1+!hX zn|jqNtM$nVAdgSX;2$RmwOs3a;ZBnrlb;tv+9>*ojG!*ey}g5Y@s*>vQe5ez`+__dJD$@vneo@Lhed=*J4S;A$gmi6V+L^#r!tVA+8aj6Rz zi@Sr42L<&(T{ze&8+9_$O0;R-wk8E6m23pF;}SBl^|AjCajDtxgez-2egF3QQkEIA zNOswPAhtfM#F?XGEnl4Du|D*6H#6AN*wIx3YfSCPd&0m2uM-w;QYdeEg7oa9o1;~@RW^O zkk!U)fdji4MIOOrduGB>d!0%+8q={9`i=qehrXczkb&mM?XsgNyZT#RueC-AKWDCX z!kyd6TSGyIr+) zdfq1=S&gS2UCpx|)p4i#kVAugTw;Wu-O&1b+HmsVKUx5Cp2sENfy}1Id;uGq4xHoh zC2BjU6;q_;(d|~a>~{}gyDhiz&GG}@B1&~t@kduuIQ6a0QsLk2?ENs zM&?3Nv>Ev;O&Mu^wAL1*m9wlS;fpCB#?m!*-$et{*$%pz*eA31#T@!!$|7&$Xgl-8 zxRxm?`Yhfp+GB4!P9FRx!5-;#&s_ELk7K;v@23dsJ*n|H6#zMp@kdsR>sE9e6T6}a z7%(&fiE4>BV%~4bKA}0LVhHld{3u1vRX$RswGV|=$nHM?WsECfib6#uFYzIeVaV1tmL`l4(pgkpkq}K~CZ|V|)|a zY2EC@Sl1ScEhwa$LcvF))|sHd!&6Kd>0QAlcr()&M&e0 zqS2-sYOaH1wJG^TYXd`m>_5@LF+I0iT5<%Q*_(m%6p_q2uW%=?+2)b~SI@kPhMHoN zudaZw5-7&zab>=`{2J_h$b2C6`%yWhq_kZ2Cu2!I-R!GV!b{FFRqaXN3;0Hc*k;V* zv#y~X-~E?&(cbA=CMEX)#Z)$~NW_K}NkZuVwM*;m<@7n@?Yv=+xD zrXzFueDyGxHG;EpOqh<{mmna*TfYu*#qOEZ)k%ykFKK#&-4>#`gxF@adM~B~oZ}@Ik{4x}E z$BiFi^4{q<*6Fs?deA|YiHshX&mlnnh3EHRHrw}b{GN$0iK(O`5~ z$X;5b%fs1k-p)GC!lWAIR8xfNW>fuay#}HmjWyR%eC}r;U{`C*`ncMOGgrIr>n!r| znA;l*3Kot;;0+Hv3n%kgW1_;adt(X~&Wc5t!AVL;nuZPAKhMEV(Ge}d<#WHZ1`=$f z2kgOc$wthEwdavu+eY?Iat#8XH|%%;iOD($O&RewuOGzC>xWFBjt~1!b%g}fS+%SH zU-&E}wS z0xhma#R!Ae1+PoAQJlHjlASTw--)^#M==zrDW=p7;f>;}C(+mMZkdg^*eJa4>1|lK zG+zvU#3dtl(Jn+8Hj4Beh|NaXybM$tR}Pj5lLT4=3LnCu2a|?G`BnD3(Awo$*;CSkq+tmX& zKn(4nV61X7GuFh;bqbJAMrNJ9_39-F*tR-ZkT#-Bj@6r=Lsr3Rcp_p{2Q?gneI2MS zu}TZuy`imBquG)gyJ3IQ#&(s3+QT4XXGbl1x|-43(+1fbE8E~H@A7G68`oNZ&DruJ+702NP*(nM>9J)+n&bpg$XgZ*9BOr=isWtS5Hq%z+e99qXIxq z4@ntq>3J(G68x>TMG8Q!#ykSIkxG6k`Bzqnb@{_deX&6HgK`epK}TB+yd8}g=(Eag z2TDJPUXwhtKPX?!D(4#;mx4{Z|HML8WP3dHJ;5F|05rI@)?bBT|IQ0lRTU0Dr<;dO zO08$S2cggU)V@`C@?p`&WaC2F1K5)lJqRFV=jQbTxKVsaSQkk7goxk4lNCc^BlkS`oSG7kZ+&GSaRnc7DCw)v*D{Eu>lx<}KQe!WCkD z`r)B|Tt53VHLjpPP;18setozd-MtQDbK?!b!0H05SrU&es|n!JPa=See3~rYN2o0# z8iPZFsJ(qk06LW^ek{3j>%-XkI#$$Oox3Gx$i6Kl<(NFb2vSp8ycf|XA_8UFn#rOg zqdxrRol7`)jLHx>>_mr$rLj#vf}CuT{F9iLkF0rH5FVi?VEO%{XsNs+DQBYDuEYMY zv*|GtbKMtD~OdAF^hB0w5DuVd?UjpIc(4%AQE}ma^WkmH<$WvKbdP@jc@{pOS}?)3TA0o(C#-U~F2li!p{z zPFWAzG=a7{xntDl!*352;hjU*TnBB5i1768R0|P-_e7g$Pox8Z6f?afu>6)$r$KXw*66v4 zN~`hmYp2oSa@i?|Q_R#K=J8jC4P&RV%xL`)9@XdMWTL2p+B8tU-V(RB9$dPz-IT|;S@ z6_r%t<)0mMy_DM6kL%9j>*5+tAjs=cL!*CcQjB)k>%kosa)6vxrggJtKZY>>zXA{o zM+En*ztcyrSUL;OKeq#Esm2TeVgTzv6u+M>K}OCpwZ@6^io~d-dc-8R?5G8TcbYLP zVIaRJjGar$5^t!wijk24WM(bI%1zIUb!kRNK$76}!`Z89YwH}wZw|MBvdQn)HXcB} z8i)*^TR>Ul-c!DwwfZLJVJX%FTVS42T|A1>H08SwR9%F@Z1(b-Gb#63Bb=;A_Qis z?qFT{Q4IE}>K1`Wsu>_xLQ_`Guk!d~0W!+pv~VsV3Sq+Lh`u+~Caw1iMXL5tO!o)b17N|5Lsd{}l&cvElhD1LpQ6|J4}O|I)7c7hjl z3Xs!BnvBePMoI)e`fw(a;>9e`d5d>2_(EA>o~Q(PC|kleg8Ex0(A`$$_^qUljlq_* zPtRl1hG53z3{{@J$J>JDhH{Jy4GNjEnng?WDzIqzKF(?tYczJ^^!q=6x3f{0OYi)S z5GWjffIq+kS1z527yf9wFqcv{WaO>nY+$1uj17?6xaCg0b)V06?$y_CKiXTX(B4{s zq2WOrf|K|Wne?%dvJoh-r9TV-q9+f3pTTyce-J8wJTX2TAAL9jnW@IC6foetb?;Y& z%;tLnklSRXa1w3?G*GTIpl8I7{Xg96C!UGR}#XG1|jfiDur;P(``y{sxE z*{xW)BtNh|(I<(FPDK9FeTXs;N67wLCG!t^?4Iy|UoUcJHJ@Buyp;bk#w*N{`Wlr* z-Rn95NSN%X?{zg=NMd>(vgR4~TE0>EdfQN5^sa?C)zv+UU%uCZE{FB$1K%SwHgeAa z@|>(xeDf>&^!oHF>%h1^5!nEP-RSRaXQG_Zw>9*S#dPg}FFPBTgSmD`I|IlSqVuDe zyKsl#pV|2|mr8nY;aERfVtHt+spA-kQ&Vbg8ikI-7IOPpKx z%j3-#(ms{d8nz>D^58e!MF7t9F`ke<1^``02@ZOrn8!c-@F40MLlE;YBw%QFRAL^h zkd|$VdGvLnjMp1f=;wDyd4aKo#ZPG+myXJBctvAVC;sV2@1wEVOeh?0l#cy(g@}-V4a;Z`p&u)^13&6(u5)bKssckj zD)uTVch1OOh?MkPQ5};MI@PsSSnq8fmHY#(2`Gi^BdYsXqo2-11R~d%)g9VuP|r$i zIuW6_ZxBEJ*$G??f$HYuzEmjB4hcce(F3!88jfS|xbL4jdVnAgN>7c%NA_fbeh23N zuyEweT7zZlpJgQxZefw|g+-v@&N)_su#j}@N|`u(9;MvKdPGLW>tn;`LtEW-{xQZS z+dI1P($7D@wc>lh(RKJjp+Af~{C9o6!LMDuTdy->LU>=NOZlW8!ELGaNj=OxIypQ% z9FOl?%|8(l`eH$YWBTk3NK7+u2mF4p1m|tLn!gs06iS-6y7bV%)ewL%0?A2seSm*D zS}Rbv>S;{RB}Y(qJbF4CapC9>SbkG$bjcfcdU5znyX&=ST>A_Tq|MyQB3B%dB-Iho zzrom9F;eBIgK_wYz@Lv&ab?|H5-h7I|P1^MoOT7+2W~0hY<5+8jQXe>Vg8 zW@pTay~(r4gR6h%_jnKy5smnSG^9_P1IjEXC(}G)iKR?zWpifXU~dO%N)6ev9?D|% z;T>Y09xig9d72WBZ~pOKP#{FnQBtIksPu!3P2F5|6>W7g(uZcFYJahP62nwwwHv@_ zK2i&K1&~UQ$VLqW#H>M8Wj-6^%%HZWyR4L<$omEnn5Ac!WabiYKv=%YxDoZEp@x{y zKNB_}v=KddxeJ%ByPr|%#I~It69ho61#XYR@0sQF`r2_yKqw7!^JB$;P|6H!-lGPD z$Ogh9;E7H`OKk~SYOd)4P>KB*pCK^b4EANmBG>C>nXX_6%4%yUNmEn6g6z*ou<%Pr zNJOAmv-#5&0!68WKtX}o*CrB}4YuPS93QeCNKcK&x4*gvnHebp*h#XI3iF*OKE6LQ z-U zsohTix#owZq~$678X3*~Y6&K*0J#weq<66pSU7{;kGDezkpIW8?^6KsfFBlyjQkbq z+@U|Y0#p_$>!G;?{49eXMu3Ipa~b_G<2*A7KaAExaZL=u4+{}M&cxXp$3SbXk@P*G z4D!%`pN^;VO|xdr9EtFM5DI{tlnegj*B?Pfx=P$hjuQ-N1s?5s6S4hh*WX1=Wf>bu4-1kxA`{C91+!#lus%r9n%~g zOv$rQ0OYJbvFpo7GD}f&HY@Gn^w^EEhx6i6NpFzk`|*c5m5ur2Bk7j1G4mGbgkkL} z1Z-Ws@GFkhQH+7e_yLeS2;Wf}{51eyd_Qe1k`ScEdMoxn4Qq`jEP_e*X*r7p-*I@b z7uBUyHbz&kq|>gIRN=>=P|b^p#AiOa9;=tn5mb8!fXgl1t*Uvd^c_;nsJqU!XLYbb zqxRUBgBbs7D@O=5T*va$M@G=zR*CkOO0_JKeh1k%%*rL=zL+)4N{}Uo`Ny~(k`ltN z4z`DcxIcGh3?A8FE>~WMX% z7xV7`$y>u4O!JMfh6l)-VZxZ#-rbgM*-95)ivRWG%8O1vXFXP?)moY+4$RBR2@sHwb zp{_e_?A|E>$mxb|ORfJd+DKYz0-k?%8hA65_IU`VpaqZlBk%mzIQ?&l3m z-l9E-icM7O$#sM3{oE`*fScD3!)GHy<;d3T`qZJ!x-hYN!Vn%Ajg(ZXUzCH0@CcAp zlhNTOa6H?X*+9U_FtJZhqMK`r>EoGLr{8<=sO#)gs>k*C-eq`f&oUthLIGvUx?lj` zfZxypt}r%D&L;&)_&9+dYFm0v<{aBDMzZh1_`3p>cM@pXR*R95L69VxoKPZRA=?FK z`9Wl)6qC%l$Ah_xc4Dzf%4}$;A6L%&jMXEI-;iV*51j09U2(yYZ96<@JVg%UWwzw! zrw&Dh{TT2(6;z~4J$TL11Z-WEEI6uBQL$LH`8i}W>42IdIo;jafa<#!Sl*xNf=#Gt zc4PqtWF!~@=S=}TKdqA^7#!$DbKMOL4)$?vINk0=n<2J2WwsGnMr(8g)oCm-1@1|D zpCtHiSG!wpZ$ka_;G_xlKyqRPKK*1aX3m_cf}IK|r_J+}?Zf8GQnY@wR$oC&6=kDJ z0CI(2WGovuP8m;?+{90=+q3Z!@|RLdm?$7u9nYb5swwm?3zt5Oh07imGNJqXI&tQx zk~wDd4Oou!PzSpE+}+es*KAyw$TjzjLz#f_ZRQMeXh7M!lDeqD1n6yua&|0oyFi_6 z;S2L{CRlWIJf`I=;@>fGDVVwB5s)H{@=2*@$!4ypL?Qh`t?fPd-~SRKfc)W=cw!%A z$cT9&MEW3*+~XgGkFu+LBV6nG#KC`-)*ugRK-tw$oq$do_iIc%re!VS-{D3dj51|o z5-@Y=qe7-EJu9h|)ZaQOWTwzKC5g!~^lOVghrR+`21AxFz zJ(E=}UBd)f5v2H)wKa}8<>c}AQxoYS*^;0^n3n6Ag4$#oSviZbdegIrjMOEFskC9) zHIj-yCcH;?uMfXI6e2J&KbkYhi8!n^s`I{ThC1)W3Q63Jx8k{qsbu!v36$)JQ!0SPt^?XCf_Qrka5dq-QU|w1U;@epB($ zbrNfp;G^>+Q6HFmbUQQWr%@PchJFby@q$X4&^*=AR>dWf>^g?xcZ*j%rj&j&jM{E* zGtM1vM8)eX&vdJ%F)hg4?&5^z~?bEF@|5O+?z!lT@RkW3hDov&fmXT2#*MY{J!3 zKS4}fD&mu->G69WDyDTdu-2-NX%okfsA_VXLKx!QT$#8z2>MO_U znX%!KQJ67n1ClalshdH?DNy)XICp9WaQJj*u&nA3n2_X>4%z)~5j1F$UB4_I>z5iC zNFKz-C1d5^9#&0k+y(8YmcH<*HSz=NqHg0D%s{dnBe%tKNi))BtS1YB^xQJIf#gi3T#{=DA2IvA;cI0dvqsnTNQ5_IZIV- z#5#Rr|1}&we#7-m1i>rkX!PsJnTR1IR+J@_)#gvDUmT zlboW#nUEhVU#9$O)R;iZ;h{mawN#?7w}UsfLV#xCpKqKqJxEHKfh{{<;PD@rdHsHT zSbhSf*A57T4FW+Aoes@daqSg@W1@zwoipoO9uNL*BIPScX8oBxDM*ah1D7e~aAo}_`(ArYL(~7_+aLx#l`#%VE1*ry@-Ul#Bb6~=kgMUQ z0&=k;huA1kGI!xNELrggkHdg(;3s*+1NiX92g1DT?eXEYLmi;sZZ>+=4J+cYVHssk z=~pIzY}=l%Al|&5b~WPE(H{xpjnA4SNbK=D001BWNkl({$?J{Z|8Nv@|zd@!m#Ua*`1as${yW3%cSnyZcE6=j&d zbND*mIb7_z4@T+}fAN*Q$ViRXc`+X9=at;oM!$%Fk;>xzoaJt5cEk*s60XsM8^;IZ z8tf8-(&rh4Xw%hEhmO`7>3TR>d$c=WA;$cPFzywA{0MGP#++f_LvzvV2iwu*a86Rd zPtQN}-mdu0R0d{@?;1*gJbQXFzWJqHNKKB@X%%DHUD111yJJqa)mc*J1}i|WSdwl} zymWcwMaE?N0d2X{F0V~Z3N=KuQc~*5U9c5N=`#iM8R+dmRp}uN^md}Xt(wVUWWVQ% zdM4t74f*}}tBZFkzWe(GkdsaP`4@K~dxj2XaY9G>Oyn#e$$EWXPQ#?(_BqtwIgiHr z8yFbqo{~M7?RqMkEKKo_z+PkNUXk$E--T1heq@n~zeC9Yr@gKdoGGTXWmN)J7sgo$ ze|t>x8vOY1#tD>MdynHV6ki}8b4K<8#1MF;mW2wuz6r#&kS^6>D|XE|y=ornCKjgR zdK#{wl0s&?uZ0DcTU5JR*-d4l& zm2AIB=O-pj!^Ul&<=kjX4D? zv3%{v5g8pDcmPt4DZ210)Ky(&71;D?bD10?62&L*yyQQn!+yX2*I}OFzc_!p&SBkYcb;o10dhQ$S_k6dqVU{D zHe&6{SwhAp$+zS!+RbdKfMetL!P`=S#ye-lOa_kaDYbdYu?*B{hL0KBvdya5T!_(` zHD@CdQ*#uMae%Twh8Y~ceCFpSd0;=z6?OBEVeGnNfs?#S5bS=>x;X_;!Gjk8k65fO z$Y&sD#O##NC9-lCV~xcr>0^MLoDy@J(!s}mg-vwa%&ZOz$HKxLSh#qn$f)wR;LORF zLG^fb8wKvv3^MRX0HB+V>f?Rx6YH^jG1b4(ubh-#fZT<&+0vMsKHfasxbim2FTW|R z5iEVKpxCLCdo#)&r+TBA)8`;QAzhLCq`Fu6D=>{~80jD(0lc+0Pk@|l&HH2LucQ_~ zeeJyK&L3q8JoCsh?A^9V=x3UXW)gE#n3Mcyt-X$>ii=h`D~I;QJsHfgHeGL|04W|Y0Q!<&RqA>`%;SoZZd+qco}ij<#xa zwAV_NUKUBgel-ARVDpo0glZmj|IHs>rb5=Z#sF)7t@=EeU@o64btm=A9}sb zIR56}qPJW350!Jq@C&Ed2cw$gIeCj2FsDY@kh7Q5*ffw=Z2H;f_v4)-C3yF+`y=w!IJM-~F<%3b+zOA`}6)C2MqzKr}NjFN4;KubM z);Z~*bJEVe3_NP%EmQzG?Wy)|U5IBMT`t5TXfHB-)>>o`3E8mmB0`3(-I+#tu(N7V zK&M0ZgRV)$7uooxJxrszhaoc903{<-m*Mz@c3dg#3syqA*5@C2=%-Ck+qwpz``b^!K!3px=wSni4MQ7s?itk0bG^6ap*l-4;9A zyPYfQ1^u`iJ@J0Cb|@rqJ3GP$sU2)G zf%oJa*4LEb(z#z+OHocSKyEvqnC1>rCCZz#9xJzhft3-orpN6ng>Tc??8U$S^d#uF zn~jsTmd0b<(s)ztaal}?vd5{PUjqT<<|bXQE$Uo#Fy^Llb>4l-vf;Bu+TS|#Fa=Kr>PCdS?7Zd6Mu z>#V8n_F68fJTj^^4F&*xSq z@1!5(9$p}8dNRKHgtx8e0N|BzmG?ToMxZcp` z)})nGCh+_%%Ka$oa&!p8z3nJE{~AvaMkY&J=Lp_B(uVdfYi7~C>PlV|!aU#Y{jlP% zoUr>h=H{l2Mn}8|Pw!LIkYfc6r*;aY zEH~QB(r?Nvr0j7y2wjY(ic9brHfK~*=cliqXQ15eChKQqW4lI`g3-EJdI+4x&_evt#;deb*}#O|c=Lrm`E)GVRivuphj z#DxfW>*;OMh(4j-Y2NwvFTa_a&>hyuuY5WD0tj$GiNnX zwx$FiCrQ#b-tR;UqSQ6JviUxdRa%0rUb>=d}AK=;*S|AzLK3iS0-_Lugy_Xj{u{Yn9jl$0#? zZ^;j%4Dzu6a$`m+_5XbjkO$*a1#_%J|BDWz@z(2Yxu^aYeX9om`Phquq7bnJkMCU~ z0O1tGBfuyoUgVJv^tLkyO2C%6O%~vu%zC9gi|iV-zp{c~3el*^Kr|vyx4xkPKY6VT z&22#fyFvQQLAWCKEby$6C!T(EIU>UKI1^=!=PcNcWYgZ;NS+|V0h31CYD20d5tPkH z;vVeFu=0eV1d^)$RZ?`o8si}KuTW*%Zcai>w7$pokW}{aeVD&+n=m%}`Z{sy=!@`n zH40`#^?{R8rnCAC0l)WClg}r9P5`L6c|u73>F*!HzrPlm7)N?aI6kr`HK15V8O_P5 z*_gNNQRFY!3hHyM4Gs37s^nk*ybt_=YqV?fx4Lhxl*@D$OA5+vO&^j~THjV9p*7GEvKhq)p}GGN#WF6cgR*fAe)H z&P%Ej=Cwu^e+*?mhwA-YzAgm~-i{jbeg0H+wS)=o^4-MC-7`PM>08a68G}c*lC-++ z%S1-SVfosRf-=ZyEzla3p*U|UM?w4XjOp_b8p^i@4PJizEIK-;CfUnrUry<9esuUf_=fLx#V;=dR+-KaKa8^# z-Q9=ygO^$l4-3QEl?C|JM+o>cNUcXiD^fqg=EKi*dWc;@H44N=by6iDIR`$*=eg2m zhqB0%rp?i%-A4xDZLh)kBmaW#PIAJP>(C|3@Al#Svz@MI3QyF$CQx_7wJdUy1>U_r z5wmg?HmcU_vdFJpdJ8pGMHV*dln+3MnY%QZ-!EC@pZ&yotXQ1GU94?FNHQ;X;dVWX zoYxf}nkp}&s_Yngd)ir2RS)pnf#i1e?IvoKPR{dia5f<^9Z4x!$ep(Z8MJ5`42hh; z%92BBc?D%dMjJC?SO4_23$AC8>)HA_sv?E5NYh-DC+p{mi=0VrVN(YabQMZM82T-Y z-qlGznx{iuFOGsVB-z#5+smtA43?)tgG_mW`JC`H?5YQ$({{CI5*}q zqbrx8D__H30izFmF-*RSmtg326(yV`@xW$p*zGE&0vj3L;me3{=PfLsgSCuhME z83#`^NpE{NbArGfqkr%7`SI?N5(aN4v~G@J)|A=&?LXNC`faoq${rUo$koi|yI0=g z>|r8T=yr4e0OXpTkpGpQS%Bp9Jj_|~gfxS^iTc?P0HONc43LMgpEJ}N1RmvU2^8|%>ctLg-gAgTD=rI;~$okgLmru?{|&_#D>?dZjK ze|R+5QWc>LOncVPEqK!J$4}t#q)xCGCUlxco^WCtv=%YgS$;eKc9NPG&HqFiH3NAQ zdLYS3K>>}Dg^^=58%e3kP=DMvijt!J`0&O_VT}zHv3YEg@C!&vo?&=%KkDqVZAtz) zA`)roxkydR3uL-!Cy%wKvHKoo|IlvlV?5t@pRr>#qiC$SgqE6OK~1i{sSE%7qvIe| z95(8p2{zfQTsg{iA5E zvMLTVG<)%b`y_ijs3a|$jRX-)sjOgfN*0KeGnqDCoP}bKln7-^7}WZi)E)eWdi9Mh z-684c$-Li`pBsGa&aFqhXMT#47f6f`$DU0on3ES1*rrgjLGH{|SibI~AfQ}pMA)Is z@!Co%ucgn8r0SNOmdks_i4xEf)ANxvm(&n+)d{lUmYO28nv_at{d?v0b0{kPgO*mO zIti~w4UPWkJs^E3dn6|Y=JqiUq}COw_0N5B6H6FsUxDgvk)%jA4LXXsfCS`vFbYvxKUAxUY|m?wvuvK*9!T6u4h5&GUwPNKfaUAZQDoIP9Sg{YqPiMV^<757Q z>JktAbh#Vcj~ zIDNJE{*+mtfRnAttRDc78|-|Vln{oG?M(*#)*8)b^A>Kw(&Z0}Ov|BuTsr?N)Yp~= zYQT}*Mnpt&eXNA|G-fuBKcrP974yReCPu3r>4(Z@Y~4-=Z8{|6mPI+j|Ynu??mC!y$V1c6$ejb43~kZ zEIxq#-gf1oj2~T)byUboJkJJHgT}KE(}J!KEG1KO5%_>gOf9P`G%Pkf~23x#REuKlTNLW;0PJBiz~_ zPD&RE-7GORnQjPI<2BtbK0XE8_k5W%_UW5@qT=C+isOE!tSh5Z1qD#weZP!<+y}_x z@U1WJKzb?#5%jrldci78H%hFl0QsG(?_hACn+ZY`!0qjBQ`SF=@1@m%cfJL6%lBfh z!Q){CpR~+bShe#7#Ksx22;oOlupm6DKELyT#s3T1G`{1Z`%(r!o;*BF+=y9RP^sju)a(Nvy}kMB+0aTOA-D zYY!9^n`9-82xG$d=rniP`9x;pw8kI;SCUR#V;nE*JxSKi^jS21RtvU4#I!qC-xf<0 z_<^Du4fyG=E(JwC4z;xDhJu0uUnGvf?-4g(j;&{62in<2Onf?KEq|2jUTclw44jc) zafRzME6oExWxIAYp}VVv*8pc^3g@%D>_|JhyZPP(^ekES5auu1YNMcO#%|yf>W^d`%7RImzk)_mS6x<5II>8EE`OOg21#DM=si%p#@NqC zPJM_s54vBgnPlvr-kl7}BG(%2Gr6BPd<@YE8B|G^{c?)2Hc$dU&2@F3skwt1aaFf` z-7h!pDaY~6W%DI>n|7XgKDAy?0m+-t)!B%Ffo`soyJr1IET!Ihx?6DO_$zAMQMpba z263&=^%#V-pFJMl|E^hY2BT;{{~MP6Hp|${Hu0hK%Wb?HE?H`9RQ8SgId8G}|}`;V2opFN%wj>mTr|0v06I2WAxyH6}iklEPZi(+w;?Q+by>iq?{ans{O@00c+a?gZ zbE~iJm7g-+^ON|^`eg}NzdQlqVY9Kz}EHiEupv$&Gs@Z(9xOZ=b^OAQ8fpnS9+uMxcp+VfK9>l@ZUH3~CIR!7i zbMa2aKTwjpQ}f#}bLOJaNY8IP@DOS-;YM{W_H0bR?7S#}dq7V2x^*A1)X=?A`T@$y zjtk5;zPU6|Yj(!ReoQ5RCJtwd)2TT{l4BKf5$%O+aZ%wm{t+Zdx?6GjLF-5Pi( zI`eML5DuU1!Jx~v$WxPJ@%7JbLiTi#u}IESzA3wzf`--Q$I;b7^}Cg`vJt9ph|+7y$Fxz#V8>^y zrOeNguYG-8Oqx(s1;l3lCi?xXeJI;fELgZ1OO`)us{Pdu+L+YUiKSE8I!E#5QExCo z+TcFqWR9MIlf6DCC)XDnwci6Q3HH`RF50^>9hk|__^?0&3FM500(Cux-y!jikXz_NFRH7HB zj=uzNSF>dfJ#?HXx1(_J4zYGFWs_cb6ZLiF4mwR)XQYsijo)N<(XpvChOu17gmmnD3ozdeHC1?JI9t0P^>a-NZY`ZU#HHLrS0s)wdtd_|j72@Xar55^cld z!L+;;$eO#}l96A1;{$kG#oD_X97p57RVB&T-*=37hs;;ExscN}H#RmI+je}0_X>LR zqptP_@7YL!LTiM%oVnJAD>nvQC$6R^hvVtpNnD3KFakZ{Sh{R4<}chV*ewwhk01Z3 zuxF5U1D6p=&O%ah24Z4$6$ss7FpkvmS5PVS$!@QtOz44IQKHYB73Ojcesr}|qWZ=$ zj8fu)+WPv3@zQUuGEv3tHYYaTIWjU9Yu7)895YGW+l&(*yo`R6RJ^?B{1&iUJI)`1`GK!3@p-a&ANPzN+ogL) z#i6Kg$vwIsVSPs;=4j*3Fz=Y=5+bfp_IUn6F?*bA zyx%&5&gQ!Up@Oo z#Dc}UL|nt$jB_VmVw}L-wD@prY!cF^%~pu(4jbK%F+CZ^cIz}ts~h*X*KgG0XK!5M zWVk=jMk`#6e-vN8SW)qgBRT94b=3IYQHX9#UevnTvmZm4|6c**h3+=@@0G*D!|=$i zLOi;=5G1>(4Jqz!6k^BvURIxW=f;dR_D6GjG*(+Q^I$%)OKzZpp; zc1u@l6>7_mV`QkGYf5!>HK4a|7)Q>u<7VZ6>+Hh`e5na72&;j}@VN!w0X*L!a?b?r z8#rZ7UL^KxOcWe%$|zm6>M`UI;AyOF;cdaGldm$H)6!($P!^OL<6$WvAU3sLlH?rg zvGO2fVp0Y+Z}}7`n_O$;c;6^Hi5uj28)QhRuJT*&dqG(mZnp4n5B6vUUM*~JiheYy-!yqk>H8%palKbW47Gmv&k0XZ0 zU|0kd%LHW#QQ)D=6nJ2V@Rf6}JA~BFPwg$lp3QTGDT3ysSxX=0dg+erc9I{Tvj6WE z?N{r688?nLK@>X)QS)f<`_b86$F=c>M?@Qt&!Nr(wKP69Z~Y@-oRF>Dx_KJK#fL2$ z)FWqmLZY@X$*w1PiOR5H>^xUlDMq`-xG*ci%$xPMexLu_9@)e))|>@k<)RpDT4CPo z#W0{KZuY=x5YkPxIxdOPJdGXL6huTs*<_Q`Mop4y;<7hHnF#Iebqw6ET=f_t4FPAG zLraQ};8yt=!T34W|5RLWam_2tb7HC05^%D{4NCuE!DCrMb2DuC%pTA%umM+^P z_+2y)mk~L!^tiLV*K!42001BWNklNaFI4Yg(H@9(zuzeC^46~9Ze_aP#}&fPB{A$=x1vB~Ur(NZ$i06AsofAb5Q z9RuVJWKx2jJQZTV6*N|8ne&EAOadUMs|*hhprQ5#1_ub7)A2FOX#;zDqW7FA&* z{vE;iLqT`^I46WE_^6OFBsND`*R$3N;2hOSB(knC<1_HshBbng7XD9}Vg&uWjLd3R zYRREr&(9&b21!}YS@Aex5{$LfRdBBCs1Qf-jr#HC;W8XKeJ5Ced_pk@r#2F*Z$IAs zmoJ)u&wOO1s@kR;&4h!w8<3f2A{-2Kfvk97S2lF=3sexW=1DyIqfKP+zU0z0b;c0qCM2JUv^I8N9D6$A$C1#_-U< zc%P5=KG``7R7EYrUMC0~R=Y`HOdId&h>76g4AA^V+Xb=>f#L*?cePXq?@`~>jqks7 z79CwWIbqxvb#MT=%$t_SVO3$Quxyet;uca!)M8sS-^8Y(wdpPzDlSV%*fx2_;}Z0Z z>!{5GPtYeH86HAY(}$Qja~T#a+A8?HL{2<;{ADW%yLK29e;9B%k;OJ)C}$zou6x>= zFjRIzjUhVO>&k&!C2r%q^BkG2vY=QJ%oLye8RX=WI;egn0{AN`u3}_lIIw1NBFhIi zao_{@6IoJ|!tnU^L?L^eo>&3z#eN#P;W}oP$zV2-`VYbBz+tgpN#3#XLE@P zk-%y5J?w}Kro+dN>+190$f%$D_`q?>(x1TO=3xH#9XceWWWBNaVKPZFq3T~QgS#OK z1dpDVM$ts7 z&{fxjb*8#4tyZB4$R0*!dE`K1v94U z*|D?{NuD+bIrBCNHI|7%MF2Sg#)> zsBpUp>~F>CQ(_i5F|99_^x0kpT(aE2$@bl~p}1GVfrOF(kxF1mV0Gf5>X7V8)gT*3f(7zK60BGK7a%^*3; zX{wDJ!M6^T;{DUNgAL}4J4}~RVC0#VTmmAnL8idS>~)w%GHK?13WB{m?#nTpE1`%aZJhdx9$fBS%jWR(Cm+Ta?DEhq&kP}dDX{v2dy`ZS*SWKHf2hmY6mU?`) zo5P^C+Aj$cLN_e?-dezY_v>e+ca5!6i*SK;M4- zvRJHJNi5Uw}s zfBLtk#yc1qq&3e#pmb=@W6AS6^}S?kd|+HAq_e+8ewRNi5{*@qNi71!^bGHXsGkXt zdY%C(BVX6UeLO>wK`teDO>#D-_iLogc_~0HpEaBYiRjuSBiPnjjh>#407&kN-?jW9 z%wM2p0jhmqmqGpjAlHo~ds-sC_Sp>}g)Y5$Fk{vl{;`bhD<)ZT^&~0i5X|}&%&~Sh zF1ZHPP@lW%NkkiJr7{Vm;u6uPtT&hS)9AZ9a0`th7J3JB9xAMO~V2A z0wAX;`O%#V@aWF@f(gu8=1P5aRkMM`Ju3a#IAf3>+}TmbK)Dnow@U^H2>|B7 zf(4tgbopM1;@7WHU#lyAu`-_O!?+D75}EQL37Jw+&l16VS~IT~AI8n{(~d}fl!X}+ z6OU;#<{~;e7PKcae-kHm=p0bAUX2MA95)aN6$3qOxP9$CK^c$6<@=}a;H|@Dt^-{P zpqPZTWKqUmW&9gWMIH%{U1-OEhOkB*7wIg>~p-~Z_u5b49sb}zEW75lW#1Y~y!iD}5pEa3f! z(T5O9|7d=Kqj5r{8p<9wk!nVUP-RLMqTyI_vk|{|yU2A?jho+Ws;;G$oc)^%w=4fT z7)4z-o{zA+_<6Jb4nF_4f=!ZfHzNVr3pg$0T5S)&l-L-u_3PdS{?Mh?!@@jRvpgTqJ}CxANZu@G-e#msnxtHY0jSjc1^Wa=+T_&@x`1MwXrroj1@uJI~l$3!@TRw#(V-~re zvdD=6dQu2@c6fbw=eQU2+s&qAknC3CY;o%iRTS%GB>r|T}U$HVFp*>lz-ES&1Vo0bqqj<5YwQjnimqsB&c zdG8dxhv5OUJe4>e=)3VE=22|I(Sk-mk8c>nu5D?m0I{%1RX}dB^6_WB4}Cv{!TV7K z2vr+xPD$R1WY&!~Ln;ez9qqoaWY#BBPjNB~QqH>F5XUm>TI2rAUWm0DoDea zDNyu2NNU{zni%FSI-hEjC#OscNUl@BCh*<3G>P(Gb~aGWGC?DC95Lf~3R@ z_y@byY$uY(YsSgrFQKnb&$y&}T(~~K($vAuNp8*q53V(_9w1v(mcSc{(Ir_Y@ECD-;Q@SGG76nj+EUyK=9Jog(2NtVA^XJ++EqK%JdS7Xkh9uG2e z79+c0CH(yz!00gBvl75PVi}jDgz%dq-L5MlkW00Bc^p<0#t8jPwYzuh`aI$d>~N}) zO4;L-Med{ys^T+CddVpOUhBvnA^$94k?PV7WrM#321D%g(hbA>)}BL$UktupXs)bY@d(E7?3hNIgPd4 zrO3=%YJHta5))}{q;<*IXq*r@P9V9(kPP;z`&`Nz>d5EfeZ?qeS#@=i4KxL8Ksq1E z_AHW*8W)$$V3H`640LrhGhv4aC0bL~*8T?>(dgo5(M=^Pp65K*{#gzPD~S*7=rgY#bXGt|Q4OeSK}~?8iU+_zc=RgUVi|M|eAGX!P@^s;fK3TN5Vo_j>`5Q~mMhpIHtfOB=^_ zOhP&X3 zIpgF9G-v42+H~&u>jNPv6GMRQGrN+I5U2Mtt@}i#HLKwC5i$7qOFVZvX*|+A9?sfL zOV2}mLMp;lklZ*Qn&)ogm!2+DgoIQk7AP?nJ%ic!u4aE+_?zh| z&HlRaJB;^2wri}%gXHv?$e+Iv9@<-u4l*-kXqYmGm9j#{an|njaomAa5!`Ib9zLGS zO&S~Rc{gu;7L={8HQK{#3X}p_(&mBq-EGzrc?y{Gxq&Y&yRYef6wl>ylZ&?_jC@43 zQ5^T|sQ|7(QNLfHySojEiRnno$me?S*UOvm@^7x9Z@}I7Txz0{Jx-(#ttqi5YnHxl z17hq+aWbtIWw-CK?_)p0!y{Q{JvB8ORGU0t(|(gs?HFsham>)1kvo42QdrGaZ=|AG zReoG3$S1-MRMpKNI#))ihAitCnAW3RH(iFEg_9OYy(`T;4^qDI_L?Nw_ z8dJ@!Q}DJ`2liQ`K0huO*Wj0LU3NXD@4~m8vP<~kFApE~f8<Hk<-0x zC?D?+UTU2{sZTty9IKb+2vX}Y@hOTs&gdHVPWA`6c%o=IESZBzYecguSM?j1D8q% zaH(w2_3YT`8439ECs$%xMm)c{0*op(vUBE$b|5MYReQheHpN3jZbf+xT}*Ovyp+d{Hff0w~pGN6|?#Y-TUT@J)2* zT5)D9eJ%BHlxLdynmq=cWdn=2gmO>w~v?%19h@8>uZ-pW9 zFw)bqIq1Q%>*~BQUjI1)$j3t))j$j^ihO#=(4JquOxq zU+8~OhkU#bbf5lxc1{F#ua84?q!{>IT(|{`3rS%@fAHSkE*w4nDg&Mb)}^QAATlD7 zRS!5QrygpY=ghCI{mn8>s#CMojwOUSzNk(-vk%CD1DG@=H1_7PBc0O+b$V*F4TAnS4+l_swG@(;j=?b%- zK|!y@h1;-r@m2w-B7pqpv6s=?+ZhOeQ*i3!uIwzp=-I`i2itUw?}OfZ98f zUGG0}2m6n^tK38L!M<&C@aQ(Nv<-PP;gL}Y4_5#_VH~p$BtVSnx+XEzz}`^#8@&&K z?wNVZ1b>ME^1GMOK-slsriDvB7rRrwQBbLX=4SG_`r#Xulw@+~bIHCRy~oX4=TTgI zRM=xtk6kPoz{QfmAjoI_QcwTzzKQNJ-I!xS0g|%KZMWK76oFbR9v46@dI$2utIEWh z!KyLIU(tqOBt4ktL(`$h6) z%A41N0yLC>blBfsynXk-hbm($6yJWlP9^F6Kl|)Dq^IaaUvgTe=PgI}+zpoc<75}w zK5aZul@csy%r`YxVsNlm_Z5OECl>@cNM=DaXY7>t2(mdNRQoh~t`!TSuyIAK1h{1nx4oTEM?_eFzC#C{PiY)pWhI3Si;jaDmbhte879)X+QkrPA;cOoUT02mp9 zueTW(89-N;)m}mwn@dXy!;?D_1hNMw2`$=ei5n8xgKXKn?+xa=j(My@f841rPWMVm zN>^jK8G&1KEceD~j^~n3L$L-TqQu5c!|VHRqqtn6ayN;WB!b79#nD((7z1OaErsks zbH;pwb@@?Sf6Eeg8oS>le|4|~Q|Y+OjC^IRNb8X^v)g)cbt|O(#S<2$C?*xG6xJA4 z1if(_oh_9Czm(VPn@xD-?UFxeK+)8x6IFnmgjEJk4O>6A;6MBP_;2?bAg59fdp9Lw zj)AO0>tI&a0<2u~1mdWamfC0xmzN#Kjnd;n=_mF`C5c~}tx|j@H8lq*X&Ny^o!t3E z1&d3{n2Edv+eAX4f0VH_!tfM4O_}=}TYK<-U%db-pZW*fYCV4cUyR(T{PktPU1re) zJJrGTH^D0haoPi^b&^_7#Fsz44g>;fjx8}&h=DR==1P{})Ed?3t+{yu-qtE1h{|Kr zaCN33omhD4KyteQuVUNz{ zyQnNX#**50jb&p;hPftnQ{!C*OO1^;FO!@lodV=`_Cmq%GiTpmC4#gxs(lisjKA_G zy!v)&P(d9h<~BVe9$)^%3QSLrH_<@tWTmwYp6N|xFRlg74D%3WB+R9toS{}AeHRL} z*WW%bDj*QR81Sead>G5#Q~d|S{mD@wK%O>i9UTqUEJNB^N}AtDN$2v4VOX|oCl<`7 zAd>!Ulp)L;LT`&Oe_p#eh_l55t`kX|d}HbR`29YQ2NRWOnv~4C0xHHM+CV@jJE#6! zXzEWI4@WsD4|)Ec7uzAh>b^ z+5sxgvJx!XiHJy&Ss&$K#)!8T#n%p_{N{NfKulS;ZyxP|*JV)AX) zJL8dLU@x;|cHw3$VSwB;H=Ozsmqhrw~Pz3|+3>=h7Dt~J^l z5GnCoQC|?ipR<=sONqfZ7%UNGn6os1Jn$;Czwn{q?nTt!73GV~ccSk>>uqOeGyj;u z*iZrFvQ?Z&ZMz99G1*Ib`5D~4a~U&c%mD=esWCu){0@WUZf5E;Sh1Y`-$xzc#CEnkZMg}BJh~YKn(U%CcIKF z+qga)IC*y>#FrtDAAfcJPQ`bBp8)cu3p4TjlS}pbF8KQP$Vv+!PPR;_XTl<8d^hE$y@%3XCU!0V_etWzZ zJ$?2w@k9nVndrvlF<7xctdB}6eLJ>&%2Fa`a{h~l_dIE7IZQUT#sDSbQnF81zLRWR zTYG>M;R*=2oi*TxyE$RNkJ>sFxE&)dH<2+l z<~$;qGqgk*^S!KORV9vVwihLi`#QYcZGlTroT0M8heKz)7#MW7pDBC%(XC>PnQlz; z+4{AQ3pL)!x4Llg9n{v{bk>!^xHg>P$mi3>N`XFa8P4N4i)lXL+i7D;JvJsT1#^}@ zgqZkL!`kdaN7EhDmY>E5t0O35uy0@lul}|aMJ^`@IqR(Z_^3&!>Q3^lCKdmi2! z512nQ8avjBioPVRzG}_m$Y$c1K9APd-^7(mzZFVg@(O2T_eKwu;)$8l=OB(s_?Th< zB(0vea2uBkFy4>Kz7lpv7@pQh1@`rKOK|CW9eg&iX1Dt1KEBQn;QyaJw=4h0z1(Y= z`^N#oFg0E3RyOa{Jgxh8p=`~Ew=clH?TUo7*2wY6o4bnxHj>~2!Vg& zeMXyLo#Zuy`|%>Cf{iVjWVH@9(!hT0onl&-$3LM=PItD6&}F~07|Vg{XPS|ow!?c0R6ok zies!@U&6UIZu)g15CvkD;Lg}hu?-5=c)jfmy!LazN3|K_I~lt{60pt5nUD2rpOge& zK0x`+a{_o2s^H5+zy4%0$myON3JMB*kvIy!hoT}uwWRn6Joo>z_ny&pB-xqZm+;=v zfFMW^009yNK!N}WdS4`~idEIszFRA`W?M5myQ>~)&uY&8n3g*lwO0Q$=V*^+HIlj| z&F)I=%QRU<7FqN~0}vi02oN9)y@B`Uz1(vn(nO>I@&Wl!rWvQvVBzJ zn>k2Hn8CQv_D=0dk%u>G-p9j-?IAsb4zD!7X#ON7q-ZQ<7pJZ5&UUAtF}9qr3f+gH zeHI&+jKXbib5M~A$x=@Yq3zZMG}fM!)|*fr`5`sJ%ZtO_0_2SQ%3&)&4rH&UwSgQN zW@Hv~%(h&_o%U*DZJ+}et@ETPqBHVMz`;D+>1k42iI4iaWg+q~fZT@gDK>D<06wV2 z^n0ipK<+S>Z#A4oOXF#YU=*&g%mDHdO?5(8-kDR5R6J5mNk^)_5m7T?rZezuAh_mF zb%-Jl13*sQ+!ZF(2?mh=_BIV5H%YdcIa`rkutOR%G!8jHUgMsxQ)u*wiBXJ>4Pkib z#iwR(xdG$^uo6g4fCYi)WN*=&`S9{RoVs)`ECBiI1d!`zt_9j#Y}+w;S@w7}B1uO? zXaISoWE(NC>*jkJ*rnN9Y_FpKk+avV)MD)|T7GElBlRiDNlvMbq!I>zJXGQtw}&GB zyt?DwlIL_3+aeqQd3;o4J8C(pU|Qs3LYGmkBA9Pc=xnTUw%Hc@1y=%56P9Pem2iRlRepi>l_B4vosi7yX= z>g?+`JMXvnwwG9L6pp^1tFBzlBA*d<*x64jjKo|{`NzdL0`fz3qx;r*P-L*9$t<1Q z_!2_)2Sw`+3_iiY;8O%=DOe~30D4gXIVYZRB_H$smYT$z6tCc|gNayX%Zt4OWt$IK za-%Qoyd(Apk?UzMOG#dV_&6fI%e^&M@Qm@9Xiqwwd5l{sh)+yMLHV1Ap=W7@h61H6 zdDwAHl2_+o*KIVnnFMk_<`cc*)}k2f+-wDIlW}nWw=K$K6mfeO)ioy#pB$YR)6=t% zo|dWE;oSb=#RRGOFq$U-$!SevL@_Ifs_=0s`Yc5MgP0Bj5m=R9q4~YEz#KJ*vA$kh z_~>sjG-#@OhSNrz8@QE;CGXXzAFgw7 zP`J)JZX^VfbKgPH`?Ykp=HDs(5`p87AKkH=E)G6ps~0&gE(s~AD;c&U;tml?6f&6- z0^t#nT96DdJvqj}aRSNtp^8#{0(C8q@Y9pczs_TsR-cnlr+&Al^U?iJYwS2ZcRu7` zDeL-cFSVYY8jo+iwFRXcDSF5VK4bZnb2c52a%mCx_n`d~3_R;#EJ4YiBFLE-f43T4 zc2bwo*Qv{Mv99OeQREQ{j_u9Ev3+@3Is$%R zp(yf#t*=|yhbogZd3g7_ZH~CLIUU>yASW3p+Ca&WTgoW%nCLhzmn0dy!0^y>T)6bF z47iPtPvTD7gfyJH{s?ETbb)f1_*t@6B;tSljS8eC(;DCakc-hF2D@6}Qe>L3&6goA z6fAO|`5BKBZ@AseBW!a^vf14c?%;L6Kh#vu=lZ}X! z@#f(I>?}*iCy5v&3=w?dVIU1+br{GQ(}pvyYuW$XFG`4bWo zQ*rpfZ`z_&Z?#@Q%k593wTn_|q^2xGQWAl4DYh!w$D6pqn&XoeWR2s<$Cj~HJFSx@ zpv%{BVMW!q02QD-afKD+EH_if(4c+P+k}?tUt)0Ju@M;-&aq7GOH%eEsiqflw3Ioh zcsNB~`_}JE2#`BD^65PY{Cg)1QuZ0CarnL8t~3C0echwTrNWB0%*Z9p>BRu@&YF3Z zt$5oj93&m;!{``+q&y07DG7;l0pujhPer%4qGHnUT8BQ-GjK^@V+$mM6O3G zEFKy#W=uG{y+!kr^1rg2q#__7Owz?hkcT=)zQ_PMpVvfu;bbk{hE89ZhjqHrjoyV8 zJKX4AvU?;OS{nndBp~~Ws|{IA!dT#>+B{SGSwSCb)_cigDmFd^8!AZU#N0c%DpeyM zc2wH|x)ZlTm&9EHXS4>8lhZk5(&<9>HzH2_=9fyad4n8jOu%>{13ZQNlc!_| z3d&yEgAMyZ>PxeqXs#1LPO4pwsjVDez<*PH%*}7&U7g7 zy{Bd;#jL{~Z5L8DyLjox#`(b00~{_Qpnw842q=$_<-oOhM%P=z$tA3vb+pMY*@n8E zsLLhOr4b4;*HPNLo%Vo*7Fk}M>_bX#@Grl*&7wm6EN*rp8>W^__Oc__!o2Td|H2sC65f zf>|kgJVx7N**>dMYGhMdT~Dj=^u-wd?q6$`96t-acfbYf196T9j(V^_%lIh&GF zCo_=Bn*Pv5Mv0vH^t_DBLWk#lgh@f(F%Ssi^ra4*zI@krd89dqzp4_Y?02d=yWd;v zq#|HvDkk!;72sO{ucUa#O67SBj#6w^bZNc2>T0H;RC~e)AN|ef-%g zLQV~>a%A+BY}&GSy+&>86lzLlQD2luStMe%;#+)M*eSEj!Ll6_uOVI(ZnZOK2M+hh%#n{A%t1PXTdxm-qf#W;2 zy(UE(&P-3@dd&xT_^4BJaw=@Y9~qCpPftHW|B$~aJK|%bu%m1>$YJ7ZQGm6XNhr!o zmm(A*qhpa@av0>G6U*SUE_B_p%jCP!0bFf*2M}{^N`cB8_G6=i7#itk4jd;)$;!m1 zaadBk3nfJ~M+COw#4s*gBKbDcsHf$(v3&~HoBf|73+Xc-NJkM>>+}9VQScX}#2jiJ zHg8;k|Ka#X#K%Rlwx{UAiODf+uY48Rs|%#t4Gq1(h08zFqRm5n5?!w_;3Fw94JpYP z66@ItHOjlG{4A$yool0DRqj@-DU_W?B(>C5`z!Q6@4@KUAcltfKx!6U4`*<`W(rd? z{t{mn(o!$K6Iu(~1rE#8gI#k-{_oU!pCe0<@@pq%gi7rU(_HLmnP=N#mA5hw+v#k;V%c#rfR zc4@QPtZZWemO0q5o0mO+4(B z>*m(p25n9STgM4385#N^bt3^F?hBCYo9<*&O)`>0bttCuJZxIRgoCNsg(3xh>*w+SLJa(Qed9TEax8vwU9Z zA*8R6&+_A={b;W{ArY_w0Tm}NcHw;WeP2~s=nZmLN8)f*JmLh89=-pT(!JQUVY_5k zjg0i;($#k*xoo|C4PrsE36d|Q?d^8BMm*4NrUNYEy=mi47Ai5vT;#|!nrl$QpPZ9~?P*p7QvZFd4{UTsI?^4=jHs-@v{-Utz=&u{?Oxfg9ByNI*Ze?fILNxcAUsq6e)PhF@6_ zr6MJ=o!edmC;OO%)ve|O?|x;+jn#YfxcF=$ku1+xZ75*6(`^KEG$I14^D5bo=vOA+ zZAZf?$#+ZZ#hGh8_~>fS(&7yZned;+cYMS}Lalx{>{PFHpgB^wE(QmyC{3d|>SChf zv3k_f9H~sT7;(D1WBuZ*oxYgN58((>Z&@RD$4H%JGy@IS;;%@5_9j)Lqp zLB#x}0(FmLvOeFR=+g~Vg}k1W_%JjJ-tu^oT4#Bd_vRxa(!3Q#Y~*iwl}Q)rk6=0f z7{jX0mZz5=Se%R@CzwY;&~hy?xeB(tu04+`NfJT=ql+0h+%fpHZw!C`lR6L^X32`8 zc4JyS>=#pN=el*90@2DZ6)3clF1Tc*MB(d4Gm#u0WKKWb(X(cC0d{RWDuJE^j9{+6aMa%eCPkYb zKah)qRoRFToMtp;H*D4C2(KOGmwrf2k$dtSahe;vy%cHQ%+AhWWMmNJU?;GADGEiA z@2Wb6HLHnGVV*qiKkCHwn`b1$mxu^AZcU@Ssoki}CI9E0C;cAP~UF z$NlFh>Is3RTbovD2V(J zz}isjz`&Sqm4IY@segIf_akR*Aqw-iNX|Km@;`UwU5RiI>htJ&7O9(@&T{l|pj-eF zEV5&QFpKdhr!_+~ruB7({zgvQqHSN2qi}*j+;6{z$KCbpeTPO~uyy9?^I^PqX#$it z?q&IWwE&HY%1zOzEQ*oyW5*}q@V>8r)(5fB{(rsZBU@C3zE<&Q@(d&;q#!x zbCQsxRa7w^F4P2|isS7!q2&s_XD1MTIFL*GxVYrhX;&M|z#zIVAj ziJXkPwjGmfMzSZHTW_HGww$hm)`|BoP5KUy6G84bj&DF|!7^zqQy%)_Dtm+`f#VMu z0Hqh_QwSfk@@Hgg5kW`?Nqy*nd2d0fHjW+!4GOWy8mo3Dc(GEVZ`==+&@uO{IOqsKi4z) zxF|+iib$M@z}gKvIU!D%^L)Rj{Nv`HYK#j@_c2LbLwZ0!QvpT@9T^?KFiW+dov~T> zI*b9=vz`5|?5VXBY$~ikS?M0;*w)MR%oMKO{7Cb|nD^;=G>Z#2{U@oCy!!FI@u2+J zW>K&vD_`61%{e(et=Fx?!%*>hiGqaqL@Y~R#fSpdb)Kt?@Ow#8$d&_;q3NJqtoIiA zDvK)Lu&E6^>1n|I_8XF~a&UMG|Ly0u@Z<%NBm64_m~1bJL0Mt6#RgBt;eB70Y;bzV zJMDF7y!DAanoz3}145EAkdi_mc>>?BEh>0o?dMt_jn9lFEEJb9Z*_{$&MP^Lj7(9H zOl5wOdoAZMGc$?F$#E96GC0(a>&=sB41&0q)y)f5m)2Hm`dJ)>ZOo&g?)|RAs&wMm$nBTTs#2UzN8^FVRbu6t5 zDdg(qdEX>{`0i~y>+>ibA6nHv_gDK6f|WK$43zz z9gCe+N3nLbXf&!|pl8jQut*NMP42}Qo^D1XH-3L*iz2UUn?~K88Q-JGOAD9b+piZQ zL5Of>k!>uByh2t!7#l!){Rfy}$_HBR0_rfafvk;Ue8wHQ-8AHVSf%IIG9chl}W~LC_gUAEHMXGcOxF$y@8-g@|zAF z#kxpe!CV}-lAM{w%Vv@q^t}j8A=JUKr~QeXINW(VjEPB^C}EvvL~z(y^(xk6Q`EER z3?d-xT8*q25l(_b=>4~Nd8WlgyikBeneLV_SoO?&8*ZgL!5=Q5KD zFdLY`i@tuGxcmaQ?}a1cHT043@*APGKyFqf4p|&Ww0CaZyaz>va_--;v0?a-#;wjlym#R-CZ=R5v(Q@9esw4SIgu4Pp{CDvBRwUE_`zaq zB;!7daL&;^5))H!biY^dHaq}1EqllIti!QgYb8f>Y~Az+Em&T^t@ke@gSSY>4d>^>zUn8|Bf*2Hsc-+wbt?#(|L)M9)?B+B*4N6Am3cP zizzKg`Gje%U;2fOJV%kBCqJ3Q*o5cV9rhg49{Zj^(mz&J{D~hRDRsetZL9IdzIBL< zGM(PUsynYE6VqvgORb>wXAJuNq@&j&(ZG3wk(stC5>P3}rS@MsA5e*28qeyc7TJ{fD;*7p6XnTWbSF03IFpB=cXPg}4 z#71SN&V0lP^9`*4IjMV{S< z8Pcygk#A(Lok>EQq%uW%sqwY}{k%AH3g>w+) zsPAn47z58qZ9unIftHRw{OgAunDAL%oskgs#92rPVE(tA7SbX4RVeU41U!v#AWRq& zBu__NEU6cYXF|Pg^gb2+5!y|3yNB#TPxiMk-ix_v@2u;asTdhcAjLp%@u`# zMBiVX!?HKyEiFmU-BMWhH@n)`Ahue_)!MaWRv22x99d{7z^&etltl!vM z0s-Lc^#|<7@060Ezu{-|8;eboxX8Ei)lT(V7m66)Um1@LIr1DyPF{|^`@YRmis*$) zt6xTI>t#C`%2n0E>Et2Tj`ES`Z`^~T3QGVC3u3*ACtbDD^PavK$3Oh6!LOiFmcu(3 zocVrqFv>Jyyf)ycc->eqIMn6Cay$+|cHgzQSZFlHt|=v=hB; zR}h%d7}rc9aT@>ft6OMld$u%vs;FHNGdO&`yPHBweJQ(gbBku9@XlhR$kUQz@U$-Gn_*Gy^;w7_Ct&Zn@;Z&}H)Jw_|=vtJ9T52Utcv^(`4dbmCzD)()TISg__9*OT`$f3U&` zNECtC*Y^Y@!LLV?JDE>TkxeY>`LgV|{Y()Y{2?7JSZ1A?`{1_KIKF=!NJ&L6l*?yh z#aoDvRG^Oc13^0I2OSTpiyN~F(o>fsEp0iXqA2n}lS7^lAh(Shiz81PZ{#pqyOA8w z^7tMf>BF7cUzz*2Lb-W^ICJd*KDze6cj>{!wb9FOduf4Cz*`28J2*j|d}xsokyx=T zi>XtP+JO=&I4Efxiffi`;p=-D``kJ<9ritaJd4-rYbLv=!ax)rp=VY5IL934Y|v_J zElJn@%};J)VAy+v-eTI=iCkt7YVOwA38D_HanBIiToqj`Kps+bb9lg829WR0!Li*0 zkeh2VNvm&iiy$X}oQ9=K3MYdtX&sANTQWOq=mm=;pPi+(-k08R?5Qt0K%S8ri{Jfr zi5x*51hO@N+#V77t_FlUIPpc>iCWXq&Z4jYbM6~_^-`Vq%k+os}S{ zgHhY}KkY(S%g2}vOq;f|wZ=3y^rG)WPSH5}b>e;^-iv*%|A-%`Ja3m+#Pvhi+nAkI zNDymJa-LKM##!p-2FA^|Sa|=O&O6JHk)DajC`!YY`up$k!I@dS=}tMPjwSE{YqO#ja*^X&(Dq ziHu}{OOz(XDoIW01gWh#hfRSRP+9waaJkoaP%$Gp0>}5pfyfAYnLB{y^AkNz@8hK4 zq?0M`3(@0rEmNCVvgmR5x^YF)@c5FwuPb2w6FyIpxZUQmCr}!O{L;fLjjUcMdi+sW zEgs&hnT-1O0wkoLhh^+bI8KtfTAuw}I&;Zl{PH1-X9|RPm>N5IMcp zJ%3F!UfGd=I6+#S6gDa=k7I34sSsqQ;_;)qxLJDw6BZ>oHqM+44o`ngNK8ZJ-tVvg zJw^!T77Ytr?YVt{NvrF4+{DBzetx z>s7UW^;#&gf1?0zhM-&N_+A76e(kj)low|jxq8XgqTB|#oA!eav&M$Pq|fW|n6Xsk ziSAWq-R&?!;5bS7L`9h!7%_&sZ=J{B^KMC!qUG*$mQ#Ublfqocd-Gn*bntillxFZN zik#lPv>*fDdMzIbv60NlM^UGv<0GirdJwBu3Hd1i26~cVL&lfi#chHw#^p%SmLxk= zT2v)TmFW^n6#1baddaq-2=e;2Fh!BSR)F}}NW+Cn00Oa>SLMq2Q3+gSQRHI-#rq@_=G~;Rn!Yk0>#YW}8bI&e8%&0pOZA!eHB|e=0nMB!PLT%0s-D~3 z&c0=t9O5%*J*7UUzNd(C`nS{Ro@A5{@B6BaMcvTy2`HzWIA$oKi6WZ@Miw(GedsBl z9KxE+`YAeNhFYst%j5Cyzq$#j$z}?3nhRXwaSN2-EP`Wwz|0uNM*5j-GD))fRcQT) zii$x-+6u(SCnAbTuA5^?Ul;UoVjF)ZZ;e+;_-}Hk5U`lDks{s%Wr)d9wBCFl1eA-V zrDFg;KGlhdDSw@Gezn!h`?$9N0pxG(Bl&N0>`?zR@V3Mv@yTQ~&*0(XPTOAM29n3b z#A3y=)u2cMQ7%**Z({AN<94pTn=inE-iXo#Y^t=drNN!%4=4w9kRr(WQwSLUuRr!5 zAU7gdvdpGX z??JNPzq;(d#5xDa*W&0dGh+t*EjB&{#oH_r>(u`pB(Yv&q-=6sC$+WFZO2ms0g&|V z^B0fUZaM_%Rk=_27lzQ%7 zV?Gl79%Nhn_|!eLbXa76=j*hk8ymj%{amk=niPY7|Ft5J%(}2xaGP}lr7RK1aI=%R z*Gy!%dk&&r@&Mq+Z0CcQYFSih-6xQIVCV%qXG?c-jZC)>IBWDc{dYD=m{(GoJ5$1( z#zMobt7yGTDcH>WQ0l7>u1tdRko#G<%@WJYtF8yk<6%d-(16DMZ@b@3&M zL*I!rDYdKz{{#hrkkTGcx5nI?;*q%`o2Q5p)^2_8jf{z7zP=1gz~8|0 z9(3K}prSUonI!ec)sJ3Ak9*jRRG=kdV*2$P4rk?uQq%LrI}n(~vh!fu_lI!BHu;1Fn zICpYLP~P4HyIw=Ab0stOFTlWN;O1 zwy+Y_03LMKvLDJz?oplA%vIGy8`qXYd$fyxR`3uI=gEBi6rC8z0>1 z*2eWx8;?z@ICX9M(+62Sb}-q?`ztc>`tEE{pzM$qBQk@-WtBS;#PtyKuGkJahi)g-9edw`bAP86FV8>pQ_G zr{9k3>@~som=6`8)bq2o3rS}Eo5$9nG+$pg`SQu;^cIb%r3RqRPGPFA8=u_xkmU}v z&b?4p8kQT;QX(QF5fc-G6&b5Qkq0^mY0o=n=6e>&X!>>hw&wjQI&0Imw?K01dQpi0 z(sl!nx*N^+P!tS|Oyh5V-irRAr6vN0+G{Vbx3)k`G_b!s8o8_F2pe+J9oh4y4ZLl- za}!N>oE)LfBboNO$jE4-XaA&i((O!`{Y5 zKWP6D$Dn=PG_PiP$wvnnA#rxre;bS1_}G4@Hm+sk#oor#zPE9>R!{1?SGH&281_fw{--Y&fPiwNknDaz71k7Nv#k}kt0|p|n15WibX`3T zmdBebzqlWeA7Nm)kEK{3pUFbNVH==ptQFfV=@>?F_LGwm;herpXE8dHS;a0EJD1aw z6}+}928nUz8`IkCw2qO~Jg=KfoOLG~*lXuTCK1gQA_b?VE<<`sI_TeG;W#+4Rzy3N zr_o?!b@6bAS$uw&gGJnpirmv(XspRz8eK*va0 z=WAW=EX}#3#1t$`TZ!oC7|jc=k);$B87uQ`ep)t;o6mv#eWszNqP1%nzdYZI!4ZGY zkbd^pXXaj?qTRYPH#avJjq^|y+3^{M#vzr-S9WA$=jLP#4L`%Irf8g;ybSyHd<7|j zQVappz4z~+wq7Q;EVf#-R;2NJvbF5|appKypRFgL}1jbdO^p`V4y3H;#XN z_clmk-G{=Y)uB%PZcXQ-`##+7M$F6;lam|WI$OP0@i*IFFe zmCXQE{oqK^%^P8t1rS^$3ZZY!Sk`O6BGjCNHGDhmE{bw~G~havx$vVDE-+feXB zKrt!k3mD}k>(lU!SJrYFY0VNOnf!v1eaJ{(iQw1^fJLAN*kSPe_0t$0r99cv+d4kk zapJOP*gtVi=jC9XdcBsUluC;#uz6#-lqcJK50j`tcy#^USv0l>d_Qm!0pT03OuYVDDB4tzMLyocjM+-&0J_Qlyhk zzEDt7xCQ0K+vPm+GgJ7aRy!l|T3~ROr7Uumx4XXb!RH-Ef z$ZXHT(H*O#er3^3+ujhOf>fxpGq~M+5e>Dcm?WzRbuAVkXSLn3|Amwu`+4iO!-K45`)YF8X_G&IErWIoU|Kv?u$0ov%V)1v5c+JmMz|RrUMMht1kDcIUlWUTnnc* zKKaS#3n16`QgKYg#V4^SKUqo}Ab`B3`h864pqD2b%hGu+!%wtdL$!@SEH>?N@+I754r|I}=9W8Gv$QRCxYXy??+Rlpr1i?f_cAi`Z0|v&=$`iLc-Ym* z-$UC6`-i9T-+oB|xp&7qmodc;YC5|AEDZjKu=c%MTQkCP`AWRDdo`kjv@OhEvH1|F zP0gaB?`bzWn$Kf)Rww$(=jOR=2et}3o!Ru|Sq11^H8wuVBFRZXB-CP^<76Z4sXU|+ zmQ4fw{^M?T9uuEIN4T0+{|U?V)YA2lsM-{5$tO&8JLsuytchHlG>(7vn1-2w^#0b4&*s(Lf5s=QW07!cGG-ZE&2~t^gill zK)?7Nl#1bU!z{WVyGb;Mx^nUB$P_h@91OnpIlIoZHw1;&Dw?;ho&% z1w5jFzQp(>EYDcUd?|WyUn{zdajcu_6O#e_^la}-KZxg{r1oG&JyhM()8+XqK3%w! z06D3Te*H*3l9M7aJ~o2B{>O+=B2ig!1UYMqB){wMa33yTeGkJHmBz)sc6@v?sw$2k zo2fZa%8e)}2^r`gc#59(tELJ9z(`8(oV|yJ)))Rss{`Mw>F7G)X~SCV%l;aE-^&{J zYuGG{du7UH9f-m&0i|fMQtN3cG5Ffi_1LsN!*sN&JfhAjMNI6g&X)6>MHu0Pep>#< z3}2oY6tTX>A?Hn7-G@xJS}%d1iiSHc@b1U=d}l4{&(I>s!v&CI*P1mM zf!L@YLQ&pcO#j8lMKbWVI6sy3o$heWSec9b;(c6tW_pYP<-yr0G`HU5(bqN>p9_=K zX_$s^cnZPSYnN99kdl;!gS%b@MLO$+*i!Tk*7pcs6uCYhR9u0MbA$zb#6KXOhwt+qnLAHE!K) zlJ>>^5f!JeO@pGzKM#dPvg}@s{pBkpM;*zu6<56h%5!SW`Ct(DJ8$BCCrRO1B8i+x zA%;wx-j}>b#o`EnETG}2|H*MXJ~@uTp*}4?c@SyI={U0I4O_J6?T$v&-?|~qbBX{w zeSPLrRRHkOA-pK5B_h3$`Ua&=&u#m4As6#HsOa?ALDYp|ISb%A$SGIN!_Ngm4o+U z`Aj(KLIKDf-h&)G63e%jRxl3Ruog=Nq(e7n!Y<^<3m;JJ@s4k3% zNRs=Eh&avcYrd8qcUeniM>b&wp#bEcaxO<}^ZN>rr>Df=fB9+w(o;+zoceKX!8Z0I z+EO^K#yDP8lcHEQh^EmGmBrU|VwnW1~D8m+C@m z%B`*;{On9GCZ=3+UOT_gw5s9{YdX9B>Wc!9^RrkM1IfkycVFjg(5n&Q3>$p`+Fo<@ zIn8mJ^UwMo+lWzf?Qu@~Ia3O8A8e8OR>_JtPUl4Oqwq7nM(7Y;*a<*% zC5kz@0bTY?I_D5bPIjbZLt0a5&|bnq>&=@}Khn9qr0PxExt)k954sw(2vYu?p^+K< z@cm9a?ejOSU~Dw7uRIFYHs*emL!SI7ys5p}-4sc_a@i^ll1nnuvJc6hy--0$rk%uO zBmZb)-h<9(;(O3nd!GcD-Mtji<5X{|o7EpUcN;qy$1bo>2zi+2iyoKSI3g11 zDH)u6LxFw(Bhk2#@%os5mUj%WE# z)FZvzU%w_TnQ*Z@Y|2k(=Nt-78yI+ojEpQ)mcN3Sn0VuMl)ARI{$upqCuw#6&c{Ul zC@$K8l1-#aV)`n_CdSa#aT7Ds6ULrEgfNDSo%IbDdnv6R%79tmwJ!nk1vcDVU!z>s z5e50*R1o~@#YQ31b4m*-pLHQ9Z?9gM^!cX!SiY)2h_qBO@T>>-ZePUo zUo1W;4I8&w^4(br&snL(J>twJ*ZI0r(b0z9}yiUp}}7 zX~{Z!PGR86n)MY}yPl*0BY@xxf)fK6eA0>Y*FOA$M3JA8-eW1E$cd03&JQxcIGfpI zK07(^`Ef{`3G;_3xB=w^&`nH?;YI&5=G1dNxVjv`tWo5Q&B_>~GMm*2P~lGU8Q-1c zUZ>?kt}Dq;#W#-R*w!|RT9Eq=Orq_UqyWGjv{alnGP{7Eb+t3U<;O-y#1>K%AW6`H zp*|MTY41BQIk&S{Pl6=$^b)S91+RVLw?lX_hO!vpWY%9nHj|bkWdR`<;>;xOHlN3f z$DPcH_T>3P%m%pDnKu^)e}c2qNk*;6ffO4Z%kpYPM~V6EytXnQsq`MXBts~?hpCW2 zd#2`GVTZ#({PawBs1DpvD)jQ&Ftq^5X}-EM8cFfy>S9Jc%0!RR@ezD<`F+rDxp*JN zbV!Shjzi{()x!8R*GTie{GN+(+PM){IH2-AD4(%jIML%NBYT99>TBL!p;mPQ$P?ld z@d_g$EEDd*NeG|WNEVL(Ijw3=QE#CFfb%x4c7YWj*S|*~>t?IOzN)h5accy*-}V*l zpCq|$tnn`aa>wor1t6z6N(98-yE=hHUw7PB2|c-pbzKqnZ2jMhwXf(|oQOy{iu>7* zYxKVl1d?#3@$x$NgzG+4fV`Ql=R-nu+-+{BcXJ1|ovro-w2xG`oPsJxpkICu0?32- znC(kXLfw}h1l8HsZ+6~qSzKK`ecRW*cY7k)-2e7V>#=IN=~$*~c{IMAXx`rZG5Vj9 zs(`V}hip^0jSGoLp{mTTfBfu$Vb{;sYEBlD6F^G9(o%w6$q5RM?~Vce7T3t)!Y!z< zD2KEU9J-G}CQR&fgy4FMo0+k(zG$%(00p1#6x`ZFJurPzT6I@fH~&NZU) z+Xy?e)7hODPD~-`Zw7jWMogKn>)~#5lM{dAflsO#sYfOj=KTeN>K}xv9_jTJb!qh@JJ*2z%|?%^G9|qYg;hvQOfhan zKH2+BTK!x|B)j?QLT9V2Re7i)X>~yjkZg+DhL15Y_zdZ3D~&yrl$HPK-8R3Jm1k5{ z{Y8W_^MBmvSn@pc^EJ&E>hr~(Tfb0^;pfZj&B;lhii!Md1^5<#g?iIjl?WLB^5I;R zZAeFimamsOj-<~wRvbrsk{Q8EY{J18y%-yQ?(jO!hMyOZoaBzvmgOKZWrcKK+RQpB z_sz3zNph*BqaQ#0s0$O5vgEWcZLFx>m{t#mQ$obA{-Xu_P~}SY!*eZj@RjxH_NFF2=^1*XlBu_Nnb8ukRj3ZvQ^XYFP_Kkssc9#FmS^ zsl6UeZH-ct?BIxsk85W!9hhKAUI^T1C(u6U_0y7vH9md$iI96n2Vt2(psqZK%;tK1#UTF+6nf1n5 zO#7V6%1gia?GRp!%sQ=;ukKuh{aY!Qk6wEPiAm`wsd@u3@tU%LwjT9%a9L+kaiA0x z6v;n6F%C_`!OQDADrC?Xt!(s2B@!t~sYr-VVA14a)PSc4(SDwsfzm2_9`f$C8%zRJ zTxKap=HI<{FC+<2ul0C&U3go7fbrLNMI$*u+?^Ga6;+_Ds9XZ5N5@BT>dFZRfIO5s zD$vJgVnQO~&QpW@>h ze*v5|Av#VyQlh@e^rS%?X;bez# zS=a+uo0TJ31w^7ab@?R7iLMt0klziUq20TLw3m^^0P<}s@k*67vM?E2cD&7`*2PLt zRN?)*wNSOy*L^Q#tE=|0*JCIjlM|EUOn!H0beP#%j(fV}E$#i06rY6G_PvRuge3Dd zprY|kJsR)SN&E9C$=F|;{e0yh-Du(&{#QiTcIKC^mYp3$+(TkCPuPB{5mb zZ*Jbji_LAl#_p>iU*V=oN_CmeLu)l)h*b3+bn;xcx({V&bOt{<(dB!DKB*w=+d>ig z5mM@?oUC=&U2%XB$n_FXgQ&lC6Sq2Kr9-#b%WYum*w&e&mJ#bJ&A2$5o4rRR`P$6) zn4X!&mAXrem@1Bariyvfe}86bl7d$%qmY(twgrtdItT2rv@!PsUbfYZPkpa;wcA4B z+#jxfXP0S1J;zcwB&Q=iZ5eV4iNIFLwdVl6UPtTomw0^@rgw4T4d+&TN z8t(M@A+1h%j_yRvs9(F@)6@F78knEM%7(Inehy#n)2;H(b?Y_-qLp7NTxxw$Wo1Sj ze*29)DPJ!|46Rwe4QmRvNt=x|9(GX=7QSq3jM6%zqW^ghI&WPz@-5IJ!xn`L_tDrs z;K!mMzrqq7Q2pw^6=|{ft=HCqezQWUD%jz(0yza*6uI_>!$U7{O2_u>%)c_a|m zHd|?}bX)Yj9cQEti^@qldMzgW)bVo_@X2JSqaJ zis6xA=FpuOAF~1Ssz!E^`oN((6XO$cboWuDrwBwCsOWv%iz~I4KnA>FXwCpvngi&4 zI=?aC*SfHn`%ts(En9|T+cPJjqtd7-vIVjOUETQrMm5ld-dDJqLAC1)BrIap}0)y%N~8EubV7oh%iSKg@NNa8_0QX zmdS}xG~IX~lPnTm-#1lUY3#%48>Fh@@7k6W54^S`3dus0KGkMxQ8~62$q_>Yke|A8 z3PeVjZ_jn_Yc~+k(Bd0D&JI&vW<4Nfm4^|_n;-Fp(B9$4u53`srrX2SKx5P za>*eY7oUtRyWR%L?>na|yV+K5=MkH2rL6EimrZ%6ook3Ocu)7)EZPf_sX^r%=kZuo) zMossHtJ6`R&V--aS5;_)7F2`SpTBoKGlx>U=^ALi5PY&L^`{GbO<`$NicO)vR= z%yjU(S9*J`p{I-KW4G@v*pBvE8E$XW8El0{;^*I_^Yg~7)|}E{k>huo&SO?QKa1xh zyS5=UhoQ~4%B(F|HGabAQvbEzuR}=q>HZGnHOyZwT_JTlMKMS+B ztD=#fB->&+SvlBSxmN-`{kFF$A9+erGLp&OX5()Tdz-y9_cIy9HQ{phnS;H(hLp#O zc5u~6txQdhF#^*VQyMVsZ8|Uh;`}4uBlOdf6dbLJL{gmD#`M0GC6y>CD3u7~G*{2v zIESH83lU-wp&^GHMM#Fq7u zC|fU+Je=xAzG3bIl-ID3=Ts;tkQ#JWYc%XQ_op+wVs##N9sD+uM6wD+`F7Nyx3eBW zEkzzZWN362?_Yj|)|bAIkh+wsK}P(brsLk9d1SkWbpLrS4lALLRARq*gr}|53k#^C zw6!G%5fc#sb@VwfYx?%Rg5C@_^C-d2(v1lO530-1NIx!I`+)tXHIY&Zq$Fpcxnl_L zU3lQnTCA!As-paUu%qiIwSd1HsGpy(C_d48}>sm9bO*XtHb?!^-zV#XO;u!#63J8 z@HYpJkGXQ^d~Lt_kAS~}70cO=8AT2xB&G2va*F~$Pe(1f+NxO;G8ttC$m2L$-9U03 z9JIb-DAuXd1MLUL)TC4#-f;+Y*wYIgVjJ6=(bU!~N0E=JI9KmK>yq*nf9+rvHm##5 za`T-@rhDU-gK{MD%oN(1E-*2{!MGd&jnLYyp}I^Q}c$6;_eT5+``2U2$47UWqR zcC$?7;{skt@~dDV#6NxDzf<&!4v-VbZw2~!1o;vI#5+Y!EkcY*M-XksnTQ=`SY>?9Nahr+W!w-NQz*6R!o^K-x4?u36 z&jgT5Vq4PPU<|Hx4#7$BWKL!T_HLHdgysT0 z&s;q%fu81C;}Bfpp)KQLVwt^7#A&j<zuWI1GNw)I~i_-|+Wo|_T5v{B?+Hf)vv+`*9{oVy`M zk?YJ$zoWG)0k@9mH~pK%(Ns6N)-D4;BW?OpH{JAXI*!(V3;(Eo3*` z%)iKR0yz^VSw!ok*_U)jkB(e^2svy>Rr+smI0B8Da?^X((59S#I6#Z9om@8&fkiB9bD9$zvNJAzVRy| zUmqW$tvw_7#f8WIFi;mgTVLKFlor@p5DEGbeK&5PTw_}U>RapVw_hMYuHVQYaU`W6 zQrjH$mCGF2{4eqjCsf569jGWsNFp%exE3{}t&aq>F;GPYNe4z|LIxwewDZyfpee90J&IC0>;aX2y(OUA9gjNtL=ut#1FS!MGiYktuZt*Bt#c_x2wMB z0Qn(`{$~;7+)|-m^8@7ah!i6*=C!M&)KG4A6<=j^`$#`8S}m-(>?*o8k=CE8R}mAO zfjTt;Oph^}uc6HzeaWK#Lx>;;u#|bG=UeK01IU@Jy<;Vd7-oH`8D?xPuX@d8EvG$6 z)H37WlJ^cC5$P0xL+RPXK4#xz*J`_vwnn-}`Y^lPe40ib)a-Y<4{tttpX~f{&92g~ zS3okG?TzR0LL)?Tn+#~}9%evNhlv&M(A6}sL5$Ky5}e;m5N@7XhG@!tSJDsMZ|to z4FR7sBFPg;xrs-TJK5UinAbfFbKBbFL*RiPa=O5_=8H^0O+=l;MMmY|ZKMR=^5Bg! zrXpzz-ne>3nqSf;;9*qqcXDcc7uaGEwl+`8Q~_Em#Pj>m=pfErlcV4XuWjlGU-Y<@ zfZ!TE{-~GvkVFMZPt7V`6aoUIxJ1{g9-_zTkvx#gVXqbPu<7!!I0ElLVo=(>=zVtN6e^)u6K9S;;^KJ*(;Ga55-?X-^%njeCK#B zRxaafAnie1MY)otf-xexX&jC9Goaig@y*=?EG3vnMI#Q5n-hmitKUU+gPam&YDUGi z=2>(;@Wq}Wi@7awM*ZqbY4xQW&LJ$1OIN8c*prm1yu3G+Nc;_@6JG4QZOTo-+xxSS zD&$|F37fuR9g@;A?YDPib-Nu~oLm;xA)*;97I2B>KJUAak>M9+9aLa&bQGGikPq=Qiu}OVWjIj2Op-B6NK8ZNwqtS>xf;Z?$DO#_@`)h>J~=hX zrMjo57}#Ss8$&Q87dr?oPp1(=#?LD|_9HdPl(wUdqp|H48rxeW7U|F!aK2#{^xMzE zNC-!=u$)QR>+PXnZGIW@i?&N71jeFCDsfY7h*UxoNs6QCw? z!^SNKG)Zl<)n7d6!kxzR5^LH%j)Zl~HG;*V?>sPJr3KFRU@PQA4(TLp+5S3`NGT#X z3w2@$!O3B?+^WXS)_Q4fP~^hdT9R4!b7stcuW$h5!~v>WpZ5ofg1-n=L4~?(&*pR- ztz3@CNV83eExKj$>To4cLH8YT$=V22Icc2o8GBQ5OqRQ#V`QYs&y{|{VS=&$~ ziE)QsR8$m_4B2(lk>O-`lf3$t9dB@lv<6<#9(wQ2b=<$#C{>RloPPMheGtg_vV6W; zpd>c}71o@H@d-G#`xT@MiYwINEgiQ}d#fIlyH73)H`DcR(*8jbkQ7ZGAE%E^xBEJ* zi^Be;*DWp~8CxBqhMkWwr}>TJ4klBs$~MFZo+KH~pgq<3E%mjs*) zkLqbPCZRedb$56k0p!Q`9zjxqC~*rkv^Al=tw~ykDFw>u>d%+N`oVIF43+zi$PHU} z*`xn^+H29xBFNo}<=p6KS2>Y&-S$wo=Qy2iEW|@a!J51+SYK4d?0R*29O~3CriPy4 z@=Z!rabJRT?>|>r>Y-_`Tj&y{@$$Hv`38`uBu3-kyq1m34AVZLmR*y-8TlKxLkF{| zUhIt2c+sW?!t3m9kKj|zVU9cOCv%QF4>mlFgLNB7VMs{(p#YTjqw(tdm|%G*wc4vH z&e!+heBBGLeo_6aOHP~!H$a}29F2c>d@bm=xIVMCWGPh4{+pZ_LBq9QfqvTy2Lru; z;vUDn<7MO+Cx1x)&;TQw&vgPPaA|+VZscT{xkBltB-j4Y)sLkJViF*!yBox3L-Z5hz<9A?$?zw^lGWYAv8<-_&)&wHBW z)wgV?vy8Tf5?6-KG9<5lkCT@5@~nRf|9t8JhQ_=u#NJ+oBJ__?-ew{4mg-+xxCxcT zvK`3D5g#+~R(|XGZL+y)!@jKov9Y|pSS0zJ;Gs7=l0cxmjoYy%zf2lG%+{*@P_nfs z^7dkVA1*fZ`JT>*(gT!R&N4~bSw>Wkq(~G39UbdkWWg9oMHH5%%0?8+)rqNP+8smn_ z1O+vyxY*E-ixfTXr+$5Cjq`cGx+h{*J@`cd$ce=F*1lEPQjo^|ftsNa85x7+S%s2f z5bL9@DMyK|trEdx zu(>c}nBiuEh{l#FrPQDbj>~i{t$My(ZjiHKU!3&s?OMoPDldHdVvim7YH^GQ^y^ zGqVmmsKdc(-Ky2tS5bvnfzeNn;hNTFG`COg0!SmP@Zx=9_?!cIg_^R ze8ZB9O9fw(s-;LQig0@8@-wvdE-`Du!=QP2$=oeK4!a}ekw}zs_9>_=DMRV{jZ(D2 z!0-@0x^|K6@%|PwS}!p^0n5|U5giq+J$vB*B>`>ayT1ei%Ef(^!13-jdj$DEe)tdr zJ_F=2QNW&(NUU8cJD<~1Qt;}ogP`{n>(R7(jk6fW~|NI``@Acb5`TX_;hGk=>fVX}fJ5rrh)O zSKqe*C~O6Eu&WktQ?VPfX4ThsQZ90|so15mLJT>0kMBK*WCy>R(WRJS{02zw>%F(giS-dYIZW zcZ1%Rysg<>CNOl|3WmD1V<_V!gud`N{@m6iW*c6&07(HAXKMR!wPheQ#ote1T!b4S z->^0TU*595dGv1#i;EMFz6x|8x+5A#cqe?lyLeYdXww)NfF9M-<*eN51m zWXtyt>p98E6=vW2i1>7T-x1sT-rR8qwYM525PE!4#o78G27M;(lZ~>wG=kYEVp+Fp z4fa>;kk0c{Gt;k2E7TUaiUYe)^N@y3T* z+AIDzA~t-|GKjOa{)4wUD;4Z6w#utVV_(G%~&e$ z*y}KcuhdmDklb3F>}9?o=BBa=u^F+4WzRB7&SMKvCoo z1^M4p5d3REkwa!e811ysZ_Z1?@trG?5F25%HOVGz+Ij#hR;`ox*CYep+Hg^jsN#J& z%W`pzGU?!;s`>_$ht~J@7pFtPD?9ceEy;A4Q(nl%_Er{2PIc7_u`kaz1~Ke27CkTKzj^dJ?BGdCtW8vDzukdu`y9r${lJjA7XI`EmGA4SSs zy%oUyXN#V1A&l^aU&o1*4~Ejy?w

z`Y#pb+ansAmc;bH(pCRT9vp<_0O*F?15==0FsmU>1zVse?yYH|(^?D(4137Az znA{K+gL*MC>nVv*_|CCxWTxwcBHl-=Ep^g_rjSA`&en!YQnZtm{-w{knZPVa#?Wcb zIRQ3K06BBWJ4TEG5s{IIiHgSZv<$>V#W2MX>$S8FtS{cd)Gb6wx3S@VG~6I(uI{Dd z5%3op`f;JYFEnTF!l&cQZ~D{%6xs6HHaWtXZtVno65#oP1^D!*8uD1BeIz3#jim#i z=oIT3$JWVtY(^ThF|mm#+a;4cXt2I`+JoDM6P>SxB&``PlE+rcig zkemHU0Qq-cUn2nI)LRj(9cey`wg}DTx~nHJIWcUd2eKR5Z5rxru@A)&VcOSL+ev?> zD7h}nugmtdebn*45b3atR4r1>BRbvZ{=H^&N~A*-!(+4f@24N)*QMO1LWleQK;GwixnBmL4XYP2VW!JM7)*!)?UX*Gzx--bTpsX`r%k!1;m3Yo8!j+ znX}sI94(GRaWyi>MFeJpK?Yt8jgns}=m?On%UXkdl{@VqbnSH;fJbNLPi_Y>Z63u! z-z*)zk(vY?sfa{^M3RiawoO~Gxu9r?NRo?t6_N`lzYax4GbwFtFQ+-Tb;s+{oTK^u z{Bbv08!u@@3f{w$VIumvktE4aLIAlKP(c2u+S^TN>A17F266bd2;Q>xBBFFMNv(@^ zlfDZE=e2S4IY4Ca^_zCu2nY=~PT2?uMED5{0bzxL-6e}7Ah@aecn8SmKbMHz;(Ttm zcO3Uy?qhwW7aAu`?YGg`c3UFRaKB~1_vrByiXPt@36ilF3z2B7W0*)Zt^@?nquLo4 z@Y-g4^>!&1CkpK;yEa!MKRZVtASf7}nnLs4R!mJ!7z9pofnI9r!==W7m(k;%`_l2k zumrq#sS*naEzJ9Y8dU$I5(?YG<>o8WWAR(ZvO&KkTYwuLwr}yXgvtVs`UYQ^zEuZO zx@(||Q(YX@KL1X#LE9||2`P6mTh->bd%sMm-4y}U&TE$|W`523LZd8x8} zeeT;(@WaJ`ta=@a^OEt^1FJ!K$@Rj|9=uC!jtDIes<^3HJ753IY2#x+qh(XnogbDX zkyag9dgb}R6#nJ(13z+#gayc%uWxs)S(6cnjrt*!(DUhv_ohhMFYnDn(K?Eh)yND= z1eUK_$3PzgKvNVZuTB8@3zlPuc_fS|oM0dTGU7-!cw}tUH=x|D@8@eD`rI{&d}IV? zZ&;$pgFth4IHJgb{aZ3vBsl?7dPzu5$L4KEkw`MvY=S6E2CVCDEqW|0T>iNOQ%oeD z=r?vuVK7H)SvOgY;4nQ)PTfAtP`~Oxxl-xhYo?Imv9U|F;d1cJA`CdT0 zztgy|d_RU92|JIQ5yRTJdGhEUnr@!KlV^_%hdz-T$WcSGpi5T57a6l)nRRmTzf!pz zdrHzYe+*wQne%Sv8+Pa2-FkH0t>>yK`r2x3K&{^>4;=$i2Kyu+#Z8&lZs)rLL2}?F#w8#vB@NM$ z!q_zC&HQT*i`XmPfgF+KLGq^zSP^7c88{a{l1Ev71j_P%eE@P&7_g2LYTw(vLDb## zCEuAe{?d}7@ZHxeQKyOqkQZv8nzpV^jt`^m6MFVy3%@PP^ycIaX?4YDrMF3OhooWUqii%at2J_l?l1(hwSzZX* z*0Eu=$t)`(txkCiAlIUvwP#F>52NPFJ9zf&vC;Pn0mxOLC1PUw^&1Z#+QZ;{U!CW@ zp>GoF8`i|*?Y$H&9Ba@X^l0G~QnWBvnTe}t?L}M%x}>Kv-NK%c8qXe{XW(p z06+tE-!kn&jTFL&A8kbZFe7~^<;RasJ;dOscQlmL>!9EVH67i5wp8SN8X4gP$aQcr zXJrIpV`8u(eL0izU7n>8dZSFWJBk{=P0C$Qx+Px()lrnu7U|jv61+YAG9a9>R)DLH;al4+> z54$y|A@A2`1Jn3_&OF4>n7?UYTveKix1iKQKwwe9H?Bx2>HKLh`+1O)3Q~}ooGPg* z@^hWH^^dL1AcH#zG+=%n9Cp234B$=-{lAOJ~3K~ynU^f&?J)Yf7NW%YC$ zf1%)+j?Z)GV>gihMpGT0^}k?iU{quj+XC7jjN!z!=NKCEzAyVTf4^9F2~)~MuZf-3%Wu>d)fR^OY6&FhJ1WYuFd?LsG9i|m2n(IE_x%8WzJna$#GHgN_;-OjJ_ zodcxg))8Pol(NN#a$gPLdo^8MCqguke0cQBTf79wmv9VFG~HB8 zZiS9g%l3{uGt!L5+O66h&yK6cTk9#yVQk4^$~9|mdB%3t)XMfw@Q#BdD|C>$)qzbC zBtQg`Ac#Z~j9>&v#E0-M6C1)m+&`B|^q6qTM8eARP+HqQC4lq3*IOVwOLd zOa;?WkeiFoG&IXm82zA--?|Kz1Y(BEdENV#35H7F{rlk$>I zO+DgKGY>Bu(&7X1O0A2Pey7j@MQOwUTuuHNta)yi;EQ)-~ zR!0>1Z5Bm7D@KtofO)b#QJ^*1E?VUGy%Cg-F8qU zxhbcdGqa4QBzaXe|BhFjw!%;tMJ2>yAm>Ai#U{~x`fWUZbRRRbF$Rv2lSI#O99=`f zUc?sd)C$T~gJ%6*0NYcY6QbPznU?2}m0_n3Nl(w%h9GMWs zr|d(D6l7v;AP1xIsR_o+!9<)w%&8+*UdtaPBo3M zOY53!umn_GzkI=v{YFC@n;laCHIJ}&2T#MvUAw_6xXJ@?{WpSCwLTR zy(>>?2La>`YTk}3ah$y}p9-N-@+r`O;*C?-vyng?yM08N{c6igas)Ym?!F#$^3Tg^O2GdW?Cn&9U+Q!fr=kMSAQ=$2WXwxb21fsx+vE9ycL3? zhNXEcH6s6ov53W{(B1Y9rpCvT@43LANL`;Iuz={*Sp>P*kC_RO?3tc=3<5(YD1}j+ zQ=u0_#XtQp%d^SI$c^|Nf(S z{FnD`VLUakZdIbPRuUl3$pSu43^!RC!`}#$*|cs0%BmVsT;a|?-a(84(+(ZUH1#;N zZqJ$HVdTPUafNdjzw=rnvW<)8m;iDv=Sk1u@3FhG2gUaB&NG;uv$yvA!pb-$b9(hK zwr>)olm_hDvW-zEOVQ1`8Qo0!pWpqF(x&tIu-DA#3`C4(MH#3?p zW7C~BCgx;K=s14<5ssf91p$pgmg-%G1A^_1ft*MLpKm^fb-98A0>E@@(y`q#&F^@7 zkBw^1h+>_CW zYuPNc4(hA+VQ)#Lq*0AcjN?bAC{2{ZsY;L$V%xkN(pBx}fR?|W`H6%kdB>y2TWsoY zvQ@L(V;!P;qO#euP2}1~cgJ*`?OO;c4c8o?|H0(Y@b9mYd&m-2 z;?w<#zuU*t-N!Z6`op_+RVLE4Z!b5WHFb(WgDf#8!zu6kBct+zJ9Y$%Ze; zDDp2hZ({kD&0>1vR@WS5-ngbR$duvki?LY@?Uikcy#&`d1GqRW$B zve^56MSw>xd&i)W;(Va20yX87i`=f8a*@Ax`V<~b$hpXSh7;(y7IZFh;OO20wCu}A z*ldEPAv>o42O21foaZ8^@uB|>4|KE0Q;N!G#q`uodZ95puM=YHwx%m1rpVmIFG}X& z%nk8$*z%hr8FOc5XW3XebIp_DzptbW2dnl<<2yMsjdxF-#Hax9Q2l+^6X?G31cBCM zn<&ZeD|SZlX7eUwG3OCp($X_fUGqGib40k@yEBYl28cRsn1v^ZOSzeJeybbK)@E8dHWcJDg9iQEtrs}jK#W8LQkB(Wcew+kicO;9#9N?f zPF6HB4r|z4`zE&3{!F0jmt^M9nZHNR`~R8gKV~5V>C4SWu|ChHO{DH$7#hIYi#<#~ z3cRS!doQD&Ph%9VkJpd1AXm(#4jrBSeXe!F0Nk!bP?vLScnY$^_=V3Gg8sH-aEQ|~ z?n?!&D!UhTyU#<~ zTar(M(xZ@{A!4MY8AYs=lj@WTF2_U_aHxfhv#5rhM$hU9Q&|FC=fvlq%(P%cFKl(a$7F9wcI&GtnUV5?XBc_+~=@+ci z;=C-%6vE}TzoL*m^i44o+o*_i_~}>-qZ8v;SXf|dmd^f{n~pHB)GTpbXXpO~hZ7=E zC;#MJ@M*0m#m?vI(m{?0*4e3Ps4cHVT}6c~yJlke(W&Fo9p2wK1^krqthV(>9!Z{s zEzcFAq2&$a9%ti1rHqW?7+2=+YVJY1^wE~xp9$*a2`pX!@yXkTPw%ctzVNJu&VZX zN9sj@9Kn0Ljx&Zyb1xB%`_@DM2%D;3Nnw8_pMm(o0(yS(pP7y=+7l@d=5vQtfiQjO z?!Oege$B>RAvcug0X>_{83D|GcA&HjHD%=p3%UriRkod$Y?bsGvQrZ4WsuS1)Y2Ur zLujh9Wib7W2g1~2S7D(X2s3gU$2-qT&OOOz(Z>^>>)Olyl-w@GLHsK})ygwU3rdkKDg|5AXcLcky#y{VKAvspoPbzu0) zWqkAB{wf|mxWAkxtV%i<*=8AqLO@3T=(IpwIqN`{mm=0;um<6-yWaznbb2s($v0Y6ODHXZ_PUx~oimrybh8 z`wcCOKPA0pIdf34BZ@CHZvsWlG7+q490)wnf=yd?N|(=jBPL+t00I??HeD3SE02^s z2KG4fT1$<#LH6W*u>ss<&r+@`rab4$xyZZwx$-RKBA?dr@rB@Xk#EdP$Cr<7!X_h% zoQ^^=oa`>6D00e0ZY$74*WKOr9;PQbwXN;XPG0r0Uz(Xy+-0~i46eXV5z@10a0__ zOa-N=WFJZ@4mtqQNpzn6ksAu`T>7@>3YVWNeK)#%u zL`1XxV(oe~Rpzn1Xzsi0+yc}!z9Kjq@cgqwm(E(w2IgM%90-R|gZ2>Rt+l`u$M1ts zmdL9)FPe?K>};f^rK7a+5O$G~Uyug`E}cDPfK2AP3WZU6^s6X&{;SfnsZH{;r@cmi z=Ke4K^grQS|LIQ@(Iv|px5^zFYKub<{Kb$RiQp9{fUE1caCr#r7keZC=Rg?08LskF zUbICj1Dp>^M{8~7r9hpxUp>59Kn0C_$EL^2{qP z=~GE`DSJ&BXM8eUibWErbtw*zA9LlZCvcnry2hk61bb$!gQhs`zI&20JVqdj_a1o*M{s=DAcx`jXP2Q^WS8D2U*7MT)|s^_Afzy zn}x=g0$^&&D;%`s6L{~890U_sTUJ1~CZ~nZH8eI9gYaEWyEprBduTi{X*mfeouwk=K1h$zIr^;{na@B_%Z&kZ~Qjid;2YrbINiGnG-^> zxz|=BO%T&p!}t)ICQ{-qr#nAw@7~aXf7L$pj9Ps)Cq4+9?`pRHsr+`3RO?UW04%Z5 zj5Z{s{n6Cm)n8vN$_WPclob6MpnZKgbaw=df1!CJ%6DW-{z;p*>_T--iu zK4Czbv*>hL6nx4@(SY2NIWP4iYGME{HPcEvSsDR_jZ+KE&y zYA(-14Gie7B%t4p%wSP>0?^Mc$-0i#-f?``opO{*sy*V*udMNJ$sVON7Kf|y@lx$N zX+30SWuw07Wjm+4F=os_-rMfp$BI#L=4EDEkSNwzUc(7I7WNSvqNRn$>tkdb6V zem-^;RbX$O8eo*=y@t)@%{cJI|1)raF`#Ze)z#2`JN}dRndkOIz&XJ4vw_bX2qBtj zub@Q%+}4w;V#MQTO9<)dY1q7BBg+dX6~*}!iRPf5q7S12J+EO*zrymq+9gs@h{M0| zM~D_|33RQDKfHzS{)exC{x%DZbZtcy>MANFLkXp#dFzvpF)_UYjz_7S4No~hPUB2~ zlnQ7S0di@g{W9`+(#yJaPYW=S9OBgHKi7#VqIlGDIQ%pNYG*2)o741lUhZKJ*I$^2TpZq=MTwY5oQx50yJJ)fsi*oha&gC<6 z3H+e-0s3yF&!neK6C!`B^KA+~F2EN2n!4olZ`!wdLguBo{$am4h7Jk-IM^&`T!i z01I7T59|q}YG+t-KvnogQ2m97ts}18l8Ol@Gbh_1FE_zwZ!2`GtVS z@3X|<(RG?Lc$kGK)j#YWWB1u0N0^VVhAPA1$NZjGfX2Cjepdj&lX5;~x^*ao^?3!z z%^{ng!)oVBXGy^v2e6w3bJ(^5XD|oVtA*20(()CQ9Q`UnPMv)jD45ZV(9AMbO6D`G^fxY=F}I`KY9j`r!Z*tqtB?- zmo#j_zvM?#4gRaoY6MZO$J4d%XwWL24TrxGFbo&pXd4>-CgGa?-U|MyrlO*Xg*1G3 zxpP;xJ&IQwHb9Kx?4Kr@87+SOBYUI*1UKaHw~8S-K7i|(a5^a=+GA(U3u^SoK+xam5(*ma(M7qc@C!#TUp zCs(-HD)R!!Ed<=QC9pJX9+6MBW^S+DnYkEZv$L3)on!e_*5&5ml_M?45vW&*HnyEz zvInJ$DAC7#a4sHrZqnd)7O#=b+h?~RKPpBs@_E}O&KtXskD{aXN0^N{a$b=kPciON zo1Nhf=4t4()UmlW-c-#Sql6V{)}6`t?25B<*Q374?G;YOr{T-w6>gXNkLK{#Ke+>< zr(5B&;>N$_(5w@iz(4i99>&no`mTFDC>kOPQW%xE2o*b$>-q6LL${OA7x(frLTyc|CL)$>`G&2=L;Z{nB!*;g=f%LZD5 z7zswRSsP+`KF#6{;7;SM6UW^E?h}Y|G22FlJjzKP&59tBnQ0G!LZ)U#b8zs86R1jn z=y|X7ckxs)Mu`+`;Q)DlumJhg*a+VH^ZykO?hNx>V+J)df#XDFDjG|k0pzK#XjcTe zajv=ma?&?vCUN#8QFXg>P%cl8GW09Q8J(&gMYP+*$}<&Zm!{wOc1jwmxk5dH50jx@{>BV+t5E10cb4b%rx3?a3H4O+w*IPgr z+sCKgk@5)hBh#T*ODCFwnWPj5B1w~mNJo1`rJzO;% zCWLw)O)VG>6aMw;)z0bJP*U_;x{lw}M5>|GMY;3_Uk_oIUb3&W)JWkKf|ilZKypfJ zOnSAHzK8)4MwQM`Z%dgKKAF;8+GCyha4h3a-3`UXY?gr)N36 z`eVnDwanpVxrJXkkdA^JS??oOn}bzVZeZ@@C!ie8t6F?I`DJHC@M=>t)@>|=7F`D| zQUDzxT)%vQIa26C8V0(*{`CiU1E*J4IsDK_?<+M^(Ajny3-}b611x!#%7CW=)H>=V zJv29(gWT+FMxkvlOt-BfGZIBz(<=@K@C2@3>0vBsVh;7JyiI8M%D+eMreFysrXSzK zhyTwn6FpAOKh67Vuye~6>-eTMdv)YCPMtr8 z*c^9QqxF)89tX{udpNBdKi6r|Vfo26x=Ma~FU3+rNpEAAY#pG;hqF7mh7_ zt@Y;3(bX84<=FdHqrGeBo6o4#*U)4HZS!42U0d5tA*%IoNzvDr8;QKOdl_u&)(Su# z)Z9^I^O5QTwCv4eQNc`MAmuH$05ykRl0XxtTnwJWm4R-V0@kExa%2UwJ!83rfj}Pm zL)4-akxa!__q?dq=?RBY$o`pJQKXzcHRWZfEibeBMsHGd^LwYyV9XKaeC~>lOE-h{ zd7%6yUpTx0<=c&%HpYdXa#>f`9z}YFVf<&*Y;%kjmZCN#`;C{v?Ik%?Ai0=JQOJwU z>DYO(?LflVN_FukNU@|`Yx4_n964|RMTIh0MxL1;cXcBsBtn^A08aPCar0sFc?)*O zF0D3u-t7FmG!4%YyF#tVuApIIeil89UE#U}#;^e;W1ipy;c5;2PL(@P`k636i(SAZ zfSioH#>`4{52R;gU@t|wSTyUreoCW2{Sfo1$L8Yr{^^GpxS3LGsvr#0Dp%4xmydXC)A;?QSC zEsENd7nAb^l_$5?8IsDgUJX;$;hweoj~?UpgNKM_Wm@^?M#moG5C8bT;`UviIqZE7 z4jJ-Z+#g21y?mKrV1G$5rvMe&Ou*f{t*saxpKz}=&&XOwL%h7_{l3r6C5?gOk*qA_ zMk5kUsra=>BpZhqFd?o<9b*sg^7Sh$we-v!Y_Fm9>nAsy6BThDxb~dR$EI+z`$w1< ze}I|TH1w%4K#!wv<3<#2+$0Uo#LNtS_{oVCj38Gm3Z-oEcl9Cw_l+aXu3Yt9ef{X@ z>zB^F=@{_dx!`kT6F~mYKfBp>fyAU}|XsE`kt&Yn8Dr&U%U zoV^KJ_C_ESX8X7O)H|4QI=Xl@lF2wx&oCVw%sCbofC3;l*Md#EZQP02`61}i(%R!| zh-lk$a@V1*>GQ~9x)E;&Im581=fNIZPHGzNKc2_`_u;)%9Zy%&X(H56QuLd;j^7Fr zASZo<^b(QThFH5uCn4R07Y$lwHm2rvbab~NHalbQTBlR6Aqp(H;aV#yXMWEGB{&^B z<;3D=CoPvv&uvF_StZiu9$UKX?EC^g?(D*~5z?z|!G7zZj@CY67x5__d_J~)gNDNu z?%cvJ)Yf2Eq3k3$eCIAc?(7Ucx3JH)+K+h}HmpbJ32Ohb+FE30q(e)OGLU>BEeAc_ zCpo>kur>y6#_)sF4?)ZgK^CG{KU@()h8>Je2;f_BBqMI^{W>zQ?F)P zwMNdTQ5M)hW2Y+YZo6eCw^3PlTmIzOL*rg3>DAeWUhQ=+G{53sr>1>BADhJWu6OWg z^ez^rA3>kzb_kVTJv?#;A9r=F%=%4b+xRvZo%`lHHsYd-5?vu8V>8pZbL%Qgg=&^WLdRS0 zpT&2-_dXVuNv#fG)#koE`?06&fFoD-V|1OYHIZNd03ZNKL_t(}A5#-H{R%sNP5XhfA&#?|{y7ul zQOFGNae;$!H*~Kc{p30l>q+(SJ;IUW*Jyx{42i+eQ0V5WTXx6J)G(1IWnwy?z*3X{$F{8Ak zIi~lhU1tU+@ZtH#U@6L0s5~J`(Ph!BHow_Q#o{ zP`o=k=X@~?E1uAqyd&XU3Ez=pT{oys!Ad8d|&Yk^L+wP2&5%Pf~>4e4py*3h_9mb^mOdAWU?gal#Yr5xGspO0h8TYd44pjDHrwe#FTNcb0RYOs6HA<^U zrzUyAYa*KGv#sx8a@=ruGyFKt^e;)LUQMTo6#>XAwuNwDPY6OLE97Kl;nk)?Sf3}P zOaah;{RVokUgr*l*1bgy2blZLUNaV{i?sHw`4;?%B^mA9DZ&C#!WYI52>>JcR$R6Z z`qX{slMk3)z|Q^?^4U-8=i>DQE?f`(g0**N2=qt1cQBo=xk1wT81q{n*+kqrpHf(u zx!awR+NX1LKZb4OQjXUm~y^rbjUq522&G9ka7sx1#q*r~c^t_=@P% z`*(*?;X|ip<9lfU7aTSx#j&!eYz|VVrU=`d>_aZ}BnPmv$zao!JW(Z^X66M9Y zC_qln`tUe5zwg>#&UY24tHlu@{4OWA00)~t2cm^E3+?T}-cDQ{GNWDiI;Cirzxnt< zs?jdVhFALi69UMw9NMK#d1?5^$2Ni1g*hM0(WQNehDON?VG}ho?vq&QcL&l3SsXqITvMaB!Vv-X_TW^3H(%mb4&!L zu&bAA%;Q>!UDy~!GLe&=Eky;;Q>6@W6H=C#ja5bs%X*7CdcncKA+CROtuHFKjrALQ z41JnMlbhvfGv=)ofcz^2w6c^ZhHTWp0CM`nBgpycB%t*SMIsZ>YRZ>IBj{D>Yo44A zm6a7iV{Id{LJ8<|931|%0pwN+CqsuSp$KwvY!LR436S%MVV^n_qeGV+zC1;gUj#iR z9qRMQir7Zf`MFtk?$h~iu2bsC;H??_ux$)6zY&a|Qh2lffW^mI=Pyzx6G76e*v;e;w7K$JP_ z7)8@q+JG~kP!zo3^uc_jHJrFOp86TTx@#hEfSft)6@}DJdrb-e_fkK4u3ST2c9ccH zS|GW&UnMzj$OSQFg7X~rj0|T`J{=WVtnjU}y&$xlzqV0Zh?l#kwUm`lt&!tnLs zCuVox09Xj*lp<~i0+kO{l{@IwV|eHES&RyKj~7$*oPd(08!i(d_v;Lp9m&FLO$}I| zC(_pg{Wor)clbJ@nVFXJH_@xp{gv*qL6*FzhNIPC(BEcZ_NKC8)Rx-zCi)$*7XJ85 z2Odqz4wI?q(@uTZ{HC%FFMv@P0BUPC1If)ua=Ra7A2`%R_5p!%%GzfNXJhfaR-Ln| zJ?doT@LD_8b8+ZX50RL-C+XA7o_EJ>&s%)`x_|3A7b}2JFc7+~23bM`KQS&I@9f6# z?K@KA$R0@m`AV=$5I|0H!YmeWztslr$+@F@U3p!bCr@UyMM!+p!DY56Zd1ISYw!+9O}+swK6zdmvO zdax9RskP(T)4~X>!142Jd{Y?#MnzFl^lQ(k)_siH>RwV^4Q$%JeSJJL?OV{aH;-%;|WmZ4?8yRxWJqNde?^)@7IO{yil0UrE)gG%pgy zKR&h*8}r1x^nCrZ$RWXSOOZqE%wdASFD4%*ZSp&XwSG z*%3o_0A`$iqqzYDm~sk{5VXj84wRc-)PV!!X1>rxR6vR*pPht0I{{DxLBeMQo-_^$ z(3>4til{T1LsdW7tdGfIHvtv_fu#*(bv=XiuCm?^18a5jj^~+ z2^c4Ud~(L$9Zw06dpaBVM_iJQuhD->>-Iw3eiuD8MG=oY7)4Gr3lt$ueH^?MOU*gS z=NMP)2r*VB@hU|QuCEdMfe^V$XZiWdSJB?v@4Bn`ADQJdGEujja*wfBk;6$eYKkG~V-w`u(T+zGKH1#XK=kmu3h>xb?j;Hi%*I2w0CoDxBnT{y3hI1^sAwHymWeac-ZF~ zEB%<(P+asTG<<8hQRK~)91JvdV%nGl2G&y)d2XK7529$fJa7S*DT-Y1C`?(|w?JK; zMMF-;Vu;NxfTASn@RsXKrFMD9d5*hc)Rq?`Y$y*@8;f%8?2&RpQF^E|gK^v(UHbP_ z6P}f>F@U^ut4*UxO(Af6f9(-F7dZe@V$OG-#N9hL9Td$fG~4i!XJC)<<)ji-=$q-) zAia|WH5b5mYmFR!5ji>e3@KO2E}VDo+`##+Q;Y>bEV@boXAgKyl;5#QI?+}$EMUXj#{8SoJ-O8O`k(V@U|y*je*`STp5y$VH_m2=PgzL6nkYP7?3u2R*mdfFY)n30x-@|}gCakkbxfR4T)_D8Jw@sy5_ zdso6>sxgCUB-3s)13zo`qG-z|*;vCOGA^p~C8n}z0)Ccdd(||U5%)w5PmyHnH*CiG z4bM5gCeFF@a8%5tay|HrP8FAuQ`pk)=BE&we1zES91_r(5%>1PQ5Wrgz{3?tb<~~u ziW2rmTh zl(4mDuPXw`Pk-{RYwexronRoj-;+=WdO|aEub#Pe>!$x*va(Mu7a*r`IieDhk)3B_j1D57STt6O@CRU%76~&?E z&mlK&oh=J>;Ogaz=@O*DpEa!=7JzG}UCEAQA|qX$M|tr9SWG~8{mxFAAl0o2u8)Sp zE4$a%9g*%<(^Hf9=z|~N&b>RJXi-z$ptJJ)wcwq`iN1dSu8>5YM0@PDBL`&w7r^-o zmxi%zqb$ovk0yPZzHb)p2zwF3cka1TZYBNDia($+5S$#O2~Z^4Mp{}L3b*b8$u#FW z=XY0?qNLJ`oNFlsU79}Z+=k}A6LG|+Mlm@x#aJxo7vdPYMR}$DId`o1kS_888oi>z z=WwiUpG09En_pnINXqkVjhYVJ8cpELVDJGu+tzDr{feS9i_yOClW5;5wObcs6B}CG z5#Kt{J#;FiSn(limM~eH3i7ezx#w)BI#JtjHqT;`b9~5@WuY+AvNs?n8s*L+mJ_YV zHZZI4BS#nQTMBzcF^t4)xP50aOFw2SB)}aOe036YLh#kZOdLP%e2l@7W$&Lg7lFK7 zoplMz@9BJHZ81evM#5j6qJYQz}8lSqM6?o_!!%H%%w)FB5YJtge(w2F+$9{(!7;0 zabVqpTyx8)42@sw6m05TBRVtmjy<@8cRxOkvByL^&I<)%_TGr2_h#@0ft8RwS?M9X zcCY}YTZtauE|i1(KwXmqT%NDGI*tVkdOL`Q_on0>0BahKG~>je4ofhXIg(qityTn=5SqJXEr? zT0{7qrKA)oEzH8}2lJ7cK`sWoq^D;vW7rm!m!3x^(>PzfatVDGyNx_g_TJKs{K?|@ z$hIZH0O5JDw0}Wzl0b5jn@ZYspB~73`#U~pyc@~PV4!49G*gO{ciNHJY81aGdRdr5 zu$acje&@QyTJ55~(%CRE9h26lIF`yG(}>>Q{bBX+k|9(v4$5}>Q(swRNpr1(5>iJ; z-xYLRk^yqcGyK8D;PW_B#MWo_rXf4aZZi!@ec2w=mlw&AZ__jQ{>e@@&hFx`&z^+r ze&rim3iK`cd*;lLk(>Z>0#G81s!(;V`E9FW?R$LR*yL*Q#x{iTO)F9Wh$rHhoQ|

WupF{SzJ18lmQ2yqQ4HjbH)t?5q&p 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 ZjKF&o;Q9QRQcr$;M1& literal 0 HcmV?d00001 diff --git a/media/icon.png b/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c95943cc632d9251a3ad9ff6c96b1f61fac2f8f6 GIT binary patch literal 58949 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΢QnqY8pXfZIz4- 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 Date: Wed, 21 Jun 2023 12:49:35 +0300 Subject: [PATCH 51/61] So much TODO! --- .../su/a71/tardim_ic/tardim_ic/Constants.java | 3 - .../computercraft/lua/premade/NavDash.lua | 2 + .../a71/tardim_ic/tardim_ic/Registration.java | 5 +- .../tardim_ic/mixin/JammerMixin.java | 35 +++++++- .../src/main/resources/mixins.tardim_ic.json | 3 +- README.md | 10 +-- TODO.txt | 89 +++++++++++++------ 7 files changed, 105 insertions(+), 42 deletions(-) diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java index 1789b8c..0cb4157 100644 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java @@ -2,12 +2,9 @@ package su.a71.tardim_ic.tardim_ic; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import org.apache.logging.log4j.LogManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Random; - public class Constants { public static final String MOD_ID; diff --git a/Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua b/Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua index bbd4d8d..140884c 100644 --- a/Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua +++ b/Common/src/main/resources/data/computercraft/lua/premade/NavDash.lua @@ -1,3 +1,5 @@ --[[ This is source code of my personal TARDIM Navigation Dashboard (NavDash) + + It needs a 1x2 (2 tall) monitor and a digital TARDIM interface to be available ] \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 3d3be0e..d11e342 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -12,7 +12,6 @@ import net.minecraft.core.Registry; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; -import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineBlock; import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineTileEntity; @@ -67,10 +66,10 @@ public class Registration { Exteriors.register(); // Register custom TARDIM exteriors Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new FabricItemSettings().tab(TARDIM_IC_TAB))); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new Item.Properties().tab(TARDIM_IC_TAB))); Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "food_machine"), FOOD_MACHINE); - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "food_machine"), new BlockItem(FOOD_MACHINE, new FabricItemSettings().tab(TARDIM_IC_TAB))); + Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "food_machine"), new BlockItem(FOOD_MACHINE, new Item.Properties().tab(TARDIM_IC_TAB))); Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java index 90b4eaf..129451c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java @@ -6,10 +6,13 @@ import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import dan200.computercraft.api.lua.LuaException; import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.contents.TranslatableContents; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -22,7 +25,8 @@ import static su.a71.tardim_ic.tardim_ic.Registration.PERSONAL_JAMMER; @Mixin(value = CommandLocate.class, remap = false) public class JammerMixin { -// @Inject(method="execute()V", at=@At(value = "INVOKE", target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData$Location;)V")) +// @Inject(method="execute()V", at=@At(value = "INVOKE", +// target = "Lcom/swdteam/tardim/tardim/TardimData;setTravelLocation(Lcom/swdteam/tardim/tardim/TardimData$Location;)V")) // public void execute(CallbackInfo ci) { // LOG.info("test"); //// for (ItemStack armour : player.getArmorSlots()) { @@ -32,4 +36,33 @@ public class JammerMixin { //// }; //// } // } + + @Overwrite + public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { + if (args.length == 1) { + TardimData data = TardimManager.getFromPos(pos); + if (data != null) { + if (data.hasPermission(player)) { + Player otherPlayer = player.getServer().getPlayerList().getPlayerByName(args[0]); + if (otherPlayer != null) { + for (ItemStack armour : otherPlayer.getArmorSlots()) { + if (armour.is(PERSONAL_JAMMER)) { + sendResponse(player, otherPlayer.getGameProfile().getName() + "'s location is jammed", CommandTardimBase.ResponseType.FAIL, source); + return; + } + } + data.setTravelLocation(new TardimData.Location(otherPlayer.blockPosition(), otherPlayer.level.dimension())); + sendResponse(player, "Coords locked on to " + otherPlayer.getGameProfile().getName(), CommandTardimBase.ResponseType.COMPLETE, source); + } else { + sendResponse(player, "Player does not exist", CommandTardimBase.ResponseType.FAIL, source); + } + } else { + sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); + } + } + } else { + sendResponse(player, ((CommandLocate)(Object)this).getUsage(), CommandTardimBase.ResponseType.FAIL, source); + } + + } } diff --git a/Fabric/src/main/resources/mixins.tardim_ic.json b/Fabric/src/main/resources/mixins.tardim_ic.json index d945634..1335fd3 100644 --- a/Fabric/src/main/resources/mixins.tardim_ic.json +++ b/Fabric/src/main/resources/mixins.tardim_ic.json @@ -5,7 +5,8 @@ "refmap": "refmap.tardim_ic.json", "mixins": [ "BetterFuelMapMixin", - "BetterFuelStorageMixin" + "BetterFuelStorageMixin", + "JammerMixin" ], "client": [ ], diff --git a/README.md b/README.md index 23dc7a9..c662628 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ### All of time and space, *now automated and improved*. This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim), -and adds a way to control your time (but mostly space) machine with new blocks, redstone, +and adds a way to control and manage your time (but mostly space) machine with new blocks, redstone, and even other mods like [ComputerCraft: Tweaked](https://tweaked.cc) computers or [Create](https://github.com/Creators-of-Create/Create) ### Features: @@ -18,12 +18,6 @@ TODO: Re-make this for 1.2 The possibilities are endless, the only limit is your imagination! -### Note -Due to nature of the mod **anyone** inside your TARDIM with access to a computer and this mod's peripheral -will be able to run **any** methods. There is no fix that I know of (aside from disabling any commands except "getters" like fuel info), so if you want to use this mod on your server, -please don't let untrustworthy players anywhere near your computer.\ -And another thing: the method that sets destination dimension can't check if the dimension is valid. If you cannot land just change dimension to a valid one like overworld or nether. - ### FAQ **Is this for Fabric or Forge?** @@ -34,7 +28,7 @@ And another thing: the method that sets destination dimension can't check if the **Will there be a 1.20 version and beyond?** : Right now my focus on 1.19.2, but I will try my best to move to later versions as soon as this mod is fully stable, -and dependencies are out. +and dependencies are out. The intention is to follow latest versions. **I encountered a bug or have a suggestion. What do I do?** : If you have a problem or suggestion, the best way to get them to me is through the project's Discord server. diff --git a/TODO.txt b/TODO.txt index 69557d0..b4683b0 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,30 +1,44 @@ TODO for 1.2 and beyond +re-written 21.06.23 + +NEW ==================== Blocks: - Food Dispenser - one button iterates over food types, another dispenses it at cost of some fuel - Cartridge Loader - one button to write to the cartridge, another to load information from it (Right now just location, in the future maybe other too) - Dock Station - lets you get into locations you often visit better, good tool for shop keepers as well. On RP servers could prevent liftoff. - Roundels? - Both normal and storage. -Items: - Personal Location Jammer - when worn, prevents others from locating you. Possibly add some kind of power mechanic to make it less OP - Location Cartridge - a cartridge that stores a location to later visit it with a TARDIM. Can be locked like map. Potentially add a way to write in the field. -Commands: - Quick return - set destination to previous materialisation point. + Cartridge Loader + 2 buttons, one to load information from a cartridge, another to write it. + Has a slot where when r-clicked with a cartridge inserts it/Takes it out + TARDIM Dock + Has a GUI, where you can configure: + * Name/id + * Landing facing + * White/Blacklist of users who can land + * (Potentially) Fallback id if this one is disabled + When configured, a CC method/TARDIM command can take you to it + When powered by a lever, no TARDIM can land (and potentially take off) + Food Machine + 2 buttons. One changed chosen food (hopefully shown on screen), another throws it out. + Uses a bit of fuel but you get FOOD! +Items + Personal Jammer + When worn, other players are unable to locate the user with /locate command + Location cartridge + Contains coordinates, dimension of place and date when it was written to (potentially other metadata using CC) + Can be locked like a map + Potentially can be inserted into a disk drive peripheral + Compat: - CC - add more meaningful peripherals to things like fuel tank, CREATIVE INTERFACE? - Create - Port to 0.5.1, add display sources to more things. Also look into mechanical TARDIM power-up + CC: + * Look into what other things can be improved, how to automate doc creation + * Add creative digital TARDIM interface... (maybe remove TARDIM from item name?) + * Add a craftable treasure disk with pre-installed useful programs + Create: + Update to 0.5.1, add more display sources -Mixins: - Location jammer working - Better fuel tank (More fuel sources, do not eat buckets) - Into demat for quick return mixin - Fuel tank should give off comparator output based on how full it is, and time rotor based on whether we are in flight - Potentially let name change appearance of TARDIM Controls? Code: - Make better and coherent file structure. Unify Forge and Fabric where possible. Prepare for if SWDTeam ever unify more things. + Datapack-driven way to control where a TARDIM can land and at what price. - -Achievements/Advancements: +Achievements: +(need to decide on root) "Nobody needs soup more than me" Get soup from TARDIM's food machine @@ -40,18 +54,41 @@ Achievements/Advancements: "???" Register a dock - "I prefer jelly" + "It appears to be... jammed!" + "I've lost the bleeps, I lost the sweeps, and I lost the creeps." Put on a location jammer "I will always remember..." Save (or maybe lock like a map?) a location cartridge -Crafting recipe for floppy with tardim tutorial installer -Power indicator for redstone interface +UPDATES ================ -Treasure Disk with pre-installed code that users might enjoy +Blocks: + Redstone TARDIM Interface - add powered blockstate + (TARDIM) Fuel Storage - add comparator output based on fuel (0 - 9 I think) + (TARDIM) Time Rotor - add comparator/redstone output when in flight -Datapack-driven way to control where a TARDIM can travel and at what price (For instance, for liftoff) +Code: + Add config&datapack support (e.g. disable compat, more food machine food, only getters from digital interface) + Make 1WTC fix package names on forge and further improve multi-loader structure + (so that it's not just Fabric to Forge translation at last second). + Overall some code from TARDIM: IC might make its way into TARDIM hopefully + Try to smash all TODOs and warnings +Outside appearance: + Make a proper wiki/docs with CC methods, item recipes and explanations. Maybe even technical things. + Update README and Modrinth/Curse pages + Look into re-licensing and/or making proper public facing source code + Improve Discord server -Possibly an enchantment that works same as personal jammer \ No newline at end of file +LOOK INTO ============== +Things to overall re-search +* Applications for SWD Discord moderator. Could be a path to actually getting the bloody source code access +* Making TARDIM doors sync between TARDIM and external dimension +* Some kind of CC scanner method to see the outside (and?) GUI panel that lets you see said outside (or pre-installed iso. program) + see: dev9551's isometric renderer (or pine3d) +* Advanced drive/fuel storage for interstellar travel. Like a "stores 10000 fuel but you have to use it at once" +* Change block appearance based on item name when placed (like Supplementaries) +* More Create compat: engine powered by tardim fuel and way to "wind up" the TARDIM +* (Likely only if access to TARDIM source) Weblate for localisation +* Possibly an enchantment that works same as personal jammer \ No newline at end of file From b84144d3aac6e7b455592c59d99c496454ee4864 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Mon, 26 Jun 2023 21:29:21 +0300 Subject: [PATCH 52/61] Minor tweaks --- .../java/su/a71/tardim_ic/tardim_ic/Constants.java | 6 ++---- Fabric/build.gradle | 2 +- .../tardim_ic/tardim_ic/blocks/roundels/roundels.txt | 5 +---- .../display_source/cartridge_loader/temp_ideas.txt | 3 +++ .../create_compat/display_source/dock/temp_ideas.txt | 5 +++++ .../fuel_storage/FuelLevelDisplaySource.java | 7 ++++--- .../fuel_storage/RequiredFuelDisplaySource.java | 8 ++++---- .../display_source/scanner/temp_ideas.txt | 5 +++++ .../display_source/time_rotor/temp_ideas.txt | 5 +++++ .../tardim_ic/registration/ComputerCraftCompat.java | 1 + .../tardim_ic/tardim_ic/registration/CreateCompat.java | 9 ++++----- .../tardim_ic/tardim_ic/registration/Exteriors.java | 1 - Fabric/src/main/resources/fabric.mod.json | 3 ++- .../java/su/a71/tardim_ic/tardim_ic/Registration.java | 10 +++++----- .../su/a71/tardim_ic/tardim_ic/TardimInControl.java | 3 --- README.md | 8 ++++---- SWD_MOMENT.txt | 3 ++- TODO.txt | 3 ++- 18 files changed, 50 insertions(+), 37 deletions(-) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/cartridge_loader/temp_ideas.txt create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/dock/temp_ideas.txt create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/scanner/temp_ideas.txt create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/time_rotor/temp_ideas.txt diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java index 0cb4157..7ad9f1f 100644 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java +++ b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java @@ -7,14 +7,12 @@ import org.slf4j.LoggerFactory; public class Constants { - public static final String MOD_ID; - public static final String MOD_NAME; + public static final String MOD_ID = "tardim_ic"; + public static final String MOD_NAME = "TARDIM: In Control"; public static final Logger LOG; public static final Gson GSON; static { - MOD_ID = "tardim_ic"; - MOD_NAME = "TARDIM: In Control"; LOG = LoggerFactory.getLogger(MOD_NAME); GSON = (new GsonBuilder()).setPrettyPrinting().create(); } diff --git a/Fabric/build.gradle b/Fabric/build.gradle index 15c4d4b..5196415 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -27,7 +27,7 @@ dependencies { modCompileOnly "curse.maven:cc-restitched-462672:3908334" // Create! - modCompileOnly "curse.maven:create-fabric-624165:4537370" + modCompileOnly "curse.maven:create-fabric-624165:4597892" } loom { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt index 713482e..b8da5b9 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt @@ -1,4 +1 @@ -"Base:" - * Quartz - * Deepslate - * Stone? \ No newline at end of file +Do we need more roundels? \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/cartridge_loader/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/cartridge_loader/temp_ideas.txt new file mode 100644 index 0000000..71ed5da --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/cartridge_loader/temp_ideas.txt @@ -0,0 +1,3 @@ +Display sources for the cartridge loader + +* Inserted X/Y/Z/Dimension \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/dock/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/dock/temp_ideas.txt new file mode 100644 index 0000000..90d344c --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/dock/temp_ideas.txt @@ -0,0 +1,5 @@ +Display sources for the docking station: + +* Owner of docked TARDIM +* Lock status +* Docked TARDIM's companion list \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java index 43bc8fc..1820305 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java @@ -1,7 +1,8 @@ package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; -import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; -import com.simibubi.create.content.logistics.block.display.source.PercentOrProgressBarDisplaySource; + +import com.simibubi.create.content.redstone.displayLink.DisplayLinkContext; +import com.simibubi.create.content.redstone.displayLink.source.PercentOrProgressBarDisplaySource; import com.simibubi.create.foundation.gui.ModularGuiLineBuilder; import com.simibubi.create.foundation.utility.Lang; @@ -22,7 +23,7 @@ public class FuelLevelDisplaySource extends PercentOrProgressBarDisplaySource { if (context.level() != context.level().getServer().getLevel(TRDDimensions.TARDIS)) { return null; } - BlockEntity te = context.getSourceTE(); + BlockEntity te = context.getSourceBlockEntity(); if (!(te instanceof TileEntityFuelStorage fuelStorage)) return null; TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos()); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java index 056c2a5..31fcd5c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java @@ -1,8 +1,8 @@ package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; -import com.simibubi.create.content.logistics.block.display.DisplayLinkContext; -import com.simibubi.create.content.logistics.block.display.source.NumericSingleLineDisplaySource; -import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats; +import com.simibubi.create.content.redstone.displayLink.DisplayLinkContext; +import com.simibubi.create.content.redstone.displayLink.source.NumericSingleLineDisplaySource; +import com.simibubi.create.content.redstone.displayLink.target.DisplayTargetStats; import com.simibubi.create.foundation.utility.Components; import com.swdteam.tardim.common.init.TRDDimensions; @@ -19,7 +19,7 @@ public class RequiredFuelDisplaySource extends NumericSingleLineDisplaySource { protected MutableComponent provideLine(DisplayLinkContext displayLinkContext, DisplayTargetStats displayTargetStats) { if (displayLinkContext.level() != displayLinkContext.level().getServer().getLevel(TRDDimensions.TARDIS)) return null; - BlockEntity te = displayLinkContext.getSourceTE(); + BlockEntity te = displayLinkContext.getSourceBlockEntity(); if (!(te instanceof TileEntityFuelStorage fuelStorage)) return null; TardimData data = TardimManager.getFromPos(fuelStorage.getBlockPos()); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/scanner/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/scanner/temp_ideas.txt new file mode 100644 index 0000000..7654e53 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/scanner/temp_ideas.txt @@ -0,0 +1,5 @@ +Display sources for the scanner: + +* Owner name +* Companion list +* Get current TARDIM skin \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/time_rotor/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/time_rotor/temp_ideas.txt new file mode 100644 index 0000000..bb8b488 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/time_rotor/temp_ideas.txt @@ -0,0 +1,5 @@ +Display sources for the time rotor: + +* Both current and destination - X/Y/Z/Dimension +* Flight status YES/NO +* \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java index 52dc61e..dd634cd 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java @@ -27,6 +27,7 @@ public class ComputerCraftCompat { public static void register() { Constants.LOG.info("Loaded ComputerCraft compatibility!"); + Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB))); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java index d5d4222..120d1a1 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java @@ -1,6 +1,7 @@ package su.a71.tardim_ic.tardim_ic.registration; -import com.simibubi.create.content.logistics.block.display.AllDisplayBehaviours; + +import com.simibubi.create.content.redstone.displayLink.AllDisplayBehaviours; import net.minecraft.resources.ResourceLocation; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.FuelLevelDisplaySource; @@ -12,10 +13,8 @@ public class CreateCompat { public static void register() { Constants.LOG.info("Loaded Create compatibility!"); -// Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), DIGITAL_TARDIM_INTERFACE); -// Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "digital_tardim_interface"), new BlockItem(DIGITAL_TARDIM_INTERFACE, new FabricItemSettings().tab(Registration.TARDIM_IC_TAB))); - AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_storage_display_source"), new FuelLevelDisplaySource()), TILE_FUEL_STORAGE); - AllDisplayBehaviours.assignTile(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_required_display_source"), new RequiredFuelDisplaySource()), TILE_FUEL_STORAGE); + AllDisplayBehaviours.assignBlockEntity(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_storage_display_source"), new FuelLevelDisplaySource()), TILE_FUEL_STORAGE); + AllDisplayBehaviours.assignBlockEntity(AllDisplayBehaviours.register(new ResourceLocation(Constants.MOD_ID, "fuel_required_display_source"), new RequiredFuelDisplaySource()), TILE_FUEL_STORAGE); } } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java index 59d8352..dbf7e0e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java @@ -52,6 +52,5 @@ public class Exteriors { DOOR_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_door_soviet"), new BlockTardimDoors(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); ROOF_SOVIET_CHRONOBOX = Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "tardim_roof_soviet"), new BlockTardimRoof(FabricBlockSettings.of(Material.WOOD).sounds(SoundType.WOOD).strength(-1.0F, 3600000.0F).noLootTable().noOcclusion())); TARDIM_TYPE_SOVIET = new TardimRegistry.TardimBuilder(new ResourceLocation(Constants.MOD_ID, "tardim_soviet_chronobox"), "TARDIM Soviet Chronobox", ROOF_SOVIET_CHRONOBOX, DOOR_SOVIET_CHRONOBOX, FLOOR_SOVIET_CHRONOBOX); - } } diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index ac004f4..38fb260 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -34,7 +34,8 @@ }, "suggests": { - "computercraft": ">=1.101.0" + "computercraft": ">=1.101.0", + "create": ">=0.5.1" } } \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 2f96cd0..0d3177d 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -26,10 +26,10 @@ import java.util.function.Supplier; public class Registration { - public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, TardimInControl.MODID); - public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TardimInControl.MODID); - public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TardimInControl.MODID); - public static final DeferredRegister SOUNDS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, TardimInControl.MODID); + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Constants.MOD_ID); + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, Constants.MOD_ID); + public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, Constants.MOD_ID); + public static final DeferredRegister SOUNDS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, Constants.MOD_ID); public static final CreativeModeTab TARDIM_IC_TAB = new CreativeModeTab("tardim_ic") { @Override @@ -52,7 +52,7 @@ public class Registration { public static final RegistryObject> REDSTONE_TARDIM_INPUT_TILEENTITY = Registration.BLOCK_ENTITIES.register("redstone_tardim_input", () -> new BlockEntityType<>(RedstoneInputTileEntity::new, Sets.newHashSet(REDSTONE_TARDIM_INPUT.get()), null)); // Cloister bell - public static final RegistryObject CLOISTER_SOUND = SOUNDS.register("cloister", () -> new SoundEvent(new ResourceLocation(TardimInControl.MODID, "cloister"))); + public static final RegistryObject CLOISTER_SOUND = SOUNDS.register("cloister", () -> new SoundEvent(new ResourceLocation(Constants.MOD_ID, "cloister"))); // Register our stuff public static void register() { diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java index 10c6b81..170718f 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java @@ -10,9 +10,6 @@ import com.swdteam.tardim.TardimSaveHandler; @Mod(Constants.MOD_ID) public class TardimInControl { - // Our mod id - public static final String MODID = Constants.MOD_ID; - public TardimInControl() { Registration.register(); diff --git a/README.md b/README.md index c662628..d2bf2fa 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This mod is an addon for the [TARDIM mod](https://www.curseforge.com/minecraft/mc-mods/tardim), and adds a way to control and manage your time (but mostly space) machine with new blocks, redstone, -and even other mods like [ComputerCraft: Tweaked](https://tweaked.cc) computers or [Create](https://github.com/Creators-of-Create/Create) +and even other mods like [ComputerCraft: Tweaked](https://tweaked.cc) or [Create](https://github.com/Creators-of-Create/Create) ### Features: TODO: Re-make this for 1.2 @@ -27,13 +27,13 @@ The possibilities are endless, the only limit is your imagination! : Sure, as long as you don't claim the mod as your own. A link to this mod's page would be appreciated too. **Will there be a 1.20 version and beyond?** -: Right now my focus on 1.19.2, but I will try my best to move to later versions as soon as this mod is fully stable, +: As of v1.2 my focus on 1.19.2, but I will try my best to move to later versions as soon as this mod is fully stable, and dependencies are out. The intention is to follow latest versions. **I encountered a bug or have a suggestion. What do I do?** : If you have a problem or suggestion, the best way to get them to me is through the project's Discord server. -**Do I need to install ComputerCraft or Create for this mod?** +**Do I need to install things like ComputerCraft or Create for this mod?** : Nope! While I highly suggest you do (because digital interface is in my opinion the star of the show), you can enjoy a lot of TARDIM: In Control's features with only TARDIM installed. -If you ever decide to add other optional dependencies, the relevant blocks will become available! \ No newline at end of file +If you ever decide to add other optional dependencies, the relevant blocks will become available and craftable! \ No newline at end of file diff --git a/SWD_MOMENT.txt b/SWD_MOMENT.txt index addca91..e3487d8 100644 --- a/SWD_MOMENT.txt +++ b/SWD_MOMENT.txt @@ -7,9 +7,10 @@ public ResourceLocation getFabricId() { return new ResourceLocation("tutorial", "tardim_dimension_lookup"); } +5.1 Forge's MANIFEST.MF too! +6. Panel buttons might still be broken on 1.2.2 1.19.2 Andrew71's proposals: - 1. Quick-return command 2. add support for far more fuel sources via AbstractFurnaceBlockEntity.getFuel() on top of built-in TARDIM method 3. Unify package names on Forge and Fabric \ No newline at end of file diff --git a/TODO.txt b/TODO.txt index b4683b0..e0e8cc1 100644 --- a/TODO.txt +++ b/TODO.txt @@ -68,7 +68,6 @@ Blocks: Redstone TARDIM Interface - add powered blockstate (TARDIM) Fuel Storage - add comparator output based on fuel (0 - 9 I think) (TARDIM) Time Rotor - add comparator/redstone output when in flight - Code: Add config&datapack support (e.g. disable compat, more food machine food, only getters from digital interface) Make 1WTC fix package names on forge and further improve multi-loader structure @@ -80,6 +79,8 @@ Outside appearance: Update README and Modrinth/Curse pages Look into re-licensing and/or making proper public facing source code Improve Discord server + Improve/Change icon + Make background image for modrinth LOOK INTO ============== Things to overall re-search From c267275ce763dca60f871126241a9649c73b84a6 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Tue, 18 Jul 2023 22:21:18 +0300 Subject: [PATCH 53/61] Sides --- .../assets/tardim_ic/blockstates/tardim_dock.json | 7 ++++--- .../tardim_ic/models/block/digital_tardim_interface.json | 2 +- .../tardim_ic/models/block/redstone_tardim_input.json | 2 +- .../assets/tardim_ic/models/block/tardim_dock.json | 2 +- .../data/computercraft/lua/premade}/basicTest.lua | 0 5 files changed, 7 insertions(+), 6 deletions(-) rename {scripts => Common/src/main/resources/data/computercraft/lua/premade}/basicTest.lua (100%) diff --git a/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json index 8cda046..39f44ce 100644 --- a/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json +++ b/Common/src/main/resources/assets/tardim_ic/blockstates/tardim_dock.json @@ -1,7 +1,8 @@ { "variants": { - "": { - "model": "tardim_ic:block/tardim_dock" - } + "facing=north": { "model": "tardim_ic:block/tardim_dock"}, + "facing=east": { "model": "tardim_ic:block/tardim_dock", "y": 90}, + "facing=south": { "model": "tardim_ic:block/tardim_dock", "y": 180}, + "facing=west": { "model": "tardim_ic:block/tardim_dock", "y": 270} } } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json index d0300c3..424c48e 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json @@ -1,5 +1,5 @@ { - "credit": "Made by karoter2 with Blockbench", + "credit": "Made by karoter2 (Feulim)", "parent": "digital_tardim_interface", "texture_size": [64, 64], "textures": { diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json index ac65f2f..4c58cdf 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json @@ -1,5 +1,5 @@ { - "credit": "Made by karoter2 with Blockbench", + "credit": "Made by karoter2 (Feulim)", "parent": "block/cube_all", "ambientocclusion": false, "textures": { diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json index 3ae2da8..b9be28f 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json @@ -1,5 +1,5 @@ { - "credit": "Made by karoter2 with Blockbench", + "credit": "Made by karoter2 (Feulim)", "texture_size": [64, 64], "textures": { "1": "tardim_ic:blocks/tardim_dock", diff --git a/scripts/basicTest.lua b/Common/src/main/resources/data/computercraft/lua/premade/basicTest.lua similarity index 100% rename from scripts/basicTest.lua rename to Common/src/main/resources/data/computercraft/lua/premade/basicTest.lua From 8730ae91a0a065a1da1135eb9410766f5a183baa Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Thu, 27 Jul 2023 13:29:02 +0300 Subject: [PATCH 54/61] README.md --- .../java/su/a71/tardim_ic/tardim_ic/Registration.java | 3 +-- README.md | 9 ++++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java index 0d3177d..a54e62a 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java @@ -1,7 +1,7 @@ package su.a71.tardim_ic.tardim_ic; import com.google.common.collect.Sets; -import net.minecraft.core.Registry; + import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.item.BlockItem; @@ -20,7 +20,6 @@ import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; -import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import java.util.function.Supplier; diff --git a/README.md b/README.md index d2bf2fa..56facf7 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,9 @@ and adds a way to control and manage your time (but mostly space) machine with n and even other mods like [ComputerCraft: Tweaked](https://tweaked.cc) or [Create](https://github.com/Creators-of-Create/Create) ### Features: -TODO: Re-make this for 1.2 * Digital TARDIM interface: ComputerCraft peripheral that lets you control a TARDIM using computers! Full list of methods is available in the [Javadoc](http://andrey71.me/TARDIM-ic-docs/su/a71/tardim_ic/tardim_ic/DigitalInterfacePeripheral.html) (Sorry for that, this is the best auto-generated docs I could find for now). The peripheral supports almost all commands that the TARDIM computer panel has. * Redstone TARDIM Input: New block that lets you execute a TARDIM command with the power of redstone! After saving a command, this block executes it every time it gets powered by redstone -* *This is just the beginning, there are more features to come!* +* **Important:** The next major version will add tons of features, these are a fraction of what is to come. ### Example use-cases * Make a dashboard to monitor fuel levels, current location, and other information on a screen in a nice way. @@ -26,9 +25,9 @@ The possibilities are endless, the only limit is your imagination! **Can I use this in my modpack?** : Sure, as long as you don't claim the mod as your own. A link to this mod's page would be appreciated too. -**Will there be a 1.20 version and beyond?** -: As of v1.2 my focus on 1.19.2, but I will try my best to move to later versions as soon as this mod is fully stable, -and dependencies are out. The intention is to follow latest versions. +**Will there be a 1.20.1 version and beyond?** +: I am in the process of moving to 1.20, but need TARDIM to update to that version first. Create mod's fabric port also affects the process. +Next major version, v1.2, will likely not be on 1.19.2. The intention is to follow latest versions. **I encountered a bug or have a suggestion. What do I do?** : If you have a problem or suggestion, the best way to get them to me is through the project's Discord server. From 987a18c36065fcbbe0eb96b66906143fb42c15ba Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Sat, 29 Jul 2023 21:07:20 +0300 Subject: [PATCH 55/61] Begin 1.20 port (god this is horrible) --- CHANGELOG.txt | 2 + Common/build.gradle | 56 +- .../main/java/su/a71/tardim_ic/Constants.java | 11 + .../java/su/a71/tardim_ic/Registration.java | 8 + .../su/a71/tardim_ic/platform/Services.java | 25 + .../platform/services/IPlatformHelper.java | 38 + .../su/a71/tardim_ic/tardim_ic/Constants.java | 19 - .../{tardim_ic => }/utils/FakePlayer.java | 12 +- .../resources/{ => assets/tardim_ic}/icon.png | Bin .../block/digital_tardim_interface.json | 4 +- .../tardim_ic/models/block/food_machine.json | 4 +- .../models/block/redstone_tardim_input.json | 6 +- .../tardim_ic/models/block/tardim_dock.json | 4 +- .../digital_tardim_interface.png | Bin .../{blocks => block}/food_machine.png | Bin .../redstone_input.mcmeta} | 0 .../redstone_input.png} | Bin .../textures/block/redstone_input_lit.mcmeta | 7 + .../textures/block/redstone_input_lit.png | Bin 0 -> 923 bytes .../{blocks => block}/tardim_dock.png | Bin .../tardim_soviet_chronobox.png | Bin Common/src/main/resources/iconCurseForge.png | Bin 121412 -> 0 bytes Common/src/main/resources/pack.mcmeta | 10 +- .../src/main/resources/tardim_ic.mixins.json | 20 + Fabric/build.gradle | 61 +- .../com/example/examplemod/ExampleMod.java | 18 + .../examplemod/mixin/MixinTitleScreen.java | 20 + .../platform/FabricPlatformHelper.java | 24 + .../{tardim_ic => }/TardimInControl.java | 4 +- .../blocks/food_machine/FoodMachineBlock.java | 19 +- .../food_machine/FoodMachineTileEntity.java | 4 +- .../redstone_input/RedstoneInputBlock.java | 2 +- .../RedstoneInputTileEntity.java | 2 +- .../blocks/roundels/roundels.txt | 0 .../command/CommandCloisterBell.java | 2 +- .../command/CommandListBiomes.java | 2 +- .../command/CommandListDimensions.java | 2 +- .../command/CommandModemTransmit.java | 2 +- .../command/CommandSender.java | 2 +- .../FakeTardimPeripheralTileEntity.java | 2 +- .../ITardimPeripheralTileEntity.java | 2 +- .../TardimPeripheralProvider.java | 12 +- .../DigitalInterfaceBlock.java | 2 +- .../DigitalInterfaceTileEntity.java | 2 +- .../DigitalInterfacePeripheral.java | 13 +- .../peripherals/FuelStoragePeripheral.java | 4 +- .../peripherals/TardimPeripheral.java | 4 +- .../peripherals/TardimScannerPeripheral.java | 7 +- .../peripherals/TimeRotorPeripheral.java | 4 +- .../cartridge_loader/temp_ideas.txt | 0 .../display_source/dock/temp_ideas.txt | 0 .../fuel_storage/FuelLevelDisplaySource.java | 2 +- .../RequiredFuelDisplaySource.java | 2 +- .../display_source/scanner/temp_ideas.txt | 0 .../display_source/time_rotor/temp_ideas.txt | 0 .../jammer/PersonalJammerMaterial.java | 2 +- .../mixin/BetterFuelMapMixin.java | 21 +- .../mixin/BetterFuelStorageMixin.java | 5 +- .../{tardim_ic => }/mixin/JammerMixin.java | 2 +- .../platform/FabricPlatformHelper.java | 24 + .../SovietChronoboxTileEntity.java | 2 +- .../a71/tardim_ic/tardim_ic/Registration.java | 78 -- .../tardim_ic/registration/CommandInit.java | 6 +- .../registration/ComputerCraftCompat.java | 8 +- .../tardim_ic/registration/CreateCompat.java | 4 +- .../tardim_ic/registration/Exteriors.java | 2 +- ...amplemod.platform.services.IPlatformHelper | 1 + Fabric/src/main/resources/fabric.mod.json | 49 +- .../src/main/resources/mixins.tardim_ic.json | 17 - .../resources/tardim_ic.fabric.mixins.json | 18 + Forge/build.gradle | 77 +- .../com/example/examplemod/ExampleMod.java | 19 + .../examplemod/mixin/MixinTitleScreen.java | 20 + .../platform/ForgePlatformHelper.java | 26 + ...dimInControl.java => TardiminControl.java} | 7 +- .../platform/ForgePlatformHelper.java | 26 + .../a71/tardim_ic/tardim_ic/Registration.java | 64 -- .../command/CommandCloisterBell.java | 59 -- .../tardim_ic/command/CommandListBiomes.java | 54 -- .../command/CommandListDimensions.java | 47 - .../command/CommandModemTransmit.java | 69 -- .../tardim_ic/command/CommandSender.java | 40 - .../DigitalInterfaceBlock.java | 27 - .../DigitalInterfacePeripheral.java | 887 ------------------ .../DigitalInterfaceTileEntity.java | 118 --- .../FakeDigitalInterfaceTileEntity.java | 89 -- .../IDigitalInterfaceEntity.java | 12 - .../tardim_ic/tardim_ic/mixin/Commands.java | 18 - .../redstone_input/RedstoneInputBlock.java | 102 -- .../RedstoneInputTileEntity.java | 41 - .../tardim_ic/registration/CommandInit.java | 17 - Forge/src/main/resources/META-INF/mods.toml | 60 +- ...amplemod.platform.services.IPlatformHelper | 1 + .../resources/examplemod.forge.mixins.json | 17 + .../src/main/resources/mixins.tardim_ic.json | 15 - SWD_MOMENT.txt | 1 - TODO | 5 + TODO.txt | 95 -- build.gradle | 39 +- gradle.properties | 14 +- gradle/wrapper/gradle-wrapper.jar | Bin 59536 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 275 +++--- gradlew.bat | 14 +- settings.gradle | 15 +- 105 files changed, 757 insertions(+), 2300 deletions(-) create mode 100644 Common/src/main/java/su/a71/tardim_ic/Constants.java create mode 100644 Common/src/main/java/su/a71/tardim_ic/Registration.java create mode 100644 Common/src/main/java/su/a71/tardim_ic/platform/Services.java create mode 100644 Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java delete mode 100644 Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java rename Common/src/main/java/su/a71/tardim_ic/{tardim_ic => }/utils/FakePlayer.java (73%) rename Common/src/main/resources/{ => assets/tardim_ic}/icon.png (100%) rename Common/src/main/resources/assets/tardim_ic/textures/{blocks => block}/digital_tardim_interface.png (100%) rename Common/src/main/resources/assets/tardim_ic/textures/{blocks => block}/food_machine.png (100%) rename Common/src/main/resources/assets/tardim_ic/textures/{blocks/red_contr.png.mcmeta => block/redstone_input.mcmeta} (100%) rename Common/src/main/resources/assets/tardim_ic/textures/{blocks/red_contr.png => block/redstone_input.png} (100%) create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.mcmeta create mode 100644 Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.png rename Common/src/main/resources/assets/tardim_ic/textures/{blocks => block}/tardim_dock.png (100%) rename Common/src/main/resources/assets/tardim_ic/textures/{blocks => block}/tardim_soviet_chronobox.png (100%) delete mode 100644 Common/src/main/resources/iconCurseForge.png create mode 100644 Common/src/main/resources/tardim_ic.mixins.json create mode 100644 Fabric/src/main/java/com/example/examplemod/ExampleMod.java create mode 100644 Fabric/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java create mode 100644 Fabric/src/main/java/com/example/examplemod/platform/FabricPlatformHelper.java rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/TardimInControl.java (82%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/blocks/food_machine/FoodMachineBlock.java (81%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/blocks/food_machine/FoodMachineTileEntity.java (91%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/blocks/redstone_input/RedstoneInputBlock.java (98%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/blocks/redstone_input/RedstoneInputTileEntity.java (94%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/blocks/roundels/roundels.txt (100%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/command/CommandCloisterBell.java (98%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/command/CommandListBiomes.java (98%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/command/CommandListDimensions.java (97%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/command/CommandModemTransmit.java (98%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/command/CommandSender.java (95%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/FakeTardimPeripheralTileEntity.java (97%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/ITardimPeripheralTileEntity.java (89%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/TardimPeripheralProvider.java (73%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java (91%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java (85%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/peripherals/DigitalInterfacePeripheral.java (98%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/peripherals/FuelStoragePeripheral.java (93%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/peripherals/TardimPeripheral.java (94%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/peripherals/TardimScannerPeripheral.java (95%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/computercraft_compat/peripherals/TimeRotorPeripheral.java (96%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic/create_compat => }/display_source/cartridge_loader/temp_ideas.txt (100%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic/create_compat => }/display_source/dock/temp_ideas.txt (100%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic/create_compat => }/display_source/fuel_storage/FuelLevelDisplaySource.java (96%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic/create_compat => }/display_source/fuel_storage/RequiredFuelDisplaySource.java (96%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic/create_compat => }/display_source/scanner/temp_ideas.txt (100%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic/create_compat => }/display_source/time_rotor/temp_ideas.txt (100%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/jammer/PersonalJammerMaterial.java (97%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/mixin/BetterFuelMapMixin.java (72%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/mixin/BetterFuelStorageMixin.java (94%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/mixin/JammerMixin.java (98%) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/platform/FabricPlatformHelper.java rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic => }/soviet_chronobox/SovietChronoboxTileEntity.java (90%) delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java create mode 100644 Fabric/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper delete mode 100644 Fabric/src/main/resources/mixins.tardim_ic.json create mode 100644 Fabric/src/main/resources/tardim_ic.fabric.mixins.json create mode 100644 Forge/src/main/java/com/example/examplemod/ExampleMod.java create mode 100644 Forge/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java create mode 100644 Forge/src/main/java/com/example/examplemod/platform/ForgePlatformHelper.java rename Forge/src/main/java/su/a71/tardim_ic/{tardim_ic/TardimInControl.java => TardiminControl.java} (64%) create mode 100644 Forge/src/main/java/su/a71/tardim_ic/platform/ForgePlatformHelper.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java delete mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java create mode 100644 Forge/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper create mode 100644 Forge/src/main/resources/examplemod.forge.mixins.json delete mode 100644 Forge/src/main/resources/mixins.tardim_ic.json create mode 100644 TODO delete mode 100644 TODO.txt diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 3afeadc..9265a1a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,5 @@ +TODO: Rewrite for 1.20 + Added list-biomes and list-dimensions TARDIM commands + Corresponding ComputerCraft methods This is a community-requested QOL feature that lets users scroll through available biomes and, with lua methods, make advanced navigation dashboards even easier. diff --git a/Common/build.gradle b/Common/build.gradle index 16f36a0..4b3e231 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -1,66 +1,34 @@ plugins { + id 'idea' id 'java' - id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' id 'maven-publish' + id 'org.spongepowered.gradle.vanilla' +} +base { + archivesName = "${mod_name}-common-${minecraft_version}" } - -archivesBaseName = "${mod_name}-common-${minecraft_version}" - minecraft { version(minecraft_version) - runs { - if (project.hasProperty('common_runs_enabled') ? project.findProperty('common_runs_enabled').toBoolean() : true) { - - server(project.hasProperty('common_server_run_name') ? project.findProperty('common_server_run_name') : 'vanilla_server') { - workingDirectory(this.file("run")) - } - client(project.hasProperty('common_client_run_name') ? project.findProperty('common_client_run_name') : 'vanilla_client') { - workingDirectory(this.file("run")) - } - } - } -} - -repositories { - maven { - url "https://cursemaven.com" - content { - includeGroup "curse.maven" - } + if(file("src/main/resources/${mod_id}.accesswidener").exists()){ + accessWideners(file("src/main/resources/${mod_id}.accesswidener")) } } dependencies { - compileOnly group:'org.spongepowered', name:'mixin', version:'0.8.5' - implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' + compileOnly group:'org.spongepowered', name:'mixin', version:'0.8.5' + implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' - // CC: R and TARDIM - //implementation("curse.maven:cc-restitched-462672:3908334") - //compileOnly("org.squiddev:cc-tweaked-1.19.1:${cc_version}") - //compileOnly("curse.maven:tardim-531315:4453925") - //implementation ("org.squiddev:cc-tweaked-1.19.1:${cc_version}") -} - -processResources { - - def buildProps = project.properties.clone() - - filesMatching(['pack.mcmeta']) { - - expand buildProps - } + // ComputerCraft + compileOnly("cc.tweaked:cc-tweaked-$minecraft_version-common-api:$cc_version") } publishing { publications { mavenJava(MavenPublication) { - groupId project.group - artifactId project.archivesBaseName - version project.version + artifactId base.archivesName.get() from components.java } } - repositories { maven { url "file://" + System.getenv("local_maven") diff --git a/Common/src/main/java/su/a71/tardim_ic/Constants.java b/Common/src/main/java/su/a71/tardim_ic/Constants.java new file mode 100644 index 0000000..2866edb --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/Constants.java @@ -0,0 +1,11 @@ +package su.a71.tardim_ic; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Constants { + + public static final String MOD_ID = "tardim_ic"; + public static final String MOD_NAME = "TARDIM: In Control"; + public static final Logger LOG = LoggerFactory.getLogger(MOD_NAME); +} \ No newline at end of file diff --git a/Common/src/main/java/su/a71/tardim_ic/Registration.java b/Common/src/main/java/su/a71/tardim_ic/Registration.java new file mode 100644 index 0000000..690fc4c --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/Registration.java @@ -0,0 +1,8 @@ +package su.a71.tardim_ic; + +public class Registration { + + public static void register() { + + } +} diff --git a/Common/src/main/java/su/a71/tardim_ic/platform/Services.java b/Common/src/main/java/su/a71/tardim_ic/platform/Services.java new file mode 100644 index 0000000..9d04e24 --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/platform/Services.java @@ -0,0 +1,25 @@ +package su.a71.tardim_ic.platform; + +import com.example.examplemod.Constants; +import su.a71.tardim_ic.platform.services.IPlatformHelper; + +import java.util.ServiceLoader; + +public class Services { + + // Platform helper that lets us do stuff for Forge/Fabric while being in Common + public static final IPlatformHelper PLATFORM = load(IPlatformHelper.class); + + // This code is used to load a service for the current environment. Your implementation of the service must be defined + // manually by including a text file in META-INF/services named with the fully qualified class name of the service. + // Inside the file you should write the fully qualified class name of the implementation to load for the platform. For + // example our file on Forge points to ForgePlatformHelper while Fabric points to FabricPlatformHelper. + public static T load(Class clazz) { + + final T loadedService = ServiceLoader.load(clazz) + .findFirst() + .orElseThrow(() -> new NullPointerException("Failed to load service for " + clazz.getName())); + Constants.LOG.debug("Loaded {} for service {}", loadedService, clazz); + return loadedService; + } +} \ No newline at end of file diff --git a/Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java b/Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java new file mode 100644 index 0000000..e453066 --- /dev/null +++ b/Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java @@ -0,0 +1,38 @@ +package su.a71.tardim_ic.platform.services; + +public interface IPlatformHelper { + + /** + * Gets the name of the current platform + * + * @return The name of the current platform. + */ + String getPlatformName(); + + /** + * Checks if a mod with the given id is loaded. + * + * @param modId The mod to check if it is loaded. + * @return True if the mod is loaded, false otherwise. + */ + boolean isModLoaded(String modId); + + /** + * Check if the game is currently in a development environment. + * + * @return True if in a development environment, false otherwise. + */ + boolean isDevelopmentEnvironment(); + + /** + * Gets the name of the environment type as a string. + * + * @return The name of the environment type. + */ + default String getEnvironmentName() { + + return isDevelopmentEnvironment() ? "development" : "production"; + } + + // TODO: Add registration stuff here? +} \ No newline at end of file diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java b/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java deleted file mode 100644 index 7ad9f1f..0000000 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/Constants.java +++ /dev/null @@ -1,19 +0,0 @@ -package su.a71.tardim_ic.tardim_ic; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class Constants { - - public static final String MOD_ID = "tardim_ic"; - public static final String MOD_NAME = "TARDIM: In Control"; - public static final Logger LOG; - public static final Gson GSON; - - static { - LOG = LoggerFactory.getLogger(MOD_NAME); - GSON = (new GsonBuilder()).setPrettyPrinting().create(); - } -} \ No newline at end of file diff --git a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java b/Common/src/main/java/su/a71/tardim_ic/utils/FakePlayer.java similarity index 73% rename from Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java rename to Common/src/main/java/su/a71/tardim_ic/utils/FakePlayer.java index c55aabc..c37a7d9 100644 --- a/Common/src/main/java/su/a71/tardim_ic/tardim_ic/utils/FakePlayer.java +++ b/Common/src/main/java/su/a71/tardim_ic/utils/FakePlayer.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.utils; +package su.a71.tardim_ic.utils; import com.mojang.authlib.GameProfile; import net.minecraft.core.BlockPos; @@ -7,14 +7,18 @@ import net.minecraft.world.level.Level; import java.util.UUID; +/** + * This class is used whenever we need a player for a function but cannot get one + * (i.g we are on server side and need to execute TARDIM command) + */ public class FakePlayer extends Player { public FakePlayer(Level lvl, BlockPos blockPos) { - super(lvl, blockPos, 0, new GameProfile(UUID.randomUUID(), "FakePlayer_tardimic"), null); + super(lvl, blockPos, 0, new GameProfile(UUID.randomUUID(), "FakePlayer_tardimic")); } public FakePlayer(Level lvl, BlockPos blockPos, UUID id) { - super(lvl, blockPos, 0, new GameProfile(id, "FakePlayer_tardimic"), null); + super(lvl, blockPos, 0, new GameProfile(id, "FakePlayer_tardimic")); } @@ -28,5 +32,3 @@ public class FakePlayer extends Player { return false; } } - - diff --git a/Common/src/main/resources/icon.png b/Common/src/main/resources/assets/tardim_ic/icon.png similarity index 100% rename from Common/src/main/resources/icon.png rename to Common/src/main/resources/assets/tardim_ic/icon.png diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json index 424c48e..490fd9d 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json @@ -3,8 +3,8 @@ "parent": "digital_tardim_interface", "texture_size": [64, 64], "textures": { - "1": "tardim_ic:blocks/digital_tardim_interface", - "particle": "tardim_ic:blocks/digital_tardim_interface" + "1": "tardim_ic:block/digital_tardim_interface", + "particle": "tardim_ic:block/digital_tardim_interface" }, "elements": [ { diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json b/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json index c4b5c76..7cbaf76 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/food_machine.json @@ -2,8 +2,8 @@ "credit": "Made by karoter2 (Feulim)", "texture_size": [128, 128], "textures": { - "0": "tardim_ic:blocks/food_machine", - "particle": "tardim_ic:blocks/food_machine" + "0": "tardim_ic:block/food_machine", + "particle": "tardim_ic:block/food_machine" }, "elements": [ { diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json index 4c58cdf..2068e27 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json @@ -3,9 +3,9 @@ "parent": "block/cube_all", "ambientocclusion": false, "textures": { - "1": "tardim_ic:blocks/red_contr", - "2": "tardim_ic:blocks/red_contr2", - "particle": "tardim_ic:blocks/red_contr" + "1": "tardim_ic:block/redstone_input", + "2": "tardim_ic:block/redstone_input", + "particle": "tardim_ic:block/redstone_input" }, "elements": [ { diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json index b9be28f..33ff950 100644 --- a/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json +++ b/Common/src/main/resources/assets/tardim_ic/models/block/tardim_dock.json @@ -2,8 +2,8 @@ "credit": "Made by karoter2 (Feulim)", "texture_size": [64, 64], "textures": { - "1": "tardim_ic:blocks/tardim_dock", - "particle": "tardim_ic:blocks/tardim_dock" + "1": "tardim_ic:block/tardim_dock", + "particle": "tardim_ic:block/tardim_dock" }, "elements": [ { diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png b/Common/src/main/resources/assets/tardim_ic/textures/block/digital_tardim_interface.png similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png rename to Common/src/main/resources/assets/tardim_ic/textures/block/digital_tardim_interface.png diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png b/Common/src/main/resources/assets/tardim_ic/textures/block/food_machine.png similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/blocks/food_machine.png rename to Common/src/main/resources/assets/tardim_ic/textures/block/food_machine.png diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png.mcmeta b/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.mcmeta similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png.mcmeta rename to Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.mcmeta diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png b/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.png similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png rename to Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.png diff --git a/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.mcmeta b/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.mcmeta new file mode 100644 index 0000000..fe2f8d3 --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.mcmeta @@ -0,0 +1,7 @@ +{ + "animation": { + "frametime": 10, + "interpolate": true, + "frames": [0, 1, 2, 3] + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.png b/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.png new file mode 100644 index 0000000000000000000000000000000000000000..78091034e6ade15ab81a72cc3d69f37b68dd57f2 GIT binary patch literal 923 zcmV;M17!S(P)Px&RY^oaR7i>KmS1RFbri=xX>xnhE=^5s5_XMyGJ*Nfmpk@Qoa@vVh0>xAT4mj6 z(HCKY6dZ$MyTYDSMxh9bpsZUMO6geNZNb6R9ux$HpYz2wSMo=*ByE$J1%3FXw`nMA z_gZ$I&hOsu@6S2E^WpqFsZ>ftlv2-syuh}FOfQhH)py2RHCilFgROAHAWkBYa2&_;!_j`< zJ6+Xctvhz4BjWFj`dg-Kr7Pu3rLewf28{=wm3+_3w%JeSOYpDe&9sd0xon-a2yfg^*1f(h^%Q@ujy@T zIq}@ktcU~`-z$869=N{ntlnYgNX-KgN#9QcYuUon;clQ(UTYTQt94(#S_eaqZQHh2 zY!T^x`^zFIrN-X^ENDy%nclXL={17}P|j3DBsn~&lp34g9R2hU!1>~u<2dC^1u%m~ zV+S9EBL<+9a!w6cFdF+20E?Gj)N5-&BTKHm7X7}n&ktGp^oJ~c`r>vpo>VHO!wr9X zb&t~6UjEp`wVmRdo}Nx563@hrbjKRS=St0>;SaWJe^>E2jcTj!x`yRZSM<*Oy& zUc4dm*|y!1X?FAAW_%~;!^Xq8h;rGesXyW1SZhqk={%1-nzgey_a-<`0v=!e>x4|#IJJ)>JRx`F4Wr#tYr($f_$~!rf*7{ zZQCP@w}GCmn&;2Ilv3%_mn_S21tHVx3z^&MQXDYvljLmOeJelI=4QHcnji3Fd xe!V|^rtEQfsI>Ah8gsyMdFW4{(axdb;eUe3asc`m;~4+|002ovPDHLkV1k;6$<6=( literal 0 HcmV?d00001 diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_dock.png b/Common/src/main/resources/assets/tardim_ic/textures/block/tardim_dock.png similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_dock.png rename to Common/src/main/resources/assets/tardim_ic/textures/block/tardim_dock.png diff --git a/Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_soviet_chronobox.png b/Common/src/main/resources/assets/tardim_ic/textures/block/tardim_soviet_chronobox.png similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/blocks/tardim_soviet_chronobox.png rename to Common/src/main/resources/assets/tardim_ic/textures/block/tardim_soviet_chronobox.png diff --git a/Common/src/main/resources/iconCurseForge.png b/Common/src/main/resources/iconCurseForge.png deleted file mode 100644 index dac272e1390fc1f4e6dfd1548ec3640687c4caaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121412 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 diff --git a/Common/src/main/resources/pack.mcmeta b/Common/src/main/resources/pack.mcmeta index 760e561..52854ec 100644 --- a/Common/src/main/resources/pack.mcmeta +++ b/Common/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { - "pack": { - "description": "TARDIM: In Control resources", - "pack_format": 6 - } -} + "pack": { + "description": "${mod_name}", + "pack_format": 8 + } +} \ No newline at end of file diff --git a/Common/src/main/resources/tardim_ic.mixins.json b/Common/src/main/resources/tardim_ic.mixins.json new file mode 100644 index 0000000..55703bf --- /dev/null +++ b/Common/src/main/resources/tardim_ic.mixins.json @@ -0,0 +1,20 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "su.a71.tardim_ic.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "client": [ + ], + "server": [ + "BetterFuelMapMixin", + "BetterFuelStorageMixin", + "JammerMixin" + ], + "injectors": { + "defaultRequire": 1 + } +} + diff --git a/Fabric/build.gradle b/Fabric/build.gradle index 5196415..52fa666 100644 --- a/Fabric/build.gradle +++ b/Fabric/build.gradle @@ -1,36 +1,32 @@ plugins { - id 'fabric-loom' version '0.12-SNAPSHOT' - id 'maven-publish' + id 'java' id 'idea' + id 'maven-publish' + id 'fabric-loom' +} +base { + archivesName = "${mod_name}-fabric-${minecraft_version}" } - -archivesBaseName = "${mod_name}-fabric-${minecraft_version}" - dependencies { minecraft "com.mojang:minecraft:${minecraft_version}" mappings loom.officialMojangMappings() modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" implementation group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.1' - implementation project(":Common") + implementation project(":common") - // Blame CC: Restitched for this... - modApi 'com.electronwill.night-config:core:3.6.3' - modApi 'com.electronwill.night-config:toml:3.6.3' - modApi 'org.squiddev:Cobalt:0.5.5' - modImplementation "io.netty:netty-codec-http:4.1.77.Final" - - modImplementation "curse.maven:tardim-531315:4453924" - //modImplementation "curse.maven:cc-restitched-462672:3908334" - //.. maybe? - modApi "curse.maven:cc-restitched-462672:3908334" - modCompileOnly "curse.maven:cc-restitched-462672:3908334" - - // Create! - modCompileOnly "curse.maven:create-fabric-624165:4597892" + // Obfuscation forced my hand, TARDIM will be here for now :/ + modImplementation(files("/Users/andreynikitin/Downloads/tardim.jar")) + modCompileOnly("cc.tweaked:cc-tweaked-$minecraft_version-fabric-api:$cc_version") } loom { + if (project(":common").file("src/main/resources/${mod_id}.accesswidener").exists()) { + accessWidenerPath.set(project(":common").file("src/main/resources/${mod_id}.accesswidener")) + } + mixin { + defaultRefmapName.set("${mod_id}.refmap.json") + } runs { client { client() @@ -47,30 +43,27 @@ loom { } } - -processResources { - from project(":Common").sourceSets.main.resources - inputs.property "version", project.version - - filesMatching("fabric.mod.json") { - expand "version": project.version - } +tasks.withType(JavaCompile).configureEach { + source(project(":common").sourceSets.main.allSource) +} +tasks.withType(Javadoc).configureEach { + source(project(":common").sourceSets.main.allJava) +} +tasks.named("sourcesJar", Jar) { + from(project(":common").sourceSets.main.allSource) } -tasks.withType(JavaCompile) { - source(project(":Common").sourceSets.main.allSource) +processResources { + from project(":common").sourceSets.main.resources } publishing { publications { mavenJava(MavenPublication) { - groupId project.group - artifactId project.archivesBaseName - version project.version + artifactId base.archivesName.get() from components.java } } - repositories { maven { url "file://" + System.getenv("local_maven") diff --git a/Fabric/src/main/java/com/example/examplemod/ExampleMod.java b/Fabric/src/main/java/com/example/examplemod/ExampleMod.java new file mode 100644 index 0000000..e53f1a7 --- /dev/null +++ b/Fabric/src/main/java/com/example/examplemod/ExampleMod.java @@ -0,0 +1,18 @@ +package com.example.examplemod; + +import net.fabricmc.api.ModInitializer; + +public class ExampleMod implements ModInitializer { + + @Override + public void onInitialize() { + + // This method is invoked by the Fabric mod loader when it is ready + // to load your mod. You can access Fabric and Common code in this + // project. + + // Use Fabric to bootstrap the Common mod. + Constants.LOG.info("Hello Fabric world!"); + CommonClass.init(); + } +} diff --git a/Fabric/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java b/Fabric/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java new file mode 100644 index 0000000..3680cdb --- /dev/null +++ b/Fabric/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java @@ -0,0 +1,20 @@ +package com.example.examplemod.mixin; + +import com.example.examplemod.Constants; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.TitleScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TitleScreen.class) +public class MixinTitleScreen { + + @Inject(at = @At("HEAD"), method = "init()V") + private void init(CallbackInfo info) { + + Constants.LOG.info("This line is printed by an example mod mixin from Fabric!"); + Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); + } +} \ No newline at end of file diff --git a/Fabric/src/main/java/com/example/examplemod/platform/FabricPlatformHelper.java b/Fabric/src/main/java/com/example/examplemod/platform/FabricPlatformHelper.java new file mode 100644 index 0000000..1a3371f --- /dev/null +++ b/Fabric/src/main/java/com/example/examplemod/platform/FabricPlatformHelper.java @@ -0,0 +1,24 @@ +package com.example.examplemod.platform; + +import com.example.examplemod.platform.services.IPlatformHelper; +import net.fabricmc.loader.api.FabricLoader; + +public class FabricPlatformHelper implements IPlatformHelper { + + @Override + public String getPlatformName() { + return "Fabric"; + } + + @Override + public boolean isModLoaded(String modId) { + + return FabricLoader.getInstance().isModLoaded(modId); + } + + @Override + public boolean isDevelopmentEnvironment() { + + return FabricLoader.getInstance().isDevelopmentEnvironment(); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Fabric/src/main/java/su/a71/tardim_ic/TardimInControl.java similarity index 82% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java rename to Fabric/src/main/java/su/a71/tardim_ic/TardimInControl.java index 785cf51..5c88b34 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/TardimInControl.java @@ -1,9 +1,9 @@ -package su.a71.tardim_ic.tardim_ic; +package su.a71.tardim_ic; import net.fabricmc.api.ModInitializer; public class TardimInControl implements ModInitializer { - + @Override public void onInitialize() { Registration.register(); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/blocks/food_machine/FoodMachineBlock.java similarity index 81% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineBlock.java rename to Fabric/src/main/java/su/a71/tardim_ic/blocks/food_machine/FoodMachineBlock.java index fb1565e..52cc8e6 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/blocks/food_machine/FoodMachineBlock.java @@ -1,19 +1,13 @@ -package su.a71.tardim_ic.tardim_ic.blocks.food_machine; +package su.a71.tardim_ic.blocks.food_machine; import com.swdteam.tardim.common.init.TRDDimensions; import com.swdteam.tardim.common.init.TRDSounds; -import com.swdteam.tardim.network.NetworkHandler; -import com.swdteam.tardim.network.PacketOpenEditGui; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; -import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; -import net.minecraft.network.protocol.game.DebugPackets; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; @@ -29,25 +23,20 @@ import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.DirectionProperty; -import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.material.MapColor; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; -import su.a71.tardim_ic.tardim_ic.Registration; -import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputTileEntity; -import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; +import su.a71.tardim_ic.Registration; import javax.annotation.Nullable; -import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING; - public class FoodMachineBlock extends HorizontalDirectionalBlock implements EntityBlock { public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; public FoodMachineBlock() { - super(FabricBlockSettings.of(Material.METAL).strength(2, 4).noOcclusion()); // No occlusion? + super(Properties.of().strength(2, 4).noOcclusion().mapColor(MapColor.METAL)); // No occlusion? this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH)); //this.registerDefaultState(this.stateDefinition.any().setValue(HORIZONTAL_FACING, Direction.NORTH)); } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java similarity index 91% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java index 272b893..fbe304f 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/blocks/food_machine/FoodMachineTileEntity.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.blocks.food_machine; +package su.a71.tardim_ic.blocks.food_machine; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -7,7 +7,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import su.a71.tardim_ic.tardim_ic.Registration; +import su.a71.tardim_ic.Registration; import java.util.UUID; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java similarity index 98% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java rename to Fabric/src/main/java/su/a71/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java index 99ed818..2b572e5 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/blocks/redstone_input/RedstoneInputBlock.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.blocks.redstone_input; +package su.a71.tardim_ic.blocks.redstone_input; import com.swdteam.tardim.common.block.BlockBaseTardimPanel; import com.swdteam.tardim.common.init.TRDDimensions; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java similarity index 94% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java index f75390c..4943711 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/blocks/redstone_input/RedstoneInputTileEntity.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.blocks.redstone_input; +package su.a71.tardim_ic.blocks.redstone_input; import com.swdteam.tardim.tileentity.TileEntityBaseTardimPanel; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt b/Fabric/src/main/java/su/a71/tardim_ic/blocks/roundels/roundels.txt similarity index 100% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/blocks/roundels/roundels.txt rename to Fabric/src/main/java/su/a71/tardim_ic/blocks/roundels/roundels.txt diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandCloisterBell.java similarity index 98% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java rename to Fabric/src/main/java/su/a71/tardim_ic/command/CommandCloisterBell.java index eb02775..028d439 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandCloisterBell.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.command; +package su.a71.tardim_ic.command; import com.swdteam.tardim.common.command.tardim.CommandTardimBase; import com.swdteam.tardim.common.command.tardim.ICommand; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java similarity index 98% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java rename to Fabric/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java index 146ac06..1dda83c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.command; +package su.a71.tardim_ic.command; import com.swdteam.tardim.common.command.tardim.CommandTardimBase; import com.swdteam.tardim.common.command.tardim.ICommand; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java similarity index 97% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java rename to Fabric/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java index d5cebda..8cd5efe 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.command; +package su.a71.tardim_ic.command; import com.swdteam.tardim.common.command.tardim.CommandTardimBase; import com.swdteam.tardim.common.command.tardim.ICommand; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java similarity index 98% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java rename to Fabric/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java index f7472bc..7061ea0 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.command; +package su.a71.tardim_ic.command; // This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public // 13.04.23 ITS ALIVE diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandSender.java similarity index 95% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java rename to Fabric/src/main/java/su/a71/tardim_ic/command/CommandSender.java index 89af0db..df3b10f 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/command/CommandSender.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.command; +package su.a71.tardim_ic.command; import dan200.computercraft.api.network.IPacketSender; import net.minecraft.core.BlockPos; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java similarity index 97% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java index 173e76e..99cadbf 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat; +package su.a71.tardim_ic.computercraft_compat; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java similarity index 89% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java index 3485898..feca725 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat; +package su.a71.tardim_ic.computercraft_compat; import com.swdteam.tardim.tardim.TardimData; import net.minecraft.core.BlockPos; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/TardimPeripheralProvider.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/TardimPeripheralProvider.java similarity index 73% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/TardimPeripheralProvider.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/TardimPeripheralProvider.java index 9561de3..316e12c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/TardimPeripheralProvider.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/TardimPeripheralProvider.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat; +package su.a71.tardim_ic.computercraft_compat; import com.swdteam.tardim.common.block.BlockFuelStorage; import com.swdteam.tardim.common.block.BlockRotor; @@ -10,11 +10,11 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.NotNull; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.FuelStoragePeripheral; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.TardimScannerPeripheral; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.TimeRotorPeripheral; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceBlock; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals.DigitalInterfacePeripheral; +import su.a71.tardim_ic.computercraft_compat.peripherals.TimeRotorPeripheral; +import su.a71.tardim_ic.computercraft_compat.peripherals.FuelStoragePeripheral; +import su.a71.tardim_ic.computercraft_compat.peripherals.TardimScannerPeripheral; +import su.a71.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.computercraft_compat.peripherals.DigitalInterfacePeripheral; public class TardimPeripheralProvider implements IPeripheralProvider { @Override diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java similarity index 91% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java index 6aec966..72ab616 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceBlock.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface; +package su.a71.tardim_ic.computercraft_compat.blocks.digital_interface; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.Block; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java similarity index 85% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java index d7f39e4..0aefa98 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface; +package su.a71.tardim_ic.computercraft_compat.blocks.digital_interface; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.entity.BlockEntity; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java similarity index 98% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java index 8825990..f12797a 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/DigitalInterfacePeripheral.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; +package su.a71.tardim_ic.computercraft_compat.peripherals; import com.swdteam.tardim.common.command.tardim.CommandTravel; import com.swdteam.tardim.common.data.DimensionMapReloadListener; @@ -20,6 +20,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Holder; import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; @@ -34,10 +35,10 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.phys.Vec3; -import su.a71.tardim_ic.tardim_ic.Registration; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; -import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; -import static su.a71.tardim_ic.tardim_ic.Registration.PERSONAL_JAMMER; +import su.a71.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; +import su.a71.tardim_ic.Registration; +import su.a71.tardim_ic.utils.FakePlayer; +import static su.a71.tardim_ic.Registration.PERSONAL_JAMMER; import javax.annotation.Nonnull; import java.util.*; @@ -761,7 +762,7 @@ public class DigitalInterfacePeripheral extends TardimPeripheral implements IPer @LuaFunction(mainThread = true) public final ObjectLuaTable getBiomes() throws LuaException { Map biomes = new HashMap<>(); - Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registries.BIOME); Iterator biome_it = biomeRegistry.keySet().iterator(); int i = 0; while (biome_it.hasNext()) { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java similarity index 93% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java index 9a22a02..085f8a3 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java @@ -1,11 +1,11 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; +package su.a71.tardim_ic.computercraft_compat.peripherals; import com.swdteam.tardim.tardim.TardimData; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IPeripheral; import net.minecraft.world.phys.Vec3; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; +import su.a71.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; import javax.annotation.Nonnull; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java similarity index 94% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java index 4dee2ed..539412e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java @@ -1,10 +1,10 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; +package su.a71.tardim_ic.computercraft_compat.peripherals; import com.swdteam.tardim.tardim.TardimData; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.ITardimPeripheralTileEntity; +import su.a71.tardim_ic.computercraft_compat.ITardimPeripheralTileEntity; import javax.annotation.Nonnull; import javax.annotation.Nullable; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java similarity index 95% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java index e4caaee..99b5bef 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; +package su.a71.tardim_ic.computercraft_compat.peripherals; import com.swdteam.tardim.common.init.TardimRegistry; import com.swdteam.tardim.tardim.TardimData; @@ -7,11 +7,12 @@ import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.peripheral.IPeripheral; import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.players.PlayerList; import net.minecraft.world.level.biome.Biome; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; +import su.a71.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; import javax.annotation.Nonnull; import java.util.HashMap; @@ -120,7 +121,7 @@ public class TardimScannerPeripheral extends TardimPeripheral implements IPeriph @LuaFunction(mainThread = true) public final ObjectLuaTable getBiomes() throws LuaException { Map biomes = new HashMap<>(); - Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registries.BIOME); Iterator biome_it = biomeRegistry.keySet().iterator(); int i = 0; while (biome_it.hasNext()) { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java similarity index 96% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java rename to Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java index 7a2d622..73dcd2d 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java @@ -1,11 +1,11 @@ -package su.a71.tardim_ic.tardim_ic.computercraft_compat.peripherals; +package su.a71.tardim_ic.computercraft_compat.peripherals; import com.swdteam.tardim.tardim.TardimData; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.peripheral.IPeripheral; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; +import su.a71.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; import javax.annotation.Nonnull; import java.util.Map; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/cartridge_loader/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/display_source/cartridge_loader/temp_ideas.txt similarity index 100% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/cartridge_loader/temp_ideas.txt rename to Fabric/src/main/java/su/a71/tardim_ic/display_source/cartridge_loader/temp_ideas.txt diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/dock/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/display_source/dock/temp_ideas.txt similarity index 100% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/dock/temp_ideas.txt rename to Fabric/src/main/java/su/a71/tardim_ic/display_source/dock/temp_ideas.txt diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/display_source/fuel_storage/FuelLevelDisplaySource.java similarity index 96% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java rename to Fabric/src/main/java/su/a71/tardim_ic/display_source/fuel_storage/FuelLevelDisplaySource.java index 1820305..f82cb14 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/FuelLevelDisplaySource.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/display_source/fuel_storage/FuelLevelDisplaySource.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; +package su.a71.tardim_ic.display_source.fuel_storage; import com.simibubi.create.content.redstone.displayLink.DisplayLinkContext; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java b/Fabric/src/main/java/su/a71/tardim_ic/display_source/fuel_storage/RequiredFuelDisplaySource.java similarity index 96% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java rename to Fabric/src/main/java/su/a71/tardim_ic/display_source/fuel_storage/RequiredFuelDisplaySource.java index 31fcd5c..336d08f 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/fuel_storage/RequiredFuelDisplaySource.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/display_source/fuel_storage/RequiredFuelDisplaySource.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage; +package su.a71.tardim_ic.display_source.fuel_storage; import com.simibubi.create.content.redstone.displayLink.DisplayLinkContext; import com.simibubi.create.content.redstone.displayLink.source.NumericSingleLineDisplaySource; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/scanner/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/display_source/scanner/temp_ideas.txt similarity index 100% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/scanner/temp_ideas.txt rename to Fabric/src/main/java/su/a71/tardim_ic/display_source/scanner/temp_ideas.txt diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/time_rotor/temp_ideas.txt b/Fabric/src/main/java/su/a71/tardim_ic/display_source/time_rotor/temp_ideas.txt similarity index 100% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/create_compat/display_source/time_rotor/temp_ideas.txt rename to Fabric/src/main/java/su/a71/tardim_ic/display_source/time_rotor/temp_ideas.txt diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/PersonalJammerMaterial.java b/Fabric/src/main/java/su/a71/tardim_ic/jammer/PersonalJammerMaterial.java similarity index 97% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/PersonalJammerMaterial.java rename to Fabric/src/main/java/su/a71/tardim_ic/jammer/PersonalJammerMaterial.java index e9b6adf..d216899 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/jammer/PersonalJammerMaterial.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/jammer/PersonalJammerMaterial.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.jammer; +package su.a71.tardim_ic.jammer; import net.minecraft.sounds.SoundEvent; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelMapMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java similarity index 72% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelMapMixin.java rename to Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java index bbaba40..5fa64cf 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelMapMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.mixin; +package su.a71.tardim_ic.mixin; import com.swdteam.tardim.tardim.TardimManager; import com.swdteam.tardim.tileentity.TileEntityFuelStorage; @@ -10,14 +10,22 @@ import org.spongepowered.asm.mixin.Overwrite; import static com.swdteam.tardim.tardim.TardimManager.FUEL_MAP; // This mixin aims to make TARDIM fuel system less awful by allowing users to put standard furance fuel into it. -@Mixin(value = TardimManager.class, remap = false) +@Mixin(value = TardimManager.class, remap = true) public class BetterFuelMapMixin { + /** + * @author Andrew_7_1 + * @reason The original function is too small to bother with insert + */ @Overwrite public static boolean isFuel(Item i) { return FUEL_MAP.containsKey(i) || AbstractFurnaceBlockEntity.getFuel().containsKey(i); } + /** + * @author Andrew_7_1 + * @reason The code change is drastic enough to warrant an overwrite + */ @Overwrite public static double getFuel(Item i) { if (!isFuel(i)) { @@ -30,13 +38,4 @@ public class BetterFuelMapMixin { else return AbstractFurnaceBlockEntity.getFuel().get(i) / 8000.0; // Adapt with coal's 1600 ticks -> 0.2 fuel } - -// //@Inject(method = "getFuel(Lnet/minecraft/world/item/Item;)V", at = @At("TAIL")) -// @Overwrite -// public static void getFuel(Item i, CallbackInfo info) { -// LOG.info("We're in #TARDIM"); -// if (AbstractFurnaceBlockEntity.getFuel().containsKey(i)) { -// -// } -// } } \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelStorageMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java similarity index 94% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelStorageMixin.java rename to Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java index a685dea..8e0fd7f 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/BetterFuelStorageMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java @@ -1,11 +1,10 @@ -package su.a71.tardim_ic.tardim_ic.mixin; +package su.a71.tardim_ic.mixin; import com.swdteam.tardim.common.block.BlockFuelStorage; import com.swdteam.tardim.common.init.TRDDimensions; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import com.swdteam.tardim.tileentity.TileEntityFuelStorage; -import net.fabricmc.loader.impl.util.log.Log; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.BucketItem; @@ -23,7 +22,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import static su.a71.tardim_ic.tardim_ic.Constants.LOG; +import static su.a71.tardim_ic.Constants.LOG; @Mixin(value = TileEntityFuelStorage.class, remap = false) public class BetterFuelStorageMixin { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java b/Fabric/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java similarity index 98% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java rename to Fabric/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java index 129451c..c4441a1 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/JammerMixin.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.mixin; +package su.a71.tardim_ic.mixin; import com.swdteam.tardim.common.command.tardim.CommandLocate; import com.swdteam.tardim.common.command.tardim.CommandTardimBase; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/platform/FabricPlatformHelper.java b/Fabric/src/main/java/su/a71/tardim_ic/platform/FabricPlatformHelper.java new file mode 100644 index 0000000..5d6ad25 --- /dev/null +++ b/Fabric/src/main/java/su/a71/tardim_ic/platform/FabricPlatformHelper.java @@ -0,0 +1,24 @@ +package su.a71.tardim_ic.platform; + +import com.example.examplemod.platform.services.IPlatformHelper; +import net.fabricmc.loader.api.FabricLoader; + +public class FabricPlatformHelper implements IPlatformHelper { + + @Override + public String getPlatformName() { + return "Fabric"; + } + + @Override + public boolean isModLoaded(String modId) { + + return FabricLoader.getInstance().isModLoaded(modId); + } + + @Override + public boolean isDevelopmentEnvironment() { + + return FabricLoader.getInstance().isDevelopmentEnvironment(); + } +} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java b/Fabric/src/main/java/su/a71/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java similarity index 90% rename from Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java rename to Fabric/src/main/java/su/a71/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java index 0a81513..5b225fb 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/soviet_chronobox/SovietChronoboxTileEntity.java @@ -1,4 +1,4 @@ -package su.a71.tardim_ic.tardim_ic.soviet_chronobox; +package su.a71.tardim_ic.soviet_chronobox; import com.swdteam.tardim.common.init.TRDTiles; import com.swdteam.tardim.tileentity.TileEntityTardim; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java deleted file mode 100644 index d11e342..0000000 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ /dev/null @@ -1,78 +0,0 @@ -package su.a71.tardim_ic.tardim_ic; - -import net.fabricmc.loader.api.FabricLoader; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.item.*; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.core.Registry; - -import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; -import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; - -import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineBlock; -import su.a71.tardim_ic.tardim_ic.blocks.food_machine.FoodMachineTileEntity; -import su.a71.tardim_ic.tardim_ic.jammer.PersonalJammerMaterial; -import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputBlock; -import su.a71.tardim_ic.tardim_ic.blocks.redstone_input.RedstoneInputTileEntity; -import su.a71.tardim_ic.tardim_ic.registration.CommandInit; -import su.a71.tardim_ic.tardim_ic.registration.ComputerCraftCompat; -import su.a71.tardim_ic.tardim_ic.registration.CreateCompat; -import su.a71.tardim_ic.tardim_ic.registration.Exteriors; - -public class Registration { - // Blocks - public static final Block REDSTONE_TARDIM_INPUT = new RedstoneInputBlock(); - public static final Block FOOD_MACHINE = new FoodMachineBlock(); - - // Tile Entities - public static final BlockEntityType REDSTONE_TARDIM_INPUT_TILEENTITY = Registry.register( - Registry.BLOCK_ENTITY_TYPE, - new ResourceLocation("tardim_ic", "redstone_tardim_input"), - FabricBlockEntityTypeBuilder.create(RedstoneInputTileEntity::new, REDSTONE_TARDIM_INPUT).build() - ); - - public static final BlockEntityType FOOD_MACHINE_TILEENTITY = Registry.register( - Registry.BLOCK_ENTITY_TYPE, - new ResourceLocation("tardim_ic", "food_machine"), - FabricBlockEntityTypeBuilder.create(FoodMachineTileEntity::new, FOOD_MACHINE).build() - ); - - public static final CreativeModeTab TARDIM_IC_TAB = FabricItemGroupBuilder - .create(new ResourceLocation("tardim_ic")) - .icon(() -> new ItemStack(REDSTONE_TARDIM_INPUT)) - .build(); - - // Cloister bell - public static final ResourceLocation CLOISTER_SOUND = new ResourceLocation("tardim_ic:cloister"); - public static SoundEvent CLOISTER_SOUND_EVENT = new SoundEvent(CLOISTER_SOUND); - - public static final ArmorMaterial PERSONAL_JAMMER_MATERIAL = new PersonalJammerMaterial(); - public static final Item PERSONAL_JAMMER = new ArmorItem(PERSONAL_JAMMER_MATERIAL, EquipmentSlot.CHEST, new Item.Properties().tab(TARDIM_IC_TAB)); - - // Register our stuff - public static void register() { - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "personal_jammer"), PERSONAL_JAMMER); - - if (FabricLoader.getInstance().isModLoaded("computercraft")) { - ComputerCraftCompat.register(); // Register ComputerCraft-related features - } - if (FabricLoader.getInstance().isModLoaded("create")) { - CreateCompat.register(); // Register Create-related features - } - Exteriors.register(); // Register custom TARDIM exteriors - - Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), REDSTONE_TARDIM_INPUT); - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "redstone_tardim_input"), new BlockItem(REDSTONE_TARDIM_INPUT, new Item.Properties().tab(TARDIM_IC_TAB))); - - Registry.register(Registry.BLOCK, new ResourceLocation(Constants.MOD_ID, "food_machine"), FOOD_MACHINE); - Registry.register(Registry.ITEM, new ResourceLocation(Constants.MOD_ID, "food_machine"), new BlockItem(FOOD_MACHINE, new Item.Properties().tab(TARDIM_IC_TAB))); - - Registry.register(Registry.SOUND_EVENT, CLOISTER_SOUND, CLOISTER_SOUND_EVENT); - - CommandInit.init(); - } -} \ No newline at end of file diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java index 406069b..66254f7 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java @@ -3,9 +3,9 @@ package su.a71.tardim_ic.tardim_ic.registration; import com.swdteam.tardim.common.init.CommandManager; -import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; -import su.a71.tardim_ic.tardim_ic.command.CommandListBiomes; -import su.a71.tardim_ic.tardim_ic.command.CommandListDimensions; +import su.a71.tardim_ic.command.CommandCloisterBell; +import su.a71.tardim_ic.command.CommandListBiomes; +import su.a71.tardim_ic.command.CommandListDimensions; public class CommandInit { public static void init() { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java index dd634cd..1d7a287 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/ComputerCraftCompat.java @@ -11,10 +11,10 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; import su.a71.tardim_ic.tardim_ic.Constants; import su.a71.tardim_ic.tardim_ic.Registration; -import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.TardimPeripheralProvider; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceBlock; -import su.a71.tardim_ic.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceTileEntity; +import su.a71.tardim_ic.command.CommandModemTransmit; +import su.a71.tardim_ic.computercraft_compat.TardimPeripheralProvider; +import su.a71.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceBlock; +import su.a71.tardim_ic.computercraft_compat.blocks.digital_interface.DigitalInterfaceTileEntity; public class ComputerCraftCompat { public static final Block DIGITAL_TARDIM_INTERFACE = new DigitalInterfaceBlock(); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java index 120d1a1..c5198a7 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CreateCompat.java @@ -4,8 +4,8 @@ package su.a71.tardim_ic.tardim_ic.registration; import com.simibubi.create.content.redstone.displayLink.AllDisplayBehaviours; import net.minecraft.resources.ResourceLocation; import su.a71.tardim_ic.tardim_ic.Constants; -import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.FuelLevelDisplaySource; -import su.a71.tardim_ic.tardim_ic.create_compat.display_source.fuel_storage.RequiredFuelDisplaySource; +import su.a71.tardim_ic.display_source.fuel_storage.FuelLevelDisplaySource; +import su.a71.tardim_ic.display_source.fuel_storage.RequiredFuelDisplaySource; import static com.swdteam.tardim.common.init.TRDTiles.TILE_FUEL_STORAGE; diff --git a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java index dbf7e0e..2f2cd60 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java +++ b/Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Exteriors.java @@ -21,7 +21,7 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import su.a71.tardim_ic.tardim_ic.Constants; -import su.a71.tardim_ic.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; +import su.a71.tardim_ic.soviet_chronobox.SovietChronoboxTileEntity; public class Exteriors { // Soviet Chronobox diff --git a/Fabric/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper b/Fabric/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper new file mode 100644 index 0000000..30c54ee --- /dev/null +++ b/Fabric/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper @@ -0,0 +1 @@ +com.example.examplemod.platform.FabricPlatformHelper \ No newline at end of file diff --git a/Fabric/src/main/resources/fabric.mod.json b/Fabric/src/main/resources/fabric.mod.json index 38fb260..bdeb9b5 100644 --- a/Fabric/src/main/resources/fabric.mod.json +++ b/Fabric/src/main/resources/fabric.mod.json @@ -2,40 +2,35 @@ "schemaVersion": 1, "id": "tardim_ic", "version": "${version}", - - "name": "Tardim: In Control", - "description": "All of time and space, now automated and improved. This mod aims to make TARDIM even better.", + "name": "${mod_name}", + "description": "All of time and space, now automated and improved. This mod aims to improve your TARDIM experience", "authors": [ - "Andrew_7_1" + "${mod_author}" ], "contact": { - "sources": "https://github.com/Andrew-71/tardim-in-control" + "homepage": "https://tardim.a71.su/", + "sources": "https://github.com/Andrew-71/tardim-in-control" }, - "license": "MIT", - "icon": "icon.png", - + "icon": "assets/tardim_ic/icon.png", "environment": "*", "entrypoints": { - "main": [ - "su.a71.tardim_ic.tardim_ic.TardimInControl" - ] + "main": [ + "su.a71.tardim_ic.TardimInControl" + ] }, - "mixins": [ - "mixins.tardim_ic.json" - ], - + "mixins": [ + "tardim_ic.mixins.json", + "tardim_ic.fabric.mixins.json" + ], "depends": { - "fabricloader": ">=0.14.10", - "fabric": "*", - "minecraft": "1.19.x", - "java": ">=17", - "tardim": ">=1.2.2" + "fabricloader": ">=0.14", + "fabric": "*", + "minecraft": "1.20", + "java": ">=17", + "tardim": ">=1.2.2" }, - - "suggests": { - "computercraft": ">=1.101.0", - "create": ">=0.5.1" - } - } - \ No newline at end of file + "suggests": { + "computercraft": ">=${cc_version}" + } +} \ No newline at end of file diff --git a/Fabric/src/main/resources/mixins.tardim_ic.json b/Fabric/src/main/resources/mixins.tardim_ic.json deleted file mode 100644 index 1335fd3..0000000 --- a/Fabric/src/main/resources/mixins.tardim_ic.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "required": true, - "package": "su.a71.tardim_ic.tardim_ic.mixin", - "compatibilityLevel": "JAVA_17", - "refmap": "refmap.tardim_ic.json", - "mixins": [ - "BetterFuelMapMixin", - "BetterFuelStorageMixin", - "JammerMixin" - ], - "client": [ - ], - "injectors": { - "defaultRequire": 1 - }, - "minVersion": "0.8.4" -} \ No newline at end of file diff --git a/Fabric/src/main/resources/tardim_ic.fabric.mixins.json b/Fabric/src/main/resources/tardim_ic.fabric.mixins.json new file mode 100644 index 0000000..ad174ea --- /dev/null +++ b/Fabric/src/main/resources/tardim_ic.fabric.mixins.json @@ -0,0 +1,18 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "com.example.examplemod.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "client": [ + "MixinTitleScreen" + ], + "server": [ + ], + "injectors": { + "defaultRequire": 1 + } + } + diff --git a/Forge/build.gradle b/Forge/build.gradle index 35c37d8..562ac05 100644 --- a/Forge/build.gradle +++ b/Forge/build.gradle @@ -1,29 +1,27 @@ -buildscript { - repositories { - maven { url = 'https://maven.minecraftforge.net' } - mavenCentral() - } - dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true - classpath 'org.spongepowered:mixingradle:0.7.+' - } +plugins { + id 'idea' + id 'maven-publish' + id 'net.minecraftforge.gradle' + id 'org.spongepowered.mixin' } -apply plugin: 'java' -apply plugin: 'net.minecraftforge.gradle' -apply plugin: 'eclipse' -apply plugin: 'maven-publish' -apply plugin: 'org.spongepowered.mixin' +base { + archivesName = "${mod_name}-forge-${minecraft_version}" +} +mixin { + add(sourceSets.main, "${mod_id}.refmap.json") -archivesBaseName = "${mod_name}-forge-${minecraft_version}" + config("${mod_id}.mixins.json") + config("${mod_id}.forge.mixins.json") +} minecraft { mappings channel: 'official', version: minecraft_version - - if (project.hasProperty('forge_ats_enabled') && project.findProperty('forge_ats_enabled').toBoolean()) { - // This location is hardcoded in Forge and can not be changed. - // https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123 + + // Automatically enable forge AccessTransformers if the file exists + // This location is hardcoded in Forge and can not be changed. + // https://github.com/MinecraftForge/MinecraftForge/blob/be1698bb1554f9c8fa2f58e32b9ab70bc4385e60/fmlloader/src/main/java/net/minecraftforge/fml/loading/moddiscovery/ModFile.java#L123 + if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) { accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - project.logger.debug('Forge Access Transformers are enabled for this project.') } runs { @@ -36,7 +34,7 @@ minecraft { mods { modClientRun { source sourceSets.main - source project(":Common").sourceSets.main + source project(":common").sourceSets.main } } } @@ -50,7 +48,7 @@ minecraft { mods { modServerRun { source sourceSets.main - source project(":Common").sourceSets.main + source project(":common").sourceSets.main } } } @@ -65,48 +63,43 @@ minecraft { mods { modDataRun { source sourceSets.main - source project(":Common").sourceSets.main + source project(":common").sourceSets.main } } } } } -mixin { - add sourceSets.main, 'refmap.tardim_ic.json' - config 'mixins.tardim_ic.json' -} - sourceSets.main.resources.srcDir 'src/generated/resources' dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - compileOnly project(":Common") - - implementation fg.deobf("curse.maven:tardim-531315:4453925") - implementation fg.deobf("org.squiddev:cc-tweaked-1.19.1:${cc_version}") - - annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' + compileOnly project(":common") + annotationProcessor("org.spongepowered:mixin:0.8.5-SNAPSHOT:processor") } -tasks.withType(JavaCompile) { - source(project(":Common").sourceSets.main.allSource) +tasks.withType(JavaCompile).configureEach { + source(project(":common").sourceSets.main.allSource) +} +tasks.withType(Javadoc).configureEach { + source(project(":common").sourceSets.main.allJava) +} +tasks.named("sourcesJar", Jar) { + from(project(":common").sourceSets.main.allSource) } processResources { - from project(":Common").sourceSets.main.resources + from project(":common").sourceSets.main.resources } - jar.finalizedBy('reobfJar') publishing { publications { mavenJava(MavenPublication) { - groupId project.group - artifactId project.archivesBaseName - version project.version - artifact jar + artifactId base.archivesName.get() + from components.java + fg.component(it) } } repositories { diff --git a/Forge/src/main/java/com/example/examplemod/ExampleMod.java b/Forge/src/main/java/com/example/examplemod/ExampleMod.java new file mode 100644 index 0000000..06f3628 --- /dev/null +++ b/Forge/src/main/java/com/example/examplemod/ExampleMod.java @@ -0,0 +1,19 @@ +package com.example.examplemod; + +import net.minecraftforge.fml.common.Mod; + +@Mod(Constants.MOD_ID) +public class ExampleMod { + + public ExampleMod() { + + // This method is invoked by the Forge mod loader when it is ready + // to load your mod. You can access Forge and Common code in this + // project. + + // Use Forge to bootstrap the Common mod. + Constants.LOG.info("Hello Forge world!"); + CommonClass.init(); + + } +} \ No newline at end of file diff --git a/Forge/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java b/Forge/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java new file mode 100644 index 0000000..a2e0c4b --- /dev/null +++ b/Forge/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java @@ -0,0 +1,20 @@ +package com.example.examplemod.mixin; + +import com.example.examplemod.Constants; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.TitleScreen; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TitleScreen.class) +public class MixinTitleScreen { + + @Inject(at = @At("HEAD"), method = "init()V") + private void init(CallbackInfo info) { + + Constants.LOG.info("This line is printed by an example mod mixin from Forge!"); + Constants.LOG.info("MC Version: {}", Minecraft.getInstance().getVersionType()); + } +} \ No newline at end of file diff --git a/Forge/src/main/java/com/example/examplemod/platform/ForgePlatformHelper.java b/Forge/src/main/java/com/example/examplemod/platform/ForgePlatformHelper.java new file mode 100644 index 0000000..22ef9e4 --- /dev/null +++ b/Forge/src/main/java/com/example/examplemod/platform/ForgePlatformHelper.java @@ -0,0 +1,26 @@ +package com.example.examplemod.platform; + +import com.example.examplemod.platform.services.IPlatformHelper; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.loading.FMLLoader; + +public class ForgePlatformHelper implements IPlatformHelper { + + @Override + public String getPlatformName() { + + return "Forge"; + } + + @Override + public boolean isModLoaded(String modId) { + + return ModList.get().isLoaded(modId); + } + + @Override + public boolean isDevelopmentEnvironment() { + + return !FMLLoader.isProduction(); + } +} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java b/Forge/src/main/java/su/a71/tardim_ic/TardiminControl.java similarity index 64% rename from Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java rename to Forge/src/main/java/su/a71/tardim_ic/TardiminControl.java index 170718f..8897bcb 100644 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/TardimInControl.java +++ b/Forge/src/main/java/su/a71/tardim_ic/TardiminControl.java @@ -1,15 +1,10 @@ -package su.a71.tardim_ic.tardim_ic; +package su.a71.tardim_ic; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; -import su.a71.tardim_ic.tardim_ic.registration.CommandInit; -import com.swdteam.tardim.TardimSaveHandler; - -// The value here should match an entry in the META-INF/mods.toml file @Mod(Constants.MOD_ID) public class TardimInControl { - public TardimInControl() { Registration.register(); diff --git a/Forge/src/main/java/su/a71/tardim_ic/platform/ForgePlatformHelper.java b/Forge/src/main/java/su/a71/tardim_ic/platform/ForgePlatformHelper.java new file mode 100644 index 0000000..66ca310 --- /dev/null +++ b/Forge/src/main/java/su/a71/tardim_ic/platform/ForgePlatformHelper.java @@ -0,0 +1,26 @@ +package su.a71.tardim_ic.platform; + +import com.example.examplemod.platform.services.IPlatformHelper; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.loading.FMLLoader; + +public class ForgePlatformHelper implements IPlatformHelper { + + @Override + public String getPlatformName() { + + return "Forge"; + } + + @Override + public boolean isModLoaded(String modId) { + + return ModList.get().isLoaded(modId); + } + + @Override + public boolean isDevelopmentEnvironment() { + + return !FMLLoader.isProduction(); + } +} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java deleted file mode 100644 index a54e62a..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/Registration.java +++ /dev/null @@ -1,64 +0,0 @@ -package su.a71.tardim_ic.tardim_ic; - -import com.google.common.collect.Sets; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; - -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceBlock; -import su.a71.tardim_ic.tardim_ic.digital_interface.DigitalInterfaceTileEntity; -import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputBlock; -import su.a71.tardim_ic.tardim_ic.redstone_input.RedstoneInputTileEntity; - -import java.util.function.Supplier; - -public class Registration { - - public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Constants.MOD_ID); - public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, Constants.MOD_ID); - public static final DeferredRegister> BLOCK_ENTITIES = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, Constants.MOD_ID); - public static final DeferredRegister SOUNDS = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, Constants.MOD_ID); - - public static final CreativeModeTab TARDIM_IC_TAB = new CreativeModeTab("tardim_ic") { - @Override - public ItemStack makeIcon() { - return new ItemStack(Registration.DIGITAL_TARDIM_INTERFACE.get()); - } - }; - - // Blocks - private static RegistryObject register(String name, Supplier block) { - RegistryObject registryObject = BLOCKS.register(name, block); - ITEMS.register(name, () -> new BlockItem(registryObject.get(), new Item.Properties().tab(TARDIM_IC_TAB))); - return registryObject; - } - public static final RegistryObject DIGITAL_TARDIM_INTERFACE = register("digital_tardim_interface", DigitalInterfaceBlock::new); - public static final RegistryObject REDSTONE_TARDIM_INPUT = register("redstone_tardim_input", RedstoneInputBlock::new); - - // Tile Entities - public static final RegistryObject> DIGITAL_TARDIM_INTERFACE_TILEENTITY = Registration.BLOCK_ENTITIES.register("digital_tardim_interface", () -> new BlockEntityType<>(DigitalInterfaceTileEntity::new, Sets.newHashSet(DIGITAL_TARDIM_INTERFACE.get()), null)); - public static final RegistryObject> REDSTONE_TARDIM_INPUT_TILEENTITY = Registration.BLOCK_ENTITIES.register("redstone_tardim_input", () -> new BlockEntityType<>(RedstoneInputTileEntity::new, Sets.newHashSet(REDSTONE_TARDIM_INPUT.get()), null)); - - // Cloister bell - public static final RegistryObject CLOISTER_SOUND = SOUNDS.register("cloister", () -> new SoundEvent(new ResourceLocation(Constants.MOD_ID, "cloister"))); - - // Register our stuff - public static void register() { - IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); - BLOCKS.register(modEventBus); - ITEMS.register(modEventBus); - BLOCK_ENTITIES.register(modEventBus); - SOUNDS.register(modEventBus); - } -} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java deleted file mode 100644 index 4bfa48a..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandCloisterBell.java +++ /dev/null @@ -1,59 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.command; - -import com.swdteam.common.command.tardim.CommandTardimBase; -import com.swdteam.common.command.tardim.ICommand; -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; - -import net.minecraft.core.BlockPos; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import su.a71.tardim_ic.tardim_ic.Registration; - -public class CommandCloisterBell implements ICommand { - @Override - public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { - if (args.length == 0) { - TardimData data = TardimManager.getFromPos(pos); - if (data != null) { - if (data.hasPermission(player)) { - try { - Level lvl = player.getLevel(); - if (!lvl.isClientSide) { - lvl.playSound( - null, - pos, - Registration.CLOISTER_SOUND.get(), - SoundSource.BLOCKS, - 1.5f, - 1f - ); - } - } catch (Exception var9) { - CommandTardimBase.sendResponse(player, "There was an error", CommandTardimBase.ResponseType.FAIL, source); - } - } else { - CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); - } - } - } else { - CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); - } - } - - @Override - public String getCommandName() { - return "cloister-bell"; - } - - @Override - public String getUsage() { - return "/cloister-bell"; - } - - @Override - public CommandTardimBase.CommandSource allowedSource() { - return CommandTardimBase.CommandSource.BOTH; - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java deleted file mode 100644 index 1455788..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListBiomes.java +++ /dev/null @@ -1,54 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.command; - -import com.swdteam.common.command.tardim.CommandTardimBase; -import com.swdteam.common.command.tardim.ICommand; -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.biome.Biome; - - -public class CommandListBiomes implements ICommand{ - @Override - public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { - ; - if (args.length == 1 || args.length == 0) { - TardimData data = TardimManager.getFromPos(pos); - if (data != null) { - if (data.hasPermission(player)) { - Registry biomeRegistry = player.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); - biomeRegistry.keySet().forEach( - (ResourceLocation res) -> { - String out = res.toString(); - if (args.length == 0 || (args[0].equals(out.split(":")[0]))) { - CommandTardimBase.sendResponse(player, out, CommandTardimBase.ResponseType.INFO, source); - } - } - ); - } else { - CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); - } - } - } else { - CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); - } - } - - @Override - public String getCommandName() { - return "list-biomes"; - } - - @Override - public String getUsage() { - return "/list-biomes"; - } - - @Override - public CommandTardimBase.CommandSource allowedSource() { - return CommandTardimBase.CommandSource.BOTH; - } -} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java deleted file mode 100644 index 2ff16ea..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandListDimensions.java +++ /dev/null @@ -1,47 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.command; - -import com.swdteam.common.command.tardim.CommandTardimBase; - -import com.swdteam.common.command.tardim.ICommand; -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; - -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.player.Player; - -public class CommandListDimensions implements ICommand{ - @Override - public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { - if (args.length == 0) { - TardimData data = TardimManager.getFromPos(pos); - if (data != null) { - if (data.hasPermission(player)) { - // TODO: Does this really work? - for (ServerLevel serverLevel : player.getLevel().getServer().getAllLevels()) { - CommandTardimBase.sendResponse(player, serverLevel.dimension().location().toString(), CommandTardimBase.ResponseType.INFO, source); - } - } else { - CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); - } - } - } else { - CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); - } - } - - @Override - public String getCommandName() { - return "list-dimensions"; - } - - @Override - public String getUsage() { - return "/list-dimensions"; - } - - @Override - public CommandTardimBase.CommandSource allowedSource() { - return CommandTardimBase.CommandSource.BOTH; - } -} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java deleted file mode 100644 index 9e95ffc..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandModemTransmit.java +++ /dev/null @@ -1,69 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.command; - -// This will be added whenever I manage to convince TARDIM devs to make CommandManager.register public -// 13.04.23 ITS ALIVE - -import com.swdteam.common.command.tardim.CommandTardimBase; -import com.swdteam.common.command.tardim.ICommand; -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.entity.player.Player; - -import dan200.computercraft.api.network.Packet; -import dan200.computercraft.api.ComputerCraftAPI; - -public class CommandModemTransmit implements ICommand { - @Override - public void execute(String[] args, Player player, BlockPos pos, CommandTardimBase.CommandSource source) { - if (args.length == 3) { // TODO: 3 or 4??? - TardimData data = TardimManager.getFromPos(pos); - if (data != null) { - if (data.hasPermission(player)) { - try { - int sendChannel = Integer.parseInt(args[0]); - int replyChannel = Integer.parseInt(args[1]); - String message = args[2]; - boolean allDimensions = Boolean.parseBoolean(args[3]) || args[3].equals("true"); - - if (data.getTravelLocation() == null) { - data.setTravelLocation(new TardimData.Location(data.getCurrentLocation())); - } - - if (allDimensions) - { - ComputerCraftAPI.getWirelessNetwork().transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos()))); - } - else { - ComputerCraftAPI.getWirelessNetwork().transmitSameDimension(new Packet(sendChannel, replyChannel, message, - new CommandSender(player, data.getTravelLocation().getPos())), 300); - } - CommandTardimBase.sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source); - } catch (Exception var9) { - CommandTardimBase.sendResponse(player, "Invalid coordinates", CommandTardimBase.ResponseType.FAIL, source); - } - } else { - CommandTardimBase.sendResponse(player, "You do not have permission", CommandTardimBase.ResponseType.FAIL, source); - } - } - } else { - CommandTardimBase.sendResponse(player, this.getUsage(), CommandTardimBase.ResponseType.FAIL, source); - } - } - - @Override - public String getCommandName() { - return "cc-modem-transmit"; - } - - @Override - public String getUsage() { - return "/cc-modem-transmit "; - } - - @Override - public CommandTardimBase.CommandSource allowedSource() { - return CommandTardimBase.CommandSource.BOTH; - } -} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java deleted file mode 100644 index aec340f..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/command/CommandSender.java +++ /dev/null @@ -1,40 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.command; - -import dan200.computercraft.api.network.IPacketSender; -import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.NotNull; - -public class CommandSender implements IPacketSender { - - private final Player player; - private final Level level; - private final BlockPos pos; - - CommandSender(Player player, BlockPos pos) { - this.player = player; - this.level = player.level; - this.pos = pos; - } - - @NotNull - @Override - public Level getLevel() { - return this.level; - } - - @NotNull - @Override - public Vec3 getPosition() { - return new Vec3(this.pos.getX(), this.pos.getY(), this.pos.getZ()); - } - - @NotNull - @Override - public String getSenderID() { - return this.player.getName().getString(); - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java deleted file mode 100644 index 284345f..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceBlock.java +++ /dev/null @@ -1,27 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.EntityBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; -import org.jetbrains.annotations.NotNull; - -import su.a71.tardim_ic.tardim_ic.Registration; - -import javax.annotation.Nullable; - - -public class DigitalInterfaceBlock extends Block implements EntityBlock { - - public DigitalInterfaceBlock() { - super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); - } - - @Nullable - @Override - public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get().create(pos, state); - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java deleted file mode 100644 index 7df5118..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfacePeripheral.java +++ /dev/null @@ -1,887 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import com.mojang.datafixers.util.Pair; -import com.swdteam.common.command.tardim.CommandTardimBase; -import com.swdteam.common.command.tardim.CommandTravel; -import com.swdteam.common.data.DimensionMapReloadListener; -import com.swdteam.common.init.TRDSounds; -import com.swdteam.common.init.TardimRegistry; -import com.swdteam.common.item.ItemTardim; -import com.swdteam.main.Tardim; -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimData.Location; -import com.swdteam.tardim.TardimManager; - -import dan200.computercraft.api.lua.LuaException; -import dan200.computercraft.api.lua.LuaFunction; -import dan200.computercraft.api.lua.ObjectLuaTable; -import dan200.computercraft.api.peripheral.IComputerAccess; -import dan200.computercraft.api.peripheral.IPeripheral; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.Holder; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.server.players.PlayerList; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.biome.Biome; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.levelgen.Heightmap; -import net.minecraft.world.phys.Vec3; -import net.minecraftforge.client.DimensionSpecialEffectsManager; -import su.a71.tardim_ic.tardim_ic.Registration; -import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; - -import net.minecraftforge.registries.ForgeRegistries; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.*; - - -public class DigitalInterfacePeripheral implements IPeripheral { - - private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral - private final IDigitalInterfaceEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates - /** - * @param tileEntity the tile entity of this peripheral - * @hidden - */ - public DigitalInterfacePeripheral(IDigitalInterfaceEntity tileEntity) { - this.tileEntity = tileEntity; - } - - /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" - * @hidden - */ - @Nonnull - @Override - public String getType() { return "digital_tardim_interface"; } - - /** Apparently CC uses this to check if the peripheral in front of a modem is this one - * @hidden - * @param iPeripheral The peripheral to compare against. This may be {@code null}. - * @return {@code true} if the peripheral is the same as this one. - */ - @Override - public boolean equals(@Nullable IPeripheral iPeripheral) { return this == iPeripheral; } - - /** Called when a computer disconnects from the peripheral - * @hidden - * @param computer The interface to the computer that is being detached. Remember that multiple computers can be - * attached to a peripheral at once. - */ - @Override - public void detach(@Nonnull IComputerAccess computer) { connectedComputers.remove(computer); } - - /** Called when a computer connects to the peripheral - * @hidden - * @param computer The interface to the computer that is being attached. Remember that multiple computers can be - * attached to a peripheral at once. - */ - @Override - public void attach(@Nonnull IComputerAccess computer) { connectedComputers.add(computer); } - - /** - * I *think* I use this to get peripheral's world position - * @hidden - * @return - */ - public IDigitalInterfaceEntity getTileEntity() { - return tileEntity; - } - - /** - * Get TARDIM's data, which we need for *every* function - *

- * We can't do a simple - * TardimManager.getFromPos(getTileEntity().getPos()) - *

- * because if someone attempts to call a method outside a TARDIM, this would create a new TARDIM/Point to the one with ID of 0 (Due to the way TardimSaveHandler.loadTardisData works). - * Which is obviously not what we want. - *

- * So instead we use this, and get the ability to give user a LuaException if they think that fiddling with time is funny - * This is mostly a copy of getIDForXZ function with some added checks - * - * @return TardimData of the TARDIM that the peripheral is in - * @hidden - */ - public TardimData getTardimDataInitial() { - int X = getTileEntity().getPos().getX(), Z = getTileEntity().getPos().getZ(); - - int index = 0; - int x = 0; - int y = 0; - int dx = 0; - int dy = 1; - int segment_length = 1; - int segment_passed = 0; - boolean found = false; - long timecheck = System.currentTimeMillis(); - - while(true) { - if (System.currentTimeMillis() - timecheck > 10000L) { - System.out.println("Finding ID from XZ Coordinates is taking too long!"); - break; - } - - if (X >= x * TardimManager.INTERIOR_BOUNDS - && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS - && Z >= y * TardimManager.INTERIOR_BOUNDS - && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { - found = true; - break; - } - - x += dx; - y += dy; - if (++segment_passed == segment_length) { - segment_passed = 0; - int buffer = dy; - dy = -dx; - dx = buffer; - if (buffer == 0) { - ++segment_length; - } - } - - ++index; - } - - // We really don't want to access a ghost TARDIM, do we? - // If we fail checks here are not inside a TARDIM - if (!found) { - return null; - } - TardimData T = TardimManager.getTardim(index); - if (T.getCurrentLocation() == null || T.getOwnerName() == null) { - return null; - } - - return T; - } - - public TardimData getTardimData() throws LuaException { - TardimData data = this.getTileEntity().getTardim(); - if (data == null || data.getCurrentLocation() == null || data.getOwnerName() == null) { - throw new LuaException("Peripheral is not inside a TARDIM"); - } - return data; - } - - // Peripheral methods =============================================================== - - /** - * Return how much fuel is left in the TARDIM - * - * @return Fuel left (Out of 100) - */ - @LuaFunction(mainThread = true) - public final double getFuel() throws LuaException { - return getTardimData().getFuel(); - } - - /** - * Get how much fuel it would take to travel to the destination - * @return Amount of fuel needed (Out of 100) - */ - @LuaFunction(mainThread = true) - public final double calculateFuelForJourney() throws LuaException { - TardimData data = getTardimData(); - - if (data.getTravelLocation() == null) return 0; - - Location curr = data.getCurrentLocation(); - Location dest = data.getTravelLocation(); - - double fuel = 0.0; - - if (curr.getLevel() != dest.getLevel()) - { - fuel = 10.0; - } - - Vec3 posA = new Vec3(curr.getPos().getX(), curr.getPos().getY(), curr.getPos().getZ()); - Vec3 posB = new Vec3(dest.getPos().getX(), dest.getPos().getY(), dest.getPos().getZ()); - fuel += posA.distanceTo(posB) / 100.0; - if (fuel > 100.0) fuel = 100.0; - - return fuel; - } - - /** - * Check whether the TARDIM is locked - * @return true if locked, false if not - */ - @LuaFunction(mainThread = true) - public final boolean isLocked() throws LuaException { - return getTardimData().isLocked(); - } - - /** - * Check whether the TARDIM is in flight - * @return true if in flight, false if not - */ - @LuaFunction(mainThread = true) - public final boolean isInFlight() throws LuaException { return getTardimData().isInFlight(); } - - /** - * Supposedly gets UNIX timestamp of when we entered flight - * @return UNIX timestamp if in flight, -1 if not - */ - @LuaFunction(mainThread = true) - public final long getTimeEnteredFlight() throws LuaException { - TardimData data = getTardimData(); - if (!data.isInFlight()) { - return -1; - } - return data.getTimeEnteredFlight(); - } - - /** - * Get username of the TARDIM's owner - * @return String of the owner's username - */ - @LuaFunction(mainThread = true) - public final String getOwnerName() throws LuaException { - TardimData data = getTardimData(); - return data.getOwnerName(); - } - - /** - * Lock/unlock the TARDIM - * @param locked true to lock, false to unlock - */ - @LuaFunction(mainThread = true) - public final void setLocked(boolean locked) throws LuaException { - getTardimData().setLocked(locked); - } - - /** - * Get the current location of the TARDIM - * @return ObjectLuaTable of the current location with the following keys: - *

- */ - @LuaFunction(mainThread = true) - public final ObjectLuaTable getCurrentLocation() throws LuaException { - Location loc = getTardimData().getCurrentLocation(); - return new ObjectLuaTable(Map.of( - "dimension", loc.getLevel().location().toString(), - "pos", new ObjectLuaTable(Map.of( - "x", loc.getPos().getX(), - "y", loc.getPos().getY(), - "z", loc.getPos().getZ() - )), - "facing", loc.getFacing().toString() - )); - } - - /** - * Get the current location of the TARDIM - * @return if there is no destination returns null. - *

- * Otherwise, ObjectLuaTable of the current location with the following keys: - *

    - *
  • dimension - String of the dimension
  • - *
  • pos - table with the keys x, y, z that hold numbers
  • - *
  • facing - String of the facing
  • - *
- */ - @LuaFunction(mainThread = true) - public final ObjectLuaTable getTravelLocation() throws LuaException { - TardimData data = getTardimData(); - if (data.getTravelLocation() == null) { - data.setTravelLocation(data.getCurrentLocation()); - } - Location loc = data.getTravelLocation(); - return new ObjectLuaTable(Map.of( - "dimension", loc.getLevel().location().toString(), - "pos", new ObjectLuaTable(Map.of( - "x", loc.getPos().getX(), - "y", loc.getPos().getY(), - "z", loc.getPos().getZ() - )), - "facing", loc.getFacing().toString() - )); - } - - /** - * Get list of the TARDIM owner's companions - * @return ObjectLuaTable containing the usernames of the companions - */ - @LuaFunction(mainThread = true) - public final ObjectLuaTable getCompanions() throws LuaException { - TardimData data = getTardimData(); - Map companions = new HashMap<>(); - for (int i = 0; i < data.getCompanions().size(); i++) { - companions.put(i + 1, data.getCompanions().get(i).getUsername()); - } - return new ObjectLuaTable(companions); - } - - - /** - * Set dimension for the TARDIM to travel to - *

- * This is a serious hazard right now due to the fact that I am unable to check if the dimension is valid. - *

- * TODO: If invalid dimension is given, the TARDIM is unable to land until the dimension is changed. Add proper checks. - * @param dimension String of the dimension e.g. "minecraft:overworld" - */ - @LuaFunction(mainThread = true) - public final void setDimension(String dimension) throws LuaException { - TardimData data = getTardimData(); - - String key = dimension; - dimension = DimensionMapReloadListener.toTitleCase(dimension); - if (TardimManager.DIMENSION_MAP.containsKey(dimension)) { - key = (String)TardimManager.DIMENSION_MAP.get(dimension); - } else { - dimension = dimension.toLowerCase(); - } - - if (!CommandTravel.isValidPath(key)) { - throw new LuaException("Invalid dimension"); - } else { - ResourceKey dim = ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(dimension)); - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } - - data.getTravelLocation().setLocation(dim); - } - } - - /** - * Set the destination's coordinates - * @param x X coordinate - * @param y Y coordinate - * @param z Z coordinate - */ - @LuaFunction(mainThread = true) - public final void setTravelLocation(int x, int y, int z) throws LuaException { - TardimData data = getTardimData(); - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } - - data.getTravelLocation().setPosition(x, y, z); - } - - - /** - * Set destination to the TARDIM's owner's home (Must be online) - */ - @LuaFunction(mainThread = true) - public final void home() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return; - } - TardimData data = getTardimData(); - - UUID uuid = data.getOwner(); - String username = data.getOwnerName(); - if (uuid == null || username == null) { - throw new LuaException("TARDIM has no owner"); - } - - PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); - ServerPlayer player = playerList.getPlayer(uuid); - if (player == null) { - throw new LuaException("TARDIM owner is not online"); - } - - ResourceKey dim = player.getRespawnDimension(); - BlockPos pos = player.getRespawnPosition(); - if (pos == null) { - throw new LuaException("TARDIM owner has no home"); - } - - setDimension(dim.location().toString()); - setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); - } - - /** - * Set destination for a player's location (Player must be online) - * @param username - String of the username of the player - */ - @LuaFunction(mainThread = true) - public final void locatePlayer(String username) throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return; - } - - PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); - - ServerPlayer player = playerList.getPlayerByName(username); - if (player == null) { - throw new LuaException("Player not found"); - } - - ResourceKey dim = player.getCommandSenderWorld().dimension(); - BlockPos pos = player.blockPosition(); - - setDimension(dim.location().toString()); - setTravelLocation(pos.getX(), pos.getY(), pos.getZ()); - } - - /** - * Get online players. Useful for making a GUI for the locate function or just a nice dashboard. - * - * @return ObjectLuaTable of the online players - */ - @LuaFunction(mainThread = true) - public final ObjectLuaTable getOnlinePlayers() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return null; - } - - PlayerList playerList = this.tileEntity.getLevel().getServer().getPlayerList(); - Map players = new HashMap<>(); - for (int i = 0; i < playerList.getPlayers().size(); i++) { - players.put(i + 1, playerList.getPlayers().get(i).getGameProfile().getName()); - } - - return new ObjectLuaTable(players); - } - - /** - * Get the rotation of the TARDIM's door - * @return String of the door rotation ("north", "south", "east", "west") - */ - @LuaFunction(mainThread = true) - public final String getDoorRotation() throws LuaException { - TardimData data = getTardimData(); - Direction rotation = data.getTravelLocation().getFacing(); - switch (rotation) { - case NORTH -> { - return "north"; - } - case EAST -> { - return "east"; - } - case SOUTH -> { - return "south"; - } - case WEST -> { - return "west"; - } - default -> { - throw new LuaException("Invalid door rotation"); - } - } - } - - /** - * Set the rotation of the TARDIM's door - * @param rotation String of the door rotation ("north", "south", "east", "west") - */ - @LuaFunction(mainThread = true) - public final void setDoorRotation(String rotation) throws LuaException { - TardimData data = getTardimData(); - switch (rotation) { - case "north" -> data.getTravelLocation().setFacing(Direction.NORTH); - case "east" -> data.getTravelLocation().setFacing(Direction.EAST); - case "south" -> data.getTravelLocation().setFacing(Direction.SOUTH); - case "west" -> data.getTravelLocation().setFacing(Direction.WEST); - default -> throw new LuaException("Invalid door rotation"); - } - - data.save(); - } - - /** - * Toggle the rotation of the TARDIM's door (north -> east -> south -> west -> north) - */ - @LuaFunction(mainThread = true) - public final void toggleDoorRotation() throws LuaException { - TardimData data = getTardimData(); - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } - - if (data.getTravelLocation().getFacing() == null) { - data.getTravelLocation().setFacing(Direction.NORTH); - } - - switch (data.getTravelLocation().getFacing()) { - case NORTH -> data.getTravelLocation().setFacing(Direction.EAST); - case EAST -> data.getTravelLocation().setFacing(Direction.SOUTH); - case SOUTH -> data.getTravelLocation().setFacing(Direction.WEST); - case WEST -> data.getTravelLocation().setFacing(Direction.NORTH); - default -> data.getTravelLocation().setFacing(Direction.NORTH); - } - - data.save(); - } - - /** - * Add a number to the destination's coordinates - * @param axis String of the axis ("x", "y", "z") - * @param amount Number to add to the axis - */ - @LuaFunction(mainThread = true) - public final void coordAdd(String axis, int amount) throws LuaException { - TardimData data = getTardimData(); - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } - - Location location = data.getTravelLocation(); - switch (axis) { - case "x" -> location.addPosition(amount, 0, 0); - case "y" -> location.addPosition(0, amount, 0); - case "z" -> location.addPosition(0, 0, amount); - default -> throw new LuaException("Invalid axis"); - } - } - - /** - * Dematerialize the TARDIM - */ - @LuaFunction(mainThread = true) - public final void demat() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return; - } - - TardimData data = getTardimData(); - - if (data.isInFlight()) { - throw new LuaException("TARDIM is already in flight"); - } - Location loc = data.getCurrentLocation(); - ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); - ItemTardim.destroyTardim(level, loc.getPos(), Direction.NORTH); - data.setInFlight(true); - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } - - // TODO: This is a horrendous way of doing this. Please fix. - String level_str = "tardim:tardis_dimension"; - this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_TAKEOFF.get(), SoundSource.AMBIENT, 1.0F, 1.0F); - - data.save(); - } - - /** - * Materialize the TARDIM at the destination - *

- * Has a LOT of checks to make sure the TARDIM can materialize, so please implement error handling if you use this. - */ - @LuaFunction(mainThread = true) - public final void remat() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return; - } - - TardimData data = getTardimData(); - - if (data.isInFlight()) { - if (data.getTimeEnteredFlight() < System.currentTimeMillis() / 1000L - 10L) { - Location loc = data.getTravelLocation(); - ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); - double fuel = data.calculateFuelForJourney( - this.tileEntity.getLevel().getServer().getLevel(data.getCurrentLocation().getLevel()), level, data.getCurrentLocation().getPos(), loc.getPos() - ); - if (data.getFuel() >= fuel) { - level.getChunk(loc.getPos()); - BlockPos landingPosButBetter = CommandTravel.getLandingPosition(level, loc.getPos()); - boolean recalc = false; - - for(int jj = 0; jj < 32; ++jj) { - if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { - BlockPos pos2 = landingPosButBetter.offset( - level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1), - 0, - level.random.nextInt(10) * (level.random.nextBoolean() ? 1 : -1) - ); - landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); - if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { - recalc = true; - break; - } - } - } - - if (!recalc) { - for(int jj = 0; jj < 32; ++jj) { - if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { - BlockPos pos2 = landingPosButBetter.offset( - level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1), - 0, - level.random.nextInt(30) * (level.random.nextBoolean() ? 1 : -1) - ); - landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); - if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { - recalc = true; - break; - } - } - } - } - - if (!recalc) { - for(int jj = 0; jj < 32; ++jj) { - if (!Block.canSupportRigidBlock(level, landingPosButBetter.below())) { - BlockPos pos2 = landingPosButBetter.offset( - level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1), - 0, - level.random.nextInt(50) * (level.random.nextBoolean() ? 1 : -1) - ); - landingPosButBetter = CommandTravel.getLandingPosition(level, pos2); - if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { - recalc = true; - break; - } - } - } - } - - if (Block.canSupportRigidBlock(level, landingPosButBetter.below())) { - loc.setPosition(landingPosButBetter.getX(), landingPosButBetter.getY(), landingPosButBetter.getZ()); - if (Tardim.isPosValid(level, loc.getPos())) { - TardimRegistry.TardimBuilder builder = TardimRegistry.getTardimBuilder(data.getTardimID()); - builder.buildTardim(level, loc.getPos(), data.getTravelLocation().getFacing(), data.getId()); - data.setCurrentLocation(data.getTravelLocation()); - data.setTravelLocation(null); - data.setInFlight(false); - data.addFuel(-fuel); - data.save(); - -// if (!recalc) { -// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); -// } else { -// sendResponse(player, "Landing recalculated due to obstruction", CommandTardimBase.ResponseType.INFO, source); -// sendResponse(player, "TARDIM is landing", CommandTardimBase.ResponseType.COMPLETE, source); -// } - - String level_str = "tardim:tardis_dimension"; - this.tileEntity.getLevel().getServer().getLevel(ResourceKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(level_str))).playSound(null, this.tileEntity.getPos(), (SoundEvent) TRDSounds.TARDIM_LANDING.get(), SoundSource.AMBIENT, 1.0F, 1.0F); - - } else { - throw new LuaException("TARDIM landing obstructed. Aborting..."); - } - } else { - throw new LuaException("TARDIM landing obstructed. Aborting..."); - } - } else { - throw new LuaException("Not enough fuel for journey"); - } - } else { - throw new LuaException("TARDIM is still taking off"); - } - } else { - throw new LuaException("TARDIM has already landed"); - } - } - - /** - * Locate a biome - * @param biome_str String of the biome e.g. "minecraft:plains" - */ - @LuaFunction(mainThread = true) - public final void locateBiome(String biome_str) throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return; - } - - TardimData data = getTardimData(); - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } - - Optional biome = this.tileEntity.getLevel().getServer() - .registryAccess() - .registryOrThrow(Registry.BIOME_REGISTRY) - .getOptional(new ResourceLocation(biome_str)); - if (biome != null && biome.isPresent()) { - if (data.getTravelLocation() == null) { - data.setTravelLocation(new Location(data.getCurrentLocation())); - } - - ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(data.getTravelLocation().getLevel()); - BlockPos blockpos = new BlockPos( - data.getTravelLocation().getPos().getX(), - level.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, data.getTravelLocation().getPos()).getY(), - data.getTravelLocation().getPos().getZ() - ); - BlockPos blockpos1 = this.findNearestBiome(level, (Biome)biome.get(), blockpos, 6400, 8); - if (blockpos1 != null) { - data.getTravelLocation().setPosition(blockpos1.getX(), blockpos1.getY(), blockpos1.getZ()); - data.save(); - } else { - throw new LuaException("Biome not found"); - } - } else { - throw new LuaException("Unknown biome"); - } - } - - /** - * Helper method to find a biome - * @param level ServerLevel to search - * @param biome Biome to find - * @param pos BlockPos to start from - * @param i Idk what this is, likely a radius - * @param j No idea about this either - * @return BlockPos of the biome - * @hidden - */ - public BlockPos findNearestBiome(ServerLevel level, Biome biome, BlockPos pos, int i, int j) { - Pair> bb = level.getChunkSource() - .getGenerator() - .getBiomeSource() - .findBiomeHorizontal( - pos.getX(), - pos.getY(), - pos.getZ(), - i, - j, - b_val -> b_val.value() == biome, - level.random, - true, - level.getChunkSource().randomState().sampler() - ); - return bb != null && bb.getFirst() != null ? (BlockPos)bb.getFirst() : null; - } - - /** - * Set the skin of the TARDIM - * @param skin Skin name to change to - * @hidden - */ - @LuaFunction(mainThread = true) - public final void setSkin(String skin) throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return; - } - - TardimData data = getTardimData(); - - ResourceLocation skinToApply = null; - Iterator var13 = TardimRegistry.getRegistry().keySet().iterator(); - - label39: { - ResourceLocation builder; - TardimRegistry.TardimBuilder b; - do { - if (!var13.hasNext()) { - break label39; - } - - builder = (ResourceLocation)var13.next(); - b = TardimRegistry.getTardimBuilder(builder); - } while(!b.getDisplayName().equalsIgnoreCase(skin) && !builder.toString().equalsIgnoreCase(skin)); - - skinToApply = builder; - } - - if (skinToApply == null) { - throw new LuaException("Skin '" + skin + "' not found"); - } - - TardimData.Location loc = data.getCurrentLocation(); - ServerLevel level = this.tileEntity.getLevel().getServer().getLevel(loc.getLevel()); - data.setIdentifier(skinToApply); - - // FakePlayer... - TardimRegistry.getTardimBuilder(skinToApply).changeTardimSkin(data, level, loc.getPos(), loc.getFacing(), new FakePlayer(this.tileEntity.getLevel(), this.tileEntity.getPos())); - } - - /** - * Get all available TARDIM skins. Useful for making a GUI skin selection. - * - * @return ObjectLuaTable of the available skins - */ - @LuaFunction(mainThread = true) - public final ObjectLuaTable getSkins() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return null; - } - - Map skins = new HashMap<>(); - - Iterator var5 = TardimRegistry.getRegistry().keySet().iterator(); - int i = 0; - while(var5.hasNext()) { - ResourceLocation builder = (ResourceLocation)var5.next(); - TardimRegistry.TardimBuilder b = TardimRegistry.getTardimBuilder(builder); - skins.put(i + 1, b.getDisplayName()); - i++; - } - - return new ObjectLuaTable(skins); - } - - /** - * Play cloister bell sound. - */ - @LuaFunction(mainThread = true) - public final void cloisterBell() throws LuaException { - if (this.tileEntity.getLevel().isClientSide()) { - return; - } - try { - Level lvl = this.tileEntity.getLevel(); - if (!lvl.isClientSide) { - lvl.playSound( - null, - this.tileEntity.getPos(), - Registration.CLOISTER_SOUND.get(), - SoundSource.BLOCKS, - 1.5f, - 1f - ); - } - } catch (Exception var9) { - throw new LuaException("There was an error trying to play the sound"); - } - } - - /** - * Get a table with all registered biomes' names. - * Useful for creating advanced navigation systems. - * @return ObjectLuaTable with all biomes' technical names - */ - @LuaFunction(mainThread = true) - public final ObjectLuaTable getBiomes() throws LuaException { - Map biomes = new HashMap<>(); - Registry biomeRegistry = tileEntity.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); - Iterator biome_it = biomeRegistry.keySet().iterator(); - int i = 0; - while (biome_it.hasNext()) { - biomes.put(i + 1, biome_it.next().toString()); - i++; - } - - return new ObjectLuaTable(biomes); - } - - /** - * Get a table with all registered dimensions' names. - * Useful for creating advanced navigation systems. - * @return ObjectLuaTable with all dimensions' technical names - */ - @LuaFunction(mainThread = true) - public final ObjectLuaTable getDimensions() throws LuaException { - Iterator dim_it = this.tileEntity.getLevel().getServer().getAllLevels().iterator(); // TODO: Does this really work? - Map dimensions = new HashMap<>(); - int i = 0; - while (dim_it.hasNext()) { - dimensions.put(i + 1, dim_it.next().dimension().location().toString()); - i++; - } - return new ObjectLuaTable(dimensions); - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java deleted file mode 100644 index d03667d..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/DigitalInterfaceTileEntity.java +++ /dev/null @@ -1,118 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; - -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.LazyOptional; - -import org.jetbrains.annotations.NotNull; -import su.a71.tardim_ic.tardim_ic.Registration; - -import dan200.computercraft.api.peripheral.IPeripheral; -import static dan200.computercraft.shared.Capabilities.CAPABILITY_PERIPHERAL; - -public class DigitalInterfaceTileEntity extends BlockEntity implements IDigitalInterfaceEntity { - public TardimData data; // Our TARDIM - - public DigitalInterfaceTileEntity(BlockPos pos, BlockState state) { - super(Registration.DIGITAL_TARDIM_INTERFACE_TILEENTITY.get(), pos, state); - this.data = getTardimDataInitial(); - } - - /** - * Our peripheral, we create a new peripheral for each new tile entity - */ - protected DigitalInterfacePeripheral peripheral = new DigitalInterfacePeripheral(this); - private LazyOptional peripheralCap; - public BlockPos getPos() { - return this.worldPosition; - } - - @Override - public TardimData getTardim() { - return this.data; - } - - /** - * When a computer modem tries to wrap our block, the modem will call getCapability to receive our peripheral. - * Then we just simply return a {@link LazyOptional} with our Peripheral - */ - @Override - @NotNull - public LazyOptional getCapability(@NotNull Capability cap, Direction direction) { - if (cap == CAPABILITY_PERIPHERAL) { - if (peripheralCap == null) { - peripheralCap = LazyOptional.of(() -> peripheral); - } - return peripheralCap.cast(); - } - return super.getCapability(cap, direction); - } - - public TardimData getTardimDataInitial() { - int X = this.getPos().getX(), Z = this.getPos().getZ(); - - int index = 0; - int x = 0; - int y = 0; - int dx = 0; - int dy = 1; - int segment_length = 1; - int segment_passed = 0; - boolean found = false; - long timecheck = System.currentTimeMillis(); - - while(true) { - if (System.currentTimeMillis() - timecheck > 10000L) { - System.out.println("Finding ID from XZ Coordinates is taking too long!"); - break; - } - - if (X >= x * TardimManager.INTERIOR_BOUNDS - && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS - && Z >= y * TardimManager.INTERIOR_BOUNDS - && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { - found = true; - break; - } - - x += dx; - y += dy; - if (++segment_passed == segment_length) { - segment_passed = 0; - int buffer = dy; - dy = -dx; - dx = buffer; - if (buffer == 0) { - ++segment_length; - } - } - - ++index; - } - - // We really don't want to access a ghost TARDIM, do we? - // If we fail checks here are not inside a TARDIM - if (!found) { - return null; - } - TardimData T = TardimManager.getTardim(index); - if (T.getCurrentLocation() == null || T.getOwnerName() == null) { - return null; - } - - return T; - } - - @Override - public void load(CompoundTag tag) { - super.load(tag); - this.data = getTardimDataInitial(); - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java deleted file mode 100644 index df5fe94..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/FakeDigitalInterfaceTileEntity.java +++ /dev/null @@ -1,89 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; - -public class FakeDigitalInterfaceTileEntity implements IDigitalInterfaceEntity { - public BlockPos blockPos; - public Level level; - public TardimData data; // Our TARDIM - - - FakeDigitalInterfaceTileEntity(BlockPos in_block, Level in_level) { - this.blockPos = in_block; - this.level = in_level; - this.data = getTardimDataInitial(); - } - - @Override - public BlockPos getPos() { - return this.blockPos; - } - - @Override - public Level getLevel() { - return this.level; - } - - @Override - public TardimData getTardim() { - return this.data; - } - - public TardimData getTardimDataInitial() { - int X = this.getPos().getX(), Z = this.getPos().getZ(); - - int index = 0; - int x = 0; - int y = 0; - int dx = 0; - int dy = 1; - int segment_length = 1; - int segment_passed = 0; - boolean found = false; - long timecheck = System.currentTimeMillis(); - - while(true) { - if (System.currentTimeMillis() - timecheck > 10000L) { - System.out.println("Finding ID from XZ Coordinates is taking too long!"); - break; - } - - if (X >= x * TardimManager.INTERIOR_BOUNDS - && X <= TardimManager.INTERIOR_BOUNDS + x * TardimManager.INTERIOR_BOUNDS - && Z >= y * TardimManager.INTERIOR_BOUNDS - && Z <= TardimManager.INTERIOR_BOUNDS + y * TardimManager.INTERIOR_BOUNDS) { - found = true; - break; - } - - x += dx; - y += dy; - if (++segment_passed == segment_length) { - segment_passed = 0; - int buffer = dy; - dy = -dx; - dx = buffer; - if (buffer == 0) { - ++segment_length; - } - } - - ++index; - } - - // We really don't want to access a ghost TARDIM, do we? - // If we fail checks here are not inside a TARDIM - if (!found) { - return null; - } - TardimData T = TardimManager.getTardim(index); - if (T.getCurrentLocation() == null || T.getOwnerName() == null) { - return null; - } - - return T; - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java deleted file mode 100644 index ccbb39c..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/digital_interface/IDigitalInterfaceEntity.java +++ /dev/null @@ -1,12 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.digital_interface; - -import com.swdteam.tardim.TardimData; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; - -public interface IDigitalInterfaceEntity { - public BlockPos getPos(); - public Level getLevel(); - - public TardimData getTardim(); -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java deleted file mode 100644 index 1e9262a..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/mixin/Commands.java +++ /dev/null @@ -1,18 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import com.swdteam.common.init.CommandManager; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import su.a71.tardim_ic.tardim_ic.registration.CommandInit; - -// TARDIM loads commands a bit later on Forge, so we have to use mixins for this :/ -@Mixin(value = CommandManager.class, remap = false) -public abstract class Commands { - @Inject(method="init()V", at=@At("TAIL")) - private static void init(CallbackInfo ci) { - CommandInit.init(); - System.out.println("TARDIM: IC added commands using mixin"); - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java deleted file mode 100644 index 675132b..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputBlock.java +++ /dev/null @@ -1,102 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.redstone_input; - -import com.swdteam.common.block.BlockBaseTardimPanel; -import com.swdteam.common.init.TRDDimensions; -import com.swdteam.common.init.TRDSounds; -import com.swdteam.network.NetworkHandler; -import com.swdteam.network.packets.PacketOpenEditGui; -import com.swdteam.tardim.TardimData; -import com.swdteam.tardim.TardimManager; -import com.swdteam.tileentity.TileEntityBaseTardimPanel; - -import net.minecraft.ChatFormatting; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.network.protocol.game.DebugPackets; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.EntityBlock; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Material; -import net.minecraft.world.phys.BlockHitResult; - -import org.jetbrains.annotations.NotNull; -import javax.annotation.Nullable; - -import su.a71.tardim_ic.tardim_ic.Registration; -import su.a71.tardim_ic.tardim_ic.utils.FakePlayer; - -public class RedstoneInputBlock extends BlockBaseTardimPanel implements EntityBlock { - public RedstoneInputBlock() { - super(Properties.of(Material.METAL).strength(2, 4).noOcclusion()); - } - - @Nullable - @Override - public BlockEntity newBlockEntity(@NotNull BlockPos pos, @NotNull BlockState state) { - return Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get().create(pos, state); - } - - @Override - public InteractionResult use(BlockState blockState, Level w, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult p_60508_) { - if (!w.isClientSide) { - - w.playSound((Player)null, blockPos, (SoundEvent) TRDSounds.TARDIM_BEEP.get(), SoundSource.BLOCKS, 0.3F, 0.5F); - - BlockEntity be = w.getBlockEntity(blockPos); - if (be instanceof TileEntityBaseTardimPanel && w.dimension() == TRDDimensions.TARDIS) { - TardimData data = TardimManager.getFromPos(blockPos); - if (data != null && data.hasPermission(player)) { - ((RedstoneInputTileEntity) be).lastPlayer = player.getGameProfile().getId(); - NetworkHandler.sendTo((ServerPlayer)player, new PacketOpenEditGui(1, blockPos)); - return InteractionResult.CONSUME; - } - - player.displayClientMessage( - Component.literal("You do not have permission").withStyle(ChatFormatting.DARK_RED).withStyle(ChatFormatting.BOLD), true - ); - } - } - - return InteractionResult.CONSUME; - } - - public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { - return true; - } - - public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean isMoving) { - DebugPackets.sendNeighborsUpdatePacket(level, blockPos); - - BlockEntity be = level.getBlockEntity(blockPos); - if (!(be instanceof RedstoneInputTileEntity)) { - return; - } - - // get redstone signal - Direction direction = blockState.getValue(FACING); - int redstoneSignal = level.getSignal(blockPos, direction); - if (redstoneSignal > 0 && !((RedstoneInputTileEntity) be).isPowered) { - ((RedstoneInputTileEntity) be).isPowered = true; - if (level.dimension() == TRDDimensions.TARDIS) { - TardimData data = TardimManager.getFromPos(blockPos); - if (data != null && !level.isClientSide && ((RedstoneInputTileEntity) be).lastPlayer != null) { - if (((TileEntityBaseTardimPanel)be).hasCommand()) { - ((TileEntityBaseTardimPanel)be).execute(new FakePlayer(level, blockPos, ((RedstoneInputTileEntity) be).lastPlayer)); - } - } - } - - } else if (redstoneSignal == 0 && ((RedstoneInputTileEntity) be).isPowered) - ((RedstoneInputTileEntity) be).isPowered = false; - } -} diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java deleted file mode 100644 index 06f4303..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redstone_input/RedstoneInputTileEntity.java +++ /dev/null @@ -1,41 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.redstone_input; - -import com.swdteam.tileentity.TileEntityBaseTardimPanel; - -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.level.block.state.BlockState; -import su.a71.tardim_ic.tardim_ic.Registration; - -import java.util.UUID; - - -public class RedstoneInputTileEntity extends TileEntityBaseTardimPanel { - public boolean isPowered = false; - public UUID lastPlayer = null; - - public RedstoneInputTileEntity(BlockPos pos, BlockState state) { - super(Registration.REDSTONE_TARDIM_INPUT_TILEENTITY.get(), pos, state); - } - - public BlockPos getPos() { - return this.worldPosition; - } - - - @Override - public void saveAdditional(CompoundTag tag) { - tag.putBoolean("is_powered", isPowered); - if (lastPlayer != null) { - tag.putUUID("last_player", lastPlayer); - } - super.saveAdditional(tag); - } - - @Override - public void load(CompoundTag tag) { - super.load(tag); - isPowered = tag.getBoolean("is_powered"); - lastPlayer = tag.getUUID("last_player"); - } -} \ No newline at end of file diff --git a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java b/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java deleted file mode 100644 index 20be2d0..0000000 --- a/Forge/src/main/java/su/a71/tardim_ic/tardim_ic/registration/CommandInit.java +++ /dev/null @@ -1,17 +0,0 @@ -package su.a71.tardim_ic.tardim_ic.registration; - - -import su.a71.tardim_ic.tardim_ic.command.CommandListBiomes; -import su.a71.tardim_ic.tardim_ic.command.CommandListDimensions; -import su.a71.tardim_ic.tardim_ic.command.CommandModemTransmit; -import su.a71.tardim_ic.tardim_ic.command.CommandCloisterBell; -import com.swdteam.common.init.CommandManager; - -public class CommandInit { - public static void init() { - CommandManager.register(new CommandModemTransmit()); - CommandManager.register(new CommandCloisterBell()); - CommandManager.register(new CommandListBiomes()); - CommandManager.register(new CommandListDimensions()); - } -} diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index 23b11c1..7c9fa79 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -1,48 +1,28 @@ - modLoader = "javafml" #mandatory -loaderVersion="[43,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. -license = "MIT" +loaderVersion = "[46,)" #mandatory This is typically bumped every Minecraft version by Forge. See https://files.minecraftforge.net/ for a list of versions. +license = "C0-1.0" # Review your options at https://choosealicense.com/. +#issueTrackerURL="https://change.me.to.your.issue.tracker.example.invalid/" #optional [[mods]] #mandatory -# The modid of the mod -modId = "tardim_ic" #mandatory -version = "1.2" #mandatory -# A display name for the mod -displayName = "TARDIM: In Control" #mandatory -# The description text for the mod (multi line!) (#mandatory) +modId = "multiloader" #mandatory +version = "${file.jarVersion}" #mandatory +displayName = "${mod_name}" #mandatory +#updateJSONURL="https://change.me.example.invalid/updates.json" #optional (see https://mcforge.readthedocs.io/en/latest/gettingstarted/autoupdate/) +#displayURL="https://change.me.to.your.mods.homepage.example.invalid/" #optional (displayed in the mod UI) +logoFile = "multiloader.png" #optional (needs to be in the root of your mod jar (root of your 'resources' folder)) +credits = "Thanks for this example mod goes to Java" #optional +authors = "${mod_author}" #optional description = ''' - All of time and space, now automated and improved. This mod aims to make TARDIM even better. -''' -logoFile = "icon.png" -authors = "Andrew_7_1" -# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. -[[dependencies.tardim_ic]] #optional -# the modid of the dependency +This is a long form description of the mod. You can write whatever you want here +''' #mandatory (Supports multiline text) +[[dependencies.multiloader]] #optional modId = "forge" #mandatory -# Does this dependency have to exist - if not, ordering below must be specified mandatory = true #mandatory -# The version range of the dependency -versionRange="[43,)" #mandatory -# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory -ordering = "NONE" -# Side this dependency is applied on - BOTH, CLIENT or SERVER -side = "BOTH" -# Here's another dependency -[[dependencies.tardim_ic]] -modId = "computercraft" -mandatory = true -versionRange = "1.95.3" -ordering = "NONE" -side = "BOTH" -[[dependencies.tardim_ic]] -modId = "tardim" -mandatory = true -versionRange = "1.2.2" -ordering = "AFTER" -side = "BOTH" -[[dependencies.tardim_ic]] +versionRange = "[46,)" #mandatory +ordering = "NONE" # The order that this dependency should load in relation to your mod, required to be either 'BEFORE' or 'AFTER' if the dependency is not mandatory +side = "BOTH" # Side this dependency is applied on - 'BOTH', 'CLIENT' or 'SERVER' +[[dependencies.multiloader]] modId = "minecraft" mandatory = true -# This version range declares a minimum of the current minecraft version up to but not including the next major version -versionRange = "1.19.2" +versionRange = "[1.20,1.21)" ordering = "NONE" -side = "BOTH" \ No newline at end of file +side = "BOTH" diff --git a/Forge/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper b/Forge/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper new file mode 100644 index 0000000..ff2910d --- /dev/null +++ b/Forge/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper @@ -0,0 +1 @@ +com.example.examplemod.platform.ForgePlatformHelper \ No newline at end of file diff --git a/Forge/src/main/resources/examplemod.forge.mixins.json b/Forge/src/main/resources/examplemod.forge.mixins.json new file mode 100644 index 0000000..95882ac --- /dev/null +++ b/Forge/src/main/resources/examplemod.forge.mixins.json @@ -0,0 +1,17 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "com.example.examplemod.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "client": [ + "MixinTitleScreen" + ], + "server": [ + ], + "injectors": { + "defaultRequire": 1 + } +} \ No newline at end of file diff --git a/Forge/src/main/resources/mixins.tardim_ic.json b/Forge/src/main/resources/mixins.tardim_ic.json deleted file mode 100644 index 68e23e1..0000000 --- a/Forge/src/main/resources/mixins.tardim_ic.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "required": true, - "package": "su.a71.tardim_ic.tardim_ic.mixin", - "compatibilityLevel": "JAVA_17", - "refmap": "refmap.tardim_ic.json", - "mixins": [ - "Commands" - ], - "client": [ - ], - "injectors": { - "defaultRequire": 1 - }, - "minVersion": "0.8.4" -} \ No newline at end of file diff --git a/SWD_MOMENT.txt b/SWD_MOMENT.txt index e3487d8..8e6d1d4 100644 --- a/SWD_MOMENT.txt +++ b/SWD_MOMENT.txt @@ -8,7 +8,6 @@ return new ResourceLocation("tutorial", "tardim_dimension_lookup"); } 5.1 Forge's MANIFEST.MF too! -6. Panel buttons might still be broken on 1.2.2 1.19.2 Andrew71's proposals: 1. Quick-return command diff --git a/TODO b/TODO new file mode 100644 index 0000000..babc252 --- /dev/null +++ b/TODO @@ -0,0 +1,5 @@ +== TODO for v1.2 == +(Yes we had a lot of these) + +* Good-looking documentation (MKDocs maybe?) hosted on https://tardim.a71.su +* Full 1.20 port diff --git a/TODO.txt b/TODO.txt deleted file mode 100644 index e0e8cc1..0000000 --- a/TODO.txt +++ /dev/null @@ -1,95 +0,0 @@ -TODO for 1.2 and beyond -re-written 21.06.23 - -NEW ==================== - -Blocks: - Cartridge Loader - 2 buttons, one to load information from a cartridge, another to write it. - Has a slot where when r-clicked with a cartridge inserts it/Takes it out - TARDIM Dock - Has a GUI, where you can configure: - * Name/id - * Landing facing - * White/Blacklist of users who can land - * (Potentially) Fallback id if this one is disabled - When configured, a CC method/TARDIM command can take you to it - When powered by a lever, no TARDIM can land (and potentially take off) - Food Machine - 2 buttons. One changed chosen food (hopefully shown on screen), another throws it out. - Uses a bit of fuel but you get FOOD! -Items - Personal Jammer - When worn, other players are unable to locate the user with /locate command - Location cartridge - Contains coordinates, dimension of place and date when it was written to (potentially other metadata using CC) - Can be locked like a map - Potentially can be inserted into a disk drive peripheral - -Compat: - CC: - * Look into what other things can be improved, how to automate doc creation - * Add creative digital TARDIM interface... (maybe remove TARDIM from item name?) - * Add a craftable treasure disk with pre-installed useful programs - Create: - Update to 0.5.1, add more display sources - -Code: - Datapack-driven way to control where a TARDIM can land and at what price. - -Achievements: -(need to decide on root) - "Nobody needs soup more than me" - Get soup from TARDIM's food machine - - "Power of the Redstone" - Activate a redstone input - - "From Russia with love" - Set exterior to Soviet Chronobox (or any other potential USSR-themed exteriors) - - "Cyber-Upgrade" - Craft a digital interface - - "???" - Register a dock - - "It appears to be... jammed!" - "I've lost the bleeps, I lost the sweeps, and I lost the creeps." - Put on a location jammer - - "I will always remember..." - Save (or maybe lock like a map?) a location cartridge - - -UPDATES ================ - -Blocks: - Redstone TARDIM Interface - add powered blockstate - (TARDIM) Fuel Storage - add comparator output based on fuel (0 - 9 I think) - (TARDIM) Time Rotor - add comparator/redstone output when in flight -Code: - Add config&datapack support (e.g. disable compat, more food machine food, only getters from digital interface) - Make 1WTC fix package names on forge and further improve multi-loader structure - (so that it's not just Fabric to Forge translation at last second). - Overall some code from TARDIM: IC might make its way into TARDIM hopefully - Try to smash all TODOs and warnings -Outside appearance: - Make a proper wiki/docs with CC methods, item recipes and explanations. Maybe even technical things. - Update README and Modrinth/Curse pages - Look into re-licensing and/or making proper public facing source code - Improve Discord server - Improve/Change icon - Make background image for modrinth - -LOOK INTO ============== -Things to overall re-search -* Applications for SWD Discord moderator. Could be a path to actually getting the bloody source code access -* Making TARDIM doors sync between TARDIM and external dimension -* Some kind of CC scanner method to see the outside (and?) GUI panel that lets you see said outside (or pre-installed iso. program) - see: dev9551's isometric renderer (or pine3d) -* Advanced drive/fuel storage for interstellar travel. Like a "stores 10000 fuel but you have to use it at once" -* Change block appearance based on item name when placed (like Supplementaries) -* More Create compat: engine powered by tardim fuel and way to "wind up" the TARDIM -* (Likely only if access to TARDIM source) Weblate for localisation -* Possibly an enchantment that works same as personal jammer \ No newline at end of file diff --git a/build.gradle b/build.gradle index c789a22..0628cf9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,13 @@ +plugins { + id 'fabric-loom' version '1.2-SNAPSHOT' apply(false) + id 'net.minecraftforge.gradle' version '[6.0,6.2)' apply(false) + id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT' apply(false) + id("org.spongepowered.mixin") version "0.7-SNAPSHOT" apply(false) +} + subprojects { - apply plugin: 'java' - + java.toolchain.languageVersion = JavaLanguageVersion.of(17) java.withSourcesJar() java.withJavadocJar() @@ -19,7 +25,7 @@ subprojects { 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_author, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), - 'Timestamp' : System.currentTimeMillis(), + 'Timestamp' : System.currentTimeMillis(), 'Built-On-Java' : "${System.getProperty('java.vm.version')} (${System.getProperty('java.vm.vendor')})", 'Built-On-Minecraft' : minecraft_version ]) @@ -33,34 +39,43 @@ subprojects { } repositories { - mavenCentral() - maven { name = 'Sponge / Mixin' url = 'https://repo.spongepowered.org/repository/maven-public/' } - maven { - name = 'BlameJared Maven (CrT / Bookshelf)' + name = 'BlameJared Maven (JEI / CraftTweaker / Bookshelf)' url = 'https://maven.blamejared.com' } - maven { url 'https://squiddev.cc/maven/' } - maven { url "https://cursemaven.com"} + // CC: Tweaked + maven { + url "https://squiddev.cc/maven/" + content { + includeGroup("cc.tweaked") + includeModule("org.squiddev", "Cobalt") + } + } } tasks.withType(JavaCompile).configureEach { it.options.encoding = 'UTF-8' - it.options.release = 17 + it.options.getRelease().set(17) + } + + processResources { + filesMatching(['pack.mcmeta', 'fabric.mod.json', 'mods.toml', '*.mixins.json']) { + expand project.properties + } } // Disables Gradle's custom module metadata from being published to maven. The // metadata includes mapped dependencies which are not reasonably consumable by // other mod developers. - tasks.withType(GenerateModuleMetadata) { + tasks.withType(GenerateModuleMetadata).configureEach { enabled = false } -} +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 6b170a9..db34cb7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,18 +3,14 @@ version=1.2 group=su.a71.tardim_ic # Common -minecraft_version=1.19.2 -common_runs_enabled=false -common_client_run_name=Common Client -common_server_run_name=Common Server +minecraft_version=1.20 # Forge -forge_version=43.1.30 -//forge_ats_enabled=true +forge_version=46.0.12 # Fabric -fabric_version=0.62.0+1.19.2 -fabric_loader_version=0.14.10 +fabric_version=0.83.0+1.20 +fabric_loader_version=0.14.21 # Mod options mod_name=tardim_in_control @@ -25,4 +21,4 @@ mod_id=tardim_ic org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -cc_version=1.100.9 \ No newline at end of file +cc_version=1.105.0 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..249e5832f090a2944b7473328c07c9755baa3196 100644 GIT binary patch delta 10158 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 delta 9041 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661..fae0804 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index b4f908a..a69d9cb 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env bash +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,67 +17,101 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # Attempt to set APP_HOME + # Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MSYS* | MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -106,78 +140,101 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" esac fi -ARGV=("$@") -eval set -- $DEFAULT_JVM_OPTS +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. -IFS=$' -' read -rd '' -a JAVA_OPTS_ARR <<< "$(echo $JAVA_OPTS | xargs -n1)" -IFS=$' -' read -rd '' -a GRADLE_OPTS_ARR <<< "$(echo $GRADLE_OPTS | xargs -n1)" +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) -exec "$JAVACMD" "$@" "${JAVA_OPTS_ARR[@]}" "${GRADLE_OPTS_ARR[@]}" "-Dorg.gradle.appname=$APP_BASE_NAME" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "${ARGV[@]}" + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 107acd3..f127cfd 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,7 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/settings.gradle b/settings.gradle index 299e94c..ada7750 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,10 @@ pluginManagement { repositories { gradlePluginPortal() + maven { + name = 'Forge' + url = 'https://maven.minecraftforge.net/' + } maven { name = 'Fabric' url = 'https://maven.fabricmc.net/' @@ -12,5 +16,12 @@ pluginManagement { } } -rootProject.name = 'tardim_ic' -include("Common", "Fabric", "Forge") \ No newline at end of file +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' +} + +// This should match the folder name of the project, or else IDEA may complain (see https://youtrack.jetbrains.com/issue/IDEA-317606) +rootProject.name = 'Tardim-In-Control' +include("common") +include("fabric") +include("forge") From 4c6939e69f9cf972737e0fce607d24945144a367 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Wed, 2 Aug 2023 20:42:21 +0300 Subject: [PATCH 56/61] Game launches, blocks place. Now for the content. --- CHANGELOG.txt | 17 -- Common/build.gradle | 2 + .../java/su/a71/tardim_ic/Registration.java | 8 - .../tardim_ic/command/CommandListBiomes.java | 3 +- .../command/CommandListDimensions.java | 2 +- .../command/CommandModemTransmit.java | 4 +- .../a71/tardim_ic/command/CommandSender.java | 6 +- .../FakeTardimPeripheralTileEntity.java | 9 +- .../entity}/ITardimPeripheralTileEntity.java | 8 +- .../peripherals/FuelStoragePeripheral.java | 16 +- .../peripherals/TardimPeripheral.java | 25 +- .../peripherals/TardimScannerPeripheral.java | 15 +- .../peripherals/TimeRotorPeripheral.java | 15 +- .../tardim_ic/mixin/BetterFuelMapMixin.java | 12 +- .../mixin/BetterFuelStorageMixin.java | 1 - .../su/a71/tardim_ic/mixin/JammerMixin.java | 22 +- .../su/a71/tardim_ic/platform/Services.java | 4 +- .../platform/services/IPlatformHelper.java | 13 +- .../block/redstone_tardim_input_lit.json | 8 + ...input.mcmeta => redstone_input.png.mcmeta} | 0 ...t.mcmeta => redstone_input_lit.png.mcmeta} | 0 .../src/main/resources/tardim_ic.mixins.json | 27 +-- Common/tardim-1.2.2-dev.jar | Bin 0 -> 958804 bytes Fabric/build.gradle | 3 +- .../com/example/examplemod/ExampleMod.java | 18 -- .../examplemod/mixin/MixinTitleScreen.java | 20 -- .../platform/FabricPlatformHelper.java | 24 -- .../su/a71/tardim_ic/TardimInControl.java | 1 + .../blocks/food_machine/FoodMachineBlock.java | 6 +- ...ntity.java => FoodMachineBlockEntity.java} | 13 +- .../redstone_input/RedstoneInputBlock.java | 30 +-- ...ity.java => RedstoneInputBlockEntity.java} | 8 +- .../command/CommandCloisterBell.java | 20 +- .../registration => command}/CommandInit.java | 13 +- .../TardimPeripheralProvider.java | 37 --- .../DigitalInterfaceTileEntity.java | 14 -- .../DigitalInterfaceBlock.java | 9 +- .../DigitalInterfaceTileEntity.java | 14 ++ .../DigitalInterfacePeripheral.java | 103 ++++++--- .../fuel_storage/FuelLevelDisplaySource.java | 122 +++++----- .../RequiredFuelDisplaySource.java | 108 ++++----- .../jammer/PersonalJammerMaterial.java | 10 +- .../su/a71/tardim_ic/mixin/CommandsMixin.java | 22 ++ .../platform/FabricPlatformHelper.java | 3 +- .../SovietChronoboxTileEntity.java | 1 - .../registration/ComputerCraftCompat.java | 31 ++- .../tardim_ic/registration/CreateCompat.java | 18 +- .../tardim_ic/registration/Exteriors.java | 12 +- .../tardim_ic/registration/Registration.java | 64 ++++++ ...amplemod.platform.services.IPlatformHelper | 1 - ...ardim_ic.platform.services.IPlatformHelper | 1 + Fabric/src/main/resources/fabric.mod.json | 4 +- .../resources/tardim_ic.fabric.mixins.json | 3 +- .../com/example/examplemod/ExampleMod.java | 19 -- .../examplemod/mixin/MixinTitleScreen.java | 20 -- .../platform/ForgePlatformHelper.java | 26 --- .../redsone_input/RedstoneInputBlock.java | 100 ++++++++ .../RedstoneInputTileEntity.java | 19 ++ .../tardim_ic/tardim_ic/sonic/SonicProbe.java | 22 ++ .../blockstates/digital_tardim_interface.json | 7 + .../blockstates/redstone_tardim_input.json | 7 + .../main/resources/assets/tardim_ic/icon.png | Bin 0 -> 74055 bytes .../assets/tardim_ic/lang/en_uk.json | 5 + .../assets/tardim_ic/lang/en_us.json | 5 + .../resources/assets/tardim_ic/lang/rpr.json | 5 + .../assets/tardim_ic/lang/ru_ru.json | 5 + .../block/digital_tardim_interface.json | 213 ++++++++++++++++++ .../models/block/redstone_tardim_input.json | 36 +++ .../models/item/digital_tardim_interface.json | 23 ++ .../models/item/redstone_tardim_input.json | 23 ++ .../blocks/digital_tardim_interface.png | Bin 0 -> 1705 bytes .../tardim_ic/textures/blocks/red_contr.png | Bin 0 -> 927 bytes .../textures/blocks/red_contr.png.mcmeta | 7 + .../blocks/digital_tardim_interface.json | 20 ++ .../blocks/redstone_tardim_input.json | 20 ++ .../recipes/digital_tardim_interface.json | 30 +++ .../recipes/redstone_tardim_input.json | 26 +++ Forge/src/main/resources/pack.mcmeta | 7 + TODO | 13 +- build.gradle | 6 + docs/computercraft/index.md | 20 ++ .../peripherals/digital_interface.md | 1 + .../computercraft/peripherals/fuel_storage.md | 0 .../peripherals/tardim_scanner.md | 0 docs/computercraft/peripherals/time_rotor.md | 0 docs/index.md | 3 + docs/recipes.md | 1 + gradle.properties | 8 +- mkdocs.yml | 92 ++++++++ 89 files changed, 1191 insertions(+), 548 deletions(-) delete mode 100644 CHANGELOG.txt delete mode 100644 Common/src/main/java/su/a71/tardim_ic/Registration.java rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java (93%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java (94%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java (92%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/command/CommandSender.java (84%) rename {Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat => Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity}/FakeTardimPeripheralTileEntity.java (91%) rename {Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat => Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity}/ITardimPeripheralTileEntity.java (56%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java (81%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java (78%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java (92%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java (89%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java (76%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java (95%) rename {Fabric => Common}/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java (71%) create mode 100644 Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input_lit.json rename Common/src/main/resources/assets/tardim_ic/textures/block/{redstone_input.mcmeta => redstone_input.png.mcmeta} (100%) rename Common/src/main/resources/assets/tardim_ic/textures/block/{redstone_input_lit.mcmeta => redstone_input_lit.png.mcmeta} (100%) create mode 100644 Common/tardim-1.2.2-dev.jar delete mode 100644 Fabric/src/main/java/com/example/examplemod/ExampleMod.java delete mode 100644 Fabric/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java delete mode 100644 Fabric/src/main/java/com/example/examplemod/platform/FabricPlatformHelper.java rename Fabric/src/main/java/su/a71/tardim_ic/blocks/food_machine/{FoodMachineTileEntity.java => FoodMachineBlockEntity.java} (69%) rename Fabric/src/main/java/su/a71/tardim_ic/blocks/redstone_input/{RedstoneInputTileEntity.java => RedstoneInputBlockEntity.java} (76%) rename Fabric/src/main/java/su/a71/tardim_ic/{tardim_ic/registration => command}/CommandInit.java (59%) delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/TardimPeripheralProvider.java delete mode 100644 Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/blocks/digital_interface/DigitalInterfaceTileEntity.java rename Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/{blocks => }/digital_interface/DigitalInterfaceBlock.java (65%) create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/digital_interface/DigitalInterfaceTileEntity.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/mixin/CommandsMixin.java create mode 100644 Fabric/src/main/java/su/a71/tardim_ic/tardim_ic/registration/Registration.java delete mode 100644 Fabric/src/main/resources/META-INF/services/com.example.examplemod.platform.services.IPlatformHelper create mode 100644 Fabric/src/main/resources/META-INF/services/su.a71.tardim_ic.platform.services.IPlatformHelper delete mode 100644 Forge/src/main/java/com/example/examplemod/ExampleMod.java delete mode 100644 Forge/src/main/java/com/example/examplemod/mixin/MixinTitleScreen.java delete mode 100644 Forge/src/main/java/com/example/examplemod/platform/ForgePlatformHelper.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputBlock.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/redsone_input/RedstoneInputTileEntity.java create mode 100644 Forge/src/main/java/su/a71/tardim_ic/tardim_ic/sonic/SonicProbe.java create mode 100644 Forge/src/main/resources/assets/tardim_ic/blockstates/digital_tardim_interface.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/blockstates/redstone_tardim_input.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/icon.png create mode 100644 Forge/src/main/resources/assets/tardim_ic/lang/en_uk.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/lang/en_us.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/lang/rpr.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/lang/ru_ru.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/models/block/digital_tardim_interface.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/models/item/digital_tardim_interface.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/models/item/redstone_tardim_input.json create mode 100644 Forge/src/main/resources/assets/tardim_ic/textures/blocks/digital_tardim_interface.png create mode 100644 Forge/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png create mode 100644 Forge/src/main/resources/assets/tardim_ic/textures/blocks/red_contr.png.mcmeta create mode 100644 Forge/src/main/resources/data/tardim_ic/loot_tables/blocks/digital_tardim_interface.json create mode 100644 Forge/src/main/resources/data/tardim_ic/loot_tables/blocks/redstone_tardim_input.json create mode 100644 Forge/src/main/resources/data/tardim_ic/recipes/digital_tardim_interface.json create mode 100644 Forge/src/main/resources/data/tardim_ic/recipes/redstone_tardim_input.json create mode 100644 Forge/src/main/resources/pack.mcmeta create mode 100644 docs/computercraft/index.md create mode 100644 docs/computercraft/peripherals/digital_interface.md create mode 100644 docs/computercraft/peripherals/fuel_storage.md create mode 100644 docs/computercraft/peripherals/tardim_scanner.md create mode 100644 docs/computercraft/peripherals/time_rotor.md create mode 100644 docs/index.md create mode 100644 docs/recipes.md create mode 100644 mkdocs.yml diff --git a/CHANGELOG.txt b/CHANGELOG.txt deleted file mode 100644 index 9265a1a..0000000 --- a/CHANGELOG.txt +++ /dev/null @@ -1,17 +0,0 @@ -TODO: Rewrite for 1.20 - -Added list-biomes and list-dimensions TARDIM commands + Corresponding ComputerCraft methods - This is a community-requested QOL feature that lets users scroll through available biomes and, - with lua methods, make advanced navigation dashboards even easier. - -Computercraft compatibility improvements - Made ComputerCraft optional - Added peripherals for fuel storage, time rotor and scanner blocks - Added digital interface methods that list biomes and dimensions - -Added Create compatibility - Added various display sources for fuel storage - -Improved TARDIM's fuel system - Any item that can be used as fuel in furnace should now be able to power up a TARDIM - Buckets no longer get destroyed, and only get their fluids taken \ No newline at end of file diff --git a/Common/build.gradle b/Common/build.gradle index 4b3e231..d4eaea3 100644 --- a/Common/build.gradle +++ b/Common/build.gradle @@ -20,6 +20,8 @@ dependencies { // ComputerCraft compileOnly("cc.tweaked:cc-tweaked-$minecraft_version-common-api:$cc_version") + + compileOnly(files("./tardim-1.2.2-dev.jar")) } publishing { diff --git a/Common/src/main/java/su/a71/tardim_ic/Registration.java b/Common/src/main/java/su/a71/tardim_ic/Registration.java deleted file mode 100644 index 690fc4c..0000000 --- a/Common/src/main/java/su/a71/tardim_ic/Registration.java +++ /dev/null @@ -1,8 +0,0 @@ -package su.a71.tardim_ic; - -public class Registration { - - public static void register() { - - } -} diff --git a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java b/Common/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java similarity index 93% rename from Fabric/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java rename to Common/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java index 1dda83c..555b1fd 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java +++ b/Common/src/main/java/su/a71/tardim_ic/command/CommandListBiomes.java @@ -6,6 +6,7 @@ import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.FurnaceFuelSlot; @@ -26,7 +27,7 @@ public class CommandListBiomes implements ICommand{ TardimData data = TardimManager.getFromPos(pos); if (data != null) { if (data.hasPermission(player)) { - Registry biomeRegistry = player.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); + Registry biomeRegistry = player.level().registryAccess().registryOrThrow(Registries.BIOME); biomeRegistry.keySet().forEach( (ResourceLocation res) -> { String out = res.toString(); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java b/Common/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java similarity index 94% rename from Fabric/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java rename to Common/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java index 8cd5efe..3658b5a 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java +++ b/Common/src/main/java/su/a71/tardim_ic/command/CommandListDimensions.java @@ -18,7 +18,7 @@ public class CommandListDimensions implements ICommand{ TardimData data = TardimManager.getFromPos(pos); if (data != null) { if (data.hasPermission(player)) { - for (ServerLevel serverLevel : player.getLevel().getServer().getAllLevels()) { + for (ServerLevel serverLevel : player.level().getServer().getAllLevels()) { CommandTardimBase.sendResponse(player, serverLevel.dimension().location().toString(), CommandTardimBase.ResponseType.INFO, source); } } else { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java b/Common/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java similarity index 92% rename from Fabric/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java rename to Common/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java index 7061ea0..eaf208b 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java +++ b/Common/src/main/java/su/a71/tardim_ic/command/CommandModemTransmit.java @@ -38,10 +38,10 @@ public class CommandModemTransmit implements ICommand { if (allDimensions) { - ComputerCraftAPI.getWirelessNetwork().transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos()))); + ComputerCraftAPI.getWirelessNetwork(player.getServer()).transmitInterdimensional(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos()))); } else { - ComputerCraftAPI.getWirelessNetwork().transmitSameDimension(new Packet(sendChannel, replyChannel, message, + ComputerCraftAPI.getWirelessNetwork(player.getServer()).transmitSameDimension(new Packet(sendChannel, replyChannel, message, new CommandSender(player, data.getTravelLocation().getPos())), 300); } CommandTardimBase.sendResponse(player, "Sent modem message", CommandTardimBase.ResponseType.COMPLETE, source); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandSender.java b/Common/src/main/java/su/a71/tardim_ic/command/CommandSender.java similarity index 84% rename from Fabric/src/main/java/su/a71/tardim_ic/command/CommandSender.java rename to Common/src/main/java/su/a71/tardim_ic/command/CommandSender.java index df3b10f..4515986 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/command/CommandSender.java +++ b/Common/src/main/java/su/a71/tardim_ic/command/CommandSender.java @@ -1,13 +1,13 @@ package su.a71.tardim_ic.command; -import dan200.computercraft.api.network.IPacketSender; +import dan200.computercraft.api.network.PacketSender; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; -public class CommandSender implements IPacketSender { +public class CommandSender implements PacketSender { private final Player player; private final Level level; @@ -15,7 +15,7 @@ public class CommandSender implements IPacketSender { CommandSender(Player player, BlockPos pos) { this.player = player; - this.level = player.level; + this.level = player.level(); this.pos = pos; } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity/FakeTardimPeripheralTileEntity.java similarity index 91% rename from Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java rename to Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity/FakeTardimPeripheralTileEntity.java index 99cadbf..ffe4d4d 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/FakeTardimPeripheralTileEntity.java +++ b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity/FakeTardimPeripheralTileEntity.java @@ -1,16 +1,16 @@ -package su.a71.tardim_ic.computercraft_compat; +package su.a71.tardim_ic.computercraft_compat.entity; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; public class FakeTardimPeripheralTileEntity implements ITardimPeripheralTileEntity { public BlockPos blockPos; public Level level; public TardimData data; // Our TARDIM - public FakeTardimPeripheralTileEntity(BlockPos in_block, Level in_level) { this.blockPos = in_block; this.level = in_level; @@ -32,6 +32,11 @@ public class FakeTardimPeripheralTileEntity implements ITardimPeripheralTileEnti return this.data; } + @Override + public Block getBlock() { + return this.level.getBlockState(this.blockPos).getBlock(); + } + public TardimData getTardimDataInitial() { int X = this.getPos().getX(), Z = this.getPos().getZ(); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity/ITardimPeripheralTileEntity.java similarity index 56% rename from Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java rename to Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity/ITardimPeripheralTileEntity.java index feca725..7e9b82e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/ITardimPeripheralTileEntity.java +++ b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/entity/ITardimPeripheralTileEntity.java @@ -1,14 +1,18 @@ -package su.a71.tardim_ic.computercraft_compat; +package su.a71.tardim_ic.computercraft_compat.entity; import com.swdteam.tardim.tardim.TardimData; import net.minecraft.core.BlockPos; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; // This is used to getPost(), getLevel() and getTardim() nicely without refactoring code to account for PeripheralProvider -// At least I believe so. Otherwise don't really remember why I don't just pass these methods to the peripherals. +// At least I believe so. Otherwise, don't really remember why I don't just pass these methods to the peripherals. public interface ITardimPeripheralTileEntity { public BlockPos getPos(); public Level getLevel(); public TardimData getTardim(); + + public Block getBlock(); } diff --git a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java similarity index 81% rename from Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java rename to Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java index 085f8a3..05ff46d 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java +++ b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/FuelStoragePeripheral.java @@ -1,35 +1,27 @@ package su.a71.tardim_ic.computercraft_compat.peripherals; +import com.swdteam.tardim.common.block.BlockFuelStorage; import com.swdteam.tardim.tardim.TardimData; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.peripheral.IPeripheral; import net.minecraft.world.phys.Vec3; -import su.a71.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; - -import javax.annotation.Nonnull; +import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity; /* * CC Peripheral for TARDIM's fuel storage block. * Only provides getters for the fuel parts for people who cannot afford or don't need the digital interface. */ -public class FuelStoragePeripheral extends TardimPeripheral implements IPeripheral { +public class FuelStoragePeripheral extends TardimPeripheral implements IPeripheral { /** * @param tileEntity the tile entity of this peripheral * @hidden */ public FuelStoragePeripheral(FakeTardimPeripheralTileEntity tileEntity) { - super(tileEntity); + super(tileEntity, "tardim_fuel_storage", (BlockFuelStorage) tileEntity.getBlock()); } - /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" - * @hidden - */ - @Nonnull - @Override - public String getType() { return "tardim_fuel_storage"; } - // Peripheral methods =============================================================== diff --git a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java similarity index 78% rename from Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java rename to Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java index 539412e..2228b6e 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java +++ b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimPeripheral.java @@ -4,25 +4,44 @@ import com.swdteam.tardim.tardim.TardimData; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; -import su.a71.tardim_ic.computercraft_compat.ITardimPeripheralTileEntity; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import su.a71.tardim_ic.computercraft_compat.entity.ITardimPeripheralTileEntity; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.*; // Base CC peripheral for whn you need something with access to a TARDIM -public abstract class TardimPeripheral implements IPeripheral { +public abstract class TardimPeripheral implements IPeripheral { private final List connectedComputers = new ArrayList<>(); // List of computers connected to the peripheral public final ITardimPeripheralTileEntity tileEntity; // Peripheral's BlockEntity, used for accessing coordinates + public final String name; + private final BL block; + /** * @param tileEntity the tile entity of this peripheral * @hidden */ - public TardimPeripheral(ITardimPeripheralTileEntity tileEntity) { + public TardimPeripheral(ITardimPeripheralTileEntity tileEntity, String name, BL block) { this.tileEntity = tileEntity; + this.name = name; + this.block = block; } + @Override + public BL getTarget() { + return this.block; + } + + /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" + * @hidden + */ + @Nonnull + @Override + public String getType() { return this.name; } + /** Apparently CC uses this to check if the peripheral in front of a modem is this one * @hidden * @param iPeripheral The peripheral to compare against. This may be {@code null}. diff --git a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java similarity index 92% rename from Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java rename to Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java index 99b5bef..a562735 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java +++ b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TardimScannerPeripheral.java @@ -1,5 +1,6 @@ package su.a71.tardim_ic.computercraft_compat.peripherals; +import com.swdteam.tardim.common.block.BlockTardimScanner; import com.swdteam.tardim.common.init.TardimRegistry; import com.swdteam.tardim.tardim.TardimData; import dan200.computercraft.api.lua.LuaException; @@ -12,9 +13,8 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.players.PlayerList; import net.minecraft.world.level.biome.Biome; -import su.a71.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; +import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity; -import javax.annotation.Nonnull; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -25,22 +25,15 @@ import java.util.Map; * Only provides getters for data-related (mostly table output) methods e.g. biome or companion list * for people who cannot afford or don't need the digital interface. */ -public class TardimScannerPeripheral extends TardimPeripheral implements IPeripheral { +public class TardimScannerPeripheral extends TardimPeripheral implements IPeripheral { /** * @param tileEntity the tile entity of this peripheral * @hidden */ public TardimScannerPeripheral(FakeTardimPeripheralTileEntity tileEntity) { - super(tileEntity); + super(tileEntity, "tardim_scanner", (BlockTardimScanner) tileEntity.getBlock()); } - /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" - * @hidden - */ - @Nonnull - @Override - public String getType() { return "tardim_scanner"; } - // Peripheral methods =============================================================== diff --git a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java similarity index 89% rename from Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java rename to Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java index 73dcd2d..ed0f0d6 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java +++ b/Common/src/main/java/su/a71/tardim_ic/computercraft_compat/peripherals/TimeRotorPeripheral.java @@ -1,35 +1,28 @@ package su.a71.tardim_ic.computercraft_compat.peripherals; +import com.swdteam.tardim.common.block.BlockRotor; import com.swdteam.tardim.tardim.TardimData; import dan200.computercraft.api.lua.LuaException; import dan200.computercraft.api.lua.LuaFunction; import dan200.computercraft.api.lua.ObjectLuaTable; import dan200.computercraft.api.peripheral.IPeripheral; -import su.a71.tardim_ic.computercraft_compat.FakeTardimPeripheralTileEntity; +import su.a71.tardim_ic.computercraft_compat.entity.FakeTardimPeripheralTileEntity; -import javax.annotation.Nonnull; import java.util.Map; /* * CC Peripheral for TARDIM's time rotor block. * Only provides getters for the flight status for people who cannot afford or don't need the digital interface. */ -public class TimeRotorPeripheral extends TardimPeripheral implements IPeripheral { +public class TimeRotorPeripheral extends TardimPeripheral implements IPeripheral { /** * @param tileEntity the tile entity of this peripheral * @hidden */ public TimeRotorPeripheral(FakeTardimPeripheralTileEntity tileEntity) { - super(tileEntity); + super(tileEntity, "tardim_time_rotor", (BlockRotor) tileEntity.getBlock()); } - /** Setting name for the peripheral. A computer will see it as "digital_tardim_interface_n" - * @hidden - */ - @Nonnull - @Override - public String getType() { return "tardim_time_rotor"; } - // Peripheral methods =============================================================== diff --git a/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java b/Common/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java similarity index 76% rename from Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java rename to Common/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java index 5fa64cf..9440e3b 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java +++ b/Common/src/main/java/su/a71/tardim_ic/mixin/BetterFuelMapMixin.java @@ -9,23 +9,15 @@ import org.spongepowered.asm.mixin.Overwrite; import static com.swdteam.tardim.tardim.TardimManager.FUEL_MAP; -// This mixin aims to make TARDIM fuel system less awful by allowing users to put standard furance fuel into it. -@Mixin(value = TardimManager.class, remap = true) +// This mixin aims to make TARDIM fuel system less awful by allowing users to put standard furnace fuel into it. +@Mixin(value = TardimManager.class, remap = false) public class BetterFuelMapMixin { - /** - * @author Andrew_7_1 - * @reason The original function is too small to bother with insert - */ @Overwrite public static boolean isFuel(Item i) { return FUEL_MAP.containsKey(i) || AbstractFurnaceBlockEntity.getFuel().containsKey(i); } - /** - * @author Andrew_7_1 - * @reason The code change is drastic enough to warrant an overwrite - */ @Overwrite public static double getFuel(Item i) { if (!isFuel(i)) { diff --git a/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java b/Common/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java similarity index 95% rename from Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java rename to Common/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java index 8e0fd7f..abcde41 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java +++ b/Common/src/main/java/su/a71/tardim_ic/mixin/BetterFuelStorageMixin.java @@ -33,7 +33,6 @@ public class BetterFuelStorageMixin { at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/entity/HopperBlockEntity;removeItem(II)Lnet/minecraft/world/item/ItemStack;"), locals = LocalCapture.CAPTURE_FAILHARD) private static void saveLavaBuckets(Level world, BlockPos pos, BlockState state, TileEntityFuelStorage blockEntity, CallbackInfo ci) { - //CAPTURE_FAILHARD: If the calculated locals are different from the expected values, throws an error. HopperBlockEntity mixin_hopper = (HopperBlockEntity)world.getBlockEntity(blockEntity.getBlockPos().above()); for(int j = 0; j < mixin_hopper.getContainerSize(); ++j) { ItemStack stack = mixin_hopper.getItem(j); diff --git a/Fabric/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java b/Common/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java similarity index 71% rename from Fabric/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java rename to Common/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java index c4441a1..9514b2c 100644 --- a/Fabric/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java +++ b/Common/src/main/java/su/a71/tardim_ic/mixin/JammerMixin.java @@ -4,24 +4,13 @@ import com.swdteam.tardim.common.command.tardim.CommandLocate; import com.swdteam.tardim.common.command.tardim.CommandTardimBase; import com.swdteam.tardim.tardim.TardimData; import com.swdteam.tardim.tardim.TardimManager; -import dan200.computercraft.api.lua.LuaException; import net.minecraft.core.BlockPos; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.contents.TranslatableContents; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import su.a71.tardim_ic.tardim_ic.registration.CommandInit; import static com.swdteam.tardim.common.command.tardim.CommandTardimBase.sendResponse; -import static su.a71.tardim_ic.tardim_ic.Constants.LOG; -import static su.a71.tardim_ic.tardim_ic.Registration.PERSONAL_JAMMER; @Mixin(value = CommandLocate.class, remap = false) public class JammerMixin { @@ -46,12 +35,13 @@ public class JammerMixin { Player otherPlayer = player.getServer().getPlayerList().getPlayerByName(args[0]); if (otherPlayer != null) { for (ItemStack armour : otherPlayer.getArmorSlots()) { - if (armour.is(PERSONAL_JAMMER)) { - sendResponse(player, otherPlayer.getGameProfile().getName() + "'s location is jammed", CommandTardimBase.ResponseType.FAIL, source); - return; - } +// if (armour.is(PERSONAL_JAMMER)) { +// sendResponse(player, otherPlayer.getGameProfile().getName() + "'s location is jammed", CommandTardimBase.ResponseType.FAIL, source); +// return; +// } + // TODO: Re-add } - data.setTravelLocation(new TardimData.Location(otherPlayer.blockPosition(), otherPlayer.level.dimension())); + data.setTravelLocation(new TardimData.Location(otherPlayer.blockPosition(), otherPlayer.level().dimension())); sendResponse(player, "Coords locked on to " + otherPlayer.getGameProfile().getName(), CommandTardimBase.ResponseType.COMPLETE, source); } else { sendResponse(player, "Player does not exist", CommandTardimBase.ResponseType.FAIL, source); diff --git a/Common/src/main/java/su/a71/tardim_ic/platform/Services.java b/Common/src/main/java/su/a71/tardim_ic/platform/Services.java index 9d04e24..ab300de 100644 --- a/Common/src/main/java/su/a71/tardim_ic/platform/Services.java +++ b/Common/src/main/java/su/a71/tardim_ic/platform/Services.java @@ -1,6 +1,6 @@ package su.a71.tardim_ic.platform; -import com.example.examplemod.Constants; +import su.a71.tardim_ic.Constants; import su.a71.tardim_ic.platform.services.IPlatformHelper; import java.util.ServiceLoader; @@ -19,7 +19,7 @@ public class Services { final T loadedService = ServiceLoader.load(clazz) .findFirst() .orElseThrow(() -> new NullPointerException("Failed to load service for " + clazz.getName())); - Constants.LOG.debug("Loaded {} for service {}", loadedService, clazz); +// Constants.LOG.debug("Loaded {} for service {}", loadedService, clazz); return loadedService; } } \ No newline at end of file diff --git a/Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java b/Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java index e453066..c7f9b35 100644 --- a/Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java +++ b/Common/src/main/java/su/a71/tardim_ic/platform/services/IPlatformHelper.java @@ -1,5 +1,16 @@ package su.a71.tardim_ic.platform.services; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.MobCategory; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; + +import java.util.function.Supplier; + public interface IPlatformHelper { /** @@ -33,6 +44,4 @@ public interface IPlatformHelper { return isDevelopmentEnvironment() ? "development" : "production"; } - - // TODO: Add registration stuff here? } \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input_lit.json b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input_lit.json new file mode 100644 index 0000000..18bb49a --- /dev/null +++ b/Common/src/main/resources/assets/tardim_ic/models/block/redstone_tardim_input_lit.json @@ -0,0 +1,8 @@ +{ + "parent": "tardim_ic:block/redstone_tardim_input", + "textures": { + "1": "tardim_ic:block/redstone_input_lit", + "2": "tardim_ic:block/redstone_input_lit", + "particle": "tardim_ic:block/redstone_input_lit" + } +} \ No newline at end of file diff --git a/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.mcmeta b/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.png.mcmeta similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.mcmeta rename to Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input.png.mcmeta diff --git a/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.mcmeta b/Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.png.mcmeta similarity index 100% rename from Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.mcmeta rename to Common/src/main/resources/assets/tardim_ic/textures/block/redstone_input_lit.png.mcmeta diff --git a/Common/src/main/resources/tardim_ic.mixins.json b/Common/src/main/resources/tardim_ic.mixins.json index 55703bf..1b9f9ef 100644 --- a/Common/src/main/resources/tardim_ic.mixins.json +++ b/Common/src/main/resources/tardim_ic.mixins.json @@ -1,20 +1,13 @@ { - "required": true, - "minVersion": "0.8", - "package": "su.a71.tardim_ic.mixin", - "refmap": "${mod_id}.refmap.json", - "compatibilityLevel": "JAVA_17", - "mixins": [ - ], - "client": [ - ], - "server": [ - "BetterFuelMapMixin", - "BetterFuelStorageMixin", - "JammerMixin" - ], - "injectors": { - "defaultRequire": 1 - } + "required": true, + "minVersion": "0.8", + "package": "su.a71.tardim_ic.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_17", + "mixins": [ + ], + "injectors": { + "defaultRequire": 1 + } } diff --git a/Common/tardim-1.2.2-dev.jar b/Common/tardim-1.2.2-dev.jar new file mode 100644 index 0000000000000000000000000000000000000000..bc8522a34dfaaf37bfffa9c67aebeaa97e4232b8 GIT binary patch literal 958804 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

$?53&5;1~tR$>6h-ouIcW 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%0DB3 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
U?tYiz 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�LmiAO*gQ6G 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[|F;jXRIk1h6JSwVH`?IH<+}4) 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

rm+lr80xFY%airV8zbuXwG3 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%0De73P9m}843hn;H;&((Bg}6~)yQ&L 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%0Ag?|)0U&SM_$-egABcV?>m+LZ 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 ud2F2SI=}y zJ+fe3-zQs|srcS~@7;ILJ?B!QcX!+4h=zMomsdgRTUKUMx6*3Bamne>*nw0?cP!PA zq^qy<%|{)L9E!`%LRrbPw|)u z5E|hqss%Az#YPq1L)@E_3RWzcd&brRb@Qo04YCiUA2-yONuOl2eSC6Y>PBdmdw&8U zsf>)`#_&i)y%_3V&DPz)o?dKt{e8FxhSBHdu`T+uP4~RZ{nvx``;5hTZ#BWw@b*T(ZW$krvxaKKi zkxwA(?Zlq-521BmJ4X5=%xC9$0lV9y%x{vbHJ3U1|b`_tU{BxVD67{n#LfM3w46I@$D5Zu? z>R(9Tq4?~1aF)ud2+{zgwhpvor00F`Owmj9IsAbLe*e3*SihbWB6AySr}*jp_tt^p zsY+9GaF))&r0Ms%`pST70Y3^ND6ocoop2MG`5A&R&xCn znY4rWMMN^91Qv}l1^MiuVT8O#5%TN-9~TLSMCSV4@7~4w4b3@k>rCx`JkJvqbWQ)Y zrMcxlPc%Tjw63l+k#BwSc*%(4**;_4+h#Lk#nsh}3|U|=L;1w3;V3xkMu5s12tYU{U`JaFT_ZV5cB2raW}_b7(qkE)KQ%@x+rG5DI0^ zz{tb`h(-RHiz{&H#dUxX62Vb{WZ+BDIPU=zIO~1`B1_YD za!0FPoZ883aiOqy0USlAF_2uY*Q3YXDG`Cag>IkEnTSPBwXIZ108-*iC@=s%9zZ-Y zgh-%`0VvNtyB;sTv<-8b6o7?5G<7;2P5%U+!P@GK05_F)XYCg<)6mV8{)gY!(c+ zxT)b<0eGBpg|dAo0$aXu|729vRKi|79VN9FGX_e&y&QR@2&39T)4C}trKC1qN^h$j zPL1=aydkqb^@Wlt@rfYfaW_0e>ktVN@StMMCC9J?=&0sSkrkP0j}F&d7ML)br34hp z%8dGP^y9zd=-yWm3dYgi9)!mehbO?}qeJme>yT$_NGH+xv zmpAAD@)*2>+u0xWI_&p{@#{z5#`YcUIZwhWE6v9@|78YBizyf{sR0NaswZEGs>xT0 z0J%!-YPkPx4EGty*{2JX8G#Jxe6rM*GMR0#=2fDk>T)Ixne@kG-%D;-nY^yIZx)oW zv#fp1D#7!JghmhzjUW;8NFaF-eSO3D{`X%%|3Ge&5g0&z<1*ZE<3%v3YDUuX;wYX1 zM{yHiR{U22Mm&QeFp}9piRD`Mp*VlYex({k(VokEvVa>st((!?vRNvHqx7dSKyDLw$Uf0J+ePm~j5)_I3)woXF$E z0Oa@Fj@$26uU(XnLh}|WG^DOwl(b0k2X;tyCGU5L2^xvcr<%G#~vaqvg-njP0>u~QE?*+$u;pzVf?%s85KAAZ64ir}`)-e+M(cShK zVo|r!)@mPG{;3AI&1Oic){If_L6g2}->lzys{DA9Sp*WDMRS#XZz7JUuLp-VJdA?! za+FP(gFL$(w1-!N)Y>;U_7k%CItGrDUlk6azil774tBvml7|a#`5qi4q$Hwze=OpI zf22zpi|Pj%%=e;$kh&HtUWncwQOU*2dvx{;nRBj!;6~ejseE6ij#FAE*7ueVK8~=j z9m75Am_h;1^BC+I!1_1d$HrYlINX!_U}QyQ1%CX?|HhQ2My1aMfyI=KRG%nepAuWu zzIf7S*H1@AVG6y!F8e5IyCh|^s2hIIR`^CXh^l6zg zbsdX_uyg%i(bZ0Vu6}eG`HSfwqjX8FV<);ZCb^54W|m5BUF?ihPn3hrSq_`C zQWH0$df4vX_Yw3e*bS|LJ9Zq!qmRA~uP?U>Tf`o}Xjv()xVRkVWIiP^VQrY$bO(wn z7bRuv={us)LG-l$8PSMRp2=jk!&!PJoFz+P;-vDTdiMO76Pn7=PT5mRiB39JxVF55 zuHU6GAif64UOTih_Eg4>VsQRGwoi$LdJ*v*W(l5~Hn-sSe^>`!j@x?7COB~?Q0qLO z;JJIZwX`UOo=?p4$v^#`AmBf;CCi+c*BkvQl<;=yTqkb5u@*#zq`kV$H5D~e?t;x# z%l3x)xJ@kN6IDWuVvH$?VreFCgCA2O4w2`yY;~R~OH=$)RG$?S>~ntz8Xtn^$$xJK zpHTU5nliuYH=rz1{akB8ED}L)%Pt(*z8eR(97Z$}$Dy7$_IKy5?l=c@gXh1xsipme zjKPU48*e-Sa^zZSon(P;xao3SyW&#V92F>V)rbZo)hx;Kn@{-Z%PIKQ_Ga z6t=wcA`%HDRXQ3Mu%$JIUU%*trSWNa!{7zCq_O^L!DM<=093o;?B9SU&O2_JfH^Zs za!GNH@(XLxF#F3Wa8TW5anhn-(s19~7#>(_AW4{7A4u6~DFIVY%?CH*(&!B7n%it3UL?S!_ArqS0qImCP4|;N! z1(fWRi4)85-5-1nHenkA9;(YNz{HtRJ^8b!ob(wn89`cvsJ>ZW=hFyybu98UZNYNZ zHH(YrxrsqS$??@^QtOa!YD)^rGAFWR3Hzh3yQS|ly~QQ#(#pRe@QgNy{sF{elxf8? z>G)`%6NmP1#gBgUGKPlI%n8|>GrNKugR8DO8#mv&oJr@)2W86@SDuP|dzGdhbRr&x zcTiz0jrCY<%`xR{*2*b%Dg|U!H>LS992~(&?;*7AqU0Y%8fm-&vZ4iKmH^-?sm0P| zUxKYrB{v*)W7E5@;=Q*>`d``5Q=RD@M-%AtWOnbd+IIYZFYFft^Tk_^9O+2+tc6pi zOys!4o5v!vUT8Pt&YP++dj@3yn_(>|Me&65QChc*t?f*9PvvNe!B!&~GNWy3>KiNb zpZ@&R{ve<{7U{!K&vOhIk>^+SJe?Y}PrVPxP}enlL6M`Tc_tP{&%T#&bl1~tyvJe! z{Qd-X?eSs5q1Zo=eT=^a{-ZsC0pxezrUS@DB@zm@QJrJ`MvG()<(jSZz1nrdAd6$n zq5{U~Hu)rE%f6BI@Vhr^q;bXP%7=2jQC<;^)$;1gP+WeFMj1f{$fMyQ#A7^y{y2{8 z@nG|wz_>8TDLy@Of(Z>3S~iLZkbe`!m6HHTEouA#a<-c4%+*+Sn(B%?d|c<7hkMLzb!(@V7y zMZhaNfZW(O&5b`MN>-A>kF(?q$sg19N7nur`2Z?_oZ6aCgb)d|qpNL?$krbZfc%CF zaQ%%J>R5_^qhuM9hbwuGd+e*QU7-NP9(b z4@v#t9{K=-y{}1SK(xbxn3$s;nSg-?evm$1B1`Y9mHad+8@iXUT1!#eNd9`M;`7HM z80p%I=8eB)>L_K?PDk04xv<*gAhl8GG;5nlX%4bK?_dW8+FP*i!@UT2f~c7^3m07b z71*k#tJK{D1U>x-`DHSO(s=2D=z7(M(fT6Y9$xO}q}P~SSB(76)HWh;%TZjbk^BZ9 zg=b(3d_y}W--cr#c}H6>e)jO&=;_aG{DZ!2@fnNp;P)Sd%O#hU5Wk3$v_*M!#a5}^ zn7_^|aZ)X7Ja_&&y#ujd-GgfoaBoZ2AXj_o;@`FHt)EuOFDk3P1SREEK2dr*QaVG z+`U#wE+vJHIFF~F-i()D`51f_1ddD`jLPyneBqu6j6KdQM9PVDmCi*yvB&d^RpqA= z5_|k@7Ozrc;AV>xMdi!jD4K7~C>Y~qj1&&E$#KdJMo)s&k1LLWgrsbv%unR6Cs;CT zBseU_bonTvp)Rx?+J=XI`YMig(9i#g4-Rdnm~j5awzjqt{FUSGpN{AEh-wRyFrkLx zGvbqMjz&~9T#usa`HGs1xacvzHxU~}6;Cs@7{_CbLd=}W#MH2vuPq;p;1FW#4y{F& zdfVi^K5_Fw{PFL(a**OAg3nEwbXi5RXM)=^?R}O?DLUVNOFY*hMWFe znoTb5MH$t^f(-ln5DE0NObyDObd@(E&sM5gfT*@tz}=f7Ei>wSNU~*g-=Us;tVa1T z1Ik5-5pe;xVCt!#MblhWEt*6Op8lg)^UUwicHm=8(5-Vgf$eRve+(9Rn&3rKQ&WDK zkoc~^;oEG)9^*ld!)bF}xMfAPrWQF(RMqvwq`4fNIX~&IMu-#`S3H?ylH37gWr=TRpP<#+=2-c%2X%` zeOC>ND^8V^5ybB&K+iYa3CdW{>_`{rGTyitZRnZmMkIjl<_#F`JqW6~Nk7X*(lc91 zU8ansynH)OKkH6ZPn@mTQ!I%7qX+Tq6OX{BW277z;Qt|H)+H9qBmO-5gQGbe$1Agb z(Yd9#@)F8&7VXPkG82xH*(k1_4@cQdZE!*=DPkPl(T-0eXC~7=mF=3q5dX+VgoCY! z1S#`dPIjQXlhm62Nd1Y~Y(sV3ji3zvpmlSW7z7!`Qkrx>^tr z3N$0+--Docw`RS}6d-EygVI1 zPK$5?-u}(-3~o&U$XBl1K0W|>O%;Ce+lS$_4Z}b5F?>VYnY=Co$Qv?ckdH4wE;hdC zkJ(+bVRz1v>XK)+wM|J_OakP?Ea)chq2iH2bRRv8?|l1rj7gr$gE7c&I3L&Fc)kuG z=in%r250H?Gyr*~ae-|7u{7uMJX0$h?A(okj$KKR{GW}2tHi%GCq1|mBx1_ zWwf0g33QKS5vchm2FS}R%JGw5{1}Z*Q#8~#Qaxb_i>i91%x8%N8ADt?i~w@_T_P4{ zYI*TkShqJ#-|h@RH5j((fITB=W213tCIG`x0xnLBOr8bQW&8M0XCEX3x#>s(*_SKL zxyryv!Ojxx<0oirYGmsb?ZJYc{fGrSP+5B+EO`XFNc%(~!OCn555AX@Y;05pOVd|l z4acNi7$^Fu!_gubZWM1ZW`7nsW}s@KnrX{Jhz4+U=hNukzlwc}y}S+;GZ&z+asn%p zmL%f4+pyYKe zSengTpYH8Oy9ZsPi%4ZGvCc7OE~zRddxB3O9vQ}9=Ua$H<#koGvmM)y;?du%h0mW` zrfs345Z`$48#w2Jb5x2?YSj!y8Hdef@d$`HnB88|0Eo@d7>Gsh_iRDX^D&|kioL0l z9}MncgtJn~#F|NWBA*nWWR(v-hJp6C(0ycOGJ%DXTH6l$@Y3pG9O=r`pUCh-02Jl} z3meRE+EhCYj>E#Umf`%%u7|m>G@10l*y9`ihORcPN|I=CbbadBH}>+fD2bFtRe>pm z=GicL)^b!eEQE!rJ}R?}8U!wIRxrC(t1c3IoD>m4z80nb1fZwagP;CvH9B$(+A{X| zg{8QBc^NFKI`0&Vm^kfDlvGgdaoMf~7N71p`Xne`Eqc%@Vis2bXXz5SO3z}1An_P$ zf|fmTy=_QwR_Vt^iZYp76Nfw-DR4^6cJ^94;!!_S=jC}(QHc_oLcVr9`_yZA`l)q@ z|MS#i*Tr7m8}m z&;aDb;wCjqjV!vlo<&CEL+ho;1CPoWF%m`c5WvS{2$O;;vuP>?W*61x%;bCInng|k zxf%zdvd_baMcX0pgd?VtRyV3aL{OWVwG$=p4IJH%jcc~zxmB$g_GPMgHby^lTpWV% z(sw{l|!(m6jeE|O9T?h>C zM`i7KsH(pV9III@wjZ&`dpn+zYLV-=FX`GY9ng>s03m|pWDEuNCfJ-aVRxJY%Dfcc zZS+2(1<{(Xk})UXHy%O2dsLHcN{iO}>o(w5Kl?rWe&d?8nOc(mJge1=TW`G(pSfbO zCMZh|b=ib7VabIMLJ(5UCl3jf0CUxopK>&opyzi^~c8%9PGrZXa0!hLwhyN?F|Xo+`=QA zBmdx7`+ThHvXF^1EjkXzxVAbUU%YDqN?a<pd(ra=94}J?=Ce#;`m0lisvy4pXbN0J*EU6t~{{FHB;cBL zIVFA4UFtp31LW+HoC(F1O{l1wgNliBVPP9%?Nb?pys{Bywl|O)HG!b}5Qci*(MaV} zLc+=yc4Fo8xlf|2swRN^r>q=CA{KzV_X7k+_M^CLE~*=@R1!la_TW(e8VvWZmi$EZ zoS2O-md*mx1?ZGiQVQldN*2RbI34-6dL8@4_`aeqCP|RW*2~tM0YrlRnv42+`tgmg z{wMl+wLi~j{Ec#w2#}wH71vY1UKL0tMW2e(VRLE|FcT!P-cJm2{rr)+FUH2HA%ls) z5rdbN60xcNUiXoW816j;FH2f94n}9SHXFQlroI@xsk5jGXI%7U*kwf@s@oSF!iR6a ziVxoFPj6rP3pfVI5r82OqdgXc z5cVPB?#62`{1pdwlOl(51S0}A9Ld%`*l5bNjhqzhtoq55@ZZ1sF)Ax%bvee-L!Q-! zJdz+~YFT2NQ~mMIwm%{gR?7B`J}$DFCC1!WYoBEVSZkjrZq-dFuevyuY3uF5zIPu& z(A_TGmV>>b4nsmUx<*ve~pa{{ZpCzqR^1AjgdN+{)m(`I?IK*Jwic;iSAf4EsuJTDLd39ock}}SAxcfI~ zYMurHG5r4V_1L(vE$8F_X4Aj?5h|+))Km^@feZOIg=NcrBT%^&D)Ti8b1|O(DL-HI)n!5nPx9?PwD0>9-2IefsT@81QT*nKZj5-0 z0FSJ!MsqTm#gs}8)2d7`sa);+0vj&7>L$#be~#pa3u6@}4A(g1qD#kHzJWUdY zzNN)>O5<-DNgx}ws}$a&mC98%2{jFin7>Z)`})<3$|VweT=e6mgC~Ht6@y)?A;_hP zB=-2rtM*{!^B*%Nc`lENGAr)8qXsoqR5M*ZIJnB^VDc<&?eRn+jDen4Kym8SByEvI zM834EF{_^H001BWNkl>N0X7r{&fFe!Sif9LFG@N6cP)YdUs@)TXpBiCH^nD5oUPvTZ z37CTiy0CqFHxh}=*RWCFTfkup;@7M{(m{dt9NpCTiP_C>S+zEp)VjqpavKlfVGfY= zy|cWD+C(_x%*JEC}m<7df|Ik^8zSD~;_&c-4lEU`pp!{(^gumeOnV*<)D8wBYb zCz(+`(tm_WuhXV>;*=$ry>JDra{Y5YfzWU_-dyaj(AmmjAzy)A;OB5?V z@FSFC7P+g)g>QZL>sY*WftdKp$KfB`3qIyYRo&UFUa`y~C)*z$T#LcJ*9|4zGPm1w zZ8}WT{wM!f`kzY6!g#?saoufXQGg(kzF9Aubh=(W>6b|$v66{sya>DEJ;io_T z9kwtQdFEd<)|u3{OP5T?{r6vtLQ3;ZevS#w(%Ep9%z{|RNVF+d_i}(T*7fsJnwJu! zdS*HYBHbsXUx-A2UIfZ1>1QtnJNHSYB-CFy%6QQ`F>DW&F7jsZa|0lS>KUGK;eD_r z%T@?T1c$I`-J4jq=2gvH8jAxvJ9+fywsh%OU7YprvjE7kw6Sqc!X!{}->e;D0>-~| z#{|?=ssJExD6TpklV{%vi=zUdO_@|eg)%o|D%MigAEp?$!KI@NDv5a;^bzxR7kHj* z-)N3aou{3yxu~wYK~;yG2OsgFb?Z~;+V`erT^R8t@Vi&s81dzH(|qjh^y!t^wm?;N zB_96GPf~yeOI{%g3M*5jv1s#?Y3YD$-(}Q210`Vw4nwr*ojUcE(VoOH|Ddd5xx$`e ziCrOd9eN&p?b_PYLnAT#>WN+qyK@_Kqc@yd1vKd-8*O$wuDJRpOr5g`T!A8+84L{L zgVnzQ{a?FU7zf?bf;WahV7g#*8qhGQNW(E7d_vPwl-A5(L1Xp2B1)_`f`V_!Lt zwLXhPOj$@MiEibKd$IDxJvsFc=($>(7J>iZ$RSwGR+N;_1qi^G6PW}7L;b5U*#FjX z?pcj|v2<&@k-eH=E1U{f`GqL3O&%*(k%8k(QZ;#q66=)k5edrdEz!5`>m9%YU;7dI zdMSZ9cLxFF*I$1IR;-}9kBSAFt%WGBy%1)JH7Gxk*bE*fv7RA7uCD2<{Zhk^FdhT) zPnD#_zV;m$?Apg_N+oV1Bp_ z?#=`F+Y|o-w_Cd|^m_&D>=Zygd#1-Y*~ljjkhA*Z*MAoG+mQ-4z*$L znuibx4kZSeFKVJ*QrXI0DJ*F`;o0$|ug% z`s7TKnQWS3__9q?J?sF6yH+Epv+155AAbI;57E(?+fvaKM!e{(VqA89v6ek=xxy|40X=~5 zZ+vmt-?nYrmV5Sv!HhVrZ7oTy|37ft)er>L>^82CJ*jT)blP#>{a0b}l36e_&`CV3 zc@C6TFMvfI01*VX2@QC9q`Cl^d`fyl<`Z!oJ-7~iZCe=Iao*CKQC&AjxoI?jfsSUp z@Z_Ty9uVbL=pe;~L%j(c?mKx|h|2sD0Po}zSN)Q|qQgLvl2-@)ruHbK-pt%E!c_GX{RpULc>t8+4$PvvJFPmM&9H@b3J z87?@ZNF!C4S5S(n3%&-MYa+|uWO9Ngs(Tnggn~iG>t!i1e(^Jmj86W*34lNa5O7gTdunO z)BEJ01)MG?9{i85V-ZX2Qf59%hO)bAVWI$q>gUA7%M2iwX2pybvP`zf0^%_@2D<)= zc!Z?sGE2r3lRmBosf@6LW$;JQ)BFm$kBCyF@-gI&;gN9y$Qvtw={kvZYV)(sy$EM7 zyAmdnZIs$NTYy}i7W5{Ow#0)W>v1fAT$+A36KbcOg^4rHVL+{%MJ^`KrUS^IW;Nv% zw}AlieeBQiPLKL;76I}fD@h-cFJ>`WkZ-j!xi{GnpaeDskoTnmE0>A@`A^0NAYZWrE3R9rRr4W$ylxrH zdD;>UB0x@Sk+fbU*EQpPV7jSeGzdxkJ9fQ3(NW;h)3O!q``$$~?A0;cvH-}Lw4c$D zIY2&R?!}lf_YzI%hq$i~@2!3X8$Vo|3xNEGo15Eyki}*o2P=wr3l@MhV=cJc2Ow$A zT(o39zWpEn0+&mh)XM;JJI$kNfSl^8js_O#N4ofLN^*|)hmfG8e>rhh*FvL);*1!o zh9;xjMgE(~WP+n)BJxy;ti1auMp{3{UmyQ9JSu>k=FjGS9*31MNJjlA`OQDr+}!rV z9NNey4vu5mnfs%;j!rOorolcgzmkE8R;$F{A<#A&K=~6JU#cmpOFKO zKXk19&D(K2wfMoH^pf>a^{9u^1D$PF9J)1x(K+I1nV zBVn+P8ts=2#yF7yG~uRr)@oO9lp z8b6(q679}f$){0TEfx->0Y~(n;&}M!RI0*@!S25!9HjEXnfX8t=S`sv2=ga#m&##Bw?A~ejs1XfbbkPZU493^$EWMc9l_PF;j zhB{vdm1~m^VvN7?>OtnGj|Y4F^EXy9_PF{es+fa@IrqX+P^`=yi4c0bo@3=HmAc^a zRR%F(djraASHNN|(M}~HQEYy{A#0pu#Y5QV!`9lb@yAClU#)|6mgy`T6hR^_=7^ ztMTpM7zF%um^1&dxw$#Bpw)4{PbNKloR2_GrPh!4Wj?9vspjvu9=r(?YDyJgk~6{X znuy|xIU1>T+E9|5Fa;hmI@AuWdL0rY8!UU97WIekAd9`C)e8kJ?DBSNi0Ne2_AT#lMXVv&>l zx7YzB|J~jBH2hv2i=5G-(?N$u?VL`^!k}IoyRZJGL)2` zliWOz^mlNm75m=#B|;vFMNXeUEb>;7MV{+grSr9$7?Tw?M-@0$M=s9f zuV~>K>|2eY{POL8WQ$}d2^eKO2uCGf3&53{8}bgYw( zyC^pn@^vB-lp-|J@7mkC@Sop(1YMn3MsCLVaAGT6dF6cEbmN(@SS?Aw&SWV-N!1b* zIO>#|?^0bsHw9*i36dNEk})VQs`NLp5}bHwkw}SKuDyp;WlA|;zBJXIX+8@D+&FsR zJ$MJ(*#=fr(#Rq(%l1Y_{hE1TwzmFMoVN4^SSe|P4nB^+U+xkP)qw`3Srjz#)0-1{2h(IFkEm}++voR~22W;k3km61VZ z6b6rA&zheh5>%K=WQK2V3*w#axo4(iHursc*73Fg1v78H?X$S~wyTksuK-${$qIW> zT?#->HCm}`g?urUu6s!+dl!mtc<|OX87D&kYI@)qX*#Rq>sEj@?m9wJR$<* z&02t*}`Dp2^B+6Nbq?6rF~fW(l`O+kN#JRDgsOT zaMXaKO}ykE(fUh%m=QoemaS@kZ{&wjf@EgFVfkLK;kbC4&KOgr_b6RsAWuquSiswl<{hsgL;z?~T__7bEFD0eE_iCdAlC!r zZ2#PI1ke2W|DnHE%e*6r^Ki(9|2Ny*b6!#h>cdHUod2B^y;WX_$XPEQIzw zAK}$M{S+gEgUJL6y8K`-kCyD?>J*{>+~(%im04{TN1qr!ae%zMq6|O!`S;K`MN1B| zSnaSmtEC#99HDsNBVG)2zlx#$bs}3_(>3Wpt1N42rtHnrHDEd~O0uP-NpUDGKbyro z2<#F~ibu>pgu@>_hQantnyr7oJAudF@WSoSZY|1W{hKq{in)`izNm7x!&!{WulYR6 zY9<5n9uq)c&jIY+y_!ism(|SFg5*-nPy5VF_DQl!r~Wq8zFk@aQ@@4ot=`{rP}t*2 zKbS2x6je1c<;>*4$KV~wZ$f82^qn>%uv^hZA8f`zBxo8S2&O3R7K zF54dw7UYB=#U@4exUphJF8uVde00&p<`E5dVyNeNL|MJ)(QS{CSF3ARz*Rg?S>O3M z!oF@a@AwVEeq}u*pY7cZKD_ewNY2^gRx>cCjze{kb~ip{+Du$|&CRfv)q<03THtvc z+V?gN?0PGul-eiC9#Lg$+ZdJZW|0nr|N zeR%j+>(SAbVN5@hNrT0oi9KF~OU^5X)vUC&*-Gs3+fZ7wB&ozllbPSUAKkDoc=IbDxx_Wf`~2={Fn?Q6{G^lHtu}PAkMs*HkfSb@`yRzk2dzsA>GH z$QqYbQ~4+&(Ez~Fnw6!mGRFH*&2ie_Yoyg#{J$5`kXv=NfX>by{NTGkLwoDd48QW9 z@HAF;oPX66$JaNuwNbX%2{}##K%R4{^%K%EIev)6V#bQ=&&5?&Ed~9Z4jLQ;1e8`S zKmn6lCuT5PX%S^Lf4ji*6kybMlj`4TYpzIZw(2`XnX@R0i>hI_yTpwuZFb`k3>-a# z7ykTf3=b;x_2}2#Zk~bUvD7_rj$7!MZWjY5e0THVwx5sYIkGH#3->z!%d;$GrFkjJ zKDy-G5-dBb7-m&kq|H%-rqk|+%{f7m3=%;@Vv+ZBJ*UYeWH*!nat4-58w}Q^3R_=M zq0$Chl?@c7I*5nHI&|_t;u$&?dGbR2q|d=wG#51!uY<`Xf_?->6N|ik$MfjeC9=rH z=Wz&xc|7x;9|t;e8w5|X$iI0%98RS^B(dg6+AWVVA}Rkd76M5}MM6F3YXe&`#c?B$aMKGy=az?=Bs6K58W0A{@LkjH0 z!b1posqU5{qY{fH@VCFbjOU(uBj?$t6DOA8TMt};ni?^KUTg;rHs>UiR4vsw4CIJ< zhuV!3cl3eI4{Zdi`GX;*=>*rWgk^&Jq7_z+KoB}SlX>?Y?>Ez8Zwu~C#}rSPgT z{Y2H)+I3b06+Q5~x5DS%#>zghIfe!E^>a6e@~Y*m4jg0O(3$ZFBAy=XUi}aPo^J6{ zIoYTsg6ApO=+ipnC&bos{SfNM%a+yRs>^4fdfHXUvsZ|L6jpwt2If3k$CMI5EcoUh z(roUN@qKN)QGC_WB68~UWuJiARqEWU|8A1mi-vnK(zgn+h?w|cfQ7NktobFF)c7UH z067J=z(>*B@+LYDy`Uth2~=iAz$@>JVBJPym*%#$ZF#_wMh><-6_m#S@?~iN^53RN ztg|M~O1d#kVA4=FI&*-Wd4FazOO~sdyZ}`V^O2YDK%uKfk#3|0B;SAl@|LHOhv8LyD^l5%G`^)03UV1YQZ9&+#JYMhQY~7^eM}m^ ziq^b%$cK2uC;7&rji_BX@ds)b%s52FOk8i*2Kx$1L@uhFlKd7n;qX!Px4(zBy>DUD zJKNwM@US0~@3o~(fKL(d%CI|ycEp5S*8u&*0rL9Eb@<6IzK@EEa!oQqzP$|eC#fzV z2yAWYI{bTt0&NiViZpt_ob{8kC)4BJ>P9z)b`9ny=|s_%6uVN+OtmAD4X&wM0awvn zvDPSEmxv-b*vfqLNMI;Ar_fsa!JaVQ+!910$M`tqrZ1VEhe;I{&D>kxFcTMEek(|t z92PO4Pf05KK7Ip-53GaDQHJ^%=d&^`7E+^QAFp;6#l4fL_@??@^6%=gm#LE`-BWH@ z`FW~EBUN6VgUwNa!eTWjEr5>&Fxc@1g5HCoiz~fCSGN~G`PqjU%CWpUDL-C$aV;*r zcseFbzZUt9YB2`OS((ZcBe<~nNVFBETo$DDLus31_tEu40=ezS_R%Ts5(#x+sP`qr z!o8ATuNwo>E9MteVq(L6u;vltR{)jZK_ZNvBd??Dh)M-g074NSPrWjTo%@1WP(U)9 z5-Xj++=(3WEXuf}eek&#T!JO%UJP?#nTYNZd)zyKjqg2?!X6)AA3Zabr{ridam+_= zoP7z(YNo@IXNR+NqFA$DUcmS`1I7nCh&>)=Lyw-4i1S$W`awMZ;(o+)Jb6@YK?!nqrr((lg*JJ%c5h z%08lge`z>_BXT&*yd~_%Bn1Y5hN0VL0LkPH!ARZIz)w8_>fGrz$ z;b;H-2Y5Z|`pucy>_6&R%trjQOHmEo*>{qIQ8ag?CVbW87`+8 z*MF9z)n!#N(KuaYvoUGr9mp>frPZ0;kxI+JI)nnW5+V_0hbRI&Cu{v&p^Hm!mu+fo z-8F_ma*LW8t`h{|4;;ryT3T6~FuS0-!isxVl%t|Vk)ERrxAF-~Flp8eurP;7>_cK@ zb$31mpLf4D!mZx*>34wXc7&Pk6y?uikyrIM>Wm|KKkXD?F&Cny?nXGBGnD$0u`mLI zE!ex}QG{fBl#;}Ew@2~f#!$|I9aoVP-~7(~ShVysX{?AFJYqGFtbH+;Y=mTz=`?)cThbm%~~>GK-4yOdCe; zV5V8k+)8&Tbubg{vbqzYauy(BWdNrIl3nC|`-96k6Es9tqyP0TU+ zR{!e^S4A54vroMYO*77x0x6>0;6VE!Jp1h5F*K~LU)Me;;P8MJ6gak7Xxy&KDB(zc z`r@XhIsx&w0B%;cZ)7hp;npilF{`OSlb2$5)M47fuOhFoA}M!A4ySu~6Gle1p`_|^ zSS3cFVk)B{iYi1U8JHVw0+t+BLswX|W0Fpb$41~8d>7$R8~B7I^{<&1IJjJMQA3i{ z1oqQGYAqoTTDLrdjyat)9dSb>F; zg%p7N?6c3sIp-~dnd)3htd3|TgstnJLT@+uVA?}4LITrdQ08P*jut^;C70~5J1fw1 z+GVJyodZ`{qtxdTKpq}OZ}VRfml@;?BqxCUAYORoP|n-As=5L{d*pkluBnh3PV~V@ z6``=G0VcUdI`hFi%m*9j(@J=XK8%V{nCyZqd@%i#oXNjcU7bu;thy3by$_b}0x^Nq zeg!2y`G&WH=VggZaeVgm4&&SZ`akIF)7C9M-noSVwS>DIzgVELTNDxCkhtR(NJ;u7rSam7gz{=1E zBPVdioMo6f=OV=i3wbco+lIgV`3bl^3LAswp_V}bNBT3qIkj#6O@YQK>*p z(d|A&6(X<1xIn6bWhQL6A~c|_pHN6-$o4fj9}y2yWkxOz!T>% zi~s;207*naR2zt6Ya4eADo?^bK`>vk<;ana9QOYw3Xs#BboGkMaL;`=!772XV%L~Z z;H-r;kJJT}eIXGq{O)G>hBv}Hyk0C5menvjzLwLNLE2b})^14=r@rBf$jdJiA1=wO zckX-*ty`Yel#~m_1iY|5h`sHk@|oMiW#@3-oIDh&YBe*q^WqDzVCiz0Nl8X(>rl{( z57#~pue*o+tiV=;nugO++q4K4#>iDQx?!f1?(Ow^Ykk6TI_E9Z>o`idGQ(9i8TodV zOfw%xG}wop)~6Atgg=QlLV)g@t6TB(bGZi-i=1ZMcSAX9Yw}qcuj-j1NN&w90>xmH zF(qlvqC_;Y_N;0SW6fuzGN<;ZNAb_)DRE2_QV$*xK#4FW`3o$e)o6XCcvE@h1t_n) zn5htnu2%vPe;*EQegr|E%4ZOOeMiFh+p1v%Lb=WOApX~^8Ua-WfG=q93H?ZM!(@IXpgf;Q7r)+u&hFf@BPhRM*-|GiKHCK%Z;5Ls)u6Xw^6cADTDw?P z21#IXXvQ8-sXeZ7f0Or7e*@LEFRr>2cE?PGNlx+8WM`yleHLSt$IEDbg3*BBSQ2i2 zVVSm0GbthjT39lc=*NmL5%7ob$Sqmn6&yw+wtfx{uf^F|DA*neV+<| z+XU_#@uHHyoQS&P>gS(87xq)Bbyo9hQ4{XD>wJ`yD9l(UsaQ4}uJSpW`pSt|2%i2H zHb_+yp_E)gY;$oWiA)U2z7qdEWjoJp1&yW~6DWMH^f*Q2rP*gk@ zHMQ5NYK@A(PTTgEaP;FhG~g)J&t17bh=W}^Hp^IjH^%S9nxYHwFAv-csv9LAwArG~ zjWv(t$)ycCPZ_q|IC}7xh=!ESgYvD)-;xs^Q)|#pfBOEA6R*`{&k(EC^^Lwi$gwtC zicwHF6{S^|NDd|kli7m&!ip5L_y_w5JGOC(Xh9#n&n_>xmd*?k>Fh_FLGvX@ka5 z_lJS)9o)$`k1DH6rU^&v3Rb=%8u~FW2w%@Odz9?%{KXDjer}PRNY3tQJdXn5a1V~Q z{*ejs+jQe7iw?`_sRWEiBYha?dPZ9pSTbp1+SX6`BJx-^KTAtRBJ2kR;99mmuMNOa zeZ!A(Kab}0gFn65s4Y-hWX6|nsQ~?-B<}JZRhV$fb#PY9LP4RZ5G2o;qI@HP1p0MT zNHXKJK`@1Vo=G=kk2_J~M-Z{t2;BXv5%M2SIx6y1O=SaWC*BOFx@F5rJ4n~8{>Y2BKJw*sy`pa?fP6tc0pvb-&|B6RL@O%4laPv!I`G^y6P`{pX>Lr*q z<6J3`R)9bNc~2XjeDZ${0CJ#ZAe*p9#!1-Y^0ng$ke64K;D`VHO*BrKr0H`S*M-Fr z>skf4MZ+FZBHiFHg3Qx5hyW@v687~;dmM^fXzxIU0a7H?b+d~0{;7RR_jDB1sQ_{j zFp7tV(B1qrBH@1U2>}6b5WBauVB^LP?CC^SYI%~vz$5-V`-A)T?ThBn2tLukGbK;l zaqkMOxZ!e*>V`P?%Zz+wuSSUzBn_HK_~9N{3-8c+a2)wEVv88f&6%{-nAhoW#N;fe z%E=brBXw?cx@Mtv;w`FL%{+^9v}}0}9Xqv&UhV*o$JhABC4qH%tr_zgt(xShy!--O zu+Jp~2j!0lI#XlGADAkrk)_G>@O7_0F+-wPigDn{BdJc)W zG7l$Xkk%qhYWy4u3Tl#lMyh2aJv-6*@e_<~D?gjcB0lrR2zDL}<=j6n%m+@NBrrc+ zK8QVj=9y=)1Xe30uu4+OTy_|N*+EU=IqH-Tx<)P`?Bz>l&mwV31g z81;5Dnryh?igJ_|N#zijPhv(*<0YtVx>79nAPs_e%!}U67vb~lVRmfED?w?^)vy&d zGP^gz0LJuFq_?9awmf^0R$84%2EKMggG7px$DM$#&VKyh`@cndo3>2UiEOu%;8}z^ zzJyTp{>@!oxs`6q;Nvoxy)w8>W~a=bKi_KcjNHaUc$fo@i^-eW6HmUgtX4Cwy=E~! zd*uRHEJ_U=YrYHRb?3p7Pr#p24~c4i`A0faq&P+9nb>_YKra7eOn{uOF9>xnq%+TX6TaWvDE(s5XEc zN~%vs!`$0pwUuaUk#}|cU1X8VqfH%;(zVyIY$!7W$VJEA$T=rRL~Sz`s-IhTlPVBS za^_+92U@Ua&2JPIx#X06us?z|JHj~+(7K8oc;GwtVbS7KHHr%~M(oasjLDP)9E3RB z{p;Z!+J>NK7n6!rzSaOBXXzx`O^p#iE{-p;lQQj_bp2s6+u$mp+TM*Qus5&;nu49Lyu+K>|K)==W*@%42fzO1iwFd=)&LxJR63mn_|g~7!)d2Z(n!1!d%SYu za+uX@0T!U`&@q^#_BE(YDBjRWy568pC2MDz`$pT8E1#mc)k=UZ9Q2^C{bP*uwZJz_ z^Jb1w16@m!%=+0E+zY3xQZf=Ayl(*ecW=cjt6oMV5=mY`Wh(Y`aTq*VlL51vPub8| z+|+Qb06d0cSkG%JEcpEO zz~-2S0y_nF$-eZPtkM3h4eg5^q<4kn4c}-%AtHr`;2qw`0vF+6D+|DC0Y#ce6@tAG z4Z+uc1iRn-g(Tmn%q{Qk4rA>unzueZ{t;WCq{xgfO8~jJZkXY$nuX$;g{Yo(Im~$u zO;Qn+(GeLcY;{r1^-5N}@;f7dJbeH(eGo2vAX9!;$lr{BZ;!N&hE=`+hl;A@sHnO~ zDGMS4{rvx@nLV#SHia5-ge>G+; zycQ;6UD19ZEkF)z+1`uC|FjDfT+ZcTwOVl3=dZ^#*IladzZ8%}0m!LsJ%d}}?*CA+ z8^xlNf78sex+KNp^}j{~$VFQKY>ufYbj?O#(HvGr$XZa81|Z*%1|Wa@Bmu~Ytg7>q zG^}u`$&)^n+y&D3XN#1MIhL{ir3c6r|BFEKo|df`>LoVmiSWOQaOQdUpr}|bbCYX; z9POsKa9$=!*tr~g^1a3rAg`(}$4`It@2IYp6(Yo^=GiJ(Sr9P}A=;QIr9X^#%qaM* z2e^&v-m96I1d7E%9wee6MgYhRARo;$G6Ki}XUQZKx+Z9Vj96$8U5EdQn54uJi^g$y zZztA%*o{rQ+*tue5tZfvi9_hla zHy%b{L`B4-+VtHqJhwiCP$akBImxRpnrg+w3S|#OZBbHMi7T$T3$F57jW2UpV%t(e zxO|u`d8lbP4Hb2#ps1`))n7*bVY;8mcN;C$W%Rv}c!$&uvAZU~SyHbGq$H4t`p|#$ zHTXvkFq@IzYUl2L{QmKs@C9BEG4ucoNF$&q4LHD;SGht%x8d ze8@3SwQp|R|EcBS#=|!UBB7)3jci81yC+%7K;Cas;wmMuQX;D~X(JwTqh;rxG19YL z6aVWQjN|vu4r0Wc+uE7bwv)>QG*&>9@KIV?h8u3U36&F@z>&(P)Z@Kf2e4)R(}+fO z>&nUMo0E!Y-E1sc{uLCIOcd8hfrk(eW4LE6+?K`r_^Fb4>-<~Yy~C;j-Pr;p=Na|DnErOEoh|Gg#?EB*J7~u?PLin&TK<* z#RaTXm&uf8ToNb)x4>i~LR={$#w8CvfoOOTK~GDvG!@+{;1A=m-#v?W)@(pLp4&P4 zIGgiCUQSK18ZrL<&F$?}cRYhu&h6`+P=K6X{ZpxRU}9Y<9{AVKV8R5+QD90X9PCAn zD6U#40t52KG!bX@=EPb!xvNIq#lnbW#>eIhq1_?)w0N?i^NQMIx_D!<%#-WxB4DN4!Ue3Ms_6sOne`z%Qc~H1tfDFfxRAf*EHCu7M3Il z%j|$^8Tk$(*0W-8?mesBU$=SI^_998LXYhroBSxkT@EGZ9#Zb>d z40azxG)#4hj%9p}{SqVrb;`U;F_mQ2nLUXz>+aq*{QYl#!NA~v<|ch!U|$c1lhWtO z9w5iUDN`nLT;k1Rm07>}iV`NXt~eqbN~=#pe$x&=^4k<0>n%)vS(5WnRU+hP*5}pV7{Grq%!ivekU*@ zHP9#nc;2>8W-s|Ay?D7ze(QO$hl8O7<)!jEDgF@?>pJDjN{?_hA2ekwGr6 z(G;}Xbufgd-xvY0RdRV)&A=%W1XQS%u>lkn72}RO?nX(?WN=c_**_#e4h}QtEW@mM zmw+oQ1DEe)^)W?Y=P!!Hy5!gN4~FpLpKZe6kSqzFo7SfF?3UZFVtz=`nn4*Hhs1_J7{@??DM1P;c-pfTxGY0w9#2`PNNnOieAu-6SCtofx$mP;oP%+5W zc%PK1_SH)Yj~WqW{(3v77l{8JE1t;FWzHS z*lSIij%9vRh}AVu#Es{!Og%cIcc4;oB~`Onz1ZZ!l!zkWK7hWqSJ)aSO`+g+Q$%&h_!9$pt8Yl?+oFCebJonB4v4Xd%o(;IS%tqI|ED4z7&>1rNo)cw(T@v z+tT`6T-k{F8E3;)R;Nj5OWJjtvXsMGc%$64SipTZO?lLyJG2YS)n{1jp_ zg@}_#@L2iMVZ8QcOSWTh%$1{})Qr1{ZCkDi`*9}JG+l~Gb8mx5RT@!A29oC_H9$U= zZ$7rKJNA63p7pe6)7YYV32v&n`D6IZ}hB-t~WIwgE~J8)p*uMiDM z@neqI#K60oe0b|4FZ+8g4|^UkZ=wK)Qb~~6;^M_iapAH{V5K_rGJ8B4!nRE(F?*b5 z2Hj#{wHDy?CD);@{xq1JRp5xF&63CZ(c7{T(XbNli6;_x^^I1%v}%0V<7CfO??yMfS=`A$hRu5;%LKGIw)|89P-iAis$1?Jey;Le2 zA>Cb)u_xOnl_xg8a~uN@S3dIr{{FYMh!YFt|KuSIgE!r=xuxZ`9Qz?-w&r*yagO=$ zF;1Xu>)e@zSaEq73hfG5lSk6(r`(Lv>IIUtx@iA?FG;IEk7!g~MvFtfZ6b;*FG7J` zE{|-qA7$Q;;Twr+2t_JiRK!&HSOC6}ea!zAiHZp%5&|}UvTmzYrPYOQGcSB) zV@vysC)%dvPRw-walCe_zMfmyG-(zmn4brS>AAe|Kgzv`Iezw8GjRJYOHoLAG}6H_ zK-Os~(^lm;!UIUSAj zZez?8Sr#!752CAcCA{R&O7fG+05lqcV>{W}cbDuyb6K|c(B9E(E=27lszp9C3HfigpS5a42CBC4vE?EnTVRzN5YV6Q@ z!!y}hl9J-%L3l?tBNAw3%uYctVpmCH$Y?fHcHpWt@A%qO`2dk6X0{f?S-b!xRZHP0 znyz9w@JK{Q;2HWrVlhecKs=78{{8`;f0nY!a+{1$S6hs4eDwm<)W~&K#KyL}8c<$) z4op_NQj?wm_j(kxmaVg2dHxpyIU9d_{qqq29w7 z>2JkAC(WM`V@A1AwsICxGLl(eu;^M?^Ca*q9z|@V6Yspc1{*eS)@=5}G2r74?j%bz zk{6)NOIFB3=6Ge+m!ILlMN1vbgk&qpvz21T;;+D7JW0cz@OpNktLs_ta>)^P0VT`K zV6yA9X-g*bj5@iG;r6I)RDYjzG{v9ti0#_}_q>`&5!0OZ?BampEAM?q0N z13N+Wr#KU0VGkl90^8*B6mq|h7D5|6u#owCs|K7rck3<|1KnDCuB^OB1jtpgDzV@o zj_mkf4EOETNDK{o68N8IhH}nQq1SAv5YSMrb$^SBig4$xx1f{&a#HbODlt6v?^%m| zyWh!>L2gtpTb>_}Z@XmNt3pZ;j^2Cb>bC(!B^<&+;Z{fWUKG67kizm8n?8p5*1%skTMAG%;Z)H7#g7m~reF7a818ycvsMMd zaXj(Y{n)a-FIyO~9Wnm=&F$^2nfGdDXO36jkM(p`fBf2uaM!)Gr?IMR!-~S9dRPlc z)kIr=Jd~8nmzo+tn3QO|d*Ju(hLB8D*F8PCWgE?wbhaaJH)S)Crav~-8Gc;qz4HsI zFuCDASo5UhC`t+pd(gJ!CA4i{rSZ#sApuXmA4IP^w|j1S)oCQJKG~uvt&yK!fb%cB z0!=eXUfq%WD3VwIVC@qcd3E`7Wr^>Sszywjeg=xlYBg$ba^OT9CX{R`%ipJ;3pHCE z^>CIRN;{X-5iXYNlbQb(s~x2^vvp%IgpsZfFx2zDCgEn-9l^uD-GPp-+_G)yUCvqH zz~$#SVKK{vD8*XMjq`3n*`%{zqIjL;m-C4jEC0aDF{9+%GKOC+uft;vu(5uh^sVK! zS9?JcBzJE?z_SN}5M^yRJU$+ey)cBHf!rz% z(QDV2iGI1156)h^pdb%dTzVN!Ic*6{EKx#CYU%Ahge@DNLsXTFlKj$9_Sq@TcbshV zbbdJ*vUYTEsF^Sg3zlAwe3Jdnvw{2n*?SKtIj-wW_^VFSxqEU>$QeXVBp3h?%uyso zilQk?vSrEt*|pbkE!)2&r(N6oOO`B|vSf)AEsGHh0wV~J$ce}q15C~{J)LuR{pY@_ z>Z>DzLQB>;1I%<+c=g_W_uY5Dd%tTcWAw~pg9qU1->YJJ?H>%_dp|mX-u~js zGl71$t+ryz1{+c&v;YH>nLIbFRryW)zVqnm`X%C7>~N+xGCCleo|A1zgSiQ11QuFa z`jF&nmM2hNGvf|fTNd{*6u_Ye)n-iR6$ofdV9z4x8HslU7hM=l)Res zf5}PH$Ye8N53O%)ZH{aCT>#fQ;mOzdgvv4l5SEN>#n@SgPjD5^mxfvy^|jeG0*d7M;t+-ER8U*yt71-)beJH>+TJMPJ!QLO_us}W!O z-J7xehDL=U%fW1GMtR+OXbm=b6TKcL}ENn_W&aly!8nm;)3v$yF?I+$-ZEl9V zNxZNxj8Xr@?Jh)gbb2kGc=BF6^4Oh9g|g@yx8{w2_fB2184b4G_*biZAqyRRKXlML3myJ5DoXL zx~r>e6o2=fH<(da%tNQu;Gz2$0YMjd` z`!)!l>o9`;ORP*n>x{2~>X8e}YZA$j8(qiW!IeX=s{%nnQN@C}+yDR|07*naR35J$ zjo{M2r!@+?_@i+x??@uIWv!L{D3@5;7%f=$`!GA2!0AfBk#j|7M3Mu7-aeI6MQCrX zHB_?suHjpyvdIr4=(~gxgA?^>%rbl|h@K1E(S1=}x6|cK;72dHFy<|;O+atoQo%E4 zoU)&t4m-Z|_~%eo+bU#s&>GA0xO8zpPM;#mw0zo;4X_q{NaL(C=_8U&yN~CHQ(w8R@@++Ly=ln=@r|NHMA!-%W6rB}#KeBz7u;E5;iQ#tU7X3kbN zPXx%NwU;uR#^g*TQEogVdsqnyKADAjYFx+W^x0l=&uLIye-Enb?-S;v=+#d|J#Y`d zhh##|BBW~u2R-?}C3i$ge;x9vr*@Rl|bd+I<>k20m?nknGv0!i82e)3K{@x{9Zb_ns% zXpFFy&4reLmNXDF=<7?%AkWne%3xNt%P_mVP(W}Hv4{uput(O@6UdkRbcwx6-5zqV zmsTx?Mk^M>B`Vxl5F?#CFxIzUMe9E53ghp;e-gt5>(Ihj>B)@Z--{c`uzK zUnJv&IaF3`L`^N#R~PjvQJs1Rac2pm8DudeUB5>p7X}uFKYUEGQtey=j%$VY1FbY2~e=uO-{tWgC2&|8Y-4-bI@l|2 zgjTDd$VjaL(!5dcU8xkT$yzBgHH!^S#t;ehA~1FWJTI?zu2CO;{<9D8(XP{r z;mhMtt)~r8t_;X@hXlvL=4=8PvMKA4fY68s1MRQF@4gI=%a8p#P9x}#pldLSGd=t# zo<%;D1!2vsrUg8&-8R)MaBFK z6mFR!t7{OXOU9|vTsPJmB-d80qBfI zhB4Ip65`R(6g9XUJejEmb9OfikIv7gxg<{;I4Z)kb~_KMY_qgKP{G6~f8xyiXK zFQBnl9M3(w53g@KR`mMXO$|=`@gLlR@-m5%kYt3Y+g7k2r9P53hDBZ&SdH^8ct}RM$9wFZ-E*^OsK|fJC3e;pwrlrY{v2)4}sH95^(X20Cx)rnMZjfv9 zM*ML1wc)uJUc}IdNIfjxf7l0H9MF8?Iy7VCCI^s%Ir8+_1)gguR2rN%4ZixI6V+u( z0Dwc?tj%a%@Bp|H*-;yh2hr30U+{U)XVG;++JeP4A7#~BSoWPzCo9{L&9N`e>q1{3 z$N2=t1%2lkRc~$W-LP6`%JLTV!#B`|S!r zS<2Zd1ly5wg0g~}n!gA`D)TA{J{m;N#kbIX;VqTUW&ruiW1lEMPA}{63}Vkm&m$C~ z8mSW<*9Sm8cisjpUb2}*yR(CUKW`6)eO(v{4xq%SPk|Q%kpIJU0pw2-Kz=Wy{+15P zAkPYr2StE9B~lci=)qvuFA<9jGe!;R5NxmP+s~}FR~DMwiAFM0_S2uop}Kkts%r0q z#zFyr0{vV|vx{c8r0mzA3ECx37&ni`ckawfc!4@qn_I(u$3=l0f*T^(6o)Ja-C7kds$x6)|ZTZsvL-#r23+sZUsY7 zzJZL{0diaEOwft%AYB3OF`-bo&SYsm`V!e z0E@;g&sAJqM|;|un!8khA|DIEKX?Vle*Ha!{cV%Tvu%Ba?hd6-IojSKW} zSmgJkdAW4y8m!;233{Se7uTd%EQ}+EUqes#nF*Uf_o$z>0?qT*LZ?sL12LPfu>Q=j z5Vg@kA2a-s-?xJG+WbuTDVXR~{@y zsa@VP9?t%s>;{VTGHF=W(h--IP_^gm@NYCpA%Qw|KekyxDiGZ zcdTahtd_szdHfYOUbfQ2_bJ*LG*1@KG2wG}IAJl#^HNK!A&Z|xdEF{-Y;6?e+V8!9 zzMhv=K`v_975*x*w4k!?Vdy0P#{?~=?kF*rK~KR~(z;7D>M<|8BL|R(%RUJf?D5im z{OXr`5c|}Y3ScJUC7w$>bfm58+!T?PDa%t~meQ0Tr&f(bwGLkU3im0cTBmxy4?b`M z?!9|4C~8+;AgrjUyAdY4y7n(+#=3_uW^t%yGkV91cvKs*L_y}LoXIA#aPY+I4xj5R zhB|%?s(lplhY|3HabVX49K9St_h6LO?fL|d7SpP0J!5L}&Yd6qrSxZy#p^3bQ*7n4-=KsHZ=RgTqM_!HO($Qtm+) zt{(k$Mi%)nWs&cno-Fdmzi>Amd2FjVPlR?-jci-#JZSaGYzMIxIn_i{)MO-IS0d(S zS>&GKy-37;vcq=VOr|smFUGDS<9Qq^D{nzf-Q7Yha=nFR&hp7HJg&WnhI&$spvNEB z--aLj%LnlL^LOUtGf%A+1HSf^by&8vP8E4hl-D(__lh;4(*rT4x`brXeG&`6C^>3X zHO?g-y)5$~&+#J){z%BnvdFtH9c8u2C7^t&j@pLCMOeA!AyAYtJCbq4T-|to=ML;Y z^06wIArb>lc5?_ur`mVp@)LUWHJ5n`b z$r%?O>%p;K{|f@H0oB~z-xk9MXNw|KDoTgwco3RQSa&(asiP%nJA#`8dj;=I-oKZP$ z8^e&R_>2hIGRRFPBObbYE9Nd<35}RRP8}Htxbfl6pJk;c&Ftvw0U)P(>eaaE<}boz zb_h*mnX%nCc;paHoIitAH_m~x%)-De${hcPe>pxa8RU;M5bYijM3d|;ilm0BO3vW@8eAxD9+lrk)PRc)W2uiu1kkq6e+kmTItOt_}u8 zS?m&n5x3rUH)hXW3XRd8()$D??*8yu1cUjpmlzBt)X!Rmx*0d5f#eg}kIF1K);VHt zDzD3LZVLO zLhfhE9`A_ag=xqhC-?Q-nj|W1>Q|VPBYXV9`F%Kd_QUbn5ET2N^jhFdG7AY9&Jh-p zfA)9@R<3>k4UJOvI1fHJhLPSjy!qbyXq;V&hURkU^*SVyNxZeA3$MM?QS|Kb3a1vo zb+1Fn9+ze&r$Kq`Qp~#H3FuhualuE&vd5|RxLdA0E?hD}LRE$oW+q>;n##snRMg)G zLrHa-KRKI@nMm)5Ez{^=V%g(l3yaqzrij6>@dDI?b587)$+|GkH5ZN0CJ*MfBK;^)KrMp+i;uEdQmexwCY<@BdXF2#LjGXXLe zJfpP|rImBUY+NCNE)jNPuwy&?t_uv1pjza?Km`u>u@}QdFSIS&$`Af<97ga%DR-bE8UBdz3|Px6eAK+e zKJm=|Z+Ae};Uf}=o&gq+cxOhhp@cn0BMdUSCv+VgBB2E?~YWu8&WnlKmWnURnm z1D)qE*mVxkNGON%BY&E80x~w<@-*!BsuXiUGBAR(Ck|uV+wUQwpjoFN-S&~|i)MX_ z*)W>bGh6-$9QQYc1{{$*6F9zUwHbOHpruSjj$@@i=B{`OWp&HMh-hIw3x@{K-u_d> zqN0OSa?+t!Due}p`avo?)(&z?dBC+B~bFRrQyobQ#(~Q`Jg9(|2!B0)jj;|_|5A9Vnq1z{iP^(YE`se4YM|*Wx;*WP$aR$3Y3VT zukS5DYl4*pa|pJcxQb<2c@&vOlkA#o?oPT@dag=NY1ZgrvDSi1L>Ze5F`XbD!ASQJ zTsr<$w=z8L=3 z4^M$;f{S@je}4Xn+wu4pwn9tmz9_d8%;CriqK%3Gx!UF;=}N?jLU{IS)pL=(db!Oo0>VFgWe?6?JUN@rXev_P)$;*v8rINNW_8|?meQK z!|a*k0^~W`m0@=!5syX?@Qvc?sXYh<+(^V@1yQVLK8eGEMO2F5HaUwa5kqkBDqh>Z z9cM3IQgvCO6zkIsfaWuv(*=^2S2*ykzxf@swyNtX>W$^FIp;HbNe;^35e^KC3A4UhZBNiE9V=U+vaqK6fV^p@ksHm0qOkYF9 z^X>L|%%?%jZR|)USko*}orq4jh5mR)WRL zo6*oz4wom2@Bha+^bHh0*ki*|6K-E?fk96`LZR_Q-#mZyS7C8B3oHoq1u=ek&!fAG z_GF@;KGlhe1OcTE&8CCdHQ9GF95g5~)}g%qUKos&@h$kUh2Tf>g-e~A@66y(Vk#FC z^~7t)N0w?0qFSe#%9LH%e@q1b#QNjnf|QwMAT4g=4YTl_MyrFfV!l9!M3bKGnTR3c??unW zmk^br$2qWQtvBB7z*`@56+J?3Vu=yYnBro13Kr11EDmqu5cq%blf5 z(AfMah@ONU$v6^$QM4W2j;qIZfHHI0VgrEcb-jEv3Rj@G8%knWc z(dk)K76JJ7^5xL#Y^p39a)5;V>iVwawq^C&d5+aaOD00_xlX|6qPmNr%!Ns!5>t*5 zbK<7Wr}6qZ!%?W%$ScN_GV-cxHlwQgHgHl+z(gGJ@BqgAClHJKp);1S@5ouZe}4!5 z^m>v%rdGw=pTVm zZ-JIFuSGgJ(mf%6KioqnKsCwbBQ3g*NgNwd#cvZeOmfHo@mLt)pbuS_j>9uLfLJ7~ zs!J%ydJZ{Gi)SHOT)1!}=FeLXqFiS{e8dNL&n5iqX|Efa^{JGs zpl(_>W5(iyh9{2YhKWWX{rfUIhnp5@(NtqVWw`;A-K60(Xqa;wS{L3c)P@r`U(u)= zSKEHVfO2-E=AxJtrjqZTZj`l7V5gAAJ{>4*eQQk-L$a?g=IFUx%U?@fTNr7S`g=&Yo-!l<0wV^L1D> zvjml82I%!d(456yi^Uthh7x;?qU;Kf!GRqZ9^MDqbUCYTgxNZi)%cVkMybB0Aa$9t zC#`9cyeiu**XC48Z914BU7-Xoa?3dBIg_mpdSY!!#*hrUfM@_=PcKgH`2oW8w|LOf zxASNa9~`B%b+SF0{W_zb$D)P=jB*rh7F2kk`YoRS`O)*ad0v_z#^<3WBS2<~5 zv(5bsa7JuzR)(HzV|6s}pFp7%_WJHOk7J z`2O>knPaY)2kE1S?put9A6y1=X(O~mNypd@jBr-0PGjfb5e^O`5+u7;9&AC5IdDAH zgHIqH_rf=NEPtCTmu*!9n~U02Q?nV>wIV=Hofiuu9v#D|=MZ>p99r`DavWpJdhvx5 z_|>nD7hRSKApeU$x(Su#1lVw_e@&%xV5?cq=30toe~N=kHdid{LpW>HSTZBg*SO#->Gl;sE4x-$5RIY+nE8F5UNr_c}1u|3rvNL6yIb)Rg1Ovy% z2KON7yDTucN$Y361_BEn&$9o{U@n#GqY}OP;Um9BPfwQ8QWFTCPH#k6 zO%qz?u7J^ElR>Ohfs^dITWNnzB-`1}C05Fcy0y?5C<|WbOgJd`qL zgW&|8qxpAkwCHPVZ7HyEi2<`(OfZ&cq0?|IaA3~z$57d@5+L~&WhWdS!qqE3Va#=A z+Z>cuZv>SUphOJW&KBe#+nSedv#a|}@>8VGkKB~jDcfnB0U(wcGua4a5k|b=Lmu{j z``I_qb7`mS&)|U(PXf=sV@e-y!)kySrY7n`Mt@InwQCW^-lfXK6sweW0xCNa{4OI2WL-`c~)-rP-NDRgV|; z1EPji`Ryq1)@*N3*LS9%wm=&^qkF*fGG-R=NARyd+>ibH+l#Iz<+qKq*rKeV5<+6rU z1|4<0!B~cxmOEge3r^I_7@YBQ z0C!I%MT01^me1tSP@zFdi3Sa|CfIE{SnV}fxb7=3JDUKOc}qGufr0+_F*L9fNrf?& zF=lyoq-1VLrp;t0v~0Fy8cLMe*4*+0?9TbAZlY*a-(VX)e(R?QsItg`eQj~3P+VJ1Mz7}=0rO+AeFgfd4rhwT#8x|Wmb+j_uLNbDYn<$RP4@9DkS}f+q zSl@>T`oy}|sm>IP<$U@!eH@gH&mMm%&P~OMMpG?j&iXR+iu$g};0U_T>_X4wgJ|8j z3I+>h83My20et&g@1v_*23{xIugdGRS`8k&YYy(&I-6}IZB@%*E}sXZy_N;hbf5bXk1Cy<3IjfmX!xxCk!52Li$+*o@=M2e zBjl%=FpB3e{33JXz$SX8l~B?z*8_ zpE5w+&`_2z>YtsAE@k?27U@qd%tj4nG@D^CXkf9|VMzw4m_UE;TNoPLoi+YD+gxRV zGzL2y6>DLySe4=2P-a#L_N{oALLG66j1{`4L?cVavdPu}y@8BniXx38>FtBJ<2Vk# z`ELmOVbvLB+FX1Ni&vcU^JKFhK;`uBLU=M zjX07I0>}sYcQE^m)>(^VKFaI12$bt7VV1Jw(lTpv$>+G>p%eg@zAA}-D`Z$S9y8{H z(Odl<0?6y*836fh3?N@40^~x# zDP@rF{P219f6}$7;V_iwkc1A0FC`Ev zE~XTWBH4JvjFMf56dPfvSbGnFE9Yq2eI zR_IEcs-Q%#>mq!v3#vy+a+cBsg-)Psx`^iyi-ys8={WkYp3MwQ&D-W8fcz#bT5wa! zNyYnzG1lLXAHVqP41m1br9rn#!LvKzyG)IxY{J{;al&+gq)kng_||uxLIvZ*rP(4l z`OLQ2u-NB_dnsWS5u=me)1k_Ek(w@GUm|EEu17g-r~-qFg%ULsd?jWmPZTV}mPet@ z1RN1S#{ga?Pe~-B0SsUH5W`p0w&SQff`5AUJVpwrKQ6rg1?PEbw z40u%dL6rJN8cU^o37D4PaF*TD8bzawmKu~*FPF3DX#Pd~7`(ItBkg-td$<0P z5We@H7pEn_Z$Tq4yH*3UNsFdB!7pdARb$Cbzl#!EjgWjK>agMAJ?QU!8%aLFl0mG_ zMJTJ?EZX9Vcg`p2LDF^8Xp7Un)@-eVzC`jjBtYw5VCX!~9{33YKDm4s5ygCTB7~hs zLlEP!3lX7l&ovpS_ILtjgKUYBEZ@9pDK_1>7W(oQKrA5@40*A8_pjjg+h#4pjW<35hrLo%dojdD+p&B9VSI3iN&yN%4y3PWuAS@x#=QA4J>>g-G!5s} z0dpHPFqLT7zLI2_vd0&#`wA@NV^-82_j=Bwv*TBC_V`2(%C$iwKgI;kaVke(aV$c4 z?IyWYn5Z{Wer<{EMQlf=jli)zC9xr-e2ElL8y?|ZmtV(XzUR=fF{9_w3Mo8vnEL-1V7HGOc}!)zuF8|Lfauxe0VQG$jB zGb_tlQM(i~Z}_|lOQRA5-Q6!`DM7#>?yRpN$urqQR>x8}t2Q$GNPQ6NDkbLB$kggo zP%q{am=J=Us=%e=$Gh>PAMVD`P;pCleUjr)=(Bkqm-L7~y#Gq~*<8dPh2FCm=T8<- zE5@@^_YksqN1sgc+?2C$IM`X;u2vb4r&_v!A@p6@j=)%3>M~kSkDeOFvoBsk zFr>`#ye6GS`>MCJk=RoQdU~dU&~s~MwLYBW`G4m)Zc16?wPnE477dIBz+uzD>C~gV z)QH)O?nKl4I|RBcw&5X~V9FwY7GWuiT+wCYZTixCR_Pc_zizxy$SxQQ2? zfUd*}qqPPO%4pI{HM^+MNrVGKqQf=~@RT}7w%!o(wX>gapcml)m2i>3ar$5G8|l*V z`aa!ZJD#&vIZisQ8BHypha(k;z=IsNzWz2GfA43oHCCX+W=3gi19*)VFTHdMuWmbA z^!hsu^>+O6H`b!Mz8TiaWw2DthTi0qX)H4cdB<~CD?>j7DJ3UKG&lzD;7NqWE;3W3 zZsvW^87Tr)q|fJ*aF3jWpXr=*iIt+R6+J5n>O`B@4B=+BFOyudA)ZvYWpSOR0ME=N>za zuFe;cNC?zg%K4Q|5{2(M7_Bp4an6IqHU~PrOm!{jIpHi}<0f{DLO;k|rDSbMA0@dZ z={O?;6)jaMw;msIBRF^&2Y&e-1UCnSr)uXPi63aGz4VJQWSw4gAu9pxOWtnAam9K=^J_{x0hVf}Jl|sgTSN6E#kBsPl z@w*J1O{DEp0#qrHmStOzW!aHIOc`NUJC48qcL@7s+C=hu?>QO9dxwL>Vp`Or5P&=y z4dLLSH_+FAxu|Ur6o#;VWE|Nt$fp4yr{@xN^qF2ABC+Cb=LCR!4(`8uE@Sl28Ew#; z95C7IP+ENxv|5V_ASc$IpszPKj#8wX$e0StCMN?RIGI->y^oenR)d>SvjK;>?VD@Fo9 zek1A{no(kJg1u%L^u|(X4I*Px!Sl z>jJ!^1dxk6$5fD4hN6&dpF-^|#he)%?!!o5dtUYyyDTFpahd`0A_QSiRZ^w{Bqdwt z{s-3Lsi!wXPgJcb`J$l2c?=|1(P$Gu?!GDjnPs2FCSsNeoqkD%ttHr5 z31XQFyATVHiRA!9`zz~GC(EtHISbD6`NDfJ6`e#p*Wn#FuK)&tzL7A#`}_rr zdGn7jnqo>vLpXzWX1qoqsfbtE}0djT%$)5sz$z|_n(O9enCB`buoc&c8 zDBF>>H-Tiph0BMx7mq|SRc))l zIw%6Smo6W|$y2-Xtk;}&!Vmc-D zozf?uU{g`)Ql2r*Se-%uiy$mXB&m;2zKo7DZ-7^@?|FPlJo}ap1JjT_-cXuEV_8Ba z%XXUuUwZIP)HcrnXO;H~y?vK)=cikywj|=S+vd3Qn`AO7l zPC`r5XDs=?vQKA@$Tm~gC`DBIUAoe2n}yPvTTx;nP*A3SPgfz5PE)spWVr+uM-yYt z6@{5Gd-&ZS!|y&SlnxN};g~CgAOGYC4jn3PiOHhNc3yO>a3Rf`3yzX~h)5t*(O*vveh)9C4bg|W#h z4*@I7T-TJJaGU}5@>Ot_uY-mKrpVuBG9ge>OcVk43HaR<6qrcapDvQ+AMeGXgB_n* zYIPoPYdHQ7OxSg zEOJuFa~mkiPuTR(4>`wcYa4LW9bbc^k{sh=v}%&F$ai3HK(0kz=thqj3u1p3I*Bvz zpS1h1O{y}xog>PBGn!{SA%nMcO4JA6z*QXGuFfJSQP|rS$APQG1$pQ_S1hZ+Z$G&t zRgQpYB54Efs9eE*7;U6@5P%kNw+r_8)U_mM&ru?s6bP9MQ2poP7T|40W7?wnUH0xvj9(R>Bq2;cx%`BaDs~ zce7zN8}Rk7-Hr{n-VSTU92m?_nf8667s~Rz(y&fY?WTwizM)eHj9x%2JPe)Ii0YQx zVJ#)coT%df1bw|28#sn!A}07oL?cAV=}+^#r{R{ueqMMoyH4peHZYxFE{U zN%VexmlOdY=hn=g@lcZIe=?bp6)Tt3;){>W$3S-ug zvh!1?<4|2`#`1OdW8U&R(q!3%woA`2S(fFMgUQwki({TjM$@0IWGTpyJw^m00|x4A zh0im;m*;>wb5vX_#d{j9)i7DA6_NftVxdu7Ir?L`d(R>;HV96nTqQckpKtfU8z?S9 zo(&);qifOZ7Cd~%CYWpHsIr63p4)>nXZI98I5`(UE;;kl25r(A+f<5`(pC)r!B!5(;BVpdt! zfW%CpAV=(y#kXSK+_lq_L4F+o%6g)4m zicr7{vFzyd#4I3#3bCjc0Z+GF4?N{lNLy8;iIFxxQft$AQ7hs-Q)`kG48hi%IICG4 z3%SI7sknYA_Fuw!#{OjvdRy5%ILhXwz*GY0qP{`2AO1ND7Lg_~0RRF(*If`mC)&&3 zKHS#vovHdDa*fn$SkLnH=iM)bBB)xfOS8 zzFS4Fo=hfi>hy=WaPi<2Z5Iyq(n{1c%|T`T3;`r(V@B(+tiw}%uIhYI_mY}WjHf`c ztmtfU-fQ$!-eA3$*-V|86zJ9a&!Xq#s~~nbNnR+q=DF>iIDSF4f2Y#7%4=tdcDSTU z2qbT8aN?#dPokz}l}xYB^YC~sptJJ@mT{}L!)L%*y#XdmQ_g0MYlll~B&*DqhBk^% z%4vtQu2U#e)tU@YpsLBLw!`CL7p@-r8AjWWAm|xMxjim+#_-ZkKSGh>8ZX(h$El;{ z&1k|Sci#>xB@2kz^cgnq0)0gkC80Tn%#(7?)p90E2#E3fpo$m$YeQ7 z_IOr*G40c`1SJXcQ>~vQ+cKM9MWZpmR<;bbvc)i(YJ_WZh+2xxR!U0XMOjwuDdUJo zM&KHJ8;O{l0~e1au$rKSYHBlu9dag01uhko*f% zM#mEN3`S!05Q9&X2}FV&@Q&<7BH>GA;ZUjKSGS$QOD`V(^irz>WL<4TDEjroy}hHw zl7(X3CqGFj*3-tn&!?Vhy`tQLr@ycqOBN8d9+kgMvdx~=(Tb|Zo1rs0#0*Qp88tR^ z8bM!wrr|6)?bw3GHlCUF6qLl#N+F=n&DL6!RWFt4k&;QaIqkdjCcMLP^fleTZ!mx# z{o*19iwx3@Cn`l=2#S_PZZiR^XLF!vKgs6MYPDFmeiPQLy%~CEBcKx^^Gw4sYJuPN1-Q*9tM&N8?#VwfKh+u zwAQ5l6Pro@QFK|*bD24B{jPIJBq>u>s&Sk)DoT%}@~d=DrNY0bz+*F-rPEu`()uVI z&UtdSY1oVY^ZRjf=PQUssCE~}sMbsBYVh1^S8=hoxHLnwkz2N6F_y2q0S4x*oxH)H zZcH0=JQmL~q6Gbjg(R9S4rMhfQQ3GSIGP_~_FXa_#c2OwR!ctP$m&p0R|ZQ-Uiw%t zONQ+xvQIG{h=%+a>~4c=cmUo}F~c`~=(9NT9ga%evhh)vO#%}LIger^SMbh92e9|V z`81k!4(I!I2t_~nWw;m)zg075Hga5ooVg1MH5tmBM*NSjuRv|J1>rylT~~TBG%$vW z%2sT>{eGA#X9&8J1LE-@I@X^o)T;D-&-nCpVX;W9-Lk3F-TLx6Z`-&ME<_8{yRS=&;ViU5mB4sz86Rczj+7gT_WvRG?-` zH8;zQAyg`^zYPc9_z6NjxdaQn(*CP)?7Le0Qb%Pr4!5t+BNB}xAu=&jf8V%jHC8QK z1+9fjDhg|PFyzCBdtQQ@Sf-|Wa56|H=?5FaeZg`iACBJ^Svy(b!a%z7XyDmSE z*fcgkd26Ct*ScMga~%Gh2QPAsU!#Xl52MN$FiNMZ+-4IF^gR4z%0&s)>pKd z5{yckJ;`_k-r?gQ>QLY4c_bxD=K{56uD;F2TE?8VbsJINNVK0KrBf_~h^rgN-+u`M z9T&wR5o!Zn8cO2biwQ)ET;+h;F;Q0SWK^S`Fs2O;2h7#BA_XcAtD*>RnQECds0=$3_M* z+TVxa{vJfbnVI_OqF^u>v2OKUsIQ$N-jYYs(}z>1j^pKBM-ZZPKj|AD=yvHa;3+P! zF`02;4!;DxdZ>N!4!@~5^hho~ch?MT-AFV@1e_!pKpu35uzv9hSSx2jW2+T)Cx^lQ zJ?QOzmz_7B?o8Kh>bc0lWN(4RIS1AOKJ<1D;%Dy?Kwex)rZ-#HqQU$c9wWgxhJy)ai?tP zW!#lIQ~WwX!9v5w5pcI5W-lwE)mu^1v>7^)rkd^MA^{9v*p2=(JH!$Yf;0sq z2|WKn4^Fgs3bVC1z5`MIw!@vB?Rk#lWKJvk*pJr;lTnAKADxSpOR7?g40L{psRE7j zABNsi4Nh+sX{mVx{Zx)j5jc_358}K}4VcDo{2zoo<8$FGH`yyitV=}`F zI#;i_2A{iXTl_MYE?Ed!{P%0g? zpMK{;0+)x2YlAbpWq|>=EGxmNJBBfD9Kmn`HnSNIZ{38d>Lz9zN=I*hJN6%W2hpfd zPHO50l~F85bwdkk8e5GowG8G&$6&qY52hQhdgHw>A)zKmcsnQ%s z1mPJyh)Af5m56h7T)|k^RdjWZ;1@dr@Dw@Vx}( zmOaiH1zC>8A~^W*4s`V@OXi7PS(G5vEK-q+l_F0Y+-5Ds&Fk-l!(J}xiv;4M?bvzX z2zDH~pt3J0d%R;r2UnoDz8n&VSv5iixw67csojnTw%mrwhB?qy%oa*AkPYX)fQ~CK zF-#y+e`X63mHRC-fK=V5%KPQAvngPsw012VRm;Wwp|}rHnhYvei4InK3k)S<$qRa9 zB8GTm2%`h9BNiP=H6oti@!IQ`@$xH|ie6SSAD!|Wa1IU2tFbu$l@lEuis+4N((*}{ zSe$C>XkN^z=Tr;}bk9;}8Sc63K~&Vwg~loDRmq0*xKE?2>s7`UqL6;Ev}_tc&eo|+ zhrjH)<{*?8xEUsEGtk9ND!Y@Y)qnDn!#H%fyI4U>UV#6NDq_xo z^YMK0e;&Tl`P%gej!SmRROPd%*AqytA04gdv{Gn$QExvjH{;`RdqT(k1*g&6H&u|F z=+*DLb2jeUG7ChzF4;>Z#xm5+yc-6}kQHmr&}8?HT!7al)m9X;W~Hr1=F4U}?I@!~ zRd+>Py!0hDRMfA7-e47OlT0ER@nNX_LkxH96O@Svh*J%(fBV%X42~Adh#!BLiUH=N zJ%O+$6$7GUXoWfnPDhGy-I+o3hsS#+>Kp9};8eF#eq9yUAVj5B4glfzF*-_0C=JdZ>? zg5j?B5b|~i!6?NH!_6}6CQ}t=&3y_+qiC2TiDY0DZHM2-xr6T`Nzn)5LG*8LUr6BU z=+s8G_|ljCjwF-ImsH~EN9M9|ln)K6nr=c_Jp}h# zMT)57kQ@Gi%XneOL7eX(N27eW0vfar>ySuho2}PsROmT;Cu01qQ*`)Enr5Bee#PQS z=Abj1s79XPLDBFUR9R|Zwbp?vu|eZ#VDmZ{8p7oZKSMM+^+;l(TXfd0fur&U==C-s zC@d9dCXYe3eYGHSf~!wBq#zAhE`?9EFj;D0qM$QLcG*U71jBtq?dN536$?kvvG*Ky z9vZ=}bK#;pj;^IdeOjMIPB|gsU)=+9TAFdk%{Rg1tOsYSfyPos@yh7wdKZKJdo%V3 zN{y~Bv7>tCgD5eTv+NOhtx5-~l!1|%06Ej2${RE0gnV?5B+neQ8soSCIn&b=+|=KT z^9PUOnQcQD^U1om7;+&2NPG|@0tE060u_#}aw5(JWsIY20Tq72w&@=OlC!6R@F96~%6n07mh+E_;bdBY~z znuvH281BHnSAU9tSMV`0HZKbJB!Il5xPZx&#cZ4#$beU+900)cjQX~D;pbr>N=rpV ztPGG#wvr|d1Q&FGu;$VDrs)lF%@)R08h6PaOSjvEhO5ryIYh!?oISi3e$QA&O}>c$ za$@UAjI?3Lfn(Tl^sLHEkH$G%8qgsa&5sS~TGW`%bL@)_l2%pO@SX2Gfa+?Zfs_x6 zZ7yu3%K>7!NztFi;rFy7#u!e-vO(hhNtOe}O)~5zAwVKqaK3CSnCqY!w`^nD2{?MG}O6xb;p(!N^A z&XmVaWphaOhUBMWF&9brMoz-jzYp=KU(D~wVv|U^O2T8M|Fi7JS#WpSEr^w^b><_` zX+^_~81Q@pIJf^@Tt2o}wcZf(-AgCq@D-Pw4Mqcp`_`MVpjn4_oX3^k5d47z%A5{7 za>wnkSCAv$%(|2qBu}2%k8>BP2Jh4@66M%C%d0SZ=}MTaW|sLT?5QOiPXGyI>TlW) zDaTZvYhc&O5V=loLRG^pFo?jY5S-%2(1qRTJH3Og`qDA!;FJj_P%coB1tHwA1ywao z;LPRFlr}M0CjVP|+lwk$7S<-k!Eq?9UX9Ya^(-@9&>zBCYCS0L1=9n_Qu{=r@lV~F zRH$FTWhQe)BfC|ce z>dbNuch1*>fbs!<93Ac`v^pIgxn&s^FPIN)8I=VUf;PRrQGBrHHO7dbI#hk3)aFHK zVm5$W3fh}chBR0>Zxt5LUnAEZ4|_1weg@CJy$^#f^?SI38eFC9@gn8}3p%K+H?t!jk;v7ePNhxfO z8HzxUB$6>NJi|K?@SPJuMd9iF0|ETwKOaGN_iq#qn19z5aNX6yd|hrgwY zg2i~1eD6{14u3Gl5QD6Mu{+OZxtkh9;HCFsTzq0~0RTkL< zBYLFr`KW5V1zH0+@dXnr9t*-XbP{3OFsA0WknJNGa6;$HfKon#K?bs;V!jv&DjIN! zD8im@bewzvk$_w-AQ4UC(5X?pw4)25aB&@>+1pwaFh_N3mi-tBeUs<#XH!w|lnHt7 zrY3COP=`o3f=lPSF*@Rb)nvx~n{P#VWg|FKso>-`m%-(`ijMZzQ`yPXsB|@*%Y7}y z`KtWgxf93LcIh~7ab^5)dMvS4XT}W5A}^IFz=34QjoxzyaAN0ch(&}T3A!%90|z^j zI6NI$F0@Sj%R~RNY!VlF2x{6rIi-x5^|K#hj2Lfm2gO-RtBC zh=xWn(zOGz@K~y@`FMSw9yFQF-6IW(a&}VYICI?A6BQf*xwP8}!rOBJ2eNH-QI}=I$%`rW5@60iP(e=$fM^!uCxIoJ*1#nk0LqJh7XUN#Jh*isF*g$aeJ{}k5DWhkZQ6$p2u}XGOX9Ow6rAk*aeXW2Q^+y*$6s5@9CY%*p{!~NDr#2(-hNirfzy^CuG8Y;MJiDtL>Q;*Ddml`eW#q8 zbgo8cVi|RnO`D-Nmder3sZi-0PK=b?DDIfb-WBCblud)N6js^{lGA{F#UmMY!!@`a z!GI81PmUJ?$-BC|_}||<376~I1f3N+R-c`py9X$ud0qq1TBR=I=CE4v*xh%)Sy9h2 zD;T(FtwLY_9`yC@8rP{o8!MusvsEmHy>c;hI*XvUveC@2&7P=FGQLl<1yu`}f`*2j zrqD@}t|WJ$*2wHamd!361d0Z{XW<(=4lrFSWPpv0xbVYg4&vDHqD4xxCrSYM+GZh$ zG?w7e=Z_)68Sv$MZbWI_3>83r{_-)LJhP8Eos~zn401`IOijk829RqsS}a?%0dr?B zPi6BFK1ro+bsh zp2mfb3c=PXAe1Q9Ps2STQFAJENY)2u}!BRepuCV4#UW*|9hm!#80 zU1PE~prURAv|@lXeIN4=qwCN%xO)VOXHF};cmG%fKX|$J&lZKe=j>@JRQQojt+*1>koB>oDTi#QvS!pJ!5iakwM48}|jOi`lzJjs- z1Biw_sr^_=|B_|Qn57g;3o}Igs4SSu$mdX3e=BO0Y#|XJLL;5n|K=~?9T}8Y zDIWN^Cy6~*i8gvFQ#bS4N{0qdZn3~&5#A*jPNHidj778OVZ+K*(A#Rn41IxKeb=7X z;P%Q{l*MX|PH#YYbuF6b%!AQv1*Z`J^3=eyy|(zLG;h;8KNTn?w~8{XE9%xM=3W9Z z-w3)6Z-b}ryd1yI17|vYc<%ik1d8l4B)Z)-SprmNHa6g{TW^NBw1LSm^hWR|Cpx;e z=LIT~@5@oW0?ukNJ66fkl-ef>`?}orcbXR{FZ)|Pzo;FI!AY!p%cz0*DEyu?2)Ivy z^dsqYVnpb?(uaTi=MPya%wiq{ir+q0gE^Ig9;NKwUVjX6oe@vpa}&xMh$TzN3MQNT z+=U}Jec>?E8xz^zMVWF%&mNB>;p)WhLr3xUK`Of_?;}33?D6VGa8!1c_L1gtc!ND? zzw(O6C@c4Jx*t+$AJgyYz7Xa3Y_nf_fjW5(iyhJOn{!(^_X%r&Iz zZ)nw^u1wae6hJa_#vE+A^$wUE)q>rkHGnso(bM-XT&`m(wit$$Df|Mm&5=G+L`EdZ zI1(GI)mczpvjO$99tW`(3126Xh`Qk(-ic7)3R@Fs4;@b=ar9^(e*Ww+3=bTU|Go<+oeBZkl`jHiQ6HOCDe*R86@=O3C6 zvrz;9X8Tsgk*5=58A;LHhrnz4ri<>$=Va z|5rJ6Rd-kCoPcgLat;Imf;p2SDanfV&e$G@@y?9=eY@-R*t=tUJ!{W;Z138#JhCmz z3YJJolt6+YNB|@fkwc@=$c@gqy1S|?$G6|P_q}@WRaGaT8YCq=eGtIz7wBch9h(OI9;>f--lS-$7#!@prAZ-nMzO@9_>Jp zv6hVa5uWMC^ynER;sK;o0lX|R&YYWE|2>QBTdn0-zT$skJx$o!OC>?{k=IYZkDKR@ zOLQ>&V$Twd@nVxp<{5F8+7Fe2^9&WqUfPeG3R;+C+<}4J_Z_Kt*)V99@ zlgR-wIDwRZl=XHW7(0d0sV?XYydseub6GT+U_>?^NxGLnNNYhIYiFW2+F4&L&WND} zytEYr{Gt5z9OTaR->gSh@k$0T@)L-HDGcA_G5DrVXp%HMlM(#spP$9xV15G|3tgiR z&bzk}SY8DztJGr5PKO=8^z2h8bXW1f1|50>MyEP4Fm@J#UXmT9(}z~3MM~r_!(=Hz zN!=cpEXB~veIDlsbYzOXM!#hSoEPxf6!dTvuK)$=`%#K+Z`VSS7j1WX7(YTi_y!bw^pcw#hp)iNnW#if|-j zJuO)U%e?{Qq{vpcZ^7yn+a!G=BIO^!)KE9RvG>INsURn|7h?5ztrb>_0;CaWQc|-W zr4155F6lc;K=gWVK@{U0ph&-YZq+R7%gh~^>@~8pW+pl@8)PY1jc93amK<7aKH{EW<`G5YDk#%Fe$o7~J4qTw(`2YT6`cqE!L0gh9w ze-89Fo1>%zke|7XgXgIFNEyio0J$<2wY7!#gFkp0B_$3`C8NW&7LLO85Xd)`5>Jy1 zAn#&8^c*gsCXs}mB(sP~hK@%5vTY=#0+m})vRrY0IJ3HkE%{UusYDoIUqAa>9p-nH zu0df50sYb&C*!RD_|3!LLM$k;LNN17#0Q;I_}S_4#WMB8A>#MXbocy)iYg&r%T|4# z`v#EHP`&VI9bR~>o~v$YM5zj}w*6J!S5r|~$)DC(6q<2R{HGk?wg!-; z+}9{eLZ9e6glO2qb-qSXQLB!BVFFrbZ0I~Se zB*_|#M%Wxqw5(nShm(?Jv@2ZsFZx&J?6{d3y#jSL*O7t~3oixA^cgeUuP`^a|? z3;DR75WoP&eP#}xxmCs>D272YTH|S*8H}G0GquUwgSSSBpD*x zJ3h^-#}jcSsgGL3z4i7LeD8Z_5s&9$^0|AJ<+cH@tk%P6QNAcC3TRx`jMZz_!B||M zt{(RXy!i0sTbS`@kZmlP?M*|IVTyAks>e6LNbLxv7CF&m483C~;Scv|^OI&1sQHH>Td?Kfo717> zm(jlAuHFqtVG{(YKe~KFId(#{>IJSAZf}tCr5I;?22*4E5f0p7`!mxQB5>i-1it?F zm*Mv>Jdy40rTbHT<)9c#K7F>ozw3T~#k~~A+|9e{bplp3nXs%vL@KEy-W0lu@WL}M z!(CAiotXpH)cRp+rWZq=50HXF3&Yw0$w{4AYh{+0qMX-9Hx>blwG_?E|1GS=t?5<= zpmt+Zr!g~qh8z?24)mCjkpTYNUmVB4z`ZkHO82}8A^FPL+x#XrZIqK(Y%YJ|IdBLfQ9k&Gc8oJ9ZmpTIXlU?|;~J3k%WKD_?HFnqx! z-o)|*=41|kzLFdW=zeZ@HJ;j01p@(qA`qjVkx3B^Wwmg!ei#;MszeNq_2ArTQ_=>9XhJwRI#w}PvnECe7ZbPDgcfJXHpCt5Bml&HGCe4Xqfd* z(;V`W%>w0Aj*4cww82Kb-iqdBucD~9RT<;RB)mh{apJ8XBOFv{hKM@r^gt@_W1N?X zn&l>yr8fN5=a-?(O>}0e1H}oc3+KDCFy^;O{h((p)mV5=*KADI1CyL{$ z4av{8tTaxnbZhm`2=s|Y!ti=L7`S~K(P#|Ggt`g5fR)SEV%^HE&`FNC7@9_4>-p2EcTKfKa`5E#D!lwy4NDf1brdCN)vx_5EY3hF^kIM)9lM$q& z;GV(cfZbJ#qNK{xqOTU3h-mW0`5X3=a=TcwBaF?H}7IB2=a%reR|-12u2gk z_EHEk(vr5UBz?O88;gc7nWSp+DNOVnK{S|6xt)&BXX$m7fjftdMeki*vj^36d$_$# zg<4?`0^@gZ^rt^W$gd>(lI)U=b-Mr46NO-N_sc6#Qlt*#3n;DMj?$)`&{O|-$vz=) zYGU{}0{&iUjVo()sckG-(`DLSiC7#V{|s(jxq`qmmWym#q#7RCClQ8S3KXCa4FLHK{<;JWp9^S+aYbv$d(OzhN7osI%@K*Bf)V@^n8G5Xj0X>Xb~eRO=g-r z2Y}U9hPHM}ICt^Krs7D>4B*=74{`0>NlgM4(W?LKY6_k_=cbyCzzdsAXsb17Oar^K z1RHjI9u|`kNW^#{N-BvGTQaC%~(+?kQ%Q@>5ethJ6^ndK^O?hd78KxoF;C0^fLl2*Xn< zwwXmt@ocBkoG+_Pp`n~A_LQ?qoCWy&6OX_}42~3Apj0j~g|3?yajX9l$|@}|TZw93 zrL)vys!|ZNZx&UogR5c5M3FwZUYeBxXskB%%oUu3>WIEr>~N@!dDSbpxl)jpx;e z%!9i5B;Fzh2)}pc_MN}F-*)Sc#>V=DK_vFb#``faD_e{4+B0<+?;pm<&;*kW)_!2^ zI&9mr69#*+R3sq>sF zphMVy3sd9ov(}07LHhV#zIzqNj`!z<1%b617R0Y5obK;_l4;848_Q4f?-%ARev-f7 zll5-Gmgf4GMM3vB0zl11@9C&2x8t{dxg8ZHHg1Fn6bIF#v}PNt;9wvtqaqd=E!FtI z5yV-qUUlub+8NC>JRlHhi4MB)K7Azq%S+M!iQ8X6DiSr*|#4`YsS%>mUD~v{gRoAL3Db?edwQ!leqWY;ig+J36V&|&7 zNS3KBUCZKxTA5)EndW@JU9u95%U*^-?iZbmBI3D?v+wW4aPJ+}tBUZ1fW23NK%V<~ zQN`)6yx54<%T!}btpQ3~QQiIwuOgQMfK&-FK6HfjBd01ntE&n+y^#Us3=(IbFO7kk zHd*ltc}0|}Hy0%^#3O#pj9BuzC(L6hl;imw z(?LKO1#e?Wj@`fqmu_I+h1(kaNI}~>V`fA?PMY=n0pz$Bs-@~O8-C}D%TZKdO4A-u zWkPxL!zgLk2AvcP2L%PDM{scOe?vGh4wD6Nms(&jaw5u;2{w57AR1LO>C6p<1I{OHG5@Wzj>{-NZ14E0iiLTKH)rOh_-5+mZ`Ki$cf%+ z3NyB~$o3QOQ=X-J13PN*P$q*<>CWtX0%0TjCh()~F$>$50 zB(1$9pt5=g>gu2374K}b3LrYwgL8-XW3c;{W{LMs0q@-cBI=yy1w3=UQ;1gmOS{b| zv`g^@DX7=jx(&7@R^Vy(+c>!`(F)N^;(1m5I zS1BMly_*yhq2vW^*X)#rl2(4d!jjc+mu*($CmBO5FoE8aKf`qYHH~fBH5kPAj*TG{ z&2MG1%`9SFV-gOj%{;vuea7bY<=C@vJ&Z15Z{!I;p>TkWvClsRi&c+`Y8%WJvb*UD z{$9E4Zu&V@k{4C3L1D#erFe*4kvS3Sazj2+Y3wqGoy~__Yj?|fl{{6OqaJo=iz-%? zLMjo&)Wi`)LOuKeB4=^AaA6dG^YxSP`}3QGP-F$3YZE|K6*FNy z`X`Ke?>(MNj;R1(`^q-#T(_F_9%pR=sJ}Z^=$|@(nSfS~xhQH2Z+L8%x24KT$q-XH zbhR8ykpXT=hUYT|m>BC=qHI~yE>NPCTx39ZAm5S4L8SMi>hY)-o}sr9^j}wO2T{a@ z%TxIKf4C0+QWxIMr@%i2zyCN}1KkUIGkfdJA zS?gQM_)<@d3ha}EAj)ORzwFLhxGT3vN`MToBvK(ChPyt*=(XdDu}qaL(^34xfj*3T z^J|pJuYDi-e+gTgnqCow)Hfjryot_T9Atp3Yb(N+pRG?&qvc?LNDR=K%O&nZyW|&Q%y`<9yqx`E`lK+@^$>*rg zrMqTWv$P>Jw-RL;^&;njnF>u{u{bP+0S!anbl`4#}{M-cH)URBB2m^Z`{Q61X0FO)~^m5 z+P7jw%Nh;9G1PYp-+cc9yg?;fgi-H!jTrZ-IN_FR;Afo>u~!$zo>RTOyoBr?j(ahb zi<~C>&KH)Uvc#&wK?JzUmZOG}UMOo?TBC_X7z4Ksp!@1^4EFRuuLp|VW)!;3IoF+5 zd8E}Aa#v*V)N*qCsUpHv)`r4LnoEf~SY`&u=xIFPu$e98a22nHAhEx&DvQVzCWhWZ z$S)bxB%6YO{=p#r{4YB&HJ#_oqWNC(!SC;R1S}>In_H5ws){#B+dQjx?8jrItB?GxkIS z@Q!xEJKCkG_RBrSs&Kw){bVK~(o5CU?Lkcrfc%3DfSly$(*}@Ja)SbT$-^d~ylJ+% zdmHh%T&b-LT&{|)-1e1f-lPC&mLgqg~mFFIB^F-IWE9hrRIh zUd7+Oa|TnYHa2wngx`RXX;reuyc%BYLtNZ*rms&z9p=4YsZPi%NJ^v*uf4JoufEdG z8F!@pz+fzp0P;`rP5Mlcmv6cS3pw`2+W z8A6oTxt~iwDao9Y&C@OY*!tC@qUB+fHf)y?Q@Otsi%#=ons|_j5BaG!cLOWlkPHRo zQE4@j35RizI1?n7=bYv`7Mg^o?<7JqL}{$5Mdiw|C#fDsHhW$Dlc=oTDeYf8 z5z04w1IOO_2||I)L@3hr^X7vrdcC()>hQuA6RalXWer9PR&RL`6%8ApGuw%09!dWg z274~y`1!+##WLvCnOibPj7R-e3n#ougXAkVtb^I2WE{%=j>cDJbE*cm$=@}hw0ai` zoDE9SWGsNtWFM{{{669#UwTT2RdD~MX?$?Sy8xJNal>3+mg3A!sv)Av{AagsLff(x z&=K>dr1J(x`*HmI2W*T)r#Nv`?EN8W-zab zsdDxBmRc=omDOH=ho651h1IPPtR<}YCp9yI!Tzf_kwcDW%eBhoi|3?EXY-R|9Vpw* z{DPBXeVB}9Y~QdOb=6YxF9ElcJ?Of53*SH1g-}#oJq`>^nwG43ys1(v$Hh(uUVDV9 z$7?jz1K5S?8<9IQ>tRC7na9Yu1jS zgVkAuik3%VV7{pco!*Kf_Xd`fCvEJE^^9VucM`j{ zY{#*=U*FT9&~9-+pAdiZRBvzJ$DF`>PapD0zc?4R z@JWB?PyG9Fs&#x_fN)P$$n>F9x$)&!TCj4tM13WpZiS`osBC%^dJFXq;-DT?$$ADq zLNG9tJw}YrCo^N0Pk%ai%6yO4SSQqOKwrf!mY7;cgC==kus2vEnygYeKo3J9TpQdP)6eR5VlO zJM~$V*GB~7gGUkc)1E><*282gW>oAZt6Xh9djMA+nrvs0k6g$%gphX#5&sy%{xKem z$*Ex%9>A@t*@?RP$ED175n^lx(aBz%KDZwveX2@*8sjMuhi{8{ALD$^m-=2BFf_f( z=LSQmDs61=NP6y+`^-kjC8Zq90c7U1;T9CY&8T9L0zE{z?in4&`0xl4@dWCs8nI); zZjjT(BqSb2V4w@%`|u*J4tO-fN;K;OA0N$nzJq>uO|wpkU@t#XgU7a(u>h_-9aO>H zwDFfN+9yy(I=6@^v(+0Bx z&eG+uxoTi7C{OQ$xmXA0dL%iA#id(8Efly=q!>-8cl;>46UTWU3Q4g~PDk-)|Gfi) zBcY{Qf)DPyL?b`|`G)2s9IEPO61U}b)p-7)ZLqp)(f~OH=qOM(ILh}WI_wSu+y7mK zM#YhnH=rDWJF4JvmbJrPR0}KhrW53SEW^g*LZ>Q?k%NIU2(BsL)sBwJ;IP>n;czWi zRkDak#{HNYKZHm~+FvD|-q-KLpZ?!RF*T*o=H+A97X*;&j1Z$i1f~XY;NW)<2=F!? z^0BBu9UK1~SEP+5?N{X;Aoq{LGk6<+yZ`=HkZS>QE`()`JLUw)*;$f(MRu;iY)=E5 zGL?T$#+FQjDP5Mz?W@3KFZ`ZvDHuFkmHxu*t6vm=T#?L$0_5@)ABTOV1;}L}ZQ3)5 z{#)IcnI^h@XaRC!tB@ELzW(m{EP#A$#(>f3MYJHee^tWsslvR1q}00YH-3E+wr;6O zGwsj|7)?besdyd+3ihP~=#+GS6TyHwM?l_JGUrH*P-=Cg0+1_v5rg@1BQE!gD)$3nTe3njL6d_gPpAt5r6)2=8PkCdbaC6BbC%Q?Z8GPBAK_-5I-2 zT7PFgo!hzD0J+=%T?8eb`^LHunC?L|NIl8tSSp#Ars`axRbSEmRoLtm{035@`HgcQ zqVwc&&Ppa76rVVB8|a?QFF;Pf;_g*OY-=@WNPZm7Qf%J+WmsL65Qx!({DIIEIxZc? zrOu;SF}r)ES7)C;OH6`#lGijfqN=_Q^l!dKGkmD@d@2Ar%^}gNS2a8hqft&wp>;Qf z;m)HNqVGs0)6+-v>fbyxijh1Q(HQi=%DN=V3$=pMQeBA`c5a2Oh{l*eI&!m8xY$J$ z_8sZSgVm;I;G&ak?gg|gqQVMiX&VYkm%(C}+h!^HQI_p=>mntqOp?Pz*xWS6mNK}C zR!cpbrR1M@5YrPMARJV)HUfi#Gx)#$>rr?n^Xof0Ou&onfSbZp$M$Bs>VU?xgBdTUlaeiJ`D-kHTp zL)GJb6ZvnAxA^Mucj5C-rw5dLM|YV8R(lS6Cud;@%}pwY!pl$;3kAqkQ%(Q0ILc8{ zw}k=aED^=g1P5b5kaSBjj#y|IV|{NR7Nxitzdh0A!yG#G!1d#uMDB=&75+E-xwc@wF(vHefDxwjQNTe{-KY_}^Dy&$( z21dI(%|1%h>c>9%DSX7lB8Ap$1xA!qT47fAW>egq>`}^LcTfUmedCKLa<}ssh)79y z)0pVHf>F;UIO_^vFcCW~5Ddofo$p=8@e{*&VS^NbVL?p&`!n5rKYaj>FRf5N0LYhS ze1)xzjjxJ2@qgS)6|(GKtY2Azue{i#>9tIimQ^iJz*W)CD=j6%H5?d0I5;|YiY?#z zRsXNm4q2VS1Q7;<9gf0g==4&RBLyVFJ`7zxgpsQ!G)~5}KaST=jN;m0o|`yvCpjeu zSnA$z`KuytEy9mdz(X)bftJ?KpxE7-UPY(F_TCVEd3RvuJG^~FG7H5Uji=2-ru`Ems9bw5N zX{py4V4~jSW;+aK8|$%}8`#ca)Js2-hmoA3ux}WFseS}JeOlUe_2si^-VE>6YAZ$C z$}hrdC5j@N?J{XZ+)#Szn5v-`&!z(-5y~ zEyS0ft^@T&ln?3yUbpI5xGGmjeQ)`Si$pS`8 z^s@}mQNqqO0!4uiYRzCTs)wtrkuy)o6}V{`%B4`1{gtW!T*d2QwotH+KSfML5S;47 z#K2xg2QA-$4F4bgtRMRi4?oDBUNSATG&iRBT1#aLb)}rPPCi@?8@}?yE)UVezyOEee?P*}2!QQGo-iFzT%;F~&&nd!5tz^;G^PYD0#pB%-+M1F&H1!myo zb`b=WE1S81RU0>A<<=e07cK*+dKo}CC@7W$NK%oIsQ72u=?o zJTpFfd?1&7m5B@p0&43XK~4Q5=|1mbXcU3*+c@;IpCRP;r{{&n_1qwEmI#9GW*|R? zYuMacV*2xP~J>)Cs+TA(%iizwdk7fWi#xhG*x!4k;#K?C9My-J5NF! z!}#zxRyME3T6uktKkDTz2>#~4B}}Q-2Td3ON=W@Gzq(5kX{n2-n~L9ztHy7yO_-_vj5j_FbA@Y$AUgB7Xl&ch6tkhaR80 zt<8;J69xP!2P2om1gxP0BrK}7Mg(*}vbG)D zh_%T53Ipg=?@agw7z#{#e>}&$b3tUD`JSk_DA@#h~Q)23JILn%0p`N!n<2tfL ztN&(Nh-puCzwz1ZZHh_Roo%Z2Tq29P#v>D$7=BCA(R{85Sp4Z*H}T^)uQTu{pGQNH zh{u`%i;C>dWHw>TBfC+vatCyFrL(AK{5npb{8vnjQJaJXyhTpKYB4kj3wVb5l#J(@ zj3(^Z@G$DD8u-^z>OJ0Ao>@I^$7gqK zMQMf9dt4A$#dzn<4qU!|fhByX4+64hkkS>k6*=Cy*aaZRZu zm#YTux(%?qYEf81Y_xLqc#2hzPmdnO^w=@hr(TMRU}QXkzxu`v3_U0iSe%G`e94_l zZm(D^dVKcjdTd))1{N}AY>R-SunraOWiTca5YiYGFgZ1Xp^pfy&&xDjAmQ9HoM$6gq~35T;a5-Jx$~2y%$~_#6}cW?d9oI(nhN;vNx?x^ z`7+e5;grDw&7CMB5(%K==9XNULLk#sPOa}Ctccy`(Jp!T& zF_!0hLDlao+-Cgxb9E>$GN(UVfF9+`wzEGva{<5{HwxkgFx>Mth_YKX9X!yZH^FFg z!eFw&Xt7Hb4qBP#kIh^=@>okFEyZ|(Q$q-Phv6UV;k`4}2RZgRd&6g(Cg@Suup2dX zL=VTE&s1mx-oZ{BefJRjK7}5Ru=4Z6I$RtPSRv}C;ixLH;I}^0fFg&azgXp?4&^P| zQQoqH^<|SQTBy(9NdJDsqC7D&(@)R(URCxx@1sV8LV%UhS67bJbH|kTW>W6W2azRA zuzyG)Kn-1c_7+OPH|kA3F*J^*vPRUnYbDi5RZc{ocN5<@daWS+dPO&Vz&Q-QM|ry zhy^_!9G|WcV1bS@PJ1UGF1r<9eS8~=N-81PctDx~x zJmlc8Bo^vIExpl246sq^vL*K<+t>nJG$QQsi~Q6UKk}uOET_&gbDUiFmeEL@~8eR_)5QP4(FJ*dwr% zt_P$_LQzbh=guMAx^W!-nHXk#airu;a=}YW4c=saNe)*k7ZAMQXHg51b?i^Nmv20Z z$?nVeyZ0_&)Td20pdQP;6Bfji`E}`voksk}S0!DXzO{e~vaOcygif_T6F@%L{j)Sc zu6(}0g8wFaA*d>mB_ZbOLCXaxV_f8n+j-8Cy#EHK-umH=|ew@HNt z5g5CHgFky0LBEO)PXx{l>u`QZNgvLqEHA~qik&9>$InW0m-gSlY^#dp4{O+!sGsoQ zou4v*d|tbX*+NQXA-An)aHSrWDxJho*x7 zAMC;Z`+lbeAm z5yI5O38a!?X}!vh8`;U6zEZgfpZ|0ocAAKU^{J7*Nu@s*BxKTM?0sk-qQ6znV^(_` z0S@O1IGk+^phF@IF&02%atK%U{|ll)UwUlm@dvNY;QcOz`gvh%P#n^ybkCf;bEk7* z=il2|cbjOsn5U+7yqrkGqrfO_+=Qz3JOt^p0X`@Cw2+6a21H>?2D<2s((WeV24YZ5`?O zU5fu49zk&YIzHHU5Z)>7OR}enK*uO>dLaM)b91>4&#gDWD${qfE=oGIt=);{RXd@x z5V*?MNhmaqu8!|vYH|{jo+ty!bM1`jInJdf7hz{)Zj43~Rg%}Cs=gWq1Fv|ev6+nw zfY=(!YaW5a)htc92r=r%^qtGNb!;yZG0E-|fk-@sH_lC?b1;2s*28c zG>E_W>vI?!mfNK)MjOn2F6FE5YD}T2h|{afB34~rgB_3WhS}W?!CcI4kVr&u`{rJZ zk99E_o}P+*;_dC)idyX4xDyt+dOYMqVCW|P^`q;!-0#uID^-sZK%PwH*WR|7M69V# z!meT-qa=@q+MDt4niVh>D!s>j0Ur*ZIt;HryHJ>}DJ(L==`u+mxhj;BF~y=3x==^` zGZ6r;fGD`1xn3muF2mPR`(sS|>y0QZUxv!2r{J#It}tRIqKE}YFmmUIh=(ZwitCv~ zO2k|5kK(8AK8SrRdi8#cw(C;bD=4GVJ#4xL@GGW7%b!? zC(ENw4;`_7Sg2*AEUgROG_~w}NX3!#4ddFGqv$$!9AYvFS4|OW*Vn-x*Ws_eaSemR zc_|KH)au40e&eH_9))gj(E{?|f`yJiezp5TpZbe&p0K&Dt{q0*j|D+cN^I})+o>n( zufN)evSLfx)u8N^az=Hy19}qyN%vzqRU0G)C8B;z^>pCQskf0(^-Bsyllbwe33Ltw zSs%*$9rvv_oUo<2;Ux&VzX8PRyM2F}lC>>PeChFOsUnik5oKA|u6i6r)hi|1C;oE+ z0sFf5q5sxZL_!fvjEpHjxehErf`D?H&A{l_h1sZa(tYBjH_xn|&6Jg_fQ97Ls(oAu zU{qU*)PHPw+e;{R%XF($4d0Kxu2VR5*Tvug0WuSfbua~_?5e}mZWrgh!Lel_M z2gkzj_g%$zj$J|55Kq#OkC~7jL(}1_mTp3p40Go&S-#6sv!TPKReAT$@6(okZwzj zh&AQB-?@C)oDMwk(lc;Yt%D%-2O}qWpzjF!`;M}z8lN|YKp??`&kOa7cuAh95}1OWMec%^|SE2R$s70U@^ z%>>A2Fu(wE9+=etAJQ5V zsgI=z<;AOEj}x__m-m|X4x{r*7ry(^4TNG!axpz`k;#Yja`&sx^n5BYuK;;Xl>@)` zyIbLQOIbzi={m*+;&e+kiDdI6lOarvA4e)lU>4sW_`K0vlCMO2huj8-QcM+FM*-6$ zn&wPEbWs4glwct}lf6TZ>jj;W*;Qm;@ha8`#LyI`ZePHyqbi_|EX5S??iDYqB44oj zXW}mQ>f+dQs<)T-LR;cvM`L4s!XSPKQK06|OLDAiEWlTvsD|C5R6~-Etz5B-B`K@* z1Ti)Z^}K_4oOHZ;4RgDg{zvUJECp_meaz)X_Mhb94K+Y6=@3oAlzK0fW=9ke^p0U_ zu!~ocCv)iuDH%g`xxrvT%kmddQqq=2cvHcC3|>Er6Ca#FEW+(Al2@Wvrv(03L8YS8>A#MX1~bmf^?g_SFx-K4t8hQ@>D&}lB(IgSP%$_ z$TY?W_ae?{srfTJ7a%-~5}fm#*Lx*wjvf5@|+{VS3~! z#H6$i1OX!x5&ZQ(c4K%nze&{#`OKe#a|T5upFVrLzw3T~3$+(c8S%kV*eis6{kvBi zL0DK?e06%1HEct9%PtVBGRc!T*$pwG*eAKiKmd#u=!jK>{GhC4%Q;3)E$?CqV$g$; zTOBy_;eLc>coL@Gq=&Pv6dzoR;nc;cJQcWzLlDK^c|fgx|D^iUfuh{M@yP3wHg4Q# z)Ojbr1VQ*q0g!lh@9q%zeo6}ee%-ThRS~7OoK7pk@4JK1fx}V{(j0*lcD3r~Y`oNRtPb>L zj*eWVLTRitceC}d=D{GvN|XM@-d+1n29q5%4bQ@ui1X}5?;sMRH*xUX6};Wir({)A zkUAlt*JD96et);+r2xojAhtC%eI}_B|8cQ)m)^TPgHxttx0gRrFuRe5$t_2JB?YnR@Oy z5Lw_RAhLl~mun9>sI2Utdc7URWqUZdNC&OwSO8OlhcPvDgo%*cpL1d=ia-1MZP4Ej zj!)MJI4nG9XI2$1>UBCix~>)5R=_t>=?`IoFdP0mxkr=*? zcQ4+?fzJN>29W>H1dtbyUQ_I(%H=yyvHYQo3i25Y+}SHtkY`GzVps8=wZ$;o3n37Y z%}$l|d}{VUUWQ#oW0H!8;2rHoaB2kM8L59EZTZrgnai#s*oFb*4ZEc(eUaH!1dzX% z10W}G{KD|3!>*#SA!eoDdZ__LPGYE%_a6b3%eSMlZ4U&ZLY58!$OpRLWDHB%V;1i~ z3i@m1UX@s*xruC7(VCztp+912C&qM8N=6bGbiL%UD{K?tdz5nGt&}h%MspSnIr?v3Rla2VoYb#(h@UfuT zrS@rMH7~$ut>A2C(r=>SQFy1$K}^a1yKEQB^P$*U{2Br+GZmb~W|nEvrYj!RafR82 zf_t|21i9b1hd)2L`Y0Vk@8++?a3~m z@6d?rOcdC6UC2AVy2Apzw$+Hz0_`FwuWrJIhn|DkS(8rqO~k{vb>l5ePFzcW6$i;9 z2;~BmXLA)7Y-h}F)1*Q2x+)lqY7$I!yaXsJS&P!jZA!m#VwRlj$JO_Kh@f{O{T;OY zj^FZQ{}tb2+ZxQLBT-TyqP;c=ql)p`Y&777ZEMih)C9fC)*cw`$FcKA5sl^WsZ_Q$ z1Iek9Tn5SK$w?)U+*RJhL2?IyXYsanL^3azc}EOO!T=bwb5at#Eto3F7{5(E7wn7u7m=!e5e_`Fg0eF;s> zWA=&7gRL!ZaPvwJkX1b%iy$y~9X~kMiH=WM^|<mn3)_CU`~g|GMBdUT!}BT zPsM+if-u`jQo`z7!%XqKrlzM*R?N`ZOA%MIwpF>L2>aRXpjV-I(svMcKCG*V50VrP4h` z33nnQd4Ru&IT22{-eMw-sCNWI=ih>V zs0YE3LDn0Y`Y#;n^5KK4J}fByxS)v>uZp7n>9gJ40}DF+9#7g*+QW8ST*3U3UU(RkN+4PK`#pKv|sS;V`@JSWN z^7|4{#d>I(tuWaf(CG}4<3X^Qd>#Lr{$H+k(o)pR=L(2NLzo%sMR0l?;TeUdPO}-a z8)?UKspQn}q_9}uNWtCe|RI&yF1?;>7NDg;lpz|dD?t?CPLyE0K z*G|ls7|r^E;~ROHnk53rvAMaqRuGazvrc^Ci#jUZX8gvp)gakOuSK06)hixm2`@t0 zs0CsyxKF^0Oev@Ib)$h~ec=a2;G6Qo@0~$`OQKz;iWxc6f0kBf{P!8UiaCnf8PXdG zh+GD{y8<>R(agzmCsWVL6#pW0f(eBs+hMU1F$ur77!M;bei5U$ex^zO2!<2*<`4UE z>4wruVNnD5;N*{O1T01o>l?K_5oxw}t!l#V)veGKR;K%9`9neMKXxDoKrT6Cs;{7& zk#sdVB}*<~E43At!$CESF~3wuGEBEzXT z65&aV^!^yhgsSz22)y}LH-7SV_rmC#7dT_|+3PArtS5k6b&b8ihNoZLje?35(An#y z>KzgNy~o&}bfO_uAtzJtdSk3oi-LIRgN;cRs*?i%n(Jlfnwa?~&0(|SnTMZ5flUU; zV@M2L$No!q@a~ntEP%XkVreSKf9It-6szBOp50$F!L$C#_+_BDR=-6oKACY|8J z_hb6jjATm!$!#tet#%m97HN*?WQlP>9gJh~2-#+qsd@SQu&PxE3^)mRhA=ZWz=0E0 zf(M@=dA!x*P5}8ssBhevW-6iTLjTw`ytDU11pPemkcol_TpHD(<5L2V(~$38TZ|XB zmBGN8_3<$<7|p0(_Y{h1R&#({`Z)4A2JZX}iMUcV&punV&2d{w?)|GI3dnX9|6R7_ z!dnBW(<{_{SGir4c~z!YD$lljCRHoeH^0QI7L#!#CvGCv^&a-0y@q$M3}{}1SQYvv ztP5sWSSovHfod)Dw7df3pLxCsuRPzZNz|q!r;3JGVX(NV>QvsZ9h^-MSK|U zcn1S#4-AK`<*zk)Brgpiaxis6pyYePPg))$+bF)v24fZ zVRn`QI&Op0=TD5D#?*L+YO0i#n;{Y)wh;1}4ORyOPq{p3w@{J>J2H+d*M~ZsQXC3lG1XR~q(rYC^q{lj2Z&0^`|L|ZAQ+6p zKa+qzK&@d^_s?ZUEXsMz_GRR~g8rsHmai!QzmTGDIx{9Rra?IVL2@ zygZLgpJ^iujB(6O{oQ$@3S&!&&cHMLK7#(+O6m~VD4ibs-9KGHAedha#bu`6<06Vw z`7R{GtJk+;-S&r}FKmM#a6J(UPvUCl8wiDz%69ssa5w?4F9!ciT-l#<+S%+Q^JHt! zZ)cl~M(kX_jaQFL3obc5ipyPB@x7C`5L5-yr~qYT+5}(tp1P)HYb*gwejCcPy~o`J zHhk{kbto&ZhK{Po1%b(M=glr$x^a0y$p)0@;Vd-5sY>+V6Ob$Dkt5#0g>IJl$UI+t zPi5?jOIpy{_9BdgQ5bCyEG{I)B*wbmLSX7TQ*!bXuH5qDU)~&mXF9(!oEK&ODYyx@ zUv+g-aRW?51kt zEyD_@9@;Y_@DJa{(2@5L@lGNci(z~wj_;hD#6&;=N$+;Hx#Ac8Dqyny-u=p=A*x_| zH2j~1d#oZSNA$@J#dv&Oak_euM$k$C?)J~XR#dHVL_MQt;TfZzq@1>n4C-(&jGLEl zBN~Yz9wQ@DngiM}OgdClSYa~iG{KLYW3Bj)>0hVgTI%1;1{!7FRG=#IWoTXTB#6?C znN!hmM8+@U$l;6V?;BU11EAk4;N*ZFu{`%8uPip>-#uLomqRgLsamP3bsMTyNOYj- zB!npp^t^*uWIE$(vH=Nxf&h!N5N5j*fC!^x+fozfbWrkFA?+uEOjyF_wC#W+<GIK$3rCM#VN~|=iX?lU0P>+cCn4PJ zx}EPjS{szu@c7zdkPj}y9c*oEeHqrGDo#f&RWVFWT*UausT@@dit(bU9LtiwYo5|{xBRmXeVG|1?P_H)nx|H7o@2MZ+Uk;tamHu&!I~+~uFfe7!doS6! z=0FMv|IwM-y?>lfgZiFm0Ej?$zt+uqeDRTTtgNSg<4V}9uxc3^H#`HQgFt9GX(Ec@ z{zC}NaLT+~iO#bAym9$9!l4i>W}u|R41+;XGOKe2mL!T$`6VPkf%o6cICMG`lvJX$ zv7NPMpo#)blA0L+Jb1dH^=j^%ZDbnS8&m|o+1RWKaFfsc;B>sR`u&h-X#AL^4>T*PHq zb7Y`PTvn+n%!wpf?y9aG_A-N{P{|Wea~_x%aiKch%3J-xavlus`V}k7OM2 z$RtMYyv`~D}CgCg=b(uaWRw(Y1|L5ZD8e_BdZ>bu1O@+^VO+$fn)39uBn zU@mYi*rw9hSL`9YA2J>BNEjnm&mj`@X(`v`mmv^Boe%;6^^M!vAAS!JVxR{zqgV0P z+h^eSE71*F62!{WIkK=S}93``P0zOcFb zc?QT|ezpOhdA45h5kK#V|D;iTY<*! z!tLiw5NIx0SNtaRd*o6lj)E0%7Oqozo-=m4VGMSB7gOCm2#ki1igUZ|@Xak(001BW zNklF)W9eA>x#ef?4cEgANZZ z(<4nnM{ysk4G%r?1YG6IAef4H!lEc*Xy7b*x{t6bT=hYp=$nbb#JA2&!57Xi^|#d|Vr5;1oeg07 z@>)E$z72+=%Cvn!cJ_NGk6>D&!d=Kb7P^cmDX~CLcD5F~)@)L;UZaG+$`u=7D|Ack zV6?0TnL2PTJDXaG6culW#a6HA;ba^k?@de$>}Lf7@{vr6cw=u5_8sictDQ~u!>Te7 zYb!;_E!pXru0lH=dvX(sYu7@s*GYDE5(9mw(AV>k)|Ma^ML~qm7uU-0lG@n|Tg$Z- zRd{&AHdstjjESnp`)}g=C$8ht;FM;{{SiGzyym?39+zd5k+f4 zXK+GqDv^Fa+bSXfr|Y!KAZp5+J+cUJp?eZy=s} z^=yAXWvk}lj`#XTzc|+~OcVa%jK`9Esfw!me+7`q!MdntQZ>Mnn@jP;rV^NJc9gVj zLQ(T(SctZSWf;oqN8Yg(;*6>y_c`B278CW_%wDG=RY)e{2zdrDb-M$ej&lgl%;5YT zFZOkK5tf|OMSZa9T1>m0O*JE%dzv{)^)B{|o>PF-xf6Oq181`|XkJxGBw2>4fZF;^Xl&ZaWQNH@WDMc)%lPoai|Ff9QJDc4 z@CrE9uSY!3NeFklcIUgUvdDyAd%6-u4wF))q|>2xfo@WD*12Zy}yh z?WEA;oO%@y`tDmWPG0X`9`CI1rf|v0(Cj{V{&>B@4vqv``sdvltGo`bih2f=^IBc4j96@SC@y&jf=)6AsHdEN93xlX zgx_;Zsk9MAoWC)HZ|xmKm@MxH$ERilcx6ix)oyJc@^Y6QU)sG9uFCo}r7cwjoWI(E zE4Obf`1^EvfhES3m0Dml&5;-<1w%L+iWRO(SvGB|wI%B;DXCHu2+Z8axH$79kF{wu zi>P?xVGoA8-#|hIl2WUKr2@!TmJ!9ew(7!cHe%PFwWwdQl>_9`o;xvq12?bjMQi4`~u_zjQ{p?wIHCJ+nK!eNY#q%s9qtruHiOo zPJmqMwaF6x)Z>}9sq`TB4Xew|f*(|slxKnI706Bew z1dxw(;jMjVKivR1X#Xr?Nx5XF%54P*AYZZT3(OW)Qzw%xJTY=MM{HCM2<6kJ%Dk7_ zHj`&;9-E2*cYrec_$JcV#5lcQB)+8OqW=1h^@!N<7rV;T*5gZL75l!ImtpE<+ z3@*|S7KijH-7_ce+)=Uy=Gz+X@%Kv&kQ4p)_BK6MHq-Po~<>^piy9s~Rmf4wAD9Wc7Ti*EscEmJ|MS`CIBeK#yc1f#BpA zCi|`<774Mw*O@l9+3dvX^`D2G`i!#IFbRCS$>0195~dihc}Ynn1tB? zJibbgmU68OS5((v^NvSgDQp6y%HTvIf*V)gg=d1>fSFQG0H~J|`Mj|ORgT`H=%p_w zyV2pYqh)0?h@D4H@FO`XDPND0icO3ujSX=$fauf^F2D0Sf>Y|4gouxNLO5{4k36@= zMomeI+1cu(8H>??mo~Lw#j+OYi0)kS!Ujf%aO}cqL}LrDP9=82qCyi(NF|#)_o1*^ z(D;}gg(z=b%iGAL0UUK~K_&0pu*#ro;o@vC7NVs53Fr+nD~8D0%1n(OgLj-WAj)fS zbRvYm`og+g_=1Om-hH)8Yl^)R^C0eW7cAC36Y+3^N~0cGy_ zJ5WnOuzutuzthvigs>PJTTZN6*cUA{36)omZ$W)kE%y>c5mY_idF2|ubNY_9dR!D( z^|(Kh-`EUIeQik!^`%-Fb~|kN!ozD(R#^+d!eg4O_xR0gxOAf{tM~X^$QiX%p@IO1 z!@z5Aa>g%sF~Geca4HrDNrAcDEolA!*?SM*xU%d@@ci@+KxV=l!jl96dKOI?vRS^W ztE*I9YIUpSN7BU3N;?~?=@^ByT4{G@q_LrqVq|ut39V+N?QV_QR(BQ4dqWR;1HzN= z9_jtxxbMAhkpL1zf~LA&1qvYW^Z)msx$oY4?mf5jOR(F;0!qyy9qPyE#3+(f(nl9b zccC|gzxmM!qIx#3!lwN5s}xB<&MAxZpK`r}|NB|eW$$bwfc*Dm8Gld=fZXl0;-w?i zIM7uAr>6w|ww)+#=!B@fShHKrxL#>L8e;dw;kZX zGG+G!@%XMFudOQ#LU(BeHXnKcZlYYJ3~Zt@l(U!~KZBVGBMmqyeq`9C5=kt~g)lNW zhIEoLpH=|M^M%{%*OpLZR5z7bS2vFAgBN;(77B%5kTa$P)&Y&yyIN@#*p#-&q9X3Fs_Y94v4 zG>@koT{~ZZ$0LANIgRYX6Tz1|^&?dxxIueL zux<-l_B{)`C!hv5WHSkj4!;emJ+0~1O6Z5k_%*G0?jYv#r&q|;Oc;@|PeCY47r615 z;atRl=`aNf z+^HrHBP~CAYIu0C*iU@0wRK0WGn(GYawi-PNn`iW4ZiX@{epsg;Gv+$P3bJ5gCFwyh_yJgkivib<`8BU z@3gJ6mKpo}+I%BGPLHNaBS7x=xbQ2F?uEaq78WN56nNXKR{ z-v1q>5+cjY!b@Eod*>Fu^P_>HXFvH}GM;G5!6URXCY2>%&)zNAd-zdUN;a#qIuT#Q zg|pvAA|bNdg;*y5U-3p$2KnM*3X7pMF*g_3KEnXHj{x!p6(ASFRb-Gq1gnxkE=fow zLm0a8J(Xfz8@%Q9DK=d!@X!Xk#|x*|XV9mVy}=#9d@X9fqt6m>uQ{H{_Q+07H;bA<{_1IjOc~^t@23oM6(A27z)%K|AO2Y_gIomOPEVW$ zeHk*hnZV$nC#w~&Z%iNNWw`WzQ}icA&niftT16)_Z$f&m(-lBd`wN_6o%%^Zhv7+F z|Kx4F_3m5fn+Y*}ivF~Afc(w_p(_X)X@6_$mtm3rhDbvS6i9h5D-SsF+y7H1s;hml zI;3B`s0ETj#wsUE@EozIC5E=Gj%lg`Sfm!#R`kv4!6G?Rx0bjIHpCg zC#xCG|EX*(frz-8g;x z0xn$~Fl5;hCF(l^R>V@pb%_Rjz>E8AC=u+~JOf)o*RH+TvVAYCo_Z>T%K9CP&fwy? z?;x27Ek(zLF2_Lf1=3G+Y&Umc9jYLCXA8VOFO&IHTCb_?c{ttWya#k9#OE>Fe;HTb ze+AiOQZ1g5NXz)arA1twpx+g*QOw1bx-2S7jXusTwdHv6;C5E>N}*RzrPKKM+$ju= zt-U&<0+LfLXY%8zZ5bV##)}dusyFX~gIEWJV#;L}$I!y9ou(jEdKHJ$jz_+*6D?f_VPQe2ynnOPeYk%0 zRbIn2za5Q$_|F|hiISgVeG``P2sn>X0#9Bx$oH$ncp}*G9rZi9iGjf@W&Nb8~h0$%vD}rP_5(70f~x_-gYAe?ZJcX z`1&tCgUZGou&TAkHQ;8c2B$=A=Q~O{7^g;ct3T@_`}Ox$lsn~j`s*~KmNJTRnIs}p zxA4iwr|_+Be}H&=U6SLjMfM9r^)Dey&#ouHq1x}jKY5}Km1P=bB^i))lttcgh&vob zhHx@IkDCLpiY#(-mIaR{OeIrT6hJv;muGdE6BIRAR;JZYVv4=0u<9Hf3fRZ3oF(g0 zPc^F43{x)BR}Um*Xlv&)s300}2Jobi6dsk2xlrD-e}dyue*B#Ak72_Sd-DLURJ9EEzPPQERkKO2G$ zS)vG?yV=L+<1!TC%n>)u7L&L`x3TGfh@8toj^4!F$VI&VW;YfVwa8(zzsR9`Ws)3F zw=HV!*azt?AKmH4bB8Lp^vUv0+Z`^n?t2!2hE7fi$_scQwAhc)oA0vV0^`nD=}0p= z-1O1c#?&eEfa&k4TExqYjo4$%A+O!1w5$#FO+>TK9ZsxnW_S|)C*Q@u`IA_Tr*LLu z7U5I|;Uq9}Cu!C<(DApPnnZrD9sl&{TGaTRy6KTnyJa6^7O?8+A5#$w_x~8l_zHTY zE?bG5Y3X!^m8}@)8AdvpgwJDT+2rI5F&K_wA8NG{my5tQTAbuSv^rhzmX#yW&<4B1 z!2)ZjF^6u&VYod?+yK=_j3YdH4r5n-gj_~(Fi42Y4*bL0bLbt_YG~fEjrkMtAQ`b} z6p^q}!@hVgoev-{bvyA3M|PpArXChAVICX|xZHOgXRlraQIfB@rV&<$L!}{Io<~yA4}@&C2Sj!Y&mN&i-C*fKUGJuP5?PktS3!@umS)z>r+xrH|PW$SS&2Ci1aB6;xKvdbOWS6gY)TA zmZJ*dmqvtvoaT=d4yQDr=sG%}ynG_%)QxIy>+Irfg-jqSCx6T+MVzODwvGdWV=fo^!#w0lBm-QVwlIqIVo;(g>z>|bcasGV zZMHzL*RwZtxjlH~(I?=qYJude6eg{V(VJ&6(DwlY`jxX%Z*wR*OE#NBG@8ZiT#|u} zcdSt+d8rreoy{zhytJ$Z_03PfDuO7GO(8Wuit8U7!_43fwOh3BdZv^3{)G@?Yb$B6 z>Z=hY^^V32T)MOsqNaX)dn+E=u@%-*rEG+Z`EZDpF^a`+FTH>CownvkxF4sOlqMh@YmlO z#P~#U>$}@5S?nyIN0mKkc*jkRl{otNLAYxk0Bl_Ur{MISYp-KwN;mh4?jRV0gerwp zI)}O06k^eg5(mEGTrbDimj6RqAmvIowcG4Cyk|ep9%rIQMs98bqr-#v%lCUQuk%&Y ztjvb(m??7N0zH?4l$t6i$V=;OxzCNSKe7u|^^K66yv!UWMp5?oxt=Ra80-qM80i(A zPGTH$vhPdsrgTgP`qNr3i}?JRWwPkEo`R2jr4|b+E4N^C$5U#MlAN4DWc)ln{pdU^ zz3D4;W6Smil#~b1KbFR~-=0O}wzJ1&M59qAV?AD;aex0c8PQ0DeXX+%TQc&|I~mNU z^j9Rs90Sm>o_FvEeE47g`3q=mZ-b}20T!!M==+K;sMigb`ZypbkWCLE6DOU;tn2Am zjD((IvH4)JmFJ;s=X$cCF?lZlcG5wja~K~Qz_-6Oj0=~;Me(`osMW8mXB`31HEPYWB!hG+ zg}J#fNV&iLc2^_&rGu@lFUeBwze18UjdhJLLrV4&y8?K0yPwlFiD~ha1hMs@=i#Bc zq;{vMJDz2H`*R}7Qu$CjLKfw4U~C0HvA5V-b`(5 zTvnnBG>#9AvCZj#tF)AX=30iaS-ffoyM8zFt2pHrQOA)(cdEAssd$Y2TR*;DUj=sW zeGyIq2bsYXL3;KAP8`343zu#hT$zh;;KLy+;_3TC%-2-7@Xvo~3;Z@2iMhC_7bu}_ z%L8cKaRgSkRu3;lfN0;3kWiwiwUxzx(o;wo!(5fcuFE7>=pMy-$xA;a>X#anZl1lu z_91(QaPpWf4_RjQ#~WInWKIR{5y>GJoyJt}MO^*hO{9`Z#8X*JMiaO^8OGqO74xye zqM+9(f|g#su?}I&fwq=!K*Arb^~@tV_3Yjt4tJJ`%zwTWJf-F6eB>p#{MEvN$1|HI zM~`EA>Oz6T!RMSZkrIg{CP!v4JwC^%8mZ8BeK&F$^95Z%D=#**n|IDp9`YNyy$U$XcokJnIV_ zg3m7#rhEm49J+0Wce;aHS`$Xv>35i4q-KYPN0p-exXxzctImyi5w2V+Fg~f1Y zRlSunzL;Bnox4!_N1xk+=N^6pB_2VqnUj&78N(~bFX7nLal=`kCK~BEPtmhm0zNDL z*;6$L_%wi=`rokaK{Rv`Kwid~(`CvGit;m=)u`3IJJVGQKg+CkE4&nR$mFClu8Koi z8Dr)CR>L^(tGV-o>cLT<;o{f`7RSff&x|cVZ5A}Q9Yjm3R)ahj8N}lFHN5=lSrs6s zdlGPRb&3ZZ-VcpL%JYxc<4a$tMRYWTOgzKJ$>k|U=NG;TcbTX`E&%eWaSo8@1*mka zNQ$gl5=5gMl*+YAaHsyW>cAQ87xmW)^|p|QT!84uTP!qLMpf+rRMj5TK!twu#-1?(;- zD(Vg+Q2U^u+~+$eom#-mR&F154f>`Vl3z)w8E~a`uRI}9SR6q1xJwKP}JtM$>?mz!t2sbFT2f(qlX{G(Z|08TWPf#te;Lt zFx2~FB;rJ!tlO9Q_O~gpTeZa`3oAL~^#@s5jr;*n`ZH6}IrP8N*8vsYhn$Q=WKpx3 zv!ri1(b4rdDy!O6ATt;0$KdsDy!ZZPBo+Qs2}otY{1CSmi)$wnz4~JvHndd2XJN-{NVO-8;#19kZxT@Y)w|-|5CHT_5M-* zGlAqzUm0q)b_kGM$wV~E!KM1O%iV}z3equES~EvcQ~{1RnN^G|rZ0qofI9K2ov9eHWN z^!zoPJ9!po&keD)^(7sl0F|lfm44ij|RAZPb0H% z6$96=jLYjcqiz3Fu$NHOHa`d{ zb9-dyZG;wxU0P6aGChx?P>BvpGp029ICF$5H*SbNizq^!6un5)al*N4pq*m_W(MEs zxxy$G1Di=E5S^dL?C>x$$)sAJoNB#y>c$~rRFQ+n*~mdSTSDY z@h#SNHs6PWH@@;*Bc6P?8ge>|*i;PZXc|sW09_9&fGCeEqIsDhKy>o_66J>|v-6g- z6YExwU+V+E^Q~=tABm!sx$G1`Q>pDM=!=befl~`pqq?oKY(Zts9@I2E$beS%4#^PW zGdIzF?E8q$&G8IO$P6eyHIl?9LkUX$+W5A?a`kp2N=eil=_dKbljkuxb^^H^-vipdTV@DZ*#o|OGU*Hwi8MwAClFbrDC8W$ zJYim z#~*^e8`?7U?w9K*=@JBv2LldxJiO){4{$TxR;+0r;N?VFZ9V+8^{_g$(gg~=E~AB1 zsmS>UsXPD&$a#hX%fO)eh@&54Zu|se{P0$GAlUjiT%|3r+Nj2D@f>*Uk-0EZ;qNmR zmGRyiIR9opqVsX=>T1LT`#WH(*bB+Z-zO0#fc!g%$GC&ZEbo=k(f^*Z$;pv7J)1-- z&1;kAZF%&u{B{162d}=52^fFwp@%hqoC4@(C-KTB=W*=X#2o?1%RE;6+7nf%F0-3- zsdlvOe@5t1;yjacJV;Sqxn@%GcjbQS|4J4uwLzZDn`$4p{9a7m7a^WE?j9R-D0aVo;&>ZoJ1;nOr;>;`GMIsbpuR$M)rLy>BIDr#4 z6NR|Q#6#{pmG(+&su%z{jrOih5*})^5F;;ab{op7%CM<(Gg@~299$*!kZd9ilY$FE zSFkX5mcw(Zl1$!n!im{T@bOg66{h^^WSVL~>g!YMKyWsvN?>Z9nqKNNwRU0wpz`uJ74nK4l_Lf6}o|@QK<}lRzGE!+h%Z_p0^2QDMvomnJO0j$2 z3vdy`30<2_A~Sa$XHH$lneIVNo-i2!ygO(`w8-@8r7j6y-eX6p+j!P**|r%w_U(nu zw@IZ}r`pZuyMKsi*qB71mkWBmgnlO7gfhv=DNh->MQH`-F(i+J6_t4U#os_#C6zSb z6#2R61a6-B1brvT2GjZzO6Ksb^I=Rz1+9KjItma0#^&k_%1eyzzO^ohpFY$DPbJAT zzPOX=G(I}ljlnUqe!n(=oYo%sDJY2AU*-Vm&Pwu#`L#%d(QxvbndmqXkzjoyi7UA^tvB- z*}K_Dam(J(Yc&LOXsj@n;G*pDpF7-zYRYVP^59qkf6w<^$GM(sOKOj=b-L-fKCcZG zK_@TC#TKcMsrs9lY#lD&^Ussn?_sf6(A2UI&8-JOKQkGen8EDuIlTGyc|=nwR5S*# z?crwBZrzJO{d2H7cI3(4E&S~mQ^l1lsBhealG57;+6#YTaj&FgsCVCZ9sl9~`U8X( z7S?xj2}72&d`HW{C>>_{s#SguD1K1i`Ud5``E*K>@gHU->mT;@_3@gKpSQa*0;_vz z?n<{lyARz5*ez|%KQBqre*$pZnaH2r5nAERHW(8iGtZ&FF&(Bp(}|G&prhp|{&42L5ULM72VZ$G2sdTXQDaUa7dG#I2EnE-b$n^O7Uu^rGW-rJ2cVCZRK}Nmd=*KlIFU#h zB!GepB69AUKg)G`1!&a=8nC!iu~E#A++^9V)U@#xS^AkMVq>TA_PggX z#KxD`+NSTLAq&nFd3+1lC%1J84e{O`LHz1hTNtn-XJlj&8AKwwg?)_1A#JMgQISEG#8 z&EgxG_E%Ha!>HSOz(Da!nTvycKSnyG(NnDy0Ff^%iGcEGB!L^3hLFo-P*!T=j*ud0 zO0+KtjHFER%9bwF)PD&!J7w)04+e}AKu$n;G24m&`HnVN{56nR4RA1Eychtv5?n`)Jg>)wiV7#J%VywdZ_8?v zd%dXb+zGo=WUVNNr;?SclY0b=SJmn=$Y}{@5||(T6!X*FC~J8L-ij`G{F@d-16{CJ5kSu0C6S2W{Fxsh8WHu;3!G?@ zAyk`uA(X0IGJS0gTn41ytAVXIbPNV3#2$<{3bK>PO#0 zLX^s2Im_BV;ZU0G%zc}YbLj(qKR z;Gtkc6(E)u&k6v<=a2`EYGAtYjm)*FmjhGTopiXX`8sZgDS}9m z1v1J4d)SwOjc0KTgCG2NB%?g|lw=6?@7URSymDrKjWn2djlIrtpuPDIWEsCN>5IYN zmQ*l)s6LQGb7j_G+fw%JFCE#AnubPL%9~-W-38d3n3+0{iIL+bCOft|3^z5(eEuiR zt`hSmNwC^%j3vb8;tYs<4JiTm6qLd39%cTuc{l10${JMUSSl97R9`R3%bL)(`9Tew zNzNcPc?s`-a0vs0(;~QoIU+C~mT+>UxJ-7`pO$h99`CflW!FZ)ZntCqp?zp*+YXDn zLLHr%sUcjwMA^4GCc6UWn0y5BL=IEa308-C-EB$sxGo4rck`y2S{!}&3Al-Ug#xXz zNu=fmaP{4{Ff}-!E(_{W?@Ss$ycR*c$n@$#Uk+PpG7KnJn#*p(i~BdDv$YY{(h5~K z8J-x&huvq9pwe~vR-jKyU5oHKgSz$~GNDY4tu>oy1y5L4;%*7Rg8zos;DSp<6FtZtOY+ zx-a7VYeU%8xe0sr?}aVU39#TrAR3utx^*J4wlY<;f8&WPCZ|?dzZ;-i`@LQ~ao`{V zB_e=^vd2dU@W!QKymo!km_44cV02-Fvd8PQ@aRaj2)IA8tpP`OZH3)Wi9B51EktB(di}<%In(DzW-_1eHyh+Hj~h0 zIcpvZPLrWszS)|Fvs)|D$V$EazkvI6Y#+Sh%>Nh>h=q<>+kCvf*f;%j?_G ze!!UdMB{sFkg~`JbXii&TsK5Ct^|^+2EJIBWcU*hW^*_g{W^2xi5hquB;bx+W2Upt zv8!B5)TPNJLX+c&FDxRuFb})U$+Pq;TUF|!%=}gKU%!rb+4yQsd@9RI<4aC}`=Jq_ z^Xp%0#jef(caCIb#OLA&RJNd@{U~gnpf3AAfm@XQzc^%kHRch|K^D$a<{VRuKJi_3 ztg0Rz;lxlfm6SW0J#IaARgobrNrHiZ>V_?*tqrn_K=Umy`d+TAh4uhXr4IxB?vw9zKU+ zBFpPGGdbxfAt#8!20`oL9fTH%4T86P0J-*i5qw~ZM5huJ6C<;jn^{CW97BoE2Cv5o zm&;l-7lh5}LZGe*O&u>GShrJsF*y}McQh=)oKn|uad83v>bL(TK6(GW^-`M|UV@x=citZ%kabwS_@*>B*5t@ z#r8+PW&+4_m>N5csqs^4cDN$4WnD?2LV^v|M^Uh$*T<-!H9bnBpe1>@vL2-YyxDXH zi{qn+%+4Y%vWz)Eu2FTX8RU9^obid=rvUjA^=fcIDw2YfcA|avPr+4IwBl z7Nkch8QaPt(Ulw(wuLE6SU6>u0_1|elj&3W^(b0XEQ5RrKt7C9Kl(o6;jpSl(Kh{X zFour`1jz3emG(+|wip08#g`mv0rqUt0CIX}X|MuEU-~t8H|-Na!#o>wVXhnD#mfdA zif8ZZ>xXj+VbzA=5T|-R=!2n*06EV>=Mq#8b{oqdXm``Jcb>OyEO$iD^ame6Y1wuS zAWy}Rm>tH@M}Lo0Y>_`nl90*Cc=^;k-oCi7Hh_GCb>tQ1p8)dTmu39HT6O1@))dKL zs(VWyxn3SumU{5ZM|Z+sT?b299W15wkV@+?!AiYp=Ozn(5*f1kfz<3BS}P`STnBU! zDC6?^V0U|%jjRW{S-^|B&iGs81IUfGGrx|@_;FMP+E87g&_Bx{xju923SN2bJR%W| za+Ox%s*0`>oZAJ&lTQg|GI~(h?kb>P~;_U)OgS8%cS#?o+(<+70T^+C6ODba+$ak33vYLd&! z9rpw(P|@51cbQ*TkDQlj)5}d_&mnnMQnpi*XPFc-$py^KcEeq<8SX$c9G*JPuCpO} zHFawOa^@`L+!SJ=X$*Fs!PK=e>}YC+zkW9?EPI?>Em;f=p21-MDfaVP8m;zK*KYx9 zQhjCtdUgKn@kxx|yota1^j^#!&*6MePf@bRm2qP0*JndXiG%rnjcqx5voP62Ize+Q zWsmQNh5Tg{_#e56*kV5}jZ7fe-h$fpYLr$q!D4elvh9S$zN_fL(`#9Wcl6pkGAEr$ z3s%dghKc z9%VWI^uZtq1Y(M&4A>klY}x-5%2}4Pmc_L=-;Y~^?}{vPQm6UWRSZ(Cw+hfl4sC93 zh2|qzm+2F43>Zv1@m^;qZ94qmn#_tO<}@y|X%_;_u=* z);&I#nN$*slT(a(y(-X(w#^!SQ7%4>(C8)n@K`tI7Bq@pdhgy@3$9ENU3@`X?XF%# zYx3#CHTd#Vb*#o0bCOclt=)@;=I7w_REmgKp7}IAaUSENCk*TcG*c2~+pCzj;)>I) zRON4q7l%!aF=O7rCLbwEK4VuUp4TNo5N06|^gVx6$aRsfZ?dr?a?>k92uDvH=t zFV4L3BShw?jDpzLka6Nx0`CvRSv}1SYDtA)Fy^L1n4MmP%_1|9 z+~>2yx|%Od=NL4sDE$kN1duFf+4dOPwm%6;WQns3ED1>4EwH)EVRcZ1yI5%y2q0~6 zJe^VpwrC43pNc7jv2p;gXDz3Su4VDBeh)dmfY{tPj-NUOkDNt?+rjHR$}+zH`Um*o zn;#byAg4FmRGwvD`WEoI@M~Y#jzCp4EFM0`l%?9;a|7KyJtkQ##;f2t(Le{~C%4FfOzo(Y$A)frGts(X7)S)wcq8W}=eVEusxDG|l;R>Lkjd$E#Wv3XEc`wSdT%2pGB$jJz%ue^ux z3vYw!LyBk%EX1<-^EW0iHoqn(^qtU=msE+df?fd+~kHzMG?|7@C7!%JfWU?s~m#hKY?l7-pD^hI)=ZFOO!vS18# zhWV{E`&D7hQy2?4W16C8P|fB_|6bU$Ss=LxIhRIuz6a;doX7Fg11v~F>1r$ud~(x< zP+~dVadnxI?+Tw2_|gs=fns%oEv-JzJu zbY5DKvjSPG1c%qGSKHS`O`U&*$dGd>AU6qFoAcYVWaj&>q*v4WrF!J?gjRx)Z_?uH)qbBBPaQk}szJ`=OpH*qXa z_V^fOk7rji`q#400IEISQI~~V7tczy$B%5Q$D_M9!&WBzTr#i_jo{7WCt2O^kJsbJ&b?2==jDOXGNZ6hBki&w>GhzbvWb<~ z;PXrNC?)y`Rz>zZr8BF&#l80TRc0rbMJhCn(e4kBiO1E>)2D8XFXF%c{dX}jHn!fE zO38BW-_Q3C|4|=sx9GVo2iu$fkDQGEvzS4B>m8W;;Pdyw+}#JmbmzKQT&?iV_4~em z5@pqS+naw+g7iD&x47?LXoFwiUUFRM=I(b11HIi>C*bxg2LkA*6ScBM#zc928@3*L z8g@f=WE{hNZzD9%vm-g+BQzQT{-{nz=0ngO)*^XhVLpm^0r;eJwW>)`C%SdF%f@Qc zP}UjMnqy$D;zD-WCR1(Uk1@MFKxVEsxiaH zoxG0Pm0AY5ma(KajqPqX%YbtF+$uOKG(=sH-!kv7BBb1)A_s3SnM2#AJ#dOTk~F@V z*&ZA}egUU1ju;}z!%2zNB99cg#@g+!`_(>ITj|1Y{#-MvE1c>WQzU9d-GeBvKg8?S z5mJ#&v)Xury{{pa&}#PZxzL<#%o(G9sLpGv0FqjU!b(c6c@yaGs%!||#$cehSUX}r zy1W%=?RZ|JS&Ef#f9Pif6Vi&JEz^z&pqaszP-(7&tA) zQ3OIL*vxXYpllW8WX#Wou`nNDV7bS|fkv0plue#b9-4p0(`R`dM+f%F(StZY+PG5K;8~68~vYS z_m|^T6Ih^bOF(kP8NQmtQ2xG}Get%&GJ}~L7x1Uweg)Y?0`)#O8cW=;Su8j?n!x*m z#Schn2xeKWIsMf8Jx=`k;cW<1R>0!p_0mX0bl>Pj_x0W-j*zuTfPAZfKF_krODLOM z$A+-XjoC`9*T* z>Gnu*)fe{2y&YSyuVaf2AfLkY&0F}BkNTHnkk3UOps!*!>ceAQC3v(;WRU9s@?B4S z74BfYTBe8A@8rlyOpJ1hbz{>8kc&mJSM{4h#aXq$1HBGq6TyZ~uM3hPN~r)DsOZEZ zQYxECV_|F(Rlz3IR<>z1$U`@=INpozym|>CmTAZvz1xi$3$D-H9{{<()QINocFaCeZuwTj)D;PCHI0$Ssk>w=PAnkSI)o-b;3- zG7`lA$V;5S3p?#7ap`vy(6yr-+jn)q>OYjoUH||f07*naRBM3bu7XtBh^)ne@sU@M zN%Ks6O^4$3pOyW<=bHqgSx*qUmO&mG=UfX17MtD>JR_cJT4Ox0!tA-1V72>DQ~x~d z_7Y)hW|51}Ve-Ozn7I5All$x)B&sEw#h<=8&b}Ag?(&-05P+Njn$Efm9Qyj>l7uI_ zHsO)37Fhkn)WzpIl!)WP=m1KC9$0Ohu|r5jgBw5*8D{nfX8MRgXKi;Y^Uj0TU1g;# zlUxlyW+gQk1(!BWI-iEp2UU01og;Q<0M&J0gf*Ljyf}#Nv??31o5>T)B1=leb0< zk;r{>X}r=CN1Rg0i`W8Q8ST|ZdUdzmhA;1JL05YtEG4|wH?5CL14B42`pHqC=={`=Z>YB@d!IX=(InaIhIuobfy9Jq*q{`0&n!g7PEJf7BXo=4v)otoxr z_twqWw{_WZzTj6u#=MQf~ zb$y+I{oq_rFS>hr3$HzH@-Z+8lII2JR3w{_bj7j~J1D49UBCL{TKsH?RWOMl<(+MI z2ex(`LTz2EYA;H5FC=#mApZtqOVjTrvx8ZJ zvnTTH8U1}^$XN<1(R|yw!;7;;UOkHoFMkv1SX7ntiHwX_d*kStNv=1E>0Y7dwj6A0 z`4_T;f3qHZWVLYd(L{-`-h65q*KG9>@%&9Vgssre@i|r1Dn=LT zW;LkjyBhVbA$9rpk&@|S`m5j5j51F%5T9X6SuQ++nVZ+}Z`gG_fMq{DQG+KQs^nuNKx3Du0*#$N1BbVY&sjDJIUUE?@TZs_r+SInO!1$L zbx_s05Kaa?`-0ge!M2m~4s4I*an$JNMa_H=*D3!tEC7ks6l-dK0%bv>Sr>hbj${1l z8C-n-Q<43|_c1vYUbzuN-&{V0dmRI;`{! z#ON&M=OV}?Q=k$RK4RSm%trL; zZB2Q#L9S(oDLu_o*Upe3xSV5Sxi`({G*$()m|q?w zBPSOi$7V#3hn6WwXZ%3_1@sd@UdVvzuo(RqDIbj`vWUhq2rJa4MYg8scJ~56{wM+D zon=h7QL?q2-V*G2{Ab|uSF21%bmS2@J~2WR>l9s}(Q2DrR2s;#j1FZwPt7`%-R**% zIp|G6N6P^MCLKyyO@41H%IpJMb@mwGBbPLpVLT z4pX)1AyhOz42#3d1C%leq+&DZz48Ngc53`Mn)Z~>El73;1HyFjc3B-tnG>^~Yu0O* z)uD{*$l)wS`*s~bPQkaKe)OF@h2GQW#n$GVQ31#o3zX?XANp6P`iB1XXDNeR0mywO zfPDLoHtg8F6Bcg`18YbJ$=IBjm^+C~R#I$YAH*_a%Vmz@gXPu+UbFTALNPrDW9^A9vta9_m1KZIv!) zj{}U|y?v;x@uR%51l|&EyK33qO8GF}eN`?fGD3eYDrbU8@1Wo(cWDXiPF;YP2yEb* zhLTOHJVRJ`y8G}mMnYL&Cju1*_*s=)Kz8g?%nzKxcaL4fV%QY)v;i`mw!(oX2|F9K ztYYeQS(y)yK6U`!V1odFXbf}c?d`_U;HARWkr-3+#Y_&%Kq8f8`UuM;&lbMMS@J-h z9+=f6(iiu4ZpE(l7AG=feC>>}wPnUQgzfMlhLtebef=~6&OeP{Yd*&@f!X~znWoB=+APmx}=N40pohk2vT<6;H`+Run z(0&9;c*e4vNh38pfY&eG#A`jK+T&RZ#y2Q?d}|G5k8AUx&mOn?%XPKKBY5+~X~up~ zP|Ih}ExWh*^J&cn%N#7oBd%I^JOxZK5F#;@SpDs5GoJCU3#DR2Nr~8QOQz6C_ zdF6wTFgbWr{GC|ifa|jD)^vZ{EE66FwC8)aw@_QSPY@f5ti^9c*uYK?eQ;km^5U?^f*BNkhi( zo$4R_<9oqzQOqpzm-hS7QL8BwWPDaMv@wvJ)gl*QNj4qFaQ{14oEy~XsETtzQG)Y3 zCiF$VSYkKoDA9*@mq zu;*1I;+!gK9^c6wb=f2qr+YAb<255azDiBMj2W!Z0~Tb3<#iFSOrfB< zX@zr_Ehj$qRdst%*F-eyv?j^;TtsZ*8cx0P1|o9;kQDXlPmLz=!EkcJXx8r(Ku&hp z?M9VSpv#ln%kc1KpBO^EH@*IH>^%A+18HCr6pgtoMsFU+)TpV>uo66^NHX1g7}v1T zF`)iU<`meWg(&72^?Dd~tIRUVnPHg^n9a92OxIDw_4XZ)pt5q47BE8~xibLCQ>D@b znlsO}ewo+zGS;lQFL|8ThD*rUqfCML4CMIq(x~X=#FQbYh^8qIT^h?Y&_L^4GR{D9 zB%(YELEosKg=WFf{>mFYuQ`(BbPAbUgLviAEgZW(rS`Vc4Q*V^F7NBm?updoGMGc>&5GCxD!TXse!t`Dg~|gx7UDo0SoYq!CSISq4`z+dTu2cM?EO z&MHo2OVi-;mSFeeU*RP#9NZbr0P>Mj7#}&QI)IjsL=byb34o&;u>GqGXjwr<+ni1~ z+%7mM&`{K~7Rp$jDafNgiRT5%_rmXMgG_7#u}S0>2e2^Ki|-t}Y{(!_XMyt*R!|`4 z{m=*?|Hd!3g1$46Nb6sgP}TS#Dw`gGg;-bU57`Wo(P{Kv{2xdq7B%@5}YoPL7q(^yV!%?lV{O;_JUB|^#FMk1q0-F7Yxli zlEug%Zwgv)bgK>ea-(*;4TlbPVN?4ySls36v*+fhhg<_7F zgIlRfZkDKeJBZsi#sWnGd{L$GN}uQJ!*~S`z$**vK%nBF7NnI)A~AatH{Sd^q#_Fj zOYZe6A-sNZv7q=U-GMfYwEXC);bBhSc4u4B0dm^*1diAGjjT3RC2su6BirDwA*y`} zHsF4OQ`dTMv3CF#s|A(SWvHksLuncR`?5_J9JS=IWs|t{^i@D|8&i~w_OQx0qCSwX zExsbOds(awRMs3703%;Bxw#(PIPqh={@TY#=$P|1N~TjegJ(M}tek=VEjv0|uzPP8 zY$XkVl?MVO5>a%YeH&o`FzT<*tD}fgUHWln(p491M66c}p)?jlse)^guLfKy&-1!n z_~L{65hNW@4=`RH!Q1^aXe;%gE#PG!`AjUgAq;3MvmZ3Wssk7aSbXjHDMaF0xfH%C z3UABliTZnxK1~35nNNV^dN*9YM^U0iFo5!=P4JXbCOKd49$zCWtB=4+3`|O6XJ4M+ zVf|aIrcdklqq1J|1S=VyX-WzpdoZ^+1f;`4p9W^8Z{gC#kC9F%i=t0cmxz^Vb}@xy zk!c;2?D4%@H^VA|IC7B?#&7iDzkJ$%ceBS!-1vn@wxMc0+2hLvJLmJ)nsxyBF$g60 z5DS8?seau&ZUysgZ8ir>h^ne?QW=@}trX@NlXO$dxhb+Ez|IQXrp0dnJ*f>?P8((=i~E5Xo!g|H~j78b;rVPtbezA}c|`nj~Q^ zmc#e2$C#{KSECH%ocvu|GV`0qM@D!J)4SN1&T5h0ha@%M#ctdek7fawviw`Q{-JN4 z1&Zu_x-W*{p6%qSKB9ZJ=bw>|wFA!bwx-{cB@0ol-!@(MXJj~5cnx{fnzKB6d|;r! zP}_|k5y~RZ+NJMHkUDPnX|w^i)w}Rhdrev74i`EOJ&wvvL?Nsw(7?iMKZg6?Qz?X1 z)xm68DSybb!}+gxmUB9t!PLY8lF2k?rXt8>#6d0aUjl!K+L-9qjZJ61G3CIlLGf&( z>KdXDen_oF&a=p`qQnhVK!8Y@eC$Lx*;>i&uUG}Y%yFZj2$&$PVuSg4H6m5`Q-3X{WTZtE<20J z*Xn8J!FqJy5skRj;zVWLWAOT#c?NlO4B4rR=sEK~-uTEEfRN5gEJL3t5u#^#0Y>2$l94a&D}&3f0TfQR7rT$X0B;5DVa~KcF0-l83m6?f zv1AXMNdWTOQ(^&_hFjaZGIDYb3v&?`Tr@WmhL`F)yQmJGVqE5vhsqm^wWs?Q4AvkR ztkqFhl1*uYKW*7!74=`?U7HXid5&2wh|C>Q1`h1R+F`#VnL@0#VLRhOU ztQx4={bZAuO`}mZfl6#Jjr}KJT#khpqX}gZsDICA2(xj>_Z~~Fc$>|N*4ip~UF49Y z1(HK%dIE2r>cPubCy~|3I{SsQDivo;HE;XqF;ARC=QXlfSOOcryqpN(e*O{t@xe3^FNgO|40PQbx8A{mF0;i_u(R zSoQi7T}{CF=It+P6zjPpvI{qG;}ikpmkjz7Wsv{Fl~}<5IUwInFf{MdS}#COL%U~_ z1$!HfWnsJ?7oL1_A4-DtoB~zo%mclbFf@1-Wwn(ksSLp7^9bF_2-2|gT^HzP?7Z&G zSLNo?b3fk;n^kJFxHT*liC9b?fWP7a_56~P5hUkE(evgvk&N=vOY|8sZC|~(fcLJ4 z*94FO@)cROK6|>q|JGgD`$Y%HseW@u?b7<=54YFg=^ah5RaB|^NFRk2IR4J-n2TsYDU}>MIci0s$TB_P0iNDwfzPR}R63XT?B0T| zot?0FYQT#A%D~j*2rgaxgaM4|LNy*z+UT=_8QP zR9lIodw0TRCs(BmITFUqz##tYlL3r{5{!{)OTdfPGB3_gWbol|0@)&|L&`uJX;dIrKK9hVIQ^g`# zm_A+JRL_D=iG|7KsfOEKXHs6)s!QjSvuo9*6{)FPjJYgw(Q!m)r;!ZDnGQWaH;&nv z+t8=Y{z@H2N_&}tPQ%eOQfpxPSZ(Ucd|o_#Xs?<*j%*gG(Gk4X-H&58rjXU??NoDo zVsQg%kK1KzF=vlkBz$3O9Uk4?24nVk6mOh3yCi#jSyd^ILxZVfdH3JaUy>~tD0RT) zQcBq=PKtcC)e_~JB}6rB+A0`B^|O&DaGeQkvu}=mCs-0BE3BopEGXMz6Rc%R*b!)I=M*ZD$)N{)3t z=JSuQGy(@38#{9j%lFm;w0`DCSdxbm)mZ^ zbG!ZMs(0&@ehC%zP1w5s2;BZ!HA6C!Nnoh=T`bHMFbt&d<)yw;GWb-S9GOfOLj%(Y zEyNgTuJ>!(Z4#=3E>@$4zPQj>(QTnRpdEG>cI^834kaM-Ub03;_J_xHjpc*8UMc#k?4J6`9O=|^Y z)zby*W}52Fm~~A?SI_Gk@rNmyQ6{QvrVmAN`gb~pNlrqqto)stZfm!^tKV}HAAeznihkUepr5-%RE zVQWqnG-EDLIhuC90B30}B*CmeferIB-I$#`gYe8ea%}yIvCmfzNSPl)C-T)&T%nf? z(7L_j(`s{~W%Fb32PwFc?vaBW9mUwyvpE0WNu-lRmcbjNsq0Ume|}?V*6$=h{zzkE zAnCCFHwk!tt%K+HSny8{2jTZZ?d4d7UTjF&B=d zyqT@aWg@GY?OhXwn`aMGP|=NR=m6j-`)N%)9NV)g(*gU-fIMk#2#lgNnMouuc6|V;Xad=cCPxh<3QBO4 zdED{_4d~uh9nu^!85xr^38XSPO|Q|T%7&GeXM#*j3G|eG9j(~6RnVEzNf8QRx_=0N z{1E}<#ib6`GRe1QDn%^p0m*#nn@bQ9ih4v@b9PoS2U0TMdN_^q=TyLCo;Ic5G0 z*{3>ro3C!Ag&bnKwaT2$I-OOBboyp-IN+YAX7nUZzVRJ=cxu4lFy#zKYXZpEKz)&Kv*ulhg$e+67JcLEttcw)%{1S_hV z52C8|L6Jeu&$)CujIrTY5Sg1qd{G|+Wg2s(OZjvk^ZcyzN_q9KLdHN@djV|eR00fT zAWHyw53U_QjlT2O4FLJTe1_>yROhjvb`RQ_>jlW^z4tU&*q18KWWein;pr#$qJ#nr zom$P_{@%;zyKxydhYhvcTHr46vS8l4=lgPlDp5eSX}L1{MF~>j^I^=fRZcG@Q(Un$ zwQG6Kuy$XTFyM@|zF2sY4%d&RKaKPa z{_a)47?D)af?D@QMF+^;b{QR1e_R*yP87dSb=Ko>XCthB(xthbJRgeU)#K+38Mw5D zY8!&6Z>)gLo@btyedU$(a7A27aF%#kP$*k-0!Se}Rxi7myk`0;?kDj{FqjZ^b!=$SzvqZXdO@$i{hmKx<1znoT z?NzkYqpZ4u>(V46m&Ey61XF?*M9NDV<#~s^x-wu9GSbNe zCVGZ=u(U|B5lewDVXl1VPth+#mlmI=M4hSG1mb#DrgiAjWC!lq(u}=ZTX~`kokZa< z#(M|xm&b=O5z&=i0I(2ufb{7CwT6O(JUzC#0;nm?BCFeT6x{KP4{t$rLygMZL16v) z8v{6VePBs&hgQx?|JeLJ&G%bFnG@YDXpDk>J4$_av9j1?h%1z}md}A9xI9>iGjlM! z>Em2l>sU6I8#-bLEJ4lIX4u^dTZvxwDeF}6m+Ji$iXh}db+yEDZH(wAx?jFv5?+Rr zuW`Qjw7sIdg9L}ukLvm-VTTP!CxC1M$?0pj{L!ZvxiQRSzS0I3GI(n+iBNK#+2cS; zmUI6;+CThXHKx^~QL6ZJtJwWSy zJ`5{&{~mN)P=_CEXb5Ip_P@Oy&`1BmL)Vlud0M{9(v8Z85GNaLiw(xL9`Gs zVS&@tqXvi4Md?RI2SU4;w3`ITk_OKlp>uTq;U?VLg?_=a+Nv3DsP^nX-zMtlH}O zU1(?_T1bUveF3qFt2qA3y9m#PxEUe3eR@2Fk8f=Z&H5d#xoJ7j*76NV_@lM5rMT@9 zUVNYoTdH}cD&G?lDmcf;)c^n>07*naR2!PndGK*KN_h=UYME>jLpR>V!u*gh^);hT z*;D#imedey-8x}=&%96Q@0u|~22wJS!PMj;D^nq7bMSe2HZBV!%4^W)TVKm#DdZ%y zyPPO*tbx1C$DG#rEk0V$dDb*@nDAyWck_w>Vfd-nYwt_7Kr^W{7RP6>I5Eq9HdCMH zH_>Svmdee%*9r$sAS>h=4UZIbc=(GIzDyk(?)=d zG@Q*9|37>08D+_lodRVu zZNTX~r-7<^`644DZrr$W@BO|jqpe0pwouT9E$nmQx1QLBNE1<-a!SQQv53>x2XJX% z)Ph-lHG11(gv&VfXpCroC&!2`yQK~|!@lEmAW&0{noW&xdI^1QmTR`L8GolKHWOr%~ISbjP0IcQcmR-Z8x`CV@C9=yFo)sAxoda#eP>HrTMExtcL$5IvI`$!erPU?7>#7!&83~g8;f}FPd&m~Fzj6xcfSrp~(B5P2VrDKrrc%_MD zk&qL=`%5~4oY@ma2@Rb`(7*!ZN|^*%MlKt}*ytM!NuG%&kcp?bBd^?;iw=La+g6DV zWnPJeKUpG6>54PjNxT8`-?;5`M0aEsQb>+p#EI8GKvXGFqx$Gij%9G-PPXz%cmU6t z>kW|8bWy-=cM}hgs~FVkDj%ME_5l3#osbmD=Ugs}E0<1TYT`DVBd6Pms-{|0x6~`i zQ2L}YG_S=R^YFI5f9U$$!WI`SWOHkV1SY{AR=+~+I-EhYw0|3f9OlAOWNUcr!lxMP z{mfwd&nNQu^G|26kgS9qOlgh<$Z+RS`iaioIT10vaQ}hVo7>b z`ek7$i=4^~SRyUU|*HgF}!tt2ygYxmY~O{VjGVhuL;=kt$jhv$K#lZrP*155|f_V+JtBJcETCv zwa01tZconOr@hxpN^O<*DU`}-Im5GDfSjht?X;mb>^3HNSZnH%HC6HURF-wd*d#HO zg*P>#x~0)%d+>7|zl6ZOmK1IBb(B*p%2$o+rTm#wE$E>?)2K&mHY)FN41ua{NW~)L zOcZkbHYTo}!}*U+BFoqD+HT2=z70mcfzDo4;L@ivKSpY0W5d^6NdhHHc$9K`&fdZoC$8e;#W5p_JS*Y+T|kjj*8JAS0tks33AnMj zE(DL;iJsm2(Yc!v5U36;e-}ca-nuFxP)o;GclsEEX8N608NSQkOSD{+QS7Pmv-;%p zbLpj{F!*OgG59EI>JRA-!+aX4nGy89^;Z}e9$^lFY`y^Uc@8bwaBFU36A-L5l{{tx zeocn$TSd9}J8N<7P(7so?u8cY?xqq0%2Q+sRrOtH+x|5;e1vr1sE zvsfrH#9$_#Wc6s7n^j2)Vf1H$15fY2#r!b;0heh0J@rxoK+DAMEP%V(x4phFx_7() z4<)|P#c0-V;M(V>(RcBtA=o*aEa0`9sk=h6&g$P3rSF{?9DJ=blfZgr*Ynr)(5xTr z@#C580oaAuwa4qnqffttKwTRoCqMksd{K~Qd{htAsC_O?7UFMhcJQ&k2^AF7_0E%K z)J$UjEn?rurt=uPGmk_pMbQj~;Bz`{u(8fsoafAgxB@M+-D!u*=S6*23!FZW5(p9- zA!m$PUy$4`=ad$|PyMty915A))Ed2OB8};RI}A-;RO@LiBRqPIVB<QJTsODRrMz3!-% zNmG#Q9_Vo6#>4^=nLP5vBC5SE{FBGGB3xf%a7v%MHH33FhwfQ`Tg8@F zceI2H*c2{;9MP>2KiX>p2n4IJ|Cw);Ajr$VTe7?3_hlJ>Sg9RF0rG$Oi=7-nF4#_uorlrT^%!iFT&Osl zS%7@xO@<^V+o_PtBRL;KF`wgQN=j^?3g<`p9!Gl`_o~ta24Qayl&@9dO>^6RG`9(q z+Nnt-CU4^S-+zo`EUDMym4TDv8Jt{AfE@BwDV2NS)Y#aaRZrAi`oekx8r_Z7;(~Njh{94RCx4qh~+H_?0sTt7Iyc$AA267K^D>1jz5PeQY5@ z(xI-dS7fR90|`(L3+od!(&sJV()#27_^~ahZmfso;mLZe{`l2?TC`;NFCNG3bDyGE zEFfPfU^be@^|2)!ACVEwtXAfhf6Hnwtu-6`F1=l{tM={b#_qk_Ve{*Wyz$r)&Yb=b z=~U99(en0%;pP(Es(i}EN3f$8GA!U&dX))~n*y5j>m%LmjEzaH->lKAe>Q}%sL>W# zN;z4{myNWe=_vKY)&RO2Y#5kXLMp@2>GeS`{?TJw5H`#1^#LxsC7oE!oUblGPUB1S zO}-1Ft9Cd!!qt2kT9v5mniq{dt?>9gf__!~6qP1%(EOTp+v@G;mGm&_>U5lfVpM5>rwU;bK+ufwX9)vdKsKazw%uni5(#9rc2_MTZ}CNJXr z2cKem@Q!wPCSOM1d=4KDXDVklD*NK{7-anO(*wglz8C(xO6E+t=V5?+`N7J`vix@s zO3nCH%-NtH@Q_Us%xx^o7>P}}gROF9i684m*s zb_`N2^0iDxneWhRwNw|-TwP=b7`MZY*02xTI$Ch}xtHLNYyuo!_U(K=gTb30V{yKc zgglit&fHs-0#58uW%n{?ufqXfBnXL(t!R9j1LT0qO-`a0;3Dcac2FS{#SHG8{{+Jq zP9l}bVq|6s3yBQolSQ1Lux&Vvy@eTl)mgN?l#`_WK;bXek~~6lwx=hAU;SDWd|G{H z!0z;*ZO7M8)wms!lg}B+>%!b6%uQ4MQ{{j~&fY9Jdlwm!oPy@swHBIn^KNNEFsw#g z=|Him<1iXp6|@7Jv)hbj{rtyg8O^$SrC7FU1_O(gJN7E?%e}3+xgMJJ`k({9dbA25 zx30{Hn!0<>0krQt0GmhAkFt#UxnT_7`ULsH#VNhZBfL@JrZ=9&%kRnD;>OeCQZ2+<`GLMXmZ1MRvJ`(bI|9-H=o##pjXiq z`7Cn7L-@&+G5qAljG^Zlsy!F=g6ffP)I}|AYx3Y5dx=P+h_QtP?kvRNb=vV8M|#lE zR0ms7M{Qjk7{zHqZI#HxYWlQ##~!^e-`gbw11<#pE}pEn!efaVG7t$OvZ(=1k4tAx zs8~Oi$`~7aOL<)1tT5TlX0bF$ObAqSnI}(Kcv1O-$_8yL21QIbG{|njfKX93X^Snh zbk3OUKE991Fx%&{S!9NW@b{O-@c!Vu)&_m^ZX|cm16V+%ng>*<#%Oy@06ndBcWe&Qn}Q^pb>q~qN_59+!oh~r&hPteP?=r2^d{?@0-`EC`i-HX}= zflVNvMrLjl*WUZDNG{GAWZ`&!9B*A+VzoajzwWJlY}KzL9UUD-Cq9NOQB9_GU6jMt zSyw>VZw!z>P88L<+u*3Jg=AMKs#EFm6xE6xQDD5WIgGmcYB*U5j@8&G%fAY>MTw!l zu#Y7_nUic(#wfKFI{&tGyacC1NtTfF$SsUv;P@MuAGxL3sFd(@c`St=U5X=}+ej}1 zu%l7JzD+hG$ie5q*PhwS>D4{_jLsr!juzEH1qJ z7BWfQE}c)wc%wg!xzwr*5vwQXB)Ryfa|0va?+5e@rAmhO?%yLF>S}*QmTViA*mw84 ze9xXh=)|`jdFg+6z)=79YyiG252{4_eOcb+OW)6jRO{ALc#mm-*CI#KMxn?b?+)Ox zZl89*B3x4-REY3a^kyc6I>APhQ98 zm!}MMcBlsVrAa%Ixs6p%3`O2hfC40hlL7&LAHMza*RW&z4%h;XS{>tsnIR0_{DcL| zOHFcfzm^LQiQg6=sU|7oEgIXEs3xr4#?X00HK!t&X@tcm5^^+BzaNqMM>RTQqW4Ko z4dLd8KSpwC0l7jE$xIH{CKhpdqJY79>v>v>@SDFQIvT55TLVRp^Hq5bb*HJ_aKMRw z`mGi;MK~=T8zo6XUB`YjZ+lXw3I&kOEMR=}U1Za0{dm3<2<1u+Uyh0*ieo-{rIbIs0I_apfpT`Mg_LPj@4^Et&<{3;jXA3cP44o# zLBA^tqqJx2`$8l1Si|#8nfX?ce?z*ozMl}9JeSH~x_=DW6xAl@_47)uGVg2DVO*;* ztt7NT_Y?~14VHy(Qgk&r^KNBtff!yD&^@uolxN&U_hB}^`D zY=E5Ft@hgRYeyrf^4S?8HJ;9+Z+Zz&cGu(RwiaIZQ%QcCqq?78TxK;CjaOyw%VohT zKwi0aH=xOtk}4)iGBif~1y#TaWKWNC=SUhKKRywaF6M&9dYU4+@}Do+3Lk#iUurW)jx=~v5HEE(HX+D()I z8S=sH_vpHj6R#V3<#dM7y7`-Mx_EL5dxz8_Mo+(oJH014HGiRqL^g->qYL}bN1J2we-2rwUuGp*GI# z9UCj>5;O(LO@b#8liDMwZ6qc&g()Z-MP_CcSKj_FNXMycmEzL?@ZrrEK3KIZEWezI z4gP3{9c^J<{%Os$HAnE&6FcCgBz&!uK@Jyt&thtFY(sR!N{!Hwml&C57dd6MreVvP zBgXL!2YqE0D zu3tB?BtM;b#dJn1J7>ldm1WP?qG*?~p%e2_%nVKNl3QjfHnjtl(6*HsM%9K+r3;u} z$|Ao4)0$O9n~tU$JoD&wcwD6PWXQ2NW(G#^A5M;9%*4V(%m<4b%pgYj@yELSc)Z82 z`*me75X_?;b*QeX(pWnPJ^t~zTNs+4#BI|=ulIby=3%+>hdv3sS@`}x!vJKL(e9-{oXP;%X+W$w^V;J_t0uwO-={RW>$V!X4oW9X^(yEpIR~z zxg?U4gSh(MYnU7zM<$bFl|qOJ;ml+fXU4Pa=k;7vzuKOczkPCKoTetnp5AbRSV588;t9|Z+eE*jqK+bBB7u=5j z3zGER^-$zfhT+fe4{L_XAwayBS?&@G!V{u=W;%x1*%(7h@<2K74j~g*{av3@f7c{Xgo5tw*@m8;tx6DA zMlrd7>7ncRFCX+V+B40bmVuE4J4QAbMb5J4YYM3L8;z-*o9gi0BU=#IdIYv`Gpi9s z$kV~=A7Np3xO8b)8vIr($ReOYK@hb-qB6GH@0wAj7_1~aJDLlR}1 zzTTHcJiAV-+C1#{K0vcVsME&|NvbvrR9EA`Gta>rCKd>vCJVO*PGe&9 zQmGBfzG!jGD;ZkrBAb@-p|!^uK8SWbmC9mtWRB@gI%85sHaSWtm{>MIZdTDu#VRi= z^pDhtgX)7ehEY`?hTTPVpcSSG5*$^}lsyphe)4}Jy@*9tvsn90MVzp{@Xk_w=fq+h z^LJ*D&t;8F4RnM04iznV*}9avETO>AJtah>Ggz8hz|!@7Q( z%|t^rHhd0aL!|+7>v1eIfabZ>WI<6m>i%1z!u3G9M!6mdD3t4^^GJd5O|BZeyatMkdESWI6P>7@qO#%uk=g?9^FHn~BQOP%;T67ZUaQs%$1vKd)pnY4K* z=(Qu{_u%;+=y(dV?j$TIj@plt>*k` z)t>45#I9D`co^YYwdS1ZZd z=%_6~WUH<6I`O@un@j4CUmUoD6W0a}CD3%M&p3t@B=>qoJ2b#15-dHTg6H!v8M3hP%w8ndAq%+wf z=9D0Lxn|Vz7wYHqHhX$nab(A4p5#j=eJqCAfl>U~iQ6TmUMR>&|0-Q)mAsC}DdFq8 zgV@@rC(2W>G#v0^UuQjB)m0jLJd?}gz@ zgXF}tNac%G8WYm56bx+aZiU;gzpG)4NcI)`nMry{5&-wvvCmcvC@U>5V?XorrzwC) z&y*w-b9pR`&0>Ch4#h&g^gLGP>_@fMD{`YLdk-PWml8QFZ$FnN22)wBuROXHo15$S zQL#`!erz1Q{gZh0(j=0?*^d%Tr(Yrod@_h+^@3X9h>^ zNuAuajyVd9T-X2rAOJ~3K~$s2ciMg=Nz&G}wn0IlV_iNR>GH#2lQp9zSQWy)r@sP! z%_c}LqH5*n?y=$X3`x$)9?CjKh8duS=z(IIm$OP~;}?P+TK`oIp?pSxA3_e!&crb@ z6Gbjpfa*#iBZ}&hR|TE$xa^!-N;nY&f2B$bWkB20ptyWuPHVW+hyi z+ISRs*e9c-#^@mMIqmrF{xVa9-^{$`8{w2Jqqo*E@f2rrm2nUX{s!ISIpA-5mvDXR?y&Nh9gRoY+qV}S(ras77flfte)}6u2>W%|135%G_CAm5 zrfra1KCNJMEIN$IJ0G)}63QG*v&0U!Mt%TrAY zT7jCg+0nN75E?f-?<%{F!&TPA@@U#Kn@(XK~Y>)@^O zbJ}&aJ1co(3-&-99(!HaBsG1BLcd@mmW$P}Z=p2WtDFA`pf>R-7cm!dWg4TV>M` z9eldvQTtSzJd?~|dT<<>MA{T2w;CDiv9(+pik(2+Efi%$6Fk9#WVrPD5(UV8F8uc6 zU5GR_!WL>btCG}x9Vu`mpdZgZ92pDl)y0w*>* zTmfsFi2~$pUEdNA&zm8SWRCl;_!LH**p5NKU>fP7bn55M|s1AHz$ z(Z}TtVat*4vZO-EsU%#;GUn6(xoRw#Y$p0M>Gs5Y9L0Q|*-&P?)!L5Tc$QYp&v@rATd4 zB6Ha5Kx>T;-+F!zLN$$$yt>WQck2dj-LwEC3Hvv*xm;B0C5-Bp8rVhsZd$i&sjCSt z>Su;^&uyhr8_Ie;i+^=E0@$?qC6*k_F1ZLfF^kc&pJ3#|DZ{2fb;tjo6Z2R|R$iv) zK}pQt$N)JdJ2eSxAT(?ZK@WcOSXW8?@sn2v(c6F9DwWh?>*98S-|s?4XDz%d1<5s8 z5YEq*tV;T$Sdg3&o}82nYTTEd?jYJ28we#kk@1~JF*bqWGoRwl<#UEJ_H-3xMR(K-H-~c6}T-BI4)HSdn4p|Gr6*gRo zi-!ftmpGE#>M{q?D9HHCzOCqNt}O{N{@~)2A;?ImaSAe0uyG?V0*?IB!D<9OdbQIS;Dp|KWYi8U$9$Yt}Gorz&~F2;V3gxnlW z&Kgx(ro*$vLu4z;WI6;3z;Ze~QZTY^b2D5X*Xj?DR>C6orQBLFIatU+l1Zj9J2Zhz zD#HR6OsARNVOc$Av)H8QPqKoFV08|uHeCTri7Z2t8v^BKq#1y{J)3ZNX9w&Gjd?N3 z5itM9$x%$i^*Z%;D?m=~d#uNYC%U)}Q?FoEH4Z-eEId_B+)=W48|hRWADz8{;mNtu zS*g%bvXKFDRYGa+3HmsioRCCjSvAh7#1c0`4I;yVGJm217571EK#()-BXwU@{2V1^ zGp+VrapXh*fdVKntammaGBSw_V?jtR#F(RxuU#>?E2s!78MRtNg50t#S(cH_>y+z8 z^iP=p`LVqW@yWWw5ah#n^ZHb2d4Ph1$>_$H2WSix(HiFKSiQo27ybza$m?og3x*&$ z-H@tUF}665JGU>DqLE8BR}~Fjx<{LRs%D!>R5>fzOVnSITVgiwMgp9sSGimiROxzI z52`2#ate@-^qy2|t#YOc3an9p{L6qKr*-+YeG$BHFsvj5@nz-og|L+c$m=0F)Bt%A zb5n#MKhK@8OkS-m2bpv`G4K%OdO=8lQ2mXnA7A;tI*-fROTzYN`BZVTWx(SNV8_01 z!tEhid|r38u+)#MU!20V^L>UhkQyM5RTv;ALJ7$D{nGgF2G z7Qz^8_@1DNk7#6xcDPwzn`{Wy8S~%Ny+Iu;8E`p+XzTeVs8j+!Oy*FGj$`QTah)|w zIlxY_py&dYDqw&R9`QgV=5JJhoRaV9>`O`F>P7SQM0Xut+}&!bKc2yxCoX}?y_hdc zJ6KcN68r%d+S_a3Wp*exq7Bno#*nrY14W)xGnwpMPsk4^QMoJS+~^$wp>{NF`U*pm zvy0AAGsC#@?rTUGYSByhY%q!UZpKzwi+=f4N`2VdY{T{jV`-U4l@Bj|br*uQt&p6Y z-71&Mqqp}QCMU;NT>4haKwMT<+v-YSbZate?yPVgYP*>*OxTdD0#UsBGE>I~(IMJz;fNTl^r zdAc$)8ZH`oys1{JJx=KH3;h%L;ib~Vj;W|;!xKA*3G_Srcuz8$RJPO|n#C| zkpKBZYV`+vmW1wYoE7usdFL-hPmgWh+?KP;|2Jg3R1SywrFfBz=;VC};;gmX>qX0| zhsmA>7hc#IgqI;D`4y-NVgHklBUndH4K?e(h&w~)ac8&}MJjlyT-=>Omv9(XLZoVF z*x+cibc#_FPZ$Zs_~yxY+>=%y+Ujf`;}cQDVi|@gSDPXyIzyfXU2r;W?2r%$1aa`l z0R#d{J=kIa*_lCndh!;IUz*YA+^CIY4!AaBLu!L-k&}a$Kw+9&N?W z?k3oR6vSX0#+Z-C(Kk8Gf~|z$F7+IlBt<;XE8}mbz|u1$b?1R-fLS^yP3@9%fHLX* z5kDk5uT^e$xY6A9G{|Vc|WPnCVCRpd%0Z~{{S}SFo$%f~u?^+Vs0o-msw(olhz5uV|3OSF$ z;w@Z1eGV5-_pzcy>LcdTGTt6cBfgQ;`1eP*u9;??QSI#tqPvbGrPVWHV{0oOIrbRb zRc(NcqjdARH2SZ7iuu_Q#c`mHBq=iE#BoFlpHSf_XM?uLd3Q9IsbEmcNLZTeAEND?4 zwNBFyrW_W1XpF1YO7@u(M@Au&!{XE;qEm|uVW2UTiQ9=nXJ$TNn}65WlJcU;|LE(4 zD37Ibh!gEPdx*}uB6hYWL{7e)2za?{$k`k+gCqFSl}WrmXiP3k=IoeDZoHH4u`VxT zhf(K&Uc>A6AU|~lXD;5r*{g#kTfu6O1Xd0~D}%qR3bXitCBHc& z)P$&90N>NurHYKfV=J**XDV-@*%Ms;`LC+?!k7rd85@*6tHi{y zC`F*kinx#%l0*HnFd{{chFP4L$I{dy^4UD^hp_fEzo7Z+YIoH=LfFvFhzRqd~0mE9h8 z-bts@IC0_>;!%!z(liVE!5I8j?FUW2cQwKtaPxDMSbsuOuY7MdTq2#RS$OLTi-M+2VR*$R6&tnG{Qu_WI3?21MGak0LCE@S&H%PFaKMNmHlGlYq7D+P$gfPGKy^h8(p5504H&Hs!T8SkP9U8-bx;TXkQwf9Z zoXk5gmvC-qVh1gkqn$oH*2Qa&t2=5#OAGcqM!t$>tt4C~8N(;1Kr9W6b%vc)Cit&N^?R5Fk*m?}Xst(03TtFc{ zhUvb`=>Osi6f#N)4+)rw7x32?mM|SRv0AL&w9H9z@lRs|BY$!Y&@=m2-_E`G#+vQc zd(pXj{0v5kA0HV0>o38)-Q%Hoa35#2=Rdf;{n_f7O11ud84{(-{|sO99a}2*i>JoM z?mXy&Kv`3P?vCFBq~BW)ikuDwFS0<8OS9`GJJsK7!_I?;;I3{1Bz_P{CKhnx()$cW zE}{_)=qDj-lcD*PT2dk$RXy72^hsn3ku$rD#jnP5h=Q>|!Jj+^hvrxiNWI9oqdKNu zmz^0{RI99KYd5xR?bc}0s22Iu;4S>k2ZNYh(u274)X^myZZEA|`*byOL4ol$LXms* z_aa5OvnhmM*xv?ULk%Pc_aY?HS-g9;4|ca5jg3_XYB!bAN{Pw+AuVzZ;AXFr;^ z9fge{iuiVxNiSfe|4rnwx?_YNGW0_ulWWa#C+C`sOgw}1QnG~d-Y_>bpJgE220758 zDvEWko-a+$r9QRy971!4K(n44!{X>weEgHMNXB(mg>*s2r=wX6M>i~~fkfd=cee2B zpN)<#Y^V^d(AZj?el(hg+P!$9iyUt%bd8cFd^q&n(+JgfKvHNHDNuWR=sf$!rb8=- zKntLtI0FR}h%HCe2`l`a`5VMQ8Xd}%6{$K{*g;JVo2yO>We|#VDB>qL>QgpXz|3p{ zGgDE9f(ZwljC!3ePOxA!%M5{RVO&d`ippoqY3*~PXJ2 zNs@`VgWt>gMX)pFq96(V&Vz^Q_xOkEVV*NI6p%?}F?n+gxs1Li7#H4hr)Jio)(6>w ze1dvKs9d5jn_0>zwaH6`kJWO1a;IL)IhR9z_%>d@GJ!X5Ef`$)L=!m~_iSjOk>27! zhZj$6QKo54OX2j1<2e1r@sj$28=A?Vj4XRDzS9NAkW z)&rtBRpr*|i$R|ouROj3As=Ujkx6cc?%?&SQ#?Q}e2L5L#s|nLu+n1+tWe$B-#pxo zMxr}p0dhW;7y8F>b#w}yopo>tT(jaHs@a*Mw_Bv?P!roq21HFLG?t|i_g&Txaa5T7 zr9=`Gdx-)oo}d>Frym_X-vlAa)l8ydat=c$-^0j-3%n)8Ojyhm@PpG82FN$QB-E+` zBi=cS`Y$=)~DMW#P(y~<_L19m(Ll1nTfOPpD5^DkMj*y+z0rSNGN3U zNKD62FjK1XP^wbm!D#y!SE^}Ev;9%gBbt3h`;;!>w09D6eAl6GvgAnC|6&@&`OCO` z>KZPe8!)U@3XH!ou$lllMr?Wc>6635!xb;$dvoKO9gVbhDY=CLcL^kZ|G4U>_0+Vr84fok@(6($1yxRtXzr+29oiBk zQ^KgIyIGit8wcJ+ovudX(vB^xS#Sc|P!sU4!)d>J~6EONVIAvA8@0h@=C%O%K# z90qS)!3S@@iFDdno@gy&xv~zl4zF3+&FWrD0mkZpi?J}3vzzH&m1Kj?a>2R~>e}mJ zvkQBn<(kt=RY;P0IM&}nmRDytvp$Oh$8wbT9H^*dhC-J4S&;r^Q(4RmP9d>a$~-}f zQ?;Ab@u*Z@#krs^(HVMLkX!RyarF3RY;KNda+@EUL~q|TUcEengiv09wi-%^ro`xt zydpk3er|6FH7a^s20M@MK5`IEom*h@)@ys^-1HDGpM4htgOiBHbe|8|QfB+MTpx>8 z!Cp3hrMtIv8|BJ!*;rt_I_P2m71o-zcZ)M_W}9%M@VpV8@A_O&b3oDawDK8(PAqUqkexyhE#3pu~{p(FSC zkwr&79~>MX{{&cf`qjO76^0^rN70xH94L2TGs|BAvr3zbzW)#b8|u4+}ZYS;B_khMr1TEE~OBQ zrZK;eWJWA|iX^e@V}_QrOK7aG#*w3hA{T0r&kW&{lYIshIenL*$Y(bmMNSm!W)wNq zBL9U)TND&I?;D{K&)poumEkFbBR+&eUIYSe-Dp)cD2p73wW5SEWVW6VB-g$}KUkpB z)wxlJ+I$#NoxaNFgdivM1_jH5H4SL%ei3dD)v4!BtU~M#hR+c%*%0|#D?`g8(V3!ZoRbE7@eQ-GK@C9qI z?dZ#JS2Y55jH`XGIP45X?yd5{SLHVZuDQ>dGfYsT2y;R!eO1DL zf{RAYBTyXG>FYf5`AXnH}^O$J%etusF zR6<1!DAU+)+xrN*_8fxEtvLFqj^e-#ocZh>Oi#_TQ6nyDJe;ShF-A54l3y)(6=%X z6kJIfoTjL`*fnkk`b6Ifys=tr9!#O@N#nW-o55$CG>7VGpT+72xd6J1j_ETN^-Cm9KJJNqzCV zVJoTjEE6#a4v&Me8Ti9B=-m1(xZGsx@%3L!&S2=|`+9&}aWF2Xi}*o>2y(#E{#nn; zU3GwbSECJkS{fSF94LyaQ_;Q=ljB&>-HwK){fN{FiKXco#3ydy z(mNj@lSnG{US*_mz~5hu;o7twcvxvMauzJ<&*J?<|N4F-el{vVPW8vBT!xs-)(~>z zd&f2-+*k+6!zr{WaqHxjVf5a*Q?jhBk`%2H=t;(iMWn7Sh;Y~kzh5c)rLZX($6q)H zi-wNIh$korl}SJXJM+5yZuqO~(cbfQI2naG>832QbA7n+$;X%*8P)c5YWn6(20ywI z1tG~d>Y^?^(qzNdI)#E*X*yix#W%jX6T$jsNG`Q+MHU?I?^Ee_^^I@60diwVY5BKP z-=5WVPUa9x5X)1kz1P_k!7~SXv>MKGCd25}Up-4ToQ*-yyTQCfM~f$Vd^p(dd@$@g%j_ab63W0KE$XSK)`E< zTS;6q&y@LDWH;Ars)08|3?2FzRINL%Ygqmhi$$>jxpSYnf1bDya3QGPoQM$*reT)HqmkHztM_Otn-b2?q(mcN#{A-j1oo@2JNRibTY zV;Ilu?-FW{#}Om+c<&U>PbCfA;&Qw3=j3;?&z7mtv66;jk z=I7z|5R)spcQPnMhcR;DEJiL|QkW>oKC+>2E{oT%MX{7#XLKB3DCEMx@L!#yazI~# zi~0G0RkMbE30`egU33(Siw}e2s~WNg;^vL@06q|}^so~TN8tXB03|lqyE=av68;S9 z*c>R+yR){4&9zR1y)M)TJ@7c~Xxv0b)=>pT&Vz!PbPWC1KgYt{ZEn_TXi2l3tQ1yO z3@6Q~QVb9sWT{#d+!0~{5Hp#%{5c$*EMsXY%>w0f^GQRNF$K!2{4PAQdkc2&+R6e# zWT+IAiDfC z55i$Tr>|6KpqP=aQbH*iiOLB>F~BG=tsFWu$}{d5V406XfW}OzRB`}NXlVI(EAzy% zdnI^+J~Ve8MpMTj1z{(nn4U#q@+Pjl{}GZ)OPWAXU7Qd46Zm2zwMt~g3hS#3ZTEW1 z542WEIMhZ5OR8`0K`7`!eO&}w4}KNlw(XFdO2P$XL>GoIHu4b)MUjO_am1Jd+1hE5 z8_wkL%_VclCU^~H_0r}^opbu0f_5r9XC?P4>q#)!T|^tY|LgDt6gyJRp|I44Yp2hn z_jJFZ5AhuE&QKcU{9W&5t`)!D_E!1*H787X91>pK89;X}r`)59^i$`Kt=PVAFYNwS zz{Vj{nRFc2df!1J&M7ywIb^6p(}9IK-_)?4dM{tBnmgaL&UvG1bh*@=;_H)wGcfv%Nw;T%UWpaqkMj5go9o3yzY8eE}e3(R=C*+_^o0DD910}5cb1M6sgSDB09j;-_?DM*0H%2l3PkT5d@93qiF*n zGS3|$n%rxTa+sdY7KY%t!RGU#EyMk=x7RSIXL;LS-gI70B`i&zW_PC*H^dH;ko^tB?0oYH}0^ZWVTYZ z2Q^gtTPaV&P#g-{LtAg64a5Gpaki3INDYcm5L2_|9sy40J{t;|suFr&hM76^-yNV~ViGEwRH-ue> zUWSJ;2GNwIke=$ri4V`?_TaR()@hkunaShyWUd_HPw6yD7`El)ulz$pkeASEOA?;n z*?^~5atkHW64#j<)3GGZU%r8Sjshu)%CykF+@>)mx3QcfyB(p%FanVv*X?wh5^zx# zpK(JsB@OD?RN~VWy=-FEVeAjxFTz8pVRh}sM=^Tg6b8?p=ZV1l1Ll~1_3YBBP{Z6d zw*B$x{=q-G*U6)1!93j3(kgqM?*P)y6?IRU8(97ENCA`>u3ogvp6IT{3%i@)tgB-T zWOT(-8NB(~70gj$m~gRgTG*TA0_2=M&W1?D&;AAclvqylqMUz2c4*?de(s3>M;k(%yD?@!)EDo*7B_(l8bhy4kBKD@E#U1Dc=YBQ%- z7q30rn{ebn7aWwlZR2)bipm&#ehSfOtb`hvp(M4vP;X0{F*TSY*bm(APyxo2>=HKI zO1pxcLcvA~lE;-Gx%v)d;~d`Ejz@c%HJiCOH;>x`WB9XE<5;){^y)#k4d2-pLY;!b z<rXXkeG?AZf{pKNBb5oIJ3i@1939n8$kVsdf`vDgD@GfUt>a-Wk2$xWA)Q{G$U zMNMnu0kN66Ughdlv4aJ>wwTXh?)EH}rj`tJ;f(cf18rtXGN*H1B27VZeGp5~k!I<2JmqCxjZmUTTPHk3Vws0Gc{`VDr>#x^#YK1h=ky#FF^qi7dv(mk^Dm z73_FrA)0lg$1Q{7G^RT6mzBu$IZ)-JvT(}u3**jwxq=+9?cabvF^2F}eZ=F{dQyhC z97LJXtOCXU@KyUz(^d;lfG2kGzKZ9vay|;S8(5&=6#$LsjIfYbNKHtE@!5%gU-&N69L$1L|b@nz0qJLJirD7Iphu+R0!igpq+aM(v?r=Wr% z)Na-dU%h50uem!jmq0dKz}!NLQHpUxRzjpYfR~=$i%7T%lG_aw^TWYtT0hHj$E(xd)xbf?U+ECvV(WpaJ6geTuS(Y``k_ved47d>v zdl`jgxt=Mkf?D-=#Wf(zGykU1k*WwjDwiU4+MKUzh5lM|7x|h6lshoZb$+0 z<{&qM9d;XPBLQsNdkDLZJPo@qLS8yHIJrz5!+k$tbnC`|gyP%Nr`%FGktv^}`mmWi zqh7ai0*P)sjc!_L&Ftbc{%)!o#XcIBnwTL3n#W{03U(KRL;`|UAsl)3arkOFAlW&pfRIST z{bw*XOl3t?m#LbCZ$wOp2R5CMi+N!FeJ4w{VOs^C=M;o?NqZ`r*aTlegS z-QS{>O-ZL?xP0a(NT=e=(MQZIbMuL^6!PWAt8`_p>R!?FWYTS7%Y-KPdI%ZgFjONj zKTDMbUzHbuh##Tapg|tln&m53*%$2=_;Sw1pgG%^A4GtHYaLUZ$65lKAi0D#*T6VR zLZM=ts9)!I7g5OPu{0G!Vj+PPA(NCqYstu}{ut9si~ZCCMfy9cKQR`BWL}Y5zDH0~ z2e!4~;I-9c>L@-i=vKu@5x8@;Kl-79M91+x=~DeM2c z7(=v@C2!w^}qua@E=xf~krwL4wd zvgfO)Y25+I;o_`Csc}r-?8Wt;evVuwtN1;DShk4&+#ADGeEnx9vHKy9gr_>~hB5{& zmmSX>>A>cmcG!HJ>5s07$r+qKdkMLmDWQlZ3J9&LHikhlik4BSjFqlaC80pmrOL)_ zVbhV#982aAOX>+l0gnqWAKQkS5N8|V^y-s%@8TGKbaTM~e8?3g%p_gN6*iVhx2x8P z7kBtUB?tLM`?eQHpFM_9eY@uWB54^Lxr~v%v&_##;Eai>DB|&qWtHJo*}!F%v(>(` z9C}=AhHS#1&xxu4)gw1Pz$6CRhrTKw>e?cVIib|97PTmq3NjUZqY_|hR<5uQt7B^J zTS-|JCY%K3P|mrkPB$TxRhu~-OJQj`hS+ROOYpY}jvJ0~+6;?KjAGA}cT~(l`XBig z7vec&1UtC1u^P|p+YFD3Cr-$jEMfz9@ankexcDI;5=C7W!B}hFx|u*KSD_VJPS?otO_)1+`N1o^V15gm{N5`&HC0t3fyPGv-Xrh=b3(H zdxrnP+CgGOPzj02tX;J|YL@C-&CDkei)UD7B>jzo6bHAq;J}Veu={+FTyDtOB&G)Y z@RuKsU?!>~f9d}5sKoxQ&&)8sA2|)WYK`^z$Z7EGmO4DMqlu%)m8^O~k^kh2TUdze z=tna6t3qyuW{!k?aFAE25{=4yk9q}jb&SPuok&$|m?Ji4{JW|Vs3F#r$5U2gNB4fT zc0CHo;Q<^j<}{ePaSqo$J&jyeHN0gI@aM-j61X*2xiP-tIxUZ&k`8sXzk+qF38Jyv z)u<;VklckMVSN3irx0n|0bA83=DjBb$>i86%uZ2Y)O6%DBpQfDz3~7>2g0H(Asf#i z$EZZ}+;eO6=Ie%bQK(I=JX4z|ZSh%;9-+r~9U#gk#bKFGAT@CTKmG6`Mn`7#FEK`i z0=^i}BfCyN&;1UNuZL#6r_P11Z4H3X#%T zr;F9XCUzws8tX*I7gmV~0MIOPY0R@|_Dm71F+pjhDn+L@W@VBRN^Gt!SsODW7R zB;c}3aJz_h-LBMavre;OI>Xel5*4J#p55s{sJ;sR2%*V6n!`k-aOd=57U+8BT+yk) zwLxbAaw}A&rTd6=l@bD?(@`WAl1R~hV4*ZCQKRatiOC4!GE3)VM!C*WxiWL~y?ksd z0$#pf%IOTEeWUn`a}(&DHln3s83z_OI6zL@!{eL1*xyQHuM1P-rY7ur{1DvLodWYg z0$0wygJhhegxMZCo4`_x(BvX3hO!G-(9;>ETUQ~LD2{SU-7-LKy$jnV8$%d)i3x$S znbb99p)cwEDR`=)$vq^GN>)Z`>t-3}wuer^t5D@ptx-Xi*oswT*380UsDE2VH!FS^ zP3I@0DJ13-h?3J!Oehn!4Nak_+lm&*Hyc;NnlUIInFYwBi5${7s(=9&96z{CM{yNq z<}p1yg@1Qu3Ueua6QBV3ble4UR&V6Rf-7|exP?Mb^aK_lKcFMX>6y`F2Csd3js0J} zSRz{uFO3rLE36-tba54Sl0n2+3|5tX{(nXdtlGVb`lp)Qj~sXro0ig^Ut4gFC~YBDzQp zT47RHNg#bav9-k3iLg4gb;IqXOf-!&q4rq)=w<9AhJ;iYQB>wCt^MUBS3+C&UbJnYpkX%Bm z9ril$-#^xdnuaiJ0X30O#+e)AID2b?IlrkKmYPUrdHypYy7?k2a`BJ=U&x0@Yc)eW zYHVi9yr{N*8Pe8dYbmm*ex0Pp;|-%@%h%x|CpAlyNFh6W8CO5~9Mi*N+LK5PoVuOH zM?)znWtJ-#Zq}kznWzfCyWzL3dH&U&P@)9+5e)UmJx=^4B}%l^XvyF-UcLR}IB{jv z5CB!I4C@!Ork5+ZHxzWCxjuwIP-lKxZluh1p{9fAOUgQDI{eT}T!*^?#P*EB;tlkl zJdKgdHw<~rR7&hWUy37|selD!6;rsS)`s1UWT)$2id1><@>hBgY-oby;>=C7CtbVR zkG{SU{YK4p;4*JG8(1K2)iaFQ=4W03;{iq~`KD4@t0B|!WsS^1^3JAee06`PkzT#; zHeS6jg$q*x3lxA@#*T#zwwLK__uLjgdg_Fv3JGXvZN&b^55pa%L@%BwMd;gGSB_(D zipG}vwPLXh#;4-!TxGrt_Mh_M{jirqext6{Y)(PO)gKxAQXM5Z2bCbXV%r#APL2F2 zD^~qgQcHJnBZ#s1nCxZt9EBOlXfG@NJY4}>`nhz=fd7;xf8TTzF-nFOm9NQ!(Cjkh zMGd7jv}aakFB5wFnSC94?QuenPtW7R)iJz!dA79nc*=PfYLDCS&7DC+dVV8WuXL|79`JLY$A$8(sj5Qp zFs3`!D4kPGhalF`5{GixZKRys8@j7JLVR7uP|_MkRYM4pnAKMnl}5(Dz|bekSIHS# zEybn3hu!W*OUDzas_szA9pq7n_G9wK72N#17rCrHUvtR<{_B+(W|EcJpvz26R)+ki ziT>g5-|uoSs}Y}v_dXnfFZ&2o;->hrzvILHKOBMkG6EZgBB#S`Yq-b|wCd&ay79|j z-HV-@JK${I0XQjp8kn6Tx}MLF&zYU*R!e#|W_&fXYf|0viZUQW9WH8p;Of^LS?;RZh4V>P}NW>^bjYhYay`B#-r z@FZT2h*Phc`gUyHb&S`wwi7}>flPE5S3fz0nUM*tZ`Ah5I~nFcvS@mZ>qfpRrE)Kv z8XLP~Zh+QA(c^qo23{^}!!GmGpj*OY?RL=r)r%Z?NB1=2(S!TosM`+7-^AW|X>k~L zhJVVOz{bnMNx%|B%=1Oh;Al^x5X~lYEKp9!SF1~{rE753S2%(WrwdzmKZ%-p3h-0R zv4FzD4O}|ii*sj&OpFRL-XFAQN8DGTZbMGOOGSA)d&QVQ_}3OFVh%0SG5w|bKK{Z+kaRfCStk;HU0p~5#VSWOML71la+=}5Z=gf37;gy!5A@ZkwccB}1#s5|sGm6AJ> znF982X)Xzn&kRrD-uZu#qSkZO_3M;PDX()do21C?-3&98Wgno=2v&3s{1G;e={Uc7}-n=12^A9E~8Ts^O3W%k!amn>2*#` zDHmmiB4^2jnY`uHYV^vcgtUspR07(%9z}ci9!;+lW21WsEp79*Vl0B9!lAuT}-~tdkNDw>l_65M(@s@tC*Qz<+t*Y+o>ZI76$Hx3!TzUIFtSzR?iD`1~DaVcyxkp88`LpdFv{$F;n^4-nqY1|kbi!MknO^;) zk3PogijF?D^UBOgRC6BE!A`ucS)irqVXGQDwc|W}u3OKE_+^SD4@Z(Xva<~b2U>I` zi54+EGK244n!!>eeXf!Svrqye4&59ZJm?#Z&qIw@wkc<^dr3latQT zN-~l+RUlZdIQpg^g|pV5a|+vIA-7pZ?3&1U7IQOR0ZQ-b5p1kQu{g1a_2u;4oVue; zxIZ>hGk#eoC+m4-YD?pnsU~?vD8QVcD>Wx*iXI=D!k=Gxm|c53A(o`}_>rzqO2$*h zDxjsa83#`sM4+Yvf>((=CLQhF>t`@OGnTb|lahql`7j>NtTLT|(u&1n^9*)$|5>fK z+84=q)#W|}{31llEOM43&X|am6ks-6eT&-vQ$~fV=1NpGRHU5x%#lj#^D=*LF#_Yh z5k%C~_M*M}d3dx8MzJNVO@D%`@1DWh(n_jXBG)q$8~AYCsbgN&$mzg;J1L95d3j_c z9iHy^vg99d1ULdt5wLfHIc=4{&k^7VFrMbvK<`&2;75umOp;PF*Go$!^v3Eb7jX-1jjiAJmuSHJ^ReApNYpi;Rq`mhsXrSdV5J*CcCBW?X&MB8 z@wp3?<9u5q3z~ON@V{lb)F&{XkiQ^N8tdyt8y)n%$$N+{QUQIwLP`c~3~s3KukXCt z>Ga#AKF^%y5wBT!G{GLW)JK%J72`4yT!~dQDzGHNo|8PEGxPXk(M`%qhAkE^IWM@? zElO~(C7y@M0V1W0=^wmp1Uj+f-arB~j}k|C==1sRd7nU}mMcL~97ybs5?D-+cS!&C%}_^@ zopEn-eJvPrhCs9+ozuZTZ2fQ6vbE-arlv4->Wn(ui2J!t`bjt(&K-Yb6~yFnV3y#^P*89&%3;{KiyQCol)&%(|X48_Q{?fI6X@be(Df zy5x%-L4f!XQ4oW)%pSig6nG(ky zUdrPAj{Z#xJHsMTx#urzak=ND)_T<{3#v#-5}q{WeI2n@$%Ww*48Wtw><#3iN`(v= zBNN=}Cx`vp1SPVf$=k0AK+n5rUi+DinM54wirYozd z0?1^$9c~u{gvm^R8@)$`!U19z;s8I282gkEr zJY7sF=z3m$W$n0G%tPji@H_0L(N)tr{>eZtuIhjdHbevH0BU`ROswy{W&Mr%P%HL( zaAiJ>pwCO%8h6vC?#OwWPDQ_k7KHm7oWeF2aguT4YVzly7l{@J9R#Fu0ZuVg>oeRC^WX(?PG zCi7D0!1mY2>bvJLHneZ$W3+(<2c!noGB`T*g-PsShc12*-bui>yWbnQEKpqmF`U-zTW~G z{Iz`5!fe!+5I;ykJn$?+1M$8a9njCbu1@}r^W~+2!7Z6D61j9gLK{~#CIO4cbdJ7Q;^E_)-WM_54yBG{I}(%d7zSL9Zc{~<%*X{LbxLB?TQNA( z7tvBJ>Lv==alER^P;HTiRTptl3?`FKhg(}9=Eb_e-`crC%iE=h80i{C@MPmal^k@| z4bF1OYWJqGC1w4(Merp{cXu>X;=emg)5hD0y$%$bxRB3arP?bLjRibC-96w;7uMnB zg^XsFO;cnVFe+=as`vq^F+c3^0|@JhY6(KFRqjb@byp0e%$V)<`(_?1Mtzct zV&?CX3;D0^evkoas**rt`ziB+DiHC1>;~ri2vDoDwOc6%3`cU{GB^i$Lm~*deSC(0 zS<#}&k@gaX<*Z5r6zp!KU-(wwn!y$qTMAn1INaLh=nk}hbcYe;cgJhwV(fW;8?F2z zrQ=T6)?~!^lNKm^R*bItfF9ggoN=*X_u%PeLB@~tX)8C{4#+o30J7d0tSe9xkf>~) z$QPlLf>%?NB;Eow%`t67;KB8>0#sAm>XYu3;p!J7wjZLxUK(_?RqLup?lk=2NeJam zPy17d5*(!qWqz-~>0XV9k_qO%fbW)nPzX~FD$sI*mkn(~SpyN-WqG}1oUFX8^dNh$ z<@xwqmT0IPC&(RLY$-#KYre2G{nBNG(9FS4ol-d0(L9oJ(?<%Oz=ET%^?yuJBHFw0 zo?BdxFp{3^ObKju#cQkoHdbq+2Isw?xEMcu)eY@5 zFDs9Bd;^5s&IS4pcY3gOHjTk*CzGUHEjP08LGwtew8A50lh|_wlDAa4=6Z{x5g=*6 zO~^<#mB@VqWGm&k`+bmG*D;P=OQig`2vOA zu%U!|&+NQa7F;l(K&)9Em0 zu>+@*vgYww6;V8y?3x2wOGVc>Wm~6zRY)9bXG{I-ODptE@-!@he%?x|Yj_0XH%0y^ ziKF?o*%6#=At++XaG@+Yp0eGE=YE)K(TIHb{e>&fa^Em7H%qse%Jp(TCx;@Su|-4qmVGYuOyUdLFhT05ZX;>4kQR5-&YylGKt|K zS~Oc;Eup^6fH}W@_OrYG9I6VpOt=Xn5&{}mCJ2p|jQq-=9x8qCW2w(2Q>|s^w;I~v zHa#Lmu3BhLEGdf|P1n`_@CO9A?uoVMRr9ndCRS z^2!z~*(`|mQdR}n`+x{{&b?QQf{Gv zo&sDIjLIZ2vv9M9fWw+I=6IFtiYDl=m=ARLrjgUfoW9qh1i$-KzCTi%@fz(r zR_?*ltZaBRu=1#0ar*c*&}!#WumLIL^-+|bOu~B|HM7H`b|t5_Eed@4Er&h(Cl3L) zlhDMqt0EFNKHG;J9d~)*7S+W$m(( z>C{rOudE!gY~9mH6Ii(UXo$aaknhR|LFV1~E>ht=TFG+fWb)$IGhtv|ej)JL3vG zmh7lWnn*Ue062iB46^l#lFnR2=0;Z1=Bc1UmY!~Xj%JQBq{9i$HW3GPLk@M=#-CqA zDR_=8Kht9Kyu+6z4QZHvevzRY=^s^qxm`)n|fQ_#=`e0BQRD-nIK9spM!1ej>-KCw`~3= z?*6oR-`vSe_g2dFad^e*!iQ%A3)uS`^aDuze-xce4CV{kYG8!{}67(#N zKTNgeOW4(96z_y(N<7u#(AQ9}z!G~lzovVkca(??Ckz*^?lrh?%f>geD3gSi%8C_f z#t_&iDX`^S6X%TxrwN0Yt5!lUK_bu@?t@)t3_2kB{igDpa3cQU{WFgf7vM<_oUhl% zA^h8=(8+(7WGQl9&!J0@I;W8mDmdu}JRT5Q+llqt$WnV4Yk9KE-LaiCH;)JMd?6ze zJq~EVB?SPhH{AFw+|x-e1m*D}7F>%HxYIDsSK9-iuioEaE|mn0DIjP=2$d;zePW!t z-5dy#LND%!ce0pyTmz~jHIv0Syu$)}A8CDWo()2Av%r_n4DWj+}lU`T1VG7;6$7mm&#qq90Kd+y-0Th&tq=FgY+u31jD;J-s@f zfC!sY$Y{pzc4hG15h#!sE(fAMK{l`H-l) z(nvbfu>up#rl##N{8A`nP6NJkGREvoegPi7$p;vp&cm+RnA@iOjQ){&%)FPfmNbl* zK|3`~zkmB#6YoD2YECA&V%5q?zCYPTt9{@82zocb=k3M5=<%aBA~RuhKjbSq1G1KM z_#|>+xw+bqIHZNfyWFQ0>CkNpAAA-V!_%bAkv#Dv{jE{0BV*b?5H-seiTIv)?8<5s zoxz?1d#Yd5Wur}1#h$(?Yb8b@(?~x5|>rVrl2b zns~tY>0cKi^&@d2K(X9d-T>cuT9Vhcw}5s)CIgZk&< z)4fzp(fVpte+~lIg$Iq~G-1dO)^I(V3K>uB-2TBsyYA;lh0v8ExEJwIUx@A^*sECE z-R&YT@}e!T4VFZVY_F2O<8v^B2;xIB#f7@pbLc;|m|vZ>WNHd|BOSWgBdf~H`|C@> z)d*R^IGM>ha7atTbVIl$?w+p|ELeb;6B-8?03Zenaiw^vIe^kiD674h)`wBgNP#Yp zX6gkKYt&&sE+wD#G<7M$dPF~4Zg;vUE|Rl)#KkblAw&NDipFZ0#2+QNiT%8UzmPg) zo0k{$EB=>byDsmBr(Ju`D(b1u&Yd5db;fqrh|`44t=pM@lAgT*y{*=Kr6mo;1#IW} z_)%EIwbP=yeqhS3h!QDmr5sZ`mW##y`13Gq>CJSb$$?IKXZ*kiZdTl7QieMKbnUoU zz+YgJ1TcvQh=&qnYOXLK3is;_j|VG+y)CcNkE5ZVjlrhw01b`_iHn=KY&~44uo{rmBmW>34??&*v3u* zQJ$@tL&U=Gg$HhmIzl8lyC&;_xXdz84ABoe!K5k(E zK)als%bn_Jq(gmD(bPvRv)|*ZPPT>!@fQwSq(HWuf^OUTD2-G%2{}EvyT!-Y)_`Bf zb;nxGKGG~ul|EE}2z&%Ki)8wtP~GD>!T{5D?B7typCQG)Uthm<^5@ODax?BNiVyY% zZN783bbodBRZa{_#Sf_T#pD^ZMq!I3v>fdnNT(mNoCar;@C1Y^XMTrAsn|1se=w)oPDn2S z3tl(Cu2(&4ih5%??fF_rU?&VF*)AmOuGKCy726IE=yFZs`my3JRwAvvzvMD5TWPXg z5TSf3t(!f1d#~{Jp1so0iEC!IQ6*-e4&vt)01Sk^rjif#MBpdId&E#bm7b=M0`fO@ z!Y%SogSB-m>^EH;;7T22(uo=BNxcsUKaS4Cy4hN@g1&!KWo1wqrD!9(UE^6M7!G9etQNf{Y$#H2&0EXELV>WIETzP84F{$ z^>LjfkFA~~b5SxwnOXaj&yJkyT=!TxUEe(kS@wb6>?h1kpRPM)%9inADd3NJcW}}% zsY49;;Wc^55?YF-CEc&)pLo14#-lg*e3_Q+H)xu5NP7=*D2`s{WW_gep^>GLuX6_x zydm71r7?u%wh@>D{>DNOExD-OX;=rGxAop@5*NiuSk`87p1zsZy7o*e%! zm$!Qz@$SzxZyS9V8$`JZWij;an4kcH43me7|6Z^f^$EsipHFY>!}0%yYad(U|1Erb z>H_6V;@DkoAvG97gq5YKYjQVL1kARXxIQ-&iccT7K%J-%l+~qHjy-e>l!g(z!*!tV z!R+WgeP$oZVp{RQi8r$EDo&sMaxyUGMHnX4k0QJ+pxzx~|Jo08 zU{8;_$w@Y_xWEd%&ndAuA9%~QlZ>n_TB8#wj-t^8JG5lyU3*GN>9d~r5cIFeSCBIm zq=D~hmq!*T@}R+c-jrtKkM#HYp;nJq6wSc}6?hK74|v1*N9U-VZ(0Wnuoawja=fm^ z{#e*#XFD1<%`x_&X<}Je*VR3w$6#I9(Dc$G5H^N9N4csxcVj5UEU=6|)%b!GZfiH+x$g*ZF+! zz@6S!$MlgDVs#l#q(LW@5e<-!o1hpeGT>1l`ijd#&rBADTA}p_rI0r3E`OLgClJo=w`UhpjN}vHc!-(Ggu=@LcPy%nneW+>8 zE1|4F@gA^^eGIj4WGB3xe2#~ce^GoA~;rCwaA@GFg!}VI@>WG-ZWMsq5hb zfpb)qE|biT1ZDKNNtiUc;R(J36^eMV0cgMmdr`4x&sbmnXeUI;?J?_E$>fav#O3lJ z^1b@h*ztGEXjQ)muSW)k(@|bRgLj+&P(WWu$8SeT>})I%MmW&^oE>OCYU{f7-b`ZR zx88E>PBn7wp*URQHy(#yo+@k~6{y=l$DN;z%s%#r<0D<|j%VzQ{*HMPMe_lvJ=7!! zo(Bd{)s4P36N5iShq(>-xi~qG;9$=)2=IUj9%hn>DUBzfn;!0uHxbV>UZnF<@uvnC zA?cqGHY&i?>rlj-VvdiH5~YaB;kww$eI9`TsGR9a zN~+!C}ubDhGqBc;xv zJL^OOPuR_e3khJ_^ra2~NF=I}cSu%!P5TX67V-zg>Gz;cAl$yYyF}JCQ$!Gbzg(~Z zB?LUH$uriJt(TZ-GbCZ0YI&rEu!dSCoZJ|#%pI({?PKp%me9*lz7Vl>&f?A<^74$c zew}b)O{{hvDdS7R&5$@)(BLJ7RTVOWW1DcrnjH5u?OaH^-_pyILRJDF=fFeWeCgoc zOEQyoL1Df*b$c5l@(m1IY7WX-MPZHa%DpL|B;Tjwn-t*yrZou%GHHjC8NRWux7kH# zZzt!Q$4%NK>H(!0>xGo@krZaO<$0aW?#^?A*l^ir>Brst=dpi?zn0^R#s;T#9Xp-* z-)Ye)EpI0>}v%_l*=1( zca=Lfl{BKR-z+^CG7^dMGsa+YkN4Ag?q?)75vqgx;@u7%o!Y@FHu<~sz+vMqHG1B_y+3-qe2 z5;fuF)q5-PZj0z+NcwhNC26g^gJn&B6BGXM<#GIw-jZd-RH;d-RV(R51U%ff^#WX4 z(Q;U<54~=5ta=zf@A>C!MJY{Yrvr>l?)Qa7ZYlqIbwPP>ykgBSw z6`7_Nf(A`f^|!YMRmCFv!*NQP3MZ|yD%L4GckG*GLaNBMx`=7s)k`CHW{CbTHSDzM zh6?ySXDC%;Xy@Qm+N`2QZWx3Su7-~_1%Ujux-A2LgU1oEKDn0JAun@le#xbRVpy4e4v#@AV zAfQ%HfM-KN(QxYsA@uUGbMP`{B`?oduK9zeMlR8~r%wc8iM@K%rV@;Y_N%KmZ4gq|m!wU@reG4*=LTZP z%Ji>t9aGTkD`B%6`U&;E=g{h(4vB))7oB!oAFdoJ+k9^lPe@ep9vr#9_IKOH)5YYl zVZ<+ZZm#A7kcT3wisEScc|)}+0YRseD~alH#h4r)1Ex?J_~OVZAxu!d$NRIZS6@X+ z?CS(tG-h8GB2vwF{`?Vq+hoM&?}a7hvC~Um9Opu!Ive7D!sTJYc6m(shNm;y6GODS zKkl)nQ=lJ>vWzLUZ;am;CyjdLUcwidrweYAgp)#&txG%CQ;a9ocg-s5mdc>WHv8kI ziZ>)c@P|Tx(vDtf`^-{n60FM1d<~-dX-jG9;T;AUXb(kk|4-NrW`O)d_A%F6+0x zOn!1%3VDh>f=t}|eZZBV#SQ(eF6}0LL}yUwxD<4^8}<`uh%Jy*Z8=c_YFaXm6(?Re z#$99D-EZLiuix`cTy0rKh@@n{3MjJb`y@u$)4NFMA?d=rHr|ER6Dw~Sg_zp`6-%%c z>V%_z2~Q`|vFH3+cN~nt_R2#bgfpm;sxyOISl;>L+prGn?H9Uma{|&HKpEJ8OM*zY zm6BTBm~rM0j^Gj+tZnm;{7oZUU+2s9LLHPJYil$Tk70LNS0=vOHjNb5+ZZ+2)iZwA z#tor_2BD}}P!5MBs1YCd3WtAoetsKyn-2k!Eo|eoTP>5#1UR4meHTRQv0L)o>tMVm zybNYCk~Yjr`j8H!T7*$*06<8XtjX-Dvm<_%B9y(I&)R^25%I`~i>RZrVc@qQf0gt( zm?PU1bc4U@4uCaLlY?^@PD+KMm*^oD>&Q+(mr#s0g3dbXWc9uD#D+<@FX}e9n_luR zdB!BPW_YpLV<@k14TyrqbqOsIhlp7aYkwTjKr{qMkmHA?raE0Eh2q`G_^hE!K|eVS z|HfvDO-MM>%QkMJZB~a{-H@$(`byy_rNn^D&lMQI6>|OZ@G4x7DUAm|&V4|G7ua8f z5mQYNwD_~m6Z477rB^LN5t@p$G?1TThFj1=e8YQYN0gF5v;EpfsDBVpG}O zu0wg#1d>(#5BVk$z;ks(+*XRhlY;Xxb0t_gi#=zWVof9wzu+AZmU+a&?At<<=qF9G zHT`Jkiz0fvaQihKh89Pu4%xA@bf3hYZL$8wy$mqs5b5z}TF*ZfUkMUncfAN5vlue6 z4Jk2`6~ZSJV|@gQ@QUFfb%CN!ikp4Ec4iGOwr4_UovNdToOvlE!P_sbEkBiC=qL=- zTwqk^*FLc!`nHb*spAC?SHO_+eWocU(s! zTF!fyoVIuSV3Alw`U9+*Qhd;xHWdH}4SFL~*MxPt&w!cboees}+JBz{k!m`}Y z(_%zMQR?&@?pRV6ftf#o2PmYWy9~oa`>wKSM_4?z791P#`I3Yrv|8nA*@)rgZWYz5 zQi)}4^_ee}b1vNloz&!<)QEaq;mv$I0ND5o4RfV8a=R0>`MbiO-%U!7?$d7!{XOR2 zvXW1{;X96y`ny1>H|;zpJMiW-QMg@v0)J*L>UrZy_43qKSf%6Q>lz~;V-tbTc=89k zM;v9Eh=y=%aFJk>*9Wp~8nJP)ZFpnLKz{#7G>A2Mgt;o1@C{|`jF{@+hkg{XI$Hl8 z_RDN<58e_3! zFA4$z9{mFPr}Jh@NyD#MZM@+S4H`80X1TKxaw*2Ays`XQ$cnr}CFexGd?^yGBHpd< z^@~RV>rUbkkln>Gw*sXUd6sk>%|Fw#-0`d&C$v1Fhx35>l3#m;EU6atm7Fs?lg;79 ziI>v`m-55&cA0tG`y96}X~9K(&Pv57Zo^wFnlQl32VgzfeGTger3d z$~&9fh@beUnV)qe{yxT@3NR`%$o|x?_}i7ZR3)8O8gAoIq^n3Ml`^CV!}lLaSS(AF zQ*0~R2wO2Q>uA2$$@VjHBGMf>syXMh`$-z~LimH%N=hb=qi~bGxC&rbv31z`Maijn ztcODIC~-aRDXLJn5ud(FPg^){Ap*h;Wv?;(ASy!emhHOh9#I=63Id|9P>?Xsjv z)zVHmi0Evg#-4g9LS?5^-77g1B#GmKfzj^vi0<#~4K+D=uC1NYfO^x3E1?Jz6L0;6 zg9Ol$2A;z`8$Mv6JGZz3hEknfCB*0!ofiyLHCl}sp!BRbV)8P~q9uE4;dFUO zmiN!1w)z0eRTcnq;b*KVY53BJ7k|4Ctd_qs0o@%Pj$!QHgnXgZ@^8FB$v3&<^73+c z((l+pymLE!R3y?=;I6z@>8X8EUDAc<;u3ZM7)8V)FGtig1%hZ+it64h%>Y>eANq4@ z+-ZiM*&kn>3UXt3e>0}6+_wyz5|rTr`JbFGRdB0ixoOB!r-i5IXGZ~k6f5OvHPA({ zMdq%HlUV>$yPWK@U(E33(adt;GAy$L))h29!>E~ggW9!H7G0dB{-qodP;8|U=qxkV zP*S5La^F+_Al~<=cuC%|9IkSl!7b&NnxfB11+beTK(Ig;&$Nsj=Nzw zHDC^5&ajmC(>L!!Qw^TGf^-ckK-YLv-W@!u3%`6HF!9UNx zR%)PjrbynD%mfp#JDN*Mndb$_8M#|y6?;%R-i~>&v^B(cd`X&@ z`!W0U!Aeo&D~G`l&!n2Vobjcv7@pj$!E{#!L-T)V?Wd?5H_B9Ei^3&DK$mB;C)IlD zG^eY=vXw1-*5vG(aJDmqLbK6%1PYdy)geqL94xz;KvYc*ZmV%9v|oV-3|b2%)!j`? zXnDLF_Z~mN2Go$1DzrF~@n+8CE&A2RQT@JN(*I8SvnVsp*hda^ zhg&&D*$b@j)5-U=RNPVj^#d%o(OXcR$>SU;rWvK;v1Q$xM2;l;f@fbwy_XzY=sPFP z!K-b4b&euwP-Y`+`~4h2_tPE@RtBjj=8X}Asb1U{Q!jCFU{V&;bIe9yC2_; zt2O<0p{RLEU79g5hG!#RU53|0%$g>oC`lw5E!d20nVi72JV*P^q>oUIkihI}ha>d* zEU?+lmhkXn_p@-N(*mU#+Oeb!G3_DkM2I&qtJQt6)no90%1g04RQ0MVwb<*-;;WW` zudSerMnK_5@aavmv}8u&w|wP8zei;v^PlyQQW_D+&YBwv*DxAh(-nR5y~Mqn%$lvO z6$g{Ib-TC2O{mMQ1Y@0YlP0!g-z(HQzKw2AcMmdT!gEQrfZX8f z%9Y|Z(A|R(NWev#c%Y0hkGQmtiTky8C_ZgPr?t@&vpNQ$J>ZIvvB!tt_>zC{Vom$I z${{l1q4-~^7avQaZiC1nxKj@pTz=0zVS-13OVO2SLiI&8%-SIv1vgx@cLrXvf+5bI z@IR^%xoJW(otSDQ`*_EB69r%PHSp|9@`Yb(>%s9y=3{EYFPLX zI7%B0P|1ozLQP%sN|z`}vY<55i)QFAD%U<{m!hVBq(3rlkda7a=AxC>&GEb|-~bqW zyhKzDnbC68^2^c?T~QKMC5kL>>5GdqLt+%Kr@1gigp*lq_`eO$wxE3m-0WgE6TUO* zyR#S~wE7!<#k{E%Yr)xEiMN{}5Oj} zb-XGgopEVNDDZ`M)IN6qEzIfd@E7DS#;z`N1GEzxu=tD0p-Y0e6QR|3Wiw@tc)Z4< z4r~)*tuaNLKVJsbw(S*9eJBqX3fCaN=^1QYNC%E#BRZF4=SzOeBgfK%nB=NEBhB!%Z;3y0 zlURY3Bv@Ze{+yM!JKn-GBGvA%L;4uxnG$0|y$ysFHty_*stf^$xj7PHy8H7u(R^U6 z8|YdrAgkz2g6kDJ=74z0&GpXqYDXA+PZ@Jo3LME94;B{A#%meBSV1@hX-oNL0L-lx zW`D>9E&JVHK5aM4wHg+(HcwA=x$n78xh4Vv0?8=l#0UajhRfWv;3syNH=B95TOGL} zFn>6|%|8L94PYF+lthjNb2ntn$%#fDPy|QPnuI;2 zy=DX(LJ*+(En(@T!~c#;`zg&c14=Ds2awi!_RDW`19DZ&c&NP5@PP0T2Va2F{&%+m zZ`X0z?E-)y?_XQaV15cB-OXLNUGevYcE@1Wx*GsPTcL%Zqmo_X7d=JN#v9aexbgl_ zy`;GVO>m``ep zkx|;S3V*xzSFP=y$i9xBfnjk)O{w%>`v2zO;J#N+>g2t*!U7EsKcnT}L<_`iBjkz? zrW~OJec;+ZPstCNy{;9=REo{Tl}c>;tjHt$Zk=D7#0;wPQ2Bo!S{>JMIeMS6Q_jjK z*_p<245d2leH}tAosN+p{n73Zd#t$AKO>|g+ALi!;HMONj*Yy$-@gsxdSUlH?{UK9 z>)r{viIOBl0#P2Z#3OdPaovyFBJmOl79pOfyW^|f2qD7nR+acd$Y157ha#^YL=lVG zTRW|ZKE~=Fj5pW>Dk`djq}Shq2}M}mRMy>Yd0V0t=_~ABB8#BW6VXlWnnJ2GJ=$>1 zpfyOk(MI39JgyI(ByR>ftfa^`f@Qx)C%?3Q6IOUxKLh)C4(P+{;q%sKjki%gd*ZK+ zFb8X`4rS$ItFY_J+fwY+`YE0W&eP#UR01LyA~X9kKF^qm3$*%1Dccq6L9_p9GS5j~ z&TMIia}!G?tc4WjrM z(Q{{tZ+qBOLx3#)x?*?2cBw2Zp9*Itw^>bMr&``hN!u$=vGW}(?fHGZFD=OF!&Jx< zl8xLh#cdrx&soy+QOr*BPgosMF;|hLe-()~KoA|jPRgPPlb9Z1;d@54n2z1QKp`Z? zrPI|(Ig4>$Ou9$|ond#*t{b8_&_XQ1)3v4QXEl~|g?3jy@KR5Qu+R(SjIM5}ycq_# z;U#F^(}*zix&a~A3ZSH5ZqH$ko^$9@KElg5y}rbih{A-u}gvBv|;snrMcWJmnf0G4U1CA@qOj>_cmV_sSN85 z5mRtO?R&P7n(OmJ{ry02?deB6W=0E1J`$zHem!?2C?LT*$)ix87hvGNoro^OkM9%M zWFh5v8xj#IZkL1Rj$0P%2#(VGEK3wmuoKkD8Qss2wou_OT=JwX%IX_X{US*Nj;Ze6 zZ<54918JB%2O*!3s?#}mM5^6uUOL2f5K}7)i-V{2b6h&fN?JXBn&WuR^-;KJW#p9& zbUj4U?R6$1bMmkjB4BxP7RH6D{u7_uI|m3l4bRLW$_q|~JBAbdc^YbRhOaf;i^YGf z{G3Mb&EaxZ$g>8l`wgddVYaUzUA~SSly>1bv{_oil-4XaN~Z149Gl{hGd7;TBk~gt zn5s?jjO0LmQ*BXRhJ}#D_&4(NwCVU2oJ$c=3w9Xq0M2(A&5y%WiZ6I{*5)DEJnND-%j(A8 z^iu4&kxbGb);zraIdl;SoU!w(;wr*!VJLz^Uy>BVFq+n^dq_riLTo*uUTg7xGaeojLcLc&55Jn1pNa#;2IY|j2mBq+m+;`B8S$$J4OIY%jb+`y_UgPcqb{g2=;~kj9W+@#(jm0in9v~{W_&+mzah))9W8M; ze8J-0Mi@$Jz&Kh%lyD&$PBS(wtdC&|`SV6_Eon0+?66^zxDg#LkcYrA`1j}ixgkCs zGPvOO!~uipN`zA1{BH(9pc733ZmvX!i3xcxvzxSp@Q8W`SqEg^z4I$D`VZRwTh~9@ zS_L6eYu`;(u|7tACnZJI3Vjn4jqhIw0pm&(60n)F=o~@aO={A!6#+R$ix$8YS3CYU z-D?qx1MZ`d0V-OXPVWL6lq?H7c#hhCS|E)2Z1Eq~UH?Gcg}EJr@(tSR>@$Ey9)4l7 zCw3#4{{z#;OmO|M6Z&wh|9|BFf?P z_mbES_qqCedry>V5-bsWRL+!_XENC0EMW!VNy{n5L#IX1K36OvgI*l4=DUghC%RPp zAa3HnEmX-Mt$(^nZX56FA08Y-!MMb^gJb%Bp*doMN0Taf-?RlbENrEF+299FNfh8f z@_^k~23)n7f!BjyJ6r3xgI7H=1-)C+tDY$ z^;;V84&D?tke&Esn`+Ukc(cBxSH)Bo{-+@S|Ab+I>!e?KqTg~&$0h90+9`Frecr49 z6{cJ9W8#}B@aP?WkX^Hre#%qnpz4mt zfd(q|e*W_i3bFM4$j4c(7MUm(5-K`cRnu~i5)Fjjif}x}`@0W% zuq(Q7`GVEW6A#3H;l+(gofL$>DXg2dw0V{^v|jW4l41VtR*OZ^mFn%v-=tcJc68zL zZ-4v)SivD2Fwsdh9F&b65kd7|VN%0^+sD$uaekml^=m+dlD!KUMu4#eGS z=)hq*xN4A=2Ch5{Qr{GP?bD>d+r87*Z(-?sauYs67NZc$i>b0VfZh@Lvue5-p+uZb@r}rg7t&zlK&fZ z=o{bvpvSKXMJcgsnD?pWAi>O-_fbCa+yIUCi3^5yYF}w3A_)HIw^O~lnax;z=1$tz z{wLnR`Wst#iV{@p<*Lx)gNGA2I7Wx8Pq_Y*%BEC-I*gV*u}45{#fWNc#zygP80R*$ zDa$Jv>82T^LkbG;ZSMbV8QEyzZ{crJdxecFp4Jb^`@isx;V|PqRRT5=i9;aSF8t@i zH^1U|ktHC3d&Jgla(4m{PNsF!Y)fX4Trc8>#5l0MvL2EPf8ibd2N7+k)M*20c)%^) z!W#Eh*9$AV=1-jee6UbNM;*TUhL8I!0H%8COT^~Gh*xhKU&@= zB_&+iPz&S!bV@RQ@CFgklp1(eP zsO5M5r0Mi*nE1eh2{GY=g)1=w)8hZbtvo>}Q~ECuA8y8$_pcd2paod4d={zQanV3L zV1CWRe(`%OnPW|tkHtLI8v_@z|0woL6PLisJmw|D+gC_|J|wt$i0gpI0`G1%Qi|UH zXaYBca<6?fwuB6M&#V8yeHZLg#e0A)YkDqGluxTFh2a6^qOVi6uneCqJw568WE}n5 zOUU~_W%b`(D1({^{(L2nG+dwmSq(xjgVL??39wI?w+C%%aC@2H2koQojt=Z!9~cS| zLZz~Yfu=_aS+wRcZ!tGY^~O|bZuAKoRh=O|6}$4e^F}w%|KQmkEnIo2nPZTr=jP;kuKJ51%@1G;K)$}l%n@<9S3s2?O?{z@Iv#P;=RF=CUJXO4P$<;qyxUyPJ0Uv@8? z|GT9>3tME}+MFRf@TyJbM^nDze^&iGBJ&&uWZ#L_Ed<$Q)_)_?F%S8KnsK1l-GBJ_ zslWk2KMAf2$)u*tvP|aCrBU`ycVtXb^{iPwDhhe@904UQ;N}Lb(3<_)`C&g9*H%TP9w( z5srUjqf7rD7=R4UFw#2GcMO+`4-QC%ddrX#GYQyFFN%_wf_ndpRJ5sbdn2Sk08IQW z```RljXpqye|rA}E8obaT8o53 z?e-bq;J(h--_$V1Pp_tWdNv#ze$I^MfO51D$p}oR_^y!{ro|K++ubsvmhWt^TFPY?)Hlh+<<%g+jfLe`DqfF!N9D>qL!${~t7kxd;FN literal 0 HcmV?d00001 diff --git a/media/banner_narrow.png b/media/banner_narrow.png new file mode 100644 index 0000000000000000000000000000000000000000..47118dbad555746389e4a4d8796b0e37f6a03069 GIT binary patch literal 431121 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μ-4Ga9sAIA5}peAP|#N-t)77) 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