Skip to content

Commit

Permalink
feat(script-component): add "remove script component" logic
Browse files Browse the repository at this point in the history
  • Loading branch information
yyc-git committed Apr 4, 2019
1 parent f21fa91 commit 3d06aab
Show file tree
Hide file tree
Showing 5 changed files with 801 additions and 2 deletions.
Expand Up @@ -22,7 +22,7 @@ let _removeCameraGroup = (currentSceneTreeNode, (editorState, engineState)) =>
),
);

let _removeArcballCameraControllerGroup =
let _removeArcballCameraController =
(currentSceneTreeNode, (editorState, engineState)) => {
let arcballCameraController =
engineState
Expand All @@ -37,6 +37,17 @@ let _removeArcballCameraControllerGroup =
);
};

let _removeScript = (currentSceneTreeNode, (editorState, engineState)) => {
let script =
engineState
|> GameObjectComponentEngineService.unsafeGetScriptComponent(
currentSceneTreeNode,
);

(editorState, engineState)
|> GameObjectLogicService.disposeScript(currentSceneTreeNode, script);
};

let removeComponentByType =
(type_, currentSceneTreeNode, (editorState, engineState)) =>
switch (type_) {
Expand Down Expand Up @@ -76,10 +87,11 @@ let removeComponentByType =
| CameraGroup =>
_removeCameraGroup(currentSceneTreeNode, (editorState, engineState))
| ArcballCameraController =>
_removeArcballCameraControllerGroup(
_removeArcballCameraController(
currentSceneTreeNode,
(editorState, engineState),
)
| Script => _removeScript(currentSceneTreeNode, (editorState, engineState))
| _ =>
ConsoleUtils.error(
LogUtils.buildErrorMessage(
Expand Down
13 changes: 13 additions & 0 deletions src/service/stateTuple/logic/GameObjectLogicService.re
Expand Up @@ -201,6 +201,19 @@ let disposeArcballCameraController =
),
);

let disposeScript = (gameObject, component, (editorState, engineState)) => (
editorState
|> InspectorEditorService.removeComponentTypeToMap(
gameObject,
InspectorComponentType.Script,
),
GameObjectComponentEngineService.disposeScriptComponent(
gameObject,
component,
engineState,
),
);

let isCurrentSceneTreeNodeSceneGameObject = ((editorState, engineState)) =>
switch (editorState |> SceneTreeEditorService.getCurrentSceneTreeNode) {
| None => false
Expand Down

0 comments on commit 3d06aab

Please sign in to comment.