@nice2dev/game-engine 1.1.7 → 1.1.10
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/CHANGELOG.md +146 -0
- package/dist/cjs/ai/StateMachine.js +54 -0
- package/dist/cjs/devtools/DeveloperExperience.js +5 -5
- package/dist/cjs/dialogue/DialogueSystem.js +1 -1
- package/dist/cjs/editor/AnimationRetargeting.js +13 -0
- package/dist/cjs/editor/AssetBrowser.js +26 -25
- package/dist/cjs/editor/NiceGameEditor.js +66 -49
- package/dist/cjs/editor/TimelineEditor.js +12 -0
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +33 -32
- package/dist/cjs/i18n/I18n.js +305 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/kids/KidMode.js +36 -36
- package/dist/cjs/kids/KidTools.js +31 -31
- package/dist/cjs/native-engine/AnimationSystem.js +840 -0
- package/dist/cjs/native-engine/InputSystem.js +9 -2
- package/dist/cjs/plugins/PluginSDK.js +1 -1
- package/dist/cjs/plugins/PluginTestKit.js +1 -1
- package/dist/cjs/quest/QuestSystem.js +5 -1
- package/dist/cjs/tutorials/TutorialBranching.js +12 -12
- package/dist/cjs/tutorials/TutorialEngine.js +35 -35
- package/dist/cjs/tutorials/content/Tutorials_T05_T08.js +75 -75
- package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +24 -24
- package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +33 -33
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js +25 -24
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js +28 -27
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js +31 -30
- package/dist/esm/ai/StateMachine.js +53 -1
- package/dist/esm/devtools/DeveloperExperience.js +5 -5
- package/dist/esm/dialogue/DialogueSystem.js +1 -1
- package/dist/esm/editor/AnimationRetargeting.js +13 -1
- package/dist/esm/editor/AssetBrowser.js +26 -25
- package/dist/esm/editor/NiceGameEditor.js +67 -50
- package/dist/esm/editor/TimelineEditor.js +12 -1
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js +33 -32
- package/dist/esm/i18n/I18n.js +305 -0
- package/dist/esm/index.js +4 -3
- package/dist/esm/kids/KidMode.js +36 -36
- package/dist/esm/kids/KidTools.js +31 -31
- package/dist/esm/native-engine/AnimationSystem.js +835 -0
- package/dist/esm/native-engine/InputSystem.js +9 -2
- package/dist/esm/plugins/PluginSDK.js +1 -1
- package/dist/esm/plugins/PluginTestKit.js +1 -1
- package/dist/esm/quest/QuestSystem.js +5 -1
- package/dist/esm/tutorials/TutorialBranching.js +12 -12
- package/dist/esm/tutorials/TutorialEngine.js +35 -35
- package/dist/esm/tutorials/content/Tutorials_T05_T08.js +75 -75
- package/dist/esm/tutorials/content/Tutorials_T09_T11.js +24 -24
- package/dist/esm/tutorials/content/Tutorials_T12_T15.js +33 -33
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js +25 -24
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js +28 -27
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js +31 -30
- package/dist/types/editor/AssetBrowser.d.ts +1 -0
- package/dist/types/editor/behavior-tree/BTEditorNode.d.ts +2 -1
- package/dist/types/editor/behavior-tree/BTEditorToolbar.d.ts +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/kids/KidMode.d.ts +4 -2
- package/dist/types/kids/KidTools.d.ts +1 -1
- package/dist/types/tutorials/TutorialBranching.d.ts +1 -1
- package/package.json +4 -3
- package/dist/cjs/accessibility/Accessibility.js.map +0 -1
- package/dist/cjs/ai/AI.js.map +0 -1
- package/dist/cjs/ai/BehaviorTree.js.map +0 -1
- package/dist/cjs/ai/StateMachine.js.map +0 -1
- package/dist/cjs/animation/Animation.js.map +0 -1
- package/dist/cjs/audio/AudioAdvanced.js.map +0 -1
- package/dist/cjs/audio/AudioBridge.js.map +0 -1
- package/dist/cjs/audio/AudioManager.js.map +0 -1
- package/dist/cjs/build-cloud/BuildOrchestration.js.map +0 -1
- package/dist/cjs/build-cloud/GodotBuildCloud.js.map +0 -1
- package/dist/cjs/build-cloud/UnityBuildCloud.js.map +0 -1
- package/dist/cjs/build-cloud/UnrealBuildCloud.js.map +0 -1
- package/dist/cjs/core/EventBus.js.map +0 -1
- package/dist/cjs/core/GameClock.js.map +0 -1
- package/dist/cjs/core/GameConfig.js.map +0 -1
- package/dist/cjs/core/GameLoop.js.map +0 -1
- package/dist/cjs/core/ServiceLocator.js.map +0 -1
- package/dist/cjs/core/Validation.js.map +0 -1
- package/dist/cjs/core/math.js.map +0 -1
- package/dist/cjs/devtools/DevTools.js.map +0 -1
- package/dist/cjs/devtools/DeveloperExperience.js.map +0 -1
- package/dist/cjs/devtools/GameplayAnalytics.js.map +0 -1
- package/dist/cjs/dialogue/DialogueSystem.js.map +0 -1
- package/dist/cjs/docs/DocGenerator.js.map +0 -1
- package/dist/cjs/ecs/World.js.map +0 -1
- package/dist/cjs/editor/AchievementEditor.js.map +0 -1
- package/dist/cjs/editor/AdvancedEditor.js.map +0 -1
- package/dist/cjs/editor/AnimationRetargeting.js.map +0 -1
- package/dist/cjs/editor/AssetBrowser.js.map +0 -1
- package/dist/cjs/editor/AssetManager.js.map +0 -1
- package/dist/cjs/editor/ConsolePro.js.map +0 -1
- package/dist/cjs/editor/CraftingEditor.js.map +0 -1
- package/dist/cjs/editor/DebugTools.js.map +0 -1
- package/dist/cjs/editor/DialogueSystem.js.map +0 -1
- package/dist/cjs/editor/LeaderboardSystem.js.map +0 -1
- package/dist/cjs/editor/NiceGameEditor.js.map +0 -1
- package/dist/cjs/editor/PrefabSystem.js.map +0 -1
- package/dist/cjs/editor/ProfilerPanel.js.map +0 -1
- package/dist/cjs/editor/QuestEditor.js.map +0 -1
- package/dist/cjs/editor/ReplaySystem.js.map +0 -1
- package/dist/cjs/editor/SceneEditor.js.map +0 -1
- package/dist/cjs/editor/ScreenshotMode.js.map +0 -1
- package/dist/cjs/editor/ShaderGraph.js.map +0 -1
- package/dist/cjs/editor/TimelineEditor.js.map +0 -1
- package/dist/cjs/editor/UndoRedoPro.js.map +0 -1
- package/dist/cjs/editor/VRARMode.js.map +0 -1
- package/dist/cjs/engine/NiceGameEngine.js.map +0 -1
- package/dist/cjs/engine/SaveSystem.js.map +0 -1
- package/dist/cjs/engine/SaveSystemV2.js +0 -530
- package/dist/cjs/engine/SaveSystemV2.js.map +0 -1
- package/dist/cjs/enterprise/Enterprise.js.map +0 -1
- package/dist/cjs/export/BevyExporter.js.map +0 -1
- package/dist/cjs/export/CocosExporter.js.map +0 -1
- package/dist/cjs/export/Construct3Exporter.js.map +0 -1
- package/dist/cjs/export/DefoldExporter.js.map +0 -1
- package/dist/cjs/export/GDevelopExporter.js.map +0 -1
- package/dist/cjs/export/GameMakerExporter.js.map +0 -1
- package/dist/cjs/export/GodotExporter.js.map +0 -1
- package/dist/cjs/export/MinecraftBedrockExporter.js.map +0 -1
- package/dist/cjs/export/MonoGameExporter.js.map +0 -1
- package/dist/cjs/export/Pico8Exporter.js.map +0 -1
- package/dist/cjs/export/PlatformExporter.js.map +0 -1
- package/dist/cjs/export/RPGMakerExporter.js.map +0 -1
- package/dist/cjs/export/RobloxExporter.js.map +0 -1
- package/dist/cjs/export/Solar2DExporter.js.map +0 -1
- package/dist/cjs/export/ThreeJSExporter.js.map +0 -1
- package/dist/cjs/export/Tic80Exporter.js.map +0 -1
- package/dist/cjs/export/UnityExporter.js.map +0 -1
- package/dist/cjs/export/UnrealExporter.js.map +0 -1
- package/dist/cjs/export/WebExporter.js.map +0 -1
- package/dist/cjs/export/index.js.map +0 -1
- package/dist/cjs/godot-integration/GodotAssetLibrary.js.map +0 -1
- package/dist/cjs/godot-integration/GodotImport.js.map +0 -1
- package/dist/cjs/godot-integration/GodotLiveLink.js.map +0 -1
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js.map +0 -1
- package/dist/cjs/i18n/I18n.js.map +0 -1
- package/dist/cjs/i18n/useTranslation.js.map +0 -1
- package/dist/cjs/import/AsepriteImporter.js.map +0 -1
- package/dist/cjs/import/DragonBonesImporter.js.map +0 -1
- package/dist/cjs/import/GameMakerImporter.js.map +0 -1
- package/dist/cjs/import/GodotSceneImporter.js.map +0 -1
- package/dist/cjs/import/LDtkImporter.js.map +0 -1
- package/dist/cjs/import/Live2DImporter.js.map +0 -1
- package/dist/cjs/import/NdgFormat.js.map +0 -1
- package/dist/cjs/import/OgmoImporter.js.map +0 -1
- package/dist/cjs/import/RPGMakerImporter.js.map +0 -1
- package/dist/cjs/import/SceneImporter.js.map +0 -1
- package/dist/cjs/import/SpineImporter.js.map +0 -1
- package/dist/cjs/import/SpriterImporter.js.map +0 -1
- package/dist/cjs/import/TiledMapImporter.js.map +0 -1
- package/dist/cjs/import/UnitySceneImporter.js.map +0 -1
- package/dist/cjs/import/index.js.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/input/GamepadNavigation.js.map +0 -1
- package/dist/cjs/input/InputManager.js.map +0 -1
- package/dist/cjs/input/useGamepads.js.map +0 -1
- package/dist/cjs/integration/IconSprite.js.map +0 -1
- package/dist/cjs/inventory/InventorySystem.js.map +0 -1
- package/dist/cjs/kids/KidMode.js.map +0 -1
- package/dist/cjs/kids/KidTools.js.map +0 -1
- package/dist/cjs/monetization/Monetization.js.map +0 -1
- package/dist/cjs/multiplayer/LocalMultiplayer.js.map +0 -1
- package/dist/cjs/multiplayer/MiniGameTypes.js.map +0 -1
- package/dist/cjs/native-engine/AssetPipeline.js.map +0 -1
- package/dist/cjs/native-engine/AudioEngine.js.map +0 -1
- package/dist/cjs/native-engine/InputSystem.js.map +0 -1
- package/dist/cjs/native-engine/NetworkingSystem.js.map +0 -1
- package/dist/cjs/native-engine/PhysicsEngine.js.map +0 -1
- package/dist/cjs/native-engine/RenderingEngine.js.map +0 -1
- package/dist/cjs/native-engine/SceneGraph.js.map +0 -1
- package/dist/cjs/network/MultiplayerTransport.js.map +0 -1
- package/dist/cjs/network/Networking.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/index.js.map +0 -1
- package/dist/cjs/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +0 -1
- package/dist/cjs/pathfinding/Pathfinding.js.map +0 -1
- package/dist/cjs/performance/AssetStreaming.js.map +0 -1
- package/dist/cjs/performance/BenchmarkSuite.js.map +0 -1
- package/dist/cjs/performance/DeltaCompression.js.map +0 -1
- package/dist/cjs/performance/DeterministicPhysics.js.map +0 -1
- package/dist/cjs/performance/ECSOptimization.js.map +0 -1
- package/dist/cjs/performance/GameSaveSystem.js.map +0 -1
- package/dist/cjs/performance/HotReload.js.map +0 -1
- package/dist/cjs/performance/InputRecording.js.map +0 -1
- package/dist/cjs/performance/InterestManagement.js.map +0 -1
- package/dist/cjs/performance/LocalizationRuntime.js.map +0 -1
- package/dist/cjs/performance/MemoryManagement.js.map +0 -1
- package/dist/cjs/performance/ModSupport.js.map +0 -1
- package/dist/cjs/performance/MultiThreadedPhysics.js.map +0 -1
- package/dist/cjs/performance/NetworkPrediction.js.map +0 -1
- package/dist/cjs/performance/ObjectPooling.js.map +0 -1
- package/dist/cjs/performance/Performance.js.map +0 -1
- package/dist/cjs/performance/PerformanceAdvanced.js.map +0 -1
- package/dist/cjs/performance/SaveSystem.js +0 -574
- package/dist/cjs/performance/SaveSystem.js.map +0 -1
- package/dist/cjs/performance/WebGPURenderer.js.map +0 -1
- package/dist/cjs/physics/PhysicsAdvanced.js.map +0 -1
- package/dist/cjs/physics/PhysicsEngine2D.js.map +0 -1
- package/dist/cjs/plugins/PluginSDK.js.map +0 -1
- package/dist/cjs/plugins/PluginTestKit.js.map +0 -1
- package/dist/cjs/procedural/Procedural.js.map +0 -1
- package/dist/cjs/procedural/WorldBuilding.js.map +0 -1
- package/dist/cjs/quest/QuestSystem.js.map +0 -1
- package/dist/cjs/release/MobileExport.js.map +0 -1
- package/dist/cjs/release/Release.js.map +0 -1
- package/dist/cjs/rendering/Camera2D.js.map +0 -1
- package/dist/cjs/rendering/Renderer2D.js.map +0 -1
- package/dist/cjs/rendering/WebGPURenderPipeline.js.map +0 -1
- package/dist/cjs/runtime3d/Runtime3D.js.map +0 -1
- package/dist/cjs/runtime3d/SceneEditor3D.js.map +0 -1
- package/dist/cjs/scene/SceneManager.js.map +0 -1
- package/dist/cjs/scripting/GraphToAST.js.map +0 -1
- package/dist/cjs/scripting/LanguageExporter.js.map +0 -1
- package/dist/cjs/scripting/NodeGraph.js.map +0 -1
- package/dist/cjs/scripting/ScriptAST.js.map +0 -1
- package/dist/cjs/scripting/VisualScripting2.js.map +0 -1
- package/dist/cjs/scripting/exporters/CSharpExporter.js.map +0 -1
- package/dist/cjs/scripting/exporters/GDScriptExporter.js.map +0 -1
- package/dist/cjs/scripting/exporters/LuaExporter.js.map +0 -1
- package/dist/cjs/scripting/exporters/PythonExporter.js.map +0 -1
- package/dist/cjs/scripting/exporters/RustExporter.js.map +0 -1
- package/dist/cjs/scripting/exporters/TypeScriptExporter.js.map +0 -1
- package/dist/cjs/social/Social.js.map +0 -1
- package/dist/cjs/systems/LightingSystem.js.map +0 -1
- package/dist/cjs/systems/ParticleSystem2.js.map +0 -1
- package/dist/cjs/systems/PhysicsDebugSystem.js.map +0 -1
- package/dist/cjs/systems/TerrainSystem.js.map +0 -1
- package/dist/cjs/templates/ActionTemplates.js.map +0 -1
- package/dist/cjs/templates/FightingTemplate.js.map +0 -1
- package/dist/cjs/templates/MetroidvaniaTemplate.js.map +0 -1
- package/dist/cjs/templates/PartyTemplates.js.map +0 -1
- package/dist/cjs/templates/PuzzleTemplates.js.map +0 -1
- package/dist/cjs/templates/RPGTemplates.js.map +0 -1
- package/dist/cjs/templates/SportsTemplates.js.map +0 -1
- package/dist/cjs/templates/StrategyTemplates.js.map +0 -1
- package/dist/cjs/templates/SurvivalTemplate.js.map +0 -1
- package/dist/cjs/templates/WaveDefense.js.map +0 -1
- package/dist/cjs/tilemap/Tilemap.js.map +0 -1
- package/dist/cjs/tutorials/TutorialBranching.js.map +0 -1
- package/dist/cjs/tutorials/TutorialEngine.js.map +0 -1
- package/dist/cjs/tutorials/TutorialOverlay.js.map +0 -1
- package/dist/cjs/tutorials/content/Tutorials_T05_T08.js.map +0 -1
- package/dist/cjs/tutorials/content/Tutorials_T09_T11.js.map +0 -1
- package/dist/cjs/tutorials/content/Tutorials_T12_T15.js.map +0 -1
- package/dist/cjs/ui/GameUI.js.map +0 -1
- package/dist/cjs/unity-integration/UnityAssetStore.js.map +0 -1
- package/dist/cjs/unity-integration/UnityImport.js.map +0 -1
- package/dist/cjs/unity-integration/UnityLiveLink.js.map +0 -1
- package/dist/cjs/unity-integration/components/UnityAssetStoreBrowser.js.map +0 -1
- package/dist/cjs/unity-integration/components/UnityProjectBrowser.js.map +0 -1
- package/dist/cjs/unreal-integration/UnrealImport.js.map +0 -1
- package/dist/cjs/unreal-integration/UnrealLiveLink.js.map +0 -1
- package/dist/cjs/unreal-integration/UnrealMarketplace.js.map +0 -1
- package/dist/cjs/unreal-integration/components/UnrealProjectBrowser.js.map +0 -1
- package/dist/cjs/xr/ARVR.js.map +0 -1
- package/dist/esm/accessibility/Accessibility.js.map +0 -1
- package/dist/esm/ai/AI.js.map +0 -1
- package/dist/esm/ai/BehaviorTree.js.map +0 -1
- package/dist/esm/ai/StateMachine.js.map +0 -1
- package/dist/esm/animation/Animation.js.map +0 -1
- package/dist/esm/audio/AudioAdvanced.js.map +0 -1
- package/dist/esm/audio/AudioBridge.js.map +0 -1
- package/dist/esm/audio/AudioManager.js.map +0 -1
- package/dist/esm/build-cloud/BuildOrchestration.js.map +0 -1
- package/dist/esm/build-cloud/GodotBuildCloud.js.map +0 -1
- package/dist/esm/build-cloud/UnityBuildCloud.js.map +0 -1
- package/dist/esm/build-cloud/UnrealBuildCloud.js.map +0 -1
- package/dist/esm/core/EventBus.js.map +0 -1
- package/dist/esm/core/GameClock.js.map +0 -1
- package/dist/esm/core/GameConfig.js.map +0 -1
- package/dist/esm/core/GameLoop.js.map +0 -1
- package/dist/esm/core/ServiceLocator.js.map +0 -1
- package/dist/esm/core/Validation.js.map +0 -1
- package/dist/esm/core/math.js.map +0 -1
- package/dist/esm/devtools/DevTools.js.map +0 -1
- package/dist/esm/devtools/DeveloperExperience.js.map +0 -1
- package/dist/esm/devtools/GameplayAnalytics.js.map +0 -1
- package/dist/esm/dialogue/DialogueSystem.js.map +0 -1
- package/dist/esm/docs/DocGenerator.js.map +0 -1
- package/dist/esm/ecs/World.js.map +0 -1
- package/dist/esm/editor/AchievementEditor.js.map +0 -1
- package/dist/esm/editor/AdvancedEditor.js.map +0 -1
- package/dist/esm/editor/AnimationRetargeting.js.map +0 -1
- package/dist/esm/editor/AssetBrowser.js.map +0 -1
- package/dist/esm/editor/AssetManager.js.map +0 -1
- package/dist/esm/editor/ConsolePro.js.map +0 -1
- package/dist/esm/editor/CraftingEditor.js.map +0 -1
- package/dist/esm/editor/DebugTools.js.map +0 -1
- package/dist/esm/editor/DialogueSystem.js.map +0 -1
- package/dist/esm/editor/LeaderboardSystem.js.map +0 -1
- package/dist/esm/editor/NiceGameEditor.js.map +0 -1
- package/dist/esm/editor/PrefabSystem.js.map +0 -1
- package/dist/esm/editor/ProfilerPanel.js.map +0 -1
- package/dist/esm/editor/QuestEditor.js.map +0 -1
- package/dist/esm/editor/ReplaySystem.js.map +0 -1
- package/dist/esm/editor/SceneEditor.js.map +0 -1
- package/dist/esm/editor/ScreenshotMode.js.map +0 -1
- package/dist/esm/editor/ShaderGraph.js.map +0 -1
- package/dist/esm/editor/TimelineEditor.js.map +0 -1
- package/dist/esm/editor/UndoRedoPro.js.map +0 -1
- package/dist/esm/editor/VRARMode.js.map +0 -1
- package/dist/esm/engine/NiceGameEngine.js.map +0 -1
- package/dist/esm/engine/SaveSystem.js.map +0 -1
- package/dist/esm/engine/SaveSystemV2.js +0 -523
- package/dist/esm/engine/SaveSystemV2.js.map +0 -1
- package/dist/esm/enterprise/Enterprise.js.map +0 -1
- package/dist/esm/export/BevyExporter.js.map +0 -1
- package/dist/esm/export/CocosExporter.js.map +0 -1
- package/dist/esm/export/Construct3Exporter.js.map +0 -1
- package/dist/esm/export/DefoldExporter.js.map +0 -1
- package/dist/esm/export/GDevelopExporter.js.map +0 -1
- package/dist/esm/export/GameMakerExporter.js.map +0 -1
- package/dist/esm/export/GodotExporter.js.map +0 -1
- package/dist/esm/export/MinecraftBedrockExporter.js.map +0 -1
- package/dist/esm/export/MonoGameExporter.js.map +0 -1
- package/dist/esm/export/Pico8Exporter.js.map +0 -1
- package/dist/esm/export/PlatformExporter.js.map +0 -1
- package/dist/esm/export/RPGMakerExporter.js.map +0 -1
- package/dist/esm/export/RobloxExporter.js.map +0 -1
- package/dist/esm/export/Solar2DExporter.js.map +0 -1
- package/dist/esm/export/ThreeJSExporter.js.map +0 -1
- package/dist/esm/export/Tic80Exporter.js.map +0 -1
- package/dist/esm/export/UnityExporter.js.map +0 -1
- package/dist/esm/export/UnrealExporter.js.map +0 -1
- package/dist/esm/export/WebExporter.js.map +0 -1
- package/dist/esm/export/index.js.map +0 -1
- package/dist/esm/godot-integration/GodotAssetLibrary.js.map +0 -1
- package/dist/esm/godot-integration/GodotImport.js.map +0 -1
- package/dist/esm/godot-integration/GodotLiveLink.js.map +0 -1
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js.map +0 -1
- package/dist/esm/i18n/I18n.js.map +0 -1
- package/dist/esm/i18n/useTranslation.js.map +0 -1
- package/dist/esm/import/AsepriteImporter.js.map +0 -1
- package/dist/esm/import/DragonBonesImporter.js.map +0 -1
- package/dist/esm/import/GameMakerImporter.js.map +0 -1
- package/dist/esm/import/GodotSceneImporter.js.map +0 -1
- package/dist/esm/import/LDtkImporter.js.map +0 -1
- package/dist/esm/import/Live2DImporter.js.map +0 -1
- package/dist/esm/import/NdgFormat.js.map +0 -1
- package/dist/esm/import/OgmoImporter.js.map +0 -1
- package/dist/esm/import/RPGMakerImporter.js.map +0 -1
- package/dist/esm/import/SceneImporter.js.map +0 -1
- package/dist/esm/import/SpineImporter.js.map +0 -1
- package/dist/esm/import/SpriterImporter.js.map +0 -1
- package/dist/esm/import/TiledMapImporter.js.map +0 -1
- package/dist/esm/import/UnitySceneImporter.js.map +0 -1
- package/dist/esm/import/index.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/input/GamepadNavigation.js.map +0 -1
- package/dist/esm/input/InputManager.js.map +0 -1
- package/dist/esm/input/useGamepads.js.map +0 -1
- package/dist/esm/integration/IconSprite.js.map +0 -1
- package/dist/esm/inventory/InventorySystem.js.map +0 -1
- package/dist/esm/kids/KidMode.js.map +0 -1
- package/dist/esm/kids/KidTools.js.map +0 -1
- package/dist/esm/monetization/Monetization.js.map +0 -1
- package/dist/esm/multiplayer/LocalMultiplayer.js.map +0 -1
- package/dist/esm/multiplayer/MiniGameTypes.js.map +0 -1
- package/dist/esm/native-engine/AssetPipeline.js.map +0 -1
- package/dist/esm/native-engine/AudioEngine.js.map +0 -1
- package/dist/esm/native-engine/InputSystem.js.map +0 -1
- package/dist/esm/native-engine/NetworkingSystem.js.map +0 -1
- package/dist/esm/native-engine/PhysicsEngine.js.map +0 -1
- package/dist/esm/native-engine/RenderingEngine.js.map +0 -1
- package/dist/esm/native-engine/SceneGraph.js.map +0 -1
- package/dist/esm/network/MultiplayerTransport.js.map +0 -1
- package/dist/esm/network/Networking.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AbortController.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Errors.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpClient.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnection.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ILogger.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ITransport.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Loggers.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Subject.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/Utils.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/index.js.map +0 -1
- package/dist/esm/node_modules/@microsoft/signalr/dist/esm/pkg-version.js.map +0 -1
- package/dist/esm/pathfinding/Pathfinding.js.map +0 -1
- package/dist/esm/performance/AssetStreaming.js.map +0 -1
- package/dist/esm/performance/BenchmarkSuite.js.map +0 -1
- package/dist/esm/performance/DeltaCompression.js.map +0 -1
- package/dist/esm/performance/DeterministicPhysics.js.map +0 -1
- package/dist/esm/performance/ECSOptimization.js.map +0 -1
- package/dist/esm/performance/GameSaveSystem.js.map +0 -1
- package/dist/esm/performance/HotReload.js.map +0 -1
- package/dist/esm/performance/InputRecording.js.map +0 -1
- package/dist/esm/performance/InterestManagement.js.map +0 -1
- package/dist/esm/performance/LocalizationRuntime.js.map +0 -1
- package/dist/esm/performance/MemoryManagement.js.map +0 -1
- package/dist/esm/performance/ModSupport.js.map +0 -1
- package/dist/esm/performance/MultiThreadedPhysics.js.map +0 -1
- package/dist/esm/performance/NetworkPrediction.js.map +0 -1
- package/dist/esm/performance/ObjectPooling.js.map +0 -1
- package/dist/esm/performance/Performance.js.map +0 -1
- package/dist/esm/performance/PerformanceAdvanced.js.map +0 -1
- package/dist/esm/performance/SaveSystem.js +0 -567
- package/dist/esm/performance/SaveSystem.js.map +0 -1
- package/dist/esm/performance/WebGPURenderer.js.map +0 -1
- package/dist/esm/physics/PhysicsAdvanced.js.map +0 -1
- package/dist/esm/physics/PhysicsEngine2D.js.map +0 -1
- package/dist/esm/plugins/PluginSDK.js.map +0 -1
- package/dist/esm/plugins/PluginTestKit.js.map +0 -1
- package/dist/esm/procedural/Procedural.js.map +0 -1
- package/dist/esm/procedural/WorldBuilding.js.map +0 -1
- package/dist/esm/quest/QuestSystem.js.map +0 -1
- package/dist/esm/release/MobileExport.js.map +0 -1
- package/dist/esm/release/Release.js.map +0 -1
- package/dist/esm/rendering/Camera2D.js.map +0 -1
- package/dist/esm/rendering/Renderer2D.js.map +0 -1
- package/dist/esm/rendering/WebGPURenderPipeline.js.map +0 -1
- package/dist/esm/runtime3d/Runtime3D.js.map +0 -1
- package/dist/esm/runtime3d/SceneEditor3D.js.map +0 -1
- package/dist/esm/scene/SceneManager.js.map +0 -1
- package/dist/esm/scripting/GraphToAST.js.map +0 -1
- package/dist/esm/scripting/LanguageExporter.js.map +0 -1
- package/dist/esm/scripting/NodeGraph.js.map +0 -1
- package/dist/esm/scripting/ScriptAST.js.map +0 -1
- package/dist/esm/scripting/VisualScripting2.js.map +0 -1
- package/dist/esm/scripting/exporters/CSharpExporter.js.map +0 -1
- package/dist/esm/scripting/exporters/GDScriptExporter.js.map +0 -1
- package/dist/esm/scripting/exporters/LuaExporter.js.map +0 -1
- package/dist/esm/scripting/exporters/PythonExporter.js.map +0 -1
- package/dist/esm/scripting/exporters/RustExporter.js.map +0 -1
- package/dist/esm/scripting/exporters/TypeScriptExporter.js.map +0 -1
- package/dist/esm/social/Social.js.map +0 -1
- package/dist/esm/systems/LightingSystem.js.map +0 -1
- package/dist/esm/systems/ParticleSystem2.js.map +0 -1
- package/dist/esm/systems/PhysicsDebugSystem.js.map +0 -1
- package/dist/esm/systems/TerrainSystem.js.map +0 -1
- package/dist/esm/templates/ActionTemplates.js.map +0 -1
- package/dist/esm/templates/FightingTemplate.js.map +0 -1
- package/dist/esm/templates/MetroidvaniaTemplate.js.map +0 -1
- package/dist/esm/templates/PartyTemplates.js.map +0 -1
- package/dist/esm/templates/PuzzleTemplates.js.map +0 -1
- package/dist/esm/templates/RPGTemplates.js.map +0 -1
- package/dist/esm/templates/SportsTemplates.js.map +0 -1
- package/dist/esm/templates/StrategyTemplates.js.map +0 -1
- package/dist/esm/templates/SurvivalTemplate.js.map +0 -1
- package/dist/esm/templates/WaveDefense.js.map +0 -1
- package/dist/esm/tilemap/Tilemap.js.map +0 -1
- package/dist/esm/tutorials/TutorialBranching.js.map +0 -1
- package/dist/esm/tutorials/TutorialEngine.js.map +0 -1
- package/dist/esm/tutorials/TutorialOverlay.js.map +0 -1
- package/dist/esm/tutorials/content/Tutorials_T05_T08.js.map +0 -1
- package/dist/esm/tutorials/content/Tutorials_T09_T11.js.map +0 -1
- package/dist/esm/tutorials/content/Tutorials_T12_T15.js.map +0 -1
- package/dist/esm/ui/GameUI.js.map +0 -1
- package/dist/esm/unity-integration/UnityAssetStore.js.map +0 -1
- package/dist/esm/unity-integration/UnityImport.js.map +0 -1
- package/dist/esm/unity-integration/UnityLiveLink.js.map +0 -1
- package/dist/esm/unity-integration/components/UnityAssetStoreBrowser.js.map +0 -1
- package/dist/esm/unity-integration/components/UnityProjectBrowser.js.map +0 -1
- package/dist/esm/unreal-integration/UnrealImport.js.map +0 -1
- package/dist/esm/unreal-integration/UnrealLiveLink.js.map +0 -1
- package/dist/esm/unreal-integration/UnrealMarketplace.js.map +0 -1
- package/dist/esm/unreal-integration/components/UnrealProjectBrowser.js.map +0 -1
- package/dist/esm/xr/ARVR.js.map +0 -1
- package/dist/types/engine/SaveSystemV2.d.ts +0 -155
|
@@ -35,9 +35,9 @@ const TUTORIAL_MULTIPLAYER_ONLINE = {
|
|
|
35
35
|
id: 'mp-online-intro',
|
|
36
36
|
type: 'text',
|
|
37
37
|
title: {
|
|
38
|
-
en: 'Online Multiplayer Architecture
|
|
39
|
-
pl: 'Architektura multiplayera online
|
|
40
|
-
de: 'Online-Mehrspieler-Architektur
|
|
38
|
+
en: 'Online Multiplayer Architecture',
|
|
39
|
+
pl: 'Architektura multiplayera online',
|
|
40
|
+
de: 'Online-Mehrspieler-Architektur',
|
|
41
41
|
},
|
|
42
42
|
content: {
|
|
43
43
|
en: 'In this tutorial you will learn:\n• WebRTC peer-to-peer connections\n• Signaling via WebSocket\n• Creating and joining lobby rooms\n• State synchronization (snapshots)\n• Client-side prediction and reconciliation\n\nYour game will run in real-time across the internet!',
|
|
@@ -202,9 +202,9 @@ const TUTORIAL_MULTIPLAYER_ONLINE = {
|
|
|
202
202
|
id: 'mp-online-quiz',
|
|
203
203
|
type: 'quiz',
|
|
204
204
|
title: {
|
|
205
|
-
en: 'Multiplayer Quiz
|
|
206
|
-
pl: 'Quiz Multiplayer
|
|
207
|
-
de: 'Multiplayer-Quiz
|
|
205
|
+
en: 'Multiplayer Quiz',
|
|
206
|
+
pl: 'Quiz Multiplayer',
|
|
207
|
+
de: 'Multiplayer-Quiz',
|
|
208
208
|
},
|
|
209
209
|
content: {
|
|
210
210
|
en: 'Why is client-side prediction important in online games?',
|
|
@@ -277,9 +277,9 @@ const TUTORIAL_MULTIPLAYER_ONLINE = {
|
|
|
277
277
|
id: 'mp-online-complete',
|
|
278
278
|
type: 'checkpoint',
|
|
279
279
|
title: {
|
|
280
|
-
en: 'Multiplayer Online Complete!
|
|
281
|
-
pl: 'Multiplayer online gotowy!
|
|
282
|
-
de: 'Online-Mehrspieler fertig!
|
|
280
|
+
en: 'Multiplayer Online Complete!',
|
|
281
|
+
pl: 'Multiplayer online gotowy!',
|
|
282
|
+
de: 'Online-Mehrspieler fertig!',
|
|
283
283
|
},
|
|
284
284
|
content: {
|
|
285
285
|
en: "You've learned how to build networked multiplayer games! You can now:\n• Connect peers via WebRTC\n• Create and manage lobby rooms\n• Synchronize game state with snapshots\n• Implement client-side prediction\n• Spawn/destroy entities across the network",
|
|
@@ -317,9 +317,9 @@ const TUTORIAL_PROCEDURAL_WORLD = {
|
|
|
317
317
|
id: 'proc-intro',
|
|
318
318
|
type: 'text',
|
|
319
319
|
title: {
|
|
320
|
-
en: 'Procedural Generation
|
|
321
|
-
pl: 'Generowanie proceduralne
|
|
322
|
-
de: 'Prozedurale Generierung
|
|
320
|
+
en: 'Procedural Generation',
|
|
321
|
+
pl: 'Generowanie proceduralne',
|
|
322
|
+
de: 'Prozedurale Generierung',
|
|
323
323
|
},
|
|
324
324
|
content: {
|
|
325
325
|
en: 'Procedural generation creates content using algorithms instead of manual design.\n\nYou will learn:\n• Seeded random numbers (reproducible worlds)\n• Perlin noise (natural-looking terrain)\n• Enemy wave scaling\n• Loot tables with weighted drops\n• Procedural pixel art sprites',
|
|
@@ -459,9 +459,9 @@ const TUTORIAL_PROCEDURAL_WORLD = {
|
|
|
459
459
|
id: 'proc-quiz',
|
|
460
460
|
type: 'quiz',
|
|
461
461
|
title: {
|
|
462
|
-
en: 'Procedural Generation Quiz
|
|
463
|
-
pl: 'Quiz z generowania proceduralnego
|
|
464
|
-
de: 'Prozedurale Generierung Quiz
|
|
462
|
+
en: 'Procedural Generation Quiz',
|
|
463
|
+
pl: 'Quiz z generowania proceduralnego',
|
|
464
|
+
de: 'Prozedurale Generierung Quiz',
|
|
465
465
|
},
|
|
466
466
|
content: {
|
|
467
467
|
en: 'What makes Perlin noise better than purely random values for terrain?',
|
|
@@ -505,9 +505,9 @@ const TUTORIAL_PROCEDURAL_WORLD = {
|
|
|
505
505
|
id: 'proc-complete',
|
|
506
506
|
type: 'checkpoint',
|
|
507
507
|
title: {
|
|
508
|
-
en: 'Procedural Generation Complete!
|
|
509
|
-
pl: 'Generowanie proceduralne opanowane!
|
|
510
|
-
de: 'Prozedurale Generierung fertig!
|
|
508
|
+
en: 'Procedural Generation Complete!',
|
|
509
|
+
pl: 'Generowanie proceduralne opanowane!',
|
|
510
|
+
de: 'Prozedurale Generierung fertig!',
|
|
511
511
|
},
|
|
512
512
|
content: {
|
|
513
513
|
en: 'You can now generate infinite, unique games! Skills learned:\n• Seeded random for reproducible worlds\n• Perlin noise for natural terrain\n• Wave scaling for enemy difficulty\n• Loot tables for balanced drops\n• Procedural pixel art sprites',
|
|
@@ -545,9 +545,9 @@ const TUTORIAL_PLATFORMER = {
|
|
|
545
545
|
id: 'plat-intro',
|
|
546
546
|
type: 'text',
|
|
547
547
|
title: {
|
|
548
|
-
en: 'Build a Platformer!
|
|
549
|
-
pl: 'Zbuduj platformera!
|
|
550
|
-
de: 'Baue einen Platformer!
|
|
548
|
+
en: 'Build a Platformer!',
|
|
549
|
+
pl: 'Zbuduj platformera!',
|
|
550
|
+
de: 'Baue einen Platformer!',
|
|
551
551
|
},
|
|
552
552
|
content: {
|
|
553
553
|
en: "In this tutorial you'll build a complete platformer game!\n\n• Player movement & acceleration\n• Jumping with coyote time\n• Double-jump & wall-slide\n• Dash mechanic\n• Enemy AI (patrol + chase)\n• Coins & collectibles\n• Level with tilemap\n\nLet's make Mario-like magic!",
|
|
@@ -763,9 +763,9 @@ const TUTORIAL_PLATFORMER = {
|
|
|
763
763
|
id: 'plat-complete',
|
|
764
764
|
type: 'checkpoint',
|
|
765
765
|
title: {
|
|
766
|
-
en: 'Platformer Complete!
|
|
767
|
-
pl: 'Platformer gotowy!
|
|
768
|
-
de: 'Platformer fertig!
|
|
766
|
+
en: 'Platformer Complete!',
|
|
767
|
+
pl: 'Platformer gotowy!',
|
|
768
|
+
de: 'Platformer fertig!',
|
|
769
769
|
},
|
|
770
770
|
content: {
|
|
771
771
|
en: "Congratulations! You've built a complete platformer with:\n• Smooth acceleration-based movement\n• Jumping with coyote time\n• Double jump & wall slide\n• Dash mechanic\n• Enemy AI (patrol & chase)\n• Coins with trigger colliders\n• Tilemap level design\n\nChallenge: Add moving platforms and a boss fight!",
|
|
@@ -36,9 +36,9 @@ const TUTORIAL_RPG = {
|
|
|
36
36
|
id: 'rpg-intro',
|
|
37
37
|
type: 'text',
|
|
38
38
|
title: {
|
|
39
|
-
en: 'Build Your Own RPG!
|
|
40
|
-
pl: 'Zbuduj swoje RPG!
|
|
41
|
-
de: 'Baue dein eigenes RPG!
|
|
39
|
+
en: 'Build Your Own RPG!',
|
|
40
|
+
pl: 'Zbuduj swoje RPG!',
|
|
41
|
+
de: 'Baue dein eigenes RPG!',
|
|
42
42
|
},
|
|
43
43
|
content: {
|
|
44
44
|
en: "In this tutorial you'll build a classic top-down RPG!\n\n• Character stats (HP, MP, ATK, DEF, SPD)\n• XP and leveling system\n• Inventory and items\n• NPCs with dialogue\n• Turn-based battle system\n• Tilemap world with warps\n\nReady for an adventure?",
|
|
@@ -174,9 +174,9 @@ const TUTORIAL_RPG = {
|
|
|
174
174
|
id: 'rpg-quiz',
|
|
175
175
|
type: 'quiz',
|
|
176
176
|
title: {
|
|
177
|
-
en: 'RPG Quiz
|
|
178
|
-
pl: 'Quiz RPG
|
|
179
|
-
de: 'RPG-Quiz
|
|
177
|
+
en: 'RPG Quiz',
|
|
178
|
+
pl: 'Quiz RPG',
|
|
179
|
+
de: 'RPG-Quiz',
|
|
180
180
|
},
|
|
181
181
|
content: {
|
|
182
182
|
en: 'In a turn-based RPG, what stat typically determines the order of actions?',
|
|
@@ -196,9 +196,9 @@ const TUTORIAL_RPG = {
|
|
|
196
196
|
id: 'rpg-complete',
|
|
197
197
|
type: 'checkpoint',
|
|
198
198
|
title: {
|
|
199
|
-
en: 'RPG Complete!
|
|
200
|
-
pl: 'RPG gotowe!
|
|
201
|
-
de: 'RPG fertig!
|
|
199
|
+
en: 'RPG Complete!',
|
|
200
|
+
pl: 'RPG gotowe!',
|
|
201
|
+
de: 'RPG fertig!',
|
|
202
202
|
},
|
|
203
203
|
content: {
|
|
204
204
|
en: "Amazing! You've built a full RPG with:\n• Character stats & leveling\n• Inventory with rarity system\n• NPCs with branching dialogue\n• Turn-based combat\n• Multi-area world map with warps\n\nChallenge: Add a party system with 4 heroes!",
|
|
@@ -236,9 +236,9 @@ const TUTORIAL_TOWER_DEFENSE = {
|
|
|
236
236
|
id: 'td-intro',
|
|
237
237
|
type: 'text',
|
|
238
238
|
title: {
|
|
239
|
-
en: 'Build Tower Defense!
|
|
240
|
-
pl: 'Zbuduj Tower Defense!
|
|
241
|
-
de: 'Baue Tower Defense!
|
|
239
|
+
en: 'Build Tower Defense!',
|
|
240
|
+
pl: 'Zbuduj Tower Defense!',
|
|
241
|
+
de: 'Baue Tower Defense!',
|
|
242
242
|
},
|
|
243
243
|
content: {
|
|
244
244
|
en: "In this tutorial you'll build a tower defense game!\n\n• Map with path for enemies\n• Tower types (arrow, cannon, ice, laser)\n• Enemy waves with scaling difficulty\n• Tower targeting modes\n• Upgrade system\n• Gold & economy\n\nDefend your base!",
|
|
@@ -378,9 +378,9 @@ const TUTORIAL_TOWER_DEFENSE = {
|
|
|
378
378
|
id: 'td-complete',
|
|
379
379
|
type: 'checkpoint',
|
|
380
380
|
title: {
|
|
381
|
-
en: 'Tower Defense Complete!
|
|
382
|
-
pl: 'Tower Defense gotowy!
|
|
383
|
-
de: 'Tower Defense fertig!
|
|
381
|
+
en: 'Tower Defense Complete!',
|
|
382
|
+
pl: 'Tower Defense gotowy!',
|
|
383
|
+
de: 'Tower Defense fertig!',
|
|
384
384
|
},
|
|
385
385
|
content: {
|
|
386
386
|
en: "You've built a full tower defense game!\n• 4 tower types with different targeting\n• Enemy pathfinding along waypoints\n• Escalating wave system\n• Upgrade & sell mechanics\n• Gold economy\n\nChallenge: Add flying enemies that ignore the path!",
|
|
@@ -418,9 +418,9 @@ const TUTORIAL_3D_GAME = {
|
|
|
418
418
|
id: '3d-intro',
|
|
419
419
|
type: 'text',
|
|
420
420
|
title: {
|
|
421
|
-
en: 'Welcome to 3D!
|
|
422
|
-
pl: 'Witaj w 3D!
|
|
423
|
-
de: 'Willkommen in 3D!
|
|
421
|
+
en: 'Welcome to 3D!',
|
|
422
|
+
pl: 'Witaj w 3D!',
|
|
423
|
+
de: 'Willkommen in 3D!',
|
|
424
424
|
},
|
|
425
425
|
content: {
|
|
426
426
|
en: "In this tutorial you'll enter the third dimension!\n\n• Set up a 3D world (World3D)\n• Add meshes (cube, sphere, plane)\n• Lighting (directional, point, spot)\n• Camera controllers (FPS, orbit)\n• 3D physics (rigid bodies, colliders)\n• Character controller (walking, jumping)\n\nLet's go 3D!",
|
|
@@ -585,9 +585,9 @@ const TUTORIAL_3D_GAME = {
|
|
|
585
585
|
id: '3d-complete',
|
|
586
586
|
type: 'checkpoint',
|
|
587
587
|
title: {
|
|
588
|
-
en: '3D Game Complete!
|
|
589
|
-
pl: 'Gra 3D gotowa!
|
|
590
|
-
de: '3D-Spiel fertig!
|
|
588
|
+
en: '3D Game Complete!',
|
|
589
|
+
pl: 'Gra 3D gotowa!',
|
|
590
|
+
de: '3D-Spiel fertig!',
|
|
591
591
|
},
|
|
592
592
|
content: {
|
|
593
593
|
en: "You've built your first 3D game!\n• World3D scene with multiple objects\n• Primitive meshes (cube, sphere, plane)\n• Directional and point lighting\n• Orbit camera controller\n• 3D physics with rigid bodies\n• Character controller with jumping\n\nChallenge: Add a skybox and third-person camera!",
|
|
@@ -625,9 +625,9 @@ const TUTORIAL_PUBLISHING = {
|
|
|
625
625
|
id: 'pub-intro',
|
|
626
626
|
type: 'text',
|
|
627
627
|
title: {
|
|
628
|
-
en: 'Publish Your Game!
|
|
629
|
-
pl: 'Opublikuj swoją grę!
|
|
630
|
-
de: 'Veröffentliche dein Spiel!
|
|
628
|
+
en: 'Publish Your Game!',
|
|
629
|
+
pl: 'Opublikuj swoją grę!',
|
|
630
|
+
de: 'Veröffentliche dein Spiel!',
|
|
631
631
|
},
|
|
632
632
|
content: {
|
|
633
633
|
en: "Your game is ready — now let's share it with the world!\n\n• Feature detection (check browser support)\n• Build optimization (minify, tree-shake)\n• PWA export (installable web app)\n• Electron export (Windows/Mac/Linux)\n• Capacitor export (iOS/Android)\n• Performance benchmarking\n\nLet's deploy!",
|
|
@@ -732,9 +732,9 @@ const TUTORIAL_PUBLISHING = {
|
|
|
732
732
|
id: 'pub-quiz',
|
|
733
733
|
type: 'quiz',
|
|
734
734
|
title: {
|
|
735
|
-
en: 'Publishing Quiz
|
|
736
|
-
pl: 'Quiz o publikacji
|
|
737
|
-
de: 'Veröffentlichungs-Quiz
|
|
735
|
+
en: 'Publishing Quiz',
|
|
736
|
+
pl: 'Quiz o publikacji',
|
|
737
|
+
de: 'Veröffentlichungs-Quiz',
|
|
738
738
|
},
|
|
739
739
|
content: {
|
|
740
740
|
en: 'What is a PWA (Progressive Web App)?',
|
|
@@ -782,14 +782,14 @@ const TUTORIAL_PUBLISHING = {
|
|
|
782
782
|
id: 'pub-complete',
|
|
783
783
|
type: 'checkpoint',
|
|
784
784
|
title: {
|
|
785
|
-
en: 'Publication Complete!
|
|
786
|
-
pl: 'Publikacja gotowa!
|
|
787
|
-
de: 'Veröffentlichung fertig!
|
|
785
|
+
en: 'Publication Complete!',
|
|
786
|
+
pl: 'Publikacja gotowa!',
|
|
787
|
+
de: 'Veröffentlichung fertig!',
|
|
788
788
|
},
|
|
789
789
|
content: {
|
|
790
|
-
en: 'Congratulations! You now know how to:\n• Check browser feature support\n• Configure optimized builds\n• Export as PWA, Electron, or Capacitor\n• Run performance benchmarks\n• Deploy to web, desktop, and mobile\n\nYour game is ready for the world!
|
|
791
|
-
pl: 'Gratulacje! Teraz wiesz jak:\n• Sprawdzić wsparcie funkcji przeglądarki\n• Konfigurować zoptymalizowane buildy\n• Eksportować jako PWA, Electron lub Capacitor\n• Uruchamiać benchmarki wydajności\n• Wdrażać na web, desktop i mobile\n\nTwoja gra jest gotowa na świat!
|
|
792
|
-
de: 'Herzlichen Glückwunsch! Du weißt jetzt wie man:\n• Browser-Feature-Support prüft\n• Optimierte Builds konfiguriert\n• Als PWA, Electron oder Capacitor exportiert\n• Performance-Benchmarks durchführt\n• Auf Web, Desktop und Mobile deployt\n\nDein Spiel ist bereit für die Welt!
|
|
790
|
+
en: 'Congratulations! You now know how to:\n• Check browser feature support\n• Configure optimized builds\n• Export as PWA, Electron, or Capacitor\n• Run performance benchmarks\n• Deploy to web, desktop, and mobile\n\nYour game is ready for the world!',
|
|
791
|
+
pl: 'Gratulacje! Teraz wiesz jak:\n• Sprawdzić wsparcie funkcji przeglądarki\n• Konfigurować zoptymalizowane buildy\n• Eksportować jako PWA, Electron lub Capacitor\n• Uruchamiać benchmarki wydajności\n• Wdrażać na web, desktop i mobile\n\nTwoja gra jest gotowa na świat!',
|
|
792
|
+
de: 'Herzlichen Glückwunsch! Du weißt jetzt wie man:\n• Browser-Feature-Support prüft\n• Optimierte Builds konfiguriert\n• Als PWA, Electron oder Capacitor exportiert\n• Performance-Benchmarks durchführt\n• Auf Web, Desktop und Mobile deployt\n\nDein Spiel ist bereit für die Welt!',
|
|
793
793
|
},
|
|
794
794
|
},
|
|
795
795
|
],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var ui = require('@nice2dev/ui');
|
|
4
5
|
var React = require('react');
|
|
5
6
|
|
|
6
7
|
const DEFAULT_THEME = {
|
|
@@ -106,21 +107,21 @@ function formatFileSize(bytes) {
|
|
|
106
107
|
function getCategoryIcon(category) {
|
|
107
108
|
switch (category) {
|
|
108
109
|
case '3d':
|
|
109
|
-
return '
|
|
110
|
+
return 'box';
|
|
110
111
|
case '2d':
|
|
111
|
-
return '
|
|
112
|
+
return 'image';
|
|
112
113
|
case 'tools':
|
|
113
|
-
return '
|
|
114
|
+
return 'settings';
|
|
114
115
|
case 'vfx':
|
|
115
|
-
return '
|
|
116
|
+
return 'star';
|
|
116
117
|
case 'audio':
|
|
117
|
-
return '
|
|
118
|
+
return 'volume';
|
|
118
119
|
case 'templates':
|
|
119
|
-
return '
|
|
120
|
+
return 'clipboard';
|
|
120
121
|
case 'add-ons':
|
|
121
|
-
return '
|
|
122
|
+
return 'puzzle';
|
|
122
123
|
default:
|
|
123
|
-
return '
|
|
124
|
+
return 'box';
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
/* ── Search Header ────────────────────────────────────────────── */
|
|
@@ -145,7 +146,7 @@ const SearchHeader = () => {
|
|
|
145
146
|
padding: '16px 24px',
|
|
146
147
|
backgroundColor: theme.headerBackground,
|
|
147
148
|
borderBottom: `1px solid ${theme.border}`,
|
|
148
|
-
}, children: [jsxRuntime.jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, marginBottom: 12 }, children: [jsxRuntime.jsx(
|
|
149
|
+
}, children: [jsxRuntime.jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, marginBottom: 12 }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "building", size: 24 }), jsxRuntime.jsx("h1", { style: { margin: 0, fontSize: 18, fontWeight: 600, color: theme.textPrimary }, children: "Unity Asset Store" }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("button", { style: {
|
|
149
150
|
display: 'flex',
|
|
150
151
|
alignItems: 'center',
|
|
151
152
|
gap: 6,
|
|
@@ -155,14 +156,14 @@ const SearchHeader = () => {
|
|
|
155
156
|
borderRadius: 6,
|
|
156
157
|
color: '#fff',
|
|
157
158
|
cursor: 'pointer',
|
|
158
|
-
}, children: ["
|
|
159
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "box", size: 14 }), " Cart (", state.cart.size, ")"] }), jsxRuntime.jsxs("button", { onClick: () => dispatch({ type: 'TOGGLE_MY_ASSETS' }), style: {
|
|
159
160
|
padding: '8px 12px',
|
|
160
161
|
backgroundColor: state.myAssets ? theme.accent : 'rgba(0,0,0,0.2)',
|
|
161
162
|
border: 'none',
|
|
162
163
|
borderRadius: 6,
|
|
163
164
|
color: '#fff',
|
|
164
165
|
cursor: 'pointer',
|
|
165
|
-
}, children: "
|
|
166
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "book", size: 14 }), " My Assets"] })] }), jsxRuntime.jsxs("div", { style: { display: 'flex', gap: 8 }, children: [jsxRuntime.jsxs("div", { style: { flex: 1, position: 'relative' }, children: [jsxRuntime.jsx("input", { type: "text", placeholder: "Search assets...", value: localQuery, onChange: (e) => setLocalQuery(e.target.value), onKeyDown: (e) => e.key === 'Enter' && handleSearch(), style: {
|
|
166
167
|
width: '100%',
|
|
167
168
|
padding: '10px 16px',
|
|
168
169
|
paddingRight: 50,
|
|
@@ -183,7 +184,7 @@ const SearchHeader = () => {
|
|
|
183
184
|
borderRadius: 6,
|
|
184
185
|
color: '#fff',
|
|
185
186
|
cursor: 'pointer',
|
|
186
|
-
}, children: "
|
|
187
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "search", size: 14 }) })] }), jsxRuntime.jsx("select", { value: state.query.category, onChange: (e) => {
|
|
187
188
|
dispatch({
|
|
188
189
|
type: 'SET_QUERY',
|
|
189
190
|
query: { category: e.target.value, page: 1 },
|
|
@@ -230,7 +231,7 @@ const RatingStars = ({ rating, count }) => {
|
|
|
230
231
|
return (jsxRuntime.jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 4 }, children: [[1, 2, 3, 4, 5].map((star) => (jsxRuntime.jsx("span", { style: {
|
|
231
232
|
fontSize: 12,
|
|
232
233
|
color: star <= Math.round(rating) ? theme.star : theme.textSecondary,
|
|
233
|
-
}, children: "
|
|
234
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "star", size: 12 }) }, star))), count !== undefined && (jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary, marginLeft: 4 }, children: ["(", count, ")"] }))] }));
|
|
234
235
|
};
|
|
235
236
|
/* ── Asset Card ───────────────────────────────────────────────── */
|
|
236
237
|
const AssetCard = ({ asset }) => {
|
|
@@ -292,7 +293,7 @@ const AssetCard = ({ asset }) => {
|
|
|
292
293
|
alignItems: 'center',
|
|
293
294
|
justifyContent: 'center',
|
|
294
295
|
fontSize: 14,
|
|
295
|
-
}, children: getCategoryIcon(asset.category) })] }), jsxRuntime.jsxs("div", { style: { padding: 12 }, children: [jsxRuntime.jsx("h3", { style: {
|
|
296
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: getCategoryIcon(asset.category), size: 32 }) })] }), jsxRuntime.jsxs("div", { style: { padding: 12 }, children: [jsxRuntime.jsx("h3", { style: {
|
|
296
297
|
margin: 0,
|
|
297
298
|
fontSize: 13,
|
|
298
299
|
fontWeight: 600,
|
|
@@ -333,7 +334,7 @@ const AssetCard = ({ asset }) => {
|
|
|
333
334
|
borderRadius: 6,
|
|
334
335
|
color: '#fff',
|
|
335
336
|
cursor: isDownloading ? 'not-allowed' : 'pointer',
|
|
336
|
-
}, children: isDownloading ? `${downloadProgress}%` : '
|
|
337
|
+
}, children: isDownloading ? `${downloadProgress}%` : 'Download' })) : (jsxRuntime.jsx("button", { onClick: (e) => {
|
|
337
338
|
e.stopPropagation();
|
|
338
339
|
if (isInCart) {
|
|
339
340
|
dispatch({ type: 'REMOVE_FROM_CART', id: asset.id });
|
|
@@ -351,7 +352,7 @@ const AssetCard = ({ asset }) => {
|
|
|
351
352
|
borderRadius: 6,
|
|
352
353
|
color: '#fff',
|
|
353
354
|
cursor: 'pointer',
|
|
354
|
-
}, children: isInCart ? '
|
|
355
|
+
}, children: isInCart ? 'In Cart' : 'Add to Cart' })), jsxRuntime.jsx("button", { onClick: (e) => {
|
|
355
356
|
e.stopPropagation();
|
|
356
357
|
openInBrowser(asset);
|
|
357
358
|
}, style: {
|
|
@@ -362,7 +363,7 @@ const AssetCard = ({ asset }) => {
|
|
|
362
363
|
borderRadius: 6,
|
|
363
364
|
color: theme.textSecondary,
|
|
364
365
|
cursor: 'pointer',
|
|
365
|
-
}, children: "
|
|
366
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "link", size: 14 }) })] })] })] }));
|
|
366
367
|
};
|
|
367
368
|
/* ── Asset Grid ───────────────────────────────────────────────── */
|
|
368
369
|
const AssetGrid = () => {
|
|
@@ -374,7 +375,7 @@ const AssetGrid = () => {
|
|
|
374
375
|
alignItems: 'center',
|
|
375
376
|
justifyContent: 'center',
|
|
376
377
|
color: theme.textSecondary,
|
|
377
|
-
}, children: "
|
|
378
|
+
}, children: "Loading assets..." }));
|
|
378
379
|
}
|
|
379
380
|
if (state.error) {
|
|
380
381
|
return (jsxRuntime.jsxs("div", { style: {
|
|
@@ -383,7 +384,7 @@ const AssetGrid = () => {
|
|
|
383
384
|
alignItems: 'center',
|
|
384
385
|
justifyContent: 'center',
|
|
385
386
|
color: theme.danger,
|
|
386
|
-
}, children: ["
|
|
387
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "error", size: 14 }), " ", state.error] }));
|
|
387
388
|
}
|
|
388
389
|
if (state.results.length === 0) {
|
|
389
390
|
return (jsxRuntime.jsxs("div", { style: {
|
|
@@ -393,7 +394,7 @@ const AssetGrid = () => {
|
|
|
393
394
|
alignItems: 'center',
|
|
394
395
|
justifyContent: 'center',
|
|
395
396
|
color: theme.textSecondary,
|
|
396
|
-
}, children: [jsxRuntime.jsx("div", { style: {
|
|
397
|
+
}, children: [jsxRuntime.jsx("div", { style: { marginBottom: 16 }, children: jsxRuntime.jsx(ui.NiceIcon, { name: "archive", size: 48 }) }), jsxRuntime.jsx("div", { children: "No assets found" })] }));
|
|
397
398
|
}
|
|
398
399
|
return (jsxRuntime.jsx("div", { style: {
|
|
399
400
|
display: 'grid',
|
|
@@ -476,7 +477,7 @@ const AssetDetailModal = () => {
|
|
|
476
477
|
borderRadius: 8,
|
|
477
478
|
color: '#fff',
|
|
478
479
|
cursor: isDownloading ? 'not-allowed' : 'pointer',
|
|
479
|
-
}, children: isDownloading ? `Downloading ${downloadProgress}%` : '
|
|
480
|
+
}, children: isDownloading ? `Downloading ${downloadProgress}%` : 'Download & Import' })) : (jsxRuntime.jsx("button", { onClick: () => isInCart
|
|
480
481
|
? dispatch({ type: 'REMOVE_FROM_CART', id: asset.id })
|
|
481
482
|
: dispatch({ type: 'ADD_TO_CART', id: asset.id }), style: {
|
|
482
483
|
width: '100%',
|
|
@@ -488,7 +489,7 @@ const AssetDetailModal = () => {
|
|
|
488
489
|
borderRadius: 8,
|
|
489
490
|
color: '#fff',
|
|
490
491
|
cursor: 'pointer',
|
|
491
|
-
}, children: isInCart ? '
|
|
492
|
+
}, children: isInCart ? 'Remove from Cart' : 'Add to Cart' })), jsxRuntime.jsxs("button", { onClick: () => openInBrowser(asset), style: {
|
|
492
493
|
width: '100%',
|
|
493
494
|
marginTop: 8,
|
|
494
495
|
padding: '10px 24px',
|
|
@@ -498,7 +499,7 @@ const AssetDetailModal = () => {
|
|
|
498
499
|
borderRadius: 8,
|
|
499
500
|
color: theme.textSecondary,
|
|
500
501
|
cursor: 'pointer',
|
|
501
|
-
}, children: "
|
|
502
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "external-link", size: 14 }), " View on Asset Store"] })] })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SELECT_ASSET', asset: null }), style: {
|
|
502
503
|
position: 'absolute',
|
|
503
504
|
top: 16,
|
|
504
505
|
right: 16,
|
|
@@ -508,7 +509,7 @@ const AssetDetailModal = () => {
|
|
|
508
509
|
border: 'none',
|
|
509
510
|
color: theme.textSecondary,
|
|
510
511
|
cursor: 'pointer',
|
|
511
|
-
}, children: "
|
|
512
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "close", size: 14 }) })] }), jsxRuntime.jsx("div", { style: { display: 'flex', borderBottom: `1px solid ${theme.border}` }, children: ['overview', 'images', 'reviews'].map((tab) => (jsxRuntime.jsx("button", { onClick: () => setActiveTab(tab), style: {
|
|
512
513
|
flex: 1,
|
|
513
514
|
padding: '12px 16px',
|
|
514
515
|
fontSize: 13,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var ui = require('@nice2dev/ui');
|
|
4
5
|
var React = require('react');
|
|
5
6
|
|
|
6
7
|
const DEFAULT_THEME = {
|
|
@@ -104,23 +105,23 @@ function useBrowser() {
|
|
|
104
105
|
function getAssetIcon(type) {
|
|
105
106
|
switch (type) {
|
|
106
107
|
case 'scene':
|
|
107
|
-
return '
|
|
108
|
+
return 'video';
|
|
108
109
|
case 'prefab':
|
|
109
|
-
return '
|
|
110
|
+
return 'box';
|
|
110
111
|
case 'material':
|
|
111
|
-
return '
|
|
112
|
+
return 'palette';
|
|
112
113
|
case 'texture':
|
|
113
|
-
return '
|
|
114
|
+
return 'image';
|
|
114
115
|
case 'mesh':
|
|
115
|
-
return '
|
|
116
|
+
return 'hexagon';
|
|
116
117
|
case 'animation':
|
|
117
|
-
return '
|
|
118
|
+
return 'play';
|
|
118
119
|
case 'script':
|
|
119
|
-
return '
|
|
120
|
+
return 'code';
|
|
120
121
|
case 'audio':
|
|
121
|
-
return '
|
|
122
|
+
return 'volume';
|
|
122
123
|
default:
|
|
123
|
-
return '
|
|
124
|
+
return 'file';
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
function formatFileSize(bytes) {
|
|
@@ -151,7 +152,7 @@ const BrowserHeader = ({ projectPath }) => {
|
|
|
151
152
|
alignItems: 'center',
|
|
152
153
|
justifyContent: 'center',
|
|
153
154
|
fontSize: 20,
|
|
154
|
-
}, children: "
|
|
155
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "gamepad", size: 18 }) }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 14, fontWeight: 600, color: theme.textPrimary }, children: state.projectInfo?.name ?? 'No Project Loaded' }), jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: state.projectInfo ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: ["Unity ", state.projectInfo.unityVersion, " \u2022", ' ', state.projectInfo.renderPipeline.toUpperCase()] })) : ((projectPath ?? 'Select a Unity project folder')) })] }), jsxRuntime.jsxs("div", { style: {
|
|
155
156
|
display: 'flex',
|
|
156
157
|
alignItems: 'center',
|
|
157
158
|
gap: 8,
|
|
@@ -218,21 +219,21 @@ const BrowserToolbar = () => {
|
|
|
218
219
|
backgroundColor: 'rgba(0,0,0,0.2)',
|
|
219
220
|
borderRadius: 6,
|
|
220
221
|
overflow: 'hidden',
|
|
221
|
-
}, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tree' }), style: {
|
|
222
|
+
}, children: [jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'tree' }), "aria-label": "Tree view", style: {
|
|
222
223
|
padding: '6px 10px',
|
|
223
224
|
fontSize: 12,
|
|
224
225
|
backgroundColor: state.viewMode === 'tree' ? theme.accent : 'transparent',
|
|
225
226
|
border: 'none',
|
|
226
227
|
color: '#fff',
|
|
227
228
|
cursor: 'pointer',
|
|
228
|
-
}, children: "
|
|
229
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "list", size: 14 }) }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_VIEW_MODE', mode: 'grid' }), "aria-label": "Grid view", style: {
|
|
229
230
|
padding: '6px 10px',
|
|
230
231
|
fontSize: 12,
|
|
231
232
|
backgroundColor: state.viewMode === 'grid' ? theme.accent : 'transparent',
|
|
232
233
|
border: 'none',
|
|
233
234
|
color: '#fff',
|
|
234
235
|
cursor: 'pointer',
|
|
235
|
-
}, children: "
|
|
236
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "grid", size: 14 }) })] }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { style: { fontSize: 11, color: theme.textSecondary }, children: [state.selectedAssets.size, " selected"] }), jsxRuntime.jsxs("button", { onClick: importSelectedAssets, disabled: state.selectedAssets.size === 0 || state.importProgress !== null, style: {
|
|
236
237
|
padding: '8px 16px',
|
|
237
238
|
fontSize: 12,
|
|
238
239
|
fontWeight: 500,
|
|
@@ -244,16 +245,16 @@ const BrowserToolbar = () => {
|
|
|
244
245
|
color: '#fff',
|
|
245
246
|
cursor: state.selectedAssets.size > 0 && !state.importProgress ? 'pointer' : 'not-allowed',
|
|
246
247
|
opacity: state.selectedAssets.size > 0 && !state.importProgress ? 1 : 0.5,
|
|
247
|
-
}, children: state.importProgress ? '
|
|
248
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: state.importProgress ? 'clock' : 'download', size: 14 }), ' ', state.importProgress ? 'Importing...' : 'Import Selected'] })] }));
|
|
248
249
|
};
|
|
249
250
|
/* ── Tab Bar Component ────────────────────────────────────────── */
|
|
250
251
|
const TabBar = () => {
|
|
251
252
|
const { state, dispatch, theme } = useBrowser();
|
|
252
253
|
const tabs = [
|
|
253
|
-
{ id: 'assets', label: 'Assets', icon: '
|
|
254
|
-
{ id: 'scenes', label: 'Scenes', icon: '
|
|
255
|
-
{ id: 'packages', label: 'Packages', icon: '
|
|
256
|
-
{ id: 'settings', label: 'Settings', icon: '
|
|
254
|
+
{ id: 'assets', label: 'Assets', icon: 'folder' },
|
|
255
|
+
{ id: 'scenes', label: 'Scenes', icon: 'video' },
|
|
256
|
+
{ id: 'packages', label: 'Packages', icon: 'box' },
|
|
257
|
+
{ id: 'settings', label: 'Settings', icon: 'settings' },
|
|
257
258
|
];
|
|
258
259
|
return (jsxRuntime.jsx("div", { style: {
|
|
259
260
|
display: 'flex',
|
|
@@ -269,7 +270,7 @@ const TabBar = () => {
|
|
|
269
270
|
borderBottom: state.tab === tab.id ? `2px solid ${theme.accent}` : '2px solid transparent',
|
|
270
271
|
color: state.tab === tab.id ? theme.textPrimary : theme.textSecondary,
|
|
271
272
|
cursor: 'pointer',
|
|
272
|
-
}, children: [tab.icon, " ", tab.label] }, tab.id))) }));
|
|
273
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: tab.icon, size: 14 }), " ", tab.label] }, tab.id))) }));
|
|
273
274
|
};
|
|
274
275
|
/* ── Asset Tree View ──────────────────────────────────────────── */
|
|
275
276
|
const AssetTreeItem = ({ asset, indent }) => {
|
|
@@ -283,7 +284,7 @@ const AssetTreeItem = ({ asset, indent }) => {
|
|
|
283
284
|
paddingLeft: indent * 16 + 8,
|
|
284
285
|
backgroundColor: isSelected ? theme.itemSelected : 'transparent',
|
|
285
286
|
cursor: 'pointer',
|
|
286
|
-
}, children: [jsxRuntime.jsx("input", { type: "checkbox", checked: isSelected, onChange: () => dispatch({ type: 'SELECT_ASSET', id: asset.id, additive: true }), onClick: (e) => e.stopPropagation() }), jsxRuntime.jsx(
|
|
287
|
+
}, children: [jsxRuntime.jsx("input", { type: "checkbox", checked: isSelected, onChange: () => dispatch({ type: 'SELECT_ASSET', id: asset.id, additive: true }), onClick: (e) => e.stopPropagation() }), jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 14 }), jsxRuntime.jsx("span", { style: {
|
|
287
288
|
flex: 1,
|
|
288
289
|
fontSize: 12,
|
|
289
290
|
color: isSelected ? theme.textPrimary : theme.textSecondary,
|
|
@@ -320,7 +321,7 @@ const FolderTreeItem = ({ folder, indent }) => {
|
|
|
320
321
|
padding: '4px 8px',
|
|
321
322
|
paddingLeft: indent * 16 + 8,
|
|
322
323
|
cursor: 'pointer',
|
|
323
|
-
}, children: [jsxRuntime.jsx(
|
|
324
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: isExpanded ? 'chevron-down' : 'chevron-right', size: 10, color: theme.textSecondary }), jsxRuntime.jsx(ui.NiceIcon, { name: "folder", size: 14, color: theme.folderColor }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, fontWeight: 500 }, children: folder.name }), jsxRuntime.jsxs("span", { style: { fontSize: 10, color: theme.textSecondary }, children: ["(", filteredChildren.length, ")"] })] }), isExpanded &&
|
|
324
325
|
filteredChildren.map((child, _i) => 'children' in child ? (jsxRuntime.jsx(FolderTreeItem, { folder: child, indent: indent + 1 }, child.path)) : (jsxRuntime.jsx(AssetTreeItem, { asset: child, indent: indent + 1 }, child.id)))] }));
|
|
325
326
|
};
|
|
326
327
|
/* ── Asset Grid View ──────────────────────────────────────────── */
|
|
@@ -366,7 +367,7 @@ const AssetGridView = () => {
|
|
|
366
367
|
justifyContent: 'center',
|
|
367
368
|
fontSize: 24,
|
|
368
369
|
marginBottom: 8,
|
|
369
|
-
}, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { width: '100%', height: '100%', objectFit: 'cover', borderRadius: 8 } })) : (getAssetIcon(asset.type)) }), jsxRuntime.jsx("span", { style: {
|
|
370
|
+
}, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { width: '100%', height: '100%', objectFit: 'cover', borderRadius: 8 } })) : (jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 32 })) }), jsxRuntime.jsx("span", { style: {
|
|
370
371
|
fontSize: 11,
|
|
371
372
|
color: theme.textPrimary,
|
|
372
373
|
textAlign: 'center',
|
|
@@ -416,7 +417,7 @@ const PackagesPanel = () => {
|
|
|
416
417
|
marginBottom: 4,
|
|
417
418
|
backgroundColor: theme.itemBackground,
|
|
418
419
|
borderRadius: 6,
|
|
419
|
-
}, children: [jsxRuntime.jsx(
|
|
420
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: "box", size: 14 }), jsxRuntime.jsx("span", { style: { fontSize: 12, color: theme.textPrimary, flex: 1 }, children: pkg.name }), jsxRuntime.jsx("span", { style: {
|
|
420
421
|
padding: '2px 8px',
|
|
421
422
|
fontSize: 10,
|
|
422
423
|
backgroundColor: getSourceBadge(pkg.source),
|
|
@@ -469,14 +470,14 @@ const PreviewPanel = () => {
|
|
|
469
470
|
gap: 12,
|
|
470
471
|
padding: 16,
|
|
471
472
|
borderBottom: `1px solid ${theme.border}`,
|
|
472
|
-
}, children: [jsxRuntime.jsx(
|
|
473
|
+
}, children: [jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 24 }), jsxRuntime.jsxs("div", { style: { flex: 1 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: asset.name }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary }, children: asset.path })] }), jsxRuntime.jsx("button", { onClick: () => dispatch({ type: 'SET_PREVIEW', asset: null }), style: {
|
|
473
474
|
padding: '4px 8px',
|
|
474
475
|
fontSize: 14,
|
|
475
476
|
backgroundColor: 'transparent',
|
|
476
477
|
border: 'none',
|
|
477
478
|
color: theme.textSecondary,
|
|
478
479
|
cursor: 'pointer',
|
|
479
|
-
}, children: "
|
|
480
|
+
}, children: jsxRuntime.jsx(ui.NiceIcon, { name: "close", size: 14 }) })] }), jsxRuntime.jsxs("div", { style: { padding: 16 }, children: [jsxRuntime.jsx("div", { style: {
|
|
480
481
|
width: '100%',
|
|
481
482
|
height: 300,
|
|
482
483
|
backgroundColor: 'rgba(0,0,0,0.3)',
|
|
@@ -486,7 +487,7 @@ const PreviewPanel = () => {
|
|
|
486
487
|
justifyContent: 'center',
|
|
487
488
|
fontSize: 48,
|
|
488
489
|
marginBottom: 16,
|
|
489
|
-
}, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' } })) : (getAssetIcon(asset.type)) }), jsxRuntime.jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 12 }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Type" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.type })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Size" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: formatFileSize(asset.size) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "GUID" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontFamily: 'monospace' }, children: asset.guid })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Last Modified" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.lastModified })] })] }), asset.dependencies && asset.dependencies.length > 0 && (jsxRuntime.jsxs("div", { style: { marginTop: 16 }, children: [jsxRuntime.jsxs("div", { style: { fontSize: 12, fontWeight: 500, color: theme.textPrimary, marginBottom: 8 }, children: ["Dependencies (", asset.dependencies.length, ")"] }), jsxRuntime.jsx("div", { style: { maxHeight: 100, overflow: 'auto' }, children: asset.dependencies.map((dep, i) => (jsxRuntime.jsx("div", { style: {
|
|
490
|
+
}, children: asset.thumbnail ? (jsxRuntime.jsx("img", { src: asset.thumbnail, alt: asset.name, style: { maxWidth: '100%', maxHeight: '100%', objectFit: 'contain' } })) : (jsxRuntime.jsx(ui.NiceIcon, { name: getAssetIcon(asset.type), size: 32 })) }), jsxRuntime.jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 12 }, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Type" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.type })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Size" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: formatFileSize(asset.size) })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "GUID" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary, fontFamily: 'monospace' }, children: asset.guid })] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { style: { fontSize: 11, color: theme.textSecondary }, children: "Last Modified" }), jsxRuntime.jsx("div", { style: { fontSize: 13, color: theme.textPrimary }, children: asset.lastModified })] })] }), asset.dependencies && asset.dependencies.length > 0 && (jsxRuntime.jsxs("div", { style: { marginTop: 16 }, children: [jsxRuntime.jsxs("div", { style: { fontSize: 12, fontWeight: 500, color: theme.textPrimary, marginBottom: 8 }, children: ["Dependencies (", asset.dependencies.length, ")"] }), jsxRuntime.jsx("div", { style: { maxHeight: 100, overflow: 'auto' }, children: asset.dependencies.map((dep, i) => (jsxRuntime.jsx("div", { style: {
|
|
490
491
|
padding: '4px 8px',
|
|
491
492
|
fontSize: 11,
|
|
492
493
|
color: theme.textSecondary,
|
|
@@ -536,7 +537,7 @@ const ImportProgressOverlay = () => {
|
|
|
536
537
|
backgroundColor: theme.panelBackground,
|
|
537
538
|
borderRadius: 12,
|
|
538
539
|
padding: 24,
|
|
539
|
-
}, children: [jsxRuntime.
|
|
540
|
+
}, children: [jsxRuntime.jsxs("h3", { style: { margin: '0 0 16px', fontSize: 16, fontWeight: 600, color: theme.textPrimary }, children: [jsxRuntime.jsx(ui.NiceIcon, { name: progress.phase === 'complete' ? 'success' : 'download', size: 16 }), ' ', progress.phase === 'complete' ? 'Import Complete' : 'Importing Assets'] }), jsxRuntime.jsx("div", { style: { fontSize: 12, color: theme.textSecondary, marginBottom: 8 }, children: progress.message }), progress.currentAsset && (jsxRuntime.jsx("div", { style: {
|
|
540
541
|
fontSize: 11,
|
|
541
542
|
color: theme.textPrimary,
|
|
542
543
|
backgroundColor: 'rgba(0,0,0,0.2)',
|