@nice2dev/game-engine 1.1.6 → 1.1.9
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 +125 -0
- package/dist/cjs/core/GameConfig.js +21 -7
- package/dist/cjs/devtools/DeveloperExperience.js +5 -5
- package/dist/cjs/dialogue/DialogueSystem.js +1 -1
- package/dist/cjs/editor/AssetBrowser.js +26 -25
- package/dist/cjs/editor/NiceGameEditor.js +66 -49
- package/dist/cjs/godot-integration/components/GodotProjectBrowser.js +33 -32
- package/dist/cjs/i18n/I18n.js +305 -0
- package/dist/cjs/kids/KidMode.js +36 -36
- package/dist/cjs/kids/KidTools.js +31 -31
- package/dist/cjs/native-engine/InputSystem.js +9 -2
- package/dist/cjs/package.json +3 -0
- 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/release/MobileExport.js +45 -12
- 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 +106 -89
- package/dist/cjs/tutorials/content/Tutorials_T09_T11.js +103 -55
- package/dist/cjs/tutorials/content/Tutorials_T12_T15.js +79 -56
- 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/core/GameConfig.js +21 -7
- package/dist/esm/devtools/DeveloperExperience.js +5 -5
- package/dist/esm/dialogue/DialogueSystem.js +1 -1
- package/dist/esm/editor/AssetBrowser.js +26 -25
- package/dist/esm/editor/NiceGameEditor.js +67 -50
- package/dist/esm/godot-integration/components/GodotProjectBrowser.js +33 -32
- package/dist/esm/i18n/I18n.js +305 -0
- package/dist/esm/kids/KidMode.js +36 -36
- package/dist/esm/kids/KidTools.js +31 -31
- 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/release/MobileExport.js +45 -12
- 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 +106 -89
- package/dist/esm/tutorials/content/Tutorials_T09_T11.js +103 -55
- package/dist/esm/tutorials/content/Tutorials_T12_T15.js +79 -56
- 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/core/index.d.ts +1 -1
- 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/input/index.d.ts +1 -1
- package/dist/types/kids/KidMode.d.ts +4 -2
- package/dist/types/kids/KidTools.d.ts +1 -1
- package/dist/types/legendary/index.d.ts +7 -7
- package/dist/types/procedural/index.d.ts +1 -1
- package/dist/types/tutorials/TutorialBranching.d.ts +1 -1
- package/package.json +3 -2
- 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
|
@@ -34,12 +34,12 @@ const TUTORIAL_RPG = {
|
|
|
34
34
|
id: 'rpg-intro',
|
|
35
35
|
type: 'text',
|
|
36
36
|
title: {
|
|
37
|
-
en: 'Build Your Own RPG!
|
|
38
|
-
pl: 'Zbuduj swoje RPG!
|
|
39
|
-
de: 'Baue dein eigenes RPG!
|
|
37
|
+
en: 'Build Your Own RPG!',
|
|
38
|
+
pl: 'Zbuduj swoje RPG!',
|
|
39
|
+
de: 'Baue dein eigenes RPG!',
|
|
40
40
|
},
|
|
41
41
|
content: {
|
|
42
|
-
en:
|
|
42
|
+
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?",
|
|
43
43
|
pl: 'W tym tutorialu zbudujesz klasyczne RPG z widokiem z góry!\n\n• Statystyki postaci (HP, MP, ATK, DEF, SPD)\n• System XP i poziomów\n• Ekwipunek i przedmioty\n• NPC z dialogami\n• System walki turowej\n• Świat z tilemapy z przejściami\n\nGotowy na przygodę?',
|
|
44
44
|
de: 'In diesem Tutorial baust du ein klassisches Top-Down-RPG!\n\n• Charakterwerte (HP, MP, ATK, DEF, SPD)\n• XP- und Levelsystem\n• Inventar und Items\n• NPCs mit Dialogen\n• Rundenbasiertes Kampfsystem\n• Tilemap-Welt mit Warps\n\nBereit für ein Abenteuer?',
|
|
45
45
|
},
|
|
@@ -56,7 +56,7 @@ const TUTORIAL_RPG = {
|
|
|
56
56
|
de: 'Charakterwerte & Leveling',
|
|
57
57
|
},
|
|
58
58
|
content: {
|
|
59
|
-
en:
|
|
59
|
+
en: "Define your hero's stats. Use the RPG template config for stat growth curves and XP requirements.",
|
|
60
60
|
pl: 'Zdefiniuj statystyki bohatera. Użyj konfiguracji szablonu RPG dla krzywych wzrostu statystyk i wymogów XP.',
|
|
61
61
|
de: 'Definiere die Werte deines Helden. Verwende die RPG-Template-Konfiguration für Wachstumskurven und XP-Anforderungen.',
|
|
62
62
|
},
|
|
@@ -110,7 +110,7 @@ const TUTORIAL_RPG = {
|
|
|
110
110
|
pl: 'Stwórz NPC z drzewami dialogów. Gracz może wybierać odpowiedzi, które rozgałęziają rozmowę.',
|
|
111
111
|
de: 'Erstelle NPCs mit Dialogbäumen. Spieler können Antworten wählen, die das Gespräch verzweigen.',
|
|
112
112
|
},
|
|
113
|
-
codeTemplate:
|
|
113
|
+
codeTemplate: '// Dialogue system\ninterface DialogNode {\n id: string;\n text: string;\n',
|
|
114
114
|
codeSolution: "interface DialogNode {\n id: string;\n text: string;\n speaker: string;\n choices?: { text: string; next: string; condition?: string }[];\n next?: string; // auto-advance to next node\n}\n\nconst innkeeperDialog: DialogNode[] = [\n {\n id: 'greet',\n speaker: 'Innkeeper',\n text: 'Welcome, traveler! Would you like to rest?',\n choices: [\n { text: 'Yes, I need rest. (10 gold)', next: 'rest' },\n { text: 'No thanks.', next: 'bye' },\n { text: 'Any rumors?', next: 'rumors' },\n ],\n },\n {\n id: 'rest',\n speaker: 'Innkeeper',\n text: 'Sleep well! *HP and MP fully restored*',\n next: 'greet',\n },\n {\n id: 'rumors',\n speaker: 'Innkeeper',\n text: 'I heard monsters in the eastern cave grew stronger...',\n next: 'greet',\n },\n {\n id: 'bye',\n speaker: 'Innkeeper',\n text: 'Safe travels!',\n },\n];",
|
|
115
115
|
codeValidation: {
|
|
116
116
|
containsAll: ['DialogNode', 'speaker', 'choices', 'next'],
|
|
@@ -161,7 +161,7 @@ const TUTORIAL_RPG = {
|
|
|
161
161
|
de: 'Erstelle mehrere Räume verbunden durch Warps. Verwende Tilemaps für jeden Bereich (Stadt, Wald, Höhle, Burg).',
|
|
162
162
|
},
|
|
163
163
|
requiredAction: 'create-world-map',
|
|
164
|
-
codeTemplate:
|
|
164
|
+
codeTemplate: '// Define world areas\nconst areas = [\n',
|
|
165
165
|
codeSolution: "const areas = [\n { id: 'town', name: 'Starter Town', tilemap: 'town-map', npcs: ['innkeeper', 'shopkeeper'] },\n { id: 'forest', name: 'Dark Forest', tilemap: 'forest-map', enemies: ['wolf', 'slime'] },\n { id: 'cave', name: 'Crystal Cave', tilemap: 'cave-map', enemies: ['bat', 'golem'] },\n { id: 'castle', name: 'Demon Castle', tilemap: 'castle-map', enemies: ['skeleton', 'demon-lord'] },\n];\n\nconst warps = [\n { from: 'town', to: 'forest', x: 19, y: 7 },\n { from: 'forest', to: 'cave', x: 15, y: 2 },\n { from: 'forest', to: 'town', x: 0, y: 7 },\n { from: 'cave', to: 'castle', x: 10, y: 0 },\n];",
|
|
166
166
|
codeValidation: {
|
|
167
167
|
containsAll: ['areas', 'warps', 'tilemap'],
|
|
@@ -172,9 +172,9 @@ const TUTORIAL_RPG = {
|
|
|
172
172
|
id: 'rpg-quiz',
|
|
173
173
|
type: 'quiz',
|
|
174
174
|
title: {
|
|
175
|
-
en: 'RPG Quiz
|
|
176
|
-
pl: 'Quiz RPG
|
|
177
|
-
de: 'RPG-Quiz
|
|
175
|
+
en: 'RPG Quiz',
|
|
176
|
+
pl: 'Quiz RPG',
|
|
177
|
+
de: 'RPG-Quiz',
|
|
178
178
|
},
|
|
179
179
|
content: {
|
|
180
180
|
en: 'In a turn-based RPG, what stat typically determines the order of actions?',
|
|
@@ -194,12 +194,12 @@ const TUTORIAL_RPG = {
|
|
|
194
194
|
id: 'rpg-complete',
|
|
195
195
|
type: 'checkpoint',
|
|
196
196
|
title: {
|
|
197
|
-
en: 'RPG Complete!
|
|
198
|
-
pl: 'RPG gotowe!
|
|
199
|
-
de: 'RPG fertig!
|
|
197
|
+
en: 'RPG Complete!',
|
|
198
|
+
pl: 'RPG gotowe!',
|
|
199
|
+
de: 'RPG fertig!',
|
|
200
200
|
},
|
|
201
201
|
content: {
|
|
202
|
-
en:
|
|
202
|
+
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!",
|
|
203
203
|
pl: 'Niesamowite! Zbudowałeś pełne RPG z:\n• Statystyki i poziomy postaci\n• Ekwipunek z systemem rzadkości\n• NPC z rozgałęzionymi dialogami\n• Walki turowe\n• Mapa świata z wieloma obszarami\n\nWyzwanie: Dodaj system drużyny z 4 bohaterami!',
|
|
204
204
|
de: 'Fantastisch! Du hast ein vollständiges RPG gebaut mit:\n• Charakterwerte & Leveling\n• Inventar mit Seltenheitssystem\n• NPCs mit verzweigten Dialogen\n• Rundenbasierter Kampf\n• Weltkarte mit mehreren Bereichen\n\nHerausforderung: Füge ein Gruppensystem mit 4 Helden hinzu!',
|
|
205
205
|
},
|
|
@@ -234,12 +234,12 @@ const TUTORIAL_TOWER_DEFENSE = {
|
|
|
234
234
|
id: 'td-intro',
|
|
235
235
|
type: 'text',
|
|
236
236
|
title: {
|
|
237
|
-
en: 'Build Tower Defense!
|
|
238
|
-
pl: 'Zbuduj Tower Defense!
|
|
239
|
-
de: 'Baue Tower Defense!
|
|
237
|
+
en: 'Build Tower Defense!',
|
|
238
|
+
pl: 'Zbuduj Tower Defense!',
|
|
239
|
+
de: 'Baue Tower Defense!',
|
|
240
240
|
},
|
|
241
241
|
content: {
|
|
242
|
-
en:
|
|
242
|
+
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!",
|
|
243
243
|
pl: 'W tym tutorialu zbudujesz grę tower defense!\n\n• Mapa ze ścieżką dla wrogów\n• Typy wież (strzały, armata, lód, laser)\n• Fale wrogów ze skalującą się trudnością\n• Tryby celowania wież\n• System ulepszeń\n• Złoto i ekonomia\n\nBroń swojej bazy!',
|
|
244
244
|
de: 'In diesem Tutorial baust du ein Tower-Defense-Spiel!\n\n• Karte mit Feindpfad\n• Turmtypen (Pfeil, Kanone, Eis, Laser)\n• Feindwellen mit steigender Schwierigkeit\n• Turm-Zielmodi\n• Upgrade-System\n• Gold & Wirtschaft\n\nVerteidige deine Basis!',
|
|
245
245
|
},
|
|
@@ -286,7 +286,7 @@ const TUTORIAL_TOWER_DEFENSE = {
|
|
|
286
286
|
de: 'Feinde folgen einem vordefinierten Pfad vom Start zum Ende. Definiere Wegpunkte, zwischen denen Feinde laufen.',
|
|
287
287
|
},
|
|
288
288
|
codeTemplate: '// Enemy path waypoints\nconst path = [\n',
|
|
289
|
-
codeSolution:
|
|
289
|
+
codeSolution: 'const path = [\n { x: 0, y: 200 }, // start (left edge)\n { x: 200, y: 200 }, // turn down\n { x: 200, y: 400 },\n { x: 400, y: 400 }, // turn up\n { x: 400, y: 100 },\n { x: 600, y: 100 }, // final stretch\n { x: 600, y: 300 },\n { x: 800, y: 300 }, // end (base)\n];\n\nfunction moveAlongPath(enemy: any, dt: number) {\n const target = path[enemy.waypointIndex];\n const dx = target.x - enemy.x;\n const dy = target.y - enemy.y;\n const dist = Math.sqrt(dx * dx + dy * dy);\n\n if (dist < 5) {\n enemy.waypointIndex++;\n if (enemy.waypointIndex >= path.length) {\n // Enemy reached the base!\n enemy.reachedEnd = true;\n }\n } else {\n enemy.x += (dx / dist) * enemy.speed * dt;\n enemy.y += (dy / dist) * enemy.speed * dt;\n }\n}',
|
|
290
290
|
codeValidation: {
|
|
291
291
|
containsAll: ['path', 'waypointIndex', 'moveAlongPath'],
|
|
292
292
|
},
|
|
@@ -361,7 +361,7 @@ const TUTORIAL_TOWER_DEFENSE = {
|
|
|
361
361
|
de: 'Türme können aufgewertet werden für mehr Schaden und Reichweite. Verdiene Gold durch Feind-Kills. Verkaufe Türme für Rückerstattung.',
|
|
362
362
|
},
|
|
363
363
|
codeTemplate: '// Upgrade system\nlet gold = 200;\n',
|
|
364
|
-
codeSolution:
|
|
364
|
+
codeSolution: 'let gold = 200;\n\nfunction upgradeTower(tower: any): boolean {\n const upgradeCost = Math.floor(tower.cost * 0.75 * tower.level);\n if (gold < upgradeCost) return false;\n\n gold -= upgradeCost;\n tower.level++;\n tower.damage = Math.floor(tower.damage * 1.3);\n tower.range += 10;\n tower.fireRate *= 1.1;\n return true;\n}\n\nfunction sellTower(tower: any): number {\n const refund = Math.floor(tower.cost * 0.6);\n gold += refund;\n return refund;\n}\n\nfunction onEnemyKilled(enemy: any) {\n gold += enemy.goldReward;\n}',
|
|
365
365
|
codeValidation: {
|
|
366
366
|
containsAll: ['upgradeTower', 'sellTower', 'gold'],
|
|
367
367
|
},
|
|
@@ -376,12 +376,12 @@ const TUTORIAL_TOWER_DEFENSE = {
|
|
|
376
376
|
id: 'td-complete',
|
|
377
377
|
type: 'checkpoint',
|
|
378
378
|
title: {
|
|
379
|
-
en: 'Tower Defense Complete!
|
|
380
|
-
pl: 'Tower Defense gotowy!
|
|
381
|
-
de: 'Tower Defense fertig!
|
|
379
|
+
en: 'Tower Defense Complete!',
|
|
380
|
+
pl: 'Tower Defense gotowy!',
|
|
381
|
+
de: 'Tower Defense fertig!',
|
|
382
382
|
},
|
|
383
383
|
content: {
|
|
384
|
-
en:
|
|
384
|
+
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!",
|
|
385
385
|
pl: 'Zbudowałeś kompletną grę tower defense!\n• 4 typy wież z różnym celowaniem\n• Pathfinding wrogów po waypointach\n• Eskalujący system fal\n• Mechaniki ulepszania i sprzedaży\n• Ekonomia złota\n\nWyzwanie: Dodaj latających wrogów ignorujących ścieżkę!',
|
|
386
386
|
de: 'Du hast ein komplettes Tower-Defense-Spiel gebaut!\n• 4 Turmtypen mit verschiedenem Zielen\n• Feind-Pathfinding entlang Wegpunkten\n• Eskalierendes Wellensystem\n• Upgrade- & Verkaufsmechaniken\n• Gold-Wirtschaft\n\nHerausforderung: Füge fliegende Feinde hinzu, die den Pfad ignorieren!',
|
|
387
387
|
},
|
|
@@ -416,12 +416,12 @@ const TUTORIAL_3D_GAME = {
|
|
|
416
416
|
id: '3d-intro',
|
|
417
417
|
type: 'text',
|
|
418
418
|
title: {
|
|
419
|
-
en: 'Welcome to 3D!
|
|
420
|
-
pl: 'Witaj w 3D!
|
|
421
|
-
de: 'Willkommen in 3D!
|
|
419
|
+
en: 'Welcome to 3D!',
|
|
420
|
+
pl: 'Witaj w 3D!',
|
|
421
|
+
de: 'Willkommen in 3D!',
|
|
422
422
|
},
|
|
423
423
|
content: {
|
|
424
|
-
en:
|
|
424
|
+
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!",
|
|
425
425
|
pl: 'W tym tutorialu wejdziesz w trzeci wymiar!\n\n• Skonfiguruj świat 3D (World3D)\n• Dodaj meshe (sześcian, sfera, płaszczyzna)\n• Oświetlenie (kierunkowe, punktowe, spot)\n• Kontrolery kamery (FPS, orbita)\n• Fizyka 3D (rigid body, kolidery)\n• Kontroler postaci (chodzenie, skakanie)\n\nWejdźmy w 3D!',
|
|
426
426
|
de: 'In diesem Tutorial betrittst du die dritte Dimension!\n\n• 3D-Welt einrichten (World3D)\n• Meshes hinzufügen (Würfel, Kugel, Ebene)\n• Beleuchtung (Richtung, Punkt, Spot)\n• Kamera-Controller (FPS, Orbit)\n• 3D-Physik (Starrkörper, Kollider)\n• Character-Controller (Laufen, Springen)\n\nAb in die 3. Dimension!',
|
|
427
427
|
},
|
|
@@ -583,12 +583,12 @@ const TUTORIAL_3D_GAME = {
|
|
|
583
583
|
id: '3d-complete',
|
|
584
584
|
type: 'checkpoint',
|
|
585
585
|
title: {
|
|
586
|
-
en: '3D Game Complete!
|
|
587
|
-
pl: 'Gra 3D gotowa!
|
|
588
|
-
de: '3D-Spiel fertig!
|
|
586
|
+
en: '3D Game Complete!',
|
|
587
|
+
pl: 'Gra 3D gotowa!',
|
|
588
|
+
de: '3D-Spiel fertig!',
|
|
589
589
|
},
|
|
590
590
|
content: {
|
|
591
|
-
en:
|
|
591
|
+
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!",
|
|
592
592
|
pl: 'Zbudowałeś swoją pierwszą grę 3D!\n• Scena World3D z wieloma obiektami\n• Prymitywne meshe (sześcian, sfera, płaszczyzna)\n• Oświetlenie kierunkowe i punktowe\n• Kontroler kamery orbitalnej\n• Fizyka 3D z ciałami sztywnymi\n• Kontroler postaci ze skakaniem\n\nWyzwanie: Dodaj skybox i kamerę trzeciej osoby!',
|
|
593
593
|
de: 'Du hast dein erstes 3D-Spiel gebaut!\n• World3D-Szene mit mehreren Objekten\n• Primitive Meshes (Würfel, Kugel, Ebene)\n• Richtungs- und Punktbeleuchtung\n• Orbit-Kamera-Controller\n• 3D-Physik mit Starrkörpern\n• Character-Controller mit Springen\n\nHerausforderung: Füge eine Skybox und Third-Person-Kamera hinzu!',
|
|
594
594
|
},
|
|
@@ -623,14 +623,14 @@ const TUTORIAL_PUBLISHING = {
|
|
|
623
623
|
id: 'pub-intro',
|
|
624
624
|
type: 'text',
|
|
625
625
|
title: {
|
|
626
|
-
en: 'Publish Your Game!
|
|
627
|
-
pl: 'Opublikuj swoją grę!
|
|
628
|
-
de: 'Veröffentliche dein Spiel!
|
|
626
|
+
en: 'Publish Your Game!',
|
|
627
|
+
pl: 'Opublikuj swoją grę!',
|
|
628
|
+
de: 'Veröffentliche dein Spiel!',
|
|
629
629
|
},
|
|
630
630
|
content: {
|
|
631
|
-
en:
|
|
631
|
+
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!",
|
|
632
632
|
pl: 'Twoja gra jest gotowa — czas podzielić się nią ze światem!\n\n• Wykrywanie funkcji (sprawdź wsparcie przeglądarki)\n• Optymalizacja buildu (minifikacja, tree-shaking)\n• Eksport PWA (instalowalna web app)\n• Eksport Electron (Windows/Mac/Linux)\n• Eksport Capacitor (iOS/Android)\n• Benchmarkowanie wydajności\n\nWdrażamy!',
|
|
633
|
-
de:
|
|
633
|
+
de: "Dein Spiel ist bereit — teile es mit der Welt!\n\n• Feature-Erkennung (Browser-Support)\n• Build-Optimierung (Minifizierung, Tree-Shaking)\n• PWA-Export (installierbare Web-App)\n• Electron-Export (Windows/Mac/Linux)\n• Capacitor-Export (iOS/Android)\n• Performance-Benchmarking\n\nLos geht's!",
|
|
634
634
|
},
|
|
635
635
|
skippable: true,
|
|
636
636
|
tooltipPosition: 'center',
|
|
@@ -730,9 +730,9 @@ const TUTORIAL_PUBLISHING = {
|
|
|
730
730
|
id: 'pub-quiz',
|
|
731
731
|
type: 'quiz',
|
|
732
732
|
title: {
|
|
733
|
-
en: 'Publishing Quiz
|
|
734
|
-
pl: 'Quiz o publikacji
|
|
735
|
-
de: 'Veröffentlichungs-Quiz
|
|
733
|
+
en: 'Publishing Quiz',
|
|
734
|
+
pl: 'Quiz o publikacji',
|
|
735
|
+
de: 'Veröffentlichungs-Quiz',
|
|
736
736
|
},
|
|
737
737
|
content: {
|
|
738
738
|
en: 'What is a PWA (Progressive Web App)?',
|
|
@@ -740,10 +740,38 @@ const TUTORIAL_PUBLISHING = {
|
|
|
740
740
|
de: 'Was ist eine PWA (Progressive Web App)?',
|
|
741
741
|
},
|
|
742
742
|
quizOptions: [
|
|
743
|
-
{
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
743
|
+
{
|
|
744
|
+
id: 'a',
|
|
745
|
+
text: {
|
|
746
|
+
en: 'A native mobile app',
|
|
747
|
+
pl: 'Natywna aplikacja mobilna',
|
|
748
|
+
de: 'Eine native mobile App',
|
|
749
|
+
},
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
id: 'b',
|
|
753
|
+
text: {
|
|
754
|
+
en: 'A web app that can be installed and works offline',
|
|
755
|
+
pl: 'Web app instalowalna i działająca offline',
|
|
756
|
+
de: 'Eine Web-App die installierbar ist und offline funktioniert',
|
|
757
|
+
},
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
id: 'c',
|
|
761
|
+
text: {
|
|
762
|
+
en: 'A special browser plugin',
|
|
763
|
+
pl: 'Specjalna wtyczka przeglądarki',
|
|
764
|
+
de: 'Ein spezielles Browser-Plugin',
|
|
765
|
+
},
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
id: 'd',
|
|
769
|
+
text: {
|
|
770
|
+
en: 'A server-side application',
|
|
771
|
+
pl: 'Aplikacja serwerowa',
|
|
772
|
+
de: 'Eine serverseitige Anwendung',
|
|
773
|
+
},
|
|
774
|
+
},
|
|
747
775
|
],
|
|
748
776
|
quizCorrectId: 'b',
|
|
749
777
|
},
|
|
@@ -752,14 +780,14 @@ const TUTORIAL_PUBLISHING = {
|
|
|
752
780
|
id: 'pub-complete',
|
|
753
781
|
type: 'checkpoint',
|
|
754
782
|
title: {
|
|
755
|
-
en: 'Publication Complete!
|
|
756
|
-
pl: 'Publikacja gotowa!
|
|
757
|
-
de: 'Veröffentlichung fertig!
|
|
783
|
+
en: 'Publication Complete!',
|
|
784
|
+
pl: 'Publikacja gotowa!',
|
|
785
|
+
de: 'Veröffentlichung fertig!',
|
|
758
786
|
},
|
|
759
787
|
content: {
|
|
760
|
-
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!
|
|
761
|
-
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!
|
|
762
|
-
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!
|
|
788
|
+
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!',
|
|
789
|
+
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!',
|
|
790
|
+
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!',
|
|
763
791
|
},
|
|
764
792
|
},
|
|
765
793
|
],
|
|
@@ -768,12 +796,7 @@ const TUTORIAL_PUBLISHING = {
|
|
|
768
796
|
Convenience export
|
|
769
797
|
══════════════════════════════════════════════════════════════ */
|
|
770
798
|
function getTutorials_T12_T15() {
|
|
771
|
-
return [
|
|
772
|
-
TUTORIAL_RPG,
|
|
773
|
-
TUTORIAL_TOWER_DEFENSE,
|
|
774
|
-
TUTORIAL_3D_GAME,
|
|
775
|
-
TUTORIAL_PUBLISHING,
|
|
776
|
-
];
|
|
799
|
+
return [TUTORIAL_RPG, TUTORIAL_TOWER_DEFENSE, TUTORIAL_3D_GAME, TUTORIAL_PUBLISHING];
|
|
777
800
|
}
|
|
778
801
|
|
|
779
802
|
export { TUTORIAL_3D_GAME, TUTORIAL_PUBLISHING, TUTORIAL_RPG, TUTORIAL_TOWER_DEFENSE, getTutorials_T12_T15 };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { NiceIcon } from '@nice2dev/ui';
|
|
2
3
|
import { createContext, forwardRef, useReducer, useMemo, useCallback, useImperativeHandle, useState, useContext } from 'react';
|
|
3
4
|
|
|
4
5
|
const DEFAULT_THEME = {
|
|
@@ -104,21 +105,21 @@ function formatFileSize(bytes) {
|
|
|
104
105
|
function getCategoryIcon(category) {
|
|
105
106
|
switch (category) {
|
|
106
107
|
case '3d':
|
|
107
|
-
return '
|
|
108
|
+
return 'box';
|
|
108
109
|
case '2d':
|
|
109
|
-
return '
|
|
110
|
+
return 'image';
|
|
110
111
|
case 'tools':
|
|
111
|
-
return '
|
|
112
|
+
return 'settings';
|
|
112
113
|
case 'vfx':
|
|
113
|
-
return '
|
|
114
|
+
return 'star';
|
|
114
115
|
case 'audio':
|
|
115
|
-
return '
|
|
116
|
+
return 'volume';
|
|
116
117
|
case 'templates':
|
|
117
|
-
return '
|
|
118
|
+
return 'clipboard';
|
|
118
119
|
case 'add-ons':
|
|
119
|
-
return '
|
|
120
|
+
return 'puzzle';
|
|
120
121
|
default:
|
|
121
|
-
return '
|
|
122
|
+
return 'box';
|
|
122
123
|
}
|
|
123
124
|
}
|
|
124
125
|
/* ── Search Header ────────────────────────────────────────────── */
|
|
@@ -143,7 +144,7 @@ const SearchHeader = () => {
|
|
|
143
144
|
padding: '16px 24px',
|
|
144
145
|
backgroundColor: theme.headerBackground,
|
|
145
146
|
borderBottom: `1px solid ${theme.border}`,
|
|
146
|
-
}, children: [jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, marginBottom: 12 }, children: [jsx(
|
|
147
|
+
}, children: [jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 12, marginBottom: 12 }, children: [jsx(NiceIcon, { name: "building", size: 24 }), jsx("h1", { style: { margin: 0, fontSize: 18, fontWeight: 600, color: theme.textPrimary }, children: "Unity Asset Store" }), jsx("div", { style: { flex: 1 } }), jsxs("button", { style: {
|
|
147
148
|
display: 'flex',
|
|
148
149
|
alignItems: 'center',
|
|
149
150
|
gap: 6,
|
|
@@ -153,14 +154,14 @@ const SearchHeader = () => {
|
|
|
153
154
|
borderRadius: 6,
|
|
154
155
|
color: '#fff',
|
|
155
156
|
cursor: 'pointer',
|
|
156
|
-
}, children: ["
|
|
157
|
+
}, children: [jsx(NiceIcon, { name: "box", size: 14 }), " Cart (", state.cart.size, ")"] }), jsxs("button", { onClick: () => dispatch({ type: 'TOGGLE_MY_ASSETS' }), style: {
|
|
157
158
|
padding: '8px 12px',
|
|
158
159
|
backgroundColor: state.myAssets ? theme.accent : 'rgba(0,0,0,0.2)',
|
|
159
160
|
border: 'none',
|
|
160
161
|
borderRadius: 6,
|
|
161
162
|
color: '#fff',
|
|
162
163
|
cursor: 'pointer',
|
|
163
|
-
}, children: "
|
|
164
|
+
}, children: [jsx(NiceIcon, { name: "book", size: 14 }), " My Assets"] })] }), jsxs("div", { style: { display: 'flex', gap: 8 }, children: [jsxs("div", { style: { flex: 1, position: 'relative' }, children: [jsx("input", { type: "text", placeholder: "Search assets...", value: localQuery, onChange: (e) => setLocalQuery(e.target.value), onKeyDown: (e) => e.key === 'Enter' && handleSearch(), style: {
|
|
164
165
|
width: '100%',
|
|
165
166
|
padding: '10px 16px',
|
|
166
167
|
paddingRight: 50,
|
|
@@ -181,7 +182,7 @@ const SearchHeader = () => {
|
|
|
181
182
|
borderRadius: 6,
|
|
182
183
|
color: '#fff',
|
|
183
184
|
cursor: 'pointer',
|
|
184
|
-
}, children: "
|
|
185
|
+
}, children: jsx(NiceIcon, { name: "search", size: 14 }) })] }), jsx("select", { value: state.query.category, onChange: (e) => {
|
|
185
186
|
dispatch({
|
|
186
187
|
type: 'SET_QUERY',
|
|
187
188
|
query: { category: e.target.value, page: 1 },
|
|
@@ -228,7 +229,7 @@ const RatingStars = ({ rating, count }) => {
|
|
|
228
229
|
return (jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 4 }, children: [[1, 2, 3, 4, 5].map((star) => (jsx("span", { style: {
|
|
229
230
|
fontSize: 12,
|
|
230
231
|
color: star <= Math.round(rating) ? theme.star : theme.textSecondary,
|
|
231
|
-
}, children: "
|
|
232
|
+
}, children: jsx(NiceIcon, { name: "star", size: 12 }) }, star))), count !== undefined && (jsxs("span", { style: { fontSize: 11, color: theme.textSecondary, marginLeft: 4 }, children: ["(", count, ")"] }))] }));
|
|
232
233
|
};
|
|
233
234
|
/* ── Asset Card ───────────────────────────────────────────────── */
|
|
234
235
|
const AssetCard = ({ asset }) => {
|
|
@@ -290,7 +291,7 @@ const AssetCard = ({ asset }) => {
|
|
|
290
291
|
alignItems: 'center',
|
|
291
292
|
justifyContent: 'center',
|
|
292
293
|
fontSize: 14,
|
|
293
|
-
}, children: getCategoryIcon(asset.category) })] }), jsxs("div", { style: { padding: 12 }, children: [jsx("h3", { style: {
|
|
294
|
+
}, children: jsx(NiceIcon, { name: getCategoryIcon(asset.category), size: 32 }) })] }), jsxs("div", { style: { padding: 12 }, children: [jsx("h3", { style: {
|
|
294
295
|
margin: 0,
|
|
295
296
|
fontSize: 13,
|
|
296
297
|
fontWeight: 600,
|
|
@@ -331,7 +332,7 @@ const AssetCard = ({ asset }) => {
|
|
|
331
332
|
borderRadius: 6,
|
|
332
333
|
color: '#fff',
|
|
333
334
|
cursor: isDownloading ? 'not-allowed' : 'pointer',
|
|
334
|
-
}, children: isDownloading ? `${downloadProgress}%` : '
|
|
335
|
+
}, children: isDownloading ? `${downloadProgress}%` : 'Download' })) : (jsx("button", { onClick: (e) => {
|
|
335
336
|
e.stopPropagation();
|
|
336
337
|
if (isInCart) {
|
|
337
338
|
dispatch({ type: 'REMOVE_FROM_CART', id: asset.id });
|
|
@@ -349,7 +350,7 @@ const AssetCard = ({ asset }) => {
|
|
|
349
350
|
borderRadius: 6,
|
|
350
351
|
color: '#fff',
|
|
351
352
|
cursor: 'pointer',
|
|
352
|
-
}, children: isInCart ? '
|
|
353
|
+
}, children: isInCart ? 'In Cart' : 'Add to Cart' })), jsx("button", { onClick: (e) => {
|
|
353
354
|
e.stopPropagation();
|
|
354
355
|
openInBrowser(asset);
|
|
355
356
|
}, style: {
|
|
@@ -360,7 +361,7 @@ const AssetCard = ({ asset }) => {
|
|
|
360
361
|
borderRadius: 6,
|
|
361
362
|
color: theme.textSecondary,
|
|
362
363
|
cursor: 'pointer',
|
|
363
|
-
}, children: "
|
|
364
|
+
}, children: jsx(NiceIcon, { name: "link", size: 14 }) })] })] })] }));
|
|
364
365
|
};
|
|
365
366
|
/* ── Asset Grid ───────────────────────────────────────────────── */
|
|
366
367
|
const AssetGrid = () => {
|
|
@@ -372,7 +373,7 @@ const AssetGrid = () => {
|
|
|
372
373
|
alignItems: 'center',
|
|
373
374
|
justifyContent: 'center',
|
|
374
375
|
color: theme.textSecondary,
|
|
375
|
-
}, children: "
|
|
376
|
+
}, children: "Loading assets..." }));
|
|
376
377
|
}
|
|
377
378
|
if (state.error) {
|
|
378
379
|
return (jsxs("div", { style: {
|
|
@@ -381,7 +382,7 @@ const AssetGrid = () => {
|
|
|
381
382
|
alignItems: 'center',
|
|
382
383
|
justifyContent: 'center',
|
|
383
384
|
color: theme.danger,
|
|
384
|
-
}, children: ["
|
|
385
|
+
}, children: [jsx(NiceIcon, { name: "error", size: 14 }), " ", state.error] }));
|
|
385
386
|
}
|
|
386
387
|
if (state.results.length === 0) {
|
|
387
388
|
return (jsxs("div", { style: {
|
|
@@ -391,7 +392,7 @@ const AssetGrid = () => {
|
|
|
391
392
|
alignItems: 'center',
|
|
392
393
|
justifyContent: 'center',
|
|
393
394
|
color: theme.textSecondary,
|
|
394
|
-
}, children: [jsx("div", { style: {
|
|
395
|
+
}, children: [jsx("div", { style: { marginBottom: 16 }, children: jsx(NiceIcon, { name: "archive", size: 48 }) }), jsx("div", { children: "No assets found" })] }));
|
|
395
396
|
}
|
|
396
397
|
return (jsx("div", { style: {
|
|
397
398
|
display: 'grid',
|
|
@@ -474,7 +475,7 @@ const AssetDetailModal = () => {
|
|
|
474
475
|
borderRadius: 8,
|
|
475
476
|
color: '#fff',
|
|
476
477
|
cursor: isDownloading ? 'not-allowed' : 'pointer',
|
|
477
|
-
}, children: isDownloading ? `Downloading ${downloadProgress}%` : '
|
|
478
|
+
}, children: isDownloading ? `Downloading ${downloadProgress}%` : 'Download & Import' })) : (jsx("button", { onClick: () => isInCart
|
|
478
479
|
? dispatch({ type: 'REMOVE_FROM_CART', id: asset.id })
|
|
479
480
|
: dispatch({ type: 'ADD_TO_CART', id: asset.id }), style: {
|
|
480
481
|
width: '100%',
|
|
@@ -486,7 +487,7 @@ const AssetDetailModal = () => {
|
|
|
486
487
|
borderRadius: 8,
|
|
487
488
|
color: '#fff',
|
|
488
489
|
cursor: 'pointer',
|
|
489
|
-
}, children: isInCart ? '
|
|
490
|
+
}, children: isInCart ? 'Remove from Cart' : 'Add to Cart' })), jsxs("button", { onClick: () => openInBrowser(asset), style: {
|
|
490
491
|
width: '100%',
|
|
491
492
|
marginTop: 8,
|
|
492
493
|
padding: '10px 24px',
|
|
@@ -496,7 +497,7 @@ const AssetDetailModal = () => {
|
|
|
496
497
|
borderRadius: 8,
|
|
497
498
|
color: theme.textSecondary,
|
|
498
499
|
cursor: 'pointer',
|
|
499
|
-
}, children: "
|
|
500
|
+
}, children: [jsx(NiceIcon, { name: "external-link", size: 14 }), " View on Asset Store"] })] })] }), jsx("button", { onClick: () => dispatch({ type: 'SELECT_ASSET', asset: null }), style: {
|
|
500
501
|
position: 'absolute',
|
|
501
502
|
top: 16,
|
|
502
503
|
right: 16,
|
|
@@ -506,7 +507,7 @@ const AssetDetailModal = () => {
|
|
|
506
507
|
border: 'none',
|
|
507
508
|
color: theme.textSecondary,
|
|
508
509
|
cursor: 'pointer',
|
|
509
|
-
}, children: "
|
|
510
|
+
}, children: jsx(NiceIcon, { name: "close", size: 14 }) })] }), jsx("div", { style: { display: 'flex', borderBottom: `1px solid ${theme.border}` }, children: ['overview', 'images', 'reviews'].map((tab) => (jsx("button", { onClick: () => setActiveTab(tab), style: {
|
|
510
511
|
flex: 1,
|
|
511
512
|
padding: '12px 16px',
|
|
512
513
|
fontSize: 13,
|