Skip to content

Commit

Permalink
Push project files including version 0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
cengelha committed May 5, 2022
1 parent d21e2b6 commit f5e7df9
Show file tree
Hide file tree
Showing 48 changed files with 7,919 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .github/changelogs/0.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Initial version that already includes a first iteration of all features.

### Added
* Detect all available PC platforms of the current user in their default locations
* Detect platform in a custom location
* Support for the following platforms
* GOG.com (PC)
* Microsoft Store (PC)
* PlayStation 4
* Steam (PC)
* Xbox
* Backup
* Convert game-readable files to human-readable
* Convert human- and game-readable files to the format of a specified platform
* Copy
* Delete
* Move
* Restore
* Swap
* Transfer between different platform instances
* Select what you want to transfer (result depends on upload status)
* Bases (interface to select which)
* ByteBeats (3.51+)
* Discoveries
* Settlement (3.60+)
* Write
* Built-in watcher to detect background changes incl. an interface for user decisions
* Built-in loading strategies defined via settings (see below)
* Use settings to customize the behavior
* Paths for backups, downloads, etc.
* Whether to update modification time
* Which loading strategy to use
16 changes: 16 additions & 0 deletions .github/changelogs/0.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Second iteration with countless fixes and improvements made while implementing it in NomNom.

### Added
* Additional settings
* Whether to deobfuscate
* How many backups should be kept
* Whether to use the built-in File Watcher

### Changed
* A lot!

### Removed
* Maybe some things...

### Fixed
* Everything that has not worked properly in the first iteration
2 changes: 2 additions & 0 deletions .github/changelogs/1.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Version bump to 1.0 as the latest public version of NomNom integrates the current
state properly and no changes are imminent.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: nuget
directory: /
schedule:
interval: daily
1 change: 1 addition & 0 deletions .github/funding.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
github: "cengelha"
74 changes: 74 additions & 0 deletions .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: libNOM.io

on:
push

jobs:
build:
name: Build and Test
runs-on: ubuntu-latest
env:
libNOMmap: '0.7.0'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Replace
uses: jacobtomlinson/gha-find-replace@v2
with:
find: "#{STEAM_API_KEY}#"
replace: ${{ secrets.STEAM_API_KEY }}
include: "libNOM.io/Properties/**"
regex: false
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: '6.0.x'
# TODO: Remove when pushing libNOM.map to nuget.org
- name: Download libNOM.map
uses: Legion2/download-release-action@v2.1.0
with:
repository: zencq/libNOM.map
tag: ${{ env.libNOMmap }}
path: nupkg
file: libNOM.map.${{ env.libNOMmap }}.nupkg
# TODO: Update when pushing libNOM.map to nuget.org
- name: Dependencies
run: dotnet restore -s ./nupkg -s https://api.nuget.org/v3/index.json
- name: Unit Test
run: dotnet test libNOM.test --no-restore --configuration Debug --framework net6.0
- name: Pack
run: dotnet pack libNOM.io --no-restore --configuration Release
- name: Upload
uses: actions/upload-artifact@v3
with:
name: libNOM.io NuGet Package
path: libNOM.io/bin/Release/libNOM.io.*nupkg
if-no-files-found: error
release:
name: Release
runs-on: ubuntu-latest
# Only if commit was tagged.
if: ${{ startsWith(github.ref, 'refs/tags/') }}
needs: build
steps:
# Checkout again to access the changelog.
- name: Checkout
uses: actions/checkout@v3
- name: Download
uses: actions/download-artifact@v3
with:
name: libNOM.io NuGet Package
- name: Version
run: echo "nupkg_version=$((((Get-Item -Path .\libNOM.io.*.nupkg).Name -split '\.',3)[2] -split '\.',-2)[0])" >> $env:GITHUB_ENV
shell: pwsh
# Exit if version mismatch.
- name: Mismatch
if: ${{ github.ref_name != env.nupkg_version }}
run: |
echo "There is a version mismatch between git tag (${{ github.ref_name }}) and nupkg version (${{ env.nupkg_version }})!"
exit 1
- name: Create
uses: softprops/action-gh-release@v1
with:
body_path: ${{ github.workspace }}/.github/changelogs/${{ github.ref_name }}.md
files: libNOM.io.*nupkg
64 changes: 64 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# CHANGELOG

All notable changes to this project will be documented in this file. It uses the
[Keep a Changelog](http://keepachangelog.com/en/1.0.0/) principles and
[Semantic Versioning](https://semver.org/).

## Unreleased

### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security

## 0.2.0 (2022-05-05)

### Added
* Additional settings
* Whether to deobfuscate
* How many backups should be kept
* Whether to use the built-in File Watcher

### Changed
* A lot!

### Removed
* Maybe some things...

### Fixed
* Everything that has not worked properly in the first iteration

## 0.1.0 (2022-03-14)

### Added
* Detect all available PC platforms of the current user in their default locations
* Detect platform in a custom location
* Support for the following platforms
* GOG.com (PC)
* Microsoft Store (PC)
* PlayStation 4
* Steam (PC)
* Xbox
* Backup
* Convert game-readable files to human-readable
* Convert human- and game-readable files to the format of a specified platform
* Copy
* Delete
* Move
* Restore
* Swap
* Transfer between different platform instances
* Select what you want to transfer (result depends on upload status)
* Bases (interface to select which)
* ByteBeats (3.51+)
* Discoveries
* Settlement (3.60+)
* Write
* Built-in watcher to detect background changes incl. an interface for user decisions
* Built-in loading strategies defined via settings (see below)
* Use settings to customize the behavior
* Paths for backups, downloads, etc.
* Whether to update modification time
* Which loading strategy to use
45 changes: 45 additions & 0 deletions GAMEUPDATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# libNOM.io

## What needs to be done when a new game update is released

### Enums
* Check whether game enums have been updated:
* `PersistentBaseTypesEnum`
* `PresetGameModeEnum`
* Extend `VersionEnum` and if there is a new Expedition, update the `SeasonEnum`
as well.
* In rare occasions there might be a new game mode as well (`PresetGameModeEnum`).
* If necessary add a `Description` attribute to it.

### Container
* Add a `Is<Version>` flag for the new version.

### ContainerTransferData
* If something new was added that has an ownership, a new flag needs to be added.

### Global
* For new game modes the `GetGameModeEnum` needs to be updated.
* Will probably never be the case but if the formula for the version numbers changes,
the `CalculateBaseVersion` and `CalculateVersion` need an updated as well.

### Platform
* Update constants and getter to reflect new data.
* Both `GetVersionEnum` need to include the new base version or a new JSON key.
* If something new was added that has an ownership, new methods must be added to
do the transfer.

## What needs to be done when the game launches on a new platform

Create a new inherited `Platform` class and implement its details.

### Enums
* Add the platform with a description attribute if necessary.

### Convert
* The method `ToSaveFile` needs an update for the output switch.

### PlatformCollection
* If the file content of the new platforms is something special add a case to `AnalyzeFile`.
* Add the new `PlatformEnum` to the switch in `AnalyzePath`.
* If it is a PC platform it must be added to the `Reinitialize` method to detect
it automatically.
Loading

0 comments on commit f5e7df9

Please sign in to comment.