branchrust_reboot/main/copypastecancel
22 Commits over 305 Days - 0.00cph!
Fix pasted builds always being snapped to terrain despite the convar being set to false
merge from main -> copypaste
Remove console spam when copying entities
Allow player models to be pasted
- convar `paste_players` (default false)
- change the steam id of the players pasted so they can't conflict with existing players in the server as it causes issues (give them a steam id above bots but below the range of real players)
Do filtering of pasted entities before they are spawned by filtering the prefab instead of the spawned entity and then trying to delete it
Fix autosnap for pasting not working if there were no foundations in the paste
- disable autosnap when no foundations are found
merge from main -> copypaste
Add ability to snap pasted entities to the terrain
- will search based on foundations only
- snap entire build to single height even if it overhangs the ledge
- convar is `paste_snap_terrain`
- can use `paste_height_offset` to control height offset after paste
Add more filters
- `paste_deployables`
- `paste_building_only` (only building blocks)
- `paste_foundations_only`
Add `copybuilding`
- will copy every building block & decay entity of the base you are looking at
- won't copy non-decay entities
Add `downloadpaste <url> <name>` command
- default to using the filename in the url
- can override name if it is going to overwrite the paste
Add `renamepaste <old> <new>` and `deletepaste <name>` commands
- allows you to rename pastes after you download or want to reorganize
- can delete if needed too
Add `upgrade_looking` and `skin_looking` commands
- same as `upgrade_radius` command but uses the base you are looking at instead of a radius around you
- easier way to upgrades in front of you
- will only search directly attached building blocks, won't handle external TCs
- add `GamePhyics.TraceEntity()` method to handle raycasting entities in editor and ignoring server / client entities
Cleanup & rename kill -> killbox (so it doesn't overlap with normal kill command)
Add ability to undo pastes with `undopaste` command
- only kills entiites you pasted (if you want to redo a paste, just paste it again manually)
Allow pasting directly from name
- `paste cars1` will load "cars1" and paste it while persisting current clipboard
Filter entities when pasting instead of copying (allows you to change filters after copying a single time)
- change convars from "copy_npcs" to "paste_npcs"
- filter entities that have no parent when pasting
- add option to filter vehicles
Tons of changes to support working outside of editor
- code assumed only single instance per server
- now store parameters per client in client convars
- made client and server versions of each command
- client commands send parameters to server version
- added filtering for resources + foilage and npcs (default include everything)
- fix point entities not being filtered out
- split code into CLIENT and SERVER regions
Cleanup
Rename copy -> copybox so it doesn't overlap with client copy
Rename load -> loadpaste to not overlap with other load commands
Fix copy paste
- now remaps every type of network id, fixing storage entities
- fixed building ID not being reset for new pastes
- refactored pasting code so it more closely resembles SaveRestore.Load()
- fixed rotation of pastes not always working
- save entities in order of network id so the pasting is more deterministic
- removed saving of entity ids in pastes because it's not needed
- change paste directory from EntityCopies -> copypaste
Merge from main -> copypaste
More work on a built-in copy pasting tool:
You can now set two positions to select entities, forming a boundary for precise selection
Added a basic set of commands running on your current selection like save, cut, kill, print, cancel
(very wip)
Fixed some rotation and parenting issues
First pass on a simple entity copy+paste system for QA and media purposes
debug.CopyEntitiesInRange takes a name and radius, will copy all entities in the radius using the players position as the reference point
debug.PasteEntities takes a name and will paste the target entities, using the plaeyrs current position as the origin
IO entities that are included in the paste are rebound locally, so any contained circuits will be recreated
Entities are saved in the server directory (EntityCopies folder) and can be reused/saved externally/etc