From 9fb5468ec21871f5a1ec6e7357b5d702192f28d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 2 Jan 2026 23:46:16 +0100 Subject: [PATCH] Example work --- .../src/form/ControlledForm.nodes.gen.ts | 5 ++++ .../godot/src/form/ControlledForm.tscn.gen.ts | 5 ++++ packages/example/src/form/ControlledForm.ts | 6 +++++ .../example/src/form/ControlledForm.ts.uid | 1 + packages/example/src/form/ControlledForm.tscn | 12 ++++++++++ .../example/src/form/ControlledFormRoot.tsx | 24 +++++++++++++++++++ 6 files changed, 53 insertions(+) create mode 100644 packages/example/gen/godot/src/form/ControlledForm.nodes.gen.ts create mode 100644 packages/example/gen/godot/src/form/ControlledForm.tscn.gen.ts create mode 100644 packages/example/src/form/ControlledForm.ts create mode 100644 packages/example/src/form/ControlledForm.ts.uid create mode 100644 packages/example/src/form/ControlledForm.tscn create mode 100644 packages/example/src/form/ControlledFormRoot.tsx diff --git a/packages/example/gen/godot/src/form/ControlledForm.nodes.gen.ts b/packages/example/gen/godot/src/form/ControlledForm.nodes.gen.ts new file mode 100644 index 0000000..02b749e --- /dev/null +++ b/packages/example/gen/godot/src/form/ControlledForm.nodes.gen.ts @@ -0,0 +1,5 @@ +declare module "godot" { + interface SceneNodes { + "src/form/ControlledForm.tscn": {}; + } +} diff --git a/packages/example/gen/godot/src/form/ControlledForm.tscn.gen.ts b/packages/example/gen/godot/src/form/ControlledForm.tscn.gen.ts new file mode 100644 index 0000000..bd458c0 --- /dev/null +++ b/packages/example/gen/godot/src/form/ControlledForm.tscn.gen.ts @@ -0,0 +1,5 @@ +declare module "godot" { + interface ResourceTypes { + "res://src/form/ControlledForm.tscn": PackedScene>; + } +} diff --git a/packages/example/src/form/ControlledForm.ts b/packages/example/src/form/ControlledForm.ts new file mode 100644 index 0000000..5f3acad --- /dev/null +++ b/packages/example/src/form/ControlledForm.ts @@ -0,0 +1,6 @@ +import { Control } from "godot" +import { Class } from "react-godot-renderer" +import { ControlledFormRoot } from "./ControlledFormRoot" + + +export default class ControlledForm extends Class.make(Control, ControlledFormRoot) {} diff --git a/packages/example/src/form/ControlledForm.ts.uid b/packages/example/src/form/ControlledForm.ts.uid new file mode 100644 index 0000000..52264bd --- /dev/null +++ b/packages/example/src/form/ControlledForm.ts.uid @@ -0,0 +1 @@ +uid://c7c43wpsjchhs diff --git a/packages/example/src/form/ControlledForm.tscn b/packages/example/src/form/ControlledForm.tscn new file mode 100644 index 0000000..ae7c371 --- /dev/null +++ b/packages/example/src/form/ControlledForm.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://dmvgc7era5i4e"] + +[ext_resource type="Script" uid="uid://c7c43wpsjchhs" path="res://src/form/ControlledForm.ts" id="1_4ihd3"] + +[node name="ControlledForm" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_4ihd3") diff --git a/packages/example/src/form/ControlledFormRoot.tsx b/packages/example/src/form/ControlledFormRoot.tsx new file mode 100644 index 0000000..296a0df --- /dev/null +++ b/packages/example/src/form/ControlledFormRoot.tsx @@ -0,0 +1,24 @@ +import Godot from "godot" +import { Component } from "react-godot-renderer" + + +const CenterContainer = Component.fromClass(Godot.CenterContainer) +const VFlowContainer = Component.fromClass(Godot.VFlowContainer) +const Label = Component.fromClass(Godot.Label) + +/** + * A form UI where React controls the state + */ +export function ControlledFormRoot() { + return ( + + + + + + + ) +}