Skip to content
This repository was archived by the owner on May 3, 2026. It is now read-only.

Commit f52a8df

Browse files
committed
Merge branch 'psc' into van-dev
2 parents e82b47e + 407ce5c commit f52a8df

30 files changed

Lines changed: 2724 additions & 240 deletions

.github/workflows/build-fgds.yml

Lines changed: 0 additions & 62 deletions
This file was deleted.

.github/workflows/build-postcompiler.yml

Lines changed: 0 additions & 87 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
name: Release
2+
on:
3+
push:
4+
branches:
5+
- psc
6+
7+
workflow_dispatch:
8+
9+
jobs:
10+
create-release:
11+
12+
runs-on: ubuntu-latest
13+
name: Create Release
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- run: git fetch --tags origin
19+
20+
- name: Get previous tag
21+
id: previoustag
22+
uses: 'WyriHaximus/github-action-get-previous-tag@v1'
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25+
26+
- name: Next Monotonic Release version
27+
id: next
28+
uses: WyriHaximus/github-action-next-release-version@08a7476c98e8095fad1cce0e2344c7892e17d111
29+
with:
30+
version: ${{ steps.previoustag.outputs.tag }}
31+
32+
- name: Create Release
33+
uses: softprops/action-gh-release@v1
34+
if: ${{ github.event.inputs.version == '' }}
35+
with:
36+
tag_name: ${{ steps.next.outputs.version }}
37+
38+
39+
build-fgd:
40+
runs-on: ubuntu-latest
41+
needs: create-release
42+
if: ${{ always() && !cancelled() && needs.create-release.result == 'success' }}
43+
steps:
44+
- name: Checkout
45+
uses: actions/checkout@v4
46+
47+
- name: Setup Python
48+
uses: actions/setup-python@v5
49+
with:
50+
python-version: '3.13'
51+
cache: 'pip'
52+
cache-dependency-path: 'requirements.txt'
53+
54+
- name: Install dependencies
55+
run: |
56+
python -m pip install -r requirements.txt
57+
58+
- name: Build FGD patch
59+
run: python ./src/hammeraddons/unify_fgd.py -d ./fgd export_pcp -o patch.fgd P2CE
60+
61+
- run: git fetch --tags origin
62+
63+
- name: Get previous tag
64+
id: previoustag
65+
uses: 'WyriHaximus/github-action-get-previous-tag@v1'
66+
env:
67+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68+
69+
- name: Upload to release
70+
uses: softprops/action-gh-release@v1
71+
if: ${{ github.event.inputs.version == '' }}
72+
with:
73+
tag_name: ${{ steps.previoustag.outputs.tag }}
74+
files: patch.fgd
75+
fail_on_unmatched_files: true
76+
77+
78+
79+
build:
80+
strategy:
81+
matrix:
82+
os: [ubuntu-latest, windows-latest]
83+
84+
runs-on: ${{ matrix.os }}
85+
86+
needs: create-release
87+
if: ${{ always() && !cancelled() && needs.create-release.result == 'success' }}
88+
steps:
89+
- name: Checkout
90+
uses: actions/checkout@v4
91+
92+
- name: Setup Python
93+
uses: actions/setup-python@v5
94+
with:
95+
python-version: '3.13'
96+
cache: 'pip'
97+
cache-dependency-path: 'requirements.txt'
98+
99+
- name: Install dependencies
100+
run: |
101+
python -m pip install -r requirements.txt
102+
103+
- run: |
104+
cd src
105+
python -m PyInstaller --distpath ../dist/ --workpath ../pc_build -y ../postcompiler.spec
106+
shell: bash
107+
108+
- name: Pack files
109+
uses: TheDoctor0/zip-release@0.7.6
110+
with:
111+
filename: Release-${{ runner.os }}.zip
112+
directory: ./dist/
113+
114+
- run: git fetch --tags origin
115+
116+
- name: Get previous tag
117+
id: previoustag
118+
uses: 'WyriHaximus/github-action-get-previous-tag@v1'
119+
env:
120+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
121+
122+
- name: Upload to release
123+
uses: softprops/action-gh-release@v1
124+
if: ${{ github.event.inputs.version == '' }}
125+
with:
126+
tag_name: ${{ steps.previoustag.outputs.tag }}
127+
files: dist/Release-${{ runner.os }}.zip
128+
fail_on_unmatched_files: true

fgd/bases/ControlEnables.fgd

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
@BaseClass = ControlEnables: "A pair of keyvalues for specifying if a comp_ entity is enabled."
1+
@BaseClass
2+
appliesto(srctools)
3+
= ControlEnables: "A pair of keyvalues for specifying if a comp_ entity is enabled."
24
[
35
ctrl_type[engine](boolean) : "Invert Value?" : 0
46
ctrl_type(choices) : "Control Type" : 0 : "Controls how the Control Value is interpreted" =

fgd/bases/PlayerInputs.fgd

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
@BaseClass base(BaseEntityInputs) = PlayerInputs: "The inputs that can be fired on the player, for entities that pass through those."
1+
@BaseClass
2+
base(BaseEntityInputs)
3+
appliesto(-STRATA) // Strata HACK: Does not exist in mainline repo yet, so disabling this
4+
= PlayerInputs: "The inputs that can be fired on the player, for entities that pass through those."
25
[
36
input IgnoreFallDamage[HL2, P1](float) : "Prevent the player from taking fall damage for [n] seconds, but reset back to taking fall damage after the first impact (so players will be hurt if they bounce off what they hit)."
47
input IgnoreFallDamageWithoutReset[HL2, P1](float) : "Absolutely prevent the player from taking fall damage for [n] seconds. "

fgd/bases/SRCModel.fgd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@BaseClass appliesto(+P2, +srctools ,-Strata)
1+
@BaseClass appliesto(+P2, +srctools, -STRATA) // We already have this in P2CE
22
= SRCModel: "Adds keyvalues to set a custom model."
33
[
44
comp_custom_model_type[srctools, -engine](boolean) : "[HA] Override Model" : 0 : "If enabled, automatically pack a VScript to override the entity's model on spawn."+

fgd/point/comp/comp_choreo_sceneset.fgd

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
= comp_choreo_sceneset:
55
"Chains a set of choreographed scenes together."
66
[
7-
play_dings[P2](boolean): "Play Dings" : 1 : "Play the Aperture blip sounds at the start and end."
8-
delay(float): "Delay between each" : "0.1" : "Add a delay between each scene."
7+
play_dings[P2](boolean): "Play Dings" : 0 : "Play the Aperture blip sounds at the start and end."
8+
delay(float): "Delay between each" : "0.25" : "Add a delay between each scene."
99
only_once(boolean): "Clean up after starting" : 1 : "If set, Kill choreo scenes after starting so they only play once." +
1010
"If set, the Cancel input will not work properly."
1111

12+
enable_microphone(boolean): "Enable Microphone" : 0 : "For unspatialized dialogue, enable the microphone to transmit audio directly to the player."
13+
microphone_name(target_destination): "Microphone Name" : "@ACTOR_MICROPHONE" : "The microphone to use if Enable Microphone is set to true."
14+
1215
busyactor[engine](integer) : "If an Actor is talking..." : 1 : "What to do if an actor this scene needs is already talking when this scene is told to start."
1316
busyactor(choices) : "If an Actor is talking..." : 1 : "What to do if an actor this scene needs is already talking when this scene is told to start." =
1417
[

fgd/point/comp/comp_io_bridge.fgd

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
@PointClass
2+
iconsprite("editor/comp_io_bridge")
3+
appliesto(srctools)
4+
autovis(Postcompiler, Comp IO Bridge)
5+
= comp_io_bridge : "Make an Input/Output bridge between entities of this class. " +
6+
"Any output fired to this entity will get relayed to the link entity (same classname and targetname). " +
7+
"So for example firing 'Something' to this entity will make every link entity output 'Something', like in 'Something' > target_ent > Enable ..."
8+
[
9+
targetname(target_source) : "Name" : : "The name that other entities refer to this entity by. Entities with this name are linked together."
10+
11+
input Relay1(void) : "Example input, for convenience."
12+
input Relay2(void) : "Example input, for convenience."
13+
input Relay3(void) : "Example input, for convenience."
14+
input Relay4(void) : "Example input, for convenience."
15+
16+
output Relay1(void) : "Fired in response to Relay1 input on any linked entity (not us)."
17+
output Relay2(void) : "Fired in response to Relay2 input on any linked entity (not us)."
18+
output Relay3(void) : "Fired in response to Relay3 input on any linked entity (not us)."
19+
output Relay4(void) : "Fired in response to Relay4 input on any linked entity (not us)."
20+
21+
]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
@PointClass
2+
iconsprite("editor/light.vmt")
3+
autovis(Postcompiler)
4+
color(255 0 0)
5+
sphere(_fifty_percent_distance)
6+
sphere(_zero_percent_distance)
7+
sphere(_distance)
8+
sphere(_hard_radius_override)
9+
clusteredlight(point)
10+
appliesto(srctools)
11+
autovis(Postcompiler)
12+
= comp_light_bounce: "Generates bounced lighting (only) without direct lighting. Internally a light_rt."
13+
[
14+
_light(color255) : "Brightness" : "255 255 255 200" : "Color and brightness of the light."
15+
_lightHDR(color255) : "BrightnessHDR" : "-1 -1 -1 1"
16+
_lightscaleHDR(float) : "BrightnessScaleHDR" : 1 : "Amount to scale the light by when compiling for HDR."
17+
18+
linedivider_color(string) readonly : "-------------------------------------------------------------------------------------------------------"
19+
20+
_constant_attn(string) : "Constant" : 0
21+
_linear_attn(string) : "Linear" : 0
22+
_quadratic_attn(string) : "Quadratic" : 1
23+
_fifty_percent_distance(string) : "50 percent falloff distance" : 0 : "Distance at which brightness should fall off to 50%. If set, overrides linear constant and quadratic parameters."
24+
_zero_percent_distance(string) : "0 percent falloff distance" : 0 : "Distance at which brightness should fall off to negligible (1/256)%. Must set _fifty_percent_distance to use."
25+
26+
linedivider_falloff(string) readonly : "-------------------------------------------------------------------------------------------------------"
27+
28+
_hardfalloff(integer) : "Hard Falloff" : 0 : "If set, causes lights to fall to exactly zero beyond the zero percent distance. May cause unrealistic lighting if not used carefully."
29+
_distance(integer) : "Maximum Distance" : 0 : "The distance that light is allowed to cast."
30+
_hard_radius_threshold(float) : "Hard radius minimum brightness threshold" : 32
31+
_hard_radius_override(float) : "Hard radius override" : 0
32+
33+
]

0 commit comments

Comments
 (0)