Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions fgd/bases/PaintableProp.fgd
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@BaseClass
appliesto(P2CE)
= PaintableProp
[
output OnPainted(integer): "Fired when the prop has been painted with a new paint type, other than cleansing gel. The parameter is the paint type number."
output OnUnPainted(void): "Fired when the prop has been cleaned after being painted."
]
1 change: 1 addition & 0 deletions fgd/point/info/info_portal_gamerules.fgd
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@
1: "Basic paint gun"
2: "Fully-upgraded paint gun"
]
showportalpaintprops(boolean) : "Show Conversion Gel on Props" : 0 : "Force Conversion Gel to be visible on props like cubes and turrets. This should be set for situations where this serves some gameplay purpose."
maxhealth(integer) : "Maximum player health" : 100 : "Specifies the maximum health limit for players."
]
8 changes: 4 additions & 4 deletions fgd/point/npc/npc_portal_turret_floor.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@PointClass base(BaseNPC)
@PointClass base(BaseNPC, PaintableProp)
appliesto(P2CE)
studioprop()
frustum(_frustum_fov, _frustum_near, TurretRange, _frustum_color, -1)
Expand All @@ -18,10 +18,11 @@
modelindex(choices) : "Model" : 0 : "Which model the turret uses. The skeleton turret is still functional." =
[
0: "Normal"
1: "Custom Model"
1: "Custom Model (old gel skins)"
2: "Box"
3: "Backwards"
4: "Skeleton"
5: "Custom Model (new gel skins)"
]

skinnumber[engine](integer) : "Skin" : 0
Expand All @@ -48,7 +49,7 @@
]

model[engine](studio) : "Custom Model" : "models/npcs/turret/turret.mdl"
model(choices) : "Custom Model" : "models/npcs/turret/turret.mdl" : "The model to show as in Hammer, or a custom model to use." =
model(choices) : "Custom Model" : "models/npcs/turret/turret.mdl" : "The model to show as in Hammer, or a custom model to use. You can type/paste in a model path here." =
[
"models/npcs/turret/turret.mdl": "Normal"
"models/npcs/turret/turret_boxed.mdl": "Box"
Expand Down Expand Up @@ -87,5 +88,4 @@
output OnExplode(void) : "Turret has exploded."
output OnPhysGunPickup(void) : "Turret was picked up by player."
output OnPhysGunDrop(void) : "Turret was dropped by player."
output OnPainted(void) : "Fires when the turret is first painted or if repainted by a different color."
]
2 changes: 1 addition & 1 deletion fgd/point/prop/prop_monster_box.fgd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@PointClass base(BaseEntityPhysics)
@PointClass base(BaseEntityPhysics, PaintableProp)
appliesto(P2CE)
studioprop()
= prop_monster_box: "Frankencubes: turrets shoved into storage cube chassis that walk erratically when oriented correctly, but behave identically to standard cubes."
Expand Down
11 changes: 8 additions & 3 deletions fgd/point/prop/prop_physics_paintable.fgd
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
@PointClass base(prop_physics)
@PointClass base(prop_physics, PaintableProp)
appliesto(P2CE)
sphere(fademindist)
sphere(fademaxdist)
studioprop()
= prop_physics_paintable: "A version of prop_physics that can be painted by Gel. Does not appear to show up on the model."
= prop_physics_paintable: "A version of prop_physics that can be painted by Gel."
[
paintpower[engine](integer) : "Paint Power" : 4
paintpower(choices) : "Paint Power" : 4 : "The starting gel type for the prop." =
[
0: "Repulsion Gel"
1: "Adhesion Gel"
1: "Reflection Gel"
2: "Propulsion Gel"
3: "Conversion Gel"
5: "Adhesion Gel"
4: "None"
]
cleanskin(integer) : "Unpainted Skin" : -1 : "The skin to switch to whenever this is cleaned. Painted skin must also be set."
paintskin(integer) : "Painted Skin" : -1 : "The skin to switch to whenever this is painted. Unpainted skin must also be set."

input SetPaintedSkin(integer) : "Set the skin to use whenever this is painted. If currently painted the prop will swap skins."
input SetUnpaintedSkin(integer) : "Set the skin to use whenever this is not painted. If currently unpainted the prop will swap skins."
]
87 changes: 58 additions & 29 deletions fgd/point/prop/prop_weighted_cube.fgd
Original file line number Diff line number Diff line change
@@ -1,54 +1,53 @@
@PointClass base(BasePropPhysics)
@PointClass base(BasePropPhysics, PaintableProp)
appliesto(P2CE)
studioprop()
= prop_weighted_cube: "Aperture Science Weighted Cube. Presses floor buttons, and can be moved around."
[
line_cube[-engine](string) readonly : "----------------------------------------------------------------------------------------------------------" : ""

cubetype[engine](integer) : "Cube Type" : 0
cubetype(choices) : "Cube Type" : "0" : "What cube type is this? Use a prop_monster_box for FrankenTurrets. " +
"If set to Custom, use AddOutput to change it back OnMapSpawn so gel skins behave correctly." =
CubeBehavior[engine](integer) : "Cube Behavior" : 0
CubeBehavior(choices) : "Cube Behavior" : 0 : "How does this cube function? Use a prop_monster_box for Frankenturrets. If Auto, this is chosen based on the cube model." =
[
0: "[0] Weighted Storage Cube"
1: "[1] Weighted Companion Cube"
2: "[2] Discouragement Redirection Cube"
3: "[3] Edgeless Safety Cube"
4: "[4] Antique Storage Cube"
5: "[5] Schrodinger's Cube"
6: "[6] Custom model"
0: "Auto (from model)"
1: "Standard Cube"
2: "Reflection Cube"
3: "Schrodinger's Cube"
]

skintype[engine](boolean) : "Skin Type" : 0
skintype(choices) : "Skin Type" : "0" : "Is the cube clean or rusty? Storage and Reflection cubes are the only types with a rusty version." =
CubeShape[engine](integer) : "Cube Shape" : 0
CubeShape(choices) : "Cube Behavior" : 0 : "What shape is this cube? This determines how it presses buttons. If Auto, this is chosen based on the cube model." =
[
0: "Clean"
1: "Rusted"
0: "Auto (from model)"
1: "Cubic"
2: "Spherical"
]

model[engine](studio) : "Model" : ""
model(choices) : "Model" : "models/props/metal_box.mdl" : "The model to show in Hammer, or a custom model for cube type 6." =
model(choices) : "Cube Model" : "models/props/cubes/standard_cube.mdl" : "What model to use. You can also type/paste in a custom model path here. " +
"If using a custom model, Cube Behavior and Shape must be set." =
[
"models/props/metal_box.mdl": "Weighted Storage/Companion Cube"
"models/props/reflection_cube.mdl": "Discouragement Redirection"
"models/props_gameplay/mp_ball.mdl": "Edgeless Safety"
"models/props_underground/underground_weighted_cube.mdl": "Antique"
"models/props/schrodinger_cube.mdl": "Schrodinger"
"models/props/cubes/standard_cube.mdl": "Weighted Storage Cube"
"models/props/cubes/standard_cube_rusty.mdl": "Weighted Storage Cube (rusty)"
"models/props/cubes/companion_cube.mdl": "Weighted Companion Cube"
"models/props/cubes/reflection_cube.mdl": "Discouragement Redirection Cube"
"models/props/cubes/reflection_cube_rusty.mdl": "Discouragement Redirection Cube (rusty)"
"models/props/cubes/sphere.mdl": "Edgeless Safety Cube"
"models/props/cubes/antique_cube.mdl": "Antique Cube"
"models/props/cubes/schrodinger_cube.mdl": "Schrodinger's Cube"
"models/props/cubes/schrodinger_cube_rusty.mdl": "Schrodinger's Cube (rusty)"
]

skin(integer) : "Skin" : 0 : "The old skin property, mainly to show in Hammer. "

paintpower[engine](integer) : "Starting Paint" : 4
paintpower(choices) : "Starting paint" : "4" : "The cube starts painted with the set gel." =
[
0: "Repulsion Gel"
1: "Adhesion Gel"
1: "Reflection Gel"
2: "Propulsion Gel"
3: "Conversion Gel"
5: "Adhesion Gel"
4: "None"
]

allowfunnel(boolean) : "Allow Portal Funneling" : 1 : "Whether or not this object should auto-funnel into a floor portal."
newskins(integer) readonly : "Use new skins" : 1 : "Use the values in the Cube Type and Skin Type fields instead of the Skin(OLD) field. You shouldn't need to touch this."

uselasermodifier(boolean) : "Use Laser Modifier" : 0 : "If enabled, this cube will recolor incoming lasers to the modifier color."
reflectmodifycolor(choices) : "Laser Modifier Color" : "255 0 0 255" : "Set reflected lasers to this color. Only applicable to reflection and Schrodinger cubes. You can also specify a custom RGBA color here." =
Expand All @@ -73,13 +72,44 @@
"65 97 0 255" : "Dark Green"
]

line_cube_oldskins(string) readonly : "----------------------------------------------------------------------------------------------------------"

newskins[engine](integer) : "Configuration Mode" : 2
newskins(choices) : "Configuration Mode" : 2 : "How cube models and behaviors are selected. This determines which of the other keyvalues are used and is present for backwards compatibility." =
[
2: "New style (behavior/model)"
1: "Old style (cube type/skin type)"
0: "Oldest style (skin)"
]

cubetype[engine](integer) : "Cube Type (old)" : 0
cubetype(choices) : "Cube Type (old)" : 0 : "The old cube type keyvalue, which overrides the model and behavior." =
[
0: "[0] Weighted Storage Cube"
1: "[1] Weighted Companion Cube"
2: "[2] Discouragement Redirection Cube"
3: "[3] Edgeless Safety Cube"
4: "[4] Antique Storage Cube"
5: "[5] Schrodinger's Cube"
6: "Custom model (old)"
]

skintype[engine](boolean) : "Skin Type (old)" : 0
skintype(choices) : "Skin Type (old)" : 0 : "The old skin type keyvalue. Storage and Reflection cubes are the only types with a rusty version." =
[
0: "Clean"
1: "Rusted"
]

skin(integer) : "Skin" : 0 : "The old skin keyvalue, mainly to show in Hammer."

// Inputs
input EnablePortalFunnel(void) : "Enable portal funneling behavior."
input DisablePortalFunnel(void) : "Disable portal funneling behavior."
input EnableMotion(void) : "Allow physics simulation."
input DisableMotion(void) : "Prevent Physics simulation, freezing the cube in place."
input DisableMotion(void) : "Prevent physics simulation, freezing the cube in place."
input ExitDisabledState(void) : "Exits the disabled state of a reflective cube."
input SetPaint(integer) : "Force the cube to be painted with 0 (Repulsion), 2 (Propulsion), or 4 (No) gel."
input SetPaint(integer) : "Force the cube to be painted with 0 (Repulsion), 1 (Reflection), 2 (Propulsion), 3 (Conversion) or 4 (No) gel."

input SetReflectModifyColor(color255) : "Changes the laser modifier colour of the cube."
input SetReflectFilterColor(color255) : "Changes the laser filter colour of the cube."
Expand All @@ -91,7 +121,6 @@
output OnBluePickUp(void) : "ATLAS picked up the cube."
output OnPlayerPickup(void) : "Any player picked up the cube."
output OnPhysGunDrop(void) : "Any player dropped the cube."
output OnPainted(integer) : "Cube got painted, only if the state changed. Has the paint type as parameter."
output OnPowered(void) : "Cube got powered by a laser."
output OnUnpowered(void) : "Cube is no longer powered by a laser."
output OnActivated(void) : "Fired when a cube is placed on a button."
Expand Down