Rebrand project and refresh title presentation
This commit is contained in:
parent
17fef2c5d4
commit
7ae20789a9
138 changed files with 1511 additions and 1498 deletions
|
|
@ -20,12 +20,12 @@ signal friend_invite_received(
|
|||
signal friend_invite_finished(success: bool, message: String)
|
||||
|
||||
const BASE_URL_SETTING: String = "network/discovery/base_url"
|
||||
const BASE_URL_ENVIRONMENT: String = "NETFISHING_DISCOVERY_URL"
|
||||
const BASE_URL_ENVIRONMENT: String = "straywild_DISCOVERY_URL"
|
||||
const SETTINGS_PATH: String = "user://network_discovery.cfg"
|
||||
const DEFAULT_ROOM_NAME: String = "Player's Server"
|
||||
const LEGACY_DEFAULT_ROOM_NAME: String = "NETfishing Room"
|
||||
const LEGACY_DEFAULT_ROOM_NAME: String = "straywild Room"
|
||||
const LEGACY_DEDICATED_DEFAULT_ROOM_NAME: String = (
|
||||
"NETfishing Dedicated Server"
|
||||
"straywild Dedicated Server"
|
||||
)
|
||||
const ROOM_NAME_SUFFIX: String = "'s Server"
|
||||
const MAX_ROOM_NAME_LENGTH: int = 48
|
||||
|
|
@ -33,7 +33,7 @@ const HEARTBEAT_INTERVAL_SECONDS: float = 15.0
|
|||
const REQUEST_TIMEOUT_SECONDS: float = 8.0
|
||||
const TRAVERSAL_POLL_INTERVAL_SECONDS: float = 1.0
|
||||
const JOIN_PROBE_INTERVAL_SECONDS: float = 0.35
|
||||
const TRAVERSAL_PACKET_PREFIX: String = "NETFISHING_TRAVERSAL_V1 "
|
||||
const TRAVERSAL_PACKET_PREFIX: String = "straywild_TRAVERSAL_V1 "
|
||||
const UPNP_MAPPING_DURATION_SECONDS: int = 3600
|
||||
const UPNP_RENEW_INTERVAL_SECONDS: float = 2700.0
|
||||
const UPNP_RETRY_INTERVAL_SECONDS: float = 300.0
|
||||
|
|
@ -560,7 +560,7 @@ func _configured_base_url() -> String:
|
|||
if not value.is_empty() and not (
|
||||
value.begins_with("https://") or value.begins_with("http://")
|
||||
):
|
||||
push_warning("Ignored invalid NETfishing discovery URL.")
|
||||
push_warning("Ignored invalid straywild discovery URL.")
|
||||
return ""
|
||||
return value
|
||||
|
||||
|
|
@ -809,7 +809,7 @@ func _on_traversal_request_completed(
|
|||
var port: int = int(endpoint.get("port", 0))
|
||||
if address.is_empty() or port < 1 or port > 65535:
|
||||
continue
|
||||
var punch: PackedByteArray = "NETFISHING_PUNCH_V1".to_utf8_buffer()
|
||||
var punch: PackedByteArray = "straywild_PUNCH_V1".to_utf8_buffer()
|
||||
for _attempt: int in 3:
|
||||
_session.send_traversal_packet(address, port, punch)
|
||||
|
||||
|
|
@ -895,13 +895,13 @@ func _configure_upnp_mapping(port: int) -> Dictionary:
|
|||
var mapping_result: int = upnp.add_port_mapping(
|
||||
port,
|
||||
port,
|
||||
"NETfishing",
|
||||
"straywild",
|
||||
"UDP",
|
||||
UPNP_MAPPING_DURATION_SECONDS,
|
||||
)
|
||||
if mapping_result == UPNP.UPNP_RESULT_ONLY_PERMANENT_LEASE_SUPPORTED:
|
||||
mapping_result = upnp.add_port_mapping(
|
||||
port, port, "NETfishing", "UDP", 0
|
||||
port, port, "straywild", "UDP", 0
|
||||
)
|
||||
return {
|
||||
"success": mapping_result == UPNP.UPNP_RESULT_SUCCESS,
|
||||
|
|
@ -1374,18 +1374,18 @@ func _discovery_version_mismatch_message(required_version: String) -> String:
|
|||
match rejection:
|
||||
NetworkProtocol.RejectionCode.CLIENT_OUTDATED:
|
||||
return (
|
||||
"Your NETfishing version is out of date. Update to %s to "
|
||||
"Your straywild version is out of date. Update to %s to "
|
||||
+ "enable public discovery. This room will not be listed "
|
||||
+ "until you update."
|
||||
) % required_version
|
||||
NetworkProtocol.RejectionCode.SERVER_OUTDATED:
|
||||
return (
|
||||
"Public discovery is still on NETfishing %s. This room "
|
||||
"Public discovery is still on straywild %s. This room "
|
||||
+ "will not be listed until discovery is updated for %s."
|
||||
) % [required_version, local_version]
|
||||
_:
|
||||
return (
|
||||
"Public discovery requires NETfishing %s. This room will "
|
||||
"Public discovery requires straywild %s. This room will "
|
||||
+ "not be listed until both versions match."
|
||||
) % required_version
|
||||
|
||||
|
|
@ -1577,4 +1577,4 @@ func _save_settings() -> void:
|
|||
config.set_value("social", "share_presence", _presence_sharing)
|
||||
var error: Error = config.save(SETTINGS_PATH)
|
||||
if error != OK:
|
||||
push_warning("Could not save local NETfishing discovery settings.")
|
||||
push_warning("Could not save local straywild discovery settings.")
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ extends Node
|
|||
|
||||
signal operation_finished(success: bool, message: String)
|
||||
|
||||
const MAGIC := "NETFISHING_IDENTITY_BACKUP"
|
||||
const MAGIC := "straywild_IDENTITY_BACKUP"
|
||||
const FORMAT_VERSION := 1
|
||||
const MAX_BACKUP_BYTES := 256 * 1024
|
||||
const MIN_PASSPHRASE_LENGTH := 12
|
||||
|
|
@ -189,7 +189,7 @@ func import_backup(
|
|||
)
|
||||
_finish(
|
||||
bool(result.get("ok", false)),
|
||||
"Identity imported. Restart NETfishing before multiplayer."
|
||||
"Identity imported. Restart straywild before multiplayer."
|
||||
if bool(result.get("ok", false))
|
||||
else "Could not install this identity backup.",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ const ALGORITHM: String = "RSA-3072-SHA256"
|
|||
const FINGERPRINT_LENGTH: int = 64
|
||||
const MAX_PUBLIC_KEY_BYTES: int = 8192
|
||||
const MAX_SIGNATURE_BYTES: int = 1024
|
||||
const DOMAIN_PREFIX: String = "NETFISHING"
|
||||
const DOMAIN_PREFIX: String = "straywild"
|
||||
const IDENTITY_VERSION: String = "identity_v1"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ extends RefCounted
|
|||
|
||||
const WorldLayoutType = preload("res://world/world_layout.gd")
|
||||
|
||||
const PROTOCOL_VERSION: int = 10
|
||||
const PROTOCOL_VERSION: int = 11
|
||||
const GAME_BUILD: String = "prealpha"
|
||||
const MAX_GAME_VERSION_LENGTH: int = 64
|
||||
const MAX_DISPLAY_NAME_LENGTH: int = 24
|
||||
|
|
@ -304,7 +304,7 @@ static func make_server_hello(
|
|||
assigned_peer_id: int,
|
||||
player_count: int,
|
||||
max_players: int,
|
||||
server_display_name: String = "NETfishing",
|
||||
server_display_name: String = "straywild",
|
||||
world_seed: int = DEFAULT_WORLD_SEED,
|
||||
world_layout: StringName = WorldLayoutType.GENERATED,
|
||||
) -> Dictionary:
|
||||
|
|
@ -372,17 +372,17 @@ static func rejection_text(code: int) -> String:
|
|||
return "You are not permitted to join this server."
|
||||
RejectionCode.CLIENT_OUTDATED:
|
||||
return (
|
||||
"Your NETfishing version is out of date. "
|
||||
"Your straywild version is out of date. "
|
||||
+ "Update the game to join this server."
|
||||
)
|
||||
RejectionCode.SERVER_OUTDATED:
|
||||
return (
|
||||
"This server is out of date. "
|
||||
+ "The host needs to update NETfishing."
|
||||
+ "The host needs to update straywild."
|
||||
)
|
||||
RejectionCode.VERSION_MISMATCH:
|
||||
return (
|
||||
"This game and server use different NETfishing versions. "
|
||||
"This game and server use different straywild versions. "
|
||||
+ "Update both to the latest release."
|
||||
)
|
||||
_:
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ var _local_appearance_snapshot: Dictionary = (
|
|||
)
|
||||
var _moderation_disconnect_message := ""
|
||||
var _host_port: int = 0
|
||||
var _session_display_name: String = "NETfishing Room"
|
||||
var _session_display_name: String = "straywild Room"
|
||||
var _dedicated_host: bool = false
|
||||
var _configured_operator_fingerprints: Dictionary[String, bool] = {}
|
||||
var _session_operator_fingerprints: Dictionary[String, bool] = {}
|
||||
|
|
@ -432,7 +432,7 @@ func set_peer_operator(
|
|||
func set_session_display_name(value: String) -> void:
|
||||
var cleaned: String = value.strip_edges().left(48)
|
||||
if cleaned.is_empty():
|
||||
cleaned = "NETfishing Room"
|
||||
cleaned = "straywild Room"
|
||||
if cleaned == _session_display_name:
|
||||
return
|
||||
_session_display_name = cleaned
|
||||
|
|
@ -1187,7 +1187,7 @@ func resolve_server_trust(accepted: bool) -> void:
|
|||
if not _server_trust.trust(
|
||||
get_current_endpoint(),
|
||||
str(_pending_server_proof["server_fingerprint"]),
|
||||
"NETfishing",
|
||||
"straywild",
|
||||
):
|
||||
_fail_identity("The server identity could not be pinned.")
|
||||
return
|
||||
|
|
|
|||
|
|
@ -879,7 +879,7 @@ func export_canvas_png(canvas_id: String) -> String:
|
|||
_emit_hud_state("paint something before exporting")
|
||||
return ""
|
||||
if _data_root == null or _data_root.root_path.is_empty():
|
||||
_emit_hud_state("choose a NETfishing data folder before exporting")
|
||||
_emit_hud_state("choose a straywild data folder before exporting")
|
||||
return ""
|
||||
var export_directory: String = _artwork_directory()
|
||||
if DirAccess.make_dir_recursive_absolute(export_directory) != OK:
|
||||
|
|
@ -990,7 +990,7 @@ func _stamp_entry_is_unlocked(entry: Dictionary) -> bool:
|
|||
|
||||
func _next_artwork_export_path(directory: String) -> String:
|
||||
var date_time: Dictionary = Time.get_datetime_dict_from_system()
|
||||
var stem: String = "netfishing-artwork-%04d%02d%02d-%02d%02d%02d" % [
|
||||
var stem: String = "straywild-artwork-%04d%02d%02d-%02d%02d%02d" % [
|
||||
int(date_time.get("year", 0)),
|
||||
int(date_time.get("month", 0)),
|
||||
int(date_time.get("day", 0)),
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ const BOOTSTRAP_TEMP_PATH := "user://data_root_bootstrap.json.tmp"
|
|||
const BOOTSTRAP_VERSION := 1
|
||||
const MANIFEST_VERSION := 1
|
||||
const LAYOUT_VERSION := 1
|
||||
const MANIFEST_FILENAME := "netfishing_data.json"
|
||||
const MANIFEST_FILENAME := "straywild_data.json"
|
||||
const README_FILENAME := "README.txt"
|
||||
const ENVIRONMENT_VARIABLE := "NETFISHING_DATA_DIR"
|
||||
const CREATE_ENVIRONMENT_VARIABLE := "NETFISHING_CREATE_DATA_DIR"
|
||||
const APPLICATION_ID := "netfishing"
|
||||
const ENVIRONMENT_VARIABLE := "straywild_DATA_DIR"
|
||||
const CREATE_ENVIRONMENT_VARIABLE := "straywild_CREATE_DATA_DIR"
|
||||
const APPLICATION_ID := "straywild"
|
||||
const APP_DATA_PORTABLE_PATH := "user://portable-data"
|
||||
const PATH_ALLOWED: StringName = &"allowed"
|
||||
const PATH_SOURCE_PROJECT: StringName = &"source_project"
|
||||
|
|
@ -48,7 +48,7 @@ func resolve() -> bool:
|
|||
mode = Mode.ENVIRONMENT_OVERRIDE
|
||||
var environment_path: String = OS.get_environment(ENVIRONMENT_VARIABLE)
|
||||
if not environment_path.is_absolute_path():
|
||||
return _fail("NETFISHING_DATA_DIR must be an absolute path.")
|
||||
return _fail("straywild_DATA_DIR must be an absolute path.")
|
||||
if (
|
||||
OS.get_environment(CREATE_ENVIRONMENT_VARIABLE) == "1"
|
||||
and not FileAccess.file_exists(
|
||||
|
|
@ -84,7 +84,7 @@ func default_visible_path() -> String:
|
|||
var documents: String = OS.get_system_dir(OS.SYSTEM_DIR_DOCUMENTS)
|
||||
if documents.is_empty():
|
||||
return ""
|
||||
var candidate: String = _normalize(documents.path_join("NETFISHING"))
|
||||
var candidate: String = _normalize(documents.path_join("straywild"))
|
||||
if not candidate.is_absolute_path():
|
||||
return ""
|
||||
var classification: StringName = classify_candidate_path(
|
||||
|
|
@ -109,16 +109,16 @@ func select_new_root(path: String, app_data: bool = false) -> bool:
|
|||
if FileAccess.file_exists(manifest_path):
|
||||
var manifest: Dictionary = _read_json(manifest_path)
|
||||
if not _valid_manifest(manifest):
|
||||
return _fail("The selected folder has a malformed NETfishing manifest.")
|
||||
return _fail("The selected folder has a malformed straywild manifest.")
|
||||
root_id = str(manifest["root_id"])
|
||||
else:
|
||||
if not _directory_is_empty(normalized) and not app_data:
|
||||
return _fail(
|
||||
"Choose an empty folder or an existing NETfishing data folder."
|
||||
"Choose an empty folder or an existing straywild data folder."
|
||||
)
|
||||
root_id = Crypto.new().generate_random_bytes(16).hex_encode()
|
||||
if not _create_layout(normalized, root_id):
|
||||
return _fail("The NETfishing data folder could not be created.")
|
||||
return _fail("The straywild data folder could not be created.")
|
||||
if not _write_bootstrap(normalized, root_id):
|
||||
return _fail("The data-folder pointer could not be saved.")
|
||||
root_path = normalized
|
||||
|
|
@ -238,15 +238,15 @@ func _activate_existing(path: String, expected_id: String, permit_creation: bool
|
|||
return false
|
||||
var manifest_path: String = normalized.path_join(MANIFEST_FILENAME)
|
||||
if not FileAccess.file_exists(manifest_path):
|
||||
return _fail("The selected folder is not a NETfishing data folder.")
|
||||
return _fail("The selected folder is not a straywild data folder.")
|
||||
var manifest: Dictionary = _read_json(manifest_path)
|
||||
if not _valid_manifest(manifest):
|
||||
return _fail("The NETfishing data-folder manifest is malformed.")
|
||||
return _fail("The straywild data-folder manifest is malformed.")
|
||||
var found_id: String = str(manifest["root_id"])
|
||||
if not expected_id.is_empty() and expected_id != found_id:
|
||||
return _fail("The selected data folder does not match this device pointer.")
|
||||
if not _test_writable(normalized):
|
||||
return _fail("The NETfishing data folder is unavailable or unwritable.")
|
||||
return _fail("The straywild data folder is unavailable or unwritable.")
|
||||
root_path = normalized
|
||||
root_id = found_id
|
||||
requires_selection = false
|
||||
|
|
@ -339,7 +339,7 @@ static func _is_same_or_child_path(candidate: String, reference: String) -> bool
|
|||
|
||||
func _test_writable(path: String) -> bool:
|
||||
var probe: String = path.path_join(
|
||||
".netfishing-write-%s.tmp" % device_id.left(12)
|
||||
".straywild-write-%s.tmp" % device_id.left(12)
|
||||
)
|
||||
var file: FileAccess = FileAccess.open(probe, FileAccess.WRITE)
|
||||
if file == null:
|
||||
|
|
@ -370,7 +370,7 @@ func _create_layout(path: String, id: String) -> bool:
|
|||
):
|
||||
return false
|
||||
var readme: String = (
|
||||
"NETfishing player data\n\n"
|
||||
"straywild player data\n\n"
|
||||
+ "This folder is safe to synchronize with tools such as Syncthing.\n"
|
||||
+ "Active private identity keys remain device-local.\n"
|
||||
+ "Encrypted identity backups require their passphrase.\n"
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ const FORMAT_VERSION := 2
|
|||
const MAX_RECORDS := 500
|
||||
const MAX_FRIENDS := 200
|
||||
const SOCIAL_TOKEN_LENGTH := 64
|
||||
const PRESENCE_CHANNEL_DOMAIN := "NETFISHING_PRESENCE_V1:"
|
||||
const INVITE_INBOX_DOMAIN := "NETFISHING_INVITE_V1:"
|
||||
const PRESENCE_CHANNEL_DOMAIN := "straywild_PRESENCE_V1:"
|
||||
const INVITE_INBOX_DOMAIN := "straywild_INVITE_V1:"
|
||||
|
||||
var _records: Dictionary = {}
|
||||
var _loaded := false
|
||||
|
|
|
|||
|
|
@ -33,12 +33,12 @@ static func migrate_legacy_to(
|
|||
return {
|
||||
"ok": false,
|
||||
"requires_existing_root_decision": true,
|
||||
"message": "The selected folder already contains NETfishing data.",
|
||||
"message": "The selected folder already contains straywild data.",
|
||||
}
|
||||
if not _directory_empty(normalized):
|
||||
return {
|
||||
"ok": false,
|
||||
"message": "Choose an empty folder or create a NETfishing subfolder.",
|
||||
"message": "Choose an empty folder or create a straywild subfolder.",
|
||||
}
|
||||
var staging: String = "%s.migration-%s" % [
|
||||
normalized, Crypto.new().generate_random_bytes(8).hex_encode()
|
||||
|
|
@ -111,11 +111,11 @@ static func migrate_active_to(
|
|||
"ok": false,
|
||||
"requires_existing_root_decision": true,
|
||||
"message": (
|
||||
"The selected folder already contains NETfishing data. "
|
||||
"The selected folder already contains straywild data. "
|
||||
+ "Choose it through the existing-data recovery flow."
|
||||
),
|
||||
}
|
||||
return {"ok": false, "message": "Choose an empty folder or a NETfishing subfolder."}
|
||||
return {"ok": false, "message": "Choose an empty folder or a straywild subfolder."}
|
||||
var staging: String = "%s.migration-%s" % [
|
||||
normalized, Crypto.new().generate_random_bytes(8).hex_encode()
|
||||
]
|
||||
|
|
@ -209,7 +209,7 @@ static func replace_existing_with_legacy(
|
|||
var normalized: String = destination.simplify_path().trim_suffix("/")
|
||||
var manifest: String = normalized.path_join(PlayerDataRoot.MANIFEST_FILENAME)
|
||||
if not FileAccess.file_exists(manifest):
|
||||
return {"ok": false, "message": "The selected folder is not a NETfishing data root."}
|
||||
return {"ok": false, "message": "The selected folder is not a straywild data root."}
|
||||
var recovery: String = ProjectSettings.globalize_path(
|
||||
"user://migration-recovery"
|
||||
).path_join(
|
||||
|
|
@ -230,7 +230,7 @@ static func replace_existing_with_active(
|
|||
) -> Dictionary:
|
||||
var normalized: String = destination.simplify_path().trim_suffix("/")
|
||||
if not FileAccess.file_exists(normalized.path_join(PlayerDataRoot.MANIFEST_FILENAME)):
|
||||
return {"ok": false, "message": "The selected folder is not a NETfishing data root."}
|
||||
return {"ok": false, "message": "The selected folder is not a straywild data root."}
|
||||
var recovery: String = ProjectSettings.globalize_path(
|
||||
"user://migration-recovery"
|
||||
).path_join(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue