Phase 7: netfox + godot-jolt stack upgrade
Stack installed: - netfox v1.35.3 (core + extras + noray + internals) - godot-jolt v0.16.0-stable Architecture: - Server: ENet transport (works headless, no netfox deps) - Client/Editor: netfox rollback (RollbackSynchronizer, TickInterpolator) New/modified: - docs/migration-netfox-plan.md — migration architecture - scripts/network/network_manager.gd — netfox-aware ENet fallback - scripts/network/player.gd — clean base player - client/characters/player_netfox.gd — rollback player w/ WeaponManager - client/characters/input/player_net_input.gd — BaseNetInput subclass - client/characters/character/fps_character_controller.gd — netfox input feed - client/weapons/ — weapon data, registry, TacticalWeaponHitscan, WeaponManager - client/scripts/round_replicator.gd — client-side round state bridge - server/scripts/round_manager.gd — improved state machine - server/scripts/plugin_api/plugin_manager.gd — refined plugin system - config: enemy_tag, ally_tag for meatball targeting Removed: old C++ SimulationServer GDExtension (replaced by netfox rollback)
This commit is contained in:
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
|
||||
__all__ = ['tomllib']
|
||||
|
||||
|
||||
if sys.version_info >= (3, 11):
|
||||
import tomllib
|
||||
else: # pragma: no cover
|
||||
import tomli as tomllib
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import shutil
|
||||
import sys
|
||||
from typing import TYPE_CHECKING, Any, Callable
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from _typeshed import ExcInfo, StrOrBytesPath
|
||||
from typing_extensions import TypeAlias
|
||||
|
||||
# Same as shutil._OnExcCallback from typeshed
|
||||
_OnExcCallback: TypeAlias = Callable[[Callable[..., Any], str, BaseException], object]
|
||||
|
||||
|
||||
def shutil_rmtree(
|
||||
path: StrOrBytesPath,
|
||||
ignore_errors: bool = False,
|
||||
onexc: _OnExcCallback | None = None,
|
||||
) -> None:
|
||||
if sys.version_info >= (3, 12):
|
||||
return shutil.rmtree(path, ignore_errors, onexc=onexc)
|
||||
|
||||
def _handler(fn: Callable[..., Any], path: str, excinfo: ExcInfo) -> None:
|
||||
if onexc:
|
||||
onexc(fn, path, excinfo[1])
|
||||
|
||||
return shutil.rmtree(path, ignore_errors, onerror=_handler)
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
|
||||
if sys.version_info >= (3, 12, 4):
|
||||
# Python 3.13 should support `.pth` files encoded in UTF-8
|
||||
# See discussion in https://github.com/python/cpython/issues/77102
|
||||
PTH_ENCODING: str | None = "utf-8"
|
||||
else:
|
||||
from .py39 import LOCALE_ENCODING
|
||||
|
||||
# PTH_ENCODING = "locale"
|
||||
PTH_ENCODING = LOCALE_ENCODING
|
||||
@@ -0,0 +1,9 @@
|
||||
import sys
|
||||
|
||||
# Explicitly use the ``"locale"`` encoding in versions that support it,
|
||||
# otherwise just rely on the implicit handling of ``encoding=None``.
|
||||
# Since all platforms that support ``EncodingWarning`` also support
|
||||
# ``encoding="locale"``, this can be used to suppress the warning.
|
||||
# However, please try to use UTF-8 when possible
|
||||
# (.pth files are the notorious exception: python/cpython#77102, pypa/setuptools#3937).
|
||||
LOCALE_ENCODING = "locale" if sys.version_info >= (3, 10) else None
|
||||
Reference in New Issue
Block a user