cubeforge 0.7.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +87 -2
- package/dist/index.js +1066 -285
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export { AudioAnalyserControls, AudioAnalyserOptions, AudioGroup, AudioScheduler
|
|
|
17
17
|
export { DevToolsHandle } from '@cubeforge/devtools';
|
|
18
18
|
import { Room } from '@cubeforge/net';
|
|
19
19
|
export { BinaryNetTransport, ClientPrediction, InterpolationBuffer, InterpolationBufferConfig, InterpolationState, NetMessage, NetTransport, NetworkInputConfig, PredictionConfig, Room, RoomConfig, SyncConfig, WebRTCTransport, WebRTCTransportConfig, WebSocketTransportOptions, createWebRTCTransport, createWebSocketTransport, isBinaryTransport, syncEntity, useNetworkInput } from '@cubeforge/net';
|
|
20
|
+
export { BoolField, ColorField, EditorShell, EditorShellProps, EditorState, EntityInfo, EntityInspector, EntityInspectorProps, NumberField, SceneHierarchy, SceneHierarchyProps, TextField, Vec2Field, useEditorState } from '@cubeforge/editor';
|
|
20
21
|
|
|
21
22
|
interface GameControls {
|
|
22
23
|
pause(): void;
|
|
@@ -145,6 +146,12 @@ interface SpriteProps {
|
|
|
145
146
|
height: number;
|
|
146
147
|
color?: string;
|
|
147
148
|
src?: string;
|
|
149
|
+
/**
|
|
150
|
+
* ID returned by `useDynamicCanvas()`. When set the sprite samples from
|
|
151
|
+
* the registered canvas texture and re-uploads it whenever `markDirty()`
|
|
152
|
+
* is called on that handle.
|
|
153
|
+
*/
|
|
154
|
+
dynamicSrc?: string;
|
|
148
155
|
offsetX?: number;
|
|
149
156
|
offsetY?: number;
|
|
150
157
|
zIndex?: number;
|
|
@@ -190,7 +197,7 @@ interface SpriteProps {
|
|
|
190
197
|
/** Inner radius ratio for 'star' shape (0-1, default 0.4) */
|
|
191
198
|
starInnerRadius?: number;
|
|
192
199
|
}
|
|
193
|
-
declare function Sprite({ width, height, color, src, offsetX, offsetY, zIndex, visible, flipX, flipY, anchorX, anchorY, frameIndex, frameWidth, frameHeight, frameColumns, atlas, frame, tileX, tileY, tileSizeX, tileSizeY, sampling, blendMode, layer, tint, tintOpacity, opacity, shape, borderRadius, strokeColor, strokeWidth, customDraw, starPoints, starInnerRadius, }: SpriteProps): null;
|
|
200
|
+
declare function Sprite({ width, height, color, src, dynamicSrc, offsetX, offsetY, zIndex, visible, flipX, flipY, anchorX, anchorY, frameIndex, frameWidth, frameHeight, frameColumns, atlas, frame, tileX, tileY, tileSizeX, tileSizeY, sampling, blendMode, layer, tint, tintOpacity, opacity, shape, borderRadius, strokeColor, strokeWidth, customDraw, starPoints, starInnerRadius, }: SpriteProps): null;
|
|
194
201
|
|
|
195
202
|
interface TextProps {
|
|
196
203
|
text: string;
|
|
@@ -1899,6 +1906,84 @@ declare function usePostProcess(effect: PostProcessEffect): void;
|
|
|
1899
1906
|
*/
|
|
1900
1907
|
declare function useWebGLPostProcess(opts: PostProcessOptions): void;
|
|
1901
1908
|
|
|
1909
|
+
interface DynamicCanvasHandle {
|
|
1910
|
+
/** Unique ID — pass to `<Sprite dynamicSrc={...}>` to display this canvas. */
|
|
1911
|
+
readonly id: string;
|
|
1912
|
+
/** The offscreen canvas you draw onto. */
|
|
1913
|
+
readonly canvas: HTMLCanvasElement;
|
|
1914
|
+
/** 2D drawing context for the canvas. */
|
|
1915
|
+
readonly ctx: CanvasRenderingContext2D;
|
|
1916
|
+
/**
|
|
1917
|
+
* Call after drawing to schedule a GPU upload before the next frame.
|
|
1918
|
+
* The renderer uses `texSubImage2D` to re-upload only when dirty,
|
|
1919
|
+
* so skipping this call when the canvas hasn't changed avoids unnecessary
|
|
1920
|
+
* CPU→GPU transfers.
|
|
1921
|
+
*/
|
|
1922
|
+
markDirty(): void;
|
|
1923
|
+
}
|
|
1924
|
+
/**
|
|
1925
|
+
* Creates a CPU-side canvas that is uploaded to the GPU as a sprite texture.
|
|
1926
|
+
* Only re-uploads when you call `markDirty()` — skipping frames where the
|
|
1927
|
+
* canvas content hasn't changed avoids redundant `texSubImage2D` calls.
|
|
1928
|
+
*
|
|
1929
|
+
* Useful for minimaps, procedural textures, dynamic UI painted with Canvas2D,
|
|
1930
|
+
* or any per-frame canvas drawing that shouldn't upload every RAF tick.
|
|
1931
|
+
*
|
|
1932
|
+
* @param width - Canvas width in pixels.
|
|
1933
|
+
* @param height - Canvas height in pixels.
|
|
1934
|
+
*
|
|
1935
|
+
* @example
|
|
1936
|
+
* ```tsx
|
|
1937
|
+
* function Minimap() {
|
|
1938
|
+
* const { id, ctx, canvas, markDirty } = useDynamicCanvas(128, 128)
|
|
1939
|
+
*
|
|
1940
|
+
* useFrame(() => {
|
|
1941
|
+
* ctx.clearRect(0, 0, canvas.width, canvas.height)
|
|
1942
|
+
* // ...draw minimap content...
|
|
1943
|
+
* markDirty()
|
|
1944
|
+
* })
|
|
1945
|
+
*
|
|
1946
|
+
* return (
|
|
1947
|
+
* <Entity>
|
|
1948
|
+
* <Transform x={-200} y={-150} />
|
|
1949
|
+
* <Sprite width={128} height={128} dynamicSrc={id} />
|
|
1950
|
+
* </Entity>
|
|
1951
|
+
* )
|
|
1952
|
+
* }
|
|
1953
|
+
* ```
|
|
1954
|
+
*/
|
|
1955
|
+
declare function useDynamicCanvas(width: number, height: number): DynamicCanvasHandle;
|
|
1956
|
+
|
|
1957
|
+
/**
|
|
1958
|
+
* Enables the WebGL renderer's idle frame skip optimisation.
|
|
1959
|
+
*
|
|
1960
|
+
* When enabled the renderer hashes visible entity positions, animation frame
|
|
1961
|
+
* indices, and camera state every tick. If the hash matches the previous frame
|
|
1962
|
+
* the GPU draw calls are skipped entirely and the cached scene is blitted to
|
|
1963
|
+
* screen instead — saving significant CPU/GPU work in static or low-motion
|
|
1964
|
+
* scenes (pause screens, dialogue boxes, turn-based games).
|
|
1965
|
+
*
|
|
1966
|
+
* Active particle systems and playing animations automatically force a redraw
|
|
1967
|
+
* even when the rest of the scene is unchanged.
|
|
1968
|
+
*
|
|
1969
|
+
* Call this once at the game or scene root level:
|
|
1970
|
+
*
|
|
1971
|
+
* @example
|
|
1972
|
+
* ```tsx
|
|
1973
|
+
* function GameScene() {
|
|
1974
|
+
* useIdleFrameSkip()
|
|
1975
|
+
* return <>{children}</>
|
|
1976
|
+
* }
|
|
1977
|
+
* ```
|
|
1978
|
+
*
|
|
1979
|
+
* Pass `false` to disable it (e.g. in a child component that needs full
|
|
1980
|
+
* redraws while a cutscene plays):
|
|
1981
|
+
* ```tsx
|
|
1982
|
+
* useIdleFrameSkip(false)
|
|
1983
|
+
* ```
|
|
1984
|
+
*/
|
|
1985
|
+
declare function useIdleFrameSkip(enabled?: boolean): void;
|
|
1986
|
+
|
|
1902
1987
|
/**
|
|
1903
1988
|
* Automatically syncs the Web Audio API listener position to the Camera2D
|
|
1904
1989
|
* entity each frame, enabling accurate positional audio for spatial sounds.
|
|
@@ -3626,4 +3711,4 @@ declare function useRemotePlayer(config: {
|
|
|
3626
3711
|
opts?: RemotePlayerOptions;
|
|
3627
3712
|
}): RemotePlayerControls;
|
|
3628
3713
|
|
|
3629
|
-
export { A11yNode, type A11yNodeProps, type AccessibilityControls, AnimatedSprite, type AnimatedSpriteProps, Animation, type AnimationSet, Animator, AssetLoader, type BoundInputMap, BoxCollider, Camera2D, type CameraBlendControls, type CameraControls, type CameraLookaheadOptions, CameraZone, CapsuleCollider, Checkpoint, type CinematicSequenceControls, type CinematicStep, Circle, CircleCollider, type ComboDetectorResult, CompoundCollider, ConvexCollider, type CoordinateHelpers, type CoroutineControls, type CoroutineFactory, type CoroutineYield, type DraggableControls, type DraggableOptions, type DroppableControls, type DroppableOptions, EditableText, type EditableTextProps, Entity, type ExportOptions, FocusRing, type FocusRingProps, type FocusableOptions, Game, type GameControls, type GamepadState, type GestureHandlers, type GestureOptions, Gradient, type GridCell, type GridControls, type GridOptions, type HMRControls, HUD, HUDBar, type HUDBarProps, HUDCounter, type HUDCounterProps, type HUDPosition, type HUDProps, HUDZone, type HUDZoneProps, HalfSpaceCollider, HeightFieldCollider, type HistoryControls, type HistoryOptions, type HoverableControls, type HoverableOptions, type InputContextControls, Joint, type KeyboardFocusControls, Line, Mask, MovingPlatform, type NetworkSyncOptions, NineSlice, PARTICLE_PRESETS, ParallaxLayer, ParticleEmitter, type ParticleEmitterConfig, type ParticlePreset, type PauseControls, type PinchEvent, Polygon, type PreloadState, type ProfilerData, type RemotePlayerControls, type RemotePlayerOptions, RigidBody, type SceneManagerControls, type SceneSaveOptions, type SceneTransitionControls, SceneTransitionOverlay, ScreenFlash, type ScreenFlashHandle, Script, SegmentCollider, type SelectOptions, Selection, type SelectionControls, type SelectionProps, type SnapControls, type SnapOptions, type SnapResult, type SnapshotControls, Sprite, type SpriteAtlas, SquashStretch, type SquashStretchControls, Stage, type SwipeEvent, Text, type TiledLayer, type TiledObject, Tilemap, type TimerControls, type TouchControls, type TouchHapticsControls, Trail, Transform, TransformHandles, type TransformHandlesProps, type TransitionEffect, TriMeshCollider, TriangleCollider, type TurnSystemControls, type TurnSystemOptions, VectorPath, type VectorPathProps, VirtualCamera, type VirtualCameraConfig, type VirtualCameraProps, type VirtualInputState, VirtualJoystick, type VirtualJoystickProps, type Waypoint, World, createAtlas, defineAnimations, definePrefab, deleteSavedScene, downloadCanvas, exportToBlob, exportToDataURL, listSavedScenes, loadScene, loadSceneFromLocalStorage, playClip, saveScene, saveSceneToLocalStorage, setAnimationState, setAnimatorParam, useAccessibility, useAudioListener, useCamera, useCameraBlend, useCameraLookahead, useCinematicSequence, useComboDetector, useCoordinates, useCoroutine, useDestroyEntity, useDraggable, useDroppable, useEntity, useEvent, useEvents, useFocusable, useGame, useGamepad, useGamepadHaptics, useGestures, useGrid, useHMR, useHistory, useHitstop, useHoverable, useInput, useInputBuffer, useInputContext, useInputMap, useInputRecorder, useKeyboardFocus, useLocalMultiplayer, useNetworkSync, useParent, usePause, usePlayerInput, usePostProcess, usePreload, useProfiler, useRemotePlayer, useSceneManager, useSceneTransition, useSelection, useSnap, useSnapshot, useSquashStretch, useTimer, useTouch, useTouchHaptics, useTurnSystem, useVirtualInput, useWebGLPostProcess, useWorldQuery, wait, waitFrames, waitUntil };
|
|
3714
|
+
export { A11yNode, type A11yNodeProps, type AccessibilityControls, AnimatedSprite, type AnimatedSpriteProps, Animation, type AnimationSet, Animator, AssetLoader, type BoundInputMap, BoxCollider, Camera2D, type CameraBlendControls, type CameraControls, type CameraLookaheadOptions, CameraZone, CapsuleCollider, Checkpoint, type CinematicSequenceControls, type CinematicStep, Circle, CircleCollider, type ComboDetectorResult, CompoundCollider, ConvexCollider, type CoordinateHelpers, type CoroutineControls, type CoroutineFactory, type CoroutineYield, type DraggableControls, type DraggableOptions, type DroppableControls, type DroppableOptions, type DynamicCanvasHandle, EditableText, type EditableTextProps, Entity, type ExportOptions, FocusRing, type FocusRingProps, type FocusableOptions, Game, type GameControls, type GamepadState, type GestureHandlers, type GestureOptions, Gradient, type GridCell, type GridControls, type GridOptions, type HMRControls, HUD, HUDBar, type HUDBarProps, HUDCounter, type HUDCounterProps, type HUDPosition, type HUDProps, HUDZone, type HUDZoneProps, HalfSpaceCollider, HeightFieldCollider, type HistoryControls, type HistoryOptions, type HoverableControls, type HoverableOptions, type InputContextControls, Joint, type KeyboardFocusControls, Line, Mask, MovingPlatform, type NetworkSyncOptions, NineSlice, PARTICLE_PRESETS, ParallaxLayer, ParticleEmitter, type ParticleEmitterConfig, type ParticlePreset, type PauseControls, type PinchEvent, Polygon, type PreloadState, type ProfilerData, type RemotePlayerControls, type RemotePlayerOptions, RigidBody, type SceneManagerControls, type SceneSaveOptions, type SceneTransitionControls, SceneTransitionOverlay, ScreenFlash, type ScreenFlashHandle, Script, SegmentCollider, type SelectOptions, Selection, type SelectionControls, type SelectionProps, type SnapControls, type SnapOptions, type SnapResult, type SnapshotControls, Sprite, type SpriteAtlas, SquashStretch, type SquashStretchControls, Stage, type SwipeEvent, Text, type TiledLayer, type TiledObject, Tilemap, type TimerControls, type TouchControls, type TouchHapticsControls, Trail, Transform, TransformHandles, type TransformHandlesProps, type TransitionEffect, TriMeshCollider, TriangleCollider, type TurnSystemControls, type TurnSystemOptions, VectorPath, type VectorPathProps, VirtualCamera, type VirtualCameraConfig, type VirtualCameraProps, type VirtualInputState, VirtualJoystick, type VirtualJoystickProps, type Waypoint, World, createAtlas, defineAnimations, definePrefab, deleteSavedScene, downloadCanvas, exportToBlob, exportToDataURL, listSavedScenes, loadScene, loadSceneFromLocalStorage, playClip, saveScene, saveSceneToLocalStorage, setAnimationState, setAnimatorParam, useAccessibility, useAudioListener, useCamera, useCameraBlend, useCameraLookahead, useCinematicSequence, useComboDetector, useCoordinates, useCoroutine, useDestroyEntity, useDraggable, useDroppable, useDynamicCanvas, useEntity, useEvent, useEvents, useFocusable, useGame, useGamepad, useGamepadHaptics, useGestures, useGrid, useHMR, useHistory, useHitstop, useHoverable, useIdleFrameSkip, useInput, useInputBuffer, useInputContext, useInputMap, useInputRecorder, useKeyboardFocus, useLocalMultiplayer, useNetworkSync, useParent, usePause, usePlayerInput, usePostProcess, usePreload, useProfiler, useRemotePlayer, useSceneManager, useSceneTransition, useSelection, useSnap, useSnapshot, useSquashStretch, useTimer, useTouch, useTouchHaptics, useTurnSystem, useVirtualInput, useWebGLPostProcess, useWorldQuery, wait, waitFrames, waitUntil };
|