30 Commits
v0.2 ... master

Author SHA1 Message Date
fab9e610a7 Use gobinaries.com to skip Go setup/install step 2024-05-12 19:14:42 -05:00
20bb5738f0 Merge pull request #4 from Xevion/0.2.3
v0.2.3
2024-05-08 23:41:55 -05:00
55b6feee4b minor: update mod version to 0.2.3 2024-05-08 23:36:12 -05:00
9b13326fb7 fix: IsResting inverted 2024-05-08 23:31:37 -05:00
f80d87dc6d feat: resting indicator in inspect string, common IsResting func 2024-05-08 23:27:42 -05:00
26565b05dc minor: remove commented unused code 2024-05-08 23:26:41 -05:00
13250057dc minor: fix assembly metadata spacing 2024-05-08 23:24:08 -05:00
3acb6f1d2c Merge pull request #3 from Xevion/0.2.2
v0.2.2
2024-05-08 23:03:16 -05:00
ef5608dc0c minor: update mod version to 0.2.2 2024-05-08 22:54:36 -05:00
84adf2f666 fix: compact hydroponics require high density research 2024-05-08 22:32:10 -05:00
a8df95acce fix: growth state renders 100% after growth/sowing at night 2024-05-08 22:30:40 -05:00
ee38dbeccf Update final actions to latest (again) 2024-05-08 01:38:35 -05:00
9a084bd237 Add go.sum for dependency cache, fix outdated actions, use GITHUB_OUTPUT instead of set-output commands 2024-05-08 01:36:44 -05:00
4a98d6aa83 Fix improper asset moving, move non-essential About/ assets into .assets 2024-05-07 19:08:46 -05:00
a8b7ba4496 Update README badge 2024-05-07 19:02:34 -05:00
acbc440d10 Stable go version, update version to appropriate 2.1 2024-05-07 19:00:49 -05:00
9cbbc0a823 Try workflow command set-output for artifact 2024-05-07 18:58:53 -05:00
c14d9ad840 Install xq via Go, remove cat pipe 2024-05-07 18:53:02 -05:00
ff16bd7a08 Remove yq 2024-05-07 18:51:59 -05:00
6774a121ce Use Go for xq 2024-05-07 18:51:11 -05:00
8cd1ae7caf Get version before moving files 2024-05-07 18:41:14 -05:00
7f97c26916 Remove build script, try incorporate mod version into artifact name 2024-05-07 18:40:23 -05:00
8facf38ab2 Merge pull request #2 from Xevion/1.5
1.5: GitHub Workflow Build Script, Project SDK Modernization
2024-05-07 14:16:54 -05:00
d64e18207e Merge pull request #1 from mrsebseb/1.5
1.5 Support, Draw to DrawAt
2024-05-07 14:16:38 -05:00
275c524a30 Working dotnet CLI build, add Krafs RimWorld ref pkg 2024-05-07 04:33:13 -05:00
bc7308749b Add build script 2024-05-07 04:13:30 -05:00
d53a7f2763 Update supported version, modVersion 2024-05-07 01:42:01 -05:00
85eeec32e3 Add 'build' folder to .gitignore 2024-05-07 01:41:46 -05:00
Sebastian
2486dd2e7c 1.5 Support, Draw to DrawAt 2024-04-12 23:18:24 +02:00
d3321ececb Add dynamic Shield.io repository badges 2023-07-18 14:01:37 -05:00
15 changed files with 261 additions and 108 deletions

View File

Before

Width:  |  Height:  |  Size: 333 KiB

After

Width:  |  Height:  |  Size: 333 KiB

View File

View File

Before

Width:  |  Height:  |  Size: 718 KiB

After

Width:  |  Height:  |  Size: 718 KiB

47
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: Build
env:
SLN_PATH: Source/HydroponicsExpanded/
on:
workflow_dispatch:
push:
paths-ignore:
- 'README.md'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Install Mod Dependencies
run: dotnet restore ${{ env.SLN_PATH }}
- name: Build Mod
run: dotnet build ${{ env.SLN_PATH }} --configuration Release --no-restore
- name: Get Version
id: get_version
run: |
curl -sf https://gobinaries.com/sibprogrammer/xq@latest | sh
VERSION=$(xq ./About/About.xml -x "/ModMetaData/modVersion")
echo "result=$VERSION" >> $GITHUB_OUTPUT
- name: Move files
run: |
mkdir -p output/HydroponicsExpanded
mv About/ Assemblies/ Defs/ Languages/ Textures/ output/HydroponicsExpanded
- name: Upload Mod Artifacts
uses: actions/upload-artifact@v4
with:
name: HydroponicsExpanded-${{ steps.get_version.outputs.result }}
path: output/

38
.github/workflows/go.mod vendored Normal file
View File

@@ -0,0 +1,38 @@
module github.com/Xevion/RimWorld-Hydroponics-Expanded
go 1.21.6
require (
github.com/PuerkitoBio/goquery v1.8.1 // indirect
github.com/andybalholm/cascadia v1.3.2 // indirect
github.com/antchfx/xmlquery v1.3.18 // indirect
github.com/antchfx/xpath v1.2.4 // indirect
github.com/fatih/color v1.16.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
github.com/sagikazarmark/locafero v0.4.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/sibprogrammer/xq v1.2.4 // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/cast v1.6.0 // indirect
github.com/spf13/cobra v1.8.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spf13/viper v1.18.2 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
go.uber.org/atomic v1.9.0 // indirect
go.uber.org/multierr v1.9.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

120
.github/workflows/go.sum vendored Normal file
View File

@@ -0,0 +1,120 @@
github.com/PuerkitoBio/goquery v1.8.1 h1:uQxhNlArOIdbrH1tr0UXwdVFgDcZDrZVdcpygAcwmWM=
github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ=
github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
github.com/antchfx/xmlquery v1.3.18 h1:FSQ3wMuphnPPGJOFhvc+cRQ2CT/rUj4cyQXkJcjOwz0=
github.com/antchfx/xmlquery v1.3.18/go.mod h1:Afkq4JIeXut75taLSuI31ISJ/zeq+3jG7TunF7noreA=
github.com/antchfx/xpath v1.2.4 h1:dW1HB/JxKvGtJ9WyVGJ0sIoEcqftV3SqIstujI+B9XY=
github.com/antchfx/xpath v1.2.4/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs=
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
github.com/sibprogrammer/xq v1.2.4 h1:56FcvbzUlZ3bjB4B3xU2Zw8G8tpQlynIkb/17NB1I2Y=
github.com/sibprogrammer/xq v1.2.4/go.mod h1:C62kkWd2f02kcC756Mlt2BS1084jPDpeOxEnC+bwlp0=
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ=
github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

5
.gitignore vendored
View File

@@ -1,3 +1,4 @@
.idea .idea
/Assemblies/*.dll Assemblies/*.dll
/Assemblies/*.pdb Assemblies/*.pdb
build/

View File

@@ -5,8 +5,8 @@
<author>Xevion</author> <author>Xevion</author>
<description>Provides simple but powerful hydroponics that store plants underground at the cost of expensive components, lots of power, and research.</description> <description>Provides simple but powerful hydroponics that store plants underground at the cost of expensive components, lots of power, and research.</description>
<supportedVersions> <supportedVersions>
<li>1.4</li> <li>1.5</li>
</supportedVersions> </supportedVersions>
<modVersion>0.1</modVersion> <modVersion>0.2.3</modVersion>
<url>https://github.com/Xevion/RimWorld-Hydroponics-Expanded</url> <url>https://github.com/Xevion/RimWorld-Hydroponics-Expanded</url>
</ModMetaData> </ModMetaData>

View File

@@ -38,6 +38,9 @@
<capacity>12</capacity> <capacity>12</capacity>
</li> </li>
</modExtensions> </modExtensions>
<researchPrerequisites>
<li>HE_HighDensityHydroponics</li>
</researchPrerequisites>
</ThingDef> </ThingDef>
</Defs> </Defs>

View File

@@ -6,4 +6,5 @@
<HydroponicsExpanded.HarvestStage>Waiting for all plants to be harvested.</HydroponicsExpanded.HarvestStage> <HydroponicsExpanded.HarvestStage>Waiting for all plants to be harvested.</HydroponicsExpanded.HarvestStage>
<HydroponicsExpanded.OccupiedBays>Occupied Plant Bays</HydroponicsExpanded.OccupiedBays> <HydroponicsExpanded.OccupiedBays>Occupied Plant Bays</HydroponicsExpanded.OccupiedBays>
<HydroponicsExpanded.Growth>Growth</HydroponicsExpanded.Growth> <HydroponicsExpanded.Growth>Growth</HydroponicsExpanded.Growth>
<HydroponicsExpanded.Resting>resting</HydroponicsExpanded.Resting>
</LanguageData> </LanguageData>

View File

@@ -8,6 +8,9 @@
</sub> </sub>
</div> </div>
<br>
[![badge-workshop-subscribers]][workshop-link] [![badge-workshop-favorites]][workshop-link] [![badge-version]][workshop-link]
Provides simple but powerful hydroponics that store plants underground at the cost of expensive components, lots of Provides simple but powerful hydroponics that store plants underground at the cost of expensive components, lots of
power, and research. power, and research.
@@ -24,7 +27,7 @@ expensive both in resources & power usage.
- Compact Hydroponics for growing many plants in a small space. - Compact Hydroponics for growing many plants in a small space.
- Balanced recipes with absurd power/recipe requirements for absurd density. - Balanced recipes with absurd power/recipe requirements for absurd density.
- Simple usage with relatively no changes compared to traditional Hydroponics. - Simple usage with relatively no changes compared to traditional Hydroponics.
- Strong compatability with few changes to Vanilla RimWorld. - Strong compatibility with few changes to Vanilla RimWorld.
## Compatibility ## Compatibility
@@ -66,6 +69,12 @@ preventing the crop from being sown in the hydroponics in the first place (there
[workshop-link]: https://steamcommunity.com/sharedfiles/filedetails/?id=3005196131 [workshop-link]: https://steamcommunity.com/sharedfiles/filedetails/?id=3005196131
[badge-version]: https://img.shields.io/badge/built_for-RimWorld_1.5-blue
[badge-workshop-subscribers]: https://img.shields.io/endpoint.svg?url=https://shieldsio-steam-workshop.jross.me/3005196131/subscriptions-text
[badge-workshop-favorites]: https://img.shields.io/endpoint.svg?url=https://shieldsio-steam-workshop.jross.me/3005196131/favourites-text
[hydroponics-basin]: https://rimworldwiki.com/wiki/Hydroponics_basin [hydroponics-basin]: https://rimworldwiki.com/wiki/Hydroponics_basin
[rimworld]: https://store.steampowered.com/app/294100/RimWorld/ [rimworld]: https://store.steampowered.com/app/294100/RimWorld/

View File

@@ -74,11 +74,17 @@ namespace HydroponicsExpanded {
// If the maximum capacity is reached, then we should move to the growing stage. // If the maximum capacity is reached, then we should move to the growing stage.
if (capacityReached) { if (capacityReached) {
Stage = HydroponicsStage.Grow;
// Some plants might have been skipped, so go back and kill anything still on top. // Some plants might have been skipped, so go back and kill anything still on top.
foreach (Plant plant in PlantsOnMe) foreach (Plant plant in PlantsOnMe)
plant.Destroy(); plant.Destroy();
// Play the sound effect to signal the transition to the grow stage.
SoundDefOf.CryptosleepCasket_Accept.PlayOneShot(new TargetInfo(Position, Map)); SoundDefOf.CryptosleepCasket_Accept.PlayOneShot(new TargetInfo(Position, Map));
Stage = HydroponicsStage.Grow;
// Set the highest growth to the tracked plant's growth, to ensure the bar is accurate.
_highestGrowth = ((Plant)_innerContainer[0]).Growth;
// Some active sowing jobs may be in progress for pathing, and thus will sow plants AFTER the stage // Some active sowing jobs may be in progress for pathing, and thus will sow plants AFTER the stage
// transition is made. This results in some weird looking random plants very rarely. // transition is made. This results in some weird looking random plants very rarely.
@@ -108,8 +114,7 @@ namespace HydroponicsExpanded {
} }
// Temperature & time of day check. // Temperature & time of day check.
float temperature = Position.GetTemperature(Map); if (IsResting() == false) {
if (temperature.Between(10f, 42f) && GenLocalDate.DayPercent(this).Between(0.25f, 0.8f)) {
float growthAmount = 1f / (60_000f * growthTrackingPlant.def.plant.growDays) * 250f; float growthAmount = 1f / (60_000f * growthTrackingPlant.def.plant.growDays) * 250f;
// Debug gizmo can set growth to 100%, thus Math.min check here. // Debug gizmo can set growth to 100%, thus Math.min check here.
@@ -123,10 +128,16 @@ namespace HydroponicsExpanded {
Stage = HydroponicsStage.Harvest; Stage = HydroponicsStage.Harvest;
} }
private void HarvestTick() { /// <summary>
// var plantsLeft = _innerContainer.Count; /// Determines whether the hydroponics basin is in a resting state.
// var potentialCellCount = this.OccupiedRect().Area; /// </summary>
/// <returns><c>true</c> if the hydroponics basin is in a resting state; otherwise, <c>false</c>.</returns>
private bool IsResting() {
float temperature = Position.GetTemperature(Map);
return !(temperature.Between(10f, 42f) && GenLocalDate.DayPercent(this).Between(0.25f, 0.8f));
}
private void HarvestTick() {
// Try to place every plant in the container in any cell. // Try to place every plant in the container in any cell.
foreach (Thing nextInnerThing in _innerContainer) { foreach (Thing nextInnerThing in _innerContainer) {
var nextPlant = (Plant)nextInnerThing; var nextPlant = (Plant)nextInnerThing;
@@ -234,13 +245,13 @@ namespace HydroponicsExpanded {
private static readonly Material HydroponicUnfilledMaterial = private static readonly Material HydroponicUnfilledMaterial =
SolidColorMaterials.SimpleSolidColorMaterial(new Color(0.3f, 0.3f, 0.3f)); SolidColorMaterials.SimpleSolidColorMaterial(new Color(0.3f, 0.3f, 0.3f));
public override void Draw() { protected override void DrawAt(Vector3 drawLoc, bool flip=false) {
base.Draw(); base.DrawAt(drawLoc, flip);
// Only draw growth percentage bar during Sowing stage // Only draw growth percentage bar during Sowing stage
if (_stage == HydroponicsStage.Grow) { if (_stage == HydroponicsStage.Grow) {
var bar = new GenDraw.FillableBarRequest { var bar = new GenDraw.FillableBarRequest {
center = DrawPos + Vector3.up * 0.1f, center = drawLoc + Vector3.up * 0.1f,
size = new Vector2(DrawSize.y - 0.4f, DrawSize.x - 0.4f), size = new Vector2(DrawSize.y - 0.4f, DrawSize.x - 0.4f),
margin = 0.15f, margin = 0.15f,
fillPercent = _highestGrowth, fillPercent = _highestGrowth,
@@ -285,6 +296,10 @@ namespace HydroponicsExpanded {
if (_innerContainer.Count > 0) { if (_innerContainer.Count > 0) {
inspectString += "\n"; inspectString += "\n";
inspectString += "HydroponicsExpanded.Growth".Translate() + $": {_highestGrowth * 100f:#0}%"; inspectString += "HydroponicsExpanded.Growth".Translate() + $": {_highestGrowth * 100f:#0}%";
if (IsResting()) {
inspectString += " (" + "HydroponicsExpanded.Resting".Translate() + ")";
}
} }
return inspectString; return inspectString;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <!-- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> -->
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -9,8 +9,9 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>HydroponicsExpanded</RootNamespace> <RootNamespace>HydroponicsExpanded</RootNamespace>
<AssemblyName>HydroponicsExpanded</AssemblyName> <AssemblyName>HydroponicsExpanded</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFramework>net472</TargetFramework>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
@@ -31,7 +32,7 @@
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <!-- <ItemGroup>
<Reference Include="Assembly-CSharp"> <Reference Include="Assembly-CSharp">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath> <HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
</Reference> </Reference>
@@ -45,15 +46,18 @@
<Reference Include="UnityEngine.CoreModule"> <Reference Include="UnityEngine.CoreModule">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath> <HintPath>..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup> -->
<ItemGroup> <ItemGroup>
<Compile Include="Buildings\Building_DenseHydroponicsBasin.cs" /> <!-- <Compile Include="Buildings\Building_DenseHydroponicsBasin.cs" />
<Compile Include="Enums\HydroponicsStage.cs" /> <Compile Include="Enums\HydroponicsStage.cs" />
<Compile Include="ModExtension\CapacityExtension.cs" /> <Compile Include="ModExtension\CapacityExtension.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Utility\BetweenExtension.cs" /> <Compile Include="Utility\BetweenExtension.cs" /> -->
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ItemGroup>
<PackageReference Include="Krafs.Rimworld.Ref" Version="1.5.4085" />
</ItemGroup>
<!-- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> -->
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">

View File

@@ -1,85 +0,0 @@
import glob
import logging
import shutil
import sys
from pathlib import Path
from shutil import rmtree
from typing import List
logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.DEBUG)
PROJECT_DIRECTORY: Path = Path(__file__).parent
def main(output_directory: Path) -> None:
# Check that output directory exists properly.
if not output_directory.exists():
# If the parent doesn't exist, we aren't going to create the folder.
if not output_directory.parent.exists():
raise RuntimeError("Cannot create more than one directory. Please check the output")
output_directory.mkdir(parents=False, exist_ok=False)
output_mod_directory: Path = output_directory / "HydroponicsExpanded"
# Folders that we need to be removed from the output directory if they contain any files.
pertinents_folders: List[str] = ["Defs", "Assemblies", "About", "Textures", "Languages"]
if output_mod_directory.exists():
logger.debug('Checking for folders to clear in destination.')
for folder in pertinents_folders:
destination_folder_path: Path = output_mod_directory / folder
# Ignore folders that don't exist.
if not destination_folder_path.exists():
continue
has_children: bool = any(destination_folder_path.iterdir())
logger.debug('Clearing "{}" folder.'.format(folder))
if has_children:
rmtree(destination_folder_path)
# destination_folder_path.rmdir()
else:
output_mod_directory.mkdir(parents=False)
patterns: List[str] = [
"About/",
"About/PublishedFileId.txt",
"About/About.xml",
"About/Preview.png",
"Assemblies/",
"Assemblies/HydroponicsExpanded.dll",
"Defs/**",
"Languages/**",
"Textures/**"
]
for pattern in patterns:
paths: List[Path] = list(map(Path, glob.glob(str(PROJECT_DIRECTORY / pattern), recursive=True)))
for source_path in paths:
relative_path: Path = source_path.relative_to(PROJECT_DIRECTORY)
destination_path: Path = output_mod_directory / relative_path
logger.debug("Copying from {} to {}".format(source_path, destination_path))
if source_path.is_dir():
destination_path.mkdir(exist_ok=True)
elif source_path.is_file():
shutil.copyfile(source_path, destination_path)
if __name__ == "__main__":
try:
output_directory: Path = PROJECT_DIRECTORY / "build"
if len(sys.argv) > 1:
output_directory = Path(sys.argv[1])
else:
logger.warning('Output directory automatically chosen.')
logger.debug('Project Directory: {}'.format(PROJECT_DIRECTORY))
logger.debug('Output Directory: {}'.format(output_directory))
main(output_directory)
except BaseException as e:
logger.error("Build script failed", exc_info=e)