diff --git a/.gitignore b/.gitignore index 6bc292c32..a795be512 100644 --- a/.gitignore +++ b/.gitignore @@ -43,4 +43,8 @@ Icon *.filelist.txt *.bsp +# Output of "compiled" FGDs build/ + +# Blender backup files +*.blend1 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..3852a2d03 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "mapbase-fgds"] + path = mapbase-fgds + url = https://github.com/mapbase-source/source-fgds.git diff --git a/README.md b/README.md index 51513994b..56d1cb4e5 100644 --- a/README.md +++ b/README.md @@ -51,3 +51,8 @@ This implements a dynamic vactube system in a similar way to Valve's system, inc * For droppers, simply place the supplied `instances/cubedropper/dropper_vactube.vmf` instance, and run a path up to the vactube end entity in the top. Place a `prop_weighted_cube` inside the dropper to specify which cube type it will spawn. The specific route leading to the dropper will be detected and only replacement cubes will be sent this way. You'll want to add a splitter just before the dropper, so the tube can have decorative items flowing through it constantly. * To place the vactube scanner TVs, simply add a "straight"-type junction inside the model, then place the `prop_dynamic`s for the screen and optionally the spinner. The screen will need the supplied `_new` model, so both orientations have all the skins. They will automatically be detected and flash on when objects pass. * To avoid visual collisions, you may want to turn off the automatic spawning on one or more spawn points, then use the outputs on a junction to manually spawn objects in sync with another path. + + +# Development + +* Mapbase's FGDs have been imported as a submodule, to track which version has been merged into this repo. diff --git a/build.bat b/build.bat index 20b41b468..f03095b17 100644 --- a/build.bat +++ b/build.bat @@ -9,3 +9,4 @@ python unify_fgd.py exp asw srctools -o "build/asw.fgd" python unify_fgd.py exp l4d srctools -o "build/l4d.fgd" python unify_fgd.py exp l4d2 srctools -o "build/l4d2.fgd" python unify_fgd.py exp infra srctools -o "build/infra.fgd" +python unify_fgd.py exp mesa srctools -o "build/blackmesa.fgd" diff --git a/db/factories/mesa.txt b/db/factories/mesa.txt new file mode 100644 index 000000000..300326e1f --- /dev/null +++ b/db/factories/mesa.txt @@ -0,0 +1,675 @@ +_firesmoke +_plasma +ai_ally_manager +ai_ally_speech_manager +ai_baseflyergeneric +ai_battle_line +ai_changehintgroup +ai_changetarget +ai_goal_actbusy +ai_goal_actbusy_queue +ai_goal_assault +ai_goal_follow +ai_goal_lead +ai_goal_lead_weapon +ai_goal_operator +ai_goal_standoff +ai_goal_throw_prop +ai_hint +ai_network +ai_relationship +ai_script_conditions +ai_sound +ai_speechfilter +aiscripted_schedule +aitesthull +ambient_generic +animated_follower +assault_assaultpoint +assault_rallypoint +beam +beamteam +blackmesa_crossbow_tracer +blackmesa_loading_screen_generator +blackmesa_mp_coop_gamerules +blackmesa_mp_gamerules +blackmesa_mp_teamplay_gamerules +blackmesa_sp_gamerules +blackmesa_viewmodel +bmortar +bms_bot +bot_zombie +bspitwave +camera_death +color_correction +color_correction_volume +commentary_auto +cycler_actor +cycler_flex +director_resource +dynamic_prop +entity_blocker +entity_player_base +entityflame +env_beam +env_beverage +env_blood +env_bubbles +env_cascade_light +env_cascade_volume +env_credits +env_debughistory +env_detail_controller +env_dispenser +env_doppler_emitter +env_dustpuff +env_dusttrail +env_effectscript +env_embers +env_entity_dissolver +env_entity_igniter +env_entity_maker +env_explosion +env_fade +env_fire +env_fire_trail +env_firesensor +env_firesource +env_fog_controller +env_funnel +env_gargantua_flame +env_gibshooter +env_global +env_glow +env_gon_mortar_area +env_gravity +env_gunfire +env_holo_emitter +env_hudhint +env_introcredits +env_laser +env_laser_dot +env_lensflare +env_lightglow +env_material_timer +env_message +env_microphone +env_mine +env_mortar_controller +env_mortar_launcher +env_movieexplosion +env_muzzleflash +env_particle_beam +env_particle_performance_monitor +env_particle_tesla +env_particle_trail +env_particlefire +env_particlelight +env_particlescript +env_particlesmokegrenade +env_physexplosion +env_physimpact +env_physwire +env_pinch +env_player_surface_trigger +env_quadraticbeam +env_ragdoll_boogie +env_rockettrail +env_rotorshooter +env_rotorwash_emitter +env_screeneffect +env_screenoverlay +env_shake +env_shooter +env_smokestack +env_smoketrail +env_soundscape +env_soundscape_proxy +env_soundscape_triggerable +env_spark +env_speaker +env_splash +env_sporeexplosion +env_sporetrail +env_sprite +env_sprite_nointerp +env_sprite_oriented +env_spritetrail +env_starfield +env_steam +env_steamjet +env_sun +env_texturetoggle +env_tonemap_controller +env_tracer +env_tram_screen +env_viewpunch +env_wind +env_xen_healpool +env_xen_healshower +env_xen_portal +env_xen_portal_effect +env_xen_portal_template +env_xen_pushpad +env_zoom +event_queue_saveload_proxy +filter_activator_class +filter_activator_flag +filter_activator_mass_greater +filter_activator_model +filter_activator_name +filter_activator_team +filter_base +filter_damage_class +filter_damage_type +filter_enemy +filter_multi +fish +fog_volume +func_50cal +func_areaportal +func_areaportalwindow +func_breakable +func_breakable_surf +func_brush +func_button +func_clip_vphysics +func_conveyor +func_conveyor_bms +func_detail_blocker +func_door +func_door_rotating +func_dustcloud +func_dustmotes +func_fish_pool +func_guntarget +func_illusionary +func_instance_io_proxy +func_ladderendpoint +func_lod +func_minefield +func_monitor +func_movelinear +func_nav_avoid +func_nav_avoidance_obstacle +func_nav_blocker +func_nav_prefer +func_nav_prerequisite +func_occluder +func_physbox +func_physbox_multiplayer +func_plat +func_platrot +func_precipitation +func_proprrespawnzone +func_pushable +func_reflective_glass +func_rot_button +func_rotating +func_simpleladder +func_smokevolume +func_tank +func_tank_combine_cannon +func_tankairboatgun +func_tanklaser +func_tankmortar +func_tankphyscannister +func_tanktrain +func_tow +func_tow_mp +func_trackautochange +func_trackchange +func_tracktrain +func_train +func_traincontrols +func_useableladder +func_vehicleclip +func_wall +func_wall_toggle +func_water +func_water_analog +func_weight_button +funCBaseFlex +game_end +game_mp_gamerules +game_player_equip +game_player_team +game_ragdoll_manager +game_round_start +game_round_win +game_score +game_text +game_ui +game_weapon_manager +game_zone_player +generic_actor +gib +gibshooter +godrays_settings +grenade +grenade_apache_rpg +grenade_bolt +grenade_frag +grenade_hornet +grenade_mortar +grenade_mortar_large +grenade_mortar_small +grenade_mp5_contact +grenade_nuke +grenade_rpg +grenade_satchel +grenade_spit +grenade_tank_shell +grenade_tow +grenade_tripmine +hammer_updateignorelist +handle_dummy +handle_test +info_camera_link +info_constraint_anchor +info_dlightmap_update +info_hint +info_intermission +info_ladder +info_ladder_dismount +info_landmark +info_lighting_relative +info_mass_center +info_nihilanth_summon +info_node +info_node_air +info_node_air_hint +info_node_climb +info_node_hint +info_node_link +info_node_link_controller +info_npc_spawn_destination +info_null +info_observer_menu +info_overlay_accessor +info_particle_system +info_player_deathmatch +info_player_marine +info_player_scientist +info_player_start +info_projecteddecal +info_radial_link_controller +info_snipertarget +info_stopallsounds +info_target +info_target_command_point +info_target_helicoptercrash +info_teleport_destination +info_timescale_controller +infodecal +instanced_scripted_scene +item_ammo_357 +item_ammo_box +item_ammo_canister +item_ammo_crate +item_ammo_crossbow +item_ammo_energy +item_ammo_glock +item_ammo_mp5 +item_ammo_shotgun +item_battery +item_crate +item_grenade_mp5 +item_grenade_rpg +item_healthcharger +item_healthkit +item_healthkit_ragdoll_clone +item_healthvial +item_longjump +item_snark_grenade +item_sodacan +item_suit +item_suitcharger +item_syringe +item_tow_missile +item_weapon_357 +item_weapon_assassin_glock +item_weapon_crossbow +item_weapon_crowbar +item_weapon_frag +item_weapon_glock +item_weapon_gluon +item_weapon_hivehand +item_weapon_mp5 +item_weapon_rpg +item_weapon_satchel +item_weapon_shotgun +item_weapon_snark +item_weapon_tau +item_weapon_tripmine +keyframe_rope +keyframe_track +light +light_dynamic +light_environment +light_glspot +light_spot +logic_achievement +logic_active_autosave +logic_auto +logic_autosave +logic_branch +logic_branch_listener +logic_case +logic_choreographed_scene +logic_collision_pair +logic_compare +logic_lineto +logic_measure_movement +logic_multicompare +logic_navigation +logic_parent +logic_playerproxy +logic_proximity +logic_register_activator +logic_relay +logic_scene_list_manager +logic_timer +material_modify_control +material_timer +math_colorblend +math_counter +math_remap +misc_dead_hev +misc_marionettist +misc_psychokinesis_projectile +misc_xen_healing_pylon +misc_xen_shield +misc_xen_shield_panel +momentary_door +momentary_rot_button +monster_furniture +monster_generic +mortarshell +move_keyframed +move_rope +mp_round_time +multisource +music_track +newlight_dir +newlight_point +newlight_spot +newlights_gbuffersettings +newLights_settings +newLights_Spawner +newxog_global +newxog_settings +newxog_volume +nihianimbeam +nihiballz +nihilanth_pylon +nihiportals_teleprops +nihiportalsbase +npc_abrams +npc_alien_controller +npc_alien_grunt +npc_alien_grunt_elite +npc_alien_grunt_melee +npc_alien_slave +npc_alien_slave_dummy +npc_apache +npc_barnacle +npc_barnacle_tongue_tip +npc_beneathticle +npc_boid +npc_boid_flock +npc_bullseye +npc_bullsquid +npc_bullsquid_melee +npc_crow +npc_eli +npc_furniture +npc_gargantua +npc_gman +npc_Gonarch +npc_headcrab +npc_headcrab_baby +npc_headcrab_black +npc_headcrab_fast +npc_headcrab_poison +npc_hecu_marine +npc_houndeye +npc_houndeye_knockback +npc_houndeye_suicide +npc_human_assassin +npc_human_commander +npc_human_grenadier +npc_human_grunt +npc_human_medic +npc_human_scientist +npc_human_scientist_eli +npc_human_scientist_female +npc_human_scientist_kleiner +npc_human_security +npc_ichthyosaur +npc_kleiner +npc_lav +npc_leech +npc_maker +npc_nihilanth +npc_osprey +npc_pigeon +npc_plantlight +npc_plantlight_stalker +npc_protozoan +npc_puffballfungus +npc_seagull +npc_sentry_ceiling +npc_sentry_ground +npc_snark +npc_sniper +npc_template_maker +npc_tentacle +npc_vehicledriver +npc_vortigaunt +npc_xen_grunt +npc_xentacle +npc_xentree +npc_xenturret +npc_xontroller +npc_xort +npc_xortEB +npc_zombie_grunt +npc_zombie_grunt_torso +npc_zombie_hev +npc_zombie_scientist +npc_zombie_scientist_torso +npc_zombie_security +path_corner +path_corner_crash +path_track +phys_ballsocket +phys_bone_follower +phys_constraint +phys_constraintsystem +phys_convert +phys_hinge +phys_keepupright +phys_lengthconstraint +phys_magnet +phys_motor +phys_pulleyconstraint +phys_ragdollconstraint +phys_ragdollmagnet +phys_slideconstraint +phys_spring +phys_thruster +phys_torque +physics_cannister +physics_entity_solver +physics_npc_solver +physics_prop +physics_prop_ragdoll +player +player_loadsaved +player_manager +player_pickup +player_ragdoll +player_speedmod +player_weaponstrip +point_anglesensor +point_angularvelocitysensor +point_bonusmaps_accessor +point_camera +point_clientcommand +point_commentary_node +point_commentary_viewpoint +point_devshot_camera +point_enable_motion_fixup +point_gamestats_counter +point_hurt +point_message +point_playermoveconstraint +point_posecontroller +point_proximity_sensor +point_push +point_servercommand +point_spotlight +point_teleport +point_template +point_tesla +point_velocitysensor +point_viewcontrol +point_viewcontrol_multiplayer +point_viewproxy +point_weaponstrip +projectile_electric_ball +projectile_electric_ball_large +projectile_electrocluster_chunk +projectile_electrocluster_intermediate +projectile_electrocluster_parent +projectile_thunderball +prop_barrel_cactus +prop_barrel_cactus_adolescent +prop_barrel_cactus_exploder +prop_barrel_cactus_infant +prop_barrel_cactus_semilarge +prop_barrel_interloper +prop_barrel_interloper_small +prop_bonemerge +prop_charger_touch_trigger +prop_coreball +prop_door_rotating +prop_dynamic +prop_dynamic_ornament +prop_dynamic_override +prop_dynamic_playertouch +prop_flare +prop_hev_charger +prop_nihi_shield +prop_nihi_shield_front +prop_physics +prop_physics_multiplayer +prop_physics_override +prop_physics_psychokinesis +prop_physics_respawnable +prop_physics_teleprop +prop_radiation_charger +prop_ragdoll +prop_ragdoll_attached +prop_ragdoll_original +prop_retinalscanner +prop_scalable +prop_soda +prop_sphere +prop_surgerybot +prop_train_apprehension +prop_train_awesome +prop_vehicle +prop_vehicle_driveable +prop_web_burnable +prop_xen_grunt_pod +prop_xen_grunt_pod_dynamic +prop_xen_int_barrel +proto_sniper +raggib +reserved_spot +rope_anchor +scene_manager +script_intro +scripted_scene +scripted_sentence +scripted_sequence +scripted_target +shadow_control +simple_bot +simple_physics_brush +simple_physics_prop +sky_camera +sniperbullet +soundent +spark_shower +spotlight_end +spriteteam +tanktrain_ai +tanktrain_aitarget +target_cdaudio +target_changegravity +te_tester +team_manager +test_effect +test_proxytoggle +test_traceline +tracerbullet +trigger +trigger_apply_impulse +trigger_auto_crouch +trigger_autosave +trigger_brush +trigger_cdaudio +trigger_changelevel +trigger_csm_volume +trigger_gargantua_shake +trigger_gravity +trigger_hierarchy +trigger_hurt +trigger_impact +trigger_lift +trigger_look +trigger_multiple +trigger_once +trigger_physics_trap +trigger_playermovement +trigger_proximity +trigger_push +trigger_remove +trigger_serverragdoll +trigger_soundscape +trigger_teleport +trigger_teleport_relative +trigger_togglesave +trigger_transition +trigger_vphysics_motion +trigger_weapon_strip +trigger_weaponfire +trigger_wind +vgui_screen +vgui_screen_team +vgui_slideshow_display +vote_controller +water_lod_control +waterbullet +weapon_357 +weapon_assassin_glock +weapon_crossbow +weapon_crowbar +weapon_frag +weapon_glock +weapon_gluon +weapon_headcrab +weapon_hivehand +weapon_mp5 +weapon_rpg +weapon_satchel +weapon_shotgun +weapon_snark +weapon_tau +weapon_tripmine +window_pane +world_items +worldspawn diff --git a/fgd/bases/BMBaseHelicopter.fgd b/fgd/bases/BMBaseHelicopter.fgd new file mode 100644 index 000000000..eba14681e --- /dev/null +++ b/fgd/bases/BMBaseHelicopter.fgd @@ -0,0 +1,39 @@ +@BaseClass base(BaseNPC) + line(128 128 128, targetname, target) += BMBaseHelicopter + [ + InitialSpeed(string) : "Initial Speed" : "0" : "Sets the helicopter's desired speed that it should try to reach as soon as it's spawned." + target(target_destination) : "Target path_track" : : "(Optional) The name of a path_track entity that this NPC will fly to after spawning." + + // Inputs + input MoveTopSpeed(void) : "The helicopter will immediately move at top speed toward its current goal, or in its current orientation if it's on top of its goal." + input MoveSpecifiedSpeed(float): "The helicopter will immediately move at the specified speed (you provide this as parameter override in units per second) towards its current goal." + input ChangePathCorner(target_destination) : "Tell the helicopter to move to a path corner on a new path." + input Activate(void) : "Activate. Use to wake up a helicopter that spawned with the 'Await Input' spawnflag on." + input SetTrack(target_destination) : "Set a track for the helicopter to adhere to. The helicopter will do nothing if he's on the same path, and will move to the closest point on the specified track if he's on a different path." + input FlyToSpecificTrackViaPath(target_destination) : "The helicopter will first fly to the closest point on the path if he's on a different path. Then he'll fly along the path to the specified track point." + input SelfDestruct(void) : "Self Destruct." + input EnableRotorWash(void) : "Enable Rotor Wash." + input DisableRotorWash(void) : "Disable Rotor Wash." + input EnableRotorSound(void) : "Enable Rotor Wash Sound." + input DisableRotorSound(void) : "Disable Rotor Wash Sound." + input StartPatrol(void) : "Start patrolling back and forth along the current track." + input StopPatrol(void) : "Stop patrolling back and forth along the track. This will cause the helicopter to come to rest at the track which he's currently flying toward." + input ChooseFarthestPathPoint(void) : "When tracking an enemy, choose the point on the path furthest from the enemy, but still in firing range." + input ChooseNearestPathPoint(void) : "When tracking an enemy, choose the point on the path nearest from the enemy." + input StartBreakableMovement(void) : "The helicopter is now allowed to disobey direct commands to go to particular points if he senses an enemy. He will move to the closest point (or farthest point, if ChooseFarthestPathPoint is used), on the path if he senses an enemy." + input StopBreakableMovement(void) : "The helicopter can not disobey direct commands. He will continue to fly along his patrol path or to his specified target even if he senses an enemy." + + input SetHealth(integer) : "Set Chopper HP" + + //Outputs + output OnKilled(void) : "" + + spawnflags(Flags) = + [ + 32768 : "Await Input" : 0 + 65536 : "Disable Noise" : 0 + 131072 : "No Rotor Wash" : 0 + 1048576 : "Disable Rotor Sounds on Startup" : 0 + ] + ] diff --git a/fgd/bases/BaseActBusy.fgd b/fgd/bases/BaseActBusy.fgd index efdba2d3d..ff91bd6e5 100644 --- a/fgd/bases/BaseActBusy.fgd +++ b/fgd/bases/BaseActBusy.fgd @@ -1,4 +1,4 @@ -@BaseClass +@BaseClass base(BaseEntityPoint) line(255 255 255, targetname, actor) = BaseActBusy [ nextbusy[MBase](integer) : "Next Busy Time" : 0 : "Something." diff --git a/fgd/bases/BaseBeam.fgd b/fgd/bases/BaseBeam.fgd new file mode 100644 index 000000000..7cfea4194 --- /dev/null +++ b/fgd/bases/BaseBeam.fgd @@ -0,0 +1,48 @@ +@BaseClass base(BaseEntityPoint, RenderFields, Reflection) += BaseBeam: "This is the definition of the 'beam' class, but we don't want that in the entity list." + [ + rendermode(choices) readonly : "Render Mode" : 2 : "Render mode is forced to Texture." = [ + 2: "Texture" + ] + renderamt(integer) : "Brightness (1 - 255)" : 100 + rendercolor(color255) : "Beam Color (R G B)" : "255 255 255" + + hdrcolorscale(float) : "HDR color scale." : 1.0 : "float value to multiply sprite color by when running in HDR mode." + noiseamplitude(float) : "Amount of noise (0-64)" : 0 : "The amount of noise in the beam. 0 is a perfectly straight beam." + + framerate(integer) : "Frames per 10 seconds" : 0 : "Framerate at which the beam texture should animate, if it has multiple frames." + framestart(integer) : "Starting Frame" : 0 : "The frame to start the beam texture on." + + texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr" : "The material used to draw the beam." + texturescroll(integer) : "Texture Scroll Rate (0-100)" : 35 : "Rate at which the beam texture should scroll along the beam." + + damage(string) : "Damage / second" : "0" : "How much damage this beam does per second to things while active. For continuous damage, the value should be greater than 10 or it may not work." + + dissolvetype[engine](integer) : "Dissolve Type" : 0 + dissolvetype(choices) : "Dissolve Type" : -1 = + [ + -1: "None" + 0: "Energy" + 1: "Heavy electrical" + 2: "Light electrical" + 3 : "Fade" [MESA] + 4 : "Remove Now" [MESA] + 5 : "Gluon Dissolve" [MESA] + 6 : "Core" [MESA] + ] + + // Inputs + input TurnOn(void) : "Turns the beam on." + input TurnOff(void) : "Turns the beam off." + input Toggle(void) : "Toggles the beam between on and off." + + input Noise[MBase](float) : "Set the noise of the beam, in pixels." + input Width(float) : "Set the width of the beam, in pixels." + input ScrollSpeed(float) : "Set the scroll speed in units per second (0 - 100)." + input Alpha(integer) : "Sets the beam's alpha (0 - 255)." + + input Color(color255) : "Sets the beam's render color (R G B)." + input ColorRedValue(float) : "Sets the red color channel's value (0 - 255)." + input ColorGreenValue(float) : "Sets the green color channel's value (0 - 255)." + input ColorBlueValue(float) : "Sets the blue color channel's value (0 - 255)." + ] diff --git a/fgd/bases/BaseEntity.fgd b/fgd/bases/BaseEntity.fgd index 44341faf7..cad81e303 100644 --- a/fgd/bases/BaseEntity.fgd +++ b/fgd/bases/BaseEntity.fgd @@ -58,8 +58,14 @@ input AddSpawnFlags[MBase](integer) : "Adds spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD." input RemoveSpawnFlags[MBase](integer) : "Removes spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD." + + input AddSolidFlags[MBase](integer) : "Adds solid flags to this entity." + input RemoveSolidFlags[MBase](integer) : "Removes solid flags from this entity." + input ChangeVariable[MBase](string) : "Similar to AddOutput, except it changes an internal variable similar to logic_datadesc_accessor instead. Very dangerous, use with care." + input SetEntityName[MBase](target_destination) : "Sets this entity's name that other entities should refer to it by." + input SetTarget[MBase](target_destination) : "Sets this entity's target. This is specific to certain entities, particularly logic entities that involve a target." input SetOwnerEntity[MBase](target_destination) : "Sets this entity's owner entity. This has nothing to do with parenting and has more to do with collision and kill credits." input SetThinkNull[MBase](void) : "Sets this entity's general think function to null. Behavior varies from entity to entity.." diff --git a/fgd/bases/BaseEntityAnimating.fgd b/fgd/bases/BaseEntityAnimating.fgd index ac9a50afa..43abc59e8 100644 --- a/fgd/bases/BaseEntityAnimating.fgd +++ b/fgd/bases/BaseEntityAnimating.fgd @@ -89,12 +89,13 @@ input EnableReceivingFlashlight[since_L4D](void) : "This object may recieve light or shadows from projected textures (flashlights)." input AlternativeSorting[SINCE_EP1](boolean) : "Used to attempt to fix sorting problems when rendering. True activates, false deactivates" - input SetModelScale[EP1, EP2](vector) : "Takes two values separated by a space. The first is the target model scale. " + + input SetModelScale[EP1, EP2, MESA](vector) : "Takes two values separated by a space. The first is the target model scale. " + "The second value is the number of seconds the change in scale will be spread over." input SetModel[MBase](string) : "Sets this entity's model. Must include 'models/' as well as the extension." input CreateSeparateRagdoll[MBase](void) : "Creates a separate serverside ragdoll at this entity's origin." input CreateSeparateRagdollClient[MBase](void) : "Creates a separate clientside ragdoll at this entity's origin." + input SetPoseParameter[MBase](string) : "Sets the specified pose parameter to the specified value (e.g. ''aim_yaw 45'')." // Outputs output OnIgnite(void) : "Fired when this object catches fire." diff --git a/fgd/bases/BaseEntityBrush.fgd b/fgd/bases/BaseEntityBrush.fgd index fe910c4f5..bd3fd738a 100644 --- a/fgd/bases/BaseEntityBrush.fgd +++ b/fgd/bases/BaseEntityBrush.fgd @@ -55,8 +55,9 @@ input SetParentAttachment(string) : "Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment." input SetParentAttachmentMaintainOffset(string) : "Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the parent at the time it is attached." input ClearParent(void) : "Removes this entity from the the movement hierarchy, leaving it free to move independently." - input SetLocalAngles[since_ASW](string) : "Sets the rotation of the entity relative to the parent's rotation." - input SetLocalOrigin[since_ASW](string) : "Sets the position of the entity relative to the parent's position." + input SetLocalAngles[since_ASW, MBase](string) : "Sets the rotation of the entity relative to the parent's rotation." + input SetLocalOrigin[since_ASW, MBase](string) : "Sets the position of the entity relative to its parent if one exists. Otherwise relative to the world." + input SetAbsAngles[MBase](vector) : "Set this entity's angles, always relative to the world origin." input AddOutput(string) : "Adds an entity I/O connection to this entity or changes keyvalues dynamically. Format:" + "\n' ::" + @@ -104,6 +105,10 @@ input AddSpawnFlags[MBase](integer) : "Adds spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD." input RemoveSpawnFlags[MBase](integer) : "Removes spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD." + + input AddSolidFlags[MBase](integer) : "Adds solid flags to this entity." + input RemoveSolidFlags[MBase](integer) : "Removes solid flags from this entity." + input ChangeVariable[MBase](string) : "Similar to AddOutput, except it changes an internal variable similar to logic_datadesc_accessor instead. Very dangerous, use with care." input SetHealth[MBase](integer) : "Sets this entity's health." @@ -112,12 +117,14 @@ input SetMaxHealth[MBase](integer) : "Sets this entity's max health." + input SetEntityName[MBase](target_destination) : "Sets this entity's name that other entities should refer to it by." input SetTarget[MBase](target_destination) : "Sets this entity's target. This is specific to certain entities, particularly logic entities that involve a target." input SetOwnerEntity[MBase](target_destination) : "Sets this entity's owner entity. This has nothing to do with parenting and has more to do with collision and kill credits." input SetThinkNull[MBase](void) : "Sets this entity's general think function to null. Behavior varies from entity to entity.." - input Use[MBase](void) : "More or less replicates the player interacting with an entity. (+USE)" + input Use(void) : "More or less replicates the player interacting with an entity. (+USE)" + input Touch[MBase](target_destination) : "Simulates this entity touching the specified entity." output OutUser1[MBase](string) : "Fires in response to PassUser1 input, with the parameter passed through unchanged." output OutUser2[MBase](string) : "Fires in response to PassUser2 input, with the parameter passed through unchanged." diff --git a/fgd/bases/BaseEntityPoint.fgd b/fgd/bases/BaseEntityPoint.fgd index e5da3e8d2..fcb3d39a0 100644 --- a/fgd/bases/BaseEntityPoint.fgd +++ b/fgd/bases/BaseEntityPoint.fgd @@ -33,9 +33,10 @@ input SetParentAttachment(string) : "Change this entity to attach to a specific attachment point on its parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment." input SetParentAttachmentMaintainOffset(string) : "Change this entity to attach to a specific attachment point on it's parent. Entities must be parented before being sent this input. The parameter passed in should be the name of the attachment. The entity will maintain it's position relative to the parent at the time it is attached." input ClearParent(void) : "Removes this entity from the the movement hierarchy, leaving it free to move independently." - input SetLocalAngles[since_ASW](string) : "Sets the rotation of the entity relative to the parent's rotation." - input SetLocalOrigin[since_ASW](string) : "Sets the position of the entity relative to the parent's position." - + input SetLocalAngles[since_ASW, MBase](string) : "Sets the rotation of the entity relative to the parent's rotation." + input SetLocalOrigin[since_ASW, MBase](string) : "Sets the position of the entity relative to its parent if one exists. Otherwise relative to the world." + input SetAbsAngles[MBase](vector) : "Set this entity's angles, always relative to the world origin." + input AddOutput(string) : "Adds an entity I/O connection to this entity or changes keyvalues dynamically. Format:" + "\n' ::" + "::'\n" + @@ -67,8 +68,8 @@ input FireRandomUser[MBase](void) : "Fires OnUser1, OnUser2, OnUser3, or OnUser4 with a 25% chance of each." input PassRandomUser[MBase](string) : "Fires OutUser1, OutUser2, OutUser3, or OutUser4 with a 25% chance of each. The parameter is passed along unchanged." - input KillIfNotVisible[MBase](void) : "Removes this entity if it is not in the player's viewcone." - input KillWhenNotVisible[MBase](void) : "Removes this entity when it is not in the player's viewcone." + input KillIfNotVisible[MBase](void) : "Removes this entity if it is not in a player's viewcone." + input KillWhenNotVisible[MBase](void) : "Removes this entity when it is not in a player's viewcone. You can pass a time for when this should start." input FireOutput[MBase](string) : "Fires the named output on this entity. Format: '::::' (OnDeath:hl3cardgame:gaben). Everything beyond the output name is optional." input RemoveOutput[MBase](string) : "Removes all instances of the named output on this entity. Wildcards are supported, meaning you could just pass '*' to wipe all outputs from this entity." @@ -82,6 +83,10 @@ input AddSpawnFlags[MBase](integer) : "Adds spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD." input RemoveSpawnFlags[MBase](integer) : "Removes spawnflag(s) to this entity. Many spawnflags have their respective numbers suffixed in this FGD." + + input AddSolidFlags[MBase](integer) : "Adds solid flags to this entity." + input RemoveSolidFlags[MBase](integer) : "Removes solid flags from this entity." + input ChangeVariable[MBase](string) : "Similar to AddOutput, except it changes an internal variable similar to logic_datadesc_accessor instead. Very dangerous, use with care." input SetHealth[MBase](integer) : "Sets this entity's health." @@ -90,12 +95,14 @@ input SetMaxHealth[MBase](integer) : "Sets this entity's max health." + input SetEntityName[MBase](target_destination) : "Sets this entity's name that other entities should refer to it by." input SetTarget[MBase](target_destination) : "Sets this entity's target. This is specific to certain entities, particularly logic entities that involve a target." input SetOwnerEntity[MBase](target_destination) : "Sets this entity's owner entity. This has nothing to do with parenting and has more to do with collision and kill credits." input SetThinkNull[MBase](void) : "Sets this entity's general think function to null. Behavior varies from entity to entity.." - input Use[MBase](void) : "More or less replicates the player interacting with an entity. (+USE)" + input Use(void) : "More or less replicates the player interacting with an entity. (+USE)" + input Touch[MBase](target_destination) : "Simulates this entity touching the specified entity." output OutUser1[MBase](string) : "Fires in response to PassUser1 input, with the parameter passed through unchanged." output OutUser2[MBase](string) : "Fires in response to PassUser2 input, with the parameter passed through unchanged." diff --git a/fgd/bases/BaseGrenade.fgd b/fgd/bases/BaseGrenade.fgd new file mode 100644 index 000000000..fdccbf4cf --- /dev/null +++ b/fgd/bases/BaseGrenade.fgd @@ -0,0 +1,6 @@ +@BaseClass base(BaseEntityPhysics) += BaseGrenade + [ + input Detonate(void) : "Fire to make the grenade explode." + output OnDetonate(void) : "Grenade has just exploded." + ] diff --git a/fgd/bases/BaseHeadcrab.fgd b/fgd/bases/BaseHeadcrab.fgd index d0b256888..a43b7bbb3 100644 --- a/fgd/bases/BaseHeadcrab.fgd +++ b/fgd/bases/BaseHeadcrab.fgd @@ -11,6 +11,7 @@ // Inputs + input Unburrow[Mesa](void) : "Unburrow" input StartHangingFromCeiling(void) : "Start hanging from ceiling." input DropFromCeiling(void) : "Drop if hanging from ceiling." output OnLeap[MBase](void) : "Fires when the headcrab leaps at an enemy. !activator is the target." diff --git a/fgd/bases/BaseHelicopter.fgd b/fgd/bases/BaseHelicopter.fgd index 0708ae7b6..913d3c616 100644 --- a/fgd/bases/BaseHelicopter.fgd +++ b/fgd/bases/BaseHelicopter.fgd @@ -27,5 +27,5 @@ line(255 255 255, targetname, target) = BaseHelicopter input ChooseNearestPathPoint(void) : "When tracking an enemy, choose the point on the path nearest from the enemy." input StartBreakableMovement(void) : "The helicopter is now allowed to disobey direct commands to go to particular points if he senses an enemy. He will move to the closest point (or farthest point, if ChooseFarthestPathPoint is used), on the path if he senses an enemy." input StopBreakableMovement(void) : "The helicopter can not disobey direct commands. He will continue to fly along his patrol path or to his specified target even if he senses an enemy." - input SetMaxSpeed[!TF2, ASW](float) : "Change the helicopter's max speed." + input SetMaxSpeed[ASW](float) : "Change the helicopter's max speed." ] diff --git a/fgd/bases/BaseLogicalNPC.fgd b/fgd/bases/BaseLogicalNPC.fgd index d1e2ba645..fcb5a49af 100644 --- a/fgd/bases/BaseLogicalNPC.fgd +++ b/fgd/bases/BaseLogicalNPC.fgd @@ -31,7 +31,7 @@ 512: "Fade Corpse" : 1 1024: "Think outside PVS" : 0 2048: "Template NPC (used by npc_maker, will not spawn)" : 0 - 4096: "Do Alternate collision for this NPC (player avoidance)" : 0 + 4096: "Do Alternate collision/player avoidance for this NPC (largely obsolete, use Start/StopScripting)" : 0 8192: "Don't drop weapons" : 0 16384: "Ignore player push (dont give way to player)" : 0 ] @@ -48,7 +48,7 @@ sleepstate[engine](integer) : "Sleep State" : 0 wakeradius(float) : "Wake Radius" : 0 : "Auto-wake if player within this distance" wakesquad(boolean) : "Wake Squad" : 0 : "Wake all of the NPCs squadmates if the NPC is woken" - enemyfilter(target_destination) : "Enemy Filter" : : "Filter by which to filter potential enemies" + enemyfilter(filterclass) : "Enemy Filter" : : "Filter by which to filter potential enemies" ignoreunseenenemies(boolean) : "Ignore unseen enemies" : 0 : "Prefer visible enemies, regardless of distance or relationship priority" physdamagescale(float) : "Physics Impact Damage Scale" : 1.0 : "Scales damage energy when this character is hit by a physics object. With a value of 0 the NPC will take no damage from physics." diff --git a/fgd/bases/BaseMarine.fgd b/fgd/bases/BaseMarine.fgd new file mode 100644 index 000000000..3eab637d5 --- /dev/null +++ b/fgd/bases/BaseMarine.fgd @@ -0,0 +1,33 @@ +@BaseClass base(BaseNPC, RappelNPC) = BaseMarine + [ + input Assault(string) : "Start an assault. Parameter passed in should be the name of the rally point." + + NumGrenades[engine](integer) : "Number of Grenades" + NumGrenades(choices) : "Number of Grenades" : 5 = + [ + 0 : "None" + 1 : "1" + 2 : "2" + 3 : "3" + 4 : "4" + 5 : "5" + -1 : "Unlimited" + ] + + additionalequipment[engine](string) : "Weapons" : "weapon_mp5" + additionalequipment(choices) : "Weapons" : "weapon_mp5" = + [ + "weapon_glock" : "weapon_glock" + "weapon_mp5" : "weapon_mp5" + "weapon_shotgun" : "weapon_shotgun" + "weapon_rpg" : "weapon_rpg" + "0" : "Random" + ] + + spawnflags(Flags) = + [ + 32768 : "No Weapon" : 0 + 262144 : "Disable Freeman Lines" : 0 + 524288 : "Disable Muzzle DLight" : 0 + ] + ] diff --git a/fgd/bases/BaseMesaPickup.fgd b/fgd/bases/BaseMesaPickup.fgd new file mode 100644 index 000000000..b79b32b68 --- /dev/null +++ b/fgd/bases/BaseMesaPickup.fgd @@ -0,0 +1,18 @@ +@BaseClass base(BaseEntityAnimating) appliesto(Mesa) = BaseMesaPickup +[ + output OnPlayerPickup(void) : "Fires when the player picks up this object." + output OnPlayerDenied(void) : "Fires when the player attempts to pick up this object but is denied." + + respawntime(float) : "Respawn Time" : "15" : "Time waited between respawns." + + spawnflags(flags) = + [ + 1 : "Start Asleep" : 0 + 2 : "Motion Disabled" : 0 + 4 : "Hard Respawn" : 0 + 8 : "Silent Pickup" : 0 + ] + + input Enable(void): "Enabled the pickup, also spawns it" + input Disable(void) : "Disable the pickup" +] diff --git a/fgd/bases/BaseNPCAssault.fgd b/fgd/bases/BaseNPCAssault.fgd new file mode 100644 index 000000000..9c837eeda --- /dev/null +++ b/fgd/bases/BaseNPCAssault.fgd @@ -0,0 +1,4 @@ +@BaseClass base(BaseNPC) = BaseNPCAssault +[ + input Assault(string) : "Start an assault. Parameter passed in should be the name of the rally point." +] diff --git a/fgd/bases/BaseNPCMaker.fgd b/fgd/bases/BaseNPCMaker.fgd index 263a01c07..88216adea 100644 --- a/fgd/bases/BaseNPCMaker.fgd +++ b/fgd/bases/BaseNPCMaker.fgd @@ -19,6 +19,8 @@ maxlivechildren(integer) : "Max Live NPCs" : 5 : "Maximum number of live children allowed at any one time (new ones will not be made until one dies). " + "If set to -1, no limit is applied." + ForceScheduleOnSpawn[MESA](string) : "ForceScheduleOnSpawn" : "" : "Name of NPC schedule that we want to play on spawn." + hullcheckmode[engine](boolean) : "Hull Check Mode" : 0 hullcheckmode[ASW](choices) : "Hull Check Mode" : 0 : "How NPC's hull should be checked at spawn destination?" = [ @@ -40,7 +42,7 @@ input SetSpawnFrequency(float) : "Sets how often (in seconds) a new NPC will be spawned." // Outputs - output OnSpawnNPC(string) : "Fired when an NPC is spawned. The activator is the NPC, and the string is the name of the NPC." + output OnSpawnNPC(ehandle) : "Fired when an NPC is spawned. The activator is the NPC, and the parameter is a pointer to the NPC." output OnAllSpawned(void) : "Fired when the spawned is exhausted (all children have been spawned)." output OnAllSpawnedDead(void) : "Fired when the spawner is exhausted (all children have been spawned) and all spawned children have died." output OnAllLiveChildrenDead(void) : "Fired when all spawned children have died. This does not mean the spawner is exhausted, " + diff --git a/fgd/bases/BaseSentry.fgd b/fgd/bases/BaseSentry.fgd new file mode 100644 index 000000000..5e4a09a64 --- /dev/null +++ b/fgd/bases/BaseSentry.fgd @@ -0,0 +1,18 @@ +@BaseClass base(BaseNPC) = BaseSentry : "Black Mesa Sentries." +[ + input Retire(void) : "If deployed, retire." + input Deploy(void) : "If retired, deploy." + input Toggle(void) : "Toggle - If deployed, retire. If retired, deploy." + input DisableShooting(void) : "Disable shooting." + input EnableShooting(void) : "Enable shooting." + + output OnDeploy(void) : "Sentry is becoming deployed and dangerous." + output OnRetire(void) : "Sentry is becoming retired and harmless." + + spawnflags(Flags) = + [ + 65536 : "Start retired" : 0 + 131072 : "Never close while deployed" : 0 + 262144 : "Don't shoot" : 0 + ] +] diff --git a/fgd/bases/BaseTank.fgd b/fgd/bases/BaseTank.fgd index 98e4e95e9..aa02f9751 100644 --- a/fgd/bases/BaseTank.fgd +++ b/fgd/bases/BaseTank.fgd @@ -32,8 +32,8 @@ barrely(string) : "Barrel Horizontal" : "0" barrelz(string) : "Barrel Vertical" : "0" - spritesmoke(material) : "Smoke Sprite" : "" : "A specific sprite to use for the muzzle's smoke effect." - spriteflash(material) : "Flash Sprite" : "" : "A specific sprite to use for the muzzle's flash effect." + spritesmoke(sprite) : "Smoke Sprite" : "" : "A specific sprite to use for the muzzle's smoke effect." + spriteflash(sprite) : "Flash Sprite" : "" : "A specific sprite to use for the muzzle's flash effect." spritescale(string) : "Sprite scale" : "1" : "The scale for smoke and flash sprites." rotatestartsound(sound) : "Rotate Start Sound" diff --git a/fgd/bases/BaseTrain.fgd b/fgd/bases/BaseTrain.fgd index f113043c1..0372c8f77 100644 --- a/fgd/bases/BaseTrain.fgd +++ b/fgd/bases/BaseTrain.fgd @@ -8,7 +8,7 @@ 2: "No User Control" : 0 8: "Passable" : 0 16: "Fixed Orientation" : 0 - 128: "HL1 Train" : 0 + 128: "Ridable Train (HL1 Train)" : 0 256: "Use max speed for pitch shifting move sound" : 0 512: "Is unblockable by player" : 0 1024: "Allow Roll (Z-rot)" : 0 [since_P2] diff --git a/fgd/bases/BaseZombie.fgd b/fgd/bases/BaseZombie.fgd index 91b3e3e6b..5e0bb4129 100644 --- a/fgd/bases/BaseZombie.fgd +++ b/fgd/bases/BaseZombie.fgd @@ -4,8 +4,11 @@ spawnflags(Flags) = [ + 65536 : "Never spawn headcrab" : 0 [Mesa] 32768 : "Never turn into a torso" : 0 [Mbase] ] + input BecomeTorso[Mesa](void) : "BecomeTorso" output OnSwattedProp[Mbase](ehandle) : "Fires when this NPC swats a prop, passing the prop as the activator and parameter." + output OnCrab[Mbase](ehandle) : "Fires when the zombie releases a headcrab, passing the headcrab as the activator and parameter." ] diff --git a/fgd/bases/Breakable.fgd b/fgd/bases/Breakable.fgd index 77348d12e..96f51cfa2 100644 --- a/fgd/bases/Breakable.fgd +++ b/fgd/bases/Breakable.fgd @@ -17,7 +17,7 @@ pressuredelay(float) : "Pressure Delay" : 0 : "Delay, in seconds, after 'broken' by pressure before breaking apart (allows for sound to play before breaking apart)." - breakmodelmessage[until_ASW](string) : "Break Model Message" : : "If set, will use this break model message instead of the normal break behavior." + breakmodelmessage[until_ASW, MESA](string) : "Break Model Message" : : "If set, will use this break model message instead of the normal break behavior." minhealthdmg(integer) : "Minimum Damage to Hurt" : 0 : "The entity will ignore any damage events if the damage is less than this amount." health(integer) : "Health" : 0 : "Number of points of damage to take before breaking. 0 means don't break." diff --git a/fgd/bases/BreakableBrush.fgd b/fgd/bases/BreakableBrush.fgd index 1b4f3be0a..2b53d9480 100644 --- a/fgd/bases/BreakableBrush.fgd +++ b/fgd/bases/BreakableBrush.fgd @@ -60,6 +60,7 @@ 7: "Unbreakable Glass" 8: "Rocks" 9: "Metal Panel" [P2] + 9: "Web" [MESA] 10: "None" ] @@ -76,7 +77,7 @@ nodamageforces(boolean) : "Damaging it Doesn't Push It" : 0 : "Used to determine whether or not damage should cause the brush to move." gibmodel[HLS](studio) : "Gib Model" : : "Used by HL1Port to specify a custom gib model to break into, overriding the 'Material Type'." - spawnobject[ENGINE](integer) : "Spawn On Break" : 0 : "When broken, an entity of the selected type will be created." + spawnobject[ENGINE](pointentityclass) : "Spawn On Break" : 0 : "When broken, an entity of the selected type will be created." spawnobject[EP1, EP2, P1, HL2](choices) : "Spawn On Break" : 0 : "When broken, an entity of the selected type will be created." = [ 1: "item_battery" @@ -107,6 +108,43 @@ 26: "item_dynamic_resupply" ] + spawnobject[MESA](choices) : "Spawn On Break" : 0 : "When broken, an entity of the selected type will be created." = + [ + 1: "item_battery" + 2: "item_healthkit" + 24: "weapon_shotgun" + + // black mesa items + 27: "item_ammo_glock" + 28: "item_ammo_mp5" + 29: "item_ammo_357" + 30: "item_ammo_crossbow" + 31: "item_ammo_shotgun" + 32: "item_ammo_energy" + 33: "item_grenade_mp5" + 34: "item_grenade_rpg" + + 35: "item_weapon_357" + 36: "item_weapon_crossbow" + 37: "item_weapon_crowbar" + 38: "item_weapon_frag" + 39: "item_weapon_glock" + 40: "item_weapon_gluon" + 41: "item_weapon_hivehand" + 42: "item_weapon_mp5" + 43: "item_weapon_rpg" + 44: "item_weapon_satchel" + 45: "item_weapon_shotgun" + 46: "item_weapon_snark" + 47: "item_weapon_tau" + 48: "item_weapon_tripmine" + + 49: "item_syringe" + 50: "item_ammo_box" + + 51: "prop_soda" + ] + breakabletype[engine](integer) : "Breakable By" : 0 : "Who can break this?" breakabletype[L4D, L4D2](choices) : "Breakable By" : 0 : "Who can break this?" = diff --git a/fgd/bases/Button.fgd b/fgd/bases/Button.fgd index d5a49a5a9..a15b88fa7 100644 --- a/fgd/bases/Button.fgd +++ b/fgd/bases/Button.fgd @@ -4,6 +4,20 @@ sounds(choices) : "Press Sound" : 0 : "Sound played when pressed. Choose from sounds in the Buttons.snd* category." = [ 0: "None (Silent)" + + 40: "(BM) Vending Machine Button" [MESA] + 41: "(BM) Xen Bridge Lever" [MESA] + 42: "(BM) XEN Button Beep Click" [MESA] + 43: "(BM) XEN Button Beep1" [MESA] + 44: "(BM) XEN Button Beep2" [MESA] + 48: "(BM) Access Denied (Retinal Scanner)" [MESA] + 49: "(BM) Access Granted (Retinal Scanner)" [MESA] + 50: "(BM) Access Use (Retinal Scanner)" [MESA] + 51: "(BM) HECU Sentry BeamTrip" [MESA] + + 100: "Light Switch" + 101: "Power Plug - Basic Electronics (soft)" + 1: "Buttons.snd1: Big zap & Warmup" 2: "Buttons.snd2: Access Denied" 3: "Buttons.snd3: Access Granted" @@ -32,18 +46,21 @@ 26: "Buttons.snd26: Lever or Wheel: latch + large metal thud" 27: "Buttons.snd27: Lever or Wheel: smaller ratchet" 28: "Buttons.snd28: Lever or Wheel: smaller lever move" - 31: "Buttons.snd31: Shock buzz" - 32: "Buttons.snd32: Clickbeep" - 33: "Buttons.snd33: Tech blip" + + 31: "Buttons.snd31: Shock buzz (missing)" + 32: "Buttons.snd32: Clickbeep (missing)" + 33: "Buttons.snd33: Tech blip (missing)" + 34: "Buttons.snd34: Clickbeepbeep open" 35: "Buttons.snd35: Small high blip" 36: "Buttons.snd36: Small tech fuzz blip" 37: "Buttons.snd37: Small click bleep (change to lightswitch)" - 40: "Buttons.snd40: Combine door lock - locked" - 41: "Buttons.snd41: Combine blip growl" - 42: "Buttons.snd42: Combine squick growl" - 43: "Buttons.snd43: Combine whine purr" - 44: "Buttons.snd44: Combine click talk" + + 40: "Buttons.snd40: Combine door lock - locked" [!MESA] + 41: "Buttons.snd41: Combine blip growl" [!MESA] + 42: "Buttons.snd42: Combine squick growl" [!MESA] + 43: "Buttons.snd43: Combine whine purr" [!MESA] + 44: "Buttons.snd44: Combine click talk" [!MESA] 45: "Buttons.snd45: Combine click growl fizz" 46: "Buttons.snd46: Combine click fizz (deny)" 47: "Buttons.snd47: Combine click talker" @@ -54,6 +71,20 @@ "and fails because it's locked. These are sounds in the Buttons.snd* category." = [ 0: "None (Silent)" + + 40: "(BM) Vending Machine Button" [MESA] + 41: "(BM) Xen Bridge Lever" [MESA] + 42: "(BM) XEN Button Beep Click" [MESA] + 43: "(BM) XEN Button Beep1" [MESA] + 44: "(BM) XEN Button Beep2" [MESA] + 48: "(BM) Access Denied (Retinal Scanner)" [MESA] + 49: "(BM) Access Granted (Retinal Scanner)" [MESA] + 50: "(BM) Access Use (Retinal Scanner)" [MESA] + 51: "(BM) HECU Sentry BeamTrip" [MESA] + + 100: "Light Switch" + 101: "Power Plug - Basic Electronics (soft)" + 1: "Buttons.snd1: Big zap & Warmup" 2: "Buttons.snd2: Access Denied" 3: "Buttons.snd3: Access Granted" @@ -82,18 +113,21 @@ 26: "Buttons.snd26: Lever or Wheel: latch + large metal thud" 27: "Buttons.snd27: Lever or Wheel: smaller ratchet" 28: "Buttons.snd28: Lever or Wheel: smaller lever move" - 31: "Buttons.snd31: Shock buzz" - 32: "Buttons.snd32: Clickbeep" - 33: "Buttons.snd33: Tech blip" + + 31: "Buttons.snd31: Shock buzz (missing)" + 32: "Buttons.snd32: Clickbeep (missing)" + 33: "Buttons.snd33: Tech blip (missing)" + 34: "Buttons.snd34: Clickbeepbeep open" 35: "Buttons.snd35: Small high blip" 36: "Buttons.snd36: Small tech fuzz blip" 37: "Buttons.snd37: Small click bleep (change to lightswitch)" - 40: "Buttons.snd40: Combine door lock - locked" - 41: "Buttons.snd41: Combine blip growl" - 42: "Buttons.snd42: Combine squick growl" - 43: "Buttons.snd43: Combine whine purr" - 44: "Buttons.snd44: Combine click talk" + + 40: "Buttons.snd40: Combine door lock - locked" [!MESA] + 41: "Buttons.snd41: Combine blip growl" [!MESA] + 42: "Buttons.snd42: Combine squick growl" [!MESA] + 43: "Buttons.snd43: Combine whine purr" [!MESA] + 44: "Buttons.snd44: Combine click talk" [!MESA] 45: "Buttons.snd45: Combine click growl fizz" 46: "Buttons.snd46: Combine click fizz (deny)" 47: "Buttons.snd47: Combine click talker" @@ -103,6 +137,20 @@ unlocked_sound(choices) : "Unlocked Sound" : 0 : "Sound played when the button is unlocked. These are sounds in the Buttons.snd* category." = [ 0: "None (Silent)" + + 40: "(BM) Vending Machine Button" [MESA] + 41: "(BM) Xen Bridge Lever" [MESA] + 42: "(BM) XEN Button Beep Click" [MESA] + 43: "(BM) XEN Button Beep1" [MESA] + 44: "(BM) XEN Button Beep2" [MESA] + 48: "(BM) Access Denied (Retinal Scanner)" [MESA] + 49: "(BM) Access Granted (Retinal Scanner)" [MESA] + 50: "(BM) Access Use (Retinal Scanner)" [MESA] + 51: "(BM) HECU Sentry BeamTrip" [MESA] + + 100: "Light Switch" + 101: "Power Plug - Basic Electronics (soft)" + 1: "Buttons.snd1: Big zap & Warmup" 2: "Buttons.snd2: Access Denied" 3: "Buttons.snd3: Access Granted" @@ -131,18 +179,21 @@ 26: "Buttons.snd26: Lever or Wheel: latch + large metal thud" 27: "Buttons.snd27: Lever or Wheel: smaller ratchet" 28: "Buttons.snd28: Lever or Wheel: smaller lever move" - 31: "Buttons.snd31: Shock buzz" - 32: "Buttons.snd32: Clickbeep" - 33: "Buttons.snd33: Tech blip" + + 31: "Buttons.snd31: Shock buzz (missing)" + 32: "Buttons.snd32: Clickbeep (missing)" + 33: "Buttons.snd33: Tech blip (missing)" + 34: "Buttons.snd34: Clickbeepbeep open" 35: "Buttons.snd35: Small high blip" 36: "Buttons.snd36: Small tech fuzz blip" 37: "Buttons.snd37: Small click bleep (change to lightswitch)" - 40: "Buttons.snd40: Combine door lock - locked" - 41: "Buttons.snd41: Combine blip growl" - 42: "Buttons.snd42: Combine squick growl" - 43: "Buttons.snd43: Combine whine purr" - 44: "Buttons.snd44: Combine click talk" + + 40: "Buttons.snd40: Combine door lock - locked" [!MESA] + 41: "Buttons.snd41: Combine blip growl" [!MESA] + 42: "Buttons.snd42: Combine squick growl" [!MESA] + 43: "Buttons.snd43: Combine whine purr" [!MESA] + 44: "Buttons.snd44: Combine click talk" [!MESA] 45: "Buttons.snd45: Combine click growl fizz" 46: "Buttons.snd46: Combine click fizz (deny)" 47: "Buttons.snd47: Combine click talker" diff --git a/fgd/bases/CombineScanner.fgd b/fgd/bases/CombineScanner.fgd new file mode 100644 index 000000000..0867e8692 --- /dev/null +++ b/fgd/bases/CombineScanner.fgd @@ -0,0 +1,37 @@ +@BaseClass = CombineScanner + [ + spawnflags(flags) : "spawnflags" = + [ + 65536: "No Dynamic Light" : 0 + 131072: "Strider Scout Scanner" : 0 + ] + + CustomFlightSpeed[MBase](float) : "Custom Flight Speed" : "0" : "Overrides the scanner's default speed. 0 = use default" + + spotlightlength(integer) : "Spotlight Length" : 500 + spotlightwidth(integer) : "Spotlight Width" : 50 + + spotlightdisabled(boolean) : "Disable Spotlight" : 0 + shouldinspect(boolean) : "Should inspect" : 1 + onlyinspectplayers(boolean) : "Only Inspect Players" : 0 + neverinspectplayers(boolean) : "Never Inspect Players" : 0 + + DisablePhotos[MBase](boolean) : "Never take photos" : 0 : "Prevents this scanner from ever taking photos. It may still chase and inspect, but it will never actually take any pictures or flashes." + + // Inputs + input DisableSpotlight(void) : "Disable the spotlight." + input InspectTargetPhoto(target_destination) : "Tells the scanner to photograph the given entity, named by classname or by target name. !activator or !player works here also." + input InspectTargetSpotlight(target_destination) : "Tells the scanner to spotlight the given entity, named by classname or by target name. !activator or !player works here also." + input InputSetFlightSpeed(integer) : "Sets the flight speed of the scanner" + input InputShouldInspect(integer) : "Set whether should inspect or not" + input SetFollowTarget(target_destination) : "Set target to follow until told otherwise" + input ClearFollowTarget(void) : "Stop following our target" + input SetDistanceOverride(float) : "Override the distance the scanner will attempt to keep between inspection targets and itself" + + input DisablePhotos[MBase](void) : "Disables this scanner's ability to take photos." + input EnablePhotos[MBase](void) : "Enables this scanner's ability to take photos if it was previously disabled." + + // Outputs + output OnPhotographPlayer(void) : "Fired any time the scanner takes a picture of the player." + output OnPhotographNPC(void) : "Fired any time the scanner takes a picture of an NPC." + ] diff --git a/fgd/bases/Door.fgd b/fgd/bases/Door.fgd index 5defc95ad..45b9191dd 100644 --- a/fgd/bases/Door.fgd +++ b/fgd/bases/Door.fgd @@ -54,29 +54,28 @@ locked_sentence(choices) : "Locked Sentence" : 0 : "A sentence played when the player tries to use the door, and fails because it's locked." = [ 0: "None" - 1: "Gen. Access Denied" - 2: "Security Lockout" - 3: "Blast Door" - 4: "Fire Door" - 5: "Chemical Door" - 6: "Radiation Door" - 7: "Gen. Containment" - 8: "Maintenance Door" - 9: "Broken Shut Door" + 1: "[EA] Gen. Access Granted" + 2: "[ED] Security Disengaged" + 3: "[EF] Blast Door" + 4: "[EFIRE] Fire Door" + 5: "[ECHEM] Chemical Door" + 6: "[ERAD] Radiation Door" + 7: "[ECON] gen. Containment" + 8: "[EH] Maintenance area" ] unlocked_sentence[engine](integer) : "Unlocked Sentence" : 0 unlocked_sentence(choices) : "Unlocked Sentence" : 0 : "A sentence played when the door is unlocked." = [ 0: "None" - 1: "Gen. Access Granted" - 2: "Security Disengaged" - 3: "Blast Door" - 4: "Fire Door" - 5: "Chemical Door" - 6: "Radiation Door" - 7: "Gen. Containment" - 8: "Maintenance area" + 1: "[EA] Gen. Access Granted" + 2: "[ED] Security Disengaged" + 3: "[EF] Blast Door" + 4: "[EFIRE] Fire Door" + 5: "[ECHEM] Chemical Door" + 6: "[ERAD] Radiation Door" + 7: "[ECON] gen. Containment" + 8: "[EH] Maintenance area" ] // Inputs diff --git a/fgd/bases/HintNode.fgd b/fgd/bases/HintNode.fgd index 0b6b268b5..da3b111c2 100644 --- a/fgd/bases/HintNode.fgd +++ b/fgd/bases/HintNode.fgd @@ -1,5 +1,4 @@ @BaseClass base(Node) - frustum(nodeFOV,-1,128,250 250 250,-1) = HintNode [ spawnflags(flags) = @@ -44,6 +43,16 @@ 1002: "HL1 World: Human Blood" 1003: "HL1 World: Alien Blood" + 1200: "MiniBoss Node ( Garga & Bigmomma )" [MESA] + 1201: "MiniBoss Charge ( Bigmomma )" [MESA] + 1202: "Fear Point Ground" [MESA] + 1203: "Fear Point Air" [MESA] + 1204: "Heal Point Ground" [MESA] + 1205: "Heal Point Air" [MESA] + 1206: "Gonarch Cliff Hint" [MESA] + 1207: "Nihi Ground Node" [MESA] + 1208: "Nihi Air Node" [MESA] + 1200: "Ep3 Blob Shake Position" [ASW] 1201: "Ep3 Blob Fire Cover Position" [ASW] 1202: "Ep3 Blob Brain Cover Position" [ASW] @@ -64,6 +73,8 @@ 360: "360 Degrees" ] + // Does not inherit from EnableDisable, as node itself will + // use that. This is enabling/disabling of the hint only starthintdisabled(boolean) : "Start Hint Disabled" : 0 group(string) : "Hint Group" : : "If specified, gives the hint a specific group name. " + diff --git a/fgd/bases/Item.fgd b/fgd/bases/Item.fgd index 6db18582a..c3e09b5c8 100644 --- a/fgd/bases/Item.fgd +++ b/fgd/bases/Item.fgd @@ -1,5 +1,5 @@ - @BaseClass base(BaseEntityPhysics, TeamNum, EnableDisable, Toggle, FadeDistance) + appliesto(!Mesa) // So these can swap to BaseMesaPickup color(0 0 200) sphere(fademindist) sphere(fademaxdist) = Item @@ -10,6 +10,7 @@ 2 : "Deny player pickup (reserve for NPC)" : 0 [MBase] 4 : "Not puntable by Gravity Gun" : 0 [MBase] 8 : "Deny NPC pickup (reserve for player)" : 0 [MBase] + 64 : "Always touchable (no obstruction checking)" : 0 [MBase] ] powerup_model[TF2](string) : "Model" : : "Change the model to something other than the default model." diff --git a/fgd/bases/ItemAmmo.fgd b/fgd/bases/ItemAmmo.fgd new file mode 100644 index 000000000..cf8e02758 --- /dev/null +++ b/fgd/bases/ItemAmmo.fgd @@ -0,0 +1,7 @@ +@BaseClass base(Item) = ItemAmmo + [ + AmmoMultiplier[MBase](float) : "Ammo Multiplier" : "1.0" : "Multiplies the amount of ammo this item gives. Using a negative number directly sets it to that number, rather than multiplying it." + + // Inputs + input SetAmmoMultiplier[MBase](float) : "Sets the multiplier for the amount of ammo this item gives." + ] diff --git a/fgd/bases/PlayerCompanion.fgd b/fgd/bases/PlayerCompanion.fgd index 6476cc577..b44a452a4 100644 --- a/fgd/bases/PlayerCompanion.fgd +++ b/fgd/bases/PlayerCompanion.fgd @@ -1,29 +1,60 @@ - -@BaseClass base(BaseNPC) - appliesto(ASW, EP1, EP2, HL2, P1, P2) = PlayerCompanion +@BaseClass base(BaseNPC) = PlayerCompanion [ + spawnflags[Mesa](flags) = + [ + 65536 : "Do not follow player" : 0 + 131072 : "Do not greet the player" : 0 + 1048576 : "Do not use fallback idle and questions" : 0 + ] + alwaystransition(boolean) : "Always transition" : 0 : "If yes, this NPC will always teleport to a Player Squad Transition Point if they're not within the trigger_transition volume." dontpickupweapons(boolean) : "Prevent picking up weapons?" : 0 : "If yes, this NPC will NOT be allowed to pick up weapons they find on the ground." gameendally(boolean) : "Is this a vital ally?" : 0 : "If yes, this NPC will cause the game to end if killed." + expressiontype[engine](integer) : "Expression Type" : 0 + expressiontype[Mesa](choices) : "Expression Type" : 0 = + [ + 0 : "Random" + 1 : "Scared" + 2 : "Normal" + 3 : "Angry" + ] + + CanSpeakWhileScripting[Mesa](boolean) : "Speak while scripting?" : 0 : "" + // Inputs input OutsideTransition(void) : "Use this input to teleport the NPC to a hintnode with the Player Squad Transition Point hint type." input EnableAlwaysTransition(void) : "Enable the 'always transition' behavior" input DisableAlwaysTransition(void) : "Disable the 'always transition' behavior" + input EnableSpeakWhileScripting(void) : "Allow this NPC to speak responses while in a scripted sequence or while StartScripting is active." input DisableSpeakWhileScripting(void) : "Cancels this NPC's ability to speak responses while in a scripted sequence or while StartScripting is active if it was previously enabled by EnableSpeakWhileScripting." + input MakeGameEndAlly(void) : "Make this NPC a game end ally." input MakeRegularAlly(void) : "Make this NPC a regular ally." - input EnableWeaponPickup(void) : "Enable Weapon Pickup" - input DisableWeaponPickup(void) : "Disable Weapon Pickup" - input GiveWeapon(string) : "Gives the NPC a weapon of the specified entity name." + + // Remove this from here in Mesa, so it's only on companions that have weapons (guards). + input EnableWeaponPickup[!Mesa](void) : "Enable Weapon Pickup" + input DisableWeaponPickup[!Mesa](void) : "Disable Weapon Pickup" + + input GiveWeapon[!Mesa](string) : "Gives the NPC a weapon of the specified entity name." + input SetReadinessPanic(void) : "Set readiness to panic state (Special)" input SetReadinessLow(void) : "Set readiness to calmest state (Bored)" input SetReadinessMedium(void) : "Set readiness to moderate (Alert)" input SetReadinessHigh(void) : "Set readiness to highest. (Combat imminent)" input LockReadiness(float) : "Lock readiness at current setting for x seconds -1 = forever, 0 = unlock now" + input ClearAllOutputs(void) : "Obliterate every output that this NPC has." + input EnableFollow[Mesa]( void ) : "" + input DisableFollow[Mesa]( void ) : "" + input CeaseFollowing[Mesa]( void ) : "" + input ForceFollowUntilToldNotTo[Mesa]( void ) : "" + + input EnableGeneralIdles[Mesa]( void ) : "" + input DisableGeneralIdles[Mesa]( void ) : "" + // Outputs - output OnWeaponPickup(void) : "Fires when this NPC picks a weapon off the ground or a gun rack." + output OnWeaponPickup[!Mesa](void) : "Fires when this NPC picks a weapon off the ground or a gun rack." ] diff --git a/fgd/bases/RopeKeyFrame.fgd b/fgd/bases/RopeKeyFrame.fgd index 20eee2433..e6f95be7f 100644 --- a/fgd/bases/RopeKeyFrame.fgd +++ b/fgd/bases/RopeKeyFrame.fgd @@ -37,12 +37,13 @@ ropematerial(material) : "Rope Material" : "cable/cable.vmt" : "The material to use when rendering the rope." - usewind(choices) : "Wind" : "0" : "Is the rope affected by wind?" = + usewind[!Mbase](choices) : "Wind" : "0" : "Is the rope affected by wind?" = [ 0: "Ignore Wind" 1: "Affected by Wind" ] usewind[engine](boolean): "Use Wind": 0 + NoWind[MBase](boolean) : "Disable Wind" : 0 : "When set to Yes, the rope will no longer act as though it's being affected by wind." // Useless remmnants of unused keyframe logic. // We have to have these for Hammer to render ropes. diff --git a/fgd/bases/TriggerOnce.fgd b/fgd/bases/TriggerOnce.fgd index c75ecf897..bb557f4c9 100644 --- a/fgd/bases/TriggerOnce.fgd +++ b/fgd/bases/TriggerOnce.fgd @@ -5,8 +5,8 @@ [ spawnflags(flags) = [ - 1: "Clients/Players/Bots" : 1 [TF2, CSGO, CSS] - 1: "Clients/Players" : 1 [!TF2, !CSGO, !CSS] + 1: "Clients/Players/Bots" : 1 [TF2, CSGO, CSS, MESA] + 1: "Clients/Players" : 1 [!TF2, !CSGO, !CSS, MESA] 2: "NPCs" : 0 [!ASW] 2: "Marines and Aliens" : 0 [ASW] 4: "func_pushable" : 0 @@ -20,7 +20,7 @@ 1024: "Physics debris" : 0 2048: "Only NPCs in vehicles (respects player ally flag)" : 0 4096: "Correctly account for object mass (trigger_push used to assume 100Kg) and multiple component physobjs (car, blob...)" : 1 [!CSGO, !TF2] - 4096: "Disallow Bots" : 0 [CSGO, TF2] + 4096: "Disallow Bots" : 0 [CSGO, TF2, MESA] ] StartDisabled(boolean) : "Start Disabled?" : 0 @@ -39,5 +39,6 @@ output OnTrigger(void) : "Fired whenever the trigger is activated." output OnStartTouch(void) : "Fired when an entity starts touching this trigger. " + "The touching entity must pass this trigger's filters to cause this output to fire." - output OnNotTouching(void) : "Fired when the TouchTest input is called. Does not call activators." + output OnTouching(void) : "Fired when the TouchTest input is called, and an entity is touching this. Does not call activators." + output OnNotTouching(void) : "Fired when the TouchTest input is called, and no entity is touching this. Does not call activators." ] diff --git a/fgd/bases/Weapon.fgd b/fgd/bases/Weapon.fgd index 2d5ad215c..94750e74b 100644 --- a/fgd/bases/Weapon.fgd +++ b/fgd/bases/Weapon.fgd @@ -11,6 +11,8 @@ 4: "Not puntable by Gravity Gun" : 0 8 : "Deny NPC pickup (reserve for player)" : 0 [MBase] 16 : "Preserve ammo values when picked up" : 0 [MBase] + 32 : "Preserve name on player pickup" : 0 [MBase] + 64 : "Always touchable (no obstruction checking)" : 0 [MBase] ] SetAmmo1[MBase](integer) : "Ammo 1 Override" : 0 : "Overrides the amount of primary ammo this weapon has. Be sure to set 'Preserve ammo values when picked up' for this to be maintained upon pickup." diff --git a/fgd/bases/XenPortal.fgd b/fgd/bases/XenPortal.fgd new file mode 100644 index 000000000..a81ffe7d3 --- /dev/null +++ b/fgd/bases/XenPortal.fgd @@ -0,0 +1,40 @@ +@BaseClass = XenPortal + [ + output OnStartPortal(void) : "Portal FX is started" + output OnFinishPortal(void) : "Portal FX is finished" + + size[engine](integer) : "Portal Size" : 80 + size(choices) : "Portal Size" : 80 = + [ + 80 : "Default" + 20 : "Small HeadCrab" + 40 : "HeadCrab" + 80 : "Alien Slave" + 90 : "Houndeye" + 100 : "Alien Grunt" + 110 : "Bullsquid" + ] + + sound(sound) : "Sound Name" : "XenPortal.Sound" : "Name of the GameSound entry for the sound to play. Also supports direct .wav filenames." + + jump_distance(float) : "Leap Distance" : "0" + jump_hmaxspeed(float) : "Leap Max Horizontal Speed" : "200" + min_delay(float) : "Minimum spawn delay" : "0" + max_delay(float) : "Maximum spawn delay" : "0" + + spawnflags(Flags) = + [ + // Only in npc__maker, npc_template_maker uses flag from template NPC + 16 : "Fade Corpse" : 0 + 32 : "Infinite Children" : 0 + 128 : "Don't Spawn While Visible" : 0 + 256 : "Always use radius spawn" : 0 + 512 : "Don't preload template models" : 0 + 32768 : "No DLight" : 0 + 65536 : "Remove after portal fx has finished" : 0 + 131072 : "No sound" : 0 + 262144 : "Jump out (Houndeye Only)" : 0 + 524288 : "No Warp FX" : 0 + 1048576 : "Spawn flying crap" : 0 + ] + ] diff --git a/fgd/bases/prop_flare.fgd b/fgd/bases/prop_flare.fgd deleted file mode 100644 index ca03c4a5a..000000000 --- a/fgd/bases/prop_flare.fgd +++ /dev/null @@ -1,16 +0,0 @@ -@BaseClass appliesto(MBase) - autovis(Props, Physics) - base(BasePropPhysics, BreakableProp, BaseFadeProp, DamageFilter) - studioprop() -= prop_flare : "Flare Prop" - [ - model(studio) : "Model" : "models/props_junk/flare.mdl" : "Any model entered here can use flares." - - input StartFlare(void) : "Ignites the flare." - input StopFlare(void) : "Extinguishes the flare." - input AddFlareLifetime(float) : "Adds to the flare's lifetime. Negative numbers subtract." - input RemoveFlare(void) : "Kills/removes the flare. Doesn't restore flare." - input RestoreFlare(void) : "Restores the flare after it is burned out." - - output OnRestored(void) : "Fired when player instigates +USE." - ] diff --git a/fgd/brush/asw/asw_camera_control.fgd b/fgd/brush/asw/asw_camera_control.fgd index f5a46ddc5..247eba98a 100644 --- a/fgd/brush/asw/asw_camera_control.fgd +++ b/fgd/brush/asw/asw_camera_control.fgd @@ -1,5 +1,9 @@ -@SolidClass base(BaseEntityBrush) - appliesto(ASW) = asw_camera_control: "The camera will change when marines are inside this volume." +// This is actually a clientside only entity, specially parsed with dedicated code out of the ent lump. +// So only the model, classname and angtype keyvalues are touched. + +@SolidClass appliesto(ASW) + autovis(Clientside, Camera Control) += asw_camera_control: "The camera will change when marines are inside this volume." [ angtype[engine](integer) : "Angle Type" : 0 angtype(choices) : "Angle Type" : 0 : "Camera angle to use when marines are in this volume." = diff --git a/fgd/brush/asw/asw_snow_volume.fgd b/fgd/brush/asw/asw_snow_volume.fgd index b84551bd2..ed72a5c59 100644 --- a/fgd/brush/asw/asw_snow_volume.fgd +++ b/fgd/brush/asw/asw_snow_volume.fgd @@ -1,8 +1,14 @@ -@SolidClass base(BaseEntityPoint) - appliesto(ASW) = asw_snow_volume: "Causes snow when the marine is inside this volume." +// This is actually a clientside only entity, specially parsed with dedicated code out of the ent lump. +// So only the model, classname and snowtype keyvalues are touched. + +@SolidClass appliesto(ASW) + autovis(Clientside, Snow Volume) += asw_snow_volume: "Causes snow when the marine is inside this volume." [ snowtype[engine](integer) : "Snow Type" : 1 - snowtype(choices) : "Snow Type" : 1 : "Type of snow that falls. NOTE: This setting must be the same on all asw_snow_volumes in your map. Heavier snow should be used in outdoor maps, where snow clouds/particles cover the level (snow particles WILL flow outside the volume bounds some)." = + snowtype(choices) : "Snow Type" : 1 : "Type of snow that falls. NOTE: This setting must be the same on all asw_snow_volumes in your map. " + + "Heavier snow should be used in outdoor maps, where snow clouds/particles cover the level " + + "(snow particles WILL flow outside the volume bounds some)." = [ 0: "Light, accurate bounds" 1: "Heavy, inaccurate bounds" diff --git a/fgd/brush/func/func_50cal.fgd b/fgd/brush/func/func_50cal.fgd new file mode 100644 index 000000000..703dbadc3 --- /dev/null +++ b/fgd/brush/func/func_50cal.fgd @@ -0,0 +1,4 @@ +@SolidClass base(BaseTank) appliesto(Mesa) += func_50cal : ".50 Caliber Machine Gun" + [ + ] diff --git a/fgd/brush/func/func_areaportal.fgd b/fgd/brush/func/func_areaportal.fgd index 7dac9c243..37b426824 100644 --- a/fgd/brush/func/func_areaportal.fgd +++ b/fgd/brush/func/func_areaportal.fgd @@ -1,6 +1,5 @@ @SolidClass base(BaseEntity) - color(0 255 255) - line(255 255 255, targetname, target) + color(0 255 255) = func_areaportal: "A portal brush used to manage visibility in maps. " + "Portals define areas, which are spaces that are connected in the map. " + "Both sides of a portal cannot touch the same area, for example, a doughnut shaped map would require at least two portals to divide the map into two areas. " + diff --git a/fgd/brush/func/func_bomb_target.fgd b/fgd/brush/func/func_bomb_target.fgd index a5c5944f3..ec7c7b42e 100644 --- a/fgd/brush/func/func_bomb_target.fgd +++ b/fgd/brush/func/func_bomb_target.fgd @@ -2,7 +2,7 @@ appliesto(CSGO) = func_bomb_target: "Bomb Target. The terrorists can place C4 explosives while standing in this zone.\n\n" + "When the bomb is planted and explodes inside this area, the BombExplode outputs are fired. " + - "The game handles all of the bomb planting and scoring logic – " + + "The game handles all of the bomb planting and scoring logic - " + "the BombExplode outputs are provided to add visual and damage effects." [ heistbomb(boolean) : "Heist Mode bomb target" : 0 : "This is a Bomb Target designed for the Heist game mode." diff --git a/fgd/brush/func/func_clip_client.fgd b/fgd/brush/func/func_clip_client.fgd deleted file mode 100644 index 21dc864b7..000000000 --- a/fgd/brush/func/func_clip_client.fgd +++ /dev/null @@ -1,4 +0,0 @@ -@SolidClass base(BaseEntityBrush, EnableDisable, Toggle) = func_clip_client : - "A brush entity that's considered solid to clientside ragdolls and other clientside objects." -[ -] diff --git a/fgd/brush/func/func_clip_vphysics.fgd b/fgd/brush/func/func_clip_vphysics.fgd index 7e1187aaf..34baac484 100644 --- a/fgd/brush/func/func_clip_vphysics.fgd +++ b/fgd/brush/func/func_clip_vphysics.fgd @@ -1,6 +1,11 @@ @SolidClass base(BaseEntityBrush) = func_clip_vphysics: "A brush entity that's considered solid to vphysics." [ + spawnflags(flags) = + [ + 2: "Ignore player Grenades/Projectiles" : 1 [MESA] + ] + filtername(filterclass) : "Filter Name" : : "Filter to use to see if activator collides with me. " + "See filter_activator_name for more explanation. Allow means 'Allow to Block' for this entity." diff --git a/fgd/brush/func/func_conveyor_bms.fgd b/fgd/brush/func/func_conveyor_bms.fgd new file mode 100644 index 000000000..d2a6e5075 --- /dev/null +++ b/fgd/brush/func/func_conveyor_bms.fgd @@ -0,0 +1,11 @@ +@SolidClass base(BaseEntityVisBrush) appliesto(Mesa) += func_conveyor_bms : "BMS Conveyor Belt" + [ + movedir(angle) : "Move Direction (Pitch Yaw Roll)" : "0 0 0" : "The direction conveyor moves." + spawnflags(flags) = + [ + 1: "Push" : 1 + ] + + speed(float) : "Conveyor Speed" : "150" + ] diff --git a/fgd/brush/func/func_detail_blocker.fgd b/fgd/brush/func/func_detail_blocker.fgd index a5ef6bdb7..c58132f84 100644 --- a/fgd/brush/func/func_detail_blocker.fgd +++ b/fgd/brush/func/func_detail_blocker.fgd @@ -1,5 +1,4 @@ -@SolidClass - appliesto(since_L4D, TF2) +@SolidClass appliesto(-engine, since_L4D, TF2, Mesa) = func_detail_blocker: "A brush entity that prevents detail sprites from being placed inside its volume." [ diff --git a/fgd/brush/func/func_friction.fgd b/fgd/brush/func/func_friction.fgd new file mode 100644 index 000000000..533535a9a --- /dev/null +++ b/fgd/brush/func/func_friction.fgd @@ -0,0 +1,5 @@ +@SolidClass base(Trigger) appliesto(Mesa) += func_friction: "A thing." + [ + modifier(float) : "Friction Percent" : 100 : "Set the friction to this percent of the regular friction" + ] diff --git a/fgd/brush/func/func_healthcharger.fgd b/fgd/brush/func/func_healthcharger.fgd index a75bd47d2..feda39aa1 100644 --- a/fgd/brush/func/func_healthcharger.fgd +++ b/fgd/brush/func/func_healthcharger.fgd @@ -1,5 +1,6 @@ @SolidClass base(BaseEntityVisBrush, EnableDisable) - appliesto(HL1, EP1, EP2, MBase) = func_healthcharger: "Original brush-based health recharger." + appliesto(HL1, EP1, EP2, P1, MBase) += func_healthcharger: "Original brush-based health recharger." [ // Outputs output OutRemainingHealth(float) : "Remaining Health." diff --git a/fgd/brush/func/func_lookdoor.fgd b/fgd/brush/func/func_lookdoor.fgd index f93b90a51..f8b6b84e3 100644 --- a/fgd/brush/func/func_lookdoor.fgd +++ b/fgd/brush/func/func_lookdoor.fgd @@ -1,6 +1,9 @@ - @SolidClass base(func_movelinear) -= func_lookdoor: "A door that moves either when looked by a targeted object or when a target object comes near the door. Behavior can be either based on viewing direction or proximity alone, or on a combination of both. If inverted the doors behavior will be the opposite." + appliesto(until_L4D, -TF2) += func_lookdoor: "A door that moves either when looked by a targeted object or " + + "when a target object comes near the door. " + + "Behavior can be either based on viewing direction or proximity alone, or on a combination of both. "+ + "If inverted the doors behavior will be the opposite." [ spawnflags(flags) : "spawnflags" = [ @@ -11,7 +14,7 @@ proximitydistance(string) : "Proximity Distance" : "0.0" : "If non-zero, proximity range over which door will move" proximityoffset(string) : "Proximity Offset" : "0.0" : "Offset from the target object" - fieldofview(string) : "FieldOfView" : "0.0" : "If non-zero, field of view over which door will move" + fieldofview(string) : "FieldOfView" : "0.0" : "If non-zero, field of view over which door will move. The target must then be a NPC/player!" // Inputs input InvertOn(void) : "InvertOn - when set behavior of door is inverted." diff --git a/fgd/brush/func/func_minefield.fgd b/fgd/brush/func/func_minefield.fgd new file mode 100644 index 000000000..6637834ec --- /dev/null +++ b/fgd/brush/func/func_minefield.fgd @@ -0,0 +1,13 @@ +@SolidClass base(Trigger) appliesto(Mesa) += func_minefield: "A thing." + [ + minecount(integer) : "Mine Count" : 25 : "Mine Count" + ranx(float) : "Uniform Random Spread X" : 35 : "" + rany(float) : "Uniform Random Spread Y" : 35 : "" + + spawnflags(Flags) = + [ + 4096 : "Uniform displacement" : 0 + 8192 : "Quick Placement" : 0 + ] + ] diff --git a/fgd/brush/func/func_physbox.fgd b/fgd/brush/func/func_physbox.fgd index 1adb28e3a..31d8c9691 100644 --- a/fgd/brush/func/func_physbox.fgd +++ b/fgd/brush/func/func_physbox.fgd @@ -16,6 +16,7 @@ 2097152: "Physgun is NOT allowed to pick this up." : 0 4194304: "Physgun is NOT allowed to punt this object." : 0 8388608: "Prevent motion enable on player bump" : 0 + 16777216: "Radius pickup (easer to pickup)" : 0 [MBase] ] damagetype[engine](integer) : "Impact Damage Type" : 0 diff --git a/fgd/brush/func/func_physbox_multiplayer.fgd b/fgd/brush/func/func_physbox_multiplayer.fgd index 4bd9595b1..f12e4dd3f 100644 --- a/fgd/brush/func/func_physbox_multiplayer.fgd +++ b/fgd/brush/func/func_physbox_multiplayer.fgd @@ -1,5 +1,6 @@ - @SolidClass base(func_physbox) - appliesto(CSGO) = func_physbox_multiplayer: "This class is the same as func_physbox, except the runtime collisions use a more bouncy method that avoids the prediction errors normal physics objects get." + = func_physbox_multiplayer: "This class is the same as func_physbox, " + + "except the runtime collisions use a more bouncy method that avoids " + + "the prediction errors normal physics objects get." [ ] diff --git a/fgd/brush/func/func_recharge.fgd b/fgd/brush/func/func_recharge.fgd index 00a78d4a6..407cc97bb 100644 --- a/fgd/brush/func/func_recharge.fgd +++ b/fgd/brush/func/func_recharge.fgd @@ -1,5 +1,5 @@ @SolidClass base(BaseEntityVisBrush) - appliesto(HL1, EP1, EP2) + appliesto(HL2, EP1, EP2) = func_recharge: "Old brush-based suit battery recharger." [ spawnflags(flags) : "spawnflags" = diff --git a/fgd/brush/func/func_subtract.fgd b/fgd/brush/func/func_subtract.fgd index a7bd056d9..f865199d5 100644 --- a/fgd/brush/func/func_subtract.fgd +++ b/fgd/brush/func/func_subtract.fgd @@ -1,5 +1,4 @@ -@SolidClass -appliesto(ASW) +@SolidClass appliesto(ASW, -engine) color(0 180 0) = func_subtract: "Subtracts geometry from other brushes (use vmf_subtract.exe)" [ diff --git a/fgd/brush/func/func_tank.fgd b/fgd/brush/func/func_tank.fgd index b0a7851aa..8587c4030 100644 --- a/fgd/brush/func/func_tank.fgd +++ b/fgd/brush/func/func_tank.fgd @@ -1,10 +1,10 @@ @SolidClass base(BaseTank) - appliesto(ASW, EP1, EP2, HL2, P1, P2, CSGO) = func_tank: "Brush Gun Turret" + appliesto(HL2, EP1, EP2, P1, P2, CSGO, Mesa) = func_tank: "Brush Gun Turret" [ shootsound[MBase](sound) : "Shoot Sound" : "" : "Plays a specific sound each time this tank fires." ammotype[engine](string) : "Ammo Type" - ammotype(choices) : "Ammo Type" = + ammotype[!Mesa](choices) : "Ammo Type" = [ "": "None" "Pistol": "Pistol" @@ -13,6 +13,14 @@ "CombineHeavyCannon": "Combine Heavy Cannon" "StriderMinigun" : "Strider Minigun" ] + ammotype[Mesa](choices) : "Ammo Type" = + [ + "" : "None" + "9mm" : "9mm" + "357" : "357" + "buckshot" : "buckshot" + "energy" : "energy" + ] spawnflags(flags) : "spawnflags" = [ diff --git a/fgd/brush/func/func_tankairboatgun.fgd b/fgd/brush/func/func_tankairboatgun.fgd index bf315c98b..55dca9136 100644 --- a/fgd/brush/func/func_tankairboatgun.fgd +++ b/fgd/brush/func/func_tankairboatgun.fgd @@ -27,4 +27,5 @@ airboat_gun_model[MBase](target_destination) : "Airboat gun model (Obsolete)" : : "You can do everything and more with the parent now, so you'd be better off using regular func_tank parent behavior than this. It is still functional for legacy support." airboat_gun_model[!MBase](target_destination) : "Name of a prop_dynamic which is the airboat gun model" + use_damage_kv[MBase](boolean) : "Use Damage KV" : 0 : "Allows this func_tankairboatgun to use the Bullet Damage keyvalues instead of the airboat gun's default damage." ] diff --git a/fgd/brush/func/func_tow.fgd b/fgd/brush/func/func_tow.fgd new file mode 100644 index 000000000..394a4b764 --- /dev/null +++ b/fgd/brush/func/func_tow.fgd @@ -0,0 +1,4 @@ +@SolidClass base(BaseTank) appliesto(Mesa) += func_tow : "TOW Missile System" + [ + ] diff --git a/fgd/brush/func/func_tow_mp.fgd b/fgd/brush/func/func_tow_mp.fgd new file mode 100644 index 000000000..057c4d9ff --- /dev/null +++ b/fgd/brush/func/func_tow_mp.fgd @@ -0,0 +1,4 @@ +@SolidClass base(BaseTank) appliesto(Mesa) += func_tow_mp : "TOW Missile System, for multiplayer" + [ + ] diff --git a/fgd/brush/func/func_trackchange.fgd b/fgd/brush/func/func_trackchange.fgd index 4dea7c798..21bf3e187 100644 --- a/fgd/brush/func/func_trackchange.fgd +++ b/fgd/brush/func/func_trackchange.fgd @@ -28,4 +28,5 @@ ] input Trigger(void) : "Trigger the track change." + input ForceTrigger[MESA](void) : "Force the track change." ] diff --git a/fgd/brush/func/func_tracktrain.fgd b/fgd/brush/func/func_tracktrain.fgd index 2c290784d..9c9380968 100644 --- a/fgd/brush/func/func_tracktrain.fgd +++ b/fgd/brush/func/func_tracktrain.fgd @@ -19,6 +19,10 @@ input UnlockOrientation[P2](void) : "Unlock the current orientation of the train." input SetMaxSpeed[P2](float) : "Set a new max speed for the train." + input SetVelocityType[MESA](integer) : "" + input EnableControls[MESA](void) : "" + input DisableControls[MESA](void) : "" + // Outputs output OnStart(void) : "Fired when the train starts moving in either direction." output OnNextPoint(string) : "Fires continuously every frame when the train is moving to its next destination." diff --git a/fgd/brush/func/func_viscluster.fgd b/fgd/brush/func/func_viscluster.fgd index 5dbfccb31..8b6ebbb84 100644 --- a/fgd/brush/func/func_viscluster.fgd +++ b/fgd/brush/func/func_viscluster.fgd @@ -1,4 +1,4 @@ -@SolidClass color(180 180 0) +@SolidClass color(180 180 0) appliesto(-engine) // Not an ent, removed by VBSP. = func_viscluster: "Any visleafs touching this brush will assume they can see each other. " + "Place across large open areas to help reduce compile times." diff --git a/fgd/brush/func/func_water_analog.fgd b/fgd/brush/func/func_water_analog.fgd index fe1dd9e7e..461638c57 100644 --- a/fgd/brush/func/func_water_analog.fgd +++ b/fgd/brush/func/func_water_analog.fgd @@ -4,10 +4,11 @@ movedir(angle) : "Move Direction (Pitch Yaw Roll)" : "0 0 0" : "The direction the water will move, when told to 'Open'." startposition(float) : "Start Position" : 0 : "Position of the water brush when spawned." + "The range is a value between 0.0 and 1.0, where 0 is the starting position and 1 is the starting position + (move direction * move distance)." - speed(float) : "Speed" : 100 : "The speed that the water brush moves, in inches per second." + speed(float) : "Speed" : 100 : "The speed that the water brush moves, in units per second." movedistance(float) : "Move Distance" : 100 : "The distance from the starting point that the water brush should move, in units." startsound(sound) : "Sound played when the water brush starts moving." stopsound(sound) : "Sound played when the water brush stops moving." + WaterMaterial[MESA](material) : "Water Material" : "liquids/c4a1_water_green" : "The material to derive water information from" waveheight(string) : "Wave Height" : "3.0" // Inputs diff --git a/fgd/brush/newxog_volume.fgd b/fgd/brush/newxog_volume.fgd new file mode 100644 index 000000000..f5c18bf81 --- /dev/null +++ b/fgd/brush/newxog_volume.fgd @@ -0,0 +1,53 @@ +@SolidClass base(TriggerOnce) appliesto(MESA) = newxog_volume +[ + Enabled(boolean) : "Enabled" : 1 : "Enable/Disable this Entity" + + XogType[engine](integer) : "Shape Type" : 0 + XogType(Choices) : "Shape Type" : 0 = + [ + 0 : "0: LocalVolume BBOX" + 1 : "1: LocalVolume Ellipsoid" + ] + + // skyColor(color255) : "skyColor" : "0 0 255 255" : "" + // skyBlendFactor(float) : "skyBlendFactor" : "0.4" : "" + + colorMode[engine](integer) : "colorMode" : 0 + colorMode(Choices) : "colorMode" : 0 : "0:StaticColor 1:1DGradTexture 2: CubeGradTexture" = + [ + 0 : "0: StaticColor" + 1 : "1: 1DGradTexture" + 2 : "2: CubeGradTexture" + ] + texName(string) : "Texture name Grad Texture" : "" : "Texture name Grad Texture" + + colorTop(color255) : "colorTop" : "255 0 0 255" : "" + colorBottom(color255) : "colorBottom" : "0 255 0 255" : "" + + distStart(float) : "distStart" : 50 : "distStart" + distEnd(float) : "distEnd" : 2000 : "distEnd" + distDensity(float) : "distDensity" : "1.0" : "distDensity" + + opacityOffsetTop(float) : "opacityOffsetTop" : 0 : "opacityOffsetTop" + opacityOffsetBottom(float) : "opacityOffsetBottom" : 0 : "opacityOffsetBottom" + + htZStart(float) : "htZStart" : 0 : "htZStart" + htZEnd(float) : "htZEnd" : 400 : "htZEnd" + htZColStart(float) : "htZColStart" : 0 : "htZColStart" + htZColEnd(float) : "htZColEnd" : 400 : "htZColEnd" + + noise1ScrollSpeed(vector) : "noise1ScrollSpeed" : "0.01095 0.00855 -0.02265 0.0" : "" + noise1Tiling(vector) : "noise1Tiling" : "1.32 1.32 1.32 0.0" : "" + + noise2ScrollSpeed(vector) : "noise2ScrollSpeed" : "0.00525 0.00495 -0.0075 0.0" : "" + noise2Tiling(vector) : "noise2Tiling" : "0.96 0.96 0.96 0.0" : "" + + noiseContrast(float) : "noiseContrast" : "1.0" : "" + noiseMultiplier(float) : "noiseMultiplier" : "1.0" : "" + + EnableVol_Height(boolean) : "Enable Height Blend" : 0 : "Enable/Disable this heightbased xog" + ////Inputs + input TurnOn(void) : "Turn the light on." + input TurnOff(void) : "Turn the light off." + input Toggle(void) : "Toggle the light on/off." +] diff --git a/fgd/brush/parallax_obb.fgd b/fgd/brush/parallax_obb.fgd new file mode 100644 index 000000000..97818ee16 --- /dev/null +++ b/fgd/brush/parallax_obb.fgd @@ -0,0 +1,5 @@ +@SolidClass appliesto(-engine, MBase) // Consumed by MapBase's VBSP. += parallax_obb : "Bounding box for Parallax Corrected Cubemaps." +[ + targetname(target_source) : "Name" : : "The name that other entities refer to this entity by." +] diff --git a/fgd/brush/propper/propper_lod.fgd b/fgd/brush/propper/propper_lod.fgd index 25040ed32..b9d7e2a6c 100644 --- a/fgd/brush/propper/propper_lod.fgd +++ b/fgd/brush/propper/propper_lod.fgd @@ -1,5 +1,5 @@ @SolidClass base(Propper, Origin) - appliesto(PROPPER) + appliesto(-engine, PROPPER) autovis(Propper) = propper_lod: "A low-res version of the model to show at long distance." [ diff --git a/fgd/brush/propper/propper_model.fgd b/fgd/brush/propper/propper_model.fgd index 2f4083006..34cd56d0d 100644 --- a/fgd/brush/propper/propper_model.fgd +++ b/fgd/brush/propper/propper_model.fgd @@ -1,5 +1,5 @@ @SolidClass base(StaticTargetname, Origin) - appliesto(PROPPER) + appliesto(-engine, PROPPER) autovis(Propper) line(255 255 0, targetname, physmodel) = propper_model: "This will create a model when Propper is run." diff --git a/fgd/brush/trigger/trigger_apply_impulse.fgd b/fgd/brush/trigger/trigger_apply_impulse.fgd index 77a27318f..599cfc029 100644 --- a/fgd/brush/trigger/trigger_apply_impulse.fgd +++ b/fgd/brush/trigger/trigger_apply_impulse.fgd @@ -1,6 +1,5 @@ - @SolidClass base(Trigger) - appliesto(MBase, TF2) = trigger_apply_impulse: "A trigger that adds impulse to touching entities." + appliesto(MBase, TF2, Mesa) = trigger_apply_impulse: "A trigger that adds impulse to touching entities." [ impulse_dir(angle) : "Impulse Direction (Pitch Yaw Roll)" : "0 0 0" : "Angles indicating the direction to push touching entities." force(float) : "Impulse Force" : 300 diff --git a/fgd/brush/trigger/trigger_brush.fgd b/fgd/brush/trigger/trigger_brush.fgd new file mode 100644 index 000000000..00a35f39c --- /dev/null +++ b/fgd/brush/trigger/trigger_brush.fgd @@ -0,0 +1,34 @@ +@SolidClass base(BaseEntityBrush, EnableDisable) += trigger_brush: "A trigger volume that can be used, and can relay touches to its parent." + [ + // Move this here, so we can check/uncheck boxes. + spawnflags[+srctools](flags) = [ + 1: "Ignore Players" + 2: "Ignore NPCs" + 4: "Ignore func_pushable" + 8: "Ignore touches" + 16: "Ignore +USE" + ] + InputFilter[engine](integer) : "Input Flags" : 0 + InputFilter[-srctools](choices) : "Input Flags" : 0 : "Filters what kind of entities can interact with this. The values can be ORed together." = [ + 0: "Allow anything" + 1: "Ignore Players" + 2: "Ignore NPCs" + 4: "Ignore func_pushable" + 8: "Ignore touches" + 16: "Ignore +USE" + ] + InputFilter[+srctools](integer) : "Input Flags" : 0 : "Filters what kind of entities can interact with this. Set this in spawnflags instead." + + DontMessageParent[engine](boolean) : "Don't Message Parent" : 0 + DontMessageParent(choices) : "Proxy To Parent" : 0 : "Relay touching or USEing this entity to the parent entity. " + + "The input filters will still apply." = + [ + 1 : "No" + 0 : "Yes" + ] + + output OnStartTouch(void) : "Fired when something touches us." + output OnEndTouch(void) : "Fired when something stops touching us." + output OnUse(void) : "Fired when the player (or I/O) USEs us." + ] diff --git a/fgd/brush/trigger/trigger_csm_volume.fgd b/fgd/brush/trigger/trigger_csm_volume.fgd new file mode 100644 index 000000000..ea443c3ad --- /dev/null +++ b/fgd/brush/trigger/trigger_csm_volume.fgd @@ -0,0 +1,6 @@ +@SolidClass base(Trigger) appliesto(Mesa) += trigger_csm_volume: "A trigger CSM volume that can be triggered multiple times and used for setting up csm volumes." + [ + wait(integer) : "Delay Before Reset" : 1 : "Amount of time, in seconds, after the trigger_multiple has triggered before it can be triggered again. " + + "If set to -1, it will never trigger again (in which case you should just use a trigger_once)." + ] diff --git a/fgd/brush/trigger/trigger_gargantua_shake.fgd b/fgd/brush/trigger/trigger_gargantua_shake.fgd new file mode 100644 index 000000000..91ded343e --- /dev/null +++ b/fgd/brush/trigger/trigger_gargantua_shake.fgd @@ -0,0 +1,4 @@ +@SolidClass base(Trigger) appliesto(Mesa) += trigger_gargantua_shake: "" + [ + ] diff --git a/fgd/brush/trigger/trigger_lift.fgd b/fgd/brush/trigger/trigger_lift.fgd new file mode 100644 index 000000000..1526691d1 --- /dev/null +++ b/fgd/brush/trigger/trigger_lift.fgd @@ -0,0 +1,6 @@ +@SolidClass base(Trigger) appliesto(Mesa) += trigger_lift: "" + [ + liftaccel(float) : "Lift Acceleration" : 100 : "Lift Acceleration" + clampspeed(float) : "Clamp Speed" : 512 : "Clamp Speed" + ] diff --git a/fgd/brush/trigger/trigger_look.fgd b/fgd/brush/trigger/trigger_look.fgd index e636923a0..cf311ad13 100644 --- a/fgd/brush/trigger/trigger_look.fgd +++ b/fgd/brush/trigger/trigger_look.fgd @@ -20,9 +20,13 @@ fieldofview(string) : "FieldOfView" : "0.9" : "How close the player has to be looking at the target. " + "1.0 = straight ahead\n 0.0 = +/- 90 degrees\n -1.0 = all directions)." timeout(float) : "Timeout" : 0 : "The time, in seconds, to wait after player enters the trigger before firing the OnTimeout output, 0 = never." + NotLookingFrequency(float) : "Not-Looking Frequency" : "0.5" : "time in second between 2 fires of OnNotLooking output." + UseLOS[MBase](boolean) : "Require LOS" : 0 : "If enabled, the player must have full LOS to the target entity in order to count as ''looking''." // Outputs output OnTrigger(void) : "Fired when the trigger is activated." output OnTimeout(void) : "Fired after the timeout interval expires if the player never looked at the target." + output OnStopLooking[Mesa](void) : "When the player was looking the target, this output is fired as soon as player no longer looks at it." + output OnNotLooking[Mesa](void) : "fired every 'NotLookingFrequency' seconds while player is NOT looking at target." ] diff --git a/fgd/brush/trigger/trigger_physics_trap.fgd b/fgd/brush/trigger/trigger_physics_trap.fgd index 4d760e2ce..0507f1795 100644 --- a/fgd/brush/trigger/trigger_physics_trap.fgd +++ b/fgd/brush/trigger/trigger_physics_trap.fgd @@ -1,5 +1,5 @@ @SolidClass base(Trigger, Angles) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, MESA) = trigger_physics_trap: "A volumetric trigger that disintegrates enemies" [ dissolvetype[engine](integer) : "Dissolve Type": 0 @@ -8,5 +8,8 @@ 0: "Energy" 1: "Heavy electrical" 2: "Light electrical" + 3 : "Fade" [MESA] + 4 : "Remove Now" [MESA] + 5 : "Core" [MESA] ] ] diff --git a/fgd/brush/trigger/trigger_playermovement.fgd b/fgd/brush/trigger/trigger_playermovement.fgd index 63ce55a06..8ccbe9ca5 100644 --- a/fgd/brush/trigger/trigger_playermovement.fgd +++ b/fgd/brush/trigger/trigger_playermovement.fgd @@ -6,6 +6,8 @@ 16: "(OBSOLETE, Uncheck me)" : 0 128: "Disable auto player movement" : 1 2048: "Auto-duck while in trigger" : 0 + 4096: "Disable ducking" : 0 [MESA] + 8192: "Disable movement" : 0 [MESA] 4096: "Auto-walk while in trigger" : 0 [MBase, since_L4D] 8192 : "Disable jump while in trigger" [MBase, since_L4D2] ] diff --git a/fgd/brush/trigger/trigger_rpgfire.fgd b/fgd/brush/trigger/trigger_rpgfire.fgd index 488c332dc..8cd9c09fd 100644 --- a/fgd/brush/trigger/trigger_rpgfire.fgd +++ b/fgd/brush/trigger/trigger_rpgfire.fgd @@ -1,5 +1,5 @@ @SolidClass base(Trigger) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) = trigger_rpgfire: "A volumetric trigger that triggers whenever an RPG is fired within it." [ ] diff --git a/fgd/brush/trigger/trigger_togglesave.fgd b/fgd/brush/trigger/trigger_togglesave.fgd new file mode 100644 index 000000000..e686ce9a8 --- /dev/null +++ b/fgd/brush/trigger/trigger_togglesave.fgd @@ -0,0 +1,5 @@ +@SolidClass base(Trigger, EnableDisable) += trigger_togglesave: "A trigger volume that autosaves each time the player touches it. " + + "After it is triggered, it must be Enabled before it will activate again." + [ + ] diff --git a/fgd/brush/trigger/trigger_waterydeath.fgd b/fgd/brush/trigger/trigger_waterydeath.fgd index 489eed413..e527814e5 100644 --- a/fgd/brush/trigger/trigger_waterydeath.fgd +++ b/fgd/brush/trigger/trigger_waterydeath.fgd @@ -1,6 +1,11 @@ @SolidClass base(Trigger) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) = trigger_waterydeath: "A trigger volume that spawns leeches around entities inside it, " + "and does damage to them until they die. Used to prevent players entering deep water." [ + BiteInterval[MBase](float) : "Bite Interval" : "0.3" : "The amount of time that should pass in between leech bites." + PainStep[MBase](float) : "Pain Step" : "2.0" : "Damage will increase by this number for each leech bite." + MaxPain[MBase](float) : "Max Pain" : "15.0" : "This is the maximum damage that could be attained after multiple pain steps." + + output OnDamage[MBase](integer) : "Fires each time an entity takes damage." ] diff --git a/fgd/brush/trigger/trigger_weapon_dissolve.fgd b/fgd/brush/trigger/trigger_weapon_dissolve.fgd index f4fe75e1b..e7ccdd163 100644 --- a/fgd/brush/trigger/trigger_weapon_dissolve.fgd +++ b/fgd/brush/trigger/trigger_weapon_dissolve.fgd @@ -1,5 +1,5 @@ @SolidClass base(Trigger) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) = trigger_weapon_dissolve: "A volumetric trigger that dissolves all weapons within it." [ emittername(target_destination) : "Emitter Name" : : "Name of a single or multiple entities to use as the basis for the emitted effects." diff --git a/fgd/brush/trigger/trigger_weaponfire.fgd b/fgd/brush/trigger/trigger_weaponfire.fgd new file mode 100644 index 000000000..b538ee4d3 --- /dev/null +++ b/fgd/brush/trigger/trigger_weaponfire.fgd @@ -0,0 +1,4 @@ +@SolidClass base(trigger_multiple) appliesto(Mesa) += trigger_weaponfire: "A thing." + [ + ] diff --git a/fgd/engine/_firesmoke.fgd b/fgd/engine/_firesmoke.fgd new file mode 100644 index 000000000..237060035 --- /dev/null +++ b/fgd/engine/_firesmoke.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(engine) += _firesmoke: "Internal entity used for natural-type env_fires." + [ + ] diff --git a/fgd/engine/_plasma.fgd b/fgd/engine/_plasma.fgd new file mode 100644 index 000000000..c89853fd0 --- /dev/null +++ b/fgd/engine/_plasma.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(engine) += _plasma: "Internal entity used for plasma-type env_fires." + [ + ] diff --git a/fgd/engine/ai_ally_speech_manager.fgd b/fgd/engine/ai_ally_speech_manager.fgd new file mode 100644 index 000000000..1caf5ab43 --- /dev/null +++ b/fgd/engine/ai_ally_speech_manager.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += ai_ally_speech_manager: "Manager entity for ally speech activity." + [ + ] diff --git a/fgd/engine/ar2explosion.fgd b/fgd/engine/ar2explosion.fgd new file mode 100644 index 000000000..6ff76cbf0 --- /dev/null +++ b/fgd/engine/ar2explosion.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, HL2, EP1, EP2, P1, P2) += ar2explosion: "Internal entity used to implement the explosion itself." + [ + ] diff --git a/fgd/engine/asw_rope_anchor.fgd b/fgd/engine/asw_rope_anchor.fgd new file mode 100644 index 000000000..69886c133 --- /dev/null +++ b/fgd/engine/asw_rope_anchor.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, ASW) += asw_rope_anchor: "Entity used to spawn the rope used by rapelling Marines." + + "When placed in Hammer, this will drop a rope 384 units below it." + [ + ] diff --git a/fgd/engine/beam.fgd b/fgd/engine/beam.fgd new file mode 100644 index 000000000..e22a87e79 --- /dev/null +++ b/fgd/engine/beam.fgd @@ -0,0 +1,4 @@ +@PointClass base(BaseBeam) appliesto(+engine) += beam: "Internal entity serving as the base for different visual beams." + [ + ] diff --git a/fgd/engine/bullseye_strider_focus.fgd b/fgd/engine/bullseye_strider_focus.fgd index d87517376..9fbfa2a02 100644 --- a/fgd/engine/bullseye_strider_focus.fgd +++ b/fgd/engine/bullseye_strider_focus.fgd @@ -1,5 +1,5 @@ @PointClass base(npc_bullseye) - appliesto(engine, HL2, EP1, EP2, P1) + appliesto(+engine, HL2, EP1, EP2, P1) = bullseye_strider_focus: "Duplicate of npc_bullseye, used so that ai_relationships don't accidentally alter relationships to these." [ ] diff --git a/fgd/engine/crane_tip.fgd b/fgd/engine/crane_tip.fgd new file mode 100644 index 000000000..5ff55749e --- /dev/null +++ b/fgd/engine/crane_tip.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, HL2, EP1, EP2, P1) += crane_tip: "The entity spawned for the tip of prop_vehicle_crane, supporting the cable." + [ + ] diff --git a/fgd/engine/crossbow_bolt.fgd b/fgd/engine/crossbow_bolt.fgd new file mode 100644 index 000000000..2b0e466d6 --- /dev/null +++ b/fgd/engine/crossbow_bolt.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, HL2, EP1, EP2, P1) += crossbow_bolt: "The projectile fired by the crossbow." + [ + ] diff --git a/fgd/engine/ent_watery_leech.fgd b/fgd/engine/ent_watery_leech.fgd new file mode 100644 index 000000000..0634b7d8f --- /dev/null +++ b/fgd/engine/ent_watery_leech.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, HL2, EP1, EP2, P1, P2) + studio("models/leech.mdl") += ent_watery_leech: "The leeches produced by trigger_waterydeath." + [ + ] diff --git a/fgd/engine/entity_blocker.fgd b/fgd/engine/entity_blocker.fgd new file mode 100644 index 000000000..f87a22942 --- /dev/null +++ b/fgd/engine/entity_blocker.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += entity_blocker: "This is spawned in temporarily to prevent NPCs from pathfinding into spaces like spawn points or movement targets." + [ + ] diff --git a/fgd/engine/env_laser_dot.fgd b/fgd/engine/env_laser_dot.fgd new file mode 100644 index 000000000..868a0600b --- /dev/null +++ b/fgd/engine/env_laser_dot.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, Mesa) + iconsprite("editor/info_target") += env_laser_dot: "This is used for the endpoint of the Rocket Launcher's laser targeting beam." + [ + ] diff --git a/fgd/engine/env_laserdot.fgd b/fgd/engine/env_laserdot.fgd new file mode 100644 index 000000000..a42dc976f --- /dev/null +++ b/fgd/engine/env_laserdot.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, HL2, EP1, EP2, P1, TF2) + iconsprite("editor/info_target") += env_laserdot: "This is used for the endpoint of the Rocket Launcher's laser targeting beam." + [ + ] diff --git a/fgd/engine/env_ragdoll_boogie.fgd b/fgd/engine/env_ragdoll_boogie.fgd new file mode 100644 index 000000000..4ba881fac --- /dev/null +++ b/fgd/engine/env_ragdoll_boogie.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += env_ragdoll_boogie: "The entity that controls random flinching on radolls, when electrified or the like." + + "\n\nThis must be parented to a ragdoll, and needs variables to be set by code." + [ + ] diff --git a/fgd/engine/event_queue_saveload_proxy.fgd b/fgd/engine/event_queue_saveload_proxy.fgd new file mode 100644 index 000000000..7937c5219 --- /dev/null +++ b/fgd/engine/event_queue_saveload_proxy.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += event_queue_saveload_proxy: "Internal entity used to store pending I/O events in the save game." + [ + ] diff --git a/fgd/engine/fish.fgd b/fgd/engine/fish.fgd new file mode 100644 index 000000000..9333f22f7 --- /dev/null +++ b/fgd/engine/fish.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += fish: "Individual fish spawned by func_fish_pool." + [ + ] diff --git a/fgd/engine/floorturret_tipcontroller.fgd b/fgd/engine/floorturret_tipcontroller.fgd new file mode 100644 index 000000000..95eb89280 --- /dev/null +++ b/fgd/engine/floorturret_tipcontroller.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, HL2, EP1, EP2, P1) += floorturret_tipcontroller: "Internal motion controller to stablize turrets." + [ + ] diff --git a/fgd/engine/grenade_ar2.fgd b/fgd/engine/grenade_ar2.fgd new file mode 100644 index 000000000..a72494113 --- /dev/null +++ b/fgd/engine/grenade_ar2.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, HL2, EP1, EP2, P1) + studioprop("models/Weapons/ar2_grenade.mdl") += grenade_ar2: "The grenade fired by the SMG." + [ + ] diff --git a/fgd/engine/grenade_beam.fgd b/fgd/engine/grenade_beam.fgd new file mode 100644 index 000000000..38343e49c --- /dev/null +++ b/fgd/engine/grenade_beam.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, HL2, EP1, EP2, P1) += grenade_beam: "The beam effect which follows grenades around." + [ + ] diff --git a/fgd/engine/grenade_beam_chaser.fgd b/fgd/engine/grenade_beam_chaser.fgd new file mode 100644 index 000000000..3c0511dfb --- /dev/null +++ b/fgd/engine/grenade_beam_chaser.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, HL2, EP1, EP2, P1) += grenade_beam_chaser: "The back end of the beam effect which follows grenades around." + [ + ] diff --git a/fgd/engine/helicopter_chunk.fgd b/fgd/engine/helicopter_chunk.fgd new file mode 100644 index 000000000..2988f44ba --- /dev/null +++ b/fgd/engine/helicopter_chunk.fgd @@ -0,0 +1,7 @@ +@PointClass base(BaseEntityPhysics) + appliesto(+engine, HL2, EP1, EP2, P1) + studio("models/gibs/helicopter_brokenpiece_06_body.mdl") += helicopter_chunk: +"The large gibs produced after npc_helicopter is killed." + [ + ] diff --git a/fgd/engine/lookdoorthinker.fgd b/fgd/engine/lookdoorthinker.fgd new file mode 100644 index 000000000..f1b42ee73 --- /dev/null +++ b/fgd/engine/lookdoorthinker.fgd @@ -0,0 +1,4 @@ +@PointClass base(BaseEntityPoint) appliesto(+engine, until_L4D, -TF2) += lookdoorthinker: "Internal entity used to continually make func_lookdoor check the looker and update its position." + [ + ] diff --git a/fgd/engine/npc_barnacle_tongue_tip.fgd b/fgd/engine/npc_barnacle_tongue_tip.fgd new file mode 100644 index 000000000..499676b49 --- /dev/null +++ b/fgd/engine/npc_barnacle_tongue_tip.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, HL2, EP1, EP2, P1) + studio("models/props_junk/rock001a.mdl") += npc_barnacle_tongue_tip: "The endpoint of banacle tounges, used internally to attach physics to." + [ + ] diff --git a/fgd/engine/npc_grenade_bugbait.fgd b/fgd/engine/npc_grenade_bugbait.fgd new file mode 100644 index 000000000..f53b9152d --- /dev/null +++ b/fgd/engine/npc_grenade_bugbait.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, HL2, EP1, EP2, P1) + studioprop("models/weapons/w_bugbait.mdl") += npc_grenade_bugbait: "The midair prop seen when bugbait is thrown." + [ + ] diff --git a/fgd/engine/npc_helicoptersensor.fgd b/fgd/engine/npc_helicoptersensor.fgd new file mode 100644 index 000000000..14869767f --- /dev/null +++ b/fgd/engine/npc_helicoptersensor.fgd @@ -0,0 +1,12 @@ +@NpcClass base(BaseEntityPoint) + appliesto(+engine, EP1, EP2, HL2, P1) + size(-30 -30 -30, 30 30 30) += npc_helicoptersensor: "Sensor area attached to the back of the helicopter, which forwards commands onto the helicopter." + + "This can then be detected by triggers, to trigger bombs exactly when the helicopter passes." + [ + input DropBomb(void) : "Immediately drops a bomb based on normal bomb dropping rules" + input DropBombStraightDown(void) : "Immediately drops a bomb directly downwards" + input DropBombAtTarget(target_destination) : "Immediately drops a bomb directly at the target destination, but only if the player isn't right there" + input DropBombAtTargetAlways(target_destination) : "Immediately drops a bomb directly at the target destination, no matter whether it's fair or not." + input DropBombDelay(float) : "Add a delay before the next bomb is dropped" + ] diff --git a/fgd/engine/phys_bone_follower.fgd b/fgd/engine/phys_bone_follower.fgd new file mode 100644 index 000000000..86db862cc --- /dev/null +++ b/fgd/engine/phys_bone_follower.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine) += phys_bone_follower: "Internal entity, used for models with $collisionjoints. This allowes each physics component to move independently." + [ + ] diff --git a/fgd/engine/physics_entity_solver.fgd b/fgd/engine/physics_entity_solver.fgd new file mode 100644 index 000000000..0e3e8e49c --- /dev/null +++ b/fgd/engine/physics_entity_solver.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += physics_entity_solver: "Internal entity, which temporarily disables collisions for physics objects inside doors and the like." + [ + ] diff --git a/fgd/engine/physics_npc_solver.fgd b/fgd/engine/physics_npc_solver.fgd new file mode 100644 index 000000000..7cf4678c2 --- /dev/null +++ b/fgd/engine/physics_npc_solver.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += physics_npc_solver: "Internal entity, which manages freeing objects stuck inside NPCs or the like." + [ + ] diff --git a/fgd/engine/rope_anchor.fgd b/fgd/engine/rope_anchor.fgd new file mode 100644 index 000000000..4772b6202 --- /dev/null +++ b/fgd/engine/rope_anchor.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, -L4D, -L4D2) += rope_anchor: "Entity used to spawn the rope used by rapelling Combine." + + "When placed in Hammer, this will drop a rope 384 units below it." + [ + ] diff --git a/fgd/engine/soundent.fgd b/fgd/engine/soundent.fgd new file mode 100644 index 000000000..ae4a77ae7 --- /dev/null +++ b/fgd/engine/soundent.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += soundent: "Keeps track of all sounds playing in the level." + [ + ] diff --git a/fgd/engine/spotlight_end.fgd b/fgd/engine/spotlight_end.fgd new file mode 100644 index 000000000..21d92c393 --- /dev/null +++ b/fgd/engine/spotlight_end.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += spotlight_end: "Entity positioned at the end of spotlights." + [ + ] diff --git a/fgd/engine/spraycan.fgd b/fgd/engine/spraycan.fgd new file mode 100644 index 000000000..df378d523 --- /dev/null +++ b/fgd/engine/spraycan.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine) += spraycan: "Ultra temporary SprayCan entity to apply decal frame at a time. For PreAlpha CD" + + "\n - Valve" + [ + ] diff --git a/fgd/engine/squadinsignia.fgd b/fgd/engine/squadinsignia.fgd new file mode 100644 index 000000000..78b96f8fe --- /dev/null +++ b/fgd/engine/squadinsignia.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, HL2, EP1, EP2, P1) + studio("models/chefhat.mdl") += squadinsignia: "A chef hat that attaches itself to the citzen set as the Owner (so can't be manually placed). Used when npc_citizen_insignia is enabled." + [ + ] diff --git a/fgd/engine/updateitem1.fgd b/fgd/engine/updateitem1.fgd new file mode 100644 index 000000000..d0bdcc467 --- /dev/null +++ b/fgd/engine/updateitem1.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, P1) += updateitem1: "Marks the location that the ARG radios (updateitem2) will recieve messages from." + [ + ] diff --git a/fgd/engine/updateitem2.fgd b/fgd/engine/updateitem2.fgd new file mode 100644 index 000000000..e596eb52a --- /dev/null +++ b/fgd/engine/updateitem2.fgd @@ -0,0 +1,7 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine, P1) + studioprop("models/props/radio_reference.mdl") += updateitem2: "The extra radios added to Portal to begin the ARG hinting at the release of Portal 2." + + "When brought nearby updateitem1, will switch to play the encoded messages." + [ + ] diff --git a/fgd/engine/viewmodel.fgd b/fgd/engine/viewmodel.fgd new file mode 100644 index 000000000..1532b5d68 --- /dev/null +++ b/fgd/engine/viewmodel.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine) += viewmodel: "The entity used to control and render the player's viewmodel." + [ + ] diff --git a/fgd/engine/vort_charge_token.fgd b/fgd/engine/vort_charge_token.fgd new file mode 100644 index 000000000..2e8ffb6db --- /dev/null +++ b/fgd/engine/vort_charge_token.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, HL2, EP1, EP2, P1) += vort_charge_token: "Glowing particles Vorts push towards a target to heal/charge it." + [ + ] diff --git a/fgd/engine/vort_effect_dispel.fgd b/fgd/engine/vort_effect_dispel.fgd new file mode 100644 index 000000000..fb3dfa244 --- /dev/null +++ b/fgd/engine/vort_effect_dispel.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(+engine, HL2, EP1, EP2, P1) += vort_effect_dispel: "The FX entity used for the glows in Vortigaunt hands." + [ + ] diff --git a/fgd/engine/waterbullet.fgd b/fgd/engine/waterbullet.fgd new file mode 100644 index 000000000..ecf19d171 --- /dev/null +++ b/fgd/engine/waterbullet.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityAnimating) appliesto(+engine) + studio("models/weapons/w_bullet.mdl") += waterbullet: "Visible bullet seen when guns are fired into water." + [ + ] diff --git a/fgd/engine/window_pane.fgd b/fgd/engine/window_pane.fgd new file mode 100644 index 000000000..a2e5c1581 --- /dev/null +++ b/fgd/engine/window_pane.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityAnimating) + appliesto(+engine) + studio("models/brokenglass_piece.mdl") += window_pane: "The individual shattered window pane for func_breakable_surf" + [ + ] diff --git a/fgd/point/ai/ai_ally_manager.fgd b/fgd/point/ai/ai_ally_manager.fgd index 420fcb1e0..fdd799021 100644 --- a/fgd/point/ai/ai_ally_manager.fgd +++ b/fgd/point/ai/ai_ally_manager.fgd @@ -1,6 +1,6 @@ @PointClass base(BaseEntityPoint) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) autovis(AI, AI Ally Manager) iconsprite("materials/editor/ficool2/ai_ally_manager.vmt") autovis(Point Entities, Globals, Ally Manager) diff --git a/fgd/point/ai/ai_battle_line.fgd b/fgd/point/ai/ai_battle_line.fgd index 3d062be11..8bb050efb 100644 --- a/fgd/point/ai/ai_battle_line.fgd +++ b/fgd/point/ai/ai_battle_line.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Battle Line) iconsprite("editor/ficool2/ai_battle_line") = ai_battle_line: "Battle line" diff --git a/fgd/point/ai/ai_changehintgroup.fgd b/fgd/point/ai/ai_changehintgroup.fgd index cab366ffb..00292a05c 100644 --- a/fgd/point/ai/ai_changehintgroup.fgd +++ b/fgd/point/ai/ai_changehintgroup.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Change Hint Group) sphere() iconsprite("editor/ficool2/ai_changehintgroup") diff --git a/fgd/point/ai/ai_changetarget.fgd b/fgd/point/ai/ai_changetarget.fgd index ff9ccf10c..91bc8913e 100644 --- a/fgd/point/ai/ai_changetarget.fgd +++ b/fgd/point/ai/ai_changetarget.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Change Target) iconsprite("editor/ai_changetarget.vmt") = ai_changetarget: "Change Target" diff --git a/fgd/point/ai/ai_goal_actbusy.fgd b/fgd/point/ai/ai_goal_actbusy.fgd index 7f59a5ffd..de619d13b 100644 --- a/fgd/point/ai/ai_goal_actbusy.fgd +++ b/fgd/point/ai/ai_goal_actbusy.fgd @@ -1,7 +1,8 @@ @PointClass base(BaseActBusy) autovis(AI, AI Goal) autovis(AI, Act Busy) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + size(-8 -8 -8, 8 8 8) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) = ai_goal_actbusy: "AI Goal Act Busy" [ seeentity(target_name_or_class) : "Sight Entity" : : "The Sight Entity (if you provide one) " + diff --git a/fgd/point/ai/ai_goal_actbusy_queue.fgd b/fgd/point/ai/ai_goal_actbusy_queue.fgd index fd9b33d9f..7d0130c52 100644 --- a/fgd/point/ai/ai_goal_actbusy_queue.fgd +++ b/fgd/point/ai/ai_goal_actbusy_queue.fgd @@ -2,7 +2,8 @@ @PointClass base(BaseActBusy) autovis(AI, AI Goal) autovis(AI, Act Busy) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + size(-8 -8 -8, 8 8 8) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) = ai_goal_actbusy_queue: "AI Goal Act Busy Queue" [ node_exit(target_destination) : "Exit Node" : : "The name of the node the first NPC in the queue should move to when he leaves the head of the queue." diff --git a/fgd/point/ai/ai_goal_assault.fgd b/fgd/point/ai/ai_goal_assault.fgd index 912b373bb..4b61470d6 100644 --- a/fgd/point/ai/ai_goal_assault.fgd +++ b/fgd/point/ai/ai_goal_assault.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Goal) iconsprite("editor/ficool2/ai_goal_assault") = ai_goal_assault: "AI Goal Assault" diff --git a/fgd/point/ai/ai_goal_follow.fgd b/fgd/point/ai/ai_goal_follow.fgd index be906f36d..f211bd26b 100644 --- a/fgd/point/ai/ai_goal_follow.fgd +++ b/fgd/point/ai/ai_goal_follow.fgd @@ -1,6 +1,6 @@ @PointClass base(FollowGoal) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Goal) iconsprite("editor/ai_goal_follow.vmt") = ai_goal_follow: "AI Goal Follow" [ diff --git a/fgd/point/ai/ai_goal_injured_follow.fgd b/fgd/point/ai/ai_goal_injured_follow.fgd index 952a56b0d..32395eee6 100644 --- a/fgd/point/ai/ai_goal_injured_follow.fgd +++ b/fgd/point/ai/ai_goal_injured_follow.fgd @@ -1,6 +1,5 @@ - @PointClass base(FollowGoal) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(EP1, EP2, P1, ASW) autovis(AI, AI Goal) iconsprite("editor/ai_goal_follow.vmt") = ai_goal_injured_follow: "AI Goal Injured Follow" [ diff --git a/fgd/point/ai/ai_goal_lead.fgd b/fgd/point/ai/ai_goal_lead.fgd index 46d8f7a29..5158c44af 100644 --- a/fgd/point/ai/ai_goal_lead.fgd +++ b/fgd/point/ai/ai_goal_lead.fgd @@ -1,6 +1,6 @@ @PointClass base(LeadGoalBase) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Goal) iconsprite("editor/ai_goal_lead.vmt") = ai_goal_lead: "AI Goal Lead" diff --git a/fgd/point/ai/ai_goal_lead_weapon.fgd b/fgd/point/ai/ai_goal_lead_weapon.fgd index 952e49c9a..eb4f7b59c 100644 --- a/fgd/point/ai/ai_goal_lead_weapon.fgd +++ b/fgd/point/ai/ai_goal_lead_weapon.fgd @@ -1,6 +1,6 @@ @PointClass base(LeadGoalBase) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Goal) iconsprite("editor/ai_goal_lead.vmt") = ai_goal_lead_weapon: "AI Goal Lead (Weapon). " + @@ -14,7 +14,7 @@ "weapon_smg1": "SMG1" "weapon_ar2": "AR2" ] - weaponname[!MBase](choices) : "Weapon" : "weapon_bugbait" : "The weapon the player must have in order for the actor to begin leading. " + + weaponname[MBase](choices) : "Weapon" : "weapon_bugbait" : "The weapon the player must have in order for the actor to begin leading. " + "If the entity times out, this weapon will silently be given to the player automatically." = [ "weapon_bugbait": "Bugbait" diff --git a/fgd/point/ai/ai_goal_operator.fgd b/fgd/point/ai/ai_goal_operator.fgd index c16f377c8..bd9fb7197 100644 --- a/fgd/point/ai/ai_goal_operator.fgd +++ b/fgd/point/ai/ai_goal_operator.fgd @@ -1,7 +1,7 @@ @PointClass autovis(AI, AI Goal) base(BaseEntityPoint, EnableDisable) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) = ai_goal_operator: "Indicates items in the world that some NPCs may operate upon." [ actor(target_name_or_class) : "Actor to affect" : : "NPC that should perform this operation" diff --git a/fgd/point/ai/ai_goal_standoff.fgd b/fgd/point/ai/ai_goal_standoff.fgd index f5f1b6277..6bcd84fed 100644 --- a/fgd/point/ai/ai_goal_standoff.fgd +++ b/fgd/point/ai/ai_goal_standoff.fgd @@ -1,6 +1,6 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Goal) iconsprite("editor/ai_goal_standoff.vmt") = ai_goal_standoff: "AI Goal Standoff" [ diff --git a/fgd/point/ai/ai_goal_throw_prop.fgd b/fgd/point/ai/ai_goal_throw_prop.fgd new file mode 100644 index 000000000..41fcc6123 --- /dev/null +++ b/fgd/point/ai/ai_goal_throw_prop.fgd @@ -0,0 +1,22 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + autovis(AI, AI Goal) + iconsprite("editor/ai_goal_standoff.vmt") += ai_goal_throw_prop : "AI Goal Throw Prop" + [ + actor(target_name_or_class) : "Actor(s) to affect" + + searchtype[engine](integer) : "Search Type" : 0 + searchtype(choices) : "Search Type" : 0 : "How to search for the entities using the targetname." = + [ + 0: "Entity Name" + 1: "Classname" + ] + + startactive(boolean) : "Start Active" : 0 + + PropName(string) : "Phsyics Prop Name" : "" : "Name of the physics prop to throw" + + // Inputs + input Activate(void) : "Begin contesting position." + input Deactivate(void) : "Cease contesting position." + ] diff --git a/fgd/point/ai/ai_npc_eventresponsesystem.fgd b/fgd/point/ai/ai_npc_eventresponsesystem.fgd index ef3e65826..0e8bf0864 100644 --- a/fgd/point/ai/ai_npc_eventresponsesystem.fgd +++ b/fgd/point/ai/ai_npc_eventresponsesystem.fgd @@ -1,4 +1,3 @@ - @PointClass base(BaseEntityPoint) appliesto(ASW, EP1, EP2, HL2, P1, P2) autovis(AI, AI Event Response System) diff --git a/fgd/point/ai/ai_script_conditions.fgd b/fgd/point/ai/ai_script_conditions.fgd index 1691fee37..c6527227a 100644 --- a/fgd/point/ai/ai_script_conditions.fgd +++ b/fgd/point/ai/ai_script_conditions.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) autovis(AI, AI Script Conditions) sphere(PlayerActorProximity) sphere(ActorTargetProximity) diff --git a/fgd/point/aiscripted_schedule.fgd b/fgd/point/aiscripted_schedule.fgd index 2427ece05..9806c5d41 100644 --- a/fgd/point/aiscripted_schedule.fgd +++ b/fgd/point/aiscripted_schedule.fgd @@ -1,4 +1,3 @@ - @PointClass base(BaseEntityPoint) appliesto(ASW, EP1, EP2, HL2, P1, P2) sphere(m_flRadius) diff --git a/fgd/point/ambient/ambient_generic.fgd b/fgd/point/ambient/ambient_generic.fgd index 263a76dcd..6228092ba 100644 --- a/fgd/point/ambient/ambient_generic.fgd +++ b/fgd/point/ambient/ambient_generic.fgd @@ -10,6 +10,7 @@ 1: "Infinite Range" : 0 16: "Start Silent" : 1 32: "Is NOT Looped" : 1 + 64:"Do NOT Pause when game is Paused": 0 [MESA] ] message(sound) : "Sound Name" : : "Name of the GameSound entry for the sound to play. Also supports direct .wav filenames." @@ -35,6 +36,17 @@ 1408: "Pause, ignore phonemes and don't overwrite" ] + m_bDontModifyPitchVolOnSpawn[engine](boolean) : "Don't Modify Pitch/Volume On Spawn" : 0 + m_bDontModifyPitchVolOnSpawn[MESA](Choices) : "Don't Modify Pitch/Volume On Spawn" : 0 : "When the 'Start Silent' flag is left unchecked, " + + "a SOUNDSCRIPTED ambient_generic will first pull its pitch & volume values " + + "from inside the entity itself upon map load/spawn, and NOT from what's dictated in the actual soundscript. " + + "This option, when enabled, will prevent this from happening and ensure no discontinuity " + + "occurs when toggling the sound off and on again. (Set to Disabled by default)" = + [ + 0 : "Disabled" + 1 : "Enabled" + ] + preset[engine](integer) : "Dynamic Presets" : 0 preset(choices) : "Dynamic Presets" : 0 : "If used, overrides many of the below properties (+pitch) to preset values." = [ diff --git a/fgd/point/assault/assault_assaultpoint.fgd b/fgd/point/assault/assault_assaultpoint.fgd index cfd93a435..29aede6bb 100644 --- a/fgd/point/assault/assault_assaultpoint.fgd +++ b/fgd/point/assault/assault_assaultpoint.fgd @@ -1,6 +1,6 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) iconsprite("editor/assault_point.vmt") sphere(allowdiversionradius) line(255 255 255, targetname, nextassaultpoint) = assault_assaultpoint: "(Assault) assault point" diff --git a/fgd/point/assault/assault_rallypoint.fgd b/fgd/point/assault/assault_rallypoint.fgd index 38ec9fcfa..02bccbbbf 100644 --- a/fgd/point/assault/assault_rallypoint.fgd +++ b/fgd/point/assault/assault_rallypoint.fgd @@ -1,6 +1,6 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) iconsprite("editor/assault_rally.vmt") line(255 255 255, targetname, assaultpoint) = assault_rallypoint: "(Assault) rally point" [ diff --git a/fgd/point/asw/asw_scanner_noise.fgd b/fgd/point/asw/asw_scanner_noise.fgd index 1a72b2fa7..baf74345a 100644 --- a/fgd/point/asw/asw_scanner_noise.fgd +++ b/fgd/point/asw/asw_scanner_noise.fgd @@ -1,8 +1,10 @@ - -@PointClass base(BaseEntityPoint) - appliesto(ASW) +// This is actually a clientside only entity, specially parsed with dedicated code out of the ent lump. +// So only the model, classname, maxdistance and core keyvalues are touched. +@PointClass appliesto(ASW) + autovis(Clientside, Scanner Noise) sphere(core) - sphere(maxdistance) = asw_scanner_noise: "Adds noise and distortion over the marine's scanner when he gets near." + sphere(maxdistance) += asw_scanner_noise: "Adds noise and distortion over the marine's scanner when he gets near." [ maxdistance(float) : "Distortion radius" : 200 : "Radius of the scanner distortion effect. Falloff is linear from the core edge to this distance. Must be greater than the core radius." core(float) : "Core distortion radius" : 100 : "Radius of the core scanner distortion effect. Within this core, distortion will be at full." diff --git a/fgd/point/beam/beam_spotlight.fgd b/fgd/point/beam/beam_spotlight.fgd index ae59d5051..aea4242cb 100644 --- a/fgd/point/beam/beam_spotlight.fgd +++ b/fgd/point/beam/beam_spotlight.fgd @@ -25,8 +25,8 @@ rendercolor(color255) : "Color (R G B)" : "255 255 255" hdrcolorscale(float) : "HDR color scale." : "0.7" : "float value to multiply sprite color by when running in HDR mode." - halosprite[L4D](material) : "Halo Sprite" : "sprites/light_glow03.vmt" : "The material that should be used for the halo." - beamsprite[L4D](material) : "Beam Sprite" : "sprites/glow_test02.vmt" : "The material that should be used for the beam." + halosprite[L4D](sprite) : "Halo Sprite" : "sprites/light_glow03.vmt" : "The material that should be used for the halo." + beamsprite[L4D](sprite) : "Beam Sprite" : "sprites/glow_test02.vmt" : "The material that should be used for the beam." // Inputs input LightOn(void) : "Turn the spotlight on." diff --git a/fgd/point/bounce_bomb.fgd b/fgd/point/bounce_bomb.fgd new file mode 100644 index 000000000..9fcb2abef --- /dev/null +++ b/fgd/point/bounce_bomb.fgd @@ -0,0 +1,5 @@ +@PointClass base(combine_mine) + appliesto(EP1, EP2, HL2, P1) += bounce_bomb: "An alternate name for the Combine Land Mine (combine_mine)." + [ + ] diff --git a/fgd/point/camera_satellite.fgd b/fgd/point/camera_satellite.fgd new file mode 100644 index 000000000..4c699c193 --- /dev/null +++ b/fgd/point/camera_satellite.fgd @@ -0,0 +1,30 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + studioprop("models/editor/camera.mdl") + frustum(FOV,fogstart,fogend,250 250 250,-1) += camera_satellite: "Satellite Camera" + [ + spawnflags(flags) : "spawnflags" = + [ + 1: "Start Off" : 0 + ] + + rendertarget[engine](string) : "Render Target" : "_rt_Satellite" + rendertarget(choices) : "Render Target" : "_rt_Satellite" = + [ + "_rt_Satellite" : "_rt_Satellite" + ] + + fov(float) : "FOV" : 90 : "Field of view in degrees" + usescreenaspectratio(boolean) : "Screen Aspect Ratio" : 0 + fogenable(boolean) : "Fog Enable" : 0 + fogcolor(color255) : "Fog Color" : "0 0 0" + fogstart(float) : "Fog Start" : 2048 : "The near fog plane." + fogend(float) : "Fog End" : 4096 : "The far fog/clipping plane." + fogmaxdensity(float) : "Fog Max Density [0..1]" : 1 : "The maximum fog density. 0=no fog, 1=full fog." + + // Inputs + input ChangeFOV(string) : "Changes camera's FOV over time" + input SetOnAndTurnOthersOff(void) : "Turn the camera on, and turn all other cameras off." + input SetOn(void) : "Turn the camera on." + input SetOff(void) : "Turn the camera off." + ] diff --git a/fgd/point/color/color_correction.fgd b/fgd/point/color/color_correction.fgd index 16ec2f997..51146e2df 100644 --- a/fgd/point/color/color_correction.fgd +++ b/fgd/point/color/color_correction.fgd @@ -18,7 +18,7 @@ 2: "Client-side simulation" : 0 ] - exclusive[since_L4D](boolean) : "Exlusive" : "0" : "An exclusive color_correction entity disables and fades out all other color corrections when it is enabled. " + + exclusive[since_L4D, MESA](boolean) : "Exlusive" : "0" : "An exclusive color_correction entity disables and fades out all other color corrections when it is enabled. " + "There should only be one active exclusive color_correction ent at any time." // Inputs diff --git a/fgd/point/combine_bouncemine.fgd b/fgd/point/combine_bouncemine.fgd new file mode 100644 index 000000000..8f423d8fb --- /dev/null +++ b/fgd/point/combine_bouncemine.fgd @@ -0,0 +1,5 @@ +@PointClass base(combine_mine) + appliesto(EP1, EP2, HL2, P1) += combine_bouncemine: "An alternate name for the Combine Land Mine (combine_mine)." + [ + ] diff --git a/fgd/point/combine_mine.fgd b/fgd/point/combine_mine.fgd index 633c42561..b2e18958a 100644 --- a/fgd/point/combine_mine.fgd +++ b/fgd/point/combine_mine.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1) size(-4 -4 -4, 4 4 4) line(255 255 255, targetname, enemyfilter) line(255 255 255, targetname, friendfilter) diff --git a/fgd/point/comp/comp_choreo_sceneset.fgd b/fgd/point/comp/comp_choreo_sceneset.fgd index 3e5c2a03d..13721eca9 100644 --- a/fgd/point/comp/comp_choreo_sceneset.fgd +++ b/fgd/point/comp/comp_choreo_sceneset.fgd @@ -2,6 +2,7 @@ iconsprite("editor/comp_choreo_sceneset.vmt") autovis(Postcompiler, Sceneset) autovis(Sounds, Choreo Scenes) + appliesto(srctools, -engine) = comp_choreo_sceneset: "Chains a set of choreographed scenes together." [ diff --git a/fgd/point/comp/comp_entity_finder.fgd b/fgd/point/comp/comp_entity_finder.fgd index c8a92c9df..236395f50 100644 --- a/fgd/point/comp/comp_entity_finder.fgd +++ b/fgd/point/comp/comp_entity_finder.fgd @@ -1,5 +1,5 @@ @PointClass - appliesto(srctools) + appliesto(srctools, -engine) autovis(Postcompiler, Entity Finder) iconsprite("editor/comp_entity_finder") sphere(radius) diff --git a/fgd/point/comp/comp_entity_mover.fgd b/fgd/point/comp/comp_entity_mover.fgd index 9fa4bff85..3119bf017 100644 --- a/fgd/point/comp/comp_entity_mover.fgd +++ b/fgd/point/comp/comp_entity_mover.fgd @@ -1,6 +1,6 @@ @PointClass iconsprite("editor/comp_entity_mover") - appliesto(srctools) + appliesto(srctools, -engine) autovis(Postcompiler, Ent Mover) sphere(distance) line(255 255 255, targetname, target) diff --git a/fgd/point/comp/comp_kv_setter.fgd b/fgd/point/comp/comp_kv_setter.fgd index b5513b292..c420c10d4 100644 --- a/fgd/point/comp/comp_kv_setter.fgd +++ b/fgd/point/comp/comp_kv_setter.fgd @@ -1,6 +1,6 @@ @PointClass base(Angles) iconsprite("editor/comp_kv_setter") - appliesto(srctools) + appliesto(srctools, -engine) autovis(Postcompiler, KV Setter) = comp_kv_setter : "Sets a keyvalue on an entity to a new value. " + "This is useful to compute spawnflags, or to adjust keyvalues when the target entity's options can't be set to a fixup variable." diff --git a/fgd/point/comp/comp_numeric_transition.fgd b/fgd/point/comp/comp_numeric_transition.fgd index 8c44f0bbd..7b8f76cc9 100644 --- a/fgd/point/comp/comp_numeric_transition.fgd +++ b/fgd/point/comp/comp_numeric_transition.fgd @@ -1,5 +1,5 @@ @PointClass - appliesto(srctools) + appliesto(srctools, -engine) base(logic_relay) line(255 255 255, targetname, target) = comp_numeric_transition : "When triggered, animates a keyvalue/input over time with various options." diff --git a/fgd/point/comp/comp_pack.fgd b/fgd/point/comp/comp_pack.fgd index b4fb9d96f..1c5064606 100644 --- a/fgd/point/comp/comp_pack.fgd +++ b/fgd/point/comp/comp_pack.fgd @@ -1,6 +1,6 @@ @PointClass iconsprite("editor/comp_pack") - appliesto(srctools) + appliesto(srctools, -engine) autovis(Postcompiler, Packing) = comp_pack: "Explicitly identify resources to pack into the map. If more are needed, add additional keyvalues with SmartEdit off." diff --git a/fgd/point/comp/comp_pack_rename.fgd b/fgd/point/comp/comp_pack_rename.fgd index 58f194c34..ab5e67443 100644 --- a/fgd/point/comp/comp_pack_rename.fgd +++ b/fgd/point/comp/comp_pack_rename.fgd @@ -1,6 +1,6 @@ @PointClass iconsprite("editor/comp_pack_rename") - appliesto(srctools) + appliesto(srctools, -engine) autovis(Postcompiler, Packing) = comp_pack_rename: "Pack a file into the BSP, under a different name than it starts with." diff --git a/fgd/point/comp/comp_pack_replace_soundscript.fgd b/fgd/point/comp/comp_pack_replace_soundscript.fgd index 5446939c6..06ae02e0c 100644 --- a/fgd/point/comp/comp_pack_replace_soundscript.fgd +++ b/fgd/point/comp/comp_pack_replace_soundscript.fgd @@ -1,6 +1,6 @@ @PointClass size(-8 -8 -8, 8 8 8) - appliesto(srctools) + appliesto(srctools, -engine) autovis(Postcompiler, Packing) = comp_pack_replace_soundscript: "Replace a soundscript with a different one." diff --git a/fgd/point/comp/comp_precache_model.fgd b/fgd/point/comp/comp_precache_model.fgd index 1870ca268..9ccf7ebb8 100644 --- a/fgd/point/comp/comp_precache_model.fgd +++ b/fgd/point/comp/comp_precache_model.fgd @@ -1,7 +1,7 @@ @PointClass base(Angles) iconsprite("editor/comp_precache_model") studioprop() - appliesto(srctools) + appliesto(srctools, -engine) autovis(Postcompiler, Precacher) = comp_precache_model: "Force a specific model to load, for runtime switching. Duplicates will be removed." diff --git a/fgd/point/comp/comp_precache_sound.fgd b/fgd/point/comp/comp_precache_sound.fgd index f6aeb4c8d..d5eacbc96 100644 --- a/fgd/point/comp/comp_precache_sound.fgd +++ b/fgd/point/comp/comp_precache_sound.fgd @@ -1,6 +1,6 @@ @PointClass // This is implemented via a VScript method. - appliesto(+srctools, +VScript) + appliesto(+srctools, +VScript, -engine) iconsprite("editor/comp_precache_sound") autovis(Postcompiler, Precacher) = comp_precache_sound: diff --git a/fgd/point/comp/comp_propcombine_set.fgd b/fgd/point/comp/comp_propcombine_set.fgd index 9c52b269b..e52b29e01 100644 --- a/fgd/point/comp/comp_propcombine_set.fgd +++ b/fgd/point/comp/comp_propcombine_set.fgd @@ -1,5 +1,5 @@ @PointClass base(Angles) - appliesto(srctools) + appliesto(srctools, -engine) iconsprite("editor/comp_propcombine_set") autovis(Postcompiler, Propcombine) wirebox(mins, maxs) diff --git a/fgd/point/comp/comp_scriptvar_setter.fgd b/fgd/point/comp/comp_scriptvar_setter.fgd index d6ad60884..2624e70c8 100644 --- a/fgd/point/comp/comp_scriptvar_setter.fgd +++ b/fgd/point/comp/comp_scriptvar_setter.fgd @@ -1,5 +1,5 @@ @PointClass - appliesto(srctools) + appliesto(+srctools, +VScript, -engine) base(Origin, Angles) iconsprite("editor/comp_scriptvar_setter") studio("models/editor/cone_helper.mdl") diff --git a/fgd/point/comp/comp_vactube_end.fgd b/fgd/point/comp/comp_vactube_end.fgd index 4d05bb658..7f76ad254 100644 --- a/fgd/point/comp/comp_vactube_end.fgd +++ b/fgd/point/comp/comp_vactube_end.fgd @@ -1,8 +1,8 @@ @PointClass base(BaseEntityPoint) - appliesto(P2, srctools) + appliesto(+P2, +srctools, -engine) autovis(Vactubes, Vac Paths) - studio("models/editor/vactubes/end_point.mdl") - sphere(radius) + studioprop("models/editor/vactubes/end_point.mdl") + sphere() = comp_vactube_end : "Marks the end point of a vactube. Objects reaching here will be cleaned up." [ radius(float) : "Cube Radius" : 0 : "The radius to search for cubes in for droppers. If zero, this is a regular endpoint, and the rest of the options have no effect." diff --git a/fgd/point/comp/comp_vactube_junction.fgd b/fgd/point/comp/comp_vactube_junction.fgd index c0e0b77db..2499d3e49 100644 --- a/fgd/point/comp/comp_vactube_junction.fgd +++ b/fgd/point/comp/comp_vactube_junction.fgd @@ -1,5 +1,5 @@ @PointClass base(Angles) - appliesto(P2, srctools) + appliesto(+P2, +srctools, -engine) autovis(Vactubes, Vac Paths) studioprop() = comp_vactube_junction : "Marks a junction in a vactube, where they're forced to change direction. Scanner models near straight nodes will be detected automatically." diff --git a/fgd/point/comp/comp_vactube_object.fgd b/fgd/point/comp/comp_vactube_object.fgd index 7cd0e4596..149ff0778 100644 --- a/fgd/point/comp/comp_vactube_object.fgd +++ b/fgd/point/comp/comp_vactube_object.fgd @@ -1,5 +1,5 @@ @PointClass - appliesto(P2, srctools) + appliesto(+P2, +srctools, -engine) autovis(Vactubes, Vac Globals) studioprop() = comp_vactube_object : "Registers objects that can appear in the tubing." diff --git a/fgd/point/comp/comp_vactube_start.fgd b/fgd/point/comp/comp_vactube_start.fgd index 217c1f674..c2694498e 100644 --- a/fgd/point/comp/comp_vactube_start.fgd +++ b/fgd/point/comp/comp_vactube_start.fgd @@ -1,7 +1,7 @@ @PointClass base(BaseEntityPoint) - appliesto(P2, srctools) + appliesto(+P2, +srctools, -engine) autovis(Vactubes, Vac Paths) - studio("models/editor/vactubes/start_point.mdl") + studioprop("models/editor/vactubes/start_point.mdl") = comp_vactube_start : "Marks the start point of a vactube. This is where they spawn." [ speed(float) : "Object Speed" : 800.0 : "Set the speed of the objects produced from here, in units per second." diff --git a/fgd/point/cycler_actor.fgd b/fgd/point/cycler_actor.fgd index 9d1389a2a..a18c94ebd 100644 --- a/fgd/point/cycler_actor.fgd +++ b/fgd/point/cycler_actor.fgd @@ -1,10 +1,6 @@ -@PointClass base(BaseNPC) +@PointClass base(BaseNPC, SetModel) appliesto(ASW, EP1, EP2, HL2, P1, P2) studio() = cycler_actor: "Actor Cycler" [ - model(studio) : "Model" sentence(string) : "Sentence Group" - - // Inputs - input Alpha(integer) : "Set Alpha Value" ] diff --git a/fgd/point/dynamic_prop.fgd b/fgd/point/dynamic_prop.fgd new file mode 100644 index 000000000..b0413d34d --- /dev/null +++ b/fgd/point/dynamic_prop.fgd @@ -0,0 +1,4 @@ +@PointClass base(prop_dynamic) += dynamic_prop : "Alternate name for prop_dynamic." + [ + ] diff --git a/fgd/point/env/env_beam.fgd b/fgd/point/env/env_beam.fgd index b56107cc7..68ec809bb 100644 --- a/fgd/point/env/env_beam.fgd +++ b/fgd/point/env/env_beam.fgd @@ -1,5 +1,4 @@ - -@PointClass base(BaseEntityPoint, RenderFields, Reflection) +@PointClass base(BaseBeam) line(255 255 255, targetname, LightningStart, targetname, LightningEnd) cylinder(255 255 255, targetname, LightningStart, Radius, targetname, LightningEnd, Radius) line(64 64 64, targetname, lightningStart) @@ -11,23 +10,15 @@ = env_beam: "An entity that creates a visible beam between two points. " + "The points can be attached to entities to make the beam move around." [ - renderamt(integer) : "Brightness (1 - 255)" : 100 - rendercolor(color255) : "Beam Color (R G B)" : "255 255 255" radius(integer) : "Radius" : 16 : "If the 'Random Strike' spawnflag is set, this radius determines the area within which the endpoints will randomly strike." - life(string) : "Life (seconds 0 = infinite)" : "1" : "Amount of time before the beam dies. Setting to zero will make the beam stay forever." + life(float) : "Life (seconds 0 = infinite)" : 0 : "Amount of time before the beam dies. Setting to zero will make the beam stay forever." boltwidth(float) : "Width of beam" : 2 : "Pixel width of the beam." - noiseamplitude(float) : "Amount of noise (0-64)" : 0 : "The amount of noise in the beam. 0 is a perfectly straight beam." - texture(material) : "Sprite Name" : "sprites/laserbeam.spr" : "The material used to draw the beam." - texturescroll(integer) : "Texture Scroll Rate (0-100)" : 35 : "Rate at which the beam texture should scroll along the beam." - framerate(integer) : "Frames per 10 seconds" : 0 : "Framerate at which the beam texture should animate, if it has multiple frames." - framestart(integer) : "Starting Frame" : 0 : "The frame to start the beam texture on." - striketime(string) : "Strike again time (secs)" : "1" : "Refire time between random strikes of the beam. Only used if the 'Random Strike' spawnflag is set." - damage(string) : "Damage / second" : "0" : "How much damage this beam does per second to things it hits when it is continually on, or instantaneously if it strikes. For continuous damage, the value should be greater than 10 or it may not work." + striketime(float) : "Strike again time (secs)" : 1 : "Refire time between random strikes of the beam. Only used if the 'Random Strike' spawnflag is set." + lightningstart(target_destination) : "Start Entity" : : "Entity that the beam starts at." lightningend(target_destination) : "Ending Entity" : : "Entity that the beam ends at. If not set, the Ending Location will be used instead." decalname(string) : "Decal Name" : "Bigshot" : "Decal to be applied at the end of the beam" - hdrcolorscale(float) : "HDR color scale." : 1.0 : "float value to multiply sprite color by when running in HDR mode." - spawnflags(flags) : "spawnflags" = + spawnflags(flags) = [ 1: "Start On" : 0 2: "Toggle" : 0 @@ -39,6 +30,9 @@ 128: "Shade Start" : 0 256: "Shade End" : 0 512: "Taper Out" : 0 + 1024: "Ring Point": 0 [MESA] + // Pretty useless for mappers, but is present... + // 32768: "Temporary - not saved in save files" : 0 ] touchtype[engine](integer) : "Touch Type (tripwire)" : 0 @@ -65,22 +59,13 @@ // Inputs - input TurnOn(void) : "Turns the beam on." - input TurnOff(void) : "Turns the beam off." - input Toggle(void) : "Toggles the beam between on and off." input StrikeOnce(void) : "Causes the beam to strike once. It will stay on for its set Life and then turn off (it will never turn off if Life is set to zero)." - input Alpha(integer) : "Sets the beam's alpha (0 - 255)." - input Color(color255) : "Sets the beam's render color (R G B)." - input ColorRedValue(float) : "Sets the red color channel's value (0 - 255)." - input ColorGreenValue(float) : "Sets the green color channel's value (0 - 255)." - input ColorBlueValue(float) : "Sets the blue color channel's value (0 - 255)." input Amplitude(float) : "Set the amplitude of beam noise (0 - 255)." - input ScrollSpeed(float) : "Set the scroll speed in units per second (0 - 100)." - input Width(float) : "Set the width of the beam, in pixels." - input Noise[MBase](float) : "Set the noise of the beam, in pixels." input SetStartEntity[MBase](target_destination) : "Sets the start entity." input SetEndEntity[MBase](target_destination) : "Sets the end entity." // Outputs output OnTouchedByEntity(void) : "Fired when an entity touches the beam. Only fired if the entity passes the 'Touch Type' choice." + output OnTouchedByNPC[MESA](void) : "Fired when an npc touches the beam. Only fired if the entity passes the 'Touch Type' choice." + output OnTouchedByPlayer[MESA](void) : "Fired when an player touches the beam. Only fired if the entity passes the 'Touch Type' choice." ] diff --git a/fgd/point/env/env_cascade_light.fgd b/fgd/point/env/env_cascade_light.fgd index 5cf5dfbb0..cb0b55bde 100644 --- a/fgd/point/env/env_cascade_light.fgd +++ b/fgd/point/env/env_cascade_light.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint, EnableDisable) - appliesto(since_CSGO) + appliesto(since_CSGO, MESA) iconsprite("editor/shadow_control.vmt") = env_cascade_light: "An entity to control the sunlight that casts cascaded shadows in the map." [ @@ -18,7 +18,37 @@ "the CSM shadow angles are automatically harvested from the light_environment's angles. " + "If false, this entity's angles are used." + LightRadius1[MESA](float) : "LightRadius1" : "0.001" : "Used for controlling shadow softness in cascade 1" + LightRadius2[MESA](float) : "LightRadius2" : "0.001" : "Used for controlling shadow softness in cascade 2" + LightRadius3[MESA](float) : "LightRadius3" : "0.001" : "Used for controlling shadow softness in cascade 3" + + Depthbias1[MESA](float) : "Depthbias1" : "0.00025" : "DepthBias for cascade 1" + Depthbias2[MESA](float) : "Depthbias2" : "0.00005" : "DepthBias for cascade 2" + Depthbias3[MESA](float) : "Depthbias3" : "0.00005" : "DepthBias for cascade 3" + + Slopescaledepthbias1[MESA](float) : "Slopescaledepthbias1" : "2.0" : "Slope DepthBias for cascade 1" + Slopescaledepthbias2[MESA](float) : "Slopescaledepthbias2" : "2.0" : "Slope DepthBias for cascade 2" + Slopescaledepthbias3[MESA](float) : "Slopescaledepthbias3" : "2.0" : "Slope DepthBias for cascade 3" + + ViewModelDepthbias[MESA](float) : "ViewModelDepthbias" : "0.000009" : "DepthBias for viewmodel cascade" + ViewModelSlopescaledepthbias[MESA](float) : "ViewModelSlopescaledepthbias" : "0.9" : "DepthBias for viewmodel cascade" + + CSMVolumeMode[engine](integer) : "Volume Mode" + CSMVolumeMode(choices) : "CSM_Volume_Mode" : 0 : "CSM Volume Modes " + + "- Auto: Static cache will update once every 10 frames (approx) covering max shadow distance or whole map around player. " + + "Manual : Static cache area coverage and updates are managed via csm volumes i/o. \n " + + "Use Manual mode for better quality and performence. \n " + + "In near future Auto mode will be removed from the game." = + [ + 0 : "Auto" + 1 : "Manual" + ] + // Inputs input LightColor(color255) : "Set the light color." input SetAngles(string) : "Set the sun direction." + + input SetCSMVolume[MESA](void) : "Set CSM Volume via trigger volume" + input SetCSMVolumeToSceneBounds[MESA](void) : "Set csm Volume to scene bounds" + input SetCSMVolumeViaCSMVolumeEntity[MESA](target_destination) : "Set csm Volume to csm volumne entity" ] diff --git a/fgd/point/env/env_citadel_energy_core.fgd b/fgd/point/env/env_citadel_energy_core.fgd index a450a026a..27546d91a 100644 --- a/fgd/point/env/env_citadel_energy_core.fgd +++ b/fgd/point/env/env_citadel_energy_core.fgd @@ -1,6 +1,9 @@ @PointClass base(BaseEntityPoint, Angles) appliesto(ASW, EP1, EP2, HL2, P1, P2) - studio("models/editor/cone_helper.mdl") = env_citadel_energy_core: "Special effect for the energy cores in the Citadel, or for the Unstationary Scaffold. Appears as a blue-white sphere with streams of energy coming from the direction the entity is pointing." + studio("models/editor/cone_helper.mdl") + iconsprite("editor/env_citadel_energy_core.vmt") += env_citadel_energy_core: "Special effect for the energy cores in the Citadel, or for the Portal Unstationary Scaffold. " + + "Appears as a blue-white sphere with streams of energy coming from the direction the entity is pointing." [ spawnflags(flags) : "spawnflags" = [ diff --git a/fgd/point/env/env_cubemap.fgd b/fgd/point/env/env_cubemap.fgd index 190395846..7d0dfd915 100644 --- a/fgd/point/env/env_cubemap.fgd +++ b/fgd/point/env/env_cubemap.fgd @@ -1,7 +1,8 @@ -@PointClass +@PointClass appliesto(-engine) // This is not actually an entity, it's handled specially by VBSP. color(0 0 255) sidelist(sides) iconsprite("editor/env_cubemap.vmt") + line(255 255 255, targetname, parallaxobb) = env_cubemap: "An entity that creates a sample point for the Cubic Environment Map." [ cubemapsize[engine](integer) : "Cubemap Size" : 0 @@ -20,4 +21,9 @@ ] sides(sidelist) : "Brush faces" : : "(Optional) Brushes faces to directly attach to the env_cubemap. Press Pick then click on faces in the 3D View to select them. Use CTRL while clicking to add or remove from the selection." + + parallaxobb[MBase](target_destination) : "Cubemap Bounds" : : "MAPBASE VBSP ONLY: " + + "Optionally assigns this cubemap a bounding box for parallax correction " + + "(brush entity tied to parallax_obb). " + + "This means the cubemap reflection will move as the camera moves, similar to func_reflective_glass. " ] diff --git a/fgd/point/env/env_detail_controller.fgd b/fgd/point/env/env_detail_controller.fgd index 7af0ca1e7..416828973 100644 --- a/fgd/point/env/env_detail_controller.fgd +++ b/fgd/point/env/env_detail_controller.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint, Angles) - appliesto(since_L4D2) + appliesto(since_L4D2, Mesa) sphere(fademindist) sphere(fademaxdist) iconsprite("editor/env_particles.vmt") diff --git a/fgd/point/env/env_dispenser.fgd b/fgd/point/env/env_dispenser.fgd new file mode 100644 index 000000000..6b37bb557 --- /dev/null +++ b/fgd/point/env/env_dispenser.fgd @@ -0,0 +1,14 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) += env_dispenser : "Dispenser (replaces env_beverage)" + [ + spawnmodel(studio) : "Model to spawn" : "models/props_junk/popcan01a.mdl" : "Model to spawn when activated." + spawnangles(angle) : "Spawn angles" : "0 0 0" : "Orientation of the model at spawn (Y Z X)" + capacity(integer) : "Capacity" : 15 : "Number of models to spawn." + skinmin(integer) : "Minimum skin" : 0 : "Minimum skin number." + skinmax(integer) : "Maximum skin" : 0 : "Maximum skin number." + + input Activate(void) : "Spawn prop_physics item with the specified model and skin." + input Break(void) : "Rapidy spawn all the items remaining in the dispenser." + output OnBreak(void) : "Break" + output OnEmpty(void) : "Empty" + ] diff --git a/fgd/point/env/env_entity_dissolver.fgd b/fgd/point/env/env_entity_dissolver.fgd index a14a2ac9e..4a02a8615 100644 --- a/fgd/point/env/env_entity_dissolver.fgd +++ b/fgd/point/env/env_entity_dissolver.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) iconsprite("editor/ficool2/env_entity_dissolver.vmt") line(255 255 255, targetname, target) = env_entity_dissolver: "Dissolves the target entity when triggered. Only works on model entities. In Portal 2, this uses the Fizzler effects." @@ -13,7 +13,10 @@ 0: "Energy" 1: "Heavy electrical" 2: "Light electrical" - 3: "Core Effect" + 3: "Core Effect" [!Mesa] + 3: "Fade" [Mesa] + 4: "Remove Now" [Mesa] + 5: "Core" [Mesa] ] dissolvetype[P2](choices) : "Dissolve Type" : 0 : "The type of effect to use." = diff --git a/fgd/point/env/env_explosion.fgd b/fgd/point/env/env_explosion.fgd index 14175e84a..c70497956 100644 --- a/fgd/point/env/env_explosion.fgd +++ b/fgd/point/env/env_explosion.fgd @@ -7,7 +7,7 @@ [ imagnitude(integer) : "Magnitude" : 100 : "The amount of damage done by the explosion." iradiusoverride(integer) : "Radius Override" : 0 : "If specified, the radius in which the explosion damages entities. If unspecified, the radius will be based on the magnitude." - fireballsprite(material) : "Fireball Sprite" : "sprites/zerogxplode.spr" + fireballsprite(sprite) : "Fireball Sprite" : "sprites/zerogxplode.spr" rendermode[engine](integer) : "Render Mode" : 5 rendermode(choices) : "Render Mode" : 5 = diff --git a/fgd/point/env/env_fumer.fgd b/fgd/point/env/env_fumer.fgd new file mode 100644 index 000000000..65e45075b --- /dev/null +++ b/fgd/point/env/env_fumer.fgd @@ -0,0 +1,19 @@ +@PointClass base(BaseEntityAnimating, EnableDisable) appliesto(Mesa) + sphere(fademindist) sphere(fademaxdist) sphere(DetectionRadius) sphere(ExplodeRaius) studioprop() += env_fumer: "Fumer Entity" + [ + model(studio) : "Model" : "models/props_trainstation/trashcan_indoor001b.mdl" : "Model to use for this entity" + + DetectionRadius(float) : "DetectionRadius" : 128 : "DetectionRadius" + + ExplodeRaius(float) : "ExplodeRaius" : 128 : "ExplodeRaius" + ExplodeDmg(float) : "ExplodeDmg" : 30 : "ExplodeDmg" + ExplodeForce(float) : "ExplodeForce" : 1 : "ExplodeForce" + + FlameTime(float) : "FlameTime" : 10 : "FlameTime" + + input TurnOff(void) : "" + input TurnOn(void) : "" + input ExplodeME(void) : "" + input SetCoolDown(float) : "" + ] diff --git a/fgd/point/env/env_global.fgd b/fgd/point/env/env_global.fgd index 2d9a3caaa..300f79c7d 100644 --- a/fgd/point/env/env_global.fgd +++ b/fgd/point/env/env_global.fgd @@ -12,7 +12,8 @@ "gordon_precriminal": "Gordon pre-criminal" "antlion_allied": "Antlions are player allies" "suit_no_sprint": "Suit sprint function not yet enabled" - "super_phys_gun": "Super phys gun is enabled" + "super_phys_gun": "Super phys gun is enabled" [!MBase] + "super_phys_gun": "Super phys gun is enabled (Mapbase: Counter 1 prevents item dissolve)" [MBase] "friendly_encounter": "Friendly encounter sequence (lower weapons, etc.)" "gordon_invulnerable": "Gordon is invulnerable" "no_seagulls_on_jeep": "Don't spawn seagulls on the jeep" @@ -97,6 +98,12 @@ "infra_B2_Keys": "INFRA: player has B2 Keys" ] + globalstate[Mesa](choices) : "Global State to Set" = + [ + "predisaster" : "predisaster" + "friendly_encounter" : "Friendly encounter sequence (lower weapons, etc.)" + "gordon_invulnerable" : "Gordon is invulnerable" + ] initialstate[engine](integer) : "Initial State" : 0 initialstate(choices) : "Initial State" : 0 = diff --git a/fgd/point/env/env_glow.fgd b/fgd/point/env/env_glow.fgd new file mode 100644 index 000000000..747be61d9 --- /dev/null +++ b/fgd/point/env/env_glow.fgd @@ -0,0 +1,3 @@ +@PointClass base(env_sprite) = env_glow: "Obselete older name for env_sprite." + [ + ] diff --git a/fgd/point/env/env_godrays_controller.fgd b/fgd/point/env/env_godrays_controller.fgd new file mode 100644 index 000000000..46648c0bf --- /dev/null +++ b/fgd/point/env/env_godrays_controller.fgd @@ -0,0 +1,28 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + autovis(Point Entities, Globals, GodRays Controller) += env_godrays_controller : "Controls GodRays" + [ + Density(float) : "Density" : "0.5" : "Light density." + Decay(float) : "Decay" : "0.5" : "Luminance fall off per sample." + Weight(float) : "Weight" : "1.0" : "Weight of each sample" + Exposure(float) : "Exposure" : "0.20" : "Exposure" + + DensityUW(float) : "DensityUW" : "0.5" : "Light density. UnderWater" + DecayUW(float) : "DecayUW" : "0.5" : "Luminance fall off per sample. UnderWater" + WeightUW(float) : "WeightUW" : "1.0" : "Weight of each sample. UnderWater" + ExposureUW(float) : "ExposureUW" : "0.20" : "Exposure UnderWater" + + input SetEnable(void): "Enable God Rays" + input SetDisable(void) : "Disable God Rays" + input SetDensity(float) : "Light density." + input SetWeight(float) : "Weight of each sample" + input SetDecay(float) : "Luminance fall off per sample." + input SetExposure(float) : "Exposure" + + input SetEnableUW(void): "Enable God Rays UnderWater" + input SetDisableUW(void) : "Disable God Rays UnderWater" + input SetDensityUW(float) : "Light density UnderWater" + input SetWeightUW(float) : "Weight of each sample UnderWater" + input SetDecayUW(float) : "Luminance fall off per sample UnderWater" + input SetExposureUW(float) : "Exposure UnderWater" + ] diff --git a/fgd/point/env/env_gon_motar_area.fgd b/fgd/point/env/env_gon_motar_area.fgd new file mode 100644 index 000000000..5d0264f63 --- /dev/null +++ b/fgd/point/env/env_gon_motar_area.fgd @@ -0,0 +1,8 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + sphere(Radius) += env_gon_mortar_area: "An entity to control mortar acid Spam volume" + [ + Radius(float) : "Radius" : "100" : "Radius" + // RadiusY(float) : "RadiusY" : "100" : "Radius along world Y Axis" + // RadiusZ(float) : "RadiusZ" : "100" : "Radius along world Z Axis" + ] diff --git a/fgd/point/env/env_gravity.fgd b/fgd/point/env/env_gravity.fgd new file mode 100644 index 000000000..2a283b426 --- /dev/null +++ b/fgd/point/env/env_gravity.fgd @@ -0,0 +1,8 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + autovis(Point Entities, Globals, Gravity Controller) += env_gravity: "Manage gravity and friction." + [ + input SetGravity(integer) : "Set sv_gravity to specific amount." + input SetFriction(integer) : "Set sv_friction to specific amount." + input SetFallDamageScale(float) : "Set sv_falldamagescale to specific amount. (1 to default, 0 to nothing)" + ] diff --git a/fgd/point/env/env_gunfire.fgd b/fgd/point/env/env_gunfire.fgd index e6218a5b3..a65814cfc 100644 --- a/fgd/point/env/env_gunfire.fgd +++ b/fgd/point/env/env_gunfire.fgd @@ -1,6 +1,6 @@ @PointClass base(BaseEntityPoint, EnableDisable) - appliesto(ASW, EP1, EP2, HL2, MBase, P1, CSGO) = env_gunfire: "Gunfire Effect" + appliesto(ASW, EP1, EP2, HL2, MBase, P1, CSGO, Mesa) = env_gunfire: "Gunfire Effect" [ target(target_destination) : "Target" : : "Shoot at this target. REMEMBER - this is an effect only! It does not do damage!" diff --git a/fgd/point/env/env_introcredits.fgd b/fgd/point/env/env_introcredits.fgd new file mode 100644 index 000000000..fbf027116 --- /dev/null +++ b/fgd/point/env/env_introcredits.fgd @@ -0,0 +1,8 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + size(-4 -4 -4, 4 4 4) + autovis(Entities, Point Entities, Globals, Intro Credits) += env_introcredits + [ + startactive(boolean) : "Start Active" : 0 + input Activate(void) : "Activate" + ] diff --git a/fgd/point/env/env_laser.fgd b/fgd/point/env/env_laser.fgd index 3883a17d8..84fe7f56e 100644 --- a/fgd/point/env/env_laser.fgd +++ b/fgd/point/env/env_laser.fgd @@ -1,30 +1,16 @@ -@PointClass base(BaseEntityPoint) +@PointClass base(BaseBeam) iconsprite("editor/ficool2/env_laser.vmt") line(255 255 255, targetname, LaserTarget) color(200 200 0) = env_laser: "An entity that creates a laser beam between itself and a given target." [ - lasertarget(target_destination) : "Target of Laser" : : "Name of entity, or entities, to strike at. The target is randomly chosen if there are multiple entities matching the given name." - renderamt(integer) : "Brightness (1 - 255)" : 100 - rendercolor(color255) : "Beam Color (R G B)" : "255 255 255" + lasertarget(target_destination) : "Target of Laser" : : "Name of entity, or entities, to strike at. " + + "The target is randomly chosen if there are multiple entities matching the given name." width(float) : "Width of Beam" : 2 : "The width of the laser beam, in pixels." - noiseamplitude(integer) : "Amount of noise (0-255)" : 0 : "The amount of noise in the beam. 0 is a perfectly straight beam." - texture(material) : "Sprite Name" : "sprites/laserbeam.spr" : "The material used to draw the laser beam." - endsprite(material) : "End Sprite" : : "If specified, this sprite will be drawn at the end of the laser beam." - texturescroll(integer) : "Texture Scroll Rate (0-100)" : 35 : "Rate at which the beam texture should scroll along the beam." - framestart(integer) : "Starting Frame" : 0 : "The frame to start the beam texture on." - damage(string) : "Damage / second" : "100" : "How much damage this laser does. per second. to things it hits." - dissolvetype[engine](integer) : "Dissolve Type" : 0 - dissolvetype(choices) : "Dissolve Type" : -1 = - [ - -1: "None" - 0: "Energy" - 1: "Heavy electrical" - 2: "Light electrical" - ] + endsprite(sprite) : "End Sprite" : : "If specified, this sprite will be drawn at the end of the laser beam." - spawnflags(flags) = + spawnflags(flags) = [ 1: "Start On" : 0 16: "StartSparks" : 0 @@ -34,12 +20,10 @@ // Inputs - input TurnOn(void) : "Turns the laser on." - input TurnOff(void) : "Turns the laser off." - input Toggle(void) : "Toggles the laser between on and off." input SetTarget[MBase](target_destination) : "Sets the laser's target." // Outputs output OnTouchedByEntity[MBase](void) : "Fired when an entity touches the laser. " + "Please note this fires for each frame the entity is touching, unlike env_beam." + output OnTouchedByPlayer[MESA](void) : "Fired when an player touches the beam. Only fired if the entity passes the 'Touch Type' choice." ] diff --git a/fgd/point/env/env_lensflare.fgd b/fgd/point/env/env_lensflare.fgd new file mode 100644 index 000000000..9a0e88293 --- /dev/null +++ b/fgd/point/env/env_lensflare.fgd @@ -0,0 +1,171 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + sphere(GlowProxySize) += env_lensflare : "Controls LensFlare" + [ + FlareFile(string) : "File" : "" : "Optionnal - file defining the lens flare. Note: Hammer's parameters overwrite the file's parameters." + + spawnflags(flags) = + [ + 1: "Start on" : 1 + 2: "Play Once" : 0 + ] + + FlareAttenuation(float) : "Distance attenuation" : "0.0" : "distance where lensflare will be invisible. 0.0 if not attenuation with distance" + + FlareType[engine](integer) : "Flare Type" : 0 + FlareType(Choices) : "Flare Type" : 0 : "Normal: normal lens flare (Pitch,Yaw,Roll not used) ------ Sun Flare: set the same Pitch,Yaw,Roll that the one from the sun light_env. That will define the position of the sun. the actual position of this entity is not used." = + [ + 0 : "Normal" + 1 : "Sun Flare" + ] + + FlareStyle[engine](integer) : "Appearance" : 0 + FlareStyle(Choices) : "Appearance" : 0 = + [ + 0 : "Normal" + 10: "Fluorescent flicker" + 2 : "Slow, strong pulse" + 11: "Slow pulse, noblack" + 5 : "Gentle pulse" + 1 : "Flicker A" + 6 : "Flicker B" + 3 : "Candle A" + 7 : "Candle B" + 8 : "Candle C" + 4 : "Fast strobe" + 9 : "Slow strobe" + ] + + GlowProxySize(float) : "Size of Glow Proxy Geometry." : "2.0" : "Size of the glow to be rendered for visibility testing. Must be larger than the distance from the sprite center to empty space. So if this glow is inside geometry (like a light bulb), set this value to be bigger than the bulb's radius. Any time a sphere of this radius would be visible (poking through any nearby geometry), the glow will be rendered. - Richard's note : I noticed that value more than ~100 wont work correctly" + + Flare01_texture(string) : "Flare 01 texture" : "" : "image of the lens - if empty the flare doesn't exist" + Flare01_params(string) : "Flare 01 parameters" : "" : "parameters - example : DISK 1.0 10 10" + Flare01_intensity(vector) : "Flare 01 intensity" : "" : "intensity of the flare - example : 1.0 1.0 1.0" + Flare01_sizes(vector) : "Flare 01 sizes" : "" : "sizes of the flare - example : 1.0 1.0 1.0" + Flare01_color(color255) : "Flare 01 color" : "" : "color factor of the texture - example : 255 255 255" + + Flare02_texture(string) : "Flare 02 texture" : "" : "cf. Flare 01 notes" + Flare02_params(string) : "Flare02 parameters" : "" : "cf. Flare 01 notes" + Flare02_intensity(vector) : "Flare 02 intensity" : "" : "cf. Flare 01 notes" + Flare02_sizes(vector) : "Flare 02 sizes" : "" : "cf. Flare 01 notes" + Flare02_color(color255) : "Flare 02 color" : "" : "cf. Flare 01 notes" + + Flare03_texture(string) : "Flare 03 texture" : "" : "cf. Flare 01 notes" + Flare03_params(string) : "Flare03 parameters" : "" : "cf. Flare 01 notes" + Flare03_intensity(vector) : "Flare 03 intensity" : "" : "cf. Flare 01 notes" + Flare03_sizes(vector) : "Flare 03 sizes" : "" : "cf. Flare 01 notes" + Flare03_color(color255) : "Flare 03 color" : "" : "cf. Flare 01 notes" + + Flare04_texture(string) : "Flare 04 texture" : "" : "cf. Flare 01 notes" + Flare04_params(string) : "Flare04 parameters" : "" : "cf. Flare 01 notes" + Flare04_intensity(vector) : "Flare 04 intensity" : "" : "cf. Flare 01 notes" + Flare04_sizes(vector) : "Flare 04 sizes" : "" : "cf. Flare 01 notes" + Flare04_color(color255) : "Flare 04 color" : "" : "cf. Flare 01 notes" + + Flare05_texture(string) : "Flare 05 texture" : "" : "cf. Flare 01 notes" + Flare05_params(string) : "Flare05 parameters" : "" : "cf. Flare 01 notes" + Flare05_intensity(vector) : "Flare 05 intensity" : "" : "cf. Flare 01 notes" + Flare05_sizes(vector) : "Flare 05 sizes" : "" : "cf. Flare 01 notes" + Flare05_color(color255) : "Flare 05 color" : "" : "cf. Flare 01 notes" + + Flare06_texture(string) : "Flare 06 texture" : "" : "cf. Flare 01 notes" + Flare06_params(string) : "Flare06 parameters" : "" : "cf. Flare 01 notes" + Flare06_intensity(vector) : "Flare 06 intensity" : "" : "cf. Flare 01 notes" + Flare06_sizes(vector) : "Flare 06 sizes" : "" : "cf. Flare 01 notes" + Flare06_color(color255) : "Flare 06 color" : "" : "cf. Flare 01 notes" + + Flare07_texture(string) : "Flare 07 texture" : "" : "cf. Flare 01 notes" + Flare07_params(string) : "Flare07 parameters" : "" : "cf. Flare 01 notes" + Flare07_intensity(vector) : "Flare 07 intensity" : "" : "cf. Flare 01 notes" + Flare07_sizes(vector) : "Flare 07 sizes" : "" : "cf. Flare 01 notes" + Flare07_color(color255) : "Flare 07 color" : "" : "cf. Flare 01 notes" + + Flare08_texture(string) : "Flare 08 texture" : "" : "cf. Flare 01 notes" + Flare08_params(string) : "Flare08 parameters" : "" : "cf. Flare 01 notes" + Flare08_intensity(vector) : "Flare 08 intensity" : "" : "cf. Flare 01 notes" + Flare08_sizes(vector) : "Flare 08 sizes" : "" : "cf. Flare 01 notes" + Flare08_color(color255) : "Flare 08 color" : "" : "cf. Flare 01 notes" + + Flare09_texture(string) : "Flare 09 texture" : "" : "cf. Flare 01 notes" + Flare09_params(string) : "Flare09 parameters" : "" : "cf. Flare 01 notes" + Flare09_intensity(vector) : "Flare 09 intensity" : "" : "cf. Flare 01 notes" + Flare09_sizes(vector) : "Flare 09 sizes" : "" : "cf. Flare 01 notes" + Flare09_color(color255) : "Flare 09 color" : "" : "cf. Flare 01 notes" + + Flare10_texture(string) : "Flare 10 texture" : "" : "cf. Flare 01 notes" + Flare10_params(string) : "Flare10 parameters" : "" : "cf. Flare 01 notes" + Flare10_intensity(vector) : "Flare 10 intensity" : "" : "cf. Flare 01 notes" + Flare10_sizes(vector) : "Flare 10 sizes" : "" : "cf. Flare 01 notes" + Flare10_color(color255) : "Flare 10 color" : "" : "cf. Flare 01 notes" + + Flare11_texture(string) : "Flare 11 texture" : "" : "cf. Flare 01 notes" + Flare11_params(string) : "Flare11 parameters" : "" : "cf. Flare 01 notes" + Flare11_intensity(vector) : "Flare 11 intensity" : "" : "cf. Flare 01 notes" + Flare11_sizes(vector) : "Flare 11 sizes" : "" : "cf. Flare 01 notes" + Flare11_color(color255) : "Flare 11 color" : "" : "cf. Flare 01 notes" + + Flare12_texture(string) : "Flare 12 texture" : "" : "cf. Flare 01 notes" + Flare12_params(string) : "Flare12 parameters" : "" : "cf. Flare 01 notes" + Flare12_intensity(vector) : "Flare 12 intensity" : "" : "cf. Flare 01 notes" + Flare12_sizes(vector) : "Flare 12 sizes" : "" : "cf. Flare 01 notes" + Flare12_color(color255) : "Flare 12 color" : "" : "cf. Flare 01 notes" + + Flare13_texture(string) : "Flare 13 texture" : "" : "cf. Flare 01 notes" + Flare13_params(string) : "Flare13 parameters" : "" : "cf. Flare 01 notes" + Flare13_intensity(vector) : "Flare 13 intensity" : "" : "cf. Flare 01 notes" + Flare13_sizes(vector) : "Flare 13 sizes" : "" : "cf. Flare 01 notes" + Flare13_color(color255) : "Flare 13 color" : "" : "cf. Flare 01 notes" + + Flare14_texture(string) : "Flare 14 texture" : "" : "cf. Flare 01 notes" + Flare14_params(string) : "Flare14 parameters" : "" : "cf. Flare 01 notes" + Flare14_intensity(vector) : "Flare 14 intensity" : "" : "cf. Flare 01 notes" + Flare14_sizes(vector) : "Flare 14 sizes" : "" : "cf. Flare 01 notes" + Flare14_color(color255) : "Flare 14 color" : "" : "cf. Flare 01 notes" + + Flare15_texture(string) : "Flare 15 texture" : "" : "cf. Flare 01 notes" + Flare15_params(string) : "Flare15 parameters" : "" : "cf. Flare 01 notes" + Flare15_intensity(vector) : "Flare 15 intensity" : "" : "cf. Flare 01 notes" + Flare15_sizes(vector) : "Flare 15 sizes" : "" : "cf. Flare 01 notes" + Flare15_color(color255) : "Flare 15 color" : "" : "cf. Flare 01 notes" + + Flare16_texture(string) : "Flare 16 texture" : "" : "cf. Flare 01 notes" + Flare16_params(string) : "Flare16 parameters" : "" : "cf. Flare 01 notes" + Flare16_intensity(vector) : "Flare 16 intensity" : "" : "cf. Flare 01 notes" + Flare16_sizes(vector) : "Flare 16 sizes" : "" : "cf. Flare 01 notes" + Flare16_color(color255) : "Flare 16 color" : "" : "cf. Flare 01 notes" + + Flare17_texture(string) : "Flare 17 texture" : "" : "cf. Flare 01 notes" + Flare17_params(string) : "Flare17 parameters" : "" : "cf. Flare 01 notes" + Flare17_intensity(vector) : "Flare 17 intensity" : "" : "cf. Flare 01 notes" + Flare17_sizes(vector) : "Flare 17 sizes" : "" : "cf. Flare 01 notes" + Flare17_color(color255) : "Flare 17 color" : "" : "cf. Flare 01 notes" + + Flare18_texture(string) : "Flare 18 texture" : "" : "cf. Flare 01 notes" + Flare18_params(string) : "Flare18 parameters" : "" : "cf. Flare 01 notes" + Flare18_intensity(vector) : "Flare 18 intensity" : "" : "cf. Flare 01 notes" + Flare18_sizes(vector) : "Flare 18 sizes" : "" : "cf. Flare 01 notes" + Flare18_color(color255) : "Flare 18 color" : "" : "cf. Flare 01 notes" + + Flare19_texture(string) : "Flare 19 texture" : "" : "cf. Flare 01 notes" + Flare19_params(string) : "Flare19 parameters" : "" : "cf. Flare 01 notes" + Flare19_intensity(vector) : "Flare 19 intensity" : "" : "cf. Flare 01 notes" + Flare19_sizes(vector) : "Flare 19 sizes" : "" : "cf. Flare 01 notes" + Flare19_color(color255) : "Flare 19 color" : "" : "cf. Flare 01 notes" + + Flare20_texture(string) : "Flare 20 texture" : "" : "cf. Flare 01 notes" + Flare20_params(string) : "Flare20 parameters" : "" : "cf. Flare 01 notes" + Flare20_intensity(vector) : "Flare 20 intensity" : "" : "cf. Flare 01 notes" + Flare20_sizes(vector) : "Flare 20 sizes" : "" : "cf. Flare 01 notes" + Flare20_color(color255) : "Flare 20 color" : "" : "cf. Flare 01 notes" + + + + // Inputs + input ColorRedValue(float) : "Sets the red color channel's value (0 - 255)." + input ColorGreenValue(float) : "Sets the green color channel's value (0 - 255)." + input ColorBlueValue(float) : "Sets the blue color channel's value (0 - 255)." + input SetScale(float) : "Set the lensflare's scale (0 - 8.0)." + input HideLensFlare(void) : "Hide the lensflare. Won't be drawn until the 'ShowLensFlare' input is received." + input ShowLensFlare(void) : "Show the lensflare." + input ToggleLensFlare(void) : "Toggle the lensflare between hidden and shown." + ] diff --git a/fgd/point/env/env_microphone.fgd b/fgd/point/env/env_microphone.fgd index 282f18ae7..848428d1e 100644 --- a/fgd/point/env/env_microphone.fgd +++ b/fgd/point/env/env_microphone.fgd @@ -54,6 +54,10 @@ maxrange(float) : "Maximum hearing range (0=infinite)" : 240 : "Sounds beyond this range won't be heard, irrelevant of attenuation. " + "WARNING: setting this to zero (or a value > 1024) when the microphone is in Speaker mode can be very bad for performance!!" + landmark[MBase](target_destination) : "Local Destination Landmark" : : "If specified, then sounds offset from the speaker by their initial offset from this landmark. Only applicable in Speaker mode." + + PitchScale[MBase](float) : "Pitch Scale" : "1.0" : "Scales the pitch of transmitted sounds." + // Inputs input SetSpeakerName(string) : "Set the microphone to output through a different speaker entity." input SetMeasureTarget[INFRA](string) : "Set the location to listen to sounds from." diff --git a/fgd/point/env/env_mortar_launcher.fgd b/fgd/point/env/env_mortar_launcher.fgd new file mode 100644 index 000000000..3f8ff2663 --- /dev/null +++ b/fgd/point/env/env_mortar_launcher.fgd @@ -0,0 +1,7 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + line(255 255 255, targetname, MortarLauncher) + studio("models/props_st/airstrike_map.mdl") += env_mortar_controller : "Mortar Controller" + [ + MortarLauncher(target_destination) : "Mortar Launcher" + ] diff --git a/fgd/point/env/env_muzzleflash.fgd b/fgd/point/env/env_muzzleflash.fgd index a3d3062e4..fbf1a301f 100644 --- a/fgd/point/env/env_muzzleflash.fgd +++ b/fgd/point/env/env_muzzleflash.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(ASW, EP1, EP2, HL2, P1, P2) + appliesto(ASW, EP1, EP2, HL2, P1, P2, Mesa) iconsprite("editor/env_muzzleflash.vmt") = env_muzzleflash: "Muzzle Flash" [ diff --git a/fgd/point/env/env_particle_beam.fgd b/fgd/point/env/env_particle_beam.fgd new file mode 100644 index 000000000..a698f0ca7 --- /dev/null +++ b/fgd/point/env/env_particle_beam.fgd @@ -0,0 +1,38 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + size(-4 -4 -4, 4 4 4) + line(128 128 255, targetname, target) += env_particle_beam + [ + particlebeam[engine](string) + particlebeam(choices) : "Particle Beam Name" : "Lc Beam" = + [ + "lc_beam" : "Lc Beam" + ] + + target(target_destination) : "Beam Target" : "" + damage(float) : "Damage" : "1" + damagetick(float) : "Damage Tick" : "0.1" + + burntrail(material) : "Burn Trail Material" : "effects/gluon_burn_trail.vmt" + burntrail_life(float) : "Burn Trail Life" : "4" + burntrail_size(float) : "Burn Trail Size" : "16" + burntrail_text(float) : "Burn Trail Textile" : "0.01" + + burntrail_flags[engine](integer) : "Burn Trail Flags" : 0 + burntrail_flags(choices) : "Burn Trail Flags" : "Shrink + Fade" = + [ + -1 : "Disabled" + 0 : "None" + 1 : "Shrink" + 2 : "Fade" + 3 : "Shrink + Fade" + ] + + input TurnOn(void) : "TurnOn" + input TurnOff(void) : "TurnOff" + + spawnflags(flags) = + [ + 1 : "Start On" : 0 + ] + ] diff --git a/fgd/point/env/env_particle_tesla.fgd b/fgd/point/env/env_particle_tesla.fgd new file mode 100644 index 000000000..15472862f --- /dev/null +++ b/fgd/point/env/env_particle_tesla.fgd @@ -0,0 +1,25 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + size(-4 -4 -4, 4 4 4) sphere(range) += env_particle_tesla + [ + particletesla(string) : "Particle Tesla Name" : "tesla_lc_core" : "" + frequency(float) : "Spawn Frequency" : "0.1" + mincount(integer) : "Min Spawn Count" : 2 + maxcount(integer) : "Max Spawn Count" : 4 + range(integer) : "Range" : 2048 + life(float) : "System Life" : "-1" : "infinite = -1" + min(vector) : "Mins" : "-1 -1 -1" + max(vector) : "Maxs" : "1 1 1" + decalname(string) : "Decal Name" : "ZapScorch" : "Decal to be applied at the end of the beam" + + input TurnOn(void) : "TurnOn" + input TurnOff(void) : "TurnOff" + output OnTurnOn(void) : "Turned On" + output OnTurnOff(void) : "Turned Off" + + spawnflags(flags) = + [ + 1 : "Start On" : 0 + 2 : "Normalize Mins & Max" : 1 + ] + ] diff --git a/fgd/point/env/env_pinch.fgd b/fgd/point/env/env_pinch.fgd new file mode 100644 index 000000000..ef7f21569 --- /dev/null +++ b/fgd/point/env/env_pinch.fgd @@ -0,0 +1,16 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) += env_pinch + [ + timer(float) : "Lifetime" : "1.8" + startsize(float) : "Start Size" : "10" + endsize(float) : "End Size" : "30" + + spawnflags(Flags) = + [ + 65536 : "Remove after pinch fx is finished" : 1 + ] + + input start(void) : "Dispatch the pinch fx" + input stop(void) : "Stop the pinch fx" + output OnFinish(void) : "Pinch FX is finished" + ] diff --git a/fgd/point/env/env_portal_path_track.fgd b/fgd/point/env/env_portal_path_track.fgd index 403755f79..41e8779c4 100644 --- a/fgd/point/env/env_portal_path_track.fgd +++ b/fgd/point/env/env_portal_path_track.fgd @@ -26,7 +26,7 @@ radius(float) : "Path radius" : 0 : "Used by NPCs who follow track paths (attack chopper/gunship). This tells them the maximum distance they're allowed to be from the path at this node." - orientationtype(integer) : "Orientation Type" : 1 + orientationtype[engine](integer) : "Orientation Type" : 1 orientationtype(choices) : "Orientation Type" : 1 : "The way that the path follower faces as it moves through this path track." = [ 0: "No change" diff --git a/fgd/point/env/env_projectedtexture.fgd b/fgd/point/env/env_projectedtexture.fgd index 7b52c0fda..530e0b209 100644 --- a/fgd/point/env/env_projectedtexture.fgd +++ b/fgd/point/env/env_projectedtexture.fgd @@ -1,8 +1,9 @@ -@PointClass base(BaseEntityPoint, SystemLevelChoice) - appliesto(since_EP1) +@PointClass base(BaseEntityPoint, SystemLevelChoice) + appliesto(!MESA) // Commented out? size(-2 -2 -2, 2 2 2) frustum(lightfov, nearz, farz, lightcolor, -1) studio("models/editor/cone_helper.mdl") + iconsprite("editor/env_projectedtexture") line(255 255 255, targetname, target) sphere(nearz) sphere(farz) @@ -27,6 +28,10 @@ 0: "Low" 1: "High" ] + shadowatten[MBase](float) : "Shadow Atten" : "0.0" : "The attenuation of the shadows, " + + "or how much the shadows should fade into the light of the projected texture, if at all. " + + "The player's flashlight uses 0.35 by default, " + + "although higher values may be needed for a visible effect." lightonlytarget(boolean) : "Light Only Target" : 0 : "Limit flashlight effect to only effect target entity." lightworld(boolean) : "Light World" : 0 : "Control whether flashlight effects static world geometry." @@ -38,6 +43,12 @@ cameraspace(boolean) : "Camera Space" : 0 : "Angles are interpreted as being relative to camera." colortransitiontime[since_ASW](float) : "Color Transition Time" : 0.5 : "Amount of time it takes for a color change to occur." + + constant_attn[MBase](string) : "Constant" : "0" : "The light's constant attenuation, giving the light no falloff. (This value is internally corrected with x*0.5)" + linear_attn[MBase](string) : "Linear" : "1" : "The light's linear attenuation, giving the light linear decline. This is the most common attenuation for projected textures. (This value is internally corrected with x*100)" + quadratic_attn[MBase](string) : "Quadratic" : "0" : "The light's quadratic attenuation, giving the light exponentially decreasing falloff. (This value is internally corrected with x*10000)" + + texturename(material) : "Texture Name" : "effects/flashlight001" : "VTF Texture to 'project' onto the enviroment." textureframe(integer) : "Texture Frame" : 0 : "If the VTF is multi-frame, specify the frame to use." @@ -87,6 +98,11 @@ "The Pattern format is a string of characters, where 'a' is total darkness, 'z' fully bright. i.e. " + "'aaggnnttzz' would be a steppy fade in from dark to light." + input SetConstant[MBase](float) : "Sets the constant attenuation." + input SetLinear[MBase](float) : "Sets the linear attenuation." + input SetQuadratic[MBase](float) : "Sets the quadratic attenuation." + input SetShadowAtten[MBase](float) : "Sets the shadow attenuation." + input SetNearZ[since_P2](float) : "Sets the near Z distance." input SetFarZ[since_P2](float) : "Sets the far Z distance." input LightOnlyTarget[INFRA](bool) : "Set if the projected texture lights the target only." diff --git a/fgd/point/env/env_rotorwash.fgd b/fgd/point/env/env_rotorwash.fgd deleted file mode 100644 index bdfff573a..000000000 --- a/fgd/point/env/env_rotorwash.fgd +++ /dev/null @@ -1,13 +0,0 @@ -@PointClass base(BaseEntityPoint) - appliesto(EP1, EP2, HL2, P1, ASW) - size(-4 -4 -4, 4 4 4) = env_rotorwash: "Rotorwash Effect" - [ - spawnflags(flags) : "spawnflags" = - [ - 1: "Ignore solid" : 0 - ] - - - // Inputs - input DoEffect(void) : "Make a rotor puff" - ] diff --git a/fgd/point/env/env_rotorwash_emitter.fgd b/fgd/point/env/env_rotorwash_emitter.fgd index e961fb517..e2d65edb9 100644 --- a/fgd/point/env/env_rotorwash_emitter.fgd +++ b/fgd/point/env/env_rotorwash_emitter.fgd @@ -1,6 +1,7 @@ @PointClass base(BaseEntityPoint) - size(-4 -4 -4, 4 4 4) + appliesto(HL2, EP1, EP2, ASW, P1, Mesa) + iconsprite("editor/env_rotorwash_emitter") = env_rotorwash_emitter: "Creates rotorwash." [ - altitude(float) : "Altitude" : 1024 : "Altitude the rotorwash will show up." + altitude(float) : "Altitude (Unused)" : 1024 : "Altitude the rotorwash will show up. This is defined in the entity, but isn't actually used for anything." ] diff --git a/fgd/point/env/env_shooter.fgd b/fgd/point/env/env_shooter.fgd index 39548fb30..4b63b1f43 100644 --- a/fgd/point/env/env_shooter.fgd +++ b/fgd/point/env/env_shooter.fgd @@ -36,4 +36,16 @@ gibgravityscale(float) : "Gib gravity scale" : 1 : "ONLY WORKS FOR POINT GIBS. This field allows you to scale gravity so that gibs fall faster, slower, or not at all." massoverride(float) : "Mass override" : 0 : "EPISODIC ONLY. Specify an arbitrary mass for the gibs emitted by me." + + bloodcolor[engine](integer) : "Blood Color" : -1 + bloodcolor[MESA](choices) : "Blood Color" : -1 = + [ + -1 : "None" + 0 : "Red (Human)" + 1 : "Yellow (Alien)" + 2 : "Green (Alien)" + 3 : "Grey (Mech)" + ] + + touchkill[MESA](boolean) :"Explode on Impact" : 0 ] diff --git a/fgd/point/env/env_smoketrail.fgd b/fgd/point/env/env_smoketrail.fgd index 362e8514a..3d6185f81 100644 --- a/fgd/point/env/env_smoketrail.fgd +++ b/fgd/point/env/env_smoketrail.fgd @@ -17,6 +17,6 @@ startsize(float) : "Starting particle size" : 15 : "Starting particle size." endsize(float) : "Ending particle size" : 50 : "Ending particle size." spawnradius(float) : "Spawn radius" : 15 : "Distance from env_smoketrail at which particles are emitted." - firesprite(material) : "Fire Sprite" : "sprites/firetrail.spr" - smokesprite(material) : "Smoke Puff" : "sprites/whitepuff.spr" + firesprite(sprite) : "Fire Sprite" : "sprites/firetrail.spr" + smokesprite(sprite) : "Smoke Puff" : "sprites/whitepuff.spr" ] diff --git a/fgd/point/env/env_splash.fgd b/fgd/point/env/env_splash.fgd index 889081cb3..5214382d1 100644 --- a/fgd/point/env/env_splash.fgd +++ b/fgd/point/env/env_splash.fgd @@ -1,4 +1,5 @@ @PointClass base(BaseEntityPoint) + appliesto(!MESA) // Mesa tried rewriting this with particles etc, but is currently disabled. color(32 200 255) // Special model, so scale doesn't resize the sprite. studio("models/editor/env_splash.mdl") diff --git a/fgd/point/env/env_sprite.fgd b/fgd/point/env/env_sprite.fgd index 57933ee23..2ddf317f0 100644 --- a/fgd/point/env/env_sprite.fgd +++ b/fgd/point/env/env_sprite.fgd @@ -6,7 +6,7 @@ = env_sprite: "An entity that controls the drawing of a sprite in the world." [ framerate(float) : "Framerate" : "10.0" : "Rate at which the sprite should animate, if at all." - model(material) : "Sprite Name" : "sprites/glow01.spr" : "Material of the sprite to be drawn." + model(sprite) : "Sprite Name" : "sprites/glow01.spr" : "Material of the sprite to be drawn." scale(float) : "Scale" : 0.25 : "Scale multiplier of the sprite." spawnflags(flags) = [ diff --git a/fgd/point/env/env_spritetrail.fgd b/fgd/point/env/env_spritetrail.fgd index 9b1c8c9d4..949c6e0a3 100644 --- a/fgd/point/env/env_spritetrail.fgd +++ b/fgd/point/env/env_spritetrail.fgd @@ -7,7 +7,7 @@ lifetime(float) : "Lifetime" : 0.5 startwidth(float) : "Start Width" : 8.0 endwidth(float) : "End Width" : 1.0 - spritename(material) : "Sprite Name" : "sprites/bluelaser1.vmt" + spritename(sprite) : "Sprite Name" : "sprites/bluelaser1.vmt" renderamt(integer) : "FX Amount (0 - 255)" : 255 : "The FX amount is used by the selected Render Mode." rendercolor(color255) : "FX Color (R G B)" : "255 255 255" : "The FX color is used by the selected Render Mode." rendermode[engine](integer) : "Render Mode" : 5 diff --git a/fgd/point/env/env_sun.fgd b/fgd/point/env/env_sun.fgd index ec9483c0e..11be5eabb 100644 --- a/fgd/point/env/env_sun.fgd +++ b/fgd/point/env/env_sun.fgd @@ -12,8 +12,8 @@ overlaycolor(color255) : "Overlay Color (R G B)" : "0 0 0" : "A value of 0 0 0 will act the old way." size(integer) : "Size" : 16 overlaysize(integer) : "Overlay Size" : -1 : "A value of -1 means the overlay will act the old way." - material(material) : "Material Name" : "sprites/light_glow02_add_noz" : "Material of the inner glow." - overlaymaterial(material) : "Overlay Material Name" : "sprites/light_glow02_add_noz" : "Material of the overlay glow." + material(sprite) : "Material Name" : "sprites/light_glow02_add_noz" : "Material of the inner glow." + overlaymaterial(sprite) : "Overlay Material Name" : "sprites/light_glow02_add_noz" : "Material of the overlay glow." hdrcolorscale(float) : "HDR color scale." : "0.5" : "float value to multiply sprite color by when running in HDR mode." glowdistancescale[CSGO](float) : "Glow Distance Scale" : "0.99" : "Scales the distance used to test for sun glow occlusion, 0.99 will act the old way." diff --git a/fgd/point/env/env_tonemap_controller.fgd b/fgd/point/env/env_tonemap_controller.fgd index 94307dcec..79090caab 100644 --- a/fgd/point/env/env_tonemap_controller.fgd +++ b/fgd/point/env/env_tonemap_controller.fgd @@ -9,6 +9,17 @@ 1: "Master (Has priority if multiple env_tonemap_controllers exist)" : 0 ] + bUseNextGenBloom[MESA](boolean) : "Use Next Gen Bloom" : 0 + bUseCustomBloomNextGen_Threshold[MESA](boolean) : "Use Custom Next Gen Bloom Threshold" : 0 + + fCustomBloomNextGen_Threshold[MESA](float) : "Custom Next Gen Bloom Threshold": 0 : "Threshold for bright pass filter." + + bUseCustomBloomNextGen_tintExponent[MESA](boolean) : "Use Custom Next Gen Bloom Tint Exponent" : 0 + + m_fCustomBloomNextGen_r[MESA](float) : "Custom Bloom Tint (R)": "1.0" : "m_fCustomBloomNextGen_r" + m_fCustomBloomNextGen_g[MESA](float) : "Custom Bloom Tint (G)": "1.0" : "m_fCustomBloomNextGen_g" + m_fCustomBloomNextGen_b[MESA](float) : "Custom Bloom Tint (B)": "1.0" : "m_fCustomBloomNextGen_b" + m_fCustomBloomNextGen_exponent[MESA](float) : "Custom Bloom Tint Exponent": "1.0" : "m_fCustomBloomNextGen_exponent" // Inputs input SetTonemapScale(integer) : "Set the player's tonemap scale. It should be a value between 0 and 2, where 0 is the eyes fully closed, 1 is use the unchanged autoexposure (default), and 2 is the eye fully wide open." @@ -25,4 +36,11 @@ input SetTonemapPercentBrightPixels[since_L4D2](float) : "Set a target for percentage of pixels above a certain brightness. (default: 2)" input SetTonemapPercentTarget[since_L4D2](float) : "Set a custom brightness target for SetTonemapPercentBrightPixels. (default: 60)" input SetTonemapMinAvgLum[since_L4D2](float) : "Sets custom tonemapping param (ask Alex for details; default: 3)." + + input InputSetBloomNxtGen_Threshold[MESA](float) : "InputSetBloomNxtGen_Threshold" + + input InputSetBloomNxtGen_TintR[MESA](float) : "InputSetBloomNxtGen_TintR" + input InputSetBloomNxtGen_TintG[MESA](float) : "InputSetBloomNxtGen_TintG" + input InputSetBloomNxtGen_TintB[MESA](float) : "InputSetBloomNxtGen_TintB" + input InputSetBloomNxtGen_Exponent[MESA](float) : "InputSetBloomNxtGen_Exponent" ] diff --git a/fgd/point/env/env_tram_screen.fgd b/fgd/point/env/env_tram_screen.fgd new file mode 100644 index 000000000..bd9c27b49 --- /dev/null +++ b/fgd/point/env/env_tram_screen.fgd @@ -0,0 +1,8 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + iconsprite("editor/info_target.vmt") += env_tram_screen + [ + panelname(string) : "Panel Name" : : "TramScreen" + functrainname(target_destination) : "Func Train To Trigger" : : "" + propname(target_destination) : "Prop To Attach" : : "" + ] diff --git a/fgd/point/env/env_xen_healpool.fgd b/fgd/point/env/env_xen_healpool.fgd new file mode 100644 index 000000000..c4aeed54d --- /dev/null +++ b/fgd/point/env/env_xen_healpool.fgd @@ -0,0 +1,10 @@ +@PointClass base(BaseEntityAnimating) + appliesto(Mesa) + autovis(Auto, Point Entities, Props) + studio() += env_xen_healpool : "Xen Healing Pool" + [ + model(studio) : "World model" : "models/props_Xen/xen_healingpool_full.mdl" + healRate(float) : "Healing Rate" : 5 : "" + disableshadows(boolean) : "Disable Shadows" : 0 + ] diff --git a/fgd/point/env/env_xen_healshower.fgd b/fgd/point/env/env_xen_healshower.fgd new file mode 100644 index 000000000..ca6579ef3 --- /dev/null +++ b/fgd/point/env/env_xen_healshower.fgd @@ -0,0 +1,10 @@ +@PointClass base(BaseEntityAnimating) + appliesto(Mesa) + autovis(Auto, Point Entities, Props) + studioprop() += env_xen_healshower : "Xen Healing Shower" + [ + model(studio) : "World model" : "models/props_Xen/xen_healingpool_full.mdl" + healRate(float) : "Healing Rate" : 5 : "" + disableshadows(boolean) : "Disable Shadows" : 0 + ] diff --git a/fgd/point/env/env_xen_portal.fgd b/fgd/point/env/env_xen_portal.fgd new file mode 100644 index 000000000..d2df2cd20 --- /dev/null +++ b/fgd/point/env/env_xen_portal.fgd @@ -0,0 +1,5 @@ +@PointClass base(npc_maker, XenPortal) appliesto(Mesa) + autovis(Entities, NPCs, Xen, Xen Portal FX) += env_xen_portal + [ + ] diff --git a/fgd/point/env/env_xen_portal_template.fgd b/fgd/point/env/env_xen_portal_template.fgd new file mode 100644 index 000000000..d5d41517e --- /dev/null +++ b/fgd/point/env/env_xen_portal_template.fgd @@ -0,0 +1,6 @@ +@PointClass base(npc_template_maker, XenPortal) + appliesto(Mesa) + autovis(Entities, NPCs, Xen, Xen Portal FX) += env_xen_portal_template + [ + ] diff --git a/fgd/point/env/env_xen_pushpad.fgd b/fgd/point/env/env_xen_pushpad.fgd new file mode 100644 index 000000000..c88d43a62 --- /dev/null +++ b/fgd/point/env/env_xen_pushpad.fgd @@ -0,0 +1,12 @@ +@PointClass base(BaseEntityAnimating) appliesto(Mesa) + studio("models/xenians/jump_pad.mdl") + line(255 255 255, targetname, target) += env_xen_pushpad + [ + snextjumpdelta(float) : "Next Jump Delta" : "0.5" : "" + target(target_destination) : "Jump Target Name" : : "" + height(float) : "Height Offset" : 512 : "" + disableshadows(boolean) : "Disable Shadows" : 0 + m_bMuteME(boolean) : "MuteME" : 0 + output OnTrigger(void) : "" + ] diff --git a/fgd/point/env/env_zoom.fgd b/fgd/point/env/env_zoom.fgd index 373d93668..90d7bbfc4 100644 --- a/fgd/point/env/env_zoom.fgd +++ b/fgd/point/env/env_zoom.fgd @@ -15,4 +15,6 @@ // Inputs input Zoom(void) : "Start controlling the player's FOV." input UnZoom(void) : "Stop controlling the player's FOV." + input UnZoomWithRate[MBase](void) : "Stop controlling the player's FOV and returns to the original FOV with the same rate it used to reach it." + input SetZoomRate[MBase](float) : "Sets the amount of time it should take to reach the specified FOV." ] diff --git a/fgd/point/filter/filter_activator_flag.fgd b/fgd/point/filter/filter_activator_flag.fgd new file mode 100644 index 000000000..2c5cd3d90 --- /dev/null +++ b/fgd/point/filter/filter_activator_flag.fgd @@ -0,0 +1,16 @@ +@FilterClass base(filter_base) + autovis(Logic, Filters) + appliesto(Mesa) + iconsprite("editor/filter_activator_class.vmt") += filter_activator_flag :"Filters by the entity flags of the activator" + [ + flag[engine](integer) : "Flag" : 0 + flag(choices) : "Flag" : 0 = + [ + 0 : "None" + 1 : "On ground" + 2 : "Crouching" + 2097152 : "Grenade" + 268435456 : "On fire" + ] + ] diff --git a/fgd/point/filter/filter_activator_model.fgd b/fgd/point/filter/filter_activator_model.fgd index 3035400ad..21705d3d7 100644 --- a/fgd/point/filter/filter_activator_model.fgd +++ b/fgd/point/filter/filter_activator_model.fgd @@ -1,6 +1,6 @@ @FilterClass base(filter_base) autovis(Logic, Filters) - appliesto(since_L4D2, MBase) + appliesto(since_L4D2, MBase, Mesa) iconsprite("editor/filter_model.vmt") = filter_activator_model: "A filter that filters by the model of the activator." [ diff --git a/fgd/point/filter/filter_activator_team.fgd b/fgd/point/filter/filter_activator_team.fgd index 08c405681..2a87973d9 100644 --- a/fgd/point/filter/filter_activator_team.fgd +++ b/fgd/point/filter/filter_activator_team.fgd @@ -32,4 +32,12 @@ 2: "P-Body" 3: "ATLAS" ] + + filterteam[Mesa](choices) : "Filter Team Number" : 2 : "The team number to filter by. " + + "If the filter mode is Allow, only entities whose team number matches the given team will pass the filter. " + + "If the filter mode is Disallow, all entities EXCEPT those whose team number matches the given team will pass the filter." = + [ + 2 : "Hgrunt" + 3 : "Scientist" + ] ] diff --git a/fgd/point/filter/filter_combineball_type.fgd b/fgd/point/filter/filter_combineball_type.fgd index 64d8a3bb8..45b16f40b 100644 --- a/fgd/point/filter/filter_combineball_type.fgd +++ b/fgd/point/filter/filter_combineball_type.fgd @@ -1,6 +1,6 @@ @FilterClass base(filter_base) autovis(Logic, Filters) - appliesto(until_P2, P2) + appliesto(HL2, EP1, EP2, P1, P2) iconsprite("editor/filter_pellet.vmt") = filter_combineball_type: "A filter that filters by combine ball type." [ diff --git a/fgd/point/filter/filter_damage_class.fgd b/fgd/point/filter/filter_damage_class.fgd new file mode 100644 index 000000000..70bce1a8e --- /dev/null +++ b/fgd/point/filter/filter_damage_class.fgd @@ -0,0 +1,16 @@ +@FilterClass base(filter_base) + autovis(Logic, Filters) + appliesto(Mesa) + iconsprite("editor/filter_damage_type.vmt") += filter_damage_class: "A damage filter that filters by the class name of the attacker or inflicter. This can only be used as a damage filter, not as an activator filter." + [ + filterclass(string) : "Filter Classname" : : "The class name to filter by. If the filter mode is Allow, only entities whose "+ + "class name matches the given string will pass the filter. If the filter mode is Disallow, "+ + "all entities EXCEPT those whose class name matches the given string will pass the filter." + + spawnflags(Flags) = + [ + 1 : "check against attacker" : 1 + 2 : "checks against inflicter" : 0 + ] + ] diff --git a/fgd/point/filter/filter_damage_mod.fgd b/fgd/point/filter/filter_damage_mod.fgd index 49d136b95..1cfa4fb54 100644 --- a/fgd/point/filter/filter_damage_mod.fgd +++ b/fgd/point/filter/filter_damage_mod.fgd @@ -6,6 +6,8 @@ [ SetDamageMultiplier(float) : "Damage Multiplier" : "1.0" : "Multiplies the damage by this scale." SetDamageAddend(float) : "Damage Addend" : "0" : "Adds to or subtracts the damage by this number. This is done after the damage is multiplied by the damage scale." + SetDamageBitsAdded(integer) : "Damage Bits Added" : 0 : "Adds bits to the damage type. See a damage type keyvalue in an entity like filter_damage_type to get their bit representation." + SetDamageBitsRemoved(integer) : "Damage Bits Removed" : 0 : "Removes bits from the damage type. See a damage type keyvalue in an entity like filter_damage_type to get their bit representation." NewAttacker(string) : "New Attacker" : : "If specified, the damage will be credited to this entity instead of the original attacker." NewInflictor(string) : "New Inflictor" : : "If specified, the damage's inflictor will be changed to this entity instead of the original inflictor." @@ -23,6 +25,9 @@ input SetDamageMultiplier(float) : "Sets the damage multiplier." input SetDamageAddend(float) : "Sets the damage addend." + input SetDamageBitsAdded(integer) : "Sets the damage types added." + input SetDamageBitsRemoved(integer) : "Sets the damage types removed." + input SetNewAttacker(target_destination) : "Sets the new attacker." input SetNewInflictor(target_destination) : "Sets the new inflictor." input SetNewWeapon(target_destination) : "Sets the new weapon." diff --git a/fgd/point/game/game_convar_mod.fgd b/fgd/point/game/game_convar_mod.fgd index 289661342..e93c6cffe 100644 --- a/fgd/point/game/game_convar_mod.fgd +++ b/fgd/point/game/game_convar_mod.fgd @@ -5,7 +5,13 @@ = game_convar_mod : "Mods cvars" [ // Keys - target(string) : "ConVars" : "" : "The convars to modify. Multiple cvars can be modded with ';', e.g. 'host_timescale 0.25; npc_alyx_interact_manhacks 1'" + target(string) : "ConVars" : "" : "The convars to modify." + + "Multiple cvars can be modded with ';', e.g. 'host_timescale 0.25; npc_alyx_interact_manhacks 1'" + + UseServer(boolean) : "Command from Server" : 0 : "Mods convars directly from the server instead " + + "of acting as if the convars were typed into the local player's console, " + + "similar to using point_servercommand as opposed to point_clientcommand. " + + "Required to function in MP games." spawnflags(Flags) = [ diff --git a/fgd/point/game/game_intro_viewpoint.fgd b/fgd/point/game/game_intro_viewpoint.fgd index 33181bc0e..5aed88de7 100644 --- a/fgd/point/game/game_intro_viewpoint.fgd +++ b/fgd/point/game/game_intro_viewpoint.fgd @@ -3,7 +3,8 @@ appliesto(TF2) studioprop("models/editor/camera.mdl") = game_intro_viewpoint: "A viewpoint in the intro camera." [ - teamnum(choices) : "Team" : "0" : "Team" = + teamnum[engine](integer) : "Team" : 0 + teamnum(choices) : "Team" : 0 : "Team" = [ 0: "None (Shared)" 2: "Red" diff --git a/fgd/point/game/game_mp_gamerules.fgd b/fgd/point/game/game_mp_gamerules.fgd new file mode 100644 index 000000000..523798ee6 --- /dev/null +++ b/fgd/point/game/game_mp_gamerules.fgd @@ -0,0 +1,9 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + autovis(Point Entities, Globals, Game Rules) += game_mp_gamerules: "Manage the active gamerules." + [ + input EnableCanisterDrops(void) : "Re-enable the canister drops on death. (Canisters drop by default)" + input DisableCanisterDrops(void) : "Disable canister drops on death. (Canisters drop by default)" + + input SetPointsPerFrag(integer) : "Set how many points one frag is." + ] diff --git a/fgd/point/game/game_round_start.fgd b/fgd/point/game/game_round_start.fgd new file mode 100644 index 000000000..88bdf2b49 --- /dev/null +++ b/fgd/point/game/game_round_start.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + autovis(Point Entities, Globals, Game Round Start) += game_round_start: "Fires output when the round is starting." + [ + output OnRoundStart(void) : "Fired when the round is starting." + ] diff --git a/fgd/point/game/game_round_win.fgd b/fgd/point/game/game_round_win.fgd index 25469d65a..631377624 100644 --- a/fgd/point/game/game_round_win.fgd +++ b/fgd/point/game/game_round_win.fgd @@ -1,16 +1,24 @@ @PointClass base(BaseEntityPoint) - appliesto(TF2) + appliesto(TF2, Mesa) autovis(Point Entities, Globals, Game Round End) -= game_round_win: "Tells the game rules that the round has either been won (if a team is assigned) or enter Sudden Death mode (if no team is assigned)." += game_round_win: "Tells the game rules that the round has either been won (if a team is assigned) or (for TF2) enter Sudden Death mode (if no team is assigned)." [ - teammum[engine](integer) : "Team" : 0 - teamnum(choices) : "Team" : 0 : "Team" = + teamnum[engine](integer) : "Team" : 0 + teamnum[TF2](choices) : "Team" : 0 : "Team" = [ 0: "None (Sudden Death)" 2: "Red" 3: "Blue" ] + team[engine](integer) : "Team" : 0 + team[Mesa](choices) : "Team" : 0 : "Team" = + [ + 0 : "None" + 2 : "Marines (Team-based game modes only)" + 3 : "Scientists (Team-based game modes only)" + ] + force_map_reset(boolean) : "Force map reset" : "1" : "Force the map to reset during the force respawn after the round is over." switch_teams(boolean) : "Switch teams on map win?" : "0" : "Switch the teams when the game is going to be reset." @@ -20,5 +28,5 @@ input RoundWin(void) : "Tell the game rules the round is over." // Outputs - output OnRoundWin(void) : "Sent when the entity tells the game rules the round is over." + output OnRoundWin[TF2](void) : "Sent when the entity tells the game rules the round is over." ] diff --git a/fgd/point/generic/generic_actor.fgd b/fgd/point/generic/generic_actor.fgd index 0fb01a0bc..c2e0562e1 100644 --- a/fgd/point/generic/generic_actor.fgd +++ b/fgd/point/generic/generic_actor.fgd @@ -13,6 +13,7 @@ "LARGE_HULL": "Large" ] + SetClassify[enigne](integer) : "Classify" : 0 SetClassify[MBase](choices) : "Classify" : 0 : "Simulate this class. Useful for relationships." = [ 0 : "CLASS_NONE" diff --git a/fgd/point/grenade/grenade_satchel.fgd b/fgd/point/grenade/grenade_satchel.fgd new file mode 100644 index 000000000..50b81b3d1 --- /dev/null +++ b/fgd/point/grenade/grenade_satchel.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseGrenade) + appliesto(Mesa) + studio("models/weapons/w_satchel.mdl") + = grenade_satchel : "Satchel" + [ + ] diff --git a/fgd/point/grenade/grenade_tripmine.fgd b/fgd/point/grenade/grenade_tripmine.fgd new file mode 100644 index 000000000..87cfed963 --- /dev/null +++ b/fgd/point/grenade/grenade_tripmine.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseGrenade) + appliesto(Mesa) + studio("models/weapons/w_tripmine.mdl") + = grenade_tripmine : "Tripmine" + [ + ] diff --git a/fgd/point/hammer/hammer_notes.fgd b/fgd/point/hammer/hammer_notes.fgd index 591683a95..24ba2c398 100644 --- a/fgd/point/hammer/hammer_notes.fgd +++ b/fgd/point/hammer/hammer_notes.fgd @@ -1,4 +1,4 @@ -@PointClass +@PointClass appliesto(-engine) iconsprite("editor/ts_book.vmt") line(255 255 255, targetname, linename1) line(255 0 0, targetname, linename2) diff --git a/fgd/point/hammer/hammer_updateignorelist.fgd b/fgd/point/hammer/hammer_updateignorelist.fgd index 28ee84577..23d3b59f7 100644 --- a/fgd/point/hammer/hammer_updateignorelist.fgd +++ b/fgd/point/hammer/hammer_updateignorelist.fgd @@ -1,7 +1,7 @@ @PointClass base(BaseEntityPoint) color(200 0 0) - + iconsprite("editor/ficool2/hammer_updateignorelist") line(200 0 0, targetname, ignoredname01) line(200 0 0, targetname, ignoredname02) line(200 0 0, targetname, ignoredname03) diff --git a/fgd/point/hunter_flechette.fgd b/fgd/point/hunter_flechette.fgd new file mode 100644 index 000000000..ff1efdf0f --- /dev/null +++ b/fgd/point/hunter_flechette.fgd @@ -0,0 +1,6 @@ +@PointClass base(BasePropPhysics) + appliesto(EP1, EP2, P1) + studioprop("models/weapons/hunter_flechette.mdl") + = hunter_flechette: "Explosive darts shot by Combine Hunters." + [ + ] diff --git a/fgd/point/info/info_bigmomma.fgd b/fgd/point/info/info_bigmomma.fgd new file mode 100644 index 000000000..2902cf25a --- /dev/null +++ b/fgd/point/info/info_bigmomma.fgd @@ -0,0 +1,32 @@ +@PointClass base(Node) appliesto(Mesa) + autovis(Entities, Nodes, Ground Node, Gonarch Node) + studio("models/editor/ground_node.mdl") + line(232 219 8, targetname, reachtarget) + sphere(m_flRadius) + color(232 219 8) += info_bigmomma: "A navigation node for Bigmomma AKA Gonarch" + [ + m_flRadius(float) : "Radius" : 1 : "" + m_flDelay(float) : "Delay" : 1 : "" + + reachtarget(target_destination) : "Reach Target" : : "" + reachsequence(string) : "Reach Sequence" : "0" : " " + presequence(string) : "Pre-Sequence" : "0" : " " + + + spawnflags(Flags) = + [ + 1 : "Force human permission" : 0 + 2 : "Force small_centered permission" : 0 + 4 : "Force wide_human permission" : 0 + 8 : "Force tiny permissiont" : 0 + 16 : "Force wide_short permission" : 0 + 32 : "Force medium permission" : 0 + 64 : "Force tiny_centered permission" : 0 + 128 : "Force large permission" : 0 + 256 : "Force large_centered permission" : 0 + 512 : "Keep editor position" : 0 + ] + + output OnAnimationEvent(void) : "OnAnimationEvent" + ] diff --git a/fgd/point/info/info_constraint_anchor.fgd b/fgd/point/info/info_constraint_anchor.fgd index 60e586649..b2f664514 100644 --- a/fgd/point/info/info_constraint_anchor.fgd +++ b/fgd/point/info/info_constraint_anchor.fgd @@ -1,5 +1,6 @@ @PointClass base(BaseEntityPoint) + autovis(Entities, Constraints, Constraint Anchor) halfgridsnap iconsprite("editor/info_constraint_anchor.vmt") color(128 128 128) diff --git a/fgd/point/info/info_coop_spawn.fgd b/fgd/point/info/info_coop_spawn.fgd index ae055c2f7..3c8805f59 100644 --- a/fgd/point/info/info_coop_spawn.fgd +++ b/fgd/point/info/info_coop_spawn.fgd @@ -1,5 +1,6 @@ @PointClass base(BaseEntityPoint, PlayerClass) appliesto(P2) + autovis(Point Entities, Globals, Player Spawn) studioprop() = info_coop_spawn: "Player spawns for cooperative mode." [ diff --git a/fgd/point/info/info_darknessmode_lightsource.fgd b/fgd/point/info/info_darknessmode_lightsource.fgd index b7b557d10..5193fea4b 100644 --- a/fgd/point/info/info_darknessmode_lightsource.fgd +++ b/fgd/point/info/info_darknessmode_lightsource.fgd @@ -1,7 +1,7 @@ - @PointClass base(BaseEntityPoint, EnableDisable) - appliesto(EP1, EP2, HL2, P1, ASW) - sphere(LightRadius) + appliesto(EP1, EP2, HL2, P1) + autovis(Auto, Point Entities, Lights, Alyx Darkness Source) + sphere(LightRadius) = info_darknessmode_lightsource: "Specifies a lit location for Alyx's EP1 darkness mode." [ lightradius(float) : "Light Radius" : 256.0 : "The radius around this lightsource in which Alyx will be able to see enemies." diff --git a/fgd/point/info/info_dlightmap_update.fgd b/fgd/point/info/info_dlightmap_update.fgd new file mode 100644 index 000000000..140544259 --- /dev/null +++ b/fgd/point/info/info_dlightmap_update.fgd @@ -0,0 +1,7 @@ +@PointClass base(BaseEntityPoint) + appliesto(Mesa) + iconsprite("editor/info_target.vmt") = info_dlightmap_update: "Does a thing." + [ + input Enable(void) : "Make this do whatever it does." + input Disable(void) : "Stop this doing whatever it does." + ] diff --git a/fgd/point/info/info_hint.fgd b/fgd/point/info/info_hint.fgd index 34214b5ed..ac6cff1a9 100644 --- a/fgd/point/info/info_hint.fgd +++ b/fgd/point/info/info_hint.fgd @@ -1,5 +1,6 @@ @PointClass base(BaseEntityPoint, HintNode) studio("models/editor/node_hint.mdl") + autovis(Entities, Nodes, Hint Node) color(255 255 255) sphere(radius) = info_hint: "A hint that is not used for navigation. They don't go into the nodegraph, nor do they fall to the ground. " + diff --git a/fgd/point/info/info_item_position.fgd b/fgd/point/info/info_item_position.fgd index 4e059440f..fac66d314 100644 --- a/fgd/point/info/info_item_position.fgd +++ b/fgd/point/info/info_item_position.fgd @@ -5,6 +5,7 @@ [ model(studio) : "Helper Model" group(integer) : "Group" : 0 : "Group Number" + rarity[engine](integer) : "Rarity" : 0 rarity(choices) : "Rarity" : 0 : "Item rarity at this location" = [ 0: "Common" diff --git a/fgd/point/info/info_l4d1_survivor_spawn.fgd b/fgd/point/info/info_l4d1_survivor_spawn.fgd index 431892845..6356107d3 100644 --- a/fgd/point/info/info_l4d1_survivor_spawn.fgd +++ b/fgd/point/info/info_l4d1_survivor_spawn.fgd @@ -2,6 +2,7 @@ studio("models/survivors/survivor_biker.mdl") = info_l4d1_survivor_spawn: "Spawn a L4D1 survivor" [ + character[engine](integer) : "Character" : 5 character(choices) : "Character" : 5 : "Which survivor to spawn here" = [ 4: "Bill" diff --git a/fgd/point/info/info_landmark_entry.fgd b/fgd/point/info/info_landmark_entry.fgd index a486ad5df..da8d3013f 100644 --- a/fgd/point/info/info_landmark_entry.fgd +++ b/fgd/point/info/info_landmark_entry.fgd @@ -1,7 +1,6 @@ - @PointClass base(BaseEntityPoint) autovis(Point Entities, Globals, Landmarks) - appliesto(P2) + appliesto(P2, -INFRA) iconsprite("editor/info_landmark") = info_landmark_entry: "Entry landmark" [ ] diff --git a/fgd/point/info/info_landmark_exit.fgd b/fgd/point/info/info_landmark_exit.fgd index eec412084..d169ace94 100644 --- a/fgd/point/info/info_landmark_exit.fgd +++ b/fgd/point/info/info_landmark_exit.fgd @@ -1,6 +1,6 @@ @PointClass base(BaseEntityPoint) autovis(Point Entities, Globals, Landmarks) - appliesto(P2) + appliesto(P2, -INFRA) iconsprite("editor/info_landmark") = info_landmark_exit: "Exit landmark" [ ] diff --git a/fgd/point/info/info_mass_center.fgd b/fgd/point/info/info_mass_center.fgd index b6a01ec38..eca81df7c 100644 --- a/fgd/point/info/info_mass_center.fgd +++ b/fgd/point/info/info_mass_center.fgd @@ -1,11 +1,13 @@ // This is a real entity. However, as soon as it spawns it applies the mass center, -// then kills itself. +// then kills itself. So there's no point adding any other BaseEntityPoint options. @PointClass halfgridsnap iconsprite("editor/ficool2/info_mass_center.vmt") color(128 128 128) line(128 128 128, targetname, target) -= info_mass_center: "An entity that overrides the mass center of the target physics prop, or func_physbox, by moving it to the info_mass_center's location. This kills itself on spawn." + autovis(Entities, Constraints, Mass Center) += info_mass_center: "An entity that overrides the mass center of the target physics object, " + + "by moving it to the info_mass_center's location. This kills itself on spawn." [ target(target_destination) : "Target object" : : "The entity whose mass center will be overridden." ] diff --git a/fgd/point/info/info_nihilanth_summon.fgd b/fgd/point/info/info_nihilanth_summon.fgd new file mode 100644 index 000000000..5085fd0dd --- /dev/null +++ b/fgd/point/info/info_nihilanth_summon.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + iconsprite("editor/info_target.vmt") += info_nihilanth_summon: "Nihilanth summon spawn point" +[ +] diff --git a/fgd/point/info/info_node.fgd b/fgd/point/info/info_node.fgd index 9e53c992a..b3bd94daa 100644 --- a/fgd/point/info/info_node.fgd +++ b/fgd/point/info/info_node.fgd @@ -1,4 +1,5 @@ @PointClass base(Node) + autovis(Entities, Nodes, Ground Node) studio("models/editor/ground_node.mdl") color(232 219 8) = info_node: "A navigation node for ground moving NPCs. Navigation nodes are baked into the nodegraph so that NPCs can move to them. " + diff --git a/fgd/point/info/info_node_air.fgd b/fgd/point/info/info_node_air.fgd index 825d19394..f7b573bd5 100644 --- a/fgd/point/info/info_node_air.fgd +++ b/fgd/point/info/info_node_air.fgd @@ -1,4 +1,5 @@ @PointClass base(Node) + autovis(Entities, Nodes, Air Node) studio("models/editor/air_node.mdl") color(232 171 8) = info_node_air: "A navigation node for flying NPCs. Air navigation nodes are baked into the nodegraph so that NPCs can move to them. " + diff --git a/fgd/point/info/info_node_air_hint.fgd b/fgd/point/info/info_node_air_hint.fgd index 86fe4d6a8..d92e10c49 100644 --- a/fgd/point/info/info_node_air_hint.fgd +++ b/fgd/point/info/info_node_air_hint.fgd @@ -1,4 +1,6 @@ @PointClass base(BaseEntityPoint, HintNode) + autovis(Entities, Nodes, Air Node) + autovis(Entities, Nodes, Hint Node) studio("models/editor/air_node_hint.mdl") color(232 171 8) line(255 255 255, nodeid, TargetNode) diff --git a/fgd/point/info/info_node_climb.fgd b/fgd/point/info/info_node_climb.fgd index 91a245469..4ac51efb2 100644 --- a/fgd/point/info/info_node_climb.fgd +++ b/fgd/point/info/info_node_climb.fgd @@ -1,5 +1,6 @@ @PointClass base(BaseEntityPoint, HintNode) studio("models/editor/climb_node.mdl") + autovis(Entities, Nodes, Climb Node) color(153 215 103) sphere(radius) = info_node_climb: "A climb-node for AI navigation. Only usable by NPCs that can climb." diff --git a/fgd/point/info/info_node_hint.fgd b/fgd/point/info/info_node_hint.fgd index c251a6f66..cb642a5b7 100644 --- a/fgd/point/info/info_node_hint.fgd +++ b/fgd/point/info/info_node_hint.fgd @@ -1,5 +1,7 @@ @PointClass base(BaseEntityPoint, HintNode) studio("models/editor/ground_node_hint.mdl") + autovis(Entities, Nodes, Ground Node) + autovis(Entities, Nodes, Hint Node) color(232 219 8) sphere(radius) = info_node_hint: "A navigation node for ground moving NPCs that includes some context information for NPCs that are interested in it. " + diff --git a/fgd/point/info/info_node_link.fgd b/fgd/point/info/info_node_link.fgd index 2b66097da..831bee6ad 100644 --- a/fgd/point/info/info_node_link.fgd +++ b/fgd/point/info/info_node_link.fgd @@ -1,4 +1,5 @@ @PointClass base(BaseEntityPoint) + autovis(Entities, Nodes, Node Controller) color(220 180 0) line(255 255 255, nodeid, StartNode, nodeid, EndNode) iconsprite("editor/info_node_link.vmt") diff --git a/fgd/point/info/info_node_link_controller.fgd b/fgd/point/info/info_node_link_controller.fgd index 17de338be..dc4692416 100644 --- a/fgd/point/info/info_node_link_controller.fgd +++ b/fgd/point/info/info_node_link_controller.fgd @@ -1,4 +1,5 @@ @PointClass base(BaseEntityPoint) + autovis(Entities, Nodes, Node Controller) wirebox(mins, maxs) color(220 180 0) iconsprite("editor/info_node_link_controller.vmt") diff --git a/fgd/point/info/info_node_link_filtered.fgd b/fgd/point/info/info_node_link_filtered.fgd index 6e9770148..7b31ba64b 100644 --- a/fgd/point/info/info_node_link_filtered.fgd +++ b/fgd/point/info/info_node_link_filtered.fgd @@ -1,4 +1,5 @@ @PointClass base(info_node_link) appliesto(MBase) + autovis(Entities, Nodes, Node Controller) color(220 180 0) iconsprite("editor/info_node_link.vmt") line(255 255 255, targetname, damagefilter) diff --git a/fgd/point/info/info_node_link_logic.fgd b/fgd/point/info/info_node_link_logic.fgd index 0445060e0..f54fdf3f5 100644 --- a/fgd/point/info/info_node_link_logic.fgd +++ b/fgd/point/info/info_node_link_logic.fgd @@ -1,4 +1,5 @@ @PointClass base(info_node_link) appliesto(MBase) + autovis(Entities, Nodes, Node Controller) color(220 180 0) iconsprite("editor/info_node_link.vmt") = info_node_link_logic: diff --git a/fgd/point/info/info_node_link_oneway.fgd b/fgd/point/info/info_node_link_oneway.fgd index b38e0298d..9e82f9e23 100644 --- a/fgd/point/info/info_node_link_oneway.fgd +++ b/fgd/point/info/info_node_link_oneway.fgd @@ -1,4 +1,5 @@ @PointClass base(info_node_link) appliesto(MBase) + autovis(Entities, Nodes, Node Controller) color(220 180 0) iconsprite("editor/info_node_link.vmt") = info_node_link_oneway: diff --git a/fgd/point/info/info_node_marine_hint.fgd b/fgd/point/info/info_node_marine_hint.fgd index 503df3ebb..af67922b5 100644 --- a/fgd/point/info/info_node_marine_hint.fgd +++ b/fgd/point/info/info_node_marine_hint.fgd @@ -1,7 +1,11 @@ @PointClass base(Node) + autovis(Entities, Nodes, Ground Node) appliesto(ASW) studio("models/editor/ground_node.mdl") - color(8 64 232) = info_node_marine_hint: "Follow hint node for marines. It is also a navigation node for ground moving NPCs. Navigation nodes are baked into the nodegraph so that NPCs can move to them. Ground nodes fall to the ground when they spawn." + color(8 64 232) = info_node_marine_hint: "Follow hint node for marines. " + + "It is also a navigation node for ground moving NPCs. " + + "Navigation nodes are baked into the nodegraph so that NPCs can move to them. " + + "Ground nodes fall to the ground when they spawn." [ spawnflags(flags) : "spawnflags" = [ diff --git a/fgd/point/info/info_observer_menu.fgd b/fgd/point/info/info_observer_menu.fgd new file mode 100644 index 000000000..fae1ce7bf --- /dev/null +++ b/fgd/point/info/info_observer_menu.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + studioprop("models/editor/camera.mdl") += info_observer_menu : "A position for a menu fade in" + [ + observerid(integer) : "ID" : 0 : "Corresponds to the index of a loading material for this map." + ] diff --git a/fgd/point/info/info_overlay.fgd b/fgd/point/info/info_overlay.fgd index a3efb26a1..145b08531 100644 --- a/fgd/point/info/info_overlay.fgd +++ b/fgd/point/info/info_overlay.fgd @@ -2,6 +2,7 @@ // is converted to info_overlay_accesssor, which is a real // entity. @PointClass base(BaseEntityPoint) + appliesto(-engine) // Not an ent, put in a seperate block. autovis(Overlays,Normal) size(-1 -1 0, 1 1 1) color(80 150 225) diff --git a/fgd/point/info/info_overlay_transition.fgd b/fgd/point/info/info_overlay_transition.fgd index b6e0901da..c31a37496 100644 --- a/fgd/point/info/info_overlay_transition.fgd +++ b/fgd/point/info/info_overlay_transition.fgd @@ -1,5 +1,6 @@ @PointClass autovis(Overlays,Water) + appliesto(-engine) size(-1 -1 0, 1 1 1) color(80 150 225) studio("models/editor/overlay_helper.mdl") diff --git a/fgd/point/info/info_particle_system.fgd b/fgd/point/info/info_particle_system.fgd index 5ba8b7ae5..aa0e20256 100644 --- a/fgd/point/info/info_particle_system.fgd +++ b/fgd/point/info/info_particle_system.fgd @@ -67,8 +67,9 @@ [ effect_name(particlesystem) : "Particle System Name" start_active(boolean) : "Start Active?" : 0 - flag_as_weather[TF2](boolean) : "Flag as Weather?" : 0 : "Is this particle system going to be used as a weather effect?" + flag_as_weather[TF2, MESA](boolean) : "Flag as Weather?" : 0 : "Is this particle system going to be used as a weather effect?" render_in_front[L4D2](boolean) : "Render In Front" : 0 : "Hack to allow particles to render in front of everything else." + orientation_follows_viewer[MESA](boolean) : "Orientation Follows Viewer?" : 0 cpoint1(target_destination) : "Control Point 1" : : "If set, control point 1 of the effect will be at this entity's location." cpoint2(target_destination) : "Control Point 2" : : "If set, control point 2 of the effect will be at this entity's location. If control point 1 is not set, this will be ignored." diff --git a/fgd/point/info/info_player_counterterrorist.fgd b/fgd/point/info/info_player_counterterrorist.fgd index 05d916018..458694e89 100644 --- a/fgd/point/info/info_player_counterterrorist.fgd +++ b/fgd/point/info/info_player_counterterrorist.fgd @@ -1,4 +1,5 @@ @PointClass base(BaseEntityPoint, PlayerClass) + autovis(Point Entities, Globals, Player Spawn, CT Spawn) appliesto(CSGO) studio("models/player/ctm_st6.mdl") = info_player_counterterrorist: "This entity marks the start point for counter-terrorists. One of these needs to be placed for each team member. 20 start points is typical. Should be placed at least 128 units away from each other and surrounding walls" [ diff --git a/fgd/point/info/info_player_deathmatch.fgd b/fgd/point/info/info_player_deathmatch.fgd new file mode 100644 index 000000000..dc47082b2 --- /dev/null +++ b/fgd/point/info/info_player_deathmatch.fgd @@ -0,0 +1,10 @@ +@PointClass base(BaseEntityPoint, PlayerClass) + autovis(Point Entities, Globals, Player Spawn, Deathmatch Spawn) + appliesto(Mesa) + studio("models/player/playerstart.mdl") = info_player_deathmatch: "" + [ + itemstogive(string) : "List of items to spawn the player with." + + input Enable(void) : "Enable this spawnpoint." + input Disable(void) : "Disable this spawnpoint." + ] diff --git a/fgd/point/info/info_player_marine.fgd b/fgd/point/info/info_player_marine.fgd new file mode 100644 index 000000000..f57e310f0 --- /dev/null +++ b/fgd/point/info/info_player_marine.fgd @@ -0,0 +1,10 @@ +@PointClass base(BaseEntityPoint, PlayerClass) + autovis(Point Entities, Globals, Player Spawn, Marine Spawn) + appliesto(Mesa) + studio("models/player/mp_marine.mdl") = info_player_marine: "" + [ + itemstogive(string) : "List of items to spawn the player with." + + input Enable(void) : "Enable this spawnpoint." + input Disable(void) : "Disable this spawnpoint." + ] diff --git a/fgd/point/info/info_player_scientist.fgd b/fgd/point/info/info_player_scientist.fgd new file mode 100644 index 000000000..0c1d5a8ac --- /dev/null +++ b/fgd/point/info/info_player_scientist.fgd @@ -0,0 +1,10 @@ +@PointClass base(BaseEntityPoint, PlayerClass) + autovis(Point Entities, Globals, Player Spawn, Scientist Spawn) + appliesto(Mesa) + studio("models/player/mp_marine.mdl") = info_player_scientist + [ + itemstogive(string) : "List of items to spawn the player with." + + input Enable(void) : "Enable this spawnpoint." + input Disable(void) : "Disable this spawnpoint." + ] diff --git a/fgd/point/info/info_player_start.fgd b/fgd/point/info/info_player_start.fgd index 0b4cc8b65..7eb1e48a8 100644 --- a/fgd/point/info/info_player_start.fgd +++ b/fgd/point/info/info_player_start.fgd @@ -1,4 +1,5 @@ @PointClass base(BaseEntityPoint, PlayerClass) + autovis(Point Entities, Globals, Player Spawn) studio("models/editor/playerstart.mdl") = info_player_start: "This entity indicates the position and facing direction at which the player will spawn. " + "Any number of info_player_start entities may be placed in a map for when working in cordoned-off portions of the map. " + diff --git a/fgd/point/info/info_player_teamspawn.fgd b/fgd/point/info/info_player_teamspawn.fgd index ed38e89cf..150df41ea 100644 --- a/fgd/point/info/info_player_teamspawn.fgd +++ b/fgd/point/info/info_player_teamspawn.fgd @@ -1,4 +1,5 @@ @PointClass base(BaseEntityPoint, PlayerClass, TeamNum, EnableDisable) + autovis(Point Entities, Globals, Player Spawn) appliesto(TF2) studio("models/editor/playerstart.mdl") line(255 0 0, targetname, round_redspawn) diff --git a/fgd/point/info/info_player_terrorist.fgd b/fgd/point/info/info_player_terrorist.fgd index 5566a43f4..65c5b5cce 100644 --- a/fgd/point/info/info_player_terrorist.fgd +++ b/fgd/point/info/info_player_terrorist.fgd @@ -1,5 +1,5 @@ - @PointClass base(BaseEntityPoint, PlayerClass) + autovis(Point Entities, Globals, Player Spawn, T Spawn) appliesto(CSGO) studio("models/player/tm_phoenix.mdl") = info_player_terrorist: "This entity marks the start point for terrorists. One of these needs to be placed for each team member. 20 start points is typical. Should be placed at least 128 units away from each other and surrounding walls." [ diff --git a/fgd/point/info/info_player_view_proxy.fgd b/fgd/point/info/info_player_view_proxy.fgd new file mode 100644 index 000000000..8a5b0cc6c --- /dev/null +++ b/fgd/point/info/info_player_view_proxy.fgd @@ -0,0 +1,15 @@ +@PointClass base(BaseEntityPoint) appliesto(MBase) + iconsprite("editor/info_target.vmt") += info_player_view_proxy : "Copies a player's view as if they're at a different position. Intended to be used with script_intro." + [ + Enabled(boolean) : "Start Activated" : 0 : "Starts with position offsetting enabled." + + MeasureReference(target_destination) : "Measure Reference" : "" : "Used for logic_measure_movement-based offsetting. The movement of the player will be measured relative to this entity." + TargetReference(target_destination) : "Movement Reference" : "" : "Used for logic_measure_movement-based offsetting. The info_player_position_offset will move relative to this entity." + + TargetScale(float) : "Movement scale" : "1" : "Used for logic_measure_movement-based offsetting. This is a scale to *divide* the measured movements by before applying those movements to this entity." + + // Inputs + input Activate(void) : "Begin offsetting." + input Deactivate(void) : "Stop offsetting." + ] diff --git a/fgd/point/info/info_powerup_spawn.fgd b/fgd/point/info/info_powerup_spawn.fgd index dcb266adb..30d50f3d4 100644 --- a/fgd/point/info/info_powerup_spawn.fgd +++ b/fgd/point/info/info_powerup_spawn.fgd @@ -3,7 +3,9 @@ studio("models/pickups/pickup_powerup_regen.mdl") sphere(fademindist) sphere(fademaxdist) -= info_powerup_spawn: "Powerup spawn location. Only one of each type of Powerup will spawn in a game, so some Powerup spawn locations may not be used in some rounds. Locations and Powerup types are chosen at random. Will only spawn if tf_powerup_mode is set." += info_powerup_spawn: "Powerup spawn location. Only one of each type of Powerup will spawn in a game, " + + "so some Powerup spawn locations may not be used in some rounds. " + + "Locations and Powerup types are chosen at random. Will only spawn if tf_powerup_mode is set." [ team[engine](integer) : "Owner Team" : -2 team(choices) : "Owner Team" : -2 : "Teams can own spawn points. When Powerups are dropped, they resposition themselves after timing out. They will try to pick a spawn point based on what team designation they had when they repositioned. Set to Everyone to have no team bias in spawn positioning" = diff --git a/fgd/point/info/info_projecteddecal.fgd b/fgd/point/info/info_projecteddecal.fgd index f5eff38db..45d16020c 100644 --- a/fgd/point/info/info_projecteddecal.fgd +++ b/fgd/point/info/info_projecteddecal.fgd @@ -6,7 +6,7 @@ "If the decal has no target name, it will immediately apply itself when the level is loaded. " + "If it has a name specified, it won't apply until it receives the 'Activate' input." [ - texture(material) : "Texture" : : "The texture used for the decal." + texture(decal) : "Texture" : : "The texture used for the decal." distance(float) : "Distance" : 64 : "Distance from the origin to project the decal." // Inputs diff --git a/fgd/point/info/info_snipertarget.fgd b/fgd/point/info/info_snipertarget.fgd index 648668927..b1914df7d 100644 --- a/fgd/point/info/info_snipertarget.fgd +++ b/fgd/point/info/info_snipertarget.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) iconsprite("editor/info_target.vmt") = info_snipertarget: "Sniper Target" [ speed(integer) : "Sweep to speed" : 2 @@ -8,8 +8,8 @@ [ 1: "Shoot Me" : 0 2: "No Interruptions" : 0 + // 4 : "Snap Shot" : 0 OBSOLETE NOW but don't overwrite, in case some levels need legacy support. 8: "Resume if Interrupted" : 0 16: "Snap to me" : 0 ] - ] diff --git a/fgd/point/info/info_stopallsounds.fgd b/fgd/point/info/info_stopallsounds.fgd new file mode 100644 index 000000000..db94b3e82 --- /dev/null +++ b/fgd/point/info/info_stopallsounds.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseEntityPoint) + appliesto(Mesa) + iconsprite("editor/info_target.vmt") = info_stopallsounds : "stop them spinnaz" + [ + input Activate(void) : "Stops all sounds" + ] diff --git a/fgd/point/info/info_target_helicoptercrash.fgd b/fgd/point/info/info_target_helicoptercrash.fgd new file mode 100644 index 000000000..45f735923 --- /dev/null +++ b/fgd/point/info/info_target_helicoptercrash.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseEntityPoint) + appliesto(Mesa) + iconsprite("editor/info_target.vmt") = info_target_helicoptercrash: "Helicopter Crash Target" + [ + ] diff --git a/fgd/point/info/info_target_instructor_hint.fgd b/fgd/point/info/info_target_instructor_hint.fgd index e97a5cf26..8e720e09c 100644 --- a/fgd/point/info/info_target_instructor_hint.fgd +++ b/fgd/point/info/info_target_instructor_hint.fgd @@ -1,6 +1,8 @@ @PointClass base(BaseEntityPoint) appliesto(since_L4D2) halfgridsnap + studio("models/editor/axis_helper.mdl") + iconsprite("editor/info_target_instructor_hint.vmt") = info_target_instructor_hint: "A generic target that gets replicated to the client for hud hint targeting." [ ] diff --git a/fgd/point/info/info_timescale_controller.fgd b/fgd/point/info/info_timescale_controller.fgd new file mode 100644 index 000000000..44306db77 --- /dev/null +++ b/fgd/point/info/info_timescale_controller.fgd @@ -0,0 +1,7 @@ +@PointClass base(BaseEntityPoint) + appliesto(Mesa) + iconsprite("editor/info_target.vmt") = info_timescale_controller : "host_timescale controller entity." + [ + input SetTimescale(float) : "Sets the value of host_timescale." + input RestoreTimescale(void) : "Restores the value of host_timescale back to what it was previously." + ] diff --git a/fgd/point/infodecal.fgd b/fgd/point/infodecal.fgd index 04b627be4..3dcb56fa7 100644 --- a/fgd/point/infodecal.fgd +++ b/fgd/point/infodecal.fgd @@ -4,7 +4,7 @@ = infodecal: "An entity that places a decal on the world. If the decal has no target name, it will immediately apply itself when the level is loaded." + "If it has a name specified, it won't apply until it receives the 'Activate' input." [ - texture(material) : "Texture" : : "The texture used for the decal." + texture(decal) : "Texture" : : "The texture used for the decal." lowpriority(boolean) : "Low Priority" : 1 : "Allow the decal to be overwritten by other decals when needed. " + "This also makes the decal not persist across savegames." diff --git a/fgd/point/infra/infra_crow.fgd b/fgd/point/infra/infra_crow.fgd index bf1547fbd..3ec3703ee 100644 --- a/fgd/point/infra/infra_crow.fgd +++ b/fgd/point/infra/infra_crow.fgd @@ -1,4 +1,5 @@ @NpcClass base(BaseNPC) appliesto(INFRA) + autovis(Entities, NPCs, Animals, Birds) studio("models/props_nature/varis.mdl") = infra_crow: "Crow" [ diff --git a/fgd/point/item/item_ammo_357.fgd b/fgd/point/item/item_ammo_357.fgd index e2d7ac458..e0c49241b 100644 --- a/fgd/point/item/item_ammo_357.fgd +++ b/fgd/point/item/item_ammo_357.fgd @@ -1,6 +1,9 @@ +@BaseClass appliesto(-Mesa) studio("models/items/357ammo.mdl") = _item_ammo_357_hl2 [] +@BaseClass appliesto(+Mesa) studio("models/weapons/w_357ammobox.mdl") = _item_ammo_357_mesa [] -@PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/357ammo.mdl") = item_ammo_357: "Box of 357 ammo" +@PointClass base(ItemAmmo, BaseMesaPickup) + base(_item_ammo_357_mesa, _item_ammo_357_hl2) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) += item_ammo_357: "Box of 357 ammo" [ ] diff --git a/fgd/point/item/item_ammo_357_large.fgd b/fgd/point/item/item_ammo_357_large.fgd index 54c2293c8..43ed0adc3 100644 --- a/fgd/point/item/item_ammo_357_large.fgd +++ b/fgd/point/item/item_ammo_357_large.fgd @@ -1,5 +1,4 @@ - -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) studio("models/items/357ammobox.mdl") = item_ammo_357_large: "Large Box of 357 ammo" [ diff --git a/fgd/point/item/item_ammo_ar2.fgd b/fgd/point/item/item_ammo_ar2.fgd index b09b96a91..749ed87c6 100644 --- a/fgd/point/item/item_ammo_ar2.fgd +++ b/fgd/point/item/item_ammo_ar2.fgd @@ -1,6 +1,6 @@ -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/BoxBRounds.mdl") = item_ammo_ar2: "Box of AR2 ammo" + studio("models/items/combine_rifle_cartridge01.mdl") = item_ammo_ar2: "Cartridge of AR2 ammo" [ ] diff --git a/fgd/point/item/item_ammo_ar2_altfire.fgd b/fgd/point/item/item_ammo_ar2_altfire.fgd index 754bbed50..209bc96c9 100644 --- a/fgd/point/item/item_ammo_ar2_altfire.fgd +++ b/fgd/point/item/item_ammo_ar2_altfire.fgd @@ -1,5 +1,5 @@ -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) studio("models/items/combine_rifle_ammo01.mdl") = item_ammo_ar2_altfire: "AR2 Alt-fire Round" [ diff --git a/fgd/point/item/item_ammo_ar2_large.fgd b/fgd/point/item/item_ammo_ar2_large.fgd index 111f6f88e..bae4eee64 100644 --- a/fgd/point/item/item_ammo_ar2_large.fgd +++ b/fgd/point/item/item_ammo_ar2_large.fgd @@ -1,6 +1,6 @@ -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/LargeBoxBRounds.mdl") = item_ammo_ar2_large: "Large Box of AR2 ammo" + studio("models/items/combine_rifle_cartridge01.mdl") = item_ammo_ar2_large: "Large cartridge of AR2 ammo" [ ] diff --git a/fgd/point/item/item_ammo_canister.fgd b/fgd/point/item/item_ammo_canister.fgd new file mode 100644 index 000000000..684d2f390 --- /dev/null +++ b/fgd/point/item/item_ammo_canister.fgd @@ -0,0 +1,16 @@ +@PointClass base(BaseMesaPickup) appliesto(Mesa) + studio("models/weapons/w_weaponbox.mdl") = item_ammo_canister: "Ammo canister" + [ + AmmoGlock(integer) : "AmmoGlock" : 0 : "AmmoGlock" + AmmoMp5(integer) : "AmmoMp5" : 0 : "AmmoMp5" + Ammo357(integer) : "Ammo357" : 0 : "Ammo357" + AmmoBolt(integer) : "AmmoBolt" : 0 : "AmmoBolt" + AmmoBuckshot(integer) : "AmmoBuckshot" : 0 : "AmmoBuckshot" + AmmoEnergy(integer) : "AmmoEnergy" : 0 : "AmmoEnergy" + AmmoMp5Grenade(integer) : "AmmoMp5Grenade" : 0 : "AmmoMp5Grenade" + AmmoRPG(integer) : "AmmoRPG" : 0 : "AmmoRPG" + AmmoSatchel(integer) : "AmmoSatchel" : 0 : "AmmoSatchel" + AmmoSnark(integer) : "AmmoSnark" : 0 : "AmmoSnark" + AmmoTripmine(integer) : "AmmoTripmine" : 0 : "AmmoTripmine" + AmmoFrag(integer) : "AmmoFrag" : 0 : "AmmoFrag" + ] diff --git a/fgd/point/item/item_ammo_crate.fgd b/fgd/point/item/item_ammo_crate.fgd index 912c8645f..d41143c54 100644 --- a/fgd/point/item/item_ammo_crate.fgd +++ b/fgd/point/item/item_ammo_crate.fgd @@ -1,10 +1,16 @@ +@BaseClass appliesto(-mesa, -MBase) studioprop("models/items/ammocrate_rockets.mdl") = _item_ammo_crate_fixed [] +@BaseClass appliesto(+mesa) studioprop() = _item_ammo_crate_settable [] +@BaseClass appliesto(+MBase) studioprop("models/items/ammocrate_empty.mdl") = _item_ammo_crate_mbase [] + @PointClass base(BaseEntityAnimating) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/ammocrate_rockets.mdl") + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) + base(_item_ammo_crate_fixed, _item_ammo_crate_settable, _item_ammo_crate_mbase) = item_ammo_crate: "Ammo Crate" [ - ammotype[engine](integer) : "Ammo Type" : 0 - ammotype(choices) : "Ammo Type" : 0 = + model[Mesa](studio) : "Model" : "models/items/ammocrate_rockets.mdl" : "Model to use for the ammo crate" + + ammotype[engine](string) : "Ammo Type" : 0 + ammotype[!Mesa](choices) : "Ammo Type" : 0 = [ 0: "Pistol" 1: "SMG1" @@ -12,12 +18,38 @@ 3: "RPG Rounds" 4: "Buckshot" 5: "Grenades" - 6: "357" + 6: "357 Magnum" 7: "Crossbow Bolt" - 8: "AR2 Alt-Fire Round" - 9: "SMG Alt-Fire grenade" + 8 : "AR2 Alt-Fire Balls" + 9 : "SMG Alt-Fire Grenades" + 10 : "S.L.A.M." [MBase] + 11 : "Empty" [MBase] + ] + AmmoType[Mesa](choices) : "Ammo Type" : "grenade_rpg" = + [ + "9mm" : "9mm Rounds" + "357" : ".357 Rounds" + "bolt" : "Bolts" + "buckshot" : "Buckshot" + "energy" : "Energy" + "grenade_mp5" : "Mp5 Grenade" + "grenade_rpg" : "RPG" + "grenade_frag" : "Frag Grenades" + "grenade_satchel" : "Satchels" + "grenade_tripmine" : "Tripmines" ] + + skin[MBase](integer) : "Skin" : 0 : "The ''Empty'' ammo crate can use multiple skins based on other crates. " + + "Changing the skin might be reflected in the viewport, " + + "but it will only apply to the empty ammo crate." + + isDynamicMoving[Mesa](integer) : "CanMove" : 0 : "CanMove" + AmmoCount[Mesa](integer) : "Ammo Count" : 1 : "Ammo Count" + + // Inputs + input Skin[MBase](integer) : "Changes the model skin to the specified number." // Outputs output OnUsed(void) : "Fires when +used by the player." + output OnAmmoTaken[MBase](void) : "Fires the instant ammo is taken from this crate." ] diff --git a/fgd/point/item/item_ammo_crossbow.fgd b/fgd/point/item/item_ammo_crossbow.fgd index d8b219c1a..cb9b4a593 100644 --- a/fgd/point/item/item_ammo_crossbow.fgd +++ b/fgd/point/item/item_ammo_crossbow.fgd @@ -1,6 +1,9 @@ +@BaseClass appliesto(-Mesa) studio("models/items/CrossbowRounds.mdl") = _item_crossbow_hl2 [] +@BaseClass appliesto(+Mesa) studio("models/weapons/w_crossbow_clip.mdl") = _item_crossbow_mesa [] -@PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) +@PointClass base(ItemAmmo, BaseMesaPickup) + base(_item_crossbow_hl2, _item_crossbow_mesa) + appliesto(EP1, EP2, HL2, P1, Mesa) studio("models/items/CrossbowRounds.mdl") = item_ammo_crossbow: "Box of Crossbow ammo" [ ] diff --git a/fgd/point/item/item_ammo_energy.fgd b/fgd/point/item/item_ammo_energy.fgd new file mode 100644 index 000000000..9548a6204 --- /dev/null +++ b/fgd/point/item/item_ammo_energy.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseMesaPickup) + appliesto(Mesa) + studio("models/weapons/w_gaussammo.mdl") += item_ammo_energy : "Uranium" + [ + ] diff --git a/fgd/point/item/item_ammo_glock.fgd b/fgd/point/item/item_ammo_glock.fgd new file mode 100644 index 000000000..2ac941a79 --- /dev/null +++ b/fgd/point/item/item_ammo_glock.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseMesaPickup) + appliesto(Mesa) + studio("models/weapons/w_9mmclip.mdl") += item_ammo_glock : "Glock Clip" + [ + ] diff --git a/fgd/point/item/item_ammo_mp5.fgd b/fgd/point/item/item_ammo_mp5.fgd new file mode 100644 index 000000000..1ba912517 --- /dev/null +++ b/fgd/point/item/item_ammo_mp5.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseMesaPickup) + appliesto(Mesa) + studio("models/weapons/w_9mmARclip.mdl") += item_ammo_mp5 : "MP5 Clip" + [ + ] diff --git a/fgd/point/item/item_ammo_pistol.fgd b/fgd/point/item/item_ammo_pistol.fgd index 977f83751..aa2aaa942 100644 --- a/fgd/point/item/item_ammo_pistol.fgd +++ b/fgd/point/item/item_ammo_pistol.fgd @@ -1,5 +1,5 @@ -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) studio("models/items/boxsrounds.mdl") = item_ammo_pistol: "Box of Pistol ammo" [ diff --git a/fgd/point/item/item_ammo_pistol_large.fgd b/fgd/point/item/item_ammo_pistol_large.fgd index dd2d9e7ae..3744ccaa1 100644 --- a/fgd/point/item/item_ammo_pistol_large.fgd +++ b/fgd/point/item/item_ammo_pistol_large.fgd @@ -1,6 +1,6 @@ -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/largeBoxSRounds.mdl") = item_ammo_pistol_large: "Large Box of Pistol ammo" + studio("models/items/boxsrounds.mdl") = item_ammo_pistol_large: "Large Box of Pistol ammo" [ ] diff --git a/fgd/point/item/item_ammo_shotgun.fgd b/fgd/point/item/item_ammo_shotgun.fgd new file mode 100644 index 000000000..62bdd25b9 --- /dev/null +++ b/fgd/point/item/item_ammo_shotgun.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseMesaPickup) + appliesto(Mesa) + studio("models/weapons/w_shotbox.mdl") += item_ammo_shotgun : "Shotgun Shells" + [ + ] diff --git a/fgd/point/item/item_ammo_smg1.fgd b/fgd/point/item/item_ammo_smg1.fgd index 2495150af..e9378d6b3 100644 --- a/fgd/point/item/item_ammo_smg1.fgd +++ b/fgd/point/item/item_ammo_smg1.fgd @@ -1,5 +1,5 @@ -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) studio("models/items/BoxMRounds.mdl") = item_ammo_smg1: "Box of SMG1 ammo" [ diff --git a/fgd/point/item/item_ammo_smg1_grenade.fgd b/fgd/point/item/item_ammo_smg1_grenade.fgd index 5fc455926..f58b1f470 100644 --- a/fgd/point/item/item_ammo_smg1_grenade.fgd +++ b/fgd/point/item/item_ammo_smg1_grenade.fgd @@ -1,6 +1,6 @@ - -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/AR2_Grenade.mdl") = item_ammo_smg1_grenade: "SMG1 Grenade" + studio("models/items/AR2_Grenade.mdl") += item_ammo_smg1_grenade: "SMG1's grenade ammo." [ ] diff --git a/fgd/point/item/item_ammo_smg1_large.fgd b/fgd/point/item/item_ammo_smg1_large.fgd index 36b83d154..d41872a17 100644 --- a/fgd/point/item/item_ammo_smg1_large.fgd +++ b/fgd/point/item/item_ammo_smg1_large.fgd @@ -1,6 +1,5 @@ - -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/LargeBoxMRounds.mdl") = item_ammo_smg1_large: "Large Box of SMG1 ammo" + studio("models/items/boxmrounds.mdl") = item_ammo_smg1_large: "Large Box of SMG1 ammo" [ ] diff --git a/fgd/point/item/item_ar2_grenade.fgd b/fgd/point/item/item_ar2_grenade.fgd new file mode 100644 index 000000000..2a66f4976 --- /dev/null +++ b/fgd/point/item/item_ar2_grenade.fgd @@ -0,0 +1,6 @@ +@PointClass base(ItemAmmo) + appliesto(EP1, EP2, HL2, P1, ASW) + studio("models/items/AR2_Grenade.mdl") += item_ar2_grenade: "Alternate classname for the SMG1 Grenade's ammo." + [ + ] diff --git a/fgd/point/item/item_battery.fgd b/fgd/point/item/item_battery.fgd index df7a670e8..6357cf1fa 100644 --- a/fgd/point/item/item_battery.fgd +++ b/fgd/point/item/item_battery.fgd @@ -1,6 +1,9 @@ +@BaseClass appliesto(-mesa) studio("models/items/battery.mdl") = _item_battery_hl2 [] +@BaseClass appliesto(+mesa) studio("models/weapons/w_battery.mdl") = _item_battery_mesa [] -@PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/battery.mdl") = item_battery: "HEV battery" +@PointClass base(Item, BaseMesaPickup) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) + base(_item_battery_hl2, _item_battery_mesa) += item_battery: "HEV battery" [ ] diff --git a/fgd/point/item/item_box_buckshot.fgd b/fgd/point/item/item_box_buckshot.fgd index 94963b28f..b2e017b2d 100644 --- a/fgd/point/item/item_box_buckshot.fgd +++ b/fgd/point/item/item_box_buckshot.fgd @@ -1,6 +1,6 @@ -@PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) +@PointClass base(ItemAmmo) + appliesto(EP1, EP2, HL2, P1) studio("models/items/BoxBuckshot.mdl") = item_box_buckshot: "Box Buckshot" [ ] diff --git a/fgd/point/item/item_box_lrounds.fgd b/fgd/point/item/item_box_lrounds.fgd new file mode 100644 index 000000000..4d57d9b52 --- /dev/null +++ b/fgd/point/item/item_box_lrounds.fgd @@ -0,0 +1,5 @@ +@PointClass base(item_ammo_ar2) + appliesto(EP1, EP2, HL2, P1) += item_box_lrounds: "Alternate classname for a magazine of AR2 ammo." + [ + ] diff --git a/fgd/point/item/item_box_mrounds.fgd b/fgd/point/item/item_box_mrounds.fgd new file mode 100644 index 000000000..7728d0f7c --- /dev/null +++ b/fgd/point/item/item_box_mrounds.fgd @@ -0,0 +1,5 @@ +@PointClass base(item_ammo_smg1) + appliesto(EP1, EP2, HL2, P1) += item_box_mrounds: "Alternate classname for a box of SMG1 ammo." + [ + ] diff --git a/fgd/point/item/item_box_srounds.fgd b/fgd/point/item/item_box_srounds.fgd new file mode 100644 index 000000000..829c8e8ae --- /dev/null +++ b/fgd/point/item/item_box_srounds.fgd @@ -0,0 +1,5 @@ +@PointClass base(item_ammo_pistol) + appliesto(EP1, EP2, HL2, P1) += item_box_srounds: "Alternate classname for a box of pistol ammo." + [ + ] diff --git a/fgd/point/item/item_crate.fgd b/fgd/point/item/item_crate.fgd new file mode 100644 index 000000000..0e0e5980e --- /dev/null +++ b/fgd/point/item/item_crate.fgd @@ -0,0 +1,28 @@ +@PointClass base(BasePropPhysics, DamageFilter) appliesto(Mesa) += item_crate : "Item Grate" + [ + model(studio) : "Model" : "models/items/item_item_crate.mdl" : "Model to use for the crate." + + scriptpreset[engine](string) : "Script Preset" : "" + scriptpreset(choices) : "Script preset" : "" : "Spawn entities using a section from /scripts/proplist.txt" = + [ + "canteen" : "canteen" + "joke" : "joke" + "junk" : "junk" + "lab" : "lab" + "lab2" : "lab2" + "military" : "military" + "military_big" : "military_big" + "office" : "office" + "tech" : "tech" + "tech2" : "tech2" + "cleaning_products" : "cleaning_products" + "paint_supplies" : "paint_supplies" + "books_small" : "books_small" + "books_large" : "books_large" + "snacks" : "snacks" + "computer_supplies" : "computer_supplies" + "tools" : "tools" + ] + spawnonbreak(string) : "Spawn on break" : "" : "Spawn entities using a comma separated list." + ] diff --git a/fgd/point/item/item_dynamic_resupply.fgd b/fgd/point/item/item_dynamic_resupply.fgd index 15424f31f..140a3e40e 100644 --- a/fgd/point/item/item_dynamic_resupply.fgd +++ b/fgd/point/item/item_dynamic_resupply.fgd @@ -1,32 +1,57 @@ - @PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/healthkit.mdl") = item_dynamic_resupply: "A dynamic item. When the player enters the PVS of this entity, it will determine the item most needed by the player, spawn one of those items, and remove itself. To determine which item the player most needs, it calculates which of the Desired Health/Armor/Ammo ratios the player is farthest from.\n\nIf the player is above all the desired levels, then no item will be spawned, unless this item_dynamic_resupply was created by an item_item_crate. In that case, a random piece of ammo used by a weapon, that the player has, will be spawned. If the 'Fallback to Health Vial' spawnflag is set, a health vial will be spawned instead of the ammo.\n\nBy default, the item_dynamic_resupply uses the values inside the Master resupply, instead of using it's own values. This makes it easy to tweak the desired loadout of many resupplies. The BecomeMaster input allows you to switch Masters dynamically as the level progresses." + appliesto(EP1, EP2, HL2, P1) + iconsprite("editor/item_dynamic_resupply.vmt") += item_dynamic_resupply: "A dynamic item. When the player enters the PVS of this entity, " + + "it will determine the item most needed by the player, spawn one of those items, and remove itself. " + + "To determine which item the player most needs, it calculates which of the Desired Health/Armor/Ammo ratios the player is farthest from." + + "\n\n" + + "If the player is above all the desired levels, then no item will be spawned, " + + "unless the 'Spawn Even if Full' spawnflag is set or the item_dynamic_resupply was created by an item_item_crate. " + + "In that case, a random piece of ammo used by a weapon, that the player has, will be spawned. " + + "If the 'Fallback to Health Vial' spawnflag is set, a health vial will be spawned instead of the ammo." + + "\n\n" + + "By default, the item_dynamic_resupply uses the values inside the Master resupply, instead of using it's own values. " + + "This makes it easy to tweak the desired loadout of many resupplies. " + + "The BecomeMaster input allows you to switch Masters dynamically as the level progresses." [ spawnflags(flags) : "spawnflags" = [ 1: "Use Master's values" : 1 2: "Is Master" : 0 + 4: "Spawn Even if Full" : 0 8: "Fallback to Health Vial" : 0 16: "Alternate master" : 0 ] - desiredhealth(float) : "Desired Health Ratio" : 1 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max health." - desiredarmor(float) : "Desired Armor Ratio" : 0.3 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max armor." - desiredammopistol(float) : "Desired Pistol Ammo Ratio" : 0.5 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammosmg1(float) : "Desired SMG1 Ammo Ratio" : 0.5 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammosmg1_grenade(float) : "Desired SMG1 Grenade Ammo Ratio" : 0.1 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammoar2(float) : "Desired AR2 Ammo Ratio" : 0.4 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammobuckshot(float) : "Desired Shotgun Ammo Ratio" : 0.5 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammorpg_round(float) : "Desired RPG Ammo Ratio" : 0 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammogrenade(float) : "Desired Grenade Ammo Ratio" : 0.1 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammo357(float) : "Desired 357 Ammo Ratio" : 0 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammocrossbow(float) : "Desired Crossbow Ammo Ratio" : 0 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." - desiredammoar2_altfire(float) : "Desired AR2 Alt-fire Ammo Ratio" : 0 : "A ratio from 0 to 1. Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredhealth(float) : "Desired Health Ratio" : 1 : "A ratio from 0 to 1." + + "Attempt to fill the player up to this percentage of his max health." + desiredarmor(float) : "Desired Armor Ratio" : 0.3 : "A ratio from 0 to 1." + + "Attempt to fill the player up to this percentage of his max armor." + desiredammopistol(float) : "Desired Pistol Ammo Ratio" : 0.5 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammosmg1(float) : "Desired SMG1 Ammo Ratio" : 0.5 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammosmg1_grenade(float) : "Desired SMG1 Grenade Ammo Ratio" : 0.1 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammoar2(float) : "Desired AR2 Ammo Ratio" : 0.4 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammobuckshot(float) : "Desired Shotgun Ammo Ratio" : 0.5 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammorpg_round(float) : "Desired RPG Ammo Ratio" : 0 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammogrenade(float) : "Desired Grenade Ammo Ratio" : 0.1 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammo357(float) : "Desired 357 Ammo Ratio" : 0 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammocrossbow(float) : "Desired Crossbow Ammo Ratio" : 0 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." + desiredammoar2_altfire(float) : "Desired AR2 Alt-fire Ammo Ratio" : 0 : "A ratio from 0 to 1. " + + "Attempt to fill the player up to this percentage of his max ammo carrying capacity." // Inputs input CalculateType(void) : "Force the dynamic resupply to calculate which item it should spawn." - input BecomeMaster(void) : "Make this resupply the master resupply. All other resupplies set to Use Master's Values will now use this resupply's values." + input BecomeMaster(void) : "Make this resupply the master resupply. " + + "All other resupplies set to Use Master's Values will now use this resupply's values." // Outputs output OnItem(ehandle) : "Fired with each item created by this box." diff --git a/fgd/point/item/item_grenade_mp5.fgd b/fgd/point/item/item_grenade_mp5.fgd new file mode 100644 index 000000000..605589418 --- /dev/null +++ b/fgd/point/item/item_grenade_mp5.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseMesaPickup) + appliesto(Mesa) + studio("models/weapons/w_argrenade.mdl") += item_grenade_mp5 : "MP5 Grenades" + [ + ] diff --git a/fgd/point/item/item_grenade_rpg.fgd b/fgd/point/item/item_grenade_rpg.fgd new file mode 100644 index 000000000..a97579c29 --- /dev/null +++ b/fgd/point/item/item_grenade_rpg.fgd @@ -0,0 +1,6 @@ +@PointClass base(BaseMesaPickup) + appliesto(Mesa) + studio("models/weapons/w_rpgammo.mdl") += item_grenade_rpg : "RPG Round" + [ + ] diff --git a/fgd/point/item/item_grubnugget.fgd b/fgd/point/item/item_grubnugget.fgd new file mode 100644 index 000000000..f2288e672 --- /dev/null +++ b/fgd/point/item/item_grubnugget.fgd @@ -0,0 +1,12 @@ +@PointClass base(Item) + appliesto(EP2) + studio("models/grub_nugget_medium.mdl") = item_grubnugget: "Small nuggets dropped by Antlion Grubs. " + + "When manually spawned, the size value is not setup so they appear small, but give medium health." + [ + //denomination[engine](integer) : "Denomination" : 1 + //denomination[MBase](choices) : "Denomination" : 1 : "Specify the size of the grub nugget." = [ + // 1: "Small" + // 2: "Medium" + // 3: "Large" + // ] + ] diff --git a/fgd/point/item/item_healthcharger.fgd b/fgd/point/item/item_healthcharger.fgd index 13e9e2fea..0f00e0d24 100644 --- a/fgd/point/item/item_healthcharger.fgd +++ b/fgd/point/item/item_healthcharger.fgd @@ -1,13 +1,33 @@ +// Modified models with no animations, so it doesn't loop +// constantly. +@BaseClass appliesto(-Mesa, -MBase) studio("models/editor/item_health_charger_hl2.mdl") = _item_healthcharger_hl2 [] +@BaseClass appliesto(+Mesa) studio("models/editor/item_health_charger_mesa.mdl") = _item_healthcharger_mesa [] +@BaseClass appliesto(+MBase) studio() = _item_healthcharger_settable [] -@PointClass base(BaseEntityAnimating, BaseFadeProp) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/props_combine/health_charger001.mdl") = item_healthcharger: "Health Charger" +@PointClass base(BaseEntityAnimating) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) + base(_item_healthcharger_mesa, _item_healthcharger_hl2, _item_healthcharger_settable) += item_healthcharger: "Health Charger" [ - _minlight(string) : "Minimum light level" + // Unfortunately can't use the custom model then... + model[MBase](studio) : "Model" : "models/props_combine/health_charger001.mdl" : "Set a custom model for the health charger." - Charge[MBase](integer) : "Juice" : 0 : "Overrides the amount of suit power this charger contains. Use 0 for the default charge, which is usually the maximum juice. Use -1 if you want the charger to start empty." - MaxCharge[MBase](integer) : "Max Juice" : 0 : "Overrides the maximum suit power this charger contains. Use 0 for the default charge, 75." - SetIncrementValue[MBase](integer) : "Increment Health" : 0 : "How much charge should be given each 'increment', or each tenth-of-a-second interval in which the player is given health while using this charger. Juice is also decreased accordingly. Use 0 for the default increment, 1." + charge[Mesa](float) : "Charge" : 50 : "How full the charger should be (0 - 100)" + skintype[engine](integer) : "Skin Type" : 0 + skintype[Mesa](choices) : "Force Skin" : 0 = + [ + "0" : "None" + "1" : "Clean" + "2" : "Dirty" + ] + + Charge[MBase](integer) : "Juice" : 0 : "Overrides the amount of health this charger contains. " + + "Use 0 for the default charge, which is usually the maximum juice. Use -1 if you want the charger to start empty." + MaxCharge[MBase](integer) : "Max Juice" : 0 : "Overrides the maximum health this charger contains. " + + "Use 0 for the default charge, 75." + SetIncrementValue[MBase](integer) : "Increment Health" : 0 : "How much charge should be given each 'increment', " + + "or each tenth-of-a-second interval in which the player is given health while using this charger. " + + "Juice is also decreased accordingly. Use 0 for the default increment, 1." // Inputs input Recharge[MBase](void) : "Recharge to full" @@ -15,11 +35,14 @@ input SetChargeNoMax[MBase](float) : "Sets the charger's current juice without doing anything with the maximum." input SetIncrementValue[MBase](integer) : "Sets the charger's increment value." + input Enable[Mesa](void) : "Enable" + input Disable[Mesa](void) : "Disable" // Outputs output OutRemainingHealth(float) : "Remaining Health." - output OnHalfEmpty[MBase](void) : "Half-Empty" - output OnEmpty[MBase](void) : "Empty" - output OnFull[MBase](void) : "Recharged to full." - output OnPlayerUse(void) : "Fired when the player +USEs the charger." + output OnHalfEmpty[Mesa, MBase](void) : "Half-Empty" + output OnEmpty[Mesa, MBase](void) : "Empty" + output OnFull[Mesa, MBase](void) : "Recharged to full." + output OnPlayerUse[-Mesa](void) : "Fired when the player +USEs the charger." + output OnUse[+Mesa](void) : "Fired when the player +USEs the charger." ] diff --git a/fgd/point/item/item_healthkit.fgd b/fgd/point/item/item_healthkit.fgd index e908c3e37..989e77a7d 100644 --- a/fgd/point/item/item_healthkit.fgd +++ b/fgd/point/item/item_healthkit.fgd @@ -1,6 +1,10 @@ +@BaseClass appliesto(-mesa) studio("models/items/healthkit.mdl") = _item_healthkit_fixed [] +@BaseClass appliesto(+mesa) studio() = _item_healthkit_settable [] -@PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/healthkit.mdl") = item_healthkit: "Small Health Kit" +@PointClass base(Item, BaseMesaPickup) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) + base(_item_healthkit_fixed, _item_healthkit_settable) += item_healthkit: "Small Health Kit" [ + model[Mesa](studio): "Model" : "models/weapons/w_medkit.mdl" : "Model to use for the medkit." ] diff --git a/fgd/point/item/item_healthvial.fgd b/fgd/point/item/item_healthvial.fgd index 2de69b9d3..54ccdbb1d 100644 --- a/fgd/point/item/item_healthvial.fgd +++ b/fgd/point/item/item_healthvial.fgd @@ -1,6 +1,5 @@ - @PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) studio("models/healthvial.mdl") = item_healthvial: "Personal Health Kit" [ ] diff --git a/fgd/point/item/item_large_box_lrounds.fgd b/fgd/point/item/item_large_box_lrounds.fgd new file mode 100644 index 000000000..d8c2a2176 --- /dev/null +++ b/fgd/point/item/item_large_box_lrounds.fgd @@ -0,0 +1,5 @@ +@PointClass base(item_ammo_ar2_large) + appliesto(EP1, EP2, HL2, P1, ASW) += item_large_box_lrounds: "Alternate name for a large cartridge of AR2 ammo." + [ + ] diff --git a/fgd/point/item/item_large_box_mrounds.fgd b/fgd/point/item/item_large_box_mrounds.fgd new file mode 100644 index 000000000..ee35c1b2b --- /dev/null +++ b/fgd/point/item/item_large_box_mrounds.fgd @@ -0,0 +1,5 @@ +@PointClass base(item_ammo_smg1_large) + appliesto(EP1, EP2, HL2, P1, ASW) += item_large_box_mrounds: "Alternate classname for a large box of SMG1 ammo." + [ + ] diff --git a/fgd/point/item/item_large_box_srounds.fgd b/fgd/point/item/item_large_box_srounds.fgd new file mode 100644 index 000000000..38ad155d5 --- /dev/null +++ b/fgd/point/item/item_large_box_srounds.fgd @@ -0,0 +1,5 @@ +@PointClass base(item_ammo_pistol_large) + appliesto(EP1, EP2, HL2, P1, ASW) += item_large_box_srounds: "Alternate classname for a large box of Pistol ammo." + [ + ] diff --git a/fgd/point/item/item_longjump.fgd b/fgd/point/item/item_longjump.fgd new file mode 100644 index 000000000..56e0772cd --- /dev/null +++ b/fgd/point/item/item_longjump.fgd @@ -0,0 +1,5 @@ +@PointClass base(BaseMesaPickup) appliesto(Mesa) + studio("models/weapons/w_longjump.mdl") += item_longjump: "Longjump Module" + [ + ] diff --git a/fgd/point/item/item_mesa_weapons.fgd b/fgd/point/item/item_mesa_weapons.fgd new file mode 100644 index 000000000..bb597d39d --- /dev/null +++ b/fgd/point/item/item_mesa_weapons.fgd @@ -0,0 +1,14 @@ +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_357.mdl") = item_weapon_357 : "357 Revolver" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_crowbar.mdl") = item_weapon_crowbar : "Crowbar" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_crossbow.mdl") = item_weapon_crossbow : "Crossbow" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_grenade.mdl") = item_weapon_frag : "Frag Grenade" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_glock.mdl") = item_weapon_glock : "Glock-18 Handgun" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_egon_pickup.mdl") = item_weapon_gluon : "Gluon Gun" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_hgun.mdl") = item_weapon_hivehand : "Hivearm" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_mp5.mdl") = item_weapon_mp5 : "MP5 Submachinegun" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_shotgun.mdl") = item_weapon_shotgun : "SPAS-12 Shotgun" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_rpg.mdl") = item_weapon_rpg : "RPG" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_satchel.mdl") = item_weapon_satchel : "Satchel Charge" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/xenians/snarknest.mdl") = item_weapon_snark : "Snarks" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_gauss.mdl") = item_weapon_tau : "Tau Cannon" [] +@PointClass appliesto(Mesa) autovis(Weapons, Mesa Weapons) base(BaseMesaPickup) studio("models/weapons/w_tripmine.mdl") = item_weapon_tripmine : "Tripmine" [] diff --git a/fgd/point/item/item_nugget.fgd b/fgd/point/item/item_nugget.fgd index f9dd7c36a..c3d3f25dd 100644 --- a/fgd/point/item/item_nugget.fgd +++ b/fgd/point/item/item_nugget.fgd @@ -4,7 +4,8 @@ [ groupname(string) : "Group Name" : : "Giving nuggets a group name hints the game that they are intended to be a group" respawntime(float) : "Respawn Time" : 30 : "Number of seconds between when a nugget is collected and when it respawns" - pointvalue(choices) : "Point Value" : "1" = + pointvalue[engine](integer) : "Point Value" : 1 + pointvalue(choices) : "Point Value" : 1 = [ 1: "1" 5: "5" diff --git a/fgd/point/item/item_rpg_round.fgd b/fgd/point/item/item_rpg_round.fgd index dd0f5a7eb..f312e455d 100644 --- a/fgd/point/item/item_rpg_round.fgd +++ b/fgd/point/item/item_rpg_round.fgd @@ -1,4 +1,4 @@ -@PointClass base(Item) +@PointClass base(ItemAmmo) appliesto(EP1, EP2, HL2, P1, ASW) studio("models/weapons/w_missile_closed.mdl") = item_rpg_round: "RPG Round" [ diff --git a/fgd/point/item/item_sodacan.fgd b/fgd/point/item/item_sodacan.fgd new file mode 100644 index 000000000..d3368e1fc --- /dev/null +++ b/fgd/point/item/item_sodacan.fgd @@ -0,0 +1,4 @@ +@PointClass base(BaseEntityAnimating) + studio("models/can.mdl") = item_sodacan : "HL1 soda can." + [ + ] diff --git a/fgd/point/item/item_suit.fgd b/fgd/point/item/item_suit.fgd index 275d44bc1..11f342a70 100644 --- a/fgd/point/item/item_suit.fgd +++ b/fgd/point/item/item_suit.fgd @@ -1,10 +1,14 @@ -@PointClass base(Item) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/items/hevsuit.mdl") = item_suit: "HEV Suit" +@BaseClass appliesto(-mesa) studio("models/items/hevsuit.mdl") = _item_hev_suit_hl2 [] +@BaseClass appliesto(+mesa) studio("models/props_am/hev_suit.mdl") = _item_hev_suit_mesa [] + +@PointClass base(Item, BaseMesaPickup) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) + base(_item_hev_suit_hl2, _item_hev_suit_mesa) += item_suit: "HEV Suit" [ spawnflags(flags) : "spawnflags" = [ - 1: "Short Logon" : 0 + 1: "Short Logon" : 0 [-Mesa] + 131072 : "Boot Sequence" : 0 [+Mesa] ] - ] diff --git a/fgd/point/item/item_suitcharger.fgd b/fgd/point/item/item_suitcharger.fgd index fb59f4e9c..228380153 100644 --- a/fgd/point/item/item_suitcharger.fgd +++ b/fgd/point/item/item_suitcharger.fgd @@ -1,22 +1,53 @@ -@PointClass base(BaseEntityAnimating) - appliesto(EP1, EP2, HL2, P1, ASW) - studio("models/props_combine/suit_charger001.mdl") = item_suitcharger: "Battery recharger" +// Modified models with no animations, so it doesn't loop +// constantly. +@BaseClass appliesto(-Mesa, -MBase) studio("models/editor/item_suit_charger_hl2.mdl") = _item_suitcharger_hl2 [] +@BaseClass appliesto(+Mesa) studio("models/editor/item_suit_charger_mesa.mdl") = _item_suitcharger_mesa [] +@BaseClass appliesto(+MBase) studio() = _item_suitcharger_settable [] + +@PointClass base(BaseEntityAnimating, _item_suitcharger_hl2, _item_suitcharger_mesa, _item_suitcharger_settable) + appliesto(EP1, EP2, HL2, P1, ASW, Mesa) += item_suitcharger: "HEV recharger" [ - _minlight(string) : "Minimum light level" - spawnflags(flags) : "spawnflags" = + // Unfortunately can't use the custom model then... + model[MBase](studio) : "Model" : "models/props_combine/suit_charger001.mdl" + + charge[Mesa](float) : "Charge" : 75 : "How full the charger should be (0 - 100)" + skintype[engine](integer) : "Skin Type" : 0 + skintype[Mesa](choices) : "Force Skin" : 0 = [ - 8192: "Citadel recharger" : 0 - 16384: "Kleiner's recharger" : 0 + "0" : "None" + "1" : "Clean" + "2" : "Dirty" ] + Charge[MBase](integer) : "Juice" : 0 : "Overrides the amount of suit power this charger contains. " + + "Use 0 for the default charge, which is usually the maximum juice. Use -1 if you want the charger to start empty." + MaxCharge[MBase](integer) : "Max Juice" : 0 : "Overrides the maximum suit power this charger contains. " + + "Use 0 for the default charge, 75/25/500 depending on spawnflags." + SetIncrementValue[MBase](integer) : "Increment Amount" : 0 : "How much charge should be given each 'increment', " + + "or each tenth-of-a-second interval in which the player is given armor while using this charger. " + + "Juice is also decreased accordingly. Use 0 for the default increment, 1." + + spawnflags[!Mesa](flags) : "spawnflags" = + [ + 8192: "Citadel recharger (overcharge to 200% + heal)" : 0 + 16384: "Kleiner's recharger (25% charge)" : 0 + ] // Inputs - input Recharge(void) : "Recharge to full" + input Recharge[!Mesa](void) : "Recharge to full" + input SetCharge[!Mesa](int) : "Sets the *maximum* charge, refilling the charger in the process." + input SetChargeNoMax[MBase](float) : "Sets the charger's current juice without doing anything with the maximum." + input SetIncrementValue[MBase](integer) : "Sets the charger's increment value." + + input Enable[Mesa](void) : "Enable" + input Disable[Mesa](void) : "Disable" // Outputs - output OutRemainingCharge(float) : "Remaining Charge." + output OutRemainingCharge[!Mesa](float) : "Remaining Charge." output OnHalfEmpty(void) : "Half-Empty" output OnEmpty(void) : "Empty" output OnFull(void) : "Recharged to full." - output OnPlayerUse(void) : "Fired when the player +USEs the charger." + output OnPlayerUse[-Mesa](void) : "Fired when the player +USEs the charger." + output OnUse[+Mesa](void) : "Fired when the player +USEs the charger." ] diff --git a/fgd/point/item/item_tow_missile.fgd b/fgd/point/item/item_tow_missile.fgd new file mode 100644 index 000000000..a6034572a --- /dev/null +++ b/fgd/point/item/item_tow_missile.fgd @@ -0,0 +1,5 @@ +@PointClass base(BasePropPhysics, DamageFilter) appliesto(Mesa) + studio("models/props_marines/tow_missile_projectile.mdl") += item_tow_missile : "TOW Missile" + [ + ] diff --git a/fgd/point/keyframe/keyframe_rope.fgd b/fgd/point/keyframe/keyframe_rope.fgd index 928712197..ba9d64c15 100644 --- a/fgd/point/keyframe/keyframe_rope.fgd +++ b/fgd/point/keyframe/keyframe_rope.fgd @@ -1,12 +1,13 @@ // Valve originally had move_rope and keyframe_rope, intended in that order. // Engine-wise they're exactly identical. -// So we want to combine the logic, but Hammer still thinks they're the same. +// So we want to combine the definitions, so Hammer behaves the same with them. // It only detects @MoveClass, so we're alright not using @KeyFrameClass. //@MoveClass and animator() is required to allow them to be the first in a chain. -// keyframe() automatically renames when copied. +// keyframe() causes them to automatically rename when copied. @MoveClass base(BaseEntityPoint, RopeKeyFrame) studio("models/editor/axis_helper_thick.mdl") + iconsprite("editor/keyframe_rope") animator() keyframe() = keyframe_rope: "A node entity that marks a point in a rope. " + "Traditionally, one move_rope is used to start the chain and then is followed by one or more keyframe_rope entities. " + diff --git a/fgd/point/logic/logic_achievement.fgd b/fgd/point/logic/logic_achievement.fgd index 9753d2c70..03b501b19 100644 --- a/fgd/point/logic/logic_achievement.fgd +++ b/fgd/point/logic/logic_achievement.fgd @@ -8,6 +8,139 @@ achievementevent(string) : "Achievement Event" : : "Named event is sent to the achievement system when this entity receives a 'FireEvent' input." + achievementevent[Mesa](choices) : "Achievement Event" : 0 : "Named event is sent to the achievement system when this entity receives a 'FireEvent' input." = + [ + "ACHIEVEMENT_EVENT_BMS_FLAVOR_TRANSFORMATION" : "Flavor Transormation - Ruin the microwave casserole" + "ACHIEVEMENT_EVENT_BMS_PRESS_THEIR_BUTTONS" : "Press Their Buttons - Interfere with the alarm and laptop in Anomalous Materials" + "ACHIEVEMENT_EVENT_BMS_BROWN_MOTION" : "Brownian Motion - Pass the Toiletpaper to the Scientist in need" + "ACHIEVEMENT_EVENT_BMS_RESONANCE_PROCRASTINATOR" : "Resonance Procrastinator - Refuse to insert the specimen into the Anti-Mass Spectrometer" + "ACHIEVEMENT_EVENT_BMS_CAFFEINE_FREAK" : "Caffeine Extraction - Extract soda from 20 machines" + "ACHIEVEMENT_EVENT_BMS_PERMEABLE_INFRASTRUCTURE" : "Permeable Infrastructure - Use the alternate path in Office Complex" + "ACHIEVEMENT_EVENT_BMS_RARE_SPECIMEN" : "Rare Specimen - Send the Hidden Hat to Xen" + "ACHIEVEMENT_EVENT_BMS_BMS_HYPER_SATURATION_CONUNDRUM" : "Hyper Saturation Conundrum - Drown in Lambda Core's coolant" + "ACHIEVEMENT_EVENT_BMS_EQ_EHT_TEST" : "EQ - EHT test" + "ACHIEVEMENT_EVENT_BMS_EQ_SNARK_TEST" : "EQ - Snark test" + "ACHIEVEMENT_EVENT_BMS_EQ_ZAPPER_TEST" : "EQ - Zapper test" + "ACHIEVEMENT_EVENT_BMS_EQ_CES_TEST" : "EQ - CES test" + "ACHIEVEMENT_EVENT_BMS_EQ_PRIMELASER_TEST" : "EQ - Prime laser" + + "ACHIEVEMENT_EVENT_BMS_PROFILIC_POPPER" :"ACHIEVEMENT_EVENT_BMS_PROFILIC_POPPER" + "ACHIEVEMENT_EVENT_BMS_PHD_c4a3a" :"ACHIEVEMENT_EVENT_BMS_PHD_c4a3a" + "ACHIEVEMENT_EVENT_BMS_PHD_c4a3b" :"ACHIEVEMENT_EVENT_BMS_PHD_c4a3b" + "ACHIEVEMENT_EVENT_BMS_PHD_c4a3b1" :"ACHIEVEMENT_EVENT_BMS_PHD_c4a3b1" + "ACHIEVEMENT_EVENT_BMS_PHD_c4a3b2" :"ACHIEVEMENT_EVENT_BMS_PHD_c4a3b2" + "ACHIEVEMENT_EVENT_BMS_PHD_c4a3c" :"ACHIEVEMENT_EVENT_BMS_PHD_c4a3c" + "ACHIEVEMENT_EVENT_BMS_PHD_c4a3c1" :"ACHIEVEMENT_EVENT_BMS_PHD_c4a3c1" + "ACHIEVEMENT_EVENT_BMS_PHD_c4a3c2" :"ACHIEVEMENT_EVENT_BMS_PHD_c4a3c2" + "ACHIEVEMENT_EVENT_BMS_RAREREST_SPECIMEN" :"ACHIEVEMENT_EVENT_BMS_RAREREST_SPECIMEN" + "ACHIEVEMENT_EVENT_BMS_ONE_STEP_AHEAD" :"ACHIEVEMENT_EVENT_BMS_ONE_STEP_AHEAD" + + "ACHIEVEMENT_EVENT_BMS_ONE_STEALTH_TECH" :"ACHIEVEMENT_EVENT_BMS_ONE_STEALTH_TECH" + "ACHIEVEMENT_EVENT_BMS_XEN_WEN" :"ACHIEVEMENT_EVENT_BMS_XEN_WEN" + "ACHIEVEMENT_EVENT_BMS_BRAIN_BRAWN" :"ACHIEVEMENT_EVENT_BMS_BRAIN_BRAWN" + "ACHIEVEMENT_EVENT_BMS_LESS_THAN_DES_CONSEQUENCES" :"ACHIEVEMENT_EVENT_BMS_LESS_THAN_DES_CONSEQUENCES" + + "ACHIEVEMENT_EVENT_BMS_ORBITAL_TRAJ" :"ACHIEVEMENT_EVENT_BMS_ORBITAL_TRAJ" + "ACHIEVEMENT_EVENT_BMS_FOLLOWING_RULES" :"ACHIEVEMENT_EVENT_BMS_FOLLOWING_RULES" + + "ACHIEVEMENT_EVENT_BMS_DOCTORS_SIGN" :"Doctor's Signature" + "ACHIEVEMENT_EVENT_BMS_GLIDER" :"ACHIEVEMENT_EVENT_BMS_GLIDER" + "ACHIEVEMENT_EVENT_BMS_PM_1" :"Post Mortem 1" + "ACHIEVEMENT_EVENT_BMS_PM_2" :"Post Mortem 2" + "ACHIEVEMENT_EVENT_BMS_PM_3" :"Post Mortem 3" + "ACHIEVEMENT_EVENT_BMS_PM_4" :"Post Mortem 4" + "ACHIEVEMENT_EVENT_BMS_PM_5" :"Post Mortem 5" + "ACHIEVEMENT_EVENT_BMS_PM_6" :"Post Mortem 6" + "ACHIEVEMENT_EVENT_BMS_PM_7" :"Post Mortem 7" + "ACHIEVEMENT_EVENT_BMS_THE_PLAN" :"ACHIEVEMENT_EVENT_BMS_THE_PLAN" + "ACHIEVEMENT_EVENT_BMS_UNQUES_ETHICAL" :"ACHIEVEMENT_EVENT_BMS_UNQUES_ETHICAL" + + "ACHIEVEMENT_EVENT_BMS_CONTEST_PROPELLENT" :"ACHIEVEMENT_EVENT_BMS_CONTEST_PROPELLENT" + "ACHIEVEMENT_EVENT_BMS_LASER_IMMUNIZATION" :"ACHIEVEMENT_EVENT_BMS_LASER_IMMUNIZATION" + "ACHIEVEMENT_EVENT_BMS_DECATHLON_WIN_ACTIVATION" :"ACHIEVEMENT_EVENT_BMS_DECATHLON_WIN_ACTIVATION" + "ACHIEVEMENT_EVENT_BMS_DECATHLON_WIN_EVALUATION" :"ACHIEVEMENT_EVENT_BMS_DECATHLON_WIN_EVALUATION" + "ACHIEVEMENT_EVENT_BMS_ANTI_MATTER_OVER_MIND" :"ACHIEVEMENT_EVENT_BMS_ANTI_MATTER_OVER_MIND" + + "ACHIEVEMENT_EVENT_BMS_SPECIMEN_GG" :"Specimen GG" + "ACHIEVEMENT_EVENT_BMS_LATE_FOR_WORK" :"Late For Work" + + "ACHIEVEMENT_EVENT_BMS_LIMITLES_POTENTIAL" :"Limitless Potential" + "ACHIEVEMENT_EVENT_BMS_ANTICLIMAX" :"ACHIEVEMENT_EVENT_BMS_ANTICLIMAX" + "ACHIEVEMENT_EVENT_BMS_PRECIPITATION" :"ACHIEVEMENT_EVENT_BMS_PRECIPITATION" + + "ACHIEVEMENT_EVENT_BMS_PROFILIC_0" : "Prolific: 0" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_1" : "Prolific: 1" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_2" : "Prolific: 2" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_3" : "Prolific: 3" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_4" : "Prolific: 4" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_5" : "Prolific: 5" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_6" : "Prolific: 6" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_7" : "Prolific: 7" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_8" : "Prolific: 8" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_9" : "Prolific: 9" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_10" : "Prolific: 10" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_11" : "Prolific: 11" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_12" : "Prolific: 12" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_13" : "Prolific: 13" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_14" : "Prolific: 14" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_15" : "Prolific: 15" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_16" : "Prolific: 16" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_17" : "Prolific: 17" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_18" : "Prolific: 18" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_19" : "Prolific: 19" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_20" : "Prolific: 20" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_21" : "Prolific: 21" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_22" : "Prolific: 22" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_23" : "Prolific: 23" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_24" : "Prolific: 24" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_25" : "Prolific: 25" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_26" : "Prolific: 26" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_27" : "Prolific: 27" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_28" : "Prolific: 28" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_29" : "Prolific: 29" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_30" : "Prolific: 30" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_31" : "Prolific: 31" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_32" : "Prolific: 32" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_33" : "Prolific: 33" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_34" : "Prolific: 34" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_35" : "Prolific: 35" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_36" : "Prolific: 36" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_37" : "Prolific: 37" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_38" : "Prolific: 38" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_39" : "Prolific: 39" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_40" : "Prolific: 40" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_41" : "Prolific: 41" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_42" : "Prolific: 42" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_43" : "Prolific: 43" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_44" : "Prolific: 44" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_45" : "Prolific: 45" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_46" : "Prolific: 46" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_47" : "Prolific: 47" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_48" : "Prolific: 48" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_49" : "Prolific: 49" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_50" : "Prolific: 50" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_51" : "Prolific: 51" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_52" : "Prolific: 52" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_53" : "Prolific: 53" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_54" : "Prolific: 54" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_55" : "Prolific: 55" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_56" : "Prolific: 56" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_57" : "Prolific: 57" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_58" : "Prolific: 58" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_59" : "Prolific: 59" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_60" : "Prolific: 60" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_61" : "Prolific: 61" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_62" : "Prolific: 62" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_63" : "Prolific: 63" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_64" : "Prolific: 64" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_65" : "Prolific: 65" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_66" : "Prolific: 66" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_67" : "Prolific: 67" + "ACHIEVEMENT_EVENT_BMS_PROFILIC_68" : "Prolific: 68" + + "ACHIEVEMENT_EVENT_BMS_STEALTH_TECH" : "ACHIEVEMENT_EVENT_BMS_STEALTH_TECH" + ] + achievementevent[HL2](choices) : "Achievement Event" : : "Named event is sent to the achievement system when this entity receives a 'FireEvent' input." = [ "ACHIEVEMENT_EVENT_HL2_HIT_CANCOP_WITHCAN": "Hit the trashcan cop with the can." @@ -165,6 +298,7 @@ "ACHIEVEMENT_EVENT_PORTAL_TRANSMISSION_RECEIVED": "Transmission Received" ] + // INFRA includes P2 as well, so we need to exclude it. achievementname[P2, -INFRA](choices) : "Achievement Name" : : "The name of the achievement to be awarded when this entity receives a 'FireEvent' input." = [ "ACH.SURVIVE_CONTAINER_RIDE": "Wake Up Call" @@ -329,7 +463,6 @@ "CHAPTER_10_CARLA_AMIT" : "Ch10: Found Carla and Amit" "CHAPTER_10_SNW_ROOM" : "Ch10 - Entered SNW Control Room" - ] // Inputs diff --git a/fgd/point/logic/logic_entity_position.fgd b/fgd/point/logic/logic_entity_position.fgd index 8e8bbff97..ef89738c1 100644 --- a/fgd/point/logic/logic_entity_position.fgd +++ b/fgd/point/logic/logic_entity_position.fgd @@ -5,6 +5,7 @@ = logic_entity_position : "Outputs an entity's position. Prediction operations can be performed as well." [ target(target_destination) : "Target" : "" : "Who's position should be measured? Use the SetTarget input to change mid-game." + PositionType[engine](integer) : "Position Type" : 0 PositionType(choices) : "Position Type" : 0 : "What position should be measured." = [ 0 : "Origin (default)" @@ -23,4 +24,5 @@ // Outputs output OutPosition(vector) : "Outputs the position." + output OutAngles(vector) : "Outputs the angles." ] diff --git a/fgd/point/logic/logic_measure_movement.fgd b/fgd/point/logic/logic_measure_movement.fgd index c9973212e..4f388e371 100644 --- a/fgd/point/logic/logic_measure_movement.fgd +++ b/fgd/point/logic/logic_measure_movement.fgd @@ -34,6 +34,7 @@ 4 : "Ignore Z" : 0 [MBase] 8 : "Use 'Ignore' flags for origin instead of angles" : 0 [MBase] 16 : "Use new teleportation rules (smoother movement)" : 1 [MBase] + 32 : "Don't change target's angles" : 0 [MBase] ] MeasureAttachment[MBase](string) : "Measurement Attachment" : "" : "Only useful for the ''Attachment point'' measurement type. " + diff --git a/fgd/point/logic/logic_modelinfo.fgd b/fgd/point/logic/logic_modelinfo.fgd index 546b963c1..de6e667ef 100644 --- a/fgd/point/logic/logic_modelinfo.fgd +++ b/fgd/point/logic/logic_modelinfo.fgd @@ -5,14 +5,22 @@ = logic_modelinfo : "Gets and outputs some model information from an entity." [ target(target_destination) : "Target" : "" : "The entity whose model will be evaluated." + PoseParameterName(string) : "Pose Parameter Name" : "" : "(Optional) The pose parameter to use for pose parameter-related I/O." // Inputs input SetTarget(target_destination) : "Sets this entity's target." input GetNumSkins(void) : "Gets the number of skins on the target entity." input LookupSequence(string) : "Looks up the specified sequence on the target entity." + input LookupActivity(string) : "Looks up the specified activity on the target entity. " + + "Uses the sequence outputs and outputs the first sequence with the given activity." + + input SetPoseParameterName(string) : "Sets the pose parameter to target." + input SetPoseParameterValue(float) : "Sets the target pose parameter's current value." + input GetPoseParameter(void) : "Gets the current value of the target pose parameter and fires OutPoseParameterValue with it." // Outputs output OutNumSkins(integer) : "Outputs number of skins." output OnHasSequence(integer) : "Fires when the target has the sequence requested. Outputs the sequence's index." output OnLacksSequence(void) : "Fires when the target does not have the sequence requested." + output OutPoseParameterValue(float) : "Fires when the pose parameter value is requested, outputting its current value." ] diff --git a/fgd/point/logic/logic_parent.fgd b/fgd/point/logic/logic_parent.fgd new file mode 100644 index 000000000..8feed8096 --- /dev/null +++ b/fgd/point/logic/logic_parent.fgd @@ -0,0 +1,13 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) + iconsprite("editor/logic_auto.vmt") += logic_parent : "Sets the parent of an entity." + [ + spawnflags(Flags) = + [ + 1 : "Remove on fire" : 1 + 2 : "Teleport child to parent" : 1 + ] + + input ParentEntities(string) : "ParentName ChildName" + output OnFired(void) : "" + ] diff --git a/fgd/point/logic/logic_player_slowtime.fgd b/fgd/point/logic/logic_player_slowtime.fgd deleted file mode 100644 index d009f53ef..000000000 --- a/fgd/point/logic/logic_player_slowtime.fgd +++ /dev/null @@ -1,8 +0,0 @@ -@PointClass base(BaseEntityPoint) appliesto(P2) - = logic_player_slowtime: "Start/stops player being in slow time" - [ - - // Inputs - input StartSlowingTime(float) : "Start slowing time for the player (with a set duration)." - input StopSlowingTime(void) : "Stop slowing time for the player." - ] diff --git a/fgd/point/logic/logic_playerinfo.fgd b/fgd/point/logic/logic_playerinfo.fgd new file mode 100644 index 000000000..1e01bbdac --- /dev/null +++ b/fgd/point/logic/logic_playerinfo.fgd @@ -0,0 +1,15 @@ +@PointClass base(BaseEntityPoint) + color(200 0 0) + iconsprite("editor/logic_playerinfo.vmt") + appliesto(Mbase) += logic_playerinfo: "An entity that gets basic info about a player, or finds a player by their basic info." + [ + input GetPlayerInfo(target_destination) : "Gets player info from the specified entity. " + + "If no entity is passed, this will get the local player." + input GetPlayerByID(string) : "Gets a player by their steam ID. Supports wildcards." + input GetPlayerByName(string) : "Gets a player by their Steam name. Supports wildcards." + + output OutUserID(string) : "Outputs a player's user ID." + output OutPlayerName(string) : "Outputs a player's Steam name." + output OutPlayerEntity(ehandle) : "Outputs a player's entity." + ] diff --git a/fgd/point/logic/logic_playerproxy.fgd b/fgd/point/logic/logic_playerproxy.fgd index 80d6ebf8c..8e8078835 100644 --- a/fgd/point/logic/logic_playerproxy.fgd +++ b/fgd/point/logic/logic_playerproxy.fgd @@ -2,7 +2,8 @@ color(200 0 0) iconsprite("editor/logic_playerproxy.vmt") autovis(Point Entities, Globals, Player Proxy) -= logic_playerproxy: "An entity that is used to relay inputs/ouputs to the player and back to the world." + appliesto(!L4D, !L4D2, !TF2) += logic_playerproxy: "An entity that is used to relay inputs/outputs to the player and back to the world." [ SetMaxInputArmor[MBase](integer) : "Max Input Armor" : 100 : "Sets the maximum armor a player can receive from the " + "AddArmor, RemoveArmor, and SetArmor inputs. " + @@ -39,6 +40,8 @@ input SetMaxInputArmor(integer) : "Sets the maximum armor value that could be set by armor inputs." input LowerWeapon(void) : "Lowers the players weapon." + + input SuppressCrosshair[P1](void) : "Disable the player's crosshair." input EnableCappedPhysicsDamage(void) : "Cause player to take less damage from physics objects, and never more than 30 points from any individual strike." input DisableCappedPhysicsDamage(void) : "Undo effects of EnableCappedPhysicsDamage" diff --git a/fgd/point/logic/logic_register_activator.fgd b/fgd/point/logic/logic_register_activator.fgd index e49356229..c6f3e630c 100644 --- a/fgd/point/logic/logic_register_activator.fgd +++ b/fgd/point/logic/logic_register_activator.fgd @@ -1,5 +1,5 @@ @PointClass base(BaseEntityPoint, EnableDisable) - appliesto(since_P2, MBase) + appliesto(since_P2, MBase, Mesa) color(0 100 250) iconsprite("editor/logic_register_activator") = logic_register_activator: "Stores an entity and sends messages with it as the activator\n" + diff --git a/fgd/point/math/math_counter.fgd b/fgd/point/math/math_counter.fgd index c3f8b9a52..c99162686 100644 --- a/fgd/point/math/math_counter.fgd +++ b/fgd/point/math/math_counter.fgd @@ -6,28 +6,28 @@ "and the OnHitMin/OnHitMax outputs will be fired at the appropriate times. " + "If both min and max are set to zero, no clamping is performed and only the OutValue output will be fired." [ - startvalue(integer) : "Initial Value" : 0 : "Starting value for the counter." - min(integer) : "Minimum Legal Value" : 0 : "Minimum legal value for the counter. If min=0 and max=0, no clamping is performed." - max(integer) : "Maximum Legal Value" : 0 : "Maximum legal value for the counter. If min=0 and max=0, no clamping is performed." + startvalue(float) : "Initial Value" : 0 : "Starting value for the counter." + min(float) : "Minimum Legal Value" : 0 : "Minimum legal value for the counter. If min=0 and max=0, no clamping is performed." + max(float) : "Maximum Legal Value" : 0 : "Maximum legal value for the counter. If min=0 and max=0, no clamping is performed." // Inputs - input Add(integer) : "Add an amount to the counter and fire the OutValue output with the result." - input Divide(integer) : "Divide the counter by an amount and fire the OutValue output with the result." - input Multiply(integer) : "Multiply the counter by an amount and fire the OutValue output with the result." - input SetValue(integer) : "Set the counter to a new value and fire the OutValue output with the result." - input SetValueNoFire(integer) : "Set the counter to a new value without firing any outputs." - input Subtract(integer) : "Subtract an amount from the counter and fire the OutValue output with the result." - input SetHitMax(integer) : "Set the upper bound of the counter and fire the OutValue output with the current value." - input SetHitMin(integer) : "Set the lower bound of the counter and fire the OutValue output with the current value." + input Add(float) : "Add an amount to the counter and fire the OutValue output with the result." + input Divide(float) : "Divide the counter by an amount and fire the OutValue output with the result." + input Multiply(float) : "Multiply the counter by an amount and fire the OutValue output with the result." + input SetValue(float) : "Set the counter to a new value and fire the OutValue output with the result." + input SetValueNoFire(float) : "Set the counter to a new value without firing any outputs." + input Subtract(float) : "Subtract an amount from the counter and fire the OutValue output with the result." + input SetHitMax(float) : "Set the upper bound of the counter and fire the OutValue output with the current value." + input SetHitMin(float) : "Set the lower bound of the counter and fire the OutValue output with the current value." input GetValue(void) : "Causes the counter fire its OnGetValue output with the current value of the counter. Used for polling the counter when you don't" + " want constant updates from the OutValue output." - input SetMaxValueNoFire[since_P2, MBase](integer) : "Set the upper bound of the counter without firing any outputs." - input SetMinValueNoFire[since_P2, MBase](integer) : "Set the lower bound of the counter without firing any outputs." + input SetMaxValueNoFire[since_P2, MBase](float) : "Set the upper bound of the counter without firing any outputs." + input SetMinValueNoFire[since_P2, MBase](float) : "Set the lower bound of the counter without firing any outputs." // Outputs - output OutValue(integer) : "Fired when the counter value changes." + output OutValue(float) : "Fired when the counter value changes." output OnHitMin(void) : "Fired when the counter value meets or goes below the min value. The counter must go back above the min value before the output will fire again." output OnHitMax(void) : "Fired when the counter value meets or exceeds the max value. The counter must go below the max value before the output will fire again." - output OnGetValue(integer) : "Fired in response to the GetValue input. Used for polling the counter when you don't want constant updates from the OutValue output." + output OnGetValue(float) : "Fired in response to the GetValue input. Used for polling the counter when you don't want constant updates from the OutValue output." output OnChangedFromMin[since_ASW, MBase](void) : "Fired when the counter value changes from the minimum value." output OnChangedFromMax[since_ASW, MBase](void) : "Fired when the counter value changes from the max value." ] diff --git a/fgd/point/math/math_counter_advanced.fgd b/fgd/point/math/math_counter_advanced.fgd index 5a5bf7288..4712a9995 100644 --- a/fgd/point/math/math_counter_advanced.fgd +++ b/fgd/point/math/math_counter_advanced.fgd @@ -11,6 +11,8 @@ AlwaysOutputAsInt(boolean) : "Always Output As Int" : 0 : "If set to 'Yes', the stored value (and OutValue) " + "will always be rounded to an integer before firing." + SetLerpPercent(float) : "Lerp Percent" : "0.5" : "The percentage used by the LerpTo input." + // Inputs input PreserveValue(bool): "Sets whether this counter's value should be preserved after calculations. 1 = Yes, 0 = No" input AlwaysOutputAsInt(bool): "Sets whether this counter's value should always output as an integer. 1 = Yes, 0 = No" @@ -33,4 +35,7 @@ input RandomInt(string) : "Generates a random integer between the specified bounds. Format = 'lowerbound upperbound', like '22 65'. Fires the OutValue output with the result." input RandomFloat(string) : "Generates a random float between the specified bounds. Format = 'lowerbound upperbound', like '22.5 48.721'. Fires the OutValue output with the result." + + input LerpTo(float) : "Lerps this counter's value to the specified value based on the lerp percent." + input SetLerpPercent(float) : "Sets the lerp percent." ] diff --git a/fgd/point/math/math_generate.fgd b/fgd/point/math/math_generate.fgd index 9e438cd23..34a8efee7 100644 --- a/fgd/point/math/math_generate.fgd +++ b/fgd/point/math/math_generate.fgd @@ -26,6 +26,8 @@ // Inputs input SetValue(float): "Sets the math_generate to a new value and fires the OutValue output with the result, performing all generation from that value." input SetValueNoFire(float): "Sets the math_generate to a new value without firing any outputs." + input GetValue(void): "Causes the math_generate to fire its OnGetValue output with the current value. " + + "Used for polling the value when you don't want constant updates from the OutValue output." input SetGenerateType(integer) : "Sets the type of generation this math_generate should perform." input Enable(void) : "Enables this entity." @@ -34,4 +36,9 @@ // Outputs output OutValue(string) : "Fires each tick while generation is active, passing the value continuously generated by the math_generate." + output OnHitMin(void) : "Fired when generation meets the min value. Generation must go back above the min value before the output will fire again." + output OnHitMax(void) : "Fired when generation meets the max value. Generation must go below the max value before the output will fire again." + output OnGetValue(float) : "Fired in response to the GetValue input. Used for polling the value when you don't want constant updates from the OutValue output." + output OnChangedFromMin(void) : "Fired when the current generation value changes from the minimum value." + output OnChangedFromMax(void) : "Fired when the current generation value changes from the maximum value." ] diff --git a/fgd/point/math/math_vector.fgd b/fgd/point/math/math_vector.fgd index 465707303..09361e791 100644 --- a/fgd/point/math/math_vector.fgd +++ b/fgd/point/math/math_vector.fgd @@ -5,6 +5,13 @@ [ // Keys startvalue(vector) : "Initial Value" : "0 0 0" : "The vector this entity shuold start with." + + spawnflags(flags) = + [ + 1 : "[1] Disable X" : 0 + 2 : "[2] Disable Y" : 0 + 4 : "[4] Disable Z" : 0 + ] // Inputs input Add(vector) : "Adds a vector to this entity's current value and fires the OutValue output with the result." @@ -15,8 +22,16 @@ input Subtract(vector): "Subtracts a vector from this entity's current value and fires the OutValue output with the result." input GetValue(void): "Causes this entity to fire its OnGetValue output with its current vector. " + "Used for polling the counter when you don't want constant updates from the OutValue output." - + + input PointAtLocation(vector): "Creates an angle pointing from the entity's current vector to the specified point and fires the OutValue output with the result." + input PointAtEntity(target_destination): "Creates an angle pointing from the entity's current vector to the specified entity and fires the OutValue output with the result." + input VectorAngles(void): "Converts this entity's vector to an angle, assuming the current vector is a direction vector. Fires the OutValue output with the result." + input AngleVectorForward(void): "Converts this entity's vector angles to a vector in the forward direction. Fires the OutValue output with the result." + input AngleVectorRight(void): "Converts this entity's vector angles to a vector in the right direction. Fires the OutValue output with the result." + input AngleVectorUp(void): "Converts this entity's vector angles to a vector in the up direction. Fires the OutValue output with the result." + input Normalize(void): "Normalizes this entity's vector and fires the OutValue output with the result." + input NormalizeAngles(void): "Normalizes this entity's vector as angles and fires the OutValue output with the result." input SetX(float) : "Sets this entity's X coordinate." input SetY(float) : "Sets this entity's Y coordinate." diff --git a/fgd/point/matrial_timer.fgd b/fgd/point/matrial_timer.fgd new file mode 100644 index 000000000..9e678c827 --- /dev/null +++ b/fgd/point/matrial_timer.fgd @@ -0,0 +1,12 @@ +@PointClass base(BaseEntityPoint) + appliesto(Mesa) + iconsprite("editor/info_target.vmt") = material_timer + [ + length(float) : "Length" : 30 : "Length" + input start(float) : "Start" + input stop(float) : "Stop" + + output OnStart(void) : "" + output OnStop(void) : "" + output OnFinish(void) : "" + ] diff --git a/fgd/point/misc_dead_hevr.fgd b/fgd/point/misc_dead_hevr.fgd new file mode 100644 index 000000000..3034172fa --- /dev/null +++ b/fgd/point/misc_dead_hevr.fgd @@ -0,0 +1,25 @@ +@PointClass base(BaseEntityAnimating) appliesto(Mesa) += misc_dead_hev : "Dead HEV Scientist" + [ + spawnflags(flags) = + [ + 4 : "Debris - Don't collide with the player or other debris" : 1 + 8192 : "Allow Dissolve" : 0 + 16384 : "Motion Disabled" : 0 + 32768 : "Allow stretch" : 0 + 65536 : "Start asleep" : 0 + ] + + model(studio) : "World Model" : "models/player/mp_scientist_hev.mdl" + spritecolor(color255) : "Ping Sprite/Glow Color" : "255 0 0 200" + lightcolor(color255) : "Ping Light Color" : "255 0 0 4" + lightradius(integer) : "Ping Light Radius" : 64 + attachmentname(string) : "Ping Light Attachment Name" : "eyes" + + health(integer) : "Health" : 100 : "The amount of damage the ragdoll takes before gibbing." + + input StartRagdollBoogie(void) : "Begins ragdoll boogie effect. Parameter override = number of seconds to boogie." + input EnableMotion(void) : "Enable physics motion/collision response." + input DisableMotion(void) : "Disable physics motion/collision response." + input FadeAndRemove(float) : "Fade out then remove (kill) self. Parameter override = duration of fade" + ] diff --git a/fgd/point/misc_marionettist.fgd b/fgd/point/misc_marionettist.fgd new file mode 100644 index 000000000..17f598d4a --- /dev/null +++ b/fgd/point/misc_marionettist.fgd @@ -0,0 +1,40 @@ +@PointClass base(BaseEntityPoint) appliesto(Mesa) += misc_marionettist : "" + [ + innerdestinationradius(integer) : "Inner Destination Radius" : 32 : "" + innerpullspeed(integer) : "Inner Pull Speed" : 448 : "" + + outerdestinationradius(integer) : "Outer Destination Radius" : 128 : "" + outerpullspeed(integer) : "Outer Pull Speed" : 512 : "" + + ignorecollisions(boolean) : "Should Ignore Collisions" : 0 + + target01(target_destination) : "Target [Slot 01]" : "" : "Slot 01." + target02(target_destination) : "Target [Slot 02]" : "" : "Slot 02." + target03(target_destination) : "Target [Slot 03]" : "" : "Slot 03." + target04(target_destination) : "Target [Slot 04]" : "" : "Slot 04." + target05(target_destination) : "Target [Slot 05]" : "" : "Slot 05." + target06(target_destination) : "Target [Slot 06]" : "" : "Slot 06." + target07(target_destination) : "Target [Slot 07]" : "" : "Slot 07." + target08(target_destination) : "Target [Slot 08]" : "" : "Slot 08." + target09(target_destination) : "Target [Slot 09]" : "" : "Slot 09." + target10(target_destination) : "Target [Slot 10]" : "" : "Slot 10." + target11(target_destination) : "Target [Slot 11]" : "" : "Slot 11." + target12(target_destination) : "Target [Slot 12]" : "" : "Slot 12." + target13(target_destination) : "Target [Slot 13]" : "" : "Slot 13." + target14(target_destination) : "Target [Slot 14]" : "" : "Slot 14." + target15(target_destination) : "Target [Slot 15]" : "" : "Slot 15." + target16(target_destination) : "Target [Slot 16]" : "" : "Slot 16." + + soundscriptstart(string) : "SoundScript Start" : "" : "" + soundscriptloop(string) : "SoundScript Loop" : "" : "" + soundscriptend(string) : "SoundScript End" : "" : "" + + input Manipulate(target_destination) : "" + + input SetInnerDestinationRadius(string) : "Set Inner Destination Radius (Time: