Compare commits
65 Commits
f20119565f
...
7a909c18bc
@ -0,0 +1,23 @@
|
|||||||
|
name: Fast-Forward Release Branch
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [created]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
fast-forward:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: release
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Merge into Release
|
||||||
|
run: git merge ${{github.ref_name}} --ff-only
|
||||||
|
|
||||||
|
- name: Push Changes
|
||||||
|
uses: ad-m/github-push-action@master
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
branch: release
|
@ -0,0 +1,139 @@
|
|||||||
|
name: Build and Release
|
||||||
|
on: [ push ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Setup Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
|
||||||
|
- name: Setup .NET Core SDK
|
||||||
|
uses: actions/setup-dotnet@v1.7.2
|
||||||
|
with:
|
||||||
|
dotnet-version: '6.0.x'
|
||||||
|
|
||||||
|
- name: Install Python Tools
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
python -m pip install yaclog yaclog-ksp
|
||||||
|
|
||||||
|
- name: Generate Version Info
|
||||||
|
run: |
|
||||||
|
echo "VERSION_TITLE=$(yaclog show -n)" >> $GITHUB_ENV
|
||||||
|
python Scripts/version.py
|
||||||
|
yaclog-ksp -n "Conformal Decals"
|
||||||
|
|
||||||
|
- name: Validate Version Info
|
||||||
|
uses: DasSkelett/AVC-VersionFileValidator@master
|
||||||
|
|
||||||
|
- name: Download DLL Dependencies
|
||||||
|
working-directory: Source
|
||||||
|
run: |
|
||||||
|
wget --user drewcassidy --password ${{ secrets.PILE_OF_ROCKS_PASS }} https://pileof.rocks/Secret/conformal-decals-dependencies-1.zip
|
||||||
|
unzip conformal-decals-dependencies-*.zip -d ConformalDecals/dlls
|
||||||
|
|
||||||
|
- name: Build DLL
|
||||||
|
working-directory: Source
|
||||||
|
run: |
|
||||||
|
mkdir -p ../GameData/ConformalDecals/Plugins
|
||||||
|
dotnet build --configuration Release ConformalDecals.sln
|
||||||
|
|
||||||
|
- name: Download KSP Dependencies
|
||||||
|
run: |
|
||||||
|
wget http://pileof.rocks/KSP/Shabby_v0.2.0.zip
|
||||||
|
wget https://ksp.sarbian.com/jenkins/job/ModuleManager/161/artifact/ModuleManager.4.2.1.dll
|
||||||
|
wget https://github.com/blowfishpro/B9PartSwitch/releases/download/v2.19.0/B9PartSwitch_v2.19.0.zip
|
||||||
|
wget https://github.com/KSPModdingLibs/HarmonyKSP/releases/download/2.0.4.0/HarmonyKSP_2.0.4.0_for_KSP1.8+.zip
|
||||||
|
unzip -d Shabby Shabby*.zip
|
||||||
|
unzip -d B9PartSwitch B9PartSwitch*.zip
|
||||||
|
unzip -d HarmonyKSP HarmonyKSP*.zip
|
||||||
|
mv Shabby/GameData/Shabby GameData/
|
||||||
|
mv ModuleManager*.dll GameData/
|
||||||
|
mv B9PartSwitch/GameData/B9PartSwitch GameData/
|
||||||
|
mv HarmonyKSP/GameData/000_Harmony GameData/
|
||||||
|
|
||||||
|
- name: Upload Unbundled Build
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ConformalDecals-unbundled
|
||||||
|
path: |
|
||||||
|
GameData/ConformalDecals
|
||||||
|
README.md
|
||||||
|
CHANGELOG.md
|
||||||
|
LICENSE-ART.md
|
||||||
|
LICENSE-SOURCE.md
|
||||||
|
|
||||||
|
- name: Upload Bundled Build
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ConformalDecals
|
||||||
|
path: |
|
||||||
|
GameData
|
||||||
|
README.md
|
||||||
|
CHANGELOG.md
|
||||||
|
LICENSE-ART.md
|
||||||
|
LICENSE-SOURCE.md
|
||||||
|
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
|
||||||
|
- name: Install Python Tools
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
python -m pip install yaclog
|
||||||
|
|
||||||
|
- name: Get version name and body
|
||||||
|
run: |
|
||||||
|
echo "VERSION_TITLE=$(yaclog show -n)" >> $GITHUB_ENV
|
||||||
|
echo "$(yaclog show -mb)" >> RELEASE.md
|
||||||
|
|
||||||
|
- name: Download Build Artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
|
||||||
|
- name: Zip Download Packages
|
||||||
|
run: |
|
||||||
|
mkdir bundled
|
||||||
|
mkdir unbundled
|
||||||
|
zip -r bundled/ConformalDecals-$VERSION_TITLE.zip ConformalDecals/*
|
||||||
|
zip -r unbundled/ConformalDecals-$VERSION_TITLE.zip ConformalDecals-unbundled/*
|
||||||
|
ls
|
||||||
|
|
||||||
|
- name: Publish to Spacedock
|
||||||
|
run: |
|
||||||
|
curl -F "username=drewcassidy" -F "password=${{ secrets.SPACEDOCK_PASS }}" \
|
||||||
|
-c ./cookies "https://spacedock.info/api/login"
|
||||||
|
curl -c ./cookies -b ./cookies \
|
||||||
|
-F "version=$VERSION_TITLE" \
|
||||||
|
-F "changelog=$(yaclog show -mb)" \
|
||||||
|
-F "game-version=1.12.3" \
|
||||||
|
-F "notify-followers=yes" \
|
||||||
|
-F "zipball=@bundled/ConformalDecals-$VERSION_TITLE.zip" \
|
||||||
|
"https://spacedock.info/api/mod/2451/update"
|
||||||
|
|
||||||
|
- name: Publish to Github
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
bundled/ConformalDecals-*.zip
|
||||||
|
ConformalDecals/GameData/ConformalDecals/Versioning/ConformalDecals.version
|
||||||
|
name: Conformal Decals ${{ env.VERSION_TITLE }}
|
||||||
|
body_path: RELEASE.md
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
@ -1,25 +0,0 @@
|
|||||||
language: python
|
|
||||||
python:
|
|
||||||
- 3.6
|
|
||||||
before_install:
|
|
||||||
- echo -e "machine github.com\n login $GITHUB_OAUTH_TOKEN" > ~/.netrc
|
|
||||||
install:
|
|
||||||
- pip install awscli boto3 requests
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- release
|
|
||||||
script:
|
|
||||||
- git clone https://github.com/post-kerbin-mining-corporation/build-deploy.git
|
|
||||||
- cd build-deploy
|
|
||||||
- git checkout master
|
|
||||||
- cd ..
|
|
||||||
- pytest -s --testpath "GameData/" build-deploy/src/tests/ # run the deploy tests
|
|
||||||
- python build-deploy/src/package.py --f ".mod_data.yml" # Build package
|
|
||||||
before_deploy:
|
|
||||||
- python build-deploy/src/stage.py --f ".mod_data.yml" # Run the staging script
|
|
||||||
deploy:
|
|
||||||
- provider: script
|
|
||||||
script: python build-deploy/src/deploy.py --f ".mod_data.yml" # Deploy package to spacedock, curse, github
|
|
||||||
skip_cleanup: true
|
|
||||||
on:
|
|
||||||
branch: release
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,193 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file
|
||||||
|
|
||||||
|
| modName | Conformal Decals |
|
||||||
|
| ------- |:-------------------------------------------------------------------------------------|
|
||||||
|
| license | CC-By-SA & GPL3 |
|
||||||
|
| website | https://forum.kerbalspaceprogram.com/index.php?/topic/194802-18-111-conformal-decals |
|
||||||
|
| author | Andrew Cassidy |
|
||||||
|
|
||||||
|
## 0.2.10 - 2022-03-14
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed decals not projecting on loading prefabs
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Re-enabled projecting onto TransparentFX layer
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Allowed for regular expressions to be used when blacklisting shaders
|
||||||
|
- Added all Waterfall shaders to the shader blacklist when Waterfall is present
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.9 - 2022-03-12
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed text decals breaking when used in symmetry
|
||||||
|
- Fixed decals projecting onto the TransparentFX layer, such as Waterfall plumes
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.8
|
||||||
|
|
||||||
|
- Update bundled Shabby to support Harmony 2 for compatibility with other mods
|
||||||
|
- Update bundled B9PartSwitch to 2.18.0
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.7
|
||||||
|
|
||||||
|
- Supported KSP versions: 1.8.x to 1.11.x
|
||||||
|
|
||||||
|
### Notes:
|
||||||
|
|
||||||
|
- Attaching decal parts in flight using engineer kerbals is not supported.
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed certain non-ascii strings not rendering correctly under certain circumstances.
|
||||||
|
- Yet another attempted fix for the planet text glitch.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.6
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed stock flags appearing stretched by forcing their aspect ratio to be correct.
|
||||||
|
- Another attempted fix for the planet text glitch.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.5
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed line spacing, character spacing, and vertical settings not applying to symmetry counterparts
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.4
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards.
|
||||||
|
- Fixed fonts not saving correctly.
|
||||||
|
|
||||||
|
### Changed:
|
||||||
|
|
||||||
|
- Lowered step size for decal size and depth to 1cm.
|
||||||
|
- Changed default max size to 5m.
|
||||||
|
- Changed default text decal size to 0.2m
|
||||||
|
- Text decals now show as a circle if they contain only whitespace.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.3
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed TMP subobjects being deleted, causing fallback fonts to fail in some situations.
|
||||||
|
- Started using URL-style encoding for text decals behind the scenes to prevent issues with certain characters.
|
||||||
|
- Fixed text decals having zero size when they had only whitespace or an empty string.
|
||||||
|
- Fixed decals having drag and causing issues when using FAR.
|
||||||
|
- Fixed broken saving of text decals in certain circumstances.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.2
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed corrupted text rendering when a vessel loads during a scene change.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.1
|
||||||
|
|
||||||
|
### Changed:
|
||||||
|
|
||||||
|
- Pressing enter in the text entry window now types a newline.
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Renamed font assetbundle. The old extension was causing the game to try to load it twice on Windows due to legacy compatability features.
|
||||||
|
- Fixed text rendering on DirectX resulting in black boxes by using ARGB32 instead of RG16 for the render texture in DirectX.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.2.0
|
||||||
|
|
||||||
|
### New Parts:
|
||||||
|
|
||||||
|
- CDL-3 Surface Base Decal: A set of conformal decals based on the symbols from the movie Moon (2009) designed by Gavin Rothery
|
||||||
|
- CDL-T Custom Text Decal: A customizable text decal with a variety of fonts
|
||||||
|
|
||||||
|
### Changed:
|
||||||
|
|
||||||
|
- New ModuleConformalText module for customizable text
|
||||||
|
- Text, font, and style can all be customized, as well as text fill and outline colors and widths
|
||||||
|
- Same projection and opacity options as other conformal decals
|
||||||
|
- New StandardText decal shader supporting the text module
|
||||||
|
- Unified all decal shaders into a single "StandardDecal" shader with variants supporting any combination of bump, specular and emissive maps, plus SDF alphas.
|
||||||
|
- Old shaders are remapped to Standard shader plus keywords automatically.
|
||||||
|
- New SDF-based antialiasing for when decals extend to their borders, e.g. on opaque flags.
|
||||||
|
- New "KEYWORD" material modifier, allowing for shader features to be enabled and disabled.
|
||||||
|
- Material modifiers can now be removed in variants by setting `remove = true` inside them.
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed WIDTH and HEIGHT scale modes being flipped
|
||||||
|
- Removed some debug log statements
|
||||||
|
- Dependencies:
|
||||||
|
- Updated ModuleManager to version 4.1.4
|
||||||
|
|
||||||
|
|
||||||
|
## 0.1.4
|
||||||
|
|
||||||
|
Supported KSP versions: 1.8.x to 1.10.x
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed decals rendering onto disabled B9PS part variants
|
||||||
|
- Decals will still not update whan their parent part's B9PS variant is changed, both in flight and in the editor. This is known and awaiting a change to B9PS to be fixed.
|
||||||
|
- Fixed decal bounds rendering as dark cubes when shadowed by EVE clouds.
|
||||||
|
- Fixed decals being shadowed by EVE clouds, causing the part underneath to appear overly dark.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.1.3
|
||||||
|
|
||||||
|
### Fixe:
|
||||||
|
|
||||||
|
- Fixed decals being able to be scaled down to 0
|
||||||
|
|
||||||
|
### Changed:
|
||||||
|
|
||||||
|
- Made decal bounds no longer collide in flight, this is done by repurposing layer 31 (which is configurable in the ConformalDecals.cfg file)
|
||||||
|
- Decals will now be unselectable in flight by default. This can be disabled with the `selectableInFlight` value in ConformalDecals.cfg, or in the module config itself.
|
||||||
|
- Decal parts will now destroy themselves automatically when the parent part is destroyed
|
||||||
|
- Small refactor of node parsing code
|
||||||
|
- Colors can now be specified in hex (#RGB, #RGBA, #RRGGBB, or #RRGGBBAA) or using the colors specified in the XKCDColors class
|
||||||
|
|
||||||
|
|
||||||
|
## 0.1.2
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Disabled writing to the zbuffer in the decal bounds shader. Should fix any issues with Scatterer or EVE.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.1.1
|
||||||
|
|
||||||
|
### Fixed:
|
||||||
|
|
||||||
|
- Fixed flag decal not adjusting to new texture sizes immediately.
|
||||||
|
- Fixed decal bounds being visible on launch.
|
||||||
|
- Fixed decal bounds being visible in the part icon.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.1.0
|
||||||
|
|
||||||
|
Initial release!
|
||||||
|
|
||||||
|
### New Parts:
|
||||||
|
|
||||||
|
- CDL-F Flag Decal: Conformal flag decal, which uses either the mission flag or a flag of your choosing.
|
||||||
|
- CDL-1 Generic Decal: A set of conformal generic decals for planes and rockets
|
||||||
|
- CDL-2 Semiotic Standard Decal: A set of conformal decals based on the Semiotic Standard for All Commercial Trans-Stellar Utility Lifter and Transport Spacecraft designed by Ron Cobb for the movie Alien
|
@ -0,0 +1,7 @@
|
|||||||
|
// Prevent projection onto Waterfall plumes
|
||||||
|
|
||||||
|
CONFORMALDECALS:NEEDS[Waterfall] {
|
||||||
|
SHADERBLACKLIST {
|
||||||
|
shaderRegex = Waterfall/.*
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
@ -1,28 +1,24 @@
|
|||||||
{
|
{
|
||||||
"NAME":"ConformalDecals",
|
"NAME": "ConformalDecals",
|
||||||
"URL":"https://raw.githubusercontent.com/drewcassidy/KSP-Conformal-Decals/release/GameData/ConformalDecals/Versioning/ConformalDecals.version",
|
"URL": "https://github.com/drewcassidy/KSP-Conformal-Decals/releases/latest/download/ConformalDecals.version",
|
||||||
"DOWNLOAD":"https://github.com/drewcassidy/KSP-Conformal-Decals/releases",
|
"DOWNLOAD": "https://github.com/drewcassidy/KSP-Conformal-Decals/releases/latest",
|
||||||
"VERSION":
|
"CHANGE_LOG_URL": "https://raw.githubusercontent.com/drewcassidy/KSP-Conformal-Decals/release/CHANGELOG.md",
|
||||||
{
|
"VERSION": {
|
||||||
"MAJOR":0,
|
"MAJOR": 9,
|
||||||
"MINOR":2,
|
"MINOR": 9,
|
||||||
"PATCH":7,
|
"PATCH": 9,
|
||||||
"BUILD":0
|
"BUILD": 100000
|
||||||
},
|
},
|
||||||
"KSP_VERSION":
|
"KSP_VERSION": {
|
||||||
{
|
"MAJOR": 1,
|
||||||
"MAJOR":1,
|
"MINOR": 12
|
||||||
"MINOR":11,
|
|
||||||
"PATCH":0
|
|
||||||
},
|
},
|
||||||
"KSP_VERSION_MIN":{
|
"KSP_VERSION_MIN": {
|
||||||
"MAJOR":1,
|
"MAJOR": 1,
|
||||||
"MINOR":8,
|
"MINOR": 8
|
||||||
"PATCH":0
|
|
||||||
},
|
},
|
||||||
"KSP_VERSION_MAX":{
|
"KSP_VERSION_MAX": {
|
||||||
"MAJOR":1,
|
"MAJOR": 1,
|
||||||
"MINOR":11,
|
"MINOR": 12
|
||||||
"PATCH":99
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
import yaclog
|
||||||
|
import yaclog.version
|
||||||
|
import git as gp
|
||||||
|
import os
|
||||||
|
import xml.dom.minidom as minidom
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
def run():
|
||||||
|
repo = gp.Repo(os.curdir)
|
||||||
|
cl = yaclog.Changelog('CHANGELOG.md')
|
||||||
|
version = str(cl.current_version(released=True).version)
|
||||||
|
release = False
|
||||||
|
|
||||||
|
for tag in repo.tags:
|
||||||
|
if tag.commit == repo.head.commit:
|
||||||
|
release = True
|
||||||
|
build = 100000
|
||||||
|
break
|
||||||
|
|
||||||
|
if not release:
|
||||||
|
build = int.from_bytes(repo.head.commit.binsha[0:2], byteorder='big')
|
||||||
|
version = yaclog.version.increment_version(version, 2)
|
||||||
|
|
||||||
|
print(f'Setting up version {version} build {build}')
|
||||||
|
|
||||||
|
version_path = 'GameData/ConformalDecals/Versioning/ConformalDecals.version'
|
||||||
|
with open(version_path, 'r+') as version_file:
|
||||||
|
print('Updating version file')
|
||||||
|
segments = version.split('.')
|
||||||
|
# print(version_file.read())
|
||||||
|
decoded = json.load(version_file)
|
||||||
|
decoded['VERSION']['MAJOR'] = int(segments[0])
|
||||||
|
decoded['VERSION']['MINOR'] = int(segments[1])
|
||||||
|
decoded['VERSION']['PATCH'] = int(segments[2])
|
||||||
|
decoded['VERSION']['BUILD'] = build
|
||||||
|
|
||||||
|
version_file.seek(0)
|
||||||
|
json.dump(decoded, version_file, indent=4)
|
||||||
|
version_file.truncate()
|
||||||
|
|
||||||
|
project_path = 'Source/ConformalDecals/ConformalDecals.csproj'
|
||||||
|
with open(project_path, 'r+') as project_file:
|
||||||
|
print('Updating csproj file')
|
||||||
|
segments = version.split('.')
|
||||||
|
decoded = minidom.parse(project_file)
|
||||||
|
version_node = decoded.getElementsByTagName('AssemblyVersion')[0]
|
||||||
|
if release:
|
||||||
|
version_node.firstChild.nodeValue = f'{version}'
|
||||||
|
else:
|
||||||
|
version_node.firstChild.nodeValue = f'{version}.{build}'
|
||||||
|
# version_node.value = f'{version}.{build}'
|
||||||
|
project_file.seek(0)
|
||||||
|
decoded.writexml(project_file)
|
||||||
|
project_file.truncate()
|
||||||
|
|
||||||
|
print('Done!')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
run()
|
@ -1,7 +1,7 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering;
|
using UnityEngine.Rendering;
|
||||||
|
|
||||||
namespace ConformalDecals {
|
namespace ConformalDecals.Targets {
|
||||||
public class ProjectionMeshTarget : IProjectionTarget {
|
public class ProjectionMeshTarget : IProjectionTarget {
|
||||||
public const string NodeName = "MESH_TARGET";
|
public const string NodeName = "MESH_TARGET";
|
||||||
|
|
@ -0,0 +1,33 @@
|
|||||||
|
using System;
|
||||||
|
using ConformalDecals.Util;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace ConformalDecals.Tweakables {
|
||||||
|
[AttributeUsage(AttributeTargets.Field)]
|
||||||
|
public abstract class TweakableData : System.Attribute, ISerializationCallbackReceiver {
|
||||||
|
public string name;
|
||||||
|
|
||||||
|
public bool adjustable = true;
|
||||||
|
public string adjustableKey;
|
||||||
|
|
||||||
|
// public string fieldChangedCallback;
|
||||||
|
public bool useSymmetry = true;
|
||||||
|
|
||||||
|
protected TweakableData(string name) {
|
||||||
|
this.name = name;
|
||||||
|
adjustableKey = name + "Adjustable";
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Load(ConfigNode node) {
|
||||||
|
ParseUtil.ParseBoolIndirect(ref adjustable, node, adjustableKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void Apply(BaseField baseField, PartModule module) {
|
||||||
|
baseField.guiActiveEditor = adjustable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnBeforeSerialize() { }
|
||||||
|
|
||||||
|
public void OnAfterDeserialize() { }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UniLinq;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace ConformalDecals.Tweakables {
|
||||||
|
public class TweakableDataCollection : IEnumerable<TweakableData>, ISerializationCallbackReceiver {
|
||||||
|
public readonly Dictionary<string, TweakableData> tweakables = new Dictionary<string, TweakableData>();
|
||||||
|
|
||||||
|
[SerializeField] private TweakableData[] _serializedTweakables;
|
||||||
|
|
||||||
|
public IEnumerator<TweakableData> GetEnumerator() {
|
||||||
|
return tweakables.Values.GetEnumerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator IEnumerable.GetEnumerator() {
|
||||||
|
return GetEnumerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnBeforeSerialize() {
|
||||||
|
_serializedTweakables = tweakables.Values.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnAfterDeserialize() {
|
||||||
|
foreach (var tweakable in _serializedTweakables) {
|
||||||
|
tweakables.Add(tweakable.name, tweakable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
using System;
|
||||||
|
using ConformalDecals.Util;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace ConformalDecals.Tweakables {
|
||||||
|
[AttributeUsage(AttributeTargets.Field)]
|
||||||
|
public class TweakableSlider : TweakableData {
|
||||||
|
// The default value for the slider
|
||||||
|
public float defaultValue;
|
||||||
|
public string defaultValueKey;
|
||||||
|
|
||||||
|
// The range of the slider as a vector of <min, max>
|
||||||
|
public float min = 0;
|
||||||
|
public float max = 1;
|
||||||
|
public string rangeKey;
|
||||||
|
|
||||||
|
// The step size of the slider
|
||||||
|
public float step;
|
||||||
|
public string stepKey;
|
||||||
|
|
||||||
|
public TweakableSlider(string name) : base(name) {
|
||||||
|
defaultValueKey = name + "Default";
|
||||||
|
rangeKey = name + "Range";
|
||||||
|
stepKey = name + "Step";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Load(ConfigNode node) {
|
||||||
|
base.Load(node);
|
||||||
|
|
||||||
|
var range = new Vector2(min, max);
|
||||||
|
ParseUtil.ParseVector2Indirect(ref range, node, rangeKey);
|
||||||
|
min = Mathf.Max(Mathf.Epsilon, range.x);
|
||||||
|
max = Mathf.Max(min, range.y);
|
||||||
|
|
||||||
|
ParseUtil.ParseFloatIndirect(ref step, node, stepKey);
|
||||||
|
|
||||||
|
if (!HighLogic.LoadedSceneIsEditor && !HighLogic.LoadedSceneIsFlight) {
|
||||||
|
ParseUtil.ParseFloatIndirect(ref defaultValue, node, defaultValueKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Apply(BaseField baseField, PartModule module) {
|
||||||
|
base.Apply(baseField, module);
|
||||||
|
var uiControlEditor = (UI_FloatRange) baseField.uiControlEditor;
|
||||||
|
|
||||||
|
uiControlEditor.minValue = min;
|
||||||
|
uiControlEditor.maxValue = max;
|
||||||
|
uiControlEditor.stepIncrement = step;
|
||||||
|
|
||||||
|
// Set the default value on first load
|
||||||
|
if (!HighLogic.LoadedSceneIsEditor && !HighLogic.LoadedSceneIsFlight) {
|
||||||
|
baseField.FieldInfo.SetValue(module, defaultValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using ConformalDecals.Util;
|
||||||
|
|
||||||
|
namespace ConformalDecals.Tweakables {
|
||||||
|
[AttributeUsage(AttributeTargets.Field)]
|
||||||
|
public class TweakableToggle : TweakableData {
|
||||||
|
// The default value for the toggle
|
||||||
|
public bool defaultValue;
|
||||||
|
public string defaultValueKey;
|
||||||
|
|
||||||
|
public TweakableToggle(string name) : base(name) {
|
||||||
|
defaultValueKey = name + "Default";
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Load(ConfigNode node) {
|
||||||
|
base.Load(node);
|
||||||
|
|
||||||
|
// Set the default value on first load
|
||||||
|
if (!HighLogic.LoadedSceneIsEditor && !HighLogic.LoadedSceneIsFlight) {
|
||||||
|
ParseUtil.ParseBoolIndirect(ref defaultValue, node, defaultValueKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Apply(BaseField baseField, PartModule module) {
|
||||||
|
base.Apply(baseField, module);
|
||||||
|
|
||||||
|
// Set the default value on first load
|
||||||
|
if (!HighLogic.LoadedSceneIsEditor && !HighLogic.LoadedSceneIsFlight) {
|
||||||
|
baseField.FieldInfo.SetValue(module, defaultValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,115 +0,0 @@
|
|||||||
v0.2.7
|
|
||||||
------
|
|
||||||
- Supported KSP versions: 1.8.x to 1.11.x
|
|
||||||
- Notes:
|
|
||||||
- Attaching decal parts in flight using engineer kerbals is not supported.
|
|
||||||
- Fixes:
|
|
||||||
- Fixed certain non-ascii strings not rendering correctly under certain circumstances.
|
|
||||||
- Yet another attempted fix for the planet text glitch.
|
|
||||||
|
|
||||||
v0.2.6
|
|
||||||
------
|
|
||||||
- Fixes:
|
|
||||||
- Fixed stock flags appearing stretched by forcing their aspect ratio to be correct.
|
|
||||||
- Another attempted fix for the planet text glitch.
|
|
||||||
|
|
||||||
v0.2.5
|
|
||||||
------
|
|
||||||
- Fixes:
|
|
||||||
- Fixed line spacing, character spacing, and vertical settings not applying to symmetry counterparts
|
|
||||||
|
|
||||||
v0.2.4
|
|
||||||
------
|
|
||||||
- Fixes:
|
|
||||||
- Fixed red text appearing on planets due to KSP bug by clearing render textures afterwards.
|
|
||||||
- Fixed fonts not saving correctly.
|
|
||||||
- Changes:
|
|
||||||
- Lowered step size for decal size and depth to 1cm.
|
|
||||||
- Changed default max size to 5m.
|
|
||||||
- Changed default text decal size to 0.2m
|
|
||||||
- Text decals now show as a circle if they contain only whitespace.
|
|
||||||
|
|
||||||
v0.2.3
|
|
||||||
------
|
|
||||||
- Fixes:
|
|
||||||
- Fixed TMP subobjects being deleted, causing fallback fonts to fail in some situations.
|
|
||||||
- Started using URL-style encoding for text decals behind the scenes to prevent issues with certain characters.
|
|
||||||
- Fixed text decals having zero size when they had only whitespace or an empty string.
|
|
||||||
- Fixed decals having drag and causing issues when using FAR.
|
|
||||||
- Fixed broken saving of text decals in certain circumstances.
|
|
||||||
|
|
||||||
v0.2.2
|
|
||||||
------
|
|
||||||
- Fixes:
|
|
||||||
- Fixed corrupted text rendering when a vessel loads during a scene change.
|
|
||||||
|
|
||||||
v0.2.1
|
|
||||||
------
|
|
||||||
- Changes:
|
|
||||||
- Pressing enter in the text entry window now types a newline.
|
|
||||||
- Fixes:
|
|
||||||
- Renamed font assetbundle. The old extension was causing the game to try to load it twice on Windows due to legacy compatability features.
|
|
||||||
- Fixed text rendering on DirectX resulting in black boxes by using ARGB32 instead of RG16 for the render texture in DirectX.
|
|
||||||
|
|
||||||
v0.2.0
|
|
||||||
------
|
|
||||||
- New Parts:
|
|
||||||
- CDL-3 Surface Base Decal: A set of conformal decals based on the symbols from the movie Moon (2009) designed by Gavin Rothery
|
|
||||||
- CDL-T Custom Text Decal: A customizable text decal with a variety of fonts
|
|
||||||
- Changes:
|
|
||||||
- New ModuleConformalText module for customizable text
|
|
||||||
- Text, font, and style can all be customized, as well as text fill and outline colors and widths
|
|
||||||
- Same projection and opacity options as other conformal decals
|
|
||||||
- New StandardText decal shader supporting the text module
|
|
||||||
- Unified all decal shaders into a single "StandardDecal" shader with variants supporting any combination of bump, specular and emissive maps, plus SDF alphas.
|
|
||||||
- Old shaders are remapped to Standard shader plus keywords automatically.
|
|
||||||
- New SDF-based antialiasing for when decals extend to their borders, e.g. on opaque flags.
|
|
||||||
- New "KEYWORD" material modifier, allowing for shader features to be enabled and disabled.
|
|
||||||
- Material modifiers can now be removed in variants by setting `remove = true` inside them.
|
|
||||||
- Fixes:
|
|
||||||
- Fixed WIDTH and HEIGHT scale modes being flipped
|
|
||||||
- Removed some debug log statements
|
|
||||||
- Dependencies:
|
|
||||||
- Updated ModuleManager to version 4.1.4
|
|
||||||
|
|
||||||
v0.1.4
|
|
||||||
------
|
|
||||||
- Supported KSP versions: 1.8.x to 1.10.x
|
|
||||||
- Fixes:
|
|
||||||
- Fixed decals rendering onto disabled B9PS part variants
|
|
||||||
- Decals will still not update whan their parent part's B9PS variant is changed, both in flight and in the editor. This is known and awaiting a change to B9PS to be fixed.
|
|
||||||
- Fixed decal bounds rendering as dark cubes when shadowed by EVE clouds.
|
|
||||||
- Fixed decals being shadowed by EVE clouds, causing the part underneath to appear overly dark.
|
|
||||||
|
|
||||||
v0.1.3
|
|
||||||
------
|
|
||||||
Fixes:
|
|
||||||
- Fixed decals being able to be scaled down to 0
|
|
||||||
|
|
||||||
Changes:
|
|
||||||
- Made decal bounds no longer collide in flight, this is done by repurposing layer 31 (which is configurable in the ConformalDecals.cfg file)
|
|
||||||
- Decals will now be unselectable in flight by default. This can be disabled with the `selectableInFlight` value in ConformalDecals.cfg, or in the module config itself.
|
|
||||||
- Decal parts will now destroy themselves automatically when the parent part is destroyed
|
|
||||||
- Small refactor of node parsing code
|
|
||||||
- Colors can now be specified in hex (#RGB, #RGBA, #RRGGBB, or #RRGGBBAA) or using the colors specified in the XKCDColors class
|
|
||||||
|
|
||||||
v0.1.2
|
|
||||||
------
|
|
||||||
Fixes:
|
|
||||||
- Disabled writing to the zbuffer in the decal bounds shader. Should fix any issues with Scatterer or EVE.
|
|
||||||
|
|
||||||
v0.1.1
|
|
||||||
------
|
|
||||||
Fixes:
|
|
||||||
- Fixed flag decal not adjusting to new texture sizes immediately.
|
|
||||||
- Fixed decal bounds being visible on launch.
|
|
||||||
- Fixed decal bounds being visible in the part icon.
|
|
||||||
|
|
||||||
v0.1.0
|
|
||||||
------
|
|
||||||
Initial release!
|
|
||||||
|
|
||||||
New parts:
|
|
||||||
- CDL-F Flag Decal: Conformal flag decal, which uses either the mission flag or a flag of your choosing.
|
|
||||||
- CDL-1 Generic Decal: A set of conformal generic decals for planes and rockets
|
|
||||||
- CDL-2 Semiotic Standard Decal: A set of conformal decals based on the Semiotic Standard for All Commercial Trans-Stellar Utility Lifter and Transport Spacecraft designed by Ron Cobb for the movie Alien
|
|
Loading…
Reference in New Issue