From c4d71df4b1f8a3f87652e63323753d40733eca03 Mon Sep 17 00:00:00 2001 From: OMGeeky Date: Sun, 31 Dec 2023 14:06:31 +0100 Subject: [PATCH 01/20] Create a packaging script This should create the zip file to distribute it --- .gitignore | 4 +++ packaging/Manifest.txt | 2 ++ packaging/common/ATCS.cmd | 18 +++++++++++ packaging/common/ATCS.env | 4 +++ packaging/common/ATCS.ico | Bin 0 -> 24838 bytes packaging/common/ATCS.sh | 21 ++++++++++++ packaging/package.sh | 65 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 114 insertions(+) create mode 100644 packaging/Manifest.txt create mode 100644 packaging/common/ATCS.cmd create mode 100644 packaging/common/ATCS.env create mode 100644 packaging/common/ATCS.ico create mode 100755 packaging/common/ATCS.sh create mode 100755 packaging/package.sh diff --git a/.gitignore b/.gitignore index a5e85c3..bd27516 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ /ATCS_v*.jar /Project /bin +/packaging/tmp/ +packaging/common/lib +packaging/common/ATCS.jar +packaging/ATCS_*.zip diff --git a/packaging/Manifest.txt b/packaging/Manifest.txt new file mode 100644 index 0000000..31c84bc --- /dev/null +++ b/packaging/Manifest.txt @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 +Main-Class: com.gpl.rpg.atcontentstudio.ATContentStudio diff --git a/packaging/common/ATCS.cmd b/packaging/common/ATCS.cmd new file mode 100644 index 0000000..2974600 --- /dev/null +++ b/packaging/common/ATCS.cmd @@ -0,0 +1,18 @@ +@echo off + +set "ATCS_DIR=%~dp0" +set "MAX_MEM=512M" +set "JAVA=javaw.exe" +set "JAVA_OPTS=-DFONT_SCALE=1.0 -Dswing.aatext=true" +set "ENV_FILE=%ATCS_DIR%ATCS.env.bat" + +if exist "%ENV_FILE%" ( + call "%ENV_FILE%" +) else ( + echo REM set "MAX_MEM=%MAX_MEM%">"%ENV_FILE%" + echo REM set "JAVA=%JAVA%">>"%ENV_FILE%" + echo REM set "JAVA_OPTS=%JAVA_OPTS%">>"%ENV_FILE%" + echo.>>"%ENV_FILE%" +) + +start "" "%JAVA%" %JAVA_OPTS% -Xmx%MAX_MEM% -jar "%ATCS_DIR%\ATCS.jar" diff --git a/packaging/common/ATCS.env b/packaging/common/ATCS.env new file mode 100644 index 0000000..b8b1645 --- /dev/null +++ b/packaging/common/ATCS.env @@ -0,0 +1,4 @@ +#MAX_MEM=512M +#JAVA=java +#JAVA_OPTS=-DFONT_SCALE=1.0 -Dswing.aatext=true + diff --git a/packaging/common/ATCS.ico b/packaging/common/ATCS.ico new file mode 100644 index 0000000000000000000000000000000000000000..4f829e49623b7852a4f653edeaf527b454222574 GIT binary patch literal 24838 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 Kn@PX7(f=Qa>j9Pk literal 0 HcmV?d00001 diff --git a/packaging/common/ATCS.sh b/packaging/common/ATCS.sh new file mode 100755 index 0000000..41d78b2 --- /dev/null +++ b/packaging/common/ATCS.sh @@ -0,0 +1,21 @@ +#!/bin/bash +ATCS_DIR=$(dirname $(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")) + +MAX_MEM=512M + +JAVA=java +JAVA_OPTS='-DFONT_SCALE=1.0 -Dswing.aatext=true' +ENV_FILE=${ATCS_DIR}/ATCS.env + +if [ -f ${ENV_FILE} ]; then + source ${ENV_FILE} +else + echo "#MAX_MEM=${MAX_MEM}" >${ENV_FILE} + echo "#JAVA=${JAVA}" >>${ENV_FILE} + echo "#JAVA_OPTS=${JAVA_OPTS}" >>${ENV_FILE} + echo "" >>${ENV_FILE} +fi + +export ENV_FILE + +$JAVA ${JAVA_OPTS} -Xmx${MAX_MEM} -jar ${ATCS_DIR}/ATCS.jar diff --git a/packaging/package.sh b/packaging/package.sh new file mode 100755 index 0000000..6548134 --- /dev/null +++ b/packaging/package.sh @@ -0,0 +1,65 @@ +#read the folder this script should be in (should be the packaging folder inside the ATCS source) +PACKAGING_DIR=$(dirname $(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")) +ATCS_SOURCE_DIR=$(dirname "${PACKAGING_DIR}") +TEMP_DIR=${PACKAGING_DIR}/tmp +echo "Packaging dir: ${PACKAGING_DIR}" +echo "ATCS_SOURCE_DIR: ${ATCS_SOURCE_DIR}" +#ATContentStudio +JAR_LOCATION="${PACKAGING_DIR}/common/ATCS.jar" +MANIFEST_LOCATION=${PACKAGING_DIR}/Manifest.txt +echo "" + +echo "Getting version" +VERSION=$(cat ${PACKAGING_DIR}/ATCS_latest) +echo "Got version ${VERSION}" + +echo "Removing tmp folder" +rm -rf ${PACKAGING_DIR}/tmp/ +echo "recreating tmp folder" +mkdir ${PACKAGING_DIR}/tmp/ +#ATCS_SOURCE_DIR="${PACKAGING_DIR}/.." +echo "" +#copy manifest to temp folder for editing +cp ${MANIFEST_LOCATION} ${TEMP_DIR} +MANIFEST_LOCATION=${TEMP_DIR}/Manifest.txt + +#copy lib files to packaged folder? +echo 'copying lib files' +mkdir ${PACKAGING_DIR}/common/lib/ +cp ${ATCS_SOURCE_DIR}/lib/* ${PACKAGING_DIR}/common/lib/ + +cd $ATCS_SOURCE_DIR +#set ClassPath variable to use in the building etc. +echo 'setting class path' +CP="lib/*:src:hacked-libtiled:siphash-zackehh/src/main/java" +echo "ClassPath: " +echo ${CP} +echo "" + +#set build the classes +echo 'building java classes' +#javac -cp $CP *.java +javac -cp $CP ${ATCS_SOURCE_DIR}/src/com/gpl/rpg/atcontentstudio/*.java -d ${TEMP_DIR} +echo "" +LIB_PATHS=$(find lib -name '*.jar' | paste -sd' ') +echo "LIB_PATHS: ${LIB_PATHS}" +# add all lib files to the class path in the temp Manifest +echo "Class-Path: . lib/* ${LIB_PATHS}" >>${MANIFEST_LOCATION} + +echo "" +echo "creating jar at location: ${JAR_LOCATION}" + +# create the jar file +# the command with those parameters requires this format: +# jar vmfc +# the things to add always use the whole relative path from the current dir, +# so when that is not wanted, the -C thing will change to that dir +jar mfc ${MANIFEST_LOCATION} ${JAR_LOCATION} -C ${PACKAGING_DIR}/tmp/ com/gpl/rpg/atcontentstudio/ -C res . -C ${ATCS_SOURCE_DIR}/src . +#-C ${ATCS_SOURCE_DIR} lib - + +echo '' +echo "Done creating jar" +cd ${PACKAGING_DIR} +echo "Creating zip" +tar caf "ATCS_${VERSION}.zip" "common" +echo "Created zip at ${PACKAGING_DIR}/ATCS_${VERSION}.zip" From ecc9a35c69a426cc9ec73fdb822689157f935003 Mon Sep 17 00:00:00 2001 From: OMGeeky <39029799+OMGeeky@users.noreply.github.com> Date: Mon, 1 Jan 2024 10:47:50 -0800 Subject: [PATCH 02/20] Allow it to be ran on windows (via Git-Bash) --- packaging/package-windows.sh | 1 + packaging/package.sh | 33 ++++++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 packaging/package-windows.sh diff --git a/packaging/package-windows.sh b/packaging/package-windows.sh new file mode 100644 index 0000000..49f3808 --- /dev/null +++ b/packaging/package-windows.sh @@ -0,0 +1 @@ +sh ./package.sh -windows diff --git a/packaging/package.sh b/packaging/package.sh index 6548134..6c1c921 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -1,3 +1,12 @@ +#windows or linux +if [ "$1" = "-windows" ] ; then + echo "Got '-windows' flag. Running Windows version" + LINUX=false +else + echo "No '-windows' flag. Running linux version" + LINUX=true +fi + #read the folder this script should be in (should be the packaging folder inside the ATCS source) PACKAGING_DIR=$(dirname $(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")) ATCS_SOURCE_DIR=$(dirname "${PACKAGING_DIR}") @@ -25,13 +34,18 @@ MANIFEST_LOCATION=${TEMP_DIR}/Manifest.txt #copy lib files to packaged folder? echo 'copying lib files' -mkdir ${PACKAGING_DIR}/common/lib/ +mkdir -p ${PACKAGING_DIR}/common/lib/ cp ${ATCS_SOURCE_DIR}/lib/* ${PACKAGING_DIR}/common/lib/ cd $ATCS_SOURCE_DIR #set ClassPath variable to use in the building etc. echo 'setting class path' -CP="lib/*:src:hacked-libtiled:siphash-zackehh/src/main/java" +#linux needs a : as seperator while windows needs ; +if [ "$LINUX" = true ] ; then + CP="lib/*:src:hacked-libtiled:siphash-zackehh/src/main/java" +else + CP="lib/*;src;hacked-libtiled;siphash-zackehh/src/main/java" +fi echo "ClassPath: " echo ${CP} echo "" @@ -40,6 +54,7 @@ echo "" echo 'building java classes' #javac -cp $CP *.java javac -cp $CP ${ATCS_SOURCE_DIR}/src/com/gpl/rpg/atcontentstudio/*.java -d ${TEMP_DIR} +echo javac -cp $CP ${ATCS_SOURCE_DIR}/src/com/gpl/rpg/atcontentstudio/*.java -d ${TEMP_DIR} echo "" LIB_PATHS=$(find lib -name '*.jar' | paste -sd' ') echo "LIB_PATHS: ${LIB_PATHS}" @@ -55,11 +70,15 @@ echo "creating jar at location: ${JAR_LOCATION}" # the things to add always use the whole relative path from the current dir, # so when that is not wanted, the -C thing will change to that dir jar mfc ${MANIFEST_LOCATION} ${JAR_LOCATION} -C ${PACKAGING_DIR}/tmp/ com/gpl/rpg/atcontentstudio/ -C res . -C ${ATCS_SOURCE_DIR}/src . -#-C ${ATCS_SOURCE_DIR} lib - echo '' echo "Done creating jar" -cd ${PACKAGING_DIR} -echo "Creating zip" -tar caf "ATCS_${VERSION}.zip" "common" -echo "Created zip at ${PACKAGING_DIR}/ATCS_${VERSION}.zip" + +if [ "$LINUX" = true ] ; then + cd ${PACKAGING_DIR} + echo "Creating archive" + tar caf "ATCS_${VERSION}.tar.gz" "common" + echo "Created archive at ${PACKAGING_DIR}/ATCS_${VERSION}.tar.gz" +else + echo "Can't create zip files on windows yet. Please pack the content of the '${PACKAGING_DIR}/common/' folder yourself +fi From 4571bea4297ad1b85e08832ce9b75c963e491106 Mon Sep 17 00:00:00 2001 From: OMGeeky Date: Tue, 9 Jan 2024 00:18:36 +0100 Subject: [PATCH 03/20] fix missing " --- packaging/package.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index 6c1c921..46a38e7 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -80,5 +80,5 @@ if [ "$LINUX" = true ] ; then tar caf "ATCS_${VERSION}.tar.gz" "common" echo "Created archive at ${PACKAGING_DIR}/ATCS_${VERSION}.tar.gz" else - echo "Can't create zip files on windows yet. Please pack the content of the '${PACKAGING_DIR}/common/' folder yourself -fi + echo "Can't create zip files on windows yet. Please pack the content of the '${PACKAGING_DIR}/common/' folder yourself" +fi From 4d03c15e089a6e0ee7c1d1d45cc6838bc9c28e08 Mon Sep 17 00:00:00 2001 From: OMGeeky <39029799+OMGeeky@users.noreply.github.com> Date: Thu, 8 Feb 2024 18:38:11 +0000 Subject: [PATCH 04/20] Improve some error messages --- .../model/gamedata/ActorCondition.java | 5 +++++ .../atcontentstudio/model/gamedata/JSONElement.java | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java index b721ed4..ce29cf5 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java @@ -236,7 +236,12 @@ public class ActorCondition extends JSONElement { if (this.icon_id != null) { String spritesheetId = this.icon_id.split(":")[0]; if (getProject().getSpritesheet(spritesheetId) == null) { + System.out.println("Actor Condition"); System.out.println(this.id); + System.out.println("failed to load spritesheet"); + System.out.println(spritesheetId); + System.out.println("while creating backling for icon_id"); + System.out.println(this.icon_id); } getProject().getSpritesheet(spritesheetId).addBacklink(this); } diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/JSONElement.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/JSONElement.java index 6a6359f..3910742 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/JSONElement.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/JSONElement.java @@ -39,14 +39,15 @@ public abstract class JSONElement extends GameDataElement { Map jsonObj = (Map)obj; String id = (String) jsonObj.get("id"); try { - if (id != null && id.equals(this.id )) { - this.parse(jsonObj); - this.state = State.parsed; - break; - } + if (id != null && id.equals(this.id )) { + this.parse(jsonObj); + this.state = State.parsed; + break; + } } catch(Exception e){ System.out.println("Error in ID: " + id); + System.out.println(e.getMessage()); } } } catch (FileNotFoundException e) { From a00b8fbc6612d12f0833c6c584634ae8b3a1b65f Mon Sep 17 00:00:00 2001 From: OMGeeky Date: Sun, 16 Jun 2024 17:00:32 +0200 Subject: [PATCH 05/20] fix typo --- .../rpg/atcontentstudio/model/gamedata/ActorCondition.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java index ce29cf5..3e40d14 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java @@ -238,9 +238,9 @@ public class ActorCondition extends JSONElement { if (getProject().getSpritesheet(spritesheetId) == null) { System.out.println("Actor Condition"); System.out.println(this.id); - System.out.println("failed to load spritesheet"); + System.out.println("failed to load spritesheet:"); System.out.println(spritesheetId); - System.out.println("while creating backling for icon_id"); + System.out.println("while creating backlink for icon_id:"); System.out.println(this.icon_id); } getProject().getSpritesheet(spritesheetId).addBacklink(this); From ae3ca5d50a97e648decbfdaa408854dee6863e7e Mon Sep 17 00:00:00 2001 From: OMGeeky Date: Sun, 16 Jun 2024 17:17:07 +0200 Subject: [PATCH 06/20] fix typo & improve path safety (space in path should now be allowed) --- packaging/package.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index 46a38e7..ef51836 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -8,7 +8,7 @@ else fi #read the folder this script should be in (should be the packaging folder inside the ATCS source) -PACKAGING_DIR=$(dirname $(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")) +PACKAGING_DIR=$(dirname "$(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")") ATCS_SOURCE_DIR=$(dirname "${PACKAGING_DIR}") TEMP_DIR=${PACKAGING_DIR}/tmp echo "Packaging dir: ${PACKAGING_DIR}" @@ -19,63 +19,63 @@ MANIFEST_LOCATION=${PACKAGING_DIR}/Manifest.txt echo "" echo "Getting version" -VERSION=$(cat ${PACKAGING_DIR}/ATCS_latest) +VERSION=$(cat "${PACKAGING_DIR}"/ATCS_latest) echo "Got version ${VERSION}" echo "Removing tmp folder" -rm -rf ${PACKAGING_DIR}/tmp/ +rm -rf "${PACKAGING_DIR}"/tmp/ echo "recreating tmp folder" -mkdir ${PACKAGING_DIR}/tmp/ +mkdir "${PACKAGING_DIR}"/tmp/ #ATCS_SOURCE_DIR="${PACKAGING_DIR}/.." echo "" #copy manifest to temp folder for editing -cp ${MANIFEST_LOCATION} ${TEMP_DIR} +cp "${MANIFEST_LOCATION}" "${TEMP_DIR}" MANIFEST_LOCATION=${TEMP_DIR}/Manifest.txt #copy lib files to packaged folder? echo 'copying lib files' -mkdir -p ${PACKAGING_DIR}/common/lib/ -cp ${ATCS_SOURCE_DIR}/lib/* ${PACKAGING_DIR}/common/lib/ +mkdir -p "${PACKAGING_DIR}"/common/lib/ +cp "${ATCS_SOURCE_DIR}"/lib/* "${PACKAGING_DIR}"/common/lib/ -cd $ATCS_SOURCE_DIR +cd "$ATCS_SOURCE_DIR" || exit #set ClassPath variable to use in the building etc. echo 'setting class path' -#linux needs a : as seperator while windows needs ; +#linux needs a : as separator while windows needs ; if [ "$LINUX" = true ] ; then CP="lib/*:src:hacked-libtiled:siphash-zackehh/src/main/java" else CP="lib/*;src;hacked-libtiled;siphash-zackehh/src/main/java" fi echo "ClassPath: " -echo ${CP} +echo "${CP}" echo "" #set build the classes echo 'building java classes' #javac -cp $CP *.java -javac -cp $CP ${ATCS_SOURCE_DIR}/src/com/gpl/rpg/atcontentstudio/*.java -d ${TEMP_DIR} -echo javac -cp $CP ${ATCS_SOURCE_DIR}/src/com/gpl/rpg/atcontentstudio/*.java -d ${TEMP_DIR} +javac -cp "$CP" "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/*.java -d "${TEMP_DIR}" +echo javac -cp "$CP" "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/*.java -d "${TEMP_DIR}" echo "" LIB_PATHS=$(find lib -name '*.jar' | paste -sd' ') echo "LIB_PATHS: ${LIB_PATHS}" # add all lib files to the class path in the temp Manifest -echo "Class-Path: . lib/* ${LIB_PATHS}" >>${MANIFEST_LOCATION} +echo "Class-Path: . lib/* ${LIB_PATHS}" >>"${MANIFEST_LOCATION}" echo "" echo "creating jar at location: ${JAR_LOCATION}" # create the jar file # the command with those parameters requires this format: -# jar vmfc +# jar mfc # the things to add always use the whole relative path from the current dir, # so when that is not wanted, the -C thing will change to that dir -jar mfc ${MANIFEST_LOCATION} ${JAR_LOCATION} -C ${PACKAGING_DIR}/tmp/ com/gpl/rpg/atcontentstudio/ -C res . -C ${ATCS_SOURCE_DIR}/src . +jar mfc "${MANIFEST_LOCATION}" "${JAR_LOCATION}" -C "${PACKAGING_DIR}"/tmp/ com/gpl/rpg/atcontentstudio/ -C res . -C "${ATCS_SOURCE_DIR}"/src . echo '' echo "Done creating jar" if [ "$LINUX" = true ] ; then - cd ${PACKAGING_DIR} + cd "${PACKAGING_DIR}" || exit echo "Creating archive" tar caf "ATCS_${VERSION}.tar.gz" "common" echo "Created archive at ${PACKAGING_DIR}/ATCS_${VERSION}.tar.gz" From c98f51744be4c81735a658f4b54670e486e6b09f Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Fri, 14 Feb 2025 20:04:44 +0100 Subject: [PATCH 07/20] Add initial project configuration files and setup for ATContentStudio --- .idea/.gitignore | 8 ++ .idea/artifacts/ATContentStudio_jar.xml | 19 ++++ .idea/misc.xml | 4 + .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 ++ ATContentStudio.iml | 117 ++++++++++++++++++++++++ src/META-INF/MANIFEST.MF | 6 ++ 7 files changed, 168 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/artifacts/ATContentStudio_jar.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 ATContentStudio.iml create mode 100644 src/META-INF/MANIFEST.MF diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/artifacts/ATContentStudio_jar.xml b/.idea/artifacts/ATContentStudio_jar.xml new file mode 100644 index 0000000..7b8152d --- /dev/null +++ b/.idea/artifacts/ATContentStudio_jar.xml @@ -0,0 +1,19 @@ + + + $PROJECT_DIR$/out/artifacts/ATContentStudio_jar + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f37474b --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7e729c5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ATContentStudio.iml b/ATContentStudio.iml new file mode 100644 index 0000000..951cf5c --- /dev/null +++ b/ATContentStudio.iml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9a4ed97 --- /dev/null +++ b/src/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Main-Class: com.gpl.rpg.atcontentstudio.ATContentStudio +Class-Path: jide-oss.jar jsoup-1.10.2.jar ui.jar junit-4.10.jar AndorsTr + ainer_v0.1.5.jar prefuse.jar rsyntaxtextarea.jar bsh-2.0b4.jar json_sim + ple-1.1.jar + From 5cdb42ae07271637a814daf296be609408e91353 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Fri, 14 Feb 2025 20:30:57 +0100 Subject: [PATCH 08/20] clean up script --- packaging/package.sh | 151 ++++++++++++++++++++++++++----------------- 1 file changed, 93 insertions(+), 58 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index ef51836..ad09177 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -1,84 +1,119 @@ -#windows or linux -if [ "$1" = "-windows" ] ; then +#!/bin/bash + +# Script to build ATContentStudio.jar, replicating IntelliJ artifact definition +# Linux and Windows compatible + +# --- Platform Detection --- +if [ "$1" = "-windows" ]; then echo "Got '-windows' flag. Running Windows version" - LINUX=false + PLATFORM="WINDOWS" + PATH_SEPARATOR=";" # Windows classpath separator else - echo "No '-windows' flag. Running linux version" - LINUX=true + echo "No '-windows' flag. Running Linux version" + PLATFORM="LINUX" + PATH_SEPARATOR=":" # Linux classpath separator fi -#read the folder this script should be in (should be the packaging folder inside the ATCS source) +# --- Configuration --- PACKAGING_DIR=$(dirname "$(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")") ATCS_SOURCE_DIR=$(dirname "${PACKAGING_DIR}") -TEMP_DIR=${PACKAGING_DIR}/tmp -echo "Packaging dir: ${PACKAGING_DIR}" -echo "ATCS_SOURCE_DIR: ${ATCS_SOURCE_DIR}" -#ATContentStudio -JAR_LOCATION="${PACKAGING_DIR}/common/ATCS.jar" -MANIFEST_LOCATION=${PACKAGING_DIR}/Manifest.txt -echo "" +TEMP_DIR="${PACKAGING_DIR}/tmp" +JAR_LOCATION="${PACKAGING_DIR}/common/ATCS.jar" # Output JAR location as per script +MANIFEST_LOCATION="${PACKAGING_DIR}/Manifest.txt" +VERSION_FILE="${PACKAGING_DIR}/ATCS_latest" +SOURCE_BASE_DIR="${ATCS_SOURCE_DIR}/src" # Base directory for source code +LIB_BASE_DIR="${ATCS_SOURCE_DIR}/lib" # Base directory for libraries - ASSUMPTION: Libraries are in project root 'lib' +OUTPUT_JAR_DIR="${PACKAGING_DIR}/common" # Directory where the final JAR will be placed - as per script +# --- Libraries to include (from IntelliJ artifact definition) --- +LIBRARIES=( + "AndorsTrainer_v0.1.5.jar" + "bsh-2.0b4.jar" + "jide-oss.jar" + "json_simple-1.1.jar" + "jsoup-1.10.2.jar" + "junit-4.10.jar" + "prefuse.jar" + "rsyntaxtextarea.jar" + "ui.jar" +) + +# --- Get version --- echo "Getting version" -VERSION=$(cat "${PACKAGING_DIR}"/ATCS_latest) +VERSION=$(cat "${VERSION_FILE}") echo "Got version ${VERSION}" +# --- Prepare temporary directory --- echo "Removing tmp folder" -rm -rf "${PACKAGING_DIR}"/tmp/ -echo "recreating tmp folder" -mkdir "${PACKAGING_DIR}"/tmp/ -#ATCS_SOURCE_DIR="${PACKAGING_DIR}/.." -echo "" -#copy manifest to temp folder for editing +rm -rf "${TEMP_DIR}" +echo "Recreating tmp folder" +mkdir -p "${TEMP_DIR}/com/gpl/rpg/atcontentstudio" # create package structure in temp dir +mkdir -p "${TEMP_DIR}/lib" + +# --- Copy manifest to temp folder for editing --- +echo "Copying manifest to temp folder" cp "${MANIFEST_LOCATION}" "${TEMP_DIR}" -MANIFEST_LOCATION=${TEMP_DIR}/Manifest.txt +MANIFEST_LOCATION="${TEMP_DIR}/Manifest.txt" # Update MANIFEST_LOCATION to the temp one -#copy lib files to packaged folder? -echo 'copying lib files' -mkdir -p "${PACKAGING_DIR}"/common/lib/ -cp "${ATCS_SOURCE_DIR}"/lib/* "${PACKAGING_DIR}"/common/lib/ +# --- Copy lib files --- +echo 'Copying lib files' +mkdir -p "${TEMP_DIR}/lib/" # Ensure lib dir exists in temp +for LIB in "${LIBRARIES[@]}"; do + echo "Copying library: ${LIB}" + cp "${LIB_BASE_DIR}/${LIB}" "${TEMP_DIR}/lib/" +done -cd "$ATCS_SOURCE_DIR" || exit -#set ClassPath variable to use in the building etc. -echo 'setting class path' -#linux needs a : as separator while windows needs ; -if [ "$LINUX" = true ] ; then - CP="lib/*:src:hacked-libtiled:siphash-zackehh/src/main/java" -else - CP="lib/*;src;hacked-libtiled;siphash-zackehh/src/main/java" +# --- Set ClassPath --- +echo 'Setting class path' +CP="lib/*${PATH_SEPARATOR}${SOURCE_BASE_DIR}" # Platform-dependent classpath separator +echo "ClassPath: ${CP}" +echo "" + +# --- Build Java classes --- +echo 'Building java classes' +#echo javac -cp "$CP" -sourcepath "${SOURCE_BASE_DIR}" "${SOURCE_BASE_DIR}/com/gpl/rpg/atcontentstudio/*.java" -d "${TEMP_DIR}" +javac -cp "$CP" -sourcepath "${SOURCE_BASE_DIR}" -d "${TEMP_DIR}" + +if [ $? -ne 0 ]; then + echo "Compilation failed. Please check errors above." + exit 1 fi -echo "ClassPath: " -echo "${CP}" -echo "" -#set build the classes -echo 'building java classes' -#javac -cp $CP *.java -javac -cp "$CP" "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/*.java -d "${TEMP_DIR}" -echo javac -cp "$CP" "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/*.java -d "${TEMP_DIR}" -echo "" -LIB_PATHS=$(find lib -name '*.jar' | paste -sd' ') +# --- Add Class-Path to Manifest --- +echo "Adding Class-Path to Manifest" +LIB_PATHS=$(find "${TEMP_DIR}/lib" -name '*.jar' | paste -sd' ') echo "LIB_PATHS: ${LIB_PATHS}" -# add all lib files to the class path in the temp Manifest -echo "Class-Path: . lib/* ${LIB_PATHS}" >>"${MANIFEST_LOCATION}" +echo "Class-Path: lib/* ${LIB_PATHS}" >>"${MANIFEST_LOCATION}" # Adjusted Class-Path to be relative to JAR +# --- Create JAR file --- echo "" -echo "creating jar at location: ${JAR_LOCATION}" +echo "Creating jar at location: ${JAR_LOCATION}" -# create the jar file -# the command with those parameters requires this format: -# jar mfc -# the things to add always use the whole relative path from the current dir, -# so when that is not wanted, the -C thing will change to that dir -jar mfc "${MANIFEST_LOCATION}" "${JAR_LOCATION}" -C "${PACKAGING_DIR}"/tmp/ com/gpl/rpg/atcontentstudio/ -C res . -C "${ATCS_SOURCE_DIR}"/src . +cd "${TEMP_DIR}" || exit # Change to temp dir for JAR command + +jar cfm "${OUTPUT_JAR_DIR}/ATCS.jar" "${MANIFEST_LOCATION}" -C . com/gpl/rpg/atcontentstudio/ lib + +if [ $? -ne 0 ]; then + echo "JAR creation failed." + exit 1 +fi + +cd "${PACKAGING_DIR}" || exit # Go back to packaging dir echo '' -echo "Done creating jar" +echo "Done creating jar at ${OUTPUT_JAR_DIR}/ATCS.jar" -if [ "$LINUX" = true ] ; then - cd "${PACKAGING_DIR}" || exit +cp "${OUTPUT_JAR_DIR}/ATCS.jar" "${OUTPUT_JAR_DIR}" + +# --- Create archive --- +if [ "$PLATFORM" = "LINUX" ]; then + cd "${OUTPUT_JAR_DIR}" || exit echo "Creating archive" - tar caf "ATCS_${VERSION}.tar.gz" "common" - echo "Created archive at ${PACKAGING_DIR}/ATCS_${VERSION}.tar.gz" + tar caf "ATCS_${VERSION}.tar.gz" "common" # archive the 'common' folder which now contains the JAR and libs + echo "Created archive at ${OUTPUT_JAR_DIR}/ATCS_${VERSION}.tar.gz" + cd "${PACKAGING_DIR}" || exit else - echo "Can't create zip files on windows yet. Please pack the content of the '${PACKAGING_DIR}/common/' folder yourself" + echo "Can't create zip files on windows yet. Please pack the content of the '${OUTPUT_JAR_DIR}/common/' folder yourself" fi + +echo "Script finished." From 00ec5fe49f682d8a046d398de7cc073a6f8ea4c8 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Fri, 14 Feb 2025 23:25:39 +0100 Subject: [PATCH 09/20] Update build script to include all Java files in the compilation process --- packaging/package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/package.sh b/packaging/package.sh index ad09177..b2f7cdd 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -72,7 +72,7 @@ echo "" # --- Build Java classes --- echo 'Building java classes' #echo javac -cp "$CP" -sourcepath "${SOURCE_BASE_DIR}" "${SOURCE_BASE_DIR}/com/gpl/rpg/atcontentstudio/*.java" -d "${TEMP_DIR}" -javac -cp "$CP" -sourcepath "${SOURCE_BASE_DIR}" -d "${TEMP_DIR}" +javac -cp "$CP" -sourcepath "${SOURCE_BASE_DIR}" -d "${TEMP_DIR}" "${SOURCE_BASE_DIR}"/com/gpl/rpg/atcontentstudio/**/*.java if [ $? -ne 0 ]; then echo "Compilation failed. Please check errors above." From 0cddbb04e9e36abe99e397dad3ba0029561d3da6 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Fri, 14 Feb 2025 23:44:39 +0100 Subject: [PATCH 10/20] Enhance build script to include additional source code folders for compilation --- packaging/package.sh | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index b2f7cdd..0681e53 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -1,7 +1,7 @@ #!/bin/bash # Script to build ATContentStudio.jar, replicating IntelliJ artifact definition -# Linux and Windows compatible +# Linux and Windows compatible - NO GRADLE - Includes extra source code folders # --- Platform Detection --- if [ "$1" = "-windows" ]; then @@ -21,10 +21,17 @@ TEMP_DIR="${PACKAGING_DIR}/tmp" JAR_LOCATION="${PACKAGING_DIR}/common/ATCS.jar" # Output JAR location as per script MANIFEST_LOCATION="${PACKAGING_DIR}/Manifest.txt" VERSION_FILE="${PACKAGING_DIR}/ATCS_latest" -SOURCE_BASE_DIR="${ATCS_SOURCE_DIR}/src" # Base directory for source code -LIB_BASE_DIR="${ATCS_SOURCE_DIR}/lib" # Base directory for libraries - ASSUMPTION: Libraries are in project root 'lib' +SOURCE_BASE_DIR="${ATCS_SOURCE_DIR}/src" # Base directory for standard source code +LIB_BASE_DIR="${ATCS_SOURCE_DIR}/lib" # Base directory for libraries OUTPUT_JAR_DIR="${PACKAGING_DIR}/common" # Directory where the final JAR will be placed - as per script +# --- **ADDITIONAL SOURCE CODE FOLDERS** --- +EXTRA_SOURCE_DIRS=( + "hacked-libtiled" + "minify" + "siphash-zackehh/src/main/java" +) + # --- Libraries to include (from IntelliJ artifact definition) --- LIBRARIES=( "AndorsTrainer_v0.1.5.jar" @@ -55,8 +62,8 @@ echo "Copying manifest to temp folder" cp "${MANIFEST_LOCATION}" "${TEMP_DIR}" MANIFEST_LOCATION="${TEMP_DIR}/Manifest.txt" # Update MANIFEST_LOCATION to the temp one -# --- Copy lib files --- -echo 'Copying lib files' +# --- Copy lib files from standard lib folder --- +echo 'Copying lib files from standard lib folder' mkdir -p "${TEMP_DIR}/lib/" # Ensure lib dir exists in temp for LIB in "${LIBRARIES[@]}"; do echo "Copying library: ${LIB}" @@ -66,13 +73,25 @@ done # --- Set ClassPath --- echo 'Setting class path' CP="lib/*${PATH_SEPARATOR}${SOURCE_BASE_DIR}" # Platform-dependent classpath separator + +# --- **Extend Class Path for Compilation** --- +SOURCE_PATH="" # Start with the standard source path +for EXTRA_SOURCE_DIR in "${EXTRA_SOURCE_DIRS[@]}"; do + SOURCE_PATH="${SOURCE_PATH}${PATH_SEPARATOR}${ATCS_SOURCE_DIR}/${EXTRA_SOURCE_DIR}" # Add extra source dirs +done +SOURCE_PATH="${SOURCE_PATH:${#PATH_SEPARATOR}}" # Remove first separator + +CP="${CP}${PATH_SEPARATOR}${SOURCE_PATH}" # Add source path to classpath (needed for some cases) + + echo "ClassPath: ${CP}" +echo "SourcePath: ${SOURCE_PATH}" echo "" # --- Build Java classes --- echo 'Building java classes' -#echo javac -cp "$CP" -sourcepath "${SOURCE_BASE_DIR}" "${SOURCE_BASE_DIR}/com/gpl/rpg/atcontentstudio/*.java" -d "${TEMP_DIR}" -javac -cp "$CP" -sourcepath "${SOURCE_BASE_DIR}" -d "${TEMP_DIR}" "${SOURCE_BASE_DIR}"/com/gpl/rpg/atcontentstudio/**/*.java +javac -cp "$CP" -sourcepath "${SOURCE_PATH}" -d "${TEMP_DIR}" "${SOURCE_BASE_DIR}"/com/gpl/rpg/**/*.java + if [ $? -ne 0 ]; then echo "Compilation failed. Please check errors above." From fce5cd71ff2ddc4fb5dd2fad8d519005ed936c4e Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Fri, 14 Feb 2025 23:49:00 +0100 Subject: [PATCH 11/20] Fix package script to construct source path and compile all Java files from specified directories --- packaging/package.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index 0681e53..f3558ac 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -1,7 +1,7 @@ #!/bin/bash # Script to build ATContentStudio.jar, replicating IntelliJ artifact definition -# Linux and Windows compatible - NO GRADLE - Includes extra source code folders +# Linux and Windows compatible - NO GRADLE - Includes extra source code folders - FIXED SUBDIRS # --- Platform Detection --- if [ "$1" = "-windows" ]; then @@ -74,15 +74,12 @@ done echo 'Setting class path' CP="lib/*${PATH_SEPARATOR}${SOURCE_BASE_DIR}" # Platform-dependent classpath separator -# --- **Extend Class Path for Compilation** --- -SOURCE_PATH="" # Start with the standard source path + +# --- **Construct Source Path for Compilation** --- +SOURCE_PATH="${SOURCE_BASE_DIR}" # Start with the standard source path for EXTRA_SOURCE_DIR in "${EXTRA_SOURCE_DIRS[@]}"; do SOURCE_PATH="${SOURCE_PATH}${PATH_SEPARATOR}${ATCS_SOURCE_DIR}/${EXTRA_SOURCE_DIR}" # Add extra source dirs done -SOURCE_PATH="${SOURCE_PATH:${#PATH_SEPARATOR}}" # Remove first separator - -CP="${CP}${PATH_SEPARATOR}${SOURCE_PATH}" # Add source path to classpath (needed for some cases) - echo "ClassPath: ${CP}" echo "SourcePath: ${SOURCE_PATH}" @@ -90,7 +87,12 @@ echo "" # --- Build Java classes --- echo 'Building java classes' -javac -cp "$CP" -sourcepath "${SOURCE_PATH}" -d "${TEMP_DIR}" "${SOURCE_BASE_DIR}"/com/gpl/rpg/**/*.java + +# Find all java files in source directories and compile them +SOURCE_FILES=$(find "${SOURCE_BASE_DIR}" "${ATCS_SOURCE_DIR}/hacked-libtiled" "${ATCS_SOURCE_DIR}/minify" "${ATCS_SOURCE_DIR}/siphash-zackehh/src/main/java" -name "*.java" -print) + +javac -cp "$CP" -sourcepath "${SOURCE_PATH}" -d "${TEMP_DIR}" $SOURCE_FILES +echo "javac -cp \"${CP}\" -sourcepath \"${SOURCE_PATH}\" -d \"${TEMP_DIR}\" $SOURCE_FILES" if [ $? -ne 0 ]; then From 8d01716d9392b4479d51b546c501a559be32b81c Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 00:09:21 +0100 Subject: [PATCH 12/20] Refactor package script to simplify JAR creation and archive process --- packaging/package.sh | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index f3558ac..29607bd 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -102,9 +102,7 @@ fi # --- Add Class-Path to Manifest --- echo "Adding Class-Path to Manifest" -LIB_PATHS=$(find "${TEMP_DIR}/lib" -name '*.jar' | paste -sd' ') -echo "LIB_PATHS: ${LIB_PATHS}" -echo "Class-Path: lib/* ${LIB_PATHS}" >>"${MANIFEST_LOCATION}" # Adjusted Class-Path to be relative to JAR +#echo "Class-Path: . lib/*" >>"${MANIFEST_LOCATION}" # Add standard lib path to manifest # --- Create JAR file --- echo "" @@ -112,7 +110,7 @@ echo "Creating jar at location: ${JAR_LOCATION}" cd "${TEMP_DIR}" || exit # Change to temp dir for JAR command -jar cfm "${OUTPUT_JAR_DIR}/ATCS.jar" "${MANIFEST_LOCATION}" -C . com/gpl/rpg/atcontentstudio/ lib +jar cfm "${OUTPUT_JAR_DIR}/ATCS.jar" "${MANIFEST_LOCATION}" -C . . if [ $? -ne 0 ]; then echo "JAR creation failed." @@ -124,13 +122,11 @@ cd "${PACKAGING_DIR}" || exit # Go back to packaging dir echo '' echo "Done creating jar at ${OUTPUT_JAR_DIR}/ATCS.jar" -cp "${OUTPUT_JAR_DIR}/ATCS.jar" "${OUTPUT_JAR_DIR}" - # --- Create archive --- if [ "$PLATFORM" = "LINUX" ]; then cd "${OUTPUT_JAR_DIR}" || exit echo "Creating archive" - tar caf "ATCS_${VERSION}.tar.gz" "common" # archive the 'common' folder which now contains the JAR and libs + tar caf "ATCS_${VERSION}.tar.gz" * # archive the 'common' folder which now contains the JAR and libs echo "Created archive at ${OUTPUT_JAR_DIR}/ATCS_${VERSION}.tar.gz" cd "${PACKAGING_DIR}" || exit else From 30bef443d5cda6b40caf8b6d5ca75d681dfcc793 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 00:28:16 +0100 Subject: [PATCH 13/20] Refactor package script to extract library files directly to TEMP_DIR and simplify classpath --- packaging/package.sh | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index 29607bd..285e2ed 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -1,7 +1,7 @@ #!/bin/bash -# Script to build ATContentStudio.jar, replicating IntelliJ artifact definition -# Linux and Windows compatible - NO GRADLE - Includes extra source code folders - FIXED SUBDIRS +# Script to build ATContentStudio.jar, replicating IntelliJ artifact definition (EXTRACT LIBS) +# Linux and Windows compatible - NO GRADLE - Includes extra source code folders - EXTRACT LIBS # --- Platform Detection --- if [ "$1" = "-windows" ]; then @@ -55,25 +55,23 @@ echo "Removing tmp folder" rm -rf "${TEMP_DIR}" echo "Recreating tmp folder" mkdir -p "${TEMP_DIR}/com/gpl/rpg/atcontentstudio" # create package structure in temp dir -mkdir -p "${TEMP_DIR}/lib" +# NO mkdir -p "${TEMP_DIR}/lib" - we are extracting to TEMP_DIR root now # --- Copy manifest to temp folder for editing --- echo "Copying manifest to temp folder" cp "${MANIFEST_LOCATION}" "${TEMP_DIR}" MANIFEST_LOCATION="${TEMP_DIR}/Manifest.txt" # Update MANIFEST_LOCATION to the temp one -# --- Copy lib files from standard lib folder --- -echo 'Copying lib files from standard lib folder' -mkdir -p "${TEMP_DIR}/lib/" # Ensure lib dir exists in temp +# --- **EXTRACT lib files directly to TEMP_DIR** --- +echo 'Extracting lib files to TEMP_DIR' for LIB in "${LIBRARIES[@]}"; do - echo "Copying library: ${LIB}" - cp "${LIB_BASE_DIR}/${LIB}" "${TEMP_DIR}/lib/" + echo "Extracting library: ${LIB}" + unzip -o "${LIB_BASE_DIR}/${LIB}" -d "${TEMP_DIR}" # Extract JAR contents to TEMP_DIR root done # --- Set ClassPath --- echo 'Setting class path' -CP="lib/*${PATH_SEPARATOR}${SOURCE_BASE_DIR}" # Platform-dependent classpath separator - +CP="${TEMP_DIR}${PATH_SEPARATOR}${SOURCE_BASE_DIR}" # Classpath is simplified - only source path needed for compilation # --- **Construct Source Path for Compilation** --- SOURCE_PATH="${SOURCE_BASE_DIR}" # Start with the standard source path @@ -100,9 +98,11 @@ if [ $? -ne 0 ]; then exit 1 fi -# --- Add Class-Path to Manifest --- -echo "Adding Class-Path to Manifest" -#echo "Class-Path: . lib/*" >>"${MANIFEST_LOCATION}" # Add standard lib path to manifest +# --- Copy res folder to temp folder --- +cp "${ATCS_SOURCE_DIR}"/res/* "${TEMP_DIR}/" +mkdir -p "${TEMP_DIR}/com/gpl/rpg/atcontentstudio/img" +cp -r "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/img/* "${TEMP_DIR}/com/gpl/rpg/atcontentstudio/img/" + # --- Create JAR file --- echo "" @@ -110,6 +110,7 @@ echo "Creating jar at location: ${JAR_LOCATION}" cd "${TEMP_DIR}" || exit # Change to temp dir for JAR command +# JAR command WITHOUT lib directory jar cfm "${OUTPUT_JAR_DIR}/ATCS.jar" "${MANIFEST_LOCATION}" -C . . if [ $? -ne 0 ]; then @@ -126,7 +127,7 @@ echo "Done creating jar at ${OUTPUT_JAR_DIR}/ATCS.jar" if [ "$PLATFORM" = "LINUX" ]; then cd "${OUTPUT_JAR_DIR}" || exit echo "Creating archive" - tar caf "ATCS_${VERSION}.tar.gz" * # archive the 'common' folder which now contains the JAR and libs + tar caf "ATCS_${VERSION}.tar.gz" ./* # archive the 'common' folder which now contains the JAR and libs echo "Created archive at ${OUTPUT_JAR_DIR}/ATCS_${VERSION}.tar.gz" cd "${PACKAGING_DIR}" || exit else From 01963517ba02503b375d726a5f74052b010ccae6 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 00:31:47 +0100 Subject: [PATCH 14/20] Update .gitignore to exclude ATCS_v*.tar.gz and old.sh files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index bd27516..94440a4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ packaging/common/lib packaging/common/ATCS.jar packaging/ATCS_*.zip +/packaging/common/ATCS_v*.tar.gz +/packaging/old.sh From 7965ecb4f13b94901d4a122a6a9e90e64ce4f238 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 01:11:51 +0100 Subject: [PATCH 15/20] Update ATContentStudio_jar.xml to replace library elements with extracted-dir elements for JAR files and modify misc.xml to set default project JDK --- .idea/artifacts/ATContentStudio_jar.xml | 17 ++++++++--------- .idea/misc.xml | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.idea/artifacts/ATContentStudio_jar.xml b/.idea/artifacts/ATContentStudio_jar.xml index 7b8152d..32836f9 100644 --- a/.idea/artifacts/ATContentStudio_jar.xml +++ b/.idea/artifacts/ATContentStudio_jar.xml @@ -4,16 +4,15 @@ + + + + + + + + - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index f37474b..59f6372 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file From 9097b97316d8eab565c3d693434b0d7d4902b61a Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 01:17:59 +0100 Subject: [PATCH 16/20] Disable XML validation and external DTD loading in TMXMapReader This is because of a weird error, that only happens, when the jar is built manually somehow... --- hacked-libtiled/tiled/io/TMXMapReader.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hacked-libtiled/tiled/io/TMXMapReader.java b/hacked-libtiled/tiled/io/TMXMapReader.java index 1e25783..242c007 100644 --- a/hacked-libtiled/tiled/io/TMXMapReader.java +++ b/hacked-libtiled/tiled/io/TMXMapReader.java @@ -821,6 +821,8 @@ public class TMXMapReader factory.setIgnoringComments(true); factory.setIgnoringElementContentWhitespace(true); factory.setExpandEntityReferences(false); + factory.setValidating(false); + factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); DocumentBuilder builder = factory.newDocumentBuilder(); builder.setEntityResolver(entityResolver); InputSource insrc = new InputSource(in); From 42f1c87278f6db86df21b2605d5b749a00d73818 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 01:47:11 +0100 Subject: [PATCH 17/20] re-enable XML validation in TMXMapReader and update package script to copy resources recursively --- hacked-libtiled/tiled/io/TMXMapReader.java | 2 -- packaging/package.sh | 8 +++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hacked-libtiled/tiled/io/TMXMapReader.java b/hacked-libtiled/tiled/io/TMXMapReader.java index 242c007..1e25783 100644 --- a/hacked-libtiled/tiled/io/TMXMapReader.java +++ b/hacked-libtiled/tiled/io/TMXMapReader.java @@ -821,8 +821,6 @@ public class TMXMapReader factory.setIgnoringComments(true); factory.setIgnoringElementContentWhitespace(true); factory.setExpandEntityReferences(false); - factory.setValidating(false); - factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); DocumentBuilder builder = factory.newDocumentBuilder(); builder.setEntityResolver(entityResolver); InputSource insrc = new InputSource(in); diff --git a/packaging/package.sh b/packaging/package.sh index 285e2ed..d68379e 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -98,10 +98,12 @@ if [ $? -ne 0 ]; then exit 1 fi -# --- Copy res folder to temp folder --- -cp "${ATCS_SOURCE_DIR}"/res/* "${TEMP_DIR}/" +# --- Copy res stuff to temp folder --- +cp -r "${ATCS_SOURCE_DIR}"/res/* "${TEMP_DIR}/" mkdir -p "${TEMP_DIR}/com/gpl/rpg/atcontentstudio/img" -cp -r "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/img/* "${TEMP_DIR}/com/gpl/rpg/atcontentstudio/img/" +mkdir -p "${TEMP_DIR}/tiled/io/resources/" +cp -r "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/img/* "${TEMP_DIR}/com/gpl/rpg/atcontentstudio/img/" # some icons +cp -r "${ATCS_SOURCE_DIR}"/hacked-libtiled/tiled/io/resources/* "${TEMP_DIR}/tiled/io/resources/" # dtd file for tmx maps # --- Create JAR file --- From b5aa453fd691da9ba23a319c4cd4ce29d5756c84 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 02:03:08 +0100 Subject: [PATCH 18/20] cleanup package.sh --- packaging/package.sh | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index d68379e..2e6129d 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -1,7 +1,7 @@ #!/bin/bash -# Script to build ATContentStudio.jar, replicating IntelliJ artifact definition (EXTRACT LIBS) -# Linux and Windows compatible - NO GRADLE - Includes extra source code folders - EXTRACT LIBS +# Script to build ATCS.jar, replicating IntelliJ artifact definition +# Linux and Windows compatible # --- Platform Detection --- if [ "$1" = "-windows" ]; then @@ -23,7 +23,7 @@ MANIFEST_LOCATION="${PACKAGING_DIR}/Manifest.txt" VERSION_FILE="${PACKAGING_DIR}/ATCS_latest" SOURCE_BASE_DIR="${ATCS_SOURCE_DIR}/src" # Base directory for standard source code LIB_BASE_DIR="${ATCS_SOURCE_DIR}/lib" # Base directory for libraries -OUTPUT_JAR_DIR="${PACKAGING_DIR}/common" # Directory where the final JAR will be placed - as per script +OUTPUT_JAR_DIR="${PACKAGING_DIR}" # Directory where the final JAR will be placed - as per script # --- **ADDITIONAL SOURCE CODE FOLDERS** --- EXTRA_SOURCE_DIRS=( @@ -66,7 +66,7 @@ MANIFEST_LOCATION="${TEMP_DIR}/Manifest.txt" # Update MANIFEST_LOCATION to the t echo 'Extracting lib files to TEMP_DIR' for LIB in "${LIBRARIES[@]}"; do echo "Extracting library: ${LIB}" - unzip -o "${LIB_BASE_DIR}/${LIB}" -d "${TEMP_DIR}" # Extract JAR contents to TEMP_DIR root + unzip -qo "${LIB_BASE_DIR}/${LIB}" -d "${TEMP_DIR}" # Extract JAR contents to TEMP_DIR root done # --- Set ClassPath --- @@ -90,9 +90,6 @@ echo 'Building java classes' SOURCE_FILES=$(find "${SOURCE_BASE_DIR}" "${ATCS_SOURCE_DIR}/hacked-libtiled" "${ATCS_SOURCE_DIR}/minify" "${ATCS_SOURCE_DIR}/siphash-zackehh/src/main/java" -name "*.java" -print) javac -cp "$CP" -sourcepath "${SOURCE_PATH}" -d "${TEMP_DIR}" $SOURCE_FILES -echo "javac -cp \"${CP}\" -sourcepath \"${SOURCE_PATH}\" -d \"${TEMP_DIR}\" $SOURCE_FILES" - - if [ $? -ne 0 ]; then echo "Compilation failed. Please check errors above." exit 1 @@ -114,7 +111,6 @@ cd "${TEMP_DIR}" || exit # Change to temp dir for JAR command # JAR command WITHOUT lib directory jar cfm "${OUTPUT_JAR_DIR}/ATCS.jar" "${MANIFEST_LOCATION}" -C . . - if [ $? -ne 0 ]; then echo "JAR creation failed." exit 1 @@ -124,12 +120,13 @@ cd "${PACKAGING_DIR}" || exit # Go back to packaging dir echo '' echo "Done creating jar at ${OUTPUT_JAR_DIR}/ATCS.jar" +cp -f "${OUTPUT_JAR_DIR}/ATCS.jar" "${OUTPUT_JAR_DIR}/common/ATCS.jar" # Copy JAR to versioned name # --- Create archive --- if [ "$PLATFORM" = "LINUX" ]; then cd "${OUTPUT_JAR_DIR}" || exit echo "Creating archive" - tar caf "ATCS_${VERSION}.tar.gz" ./* # archive the 'common' folder which now contains the JAR and libs + tar caf "ATCS_${VERSION}.tar.gz" common/* # archive the 'common' folder which now contains the JAR and libs echo "Created archive at ${OUTPUT_JAR_DIR}/ATCS_${VERSION}.tar.gz" cd "${PACKAGING_DIR}" || exit else From 4fa2409c2438f964c233d94a71821807116f19ac Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 02:03:22 +0100 Subject: [PATCH 19/20] Update .gitignore to include /out and ATCS.jar, and adjust patterns for ATCS_v*.tar.gz --- .gitignore | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 94440a4..dec5c1a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,9 @@ /Project /bin /packaging/tmp/ +/out packaging/common/lib packaging/common/ATCS.jar packaging/ATCS_*.zip -/packaging/common/ATCS_v*.tar.gz -/packaging/old.sh +ATCS_v*.tar.gz +ATCS.jar From e60378ab64e5efcea12b173f532bd57a377228f4 Mon Sep 17 00:00:00 2001 From: OMGeeky <> Date: Sat, 15 Feb 2025 16:03:36 +0100 Subject: [PATCH 20/20] Refactor package.sh to simplify JAR creation and improve directory structure --- packaging/package.sh | 41 ++++++++++++----------------------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/packaging/package.sh b/packaging/package.sh index 2e6129d..94fe1f1 100755 --- a/packaging/package.sh +++ b/packaging/package.sh @@ -7,18 +7,16 @@ if [ "$1" = "-windows" ]; then echo "Got '-windows' flag. Running Windows version" PLATFORM="WINDOWS" - PATH_SEPARATOR=";" # Windows classpath separator else echo "No '-windows' flag. Running Linux version" PLATFORM="LINUX" - PATH_SEPARATOR=":" # Linux classpath separator fi # --- Configuration --- PACKAGING_DIR=$(dirname "$(readlink -f "$0" || greadlink -f "$0" || stat -f "$0")") ATCS_SOURCE_DIR=$(dirname "${PACKAGING_DIR}") TEMP_DIR="${PACKAGING_DIR}/tmp" -JAR_LOCATION="${PACKAGING_DIR}/common/ATCS.jar" # Output JAR location as per script +JAR_LOCATION="${PACKAGING_DIR}/ATCS.jar" # Output JAR location as per script MANIFEST_LOCATION="${PACKAGING_DIR}/Manifest.txt" VERSION_FILE="${PACKAGING_DIR}/ATCS_latest" SOURCE_BASE_DIR="${ATCS_SOURCE_DIR}/src" # Base directory for standard source code @@ -54,13 +52,7 @@ echo "Got version ${VERSION}" echo "Removing tmp folder" rm -rf "${TEMP_DIR}" echo "Recreating tmp folder" -mkdir -p "${TEMP_DIR}/com/gpl/rpg/atcontentstudio" # create package structure in temp dir -# NO mkdir -p "${TEMP_DIR}/lib" - we are extracting to TEMP_DIR root now - -# --- Copy manifest to temp folder for editing --- -echo "Copying manifest to temp folder" -cp "${MANIFEST_LOCATION}" "${TEMP_DIR}" -MANIFEST_LOCATION="${TEMP_DIR}/Manifest.txt" # Update MANIFEST_LOCATION to the temp one +mkdir -p "${TEMP_DIR}" # --- **EXTRACT lib files directly to TEMP_DIR** --- echo 'Extracting lib files to TEMP_DIR' @@ -70,39 +62,30 @@ for LIB in "${LIBRARIES[@]}"; do done # --- Set ClassPath --- -echo 'Setting class path' -CP="${TEMP_DIR}${PATH_SEPARATOR}${SOURCE_BASE_DIR}" # Classpath is simplified - only source path needed for compilation - -# --- **Construct Source Path for Compilation** --- -SOURCE_PATH="${SOURCE_BASE_DIR}" # Start with the standard source path -for EXTRA_SOURCE_DIR in "${EXTRA_SOURCE_DIRS[@]}"; do - SOURCE_PATH="${SOURCE_PATH}${PATH_SEPARATOR}${ATCS_SOURCE_DIR}/${EXTRA_SOURCE_DIR}" # Add extra source dirs -done - -echo "ClassPath: ${CP}" -echo "SourcePath: ${SOURCE_PATH}" +echo "Getting source files" +# Find all java files in source directories and compile them +SOURCE_FILES=$(find "${SOURCE_BASE_DIR}" "${EXTRA_SOURCE_DIRS[@]/#/${ATCS_SOURCE_DIR}/}" -name "*.java" -print) +#echo "SourceFiles: ${SOURCE_FILES}" echo "" # --- Build Java classes --- echo 'Building java classes' -# Find all java files in source directories and compile them -SOURCE_FILES=$(find "${SOURCE_BASE_DIR}" "${ATCS_SOURCE_DIR}/hacked-libtiled" "${ATCS_SOURCE_DIR}/minify" "${ATCS_SOURCE_DIR}/siphash-zackehh/src/main/java" -name "*.java" -print) - -javac -cp "$CP" -sourcepath "${SOURCE_PATH}" -d "${TEMP_DIR}" $SOURCE_FILES +javac -cp "${TEMP_DIR}" -d "${TEMP_DIR}" ${SOURCE_FILES} if [ $? -ne 0 ]; then echo "Compilation failed. Please check errors above." exit 1 fi +echo "Compilation successful" # --- Copy res stuff to temp folder --- +echo "Copying some stuff to temp folder" cp -r "${ATCS_SOURCE_DIR}"/res/* "${TEMP_DIR}/" mkdir -p "${TEMP_DIR}/com/gpl/rpg/atcontentstudio/img" mkdir -p "${TEMP_DIR}/tiled/io/resources/" cp -r "${ATCS_SOURCE_DIR}"/src/com/gpl/rpg/atcontentstudio/img/* "${TEMP_DIR}/com/gpl/rpg/atcontentstudio/img/" # some icons cp -r "${ATCS_SOURCE_DIR}"/hacked-libtiled/tiled/io/resources/* "${TEMP_DIR}/tiled/io/resources/" # dtd file for tmx maps - # --- Create JAR file --- echo "" echo "Creating jar at location: ${JAR_LOCATION}" @@ -110,7 +93,7 @@ echo "Creating jar at location: ${JAR_LOCATION}" cd "${TEMP_DIR}" || exit # Change to temp dir for JAR command # JAR command WITHOUT lib directory -jar cfm "${OUTPUT_JAR_DIR}/ATCS.jar" "${MANIFEST_LOCATION}" -C . . +jar cfm "${JAR_LOCATION}" "${MANIFEST_LOCATION}" -C . . if [ $? -ne 0 ]; then echo "JAR creation failed." exit 1 @@ -119,8 +102,8 @@ fi cd "${PACKAGING_DIR}" || exit # Go back to packaging dir echo '' -echo "Done creating jar at ${OUTPUT_JAR_DIR}/ATCS.jar" -cp -f "${OUTPUT_JAR_DIR}/ATCS.jar" "${OUTPUT_JAR_DIR}/common/ATCS.jar" # Copy JAR to versioned name +echo "Done creating jar at ${JAR_LOCATION}" +cp -f "${JAR_LOCATION}" "${OUTPUT_JAR_DIR}/common/ATCS.jar" # Copy JAR to versioned name # --- Create archive --- if [ "$PLATFORM" = "LINUX" ]; then