Skip to content

Add godot client to blackholio #3128

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions demo/Blackholio/client-godot/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
root = true

[*]
charset = utf-8
6 changes: 6 additions & 0 deletions demo/Blackholio/client-godot/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf

.godot
spacetime_data/schema
spacetime_data/codegen_debug
3 changes: 3 additions & 0 deletions demo/Blackholio/client-godot/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Godot 4+ specific ignores
.godot/
/android/
567 changes: 567 additions & 0 deletions demo/Blackholio/client-godot/addons/SpacetimeDB/codegen/codegen.gd

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://4536ajssqru1
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
class_name SpacetimeCodegenConfig extends RefCounted

const CONFIG_VERSION := 2
const DEFAULT_CONFIG := {
"config_version": CONFIG_VERSION,
"hide_scheduled_reducers": true,
"hide_private_tables": true
}

var hide_private_tables := DEFAULT_CONFIG.hide_private_tables
var hide_scheduled_reducers := DEFAULT_CONFIG.hide_scheduled_reducers

var _codegen_config_path := SpacetimePlugin.BINDINGS_PATH + "/codegen_config.json"

func _init() -> void:
load_config()

func load_config() -> void:
var file: FileAccess
if not FileAccess.file_exists(_codegen_config_path):
file = FileAccess.open(_codegen_config_path, FileAccess.WRITE_READ)
file.store_string(JSON.stringify(DEFAULT_CONFIG, "\t", false))
else:
file = FileAccess.open(_codegen_config_path, FileAccess.READ)

var config: Dictionary = JSON.parse_string(file.get_as_text()) as Dictionary
file.close()

var version: int = config.get("config_version", -1) as int

if version < CONFIG_VERSION:
config = DEFAULT_CONFIG.duplicate() if version == -1 else _migrate_config(config, version)
save_config(config)

hide_scheduled_reducers = config.get("hide_scheduled_reducers", hide_scheduled_reducers) as bool
hide_private_tables = config.get("hide_private_tables", hide_private_tables) as bool

func save_config(config: Dictionary) -> void:
var file = FileAccess.open(_codegen_config_path, FileAccess.WRITE)
file.store_string(JSON.stringify(config, "\t", false))
file.close()

func _migrate_config(config: Dictionary, version: int) -> Dictionary:
if version == 1:
config = {
"config_version": 2,
"hide_scheduled_reducers": config.get("hide_scheduled_reducers", hide_scheduled_reducers),
"hide_private_tables": config.get("hide_private_tables", hide_private_tables)
}

return config

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://ddsksyghkkq1p
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
class_name SpacetimeParsedSchema extends Resource

var module: String = ""
var types: Array[Dictionary] = []
var reducers: Array[Dictionary] = []
var tables: Array[Dictionary] = []
var type_map: Dictionary[String, String] = {}
var meta_type_map: Dictionary[String, String] = {}
var typespace: Array = []

func is_empty() -> bool:
return types.is_empty() and reducers.is_empty()

func to_dictionary() -> Dictionary:
return {
"module": module,
"types": types,
"reducers": reducers,
"tables": tables,
"type_map": type_map,
"meta_type_map": meta_type_map,
"typespace": typespace
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://dmmc3e5wbqu30
Loading