From 7972d345c63c638c8a210afd198d33580834383a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Buchmann?= Date: Tue, 19 Nov 2024 23:44:37 +0100 Subject: [PATCH] Init for FS25 --- .editorconfig | 10 +++++++ .env.example | 6 ++++ .gitattributes | 11 +++++++ .github/workflows/pre-release.yml | 30 ++++++++++++++++++++ .github/workflows/tagged-release.yml | 28 ++++++++++++++++++ .gitignore | 13 +++++++++ LICENSE.md | 1 + Readme.md | 28 ++++++++++++++++++ icon_noTeleport.dds | Bin 0 -> 32896 bytes modDesc.xml | 41 +++++++++++++++++++++++++++ pack.cmd | 20 +++++++++++++ run.cmd | 27 ++++++++++++++++++ runMP.cmd | 24 ++++++++++++++++ scripts/main.lua | 33 +++++++++++++++++++++ test.cmd | 26 +++++++++++++++++ 15 files changed, 298 insertions(+) create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .github/workflows/pre-release.yml create mode 100644 .github/workflows/tagged-release.yml create mode 100644 .gitignore create mode 100644 LICENSE.md create mode 100644 Readme.md create mode 100644 icon_noTeleport.dds create mode 100644 modDesc.xml create mode 100644 pack.cmd create mode 100644 run.cmd create mode 100644 runMP.cmd create mode 100644 scripts/main.lua create mode 100644 test.cmd diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b0914c1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# top-most EditorConfig file +root = true + +[*] +end_of_line = CRLF # CRLF based line ending because of Windows based game. +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 4 +charset = utf-8 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..995efad --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +gamePath="c:\Path\To\Farming Simulator 22\\" +gameProfile="c:\Documents\My Games\FarmingSimulator2022\\" +gameExe="c:\Program Files (x86)\Steam\steam.exe" -applaunch 2300320 +savegameId=1 +testRunner="c:\Path\To\TestRunner_public.exe" +testTempFolder="c:\Path\To\CleanCopy\For\Testing\\" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..446293d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +* text=auto + +*.i3d -text +*.ma -text -diff -merge + +/.editorconfig export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/*.cmd export-ignore +/.github export-ignore +/.env.example export-ignore diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml new file mode 100644 index 0000000..85a84d7 --- /dev/null +++ b/.github/workflows/pre-release.yml @@ -0,0 +1,30 @@ +--- +name: "pre-release" + +on: + push: + branches: + - "fs25" + tags-ignore: + - "*" + +jobs: + gh_pre_release: + runs-on: "windows-latest" + + steps: + - name: "Checkout source code" + uses: "actions/checkout@v3" + with: + lfs: true + + - run: "./pack.cmd" + + - uses: "marvinpinto/action-automatic-releases@latest" + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "fs25-latest" + prerelease: true + title: "fs25-dev-latest" + files: | + FS25_NoTeleport.zip diff --git a/.github/workflows/tagged-release.yml b/.github/workflows/tagged-release.yml new file mode 100644 index 0000000..443f28b --- /dev/null +++ b/.github/workflows/tagged-release.yml @@ -0,0 +1,28 @@ +--- +name: "tagged-release" + +on: + push: + tags: + - "fs25-v*" + +jobs: + tagged-release: + name: "Tagged Release" + runs-on: "windows-latest" + + steps: + - name: "Checkout source code" + uses: "actions/checkout@v3" + with: + lfs: true + + - run: "./pack.cmd" + + - uses: "marvinpinto/action-automatic-releases@latest" + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "${{ github.ref_name }}" + prerelease: false + files: | + FS25_NoTeleport.zip diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b09e1e --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# System stuff +.DS_STORE + +# Build system +.fsbuild.yml +FS25_* +*.zip +.env + +# IDE +.idea/ +.atom +*.exe diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..943c29a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1 @@ +This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..fd5e8f2 --- /dev/null +++ b/Readme.md @@ -0,0 +1,28 @@ +# No Teleport + +[![Farming Simulator 25](https://img.shields.io/badge/farming%20simulator-25-A0C213?style=flat-square)](https://www.farming-simulator.com/) +[![GitHub release (latest by date)](https://img.shields.io/github/v/release/VertexDezign/NoTeleport?style=flat-square)](https://github.com/VertexDezign/NoTeleport/releases) +[![GitHub issues](https://img.shields.io/github/issues/VertexDezign/NoTeleport?style=flat-square)](https://github.com/VertexDezign/NoTeleport/issues) +[![License: CC BY-NC-ND 4.0](https://img.shields.io/badge/License-CC_BY--NC--ND_4.0-lightgrey.svg?style=flat-square)](https://creativecommons.org/licenses/by-nc-nd/4.0/) + +The year 3025. There are stories about ancient peoples and their rudimentary methods of transportation. It is said that these people went to their destination by car. Sometimes they also walked. How old-fashioned is that? +Welcome to 2025... Teleporting is not yet a thing... + + +This is a Mod for Farming Simulator 25. + +**[Download latest development version here](https://github.com/VertexDezign/NoTeleport/releases/download/fs25-latest/FS25_NoTeleport.zip)** + +--- + +## Features + +- No "visit" buttons in map marker menus +- No "visit" buttons in production menu +- No vehicle tabbing + +--- + +Have ideas to make the mod even better? Found a bug? Let us know on [Github](https://github.com/VertexDezign/NoTeleport/issues) so we can keep improving the mod together! + +[FS25_TargetFillLevel](https://github.com/VertexDezign/NoTeleport/) by [André Buchmann](https://github.com/schliesser/) & [VertexDezign](https://vertexdezign.net/) is licensed under [CC BY NC ND 4.0](http://creativecommons.org/licenses/by-nc-nd/4.0/) diff --git a/icon_noTeleport.dds b/icon_noTeleport.dds new file mode 100644 index 0000000000000000000000000000000000000000..78a4856a5b66187fa7b780e6b03f85ed46be2106 GIT binary patch literal 32896 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 literal 0 HcmV?d00001 diff --git a/modDesc.xml b/modDesc.xml new file mode 100644 index 0000000..ac0a8f3 --- /dev/null +++ b/modDesc.xml @@ -0,0 +1,41 @@ + + + -tinte- / VertexDezign + 1.0.0.0 + + <en>No Teleport</en> + <de>Kein Teleportieren</de> + + + + + + icon_noTeleport.dds + + + + + + diff --git a/pack.cmd b/pack.cmd new file mode 100644 index 0000000..1889725 --- /dev/null +++ b/pack.cmd @@ -0,0 +1,20 @@ +@ECHO off + +SET modName=FS25_NoTeleport +SET filename=%modName%.zip + +IF EXIST %filename% ( + DEL %filename% > NUL +) + +"7z" a -tzip %filename% ^ + -i!*.lua ^ + -i!*.dds ^ + -i!*.xml ^ + -xr!resources ^ + -xr!.vscode ^ + -xr!.idea ^ + -xr!.git ^ + -aoa -r ^ + +IF %ERRORLEVEL% NEQ 0 ( exit 1 ) diff --git a/run.cmd b/run.cmd new file mode 100644 index 0000000..3404d26 --- /dev/null +++ b/run.cmd @@ -0,0 +1,27 @@ +@ECHO off + +@REM Pack mod +CALL pack.cmd + +IF %ERRORLEVEL% NEQ 0 ( exit 1 ) + +setlocal +FOR /F "tokens=*" %%i in ('type .env') do SET %%i + +ECHO Copy file to mod folder +COPY %filename% %gameProfile%mods\ + +IF %ERRORLEVEL% NEQ 0 ( exit 1 ) + +ECHO Starting game with savegame %savegameId% ... +%gameExe% -cheats -autoStartSavegameId %savegameId% + +ECHO Happy Testing: %modName% + +@REM Available FS25 start params +@REM -cheats (enables cheats in the console) +@REM -autoStartSavegameId 3 (loads the savegame automatically | *Replace "3" with the savegame ID of your choice) +@REM -restart (prevents intro videos from playing | will also keep logging the game to the logfile) +@REM -disableFramerateLimiter (removes the FPS cap | not recommended ) + +endlocal diff --git a/runMP.cmd b/runMP.cmd new file mode 100644 index 0000000..d9d854e --- /dev/null +++ b/runMP.cmd @@ -0,0 +1,24 @@ +@ECHO off + +@REM Pack mod +CALL pack.cmd + +IF %ERRORLEVEL% NEQ 0 ( exit 1 ) + +setlocal +FOR /F "tokens=*" %%i in ('type .env') do SET %%i + +ECHO Copy file to mod folder +COPY %filename% %gameProfile%mods\ +ECHO Copy file to remote PC +COPY %filename% %remoteGameProfile%mods\ + +ECHO Happy Testing: %modName% + +@REM Available FS25 start params +@REM -cheats (enables cheats in the console) +@REM -autoStartSavegameId 3 (loads the savegame automatically | *Replace "3" with the savegame ID of your choice) +@REM -restart (prevents intro videos from playing | will also keep logging the game to the logfile) +@REM -disableFramerateLimiter (removes the FPS cap | not recommended ) + +endlocal diff --git a/scripts/main.lua b/scripts/main.lua new file mode 100644 index 0000000..1709d47 --- /dev/null +++ b/scripts/main.lua @@ -0,0 +1,33 @@ +--[[ +No Teleport Mod for Farming Simulator 25 + +Author: André Buchman & VertexDezign +Website: https://vertexdezign.net/ +Issues: https://github.com/VertexDezign/NoTeleport/issues + +Feel free to open a pull reuests for enhancements or bugfixes. + +FS25_NoTeleport © 2024 by André Buchmann & VertexDezign is licensed under CC BY-NC-ND 4.0. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ +]] +NoTeleport = {} +NoTeleport.name = "NoTeleport" + +-- Return false to disable overwritten function +function NoTeleport:disableFunction() + return false +end + +function NoTeleport:loadMapFinished() + g_currentMission.isToggleVehicleAllowed = false +end + +function initNoTeleport() + PlaceableHotspot.getBeVisited = Utils.overwrittenFunction(PlaceableHotspot.getBeVisited, NoTeleport.disableFunction) + NPCHotspot.getBeVisited = Utils.overwrittenFunction(NPCHotspot.getBeVisited, NoTeleport.disableFunction) + FerryHotspot.getBeVisited = Utils.overwrittenFunction(FerryHotspot.getBeVisited, NoTeleport.disableFunction) + Enterable.getIsEnterableFromMenu = Utils.overwrittenFunction(Enterable.getIsEnterableFromMenu, NoTeleport.disableFunction) + FSBaseMission.loadMapFinished = Utils.appendedFunction(FSBaseMission.loadMapFinished, NoTeleport.loadMapFinished) +end + +-- Load as early as possible to override the "Enterable" methods +initNoTeleport() diff --git a/test.cmd b/test.cmd new file mode 100644 index 0000000..d466de4 --- /dev/null +++ b/test.cmd @@ -0,0 +1,26 @@ +@ECHO off + +@REM Pack mod +CALL pack.cmd + +IF %ERRORLEVEL% NEQ 0 ( exit 1 ) + +setlocal +FOR /F "tokens=*" %%i IN ('type .env') DO SET %%i + +SET modTestPath=%testTempFolder%%modName% + +ECHO Prepare files to test +RMDIR %modTestPath% /s /q +MKDIR %modTestPath% +COPY %filename% %modTestPath% +CD %modTestPath% +UNZIP -o %filename% +DEL %filename% + +IF %ERRORLEVEL% NEQ 0 ( exit 1 ) + +ECHO Execute TestRunner +%testRunner% %modTestPath% -g %gamePath% --noPause + +endlocal