Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
ea0ae29
feat: Implement ExecuteCommandWithBuffer functionality
ELDment Oct 12, 2025
4aee5d1
refactor: Convert CommandTracked from manual singleton to dependency …
ELDment Oct 12, 2025
9024f6d
feat: Enhance CommandTracked security and thread safety implementation
ELDment Oct 12, 2025
e585992
fix(generator): Pages
skuzzis Oct 12, 2025
ad4eef6
fix(generator): regex
skuzzis Oct 12, 2025
0cbefb7
fix(player/sendmsg): Render Color bug
skuzzis Oct 12, 2025
829fe1b
fix(managed): Colored for chat color render
skuzzis Oct 12, 2025
3d098ae
feat(helpers): ChatColors enum
skuzzis Oct 12, 2025
549f523
fix(ChatColors): Enum error
skuzzis Oct 12, 2025
eb94a94
update(managed/schema): Include Size
skuzzis Oct 12, 2025
c185c88
feat(managed/CUtl): Proper schema class array create
skuzzis Oct 12, 2025
1cbeea6
feat(managed): CUtlLeanVector
skuzzis Oct 12, 2025
8ba5197
feat(managed): CUtlRBTree
skuzzis Oct 12, 2025
8dea85e
feat(schema): CUtlLeanVector
skuzzis Oct 12, 2025
9066a97
feat(managed): CUtlMap
skuzzis Oct 13, 2025
a3cb87a
Merge remote-tracking branch 'upstream/beta' into beta-1
ELDment Oct 13, 2025
4cff4b9
refactor: Avoid hardcoded offset and improve thread safety
ELDment Oct 13, 2025
98c8054
chore(CUtlMap): Make it support other index kinds
skuzzis Oct 13, 2025
c070275
update(template): Base Version
skuzzis Oct 13, 2025
ebf461f
feat(managed): CUtl usable in schema
skuzzis Oct 13, 2025
2683666
update(schema): CUtl classes
skuzzis Oct 13, 2025
f6b0689
chore(CUtlVector): Remove unused code
skuzzis Oct 13, 2025
9807d63
style: Remove redundant code and empty exception handlers
ELDment Oct 13, 2025
2b084e0
refactor: Use proper method to retrieve offset
ELDment Oct 13, 2025
cd5783e
chore: Add necessary comments
ELDment Oct 13, 2025
9021531
chore: Merged some code snippets
ELDment Oct 13, 2025
d8074de
fix: Merged some code snippets
ELDment Oct 13, 2025
5ea29c5
feat(entrypoint): .NET runtime checks
skuzzis Oct 13, 2025
aba13e8
Merge pull request #41 from ELDment/beta-1
skuzzis Oct 13, 2025
0f3b883
update(managed/player): Make controller nullable
skuzzis Oct 13, 2025
6ff0620
Merge branch 'beta' of https://github.com/swiftly-solution/swiftlys2 …
skuzzis Oct 13, 2025
d6f1616
fix(players): IsPlayerOnline
skuzzis Oct 13, 2025
8fe3308
revert(managed/player): Breaking Change
skuzzis Oct 13, 2025
b0b46f0
refactor: Complete initial migration
ELDment Oct 13, 2025
71e7ac6
feat: Allow setting CommandName
ELDment Oct 13, 2025
20898cb
fix(playermanager): Bad Check on GetPlayer
skuzzis Oct 13, 2025
5f6c4c7
refactor: Complete CommandTracked migration
ELDment Oct 13, 2025
4f99a52
refactor: Minimize dependency injection
ELDment Oct 13, 2025
871c4ce
feat(pluginmanager): Nested Folders (`[folder]`)
skuzzis Oct 13, 2025
2fcb738
fix(native): Improper player checks
skuzzis Oct 13, 2025
fbd375b
fix: Inject ISwiftlyCore into CommandTrackedService
ELDment Oct 14, 2025
71f5c60
refactor: Resolve circular dependencies using Lazy loading
ELDment Oct 14, 2025
928b3e9
style: Code cleanup
ELDment Oct 14, 2025
2d45393
Merge remote-tracking branch 'upstream/beta' into beta-1
ELDment Oct 14, 2025
7dce493
update(signatures): New comments for signatures
skuzzis Oct 14, 2025
9051a98
refactor: Move CommandTrackedService and EngineService out of global …
ELDment Oct 14, 2025
e019b6b
Merge remote-tracking branch 'upstream/beta' into beta-1
ELDment Oct 14, 2025
5249cca
revert: CoreCommandServiceInjection.cs
ELDment Oct 14, 2025
eb1aa35
Merge pull request #43 from ELDment/beta-1
samyycX Oct 14, 2025
5a671f8
fix(managed): Fix command tracker
samyycX Oct 14, 2025
f536dce
update(code): Start move to safetyhook for everything
skuzzis Oct 14, 2025
19dcff6
Syncing changes automatically to SwiftlyS2 for today's CS2 Update.
skuzzis Oct 14, 2025
ee91cfd
update(gamedata): v1.41.1.3 update
skuzzis Oct 14, 2025
43e219e
update(schema): SDK
skuzzis Oct 14, 2025
817a546
Merge pull request #44 from swiftly-solution/update/cs2-sync
skuzzis Oct 15, 2025
1bbdc46
update(native): Start transition away from sourcehook
skuzzis Oct 15, 2025
ba8a110
update(native): Moving further from SourceHook
skuzzis Oct 15, 2025
4edf823
feat(native): Remove SH as dependency
skuzzis Oct 15, 2025
bd81439
chore(native): Remove MM dep for interfaces
skuzzis Oct 15, 2025
36007c7
update(native): small changes
skuzzis Oct 15, 2025
d734029
update(native): Remove MM dependency
skuzzis Oct 15, 2025
9297261
fix(gameentitysystem): StartupServer hook
skuzzis Oct 15, 2025
d34e676
fix(native): Crashes
skuzzis Oct 15, 2025
58ad3a2
chore(convars): Forgot print
skuzzis Oct 15, 2025
7782307
update(CTakeDamageInfo): Layout
skuzzis Oct 15, 2025
b5b13c0
fix(generator): Interference
skuzzis Oct 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 9 additions & 5 deletions generator/docs_generator/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ def extract_metadata(yaml_data, is_index=False):
words = title.split()
clean_title = words[-1] if words else ''

clean_title = re.sub(r'<[^>]+>', '', clean_title)
clean_title = re.sub(r'\[[^\]]+\]', '', clean_title)

return {'title': clean_title}

def convert_to_path(s):
Expand Down Expand Up @@ -49,7 +52,7 @@ def generate_markdown(yaml_data):
if 'h2' in item:
md += f"## {item['h2']}\n\n"
if 'h4' in item:
md += f"- {item['h4']}\n\n"
md += f"#### {item['h4']}\n\n"
if 'code' in item:
md += "```csharp\n" + item['code'] + "\n```\n\n"
if 'parameters' in item:
Expand Down Expand Up @@ -86,11 +89,12 @@ def generate_markdown(yaml_data):
md += "\n"
if 'api3' in item:
src = item.get('src', '')
md += f"### **{item['api3']}**"
api3_title = str(item.get('api3', ''))
api3_title = re.sub(r'<[^>]+>', '', api3_title)
api3_title = re.sub(r'\[[^\]]+\]', '', api3_title)
md += f"### {api3_title}\n\n"
if src != '':
md += f" - [Source Code]({src})\n\n"
else:
md += "\n\n"
md += f"[Source Code]({src})\n\n"
return md

def convert_yaml_file(src_path, dest_path):
Expand Down
14 changes: 0 additions & 14 deletions generator/gameevent_generator/gameevents/mod.gameevents
Original file line number Diff line number Diff line change
Expand Up @@ -968,20 +968,6 @@
{
}

"bullet_flight_resolution"
{
"userid" "player_controller_and_pawn"
"pos_x" "short"
"pos_y" "short"
"pos_z" "short"
"ang_x" "short"
"ang_y" "short"
"ang_z" "short"
"start_x" "short"
"start_y" "short"
"start_z" "short"
}

"game_phase_changed"
{
"new_phase" "short"
Expand Down
40 changes: 27 additions & 13 deletions generator/schema_generator/field_type_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"Vector": "Vector",
"QAngle": "QAngle",
"CUtlVector": "CUtlVector",
"CUtlLeanVector": "CUtlLeanVector",
"Quaternion": "Quaternion",
"Vector2D": "Vector2D",
"Vector4D": "Vector4D",
Expand Down Expand Up @@ -47,21 +48,23 @@
"CNetworkUtlVectorBase": "CUtlVector",
"CEntityHandle": "CHandle<CEntityInstance>",
"CTakeDamageInfo": "CTakeDamageInfo",
"CTakeDamageResult": "CTakeDamageResult",
"ChangeAccessorFieldPathIndex_t": "ChangeAccessorFieldPathIndex_t",
"CNetworkVarChainer": "CNetworkVarChainer"
}

blacklisted_types = [
"CUtlStringTokenWithStorage",
"FourVectors2D",
"FeSimdTri_t",
"CStrongHandleVoid",
"CUtlVectorFixedGrowable",
"CUtlLeanVectorFixedGrowable",
"QuaternionStorage",
"CWeakHandle",
"DegreeEuler",
"CTypedBitVec",
"CUtlSymbol",
"CUtlLeanVector",
"CSmartPtr",
"CUtlHashtable",
"CUtlOrderedMap",
Expand Down Expand Up @@ -124,6 +127,9 @@ def convert_utlvector_type(type, all_class_names, all_enum_names, interface = Fa
if type.startswith("CUtlVectorFixedGrowable"):
name = "CUtlVectorFixedGrowable"
length = len("CUtlVectorFixedGrowable")
elif type.startswith("CUtlLeanVector"):
name = "CUtlLeanVector"
length = len("CUtlLeanVector")
elif type.startswith("CUtlVectorEmbeddedNetworkVar"):
name = "CUtlVector"
length = len("CUtlVectorEmbeddedNetworkVar")
Expand All @@ -147,18 +153,26 @@ def convert_utlvector_type(type, all_class_names, all_enum_names, interface = Fa

generic_t1_type, is_value_type = convert_field_type(generic_t1, "ref", all_class_names, all_enum_names, interface)

if is_ptr and generic_t1_type == "char":
return (f"{name}<CString>", True)
if is_ptr:
# print(f"{name}<PointerTo<{generic_t1_type}>>")
return (f"{name}<PointerTo<{generic_t1_type}>>", True)

if is_value_type:
# print(f"{name}<{generic_t1_type}>")
return (f"{name}<{generic_t1_type}>", is_value_type)
if name == "CUtlLeanVector":
if is_ptr and generic_t1_type == "char":
return (f"{name}<CString, int>", True)
if is_ptr:
# print(f"{name}<PointerTo<{generic_t1_type}>>")
return (f"{name}<PointerTo<{generic_t1_type}>, int>", True)

return (f"{name}<{generic_t1_type}, int>", True)
else:
# print(f"{name}")
return (name, True)
if is_ptr and generic_t1_type == "char":
return (f"{name}<CString>", True)
if is_ptr:
# print(f"{name}<PointerTo<{generic_t1_type}>>")
return (f"{name}<PointerTo<{generic_t1_type}>>", True)

for blacklisted_type in blacklisted_types:
if blacklisted_type in generic_t1_type:
return (f"{name}<SchemaUntypedField>", True)

return (f"{name}<{generic_t1_type}>", True)

def convert_field_type(type, kind, all_class_names, all_enum_names, interface = False):

Expand All @@ -183,7 +197,7 @@ def convert_field_type(type, kind, all_class_names, all_enum_names, interface =
return (f"{prefix}SchemaFixedArray<{name}>", False)
return (name, is_value_type)

if type.startswith("CUtlVector") or type.startswith("CNetworkUtlVector"):
if type.startswith("CUtlVector") or type.startswith("CNetworkUtlVector") or type.startswith("CUtlLeanVector"):
name, is_value_type = convert_utlvector_type(type, all_class_names, all_enum_names, True)
if kind == "fixed_array":
return (f"{prefix}SchemaFixedArray<{name}>", False)
Expand Down
4 changes: 3 additions & 1 deletion generator/schema_generator/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
blacklisted_classes = [
"FeSimdTri_t",
"CTakeDamageInfo",
"CTakeDamageResult",
"CNetworkVarChainer",
"ChangeAccessorFieldPathIndex_t"
]
Expand Down Expand Up @@ -178,7 +179,8 @@ def write_interface(self):
"BASE_INTERFACE": f"" if self.base_class == "SchemaClass" else get_interface_name(self.base_class) + ", ",
"IMPL_TYPE": get_impl_name(self.class_name),
"FIELDS": "\n".join(fields),
"UPDATORS": "\n".join(updators)
"UPDATORS": "\n".join(updators),
"SIZE": self.size
}
self.interface_file_handle.write(render_template(self.interface_template, params))

Expand Down
Loading
Loading