From cc87f7997483145f27b9539d8fdd4a6459ae5f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 4 Jan 2026 23:15:21 +0100 Subject: [PATCH] Add Tween tests --- .../gen/godot/src/tween/Tween.nodes.gen.ts | 5 +++ .../gen/godot/src/tween/Tween.tscn.gen.ts | 6 +++ packages/example/src/components.ts | 10 +++++ packages/example/src/components.ts.uid | 1 + packages/example/src/tween/Tween.ts | 6 +++ packages/example/src/tween/Tween.ts.uid | 1 + packages/example/src/tween/Tween.tscn | 12 +++++ packages/example/src/tween/TweenRoot.tsx | 45 +++++++++++++++++++ .../react-godot-renderer/src/Component.ts | 4 +- 9 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 packages/example/gen/godot/src/tween/Tween.nodes.gen.ts create mode 100644 packages/example/gen/godot/src/tween/Tween.tscn.gen.ts create mode 100644 packages/example/src/components.ts create mode 100644 packages/example/src/components.ts.uid create mode 100644 packages/example/src/tween/Tween.ts create mode 100644 packages/example/src/tween/Tween.ts.uid create mode 100644 packages/example/src/tween/Tween.tscn create mode 100644 packages/example/src/tween/TweenRoot.tsx diff --git a/packages/example/gen/godot/src/tween/Tween.nodes.gen.ts b/packages/example/gen/godot/src/tween/Tween.nodes.gen.ts new file mode 100644 index 0000000..9641aa3 --- /dev/null +++ b/packages/example/gen/godot/src/tween/Tween.nodes.gen.ts @@ -0,0 +1,5 @@ +declare module "godot" { + interface SceneNodes { + "src/tween/Tween.tscn": {}; + } +} diff --git a/packages/example/gen/godot/src/tween/Tween.tscn.gen.ts b/packages/example/gen/godot/src/tween/Tween.tscn.gen.ts new file mode 100644 index 0000000..2081276 --- /dev/null +++ b/packages/example/gen/godot/src/tween/Tween.tscn.gen.ts @@ -0,0 +1,6 @@ +import Tween from "../../../../src/tween/Tween"; +declare module "godot" { + interface ResourceTypes { + "res://src/tween/Tween.tscn": PackedScene; + } +} diff --git a/packages/example/src/components.ts b/packages/example/src/components.ts new file mode 100644 index 0000000..881d7fe --- /dev/null +++ b/packages/example/src/components.ts @@ -0,0 +1,10 @@ +import Godot from "godot" +import { Component } from "react-godot-renderer" + + +export const Control = Component.fromClass(Godot.Control) +export const CenterContainer = Component.fromClass(Godot.CenterContainer) +export const HBoxContainer = Component.fromClass(Godot.HBoxContainer) +export const VBoxContainer = Component.fromClass(Godot.VBoxContainer) +export const Label = Component.fromClass(Godot.Label) +export const CheckBox = Component.fromClass(Godot.CheckBox) diff --git a/packages/example/src/components.ts.uid b/packages/example/src/components.ts.uid new file mode 100644 index 0000000..0e44106 --- /dev/null +++ b/packages/example/src/components.ts.uid @@ -0,0 +1 @@ +uid://c4p5ioay76skq diff --git a/packages/example/src/tween/Tween.ts b/packages/example/src/tween/Tween.ts new file mode 100644 index 0000000..5422b52 --- /dev/null +++ b/packages/example/src/tween/Tween.ts @@ -0,0 +1,6 @@ +import { Control } from "godot" +import { Class } from "react-godot-renderer" +import { TweenRoot } from "./TweenRoot" + + +export default class Tween extends Class.make(Control, TweenRoot) {} diff --git a/packages/example/src/tween/Tween.ts.uid b/packages/example/src/tween/Tween.ts.uid new file mode 100644 index 0000000..41b91f3 --- /dev/null +++ b/packages/example/src/tween/Tween.ts.uid @@ -0,0 +1 @@ +uid://cau87pj31qgqr diff --git a/packages/example/src/tween/Tween.tscn b/packages/example/src/tween/Tween.tscn new file mode 100644 index 0000000..c0c5f91 --- /dev/null +++ b/packages/example/src/tween/Tween.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://cc4bbuq05f7us"] + +[ext_resource type="Script" uid="uid://cau87pj31qgqr" path="res://src/tween/Tween.ts" id="1_cpsg0"] + +[node name="Tween" 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_cpsg0") diff --git a/packages/example/src/tween/TweenRoot.tsx b/packages/example/src/tween/TweenRoot.tsx new file mode 100644 index 0000000..cc4386a --- /dev/null +++ b/packages/example/src/tween/TweenRoot.tsx @@ -0,0 +1,45 @@ +import Godot, { Vector2 } from "godot" +import { useState } from "react" +import { CenterContainer, CheckBox, HBoxContainer, Label, VBoxContainer } from "../components" + + +export function TweenRoot() { + const [show, setShow] = useState(false) + + return ( + + + + + + + + {show && + + + ) +} diff --git a/packages/react-godot-renderer/src/Component.ts b/packages/react-godot-renderer/src/Component.ts index d5d290b..850a536 100644 --- a/packages/react-godot-renderer/src/Component.ts +++ b/packages/react-godot-renderer/src/Component.ts @@ -12,7 +12,7 @@ export type Props> = { [K in keyof T as T[K] extends Function | Godot.Signal ? never : K]?: T[K] } & { [K in keyof T as T[K] extends Godot.Signal ? K : never]?: T[K] extends Godot.Signal - ? (this: T, ...args: Parameters) => ReturnType + ? ((this: T, ...args: Parameters) => ReturnType) | ((this: T, ...args: Parameters) => Promise>) : never } @@ -68,7 +68,7 @@ export declare namespace useSignal { export type Function, N extends useSignal.SignalNames> = ( T[N] extends Godot.Signal - ? (this: T, ...args: Parameters) => ReturnType + ? ((this: T, ...args: Parameters) => ReturnType) | ((this: T, ...args: Parameters) => Promise>) : never ) }