From 9fa9778e3159e8989348df7b9d7414457d203909 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 25 Jun 2023 11:30:09 -0700 Subject: [PATCH 1/2] feat: Rework weighted cube FGD for new model/skin system --- fgd/point/prop/prop_weighted_cube.fgd | 75 +++++++++++++++++---------- 1 file changed, 48 insertions(+), 27 deletions(-) diff --git a/fgd/point/prop/prop_weighted_cube.fgd b/fgd/point/prop/prop_weighted_cube.fgd index 6e7d64686..95b8cc697 100644 --- a/fgd/point/prop/prop_weighted_cube.fgd +++ b/fgd/point/prop/prop_weighted_cube.fgd @@ -5,50 +5,40 @@ [ 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." = [ - 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" - ] - - 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." = - [ - 0: "Clean" - 1: "Rusted" + 0: "Standard Cube" + 1: "Reflection Cube" + 2: "Sphere (presses sphere buttons)" + 3: "Schrodinger's Cube" ] 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." = [ - "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" ] - 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" 4: "None" + 5: "Adhesion Gel" ] 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." = @@ -73,6 +63,37 @@ "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." From 799134f861be127b3e2788e210eb8b061319e42d Mon Sep 17 00:00:00 2001 From: Luke Date: Sat, 1 Jul 2023 18:13:26 -0700 Subject: [PATCH 2/2] feat: Turret FGD changes --- fgd/point/npc/npc_portal_turret_floor.fgd | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fgd/point/npc/npc_portal_turret_floor.fgd b/fgd/point/npc/npc_portal_turret_floor.fgd index fe2c698f1..62d4fdf2f 100644 --- a/fgd/point/npc/npc_portal_turret_floor.fgd +++ b/fgd/point/npc/npc_portal_turret_floor.fgd @@ -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 @@ -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"