Commit Graph

47 Commits

Author SHA1 Message Date
Marco Cawthorne 822a7221b2
WIP pmove, AI, etc. changes 2024-04-22 15:11:12 -07:00
Marco Cawthorne ee60a09eed
infodecal: fix client-side ones always rendering.
Add some more icons for various NSPointTrigger entities.
2024-03-06 20:27:54 -08:00
Marco Cawthorne 37ab385bcf
NSEntity: add empty DebugDraw method for listen servers. 2024-03-04 18:44:10 -08:00
Marco Cawthorne 649ed825ad
Big commit, work over various triggers. Clean up debug prints and make
them more consistent. Warnings are in yellow, while errors are in red.

New cvar: g_developerTimestamp will display timestamps next to debug messages
originating from the game-logic. Set g_developer to 1 to see them.
A lot of useful into, such as which entity id messages originate from
should aid in debugging quite a bit.

SP level transitions should also be more reliable now in terms of
transferring entities and the like.

Some levels have awkward transition areas and you might find yourself
jumping between levels frequently. Workarounds are in the works.
2024-03-02 00:40:08 -08:00
Marco Cawthorne 64a6a9007d
Add new cvar s_developer which prints sound related info from the game logic 2024-01-02 12:03:04 -08:00
Marco Cawthorne a6fb7767dc
Implement cycler_weapon, cycler_wreckage, game_end, game_player_hurt, game_score, game_team_master, game_team_set, game_player_team, game_zone_player 2023-10-25 00:46:04 -07:00
Marco Cawthorne 7d9de3a2cc
NSEntity: new method GetNearbySpot() which will return a free position close to the entity. 2023-10-11 01:05:26 -07:00
Marco Cawthorne 19d6f22dc4
NSIO: add TransitionComplete() method for easier handling of entities post level-transition.
NSRenderableEntity: Default renderamt to 0.
Also use Read*() methods within all of the base classes their SpawnKey() methods.
2023-10-03 11:02:47 -07:00
Marco Cawthorne f76c169671
NSTrigger: read 'globalname' key, used for level transitions. 2023-09-28 18:38:16 -07:00
Marco Cawthorne 4f699aae6e
Monster spawning position and scripted sequence fixes. Also leave movetype of LEAVECORPSE scripted sequence entities alone or else it breaks of1a1's G-Man 2023-09-20 22:42:11 -07:00
Marco Cawthorne a1500166be
NSEntity: add method ::Relink() 2023-09-20 20:50:54 -07:00
Marco Cawthorne b7126fbadb
env_glow: from client-side only entity to shared. also support other rendermodes (accurate to GoldSrc) 2023-09-19 23:01:59 -07:00
Marco Cawthorne d84ef55b78
Get rid of a debug print 2023-07-16 13:06:38 -07:00
Marco Cawthorne fc3884ee9b
NSEntity: involve animation frames in the EntityDef event lookup, add new Input 'AddVelocity' (which applies velocity to the entity according to forward,right,up) 2023-07-16 13:05:15 -07:00
Marco Cawthorne 31774ce3f1
EntityDef work on NSMonster, NSTalkMonster, NSProjectile etc. 2023-06-20 21:19:00 -07:00
Marco Cawthorne 69d1498c8b
EntityDef: support 'events' group, so developers can tie animation events to Inputs (Source Base I/O system) 2023-06-19 10:35:24 -07:00
Marco Cawthorne d0838eab60
NSMonster: turning animation support, with new overridable methods AnimTurnLeft/AnimTurnRight 2023-06-01 16:17:11 -07:00
Marco Cawthorne 9e4bba1f0e
NSEntity: new method DistanceFromYaw 2023-05-31 10:08:00 -07:00
Marco Cawthorne c5626ce347
NSEntity: DropToFloor() should return a boolean akin to the original builtin. 2023-04-22 01:05:56 -07:00
Marco Cawthorne 97a5d9d2cd
NSClient: add new method Transport(vector newPos, vector newAngles) and null out .customphysics when an NSEntity gets Destroy()d 2023-04-18 14:47:39 -07:00
Marco Cawthorne 719f85210d
NSEntity: Fix SetNextThink doing occasional bogus fixups 2023-03-13 15:25:37 -07:00
Marco Cawthorne 638825af56
NSEntity: add GetSpawnAge() and GetSpawnTime() methods, which communicate when an instance of an entity was brought into the world. 2023-01-22 20:01:24 -08:00
Marco Cawthorne 655b5fa33e
NSEntity: add method IsFacing() which should make some common sneakish tasks easier. 2023-01-18 19:01:56 -08:00
Marco Cawthorne 0ac1bc4b68
NSEntity: Add method CanSpawn(bool) which will be used to determine mainly if an entity is to be spawned on the client or server module (but it can also let a class handle under which other conditions it spawns)
NSEntity: move RestoreComplete() into NSIO because NSGameRules needs this.
2023-01-06 13:23:48 -08:00
Marco Cawthorne b2925d46e4
Lots of small clean ups and microoptimisations. ambient_generic has also been fixed in multiplayer and made to save more bandwidth.
Rename a bunch of cvars to be more in a more consitent style similar to later id Tech games.
2023-01-05 23:41:48 -08:00
Marco Cawthorne 6ee21bc0ea
NSEntity: add attribute m_bIsBrush, which will be set if the entity is using a brush model. 2023-01-05 22:30:49 -08:00
Marco Cawthorne 2d911109cc
trigger_relay: Set m_iValue so that multisources will work properly that get targetted by them
trigger_auto: Delay the trigger of them in singleplayer until 1 player has joined
Misc cleanups. The 'Janitor Simulator' on TWHL should work now.
2022-12-14 16:51:16 -08:00
Marco Cawthorne 33295ff409
env_beverage/item_food: Fix item_food not rendering and or spawning. 2022-12-13 23:16:00 -08:00
Marco Cawthorne 0f9439b956
env_beam: Initial implementation. Visual fluff still missing, but coming up! 2022-12-07 17:05:50 -08:00
Marco Cawthorne 41ccbca2aa
GS-EntBase: Fix some more places where remove() was being called directly when it shouldn't be 2022-11-30 17:26:50 -08:00
Marco Cawthorne 74b61f35ed
Print a warning + backtrace when we manually call remove() on an entity that hasn't been destroyed properly. 2022-11-30 16:47:24 -08:00
Marco Cawthorne 2265047bfe
Fix a bunch of nonvirtual/virtual mismatching going on that's been caught by the new compiler. 2022-11-16 14:04:10 -08:00
Marco Cawthorne 003bc5d88a
Removal of Footsteps_Update outside of NSClientPlayer. Mods now have the full ability to override steps within the player class. Method name subject to change. 2022-11-01 19:54:56 -07:00
Marco Cawthorne e499a7d484
Documented the Nuclide System (NS) classes. 2022-10-14 13:08:47 -07:00
Marco Cawthorne 45d58a8742
leave comment in base/mapcycle.txt 2022-10-03 14:43:52 -07:00
Marco Cawthorne 5a7d082af7
Move touch handlers into NSTrigger, remove trigger_multiple's own version of the team check. 2022-08-31 15:18:06 -07:00
Marco Cawthorne 31bb9b4042
Abstract timers to make sure MOVETYPE_PUSH entities are handled without game/mod developers having to think much about them.
Also change rechargers to MOVETYPE_NONE instead of PUSH, as it won't be moving anyway.
2022-08-31 13:24:55 -07:00
Marco Cawthorne 267a956ec9
NSEntity: add Disappear() method. Mods that used Hide() to remove an entity from the active game will have to switch to this instead. 2022-08-27 11:20:38 -07:00
Marco Cawthorne 7a252ad213
NSEntity: new methods to simplify a lot of common tasks added. ScheduleThink(void(), float) and WithinBounds(entity) will surely be helpful.
Went over gs-entbase/server and made sure to use the new Think handlers to safely deal with MOVETYPE_PUSH
and handle any fun edge cases where time may be 0.0f.
func_breakable has also been fixed, since the changed Show/Hide behaviour prevented
them from getting destroyed fully.
2022-08-26 15:39:00 -07:00
Marco Cawthorne 146051dd67
Proper nonvirtual declarations for class methods. 2022-08-24 15:11:04 -07:00
Marco Cawthorne 7c40100e46
Cleanup time for some of our base classes. Go over Show/Hide methods, and document
the EFFECTS fields we have available. Since we do our own networking mostly we can reuse
some that are only available via CSQC (or NQSSQC)
2022-08-24 14:05:59 -07:00
Marco Cawthorne 7228c0d43a
NS{Entity,RenderableEntity,SurfacePropEntity}: network avelocity in a separate check 2022-08-11 14:19:10 -07:00
Marco Cawthorne 2526751db1
Clean up some areas where float logic happens to prepare for the compiler flag 'assumeint' 2022-08-10 16:15:44 -07:00
Marco Cawthorne 517614fd37
Major overhaul that'll make savegames a lot better. Every entity we implement should have a Save/Restore function.
AI noes recalculates their route in case of a loaded savegame... And much more.
2022-08-10 14:24:06 -07:00
Marco Cawthorne 5ca96bbcd9
Add helpers across the codebase to deal with networking ents. I tried prototyped a more elegant solution the compiler didn't like - the language should really deal with this. 2022-08-07 14:12:55 -07:00
Marco Cawthorne 6d8273331a
Client: Replace rogue setproperty calls with ones talking to our g_view object 2022-08-05 21:15:19 -07:00
Marco Cawthorne 2a220fb331
Move base classes out of gs-entbase. This evolution only happened because classes such as CBaseMonster that once existed were replaced and it grew from there.
Tweak g_developer prints for scripted_sequences.
2022-07-19 15:22:15 -07:00
Renamed from src/gs-entbase/shared/NSEntity.qc (Browse further)