public void StartAssetToolkit()
    {
        if (_assetToolkit != null)
        {
            _assetToolkit.Destroy();
        }

        _assetToolkit = new CAssetToolkit();
        _assetToolkit.Init(ToolkitUI);
    }
Exemple #2
0
    public override void Init(CAssetToolkit Toolkit)
    {
        base.Init(Toolkit);

        mPrimaryContent = mUI.CreateElement(Toolkit.mPrimaryContent, "modelEditor");
        mUI.AddLayout(mPrimaryContent, -1, -1, 1.0f, 1.0f);
        mUI.AddVerticalLayout(mPrimaryContent);
        mPrimaryContent.GetComponent <VerticalLayoutGroup>().spacing = 4.0f;

        GameObject toolbar = mUI.CreateElement(mPrimaryContent, "toolbarView");

        mUI.AddLayout(toolbar, -1, 48, 1.0f, 0.0f);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        _tbbSave = mUI.CreateToolbarButton(toolbar, "Save", mUI.SaveImage, _Save);
        //mUI.CreateToolbarButton(toolbar, "Revert", mUI.SaveImage);

        GameObject content;
        GameObject w1p = mUI.CreateWindowPanel(mPrimaryContent, out content, "Brush Editor");

        mUI.AddLayout(w1p, -1, -1, 1.0f, 1.0f);
        //mUI.CreateTextElement(w1pContent, "Information", "text", CToolkitUI.ETextStyle.TS_HEADING);
        //mUI.CreateTextElement(w1pContent, "Testing string");

        mUI.CreateTextElement(content, "Brush Properties", "text", CToolkitUI.ETextStyle.TS_HEADING);

        GameObject editor;

        mUI.CreateFieldElement(content, "Color", out editor);
        mUI.CreateColorEditor(editor, _brushAsset.mRawColor, (Color color) => { _brushAsset.mRawColor = color; _ModifyAsset(); });

        mUI.CreateFieldElement(content, "Line Weight", out editor);
        mUI.CreateFloatEditor(editor, _brushAsset.mWeight, (float value) => { _brushAsset.mWeight = value; _ModifyAsset(); });

        mUI.CreateFieldElement(content, "Floor Color Mix", out editor);
        mUI.CreateFloatEditor(editor, _brushAsset.mFloorMix, (float value) => { _brushAsset.mFloorMix = value; _ModifyAsset(); });
    }
Exemple #3
0
 public virtual void Init(CAssetToolkit Toolkit)
 {
     mToolkit = Toolkit;
     mUI      = Toolkit.mUI;
 }
Exemple #4
0
    public override void Init(CAssetToolkit Toolkit)
    {
        base.Init(Toolkit);

        mPrimaryContent = mUI.CreateElement(Toolkit.mPrimaryContent, "modelEditor");
        mUI.AddLayout(mPrimaryContent, -1, -1, 1.0f, 1.0f);
        mUI.AddVerticalLayout(mPrimaryContent);
        mPrimaryContent.GetComponent <VerticalLayoutGroup>().spacing = 4.0f;

        GameObject toolbar = mUI.CreateElement(mPrimaryContent, "toolbarView");

        mUI.AddLayout(toolbar, -1, 48, 1.0f, 0.0f);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        _tbbSave = mUI.CreateToolbarButton(toolbar, "Save", mUI.SaveImage, _Save);
        //mUI.CreateToolbarButton(toolbar, "Revert", mUI.SaveImage);
        mUI.CreateToolbarSeparator(toolbar);

        _tbbCamGame = mUI.CreateToolbarButton(toolbar, "Game", mUI.CompanyImage, () =>
        {
            _camState.SetViewGame(_viewDirection);
            CGame.CameraManager.SetCamState(_camState);
            mUI.SetToolbarButtonHighlight(_tbbCamGame, CToolkitUI.EButtonHighlight.SELECTED);
            mUI.SetToolbarButtonHighlight(_tbbCamFree, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamSide, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamTop, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFront, CToolkitUI.EButtonHighlight.NOTHING);
        });

        _tbbCamFree = mUI.CreateToolbarButton(toolbar, "Free", mUI.CompanyImage, () =>
        {
            _camState = CGame.CameraManager.GetCamState();
            _camState.SetViewFree();
            CGame.CameraManager.SetCamState(_camState);
            mUI.SetToolbarButtonHighlight(_tbbCamGame, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFree, CToolkitUI.EButtonHighlight.SELECTED);
            mUI.SetToolbarButtonHighlight(_tbbCamSide, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamTop, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFront, CToolkitUI.EButtonHighlight.NOTHING);
        });

        _tbbCamSide = mUI.CreateToolbarButton(toolbar, "Side", mUI.CompanyImage, () =>
        {
            _camState.SetOrthographic(EOrhtoView.OV_LEFT);
            CGame.CameraManager.SetCamState(_camState);
            mUI.SetToolbarButtonHighlight(_tbbCamGame, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFree, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamSide, CToolkitUI.EButtonHighlight.SELECTED);
            mUI.SetToolbarButtonHighlight(_tbbCamTop, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFront, CToolkitUI.EButtonHighlight.NOTHING);
        });

        _tbbCamTop = mUI.CreateToolbarButton(toolbar, "Top", mUI.CompanyImage, () =>
        {
            _camState.SetOrthographic(EOrhtoView.OV_TOP);
            CGame.CameraManager.SetCamState(_camState);
            mUI.SetToolbarButtonHighlight(_tbbCamGame, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFree, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamSide, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamTop, CToolkitUI.EButtonHighlight.SELECTED);
            mUI.SetToolbarButtonHighlight(_tbbCamFront, CToolkitUI.EButtonHighlight.NOTHING);
        });

        _tbbCamFront = mUI.CreateToolbarButton(toolbar, "Front", mUI.CompanyImage, () =>
        {
            _camState.SetOrthographic(EOrhtoView.OV_FRONT);
            CGame.CameraManager.SetCamState(_camState);
            mUI.SetToolbarButtonHighlight(_tbbCamGame, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFree, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamSide, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamTop, CToolkitUI.EButtonHighlight.NOTHING);
            mUI.SetToolbarButtonHighlight(_tbbCamFront, CToolkitUI.EButtonHighlight.SELECTED);
        });

        mUI.CreateToolbarSeparator(toolbar);
        _tbbShowScale = mUI.CreateToolbarButton(toolbar, "Show Scale", mUI.BrushImage, _OnShowScale);
        mUI.SetToolbarButtonHighlight(_tbbShowScale, CToolkitUI.EButtonHighlight.SELECTED);
        mUI.CreateToolbarSeparator(toolbar);
        _tbbLocal = mUI.CreateToolbarButton(toolbar, "Local", mUI.SaveImage, _OnGlobalLocalClicked);
        mUI.CreateToolbarSeparator(toolbar);
        _tbbToolMove = mUI.CreateToolbarButton(toolbar, "Move", mUI.SaveImage, () => _SetTool(ETool.TRANSLATE));
        //mUI.CreateToolbarButton(toolbar, "Rotate", mUI.SaveImage, () => _SetTool(ETool.ROTATE));
        //mUI.CreateToolbarButton(toolbar, "Scale", mUI.SaveImage, () => _SetTool(ETool.SCALE));
        _tbbToolVertex    = mUI.CreateToolbarButton(toolbar, "Vertex", mUI.SaveImage, () => _SetTool(ETool.VERTEX));
        _tbbToolEdgePaint = mUI.CreateToolbarButton(toolbar, "Edge Paint", mUI.SaveImage, () => _SetTool(ETool.EDGE));

        mUI.SetToolbarButtonHighlight(_tbbToolMove, CToolkitUI.EButtonHighlight.SELECTED);

        GameObject hSplit = mUI.CreateElement(mPrimaryContent, "horzLayout");

        mUI.AddLayout(hSplit, -1, -1, 1.0f, 1.0f);
        mUI.AddHorizontalLayout(hSplit);
        hSplit.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        GameObject w1 = mUI.CreateElement(hSplit, "split1");

        mUI.AddLayout(w1, 256, -1, 0.0f, 1.0f);
        mUI.AddVerticalLayout(w1);
        //AddImage(w1, Color.red);

        GameObject w2 = mUI.CreateElement(hSplit, "split2");

        mUI.AddLayout(w2, -1, -1, 0.60f, 1.0f);
        mUI.AddVerticalLayout(w2);
        //AddImage(w2, Color.green);

        GameObject w3 = mUI.CreateElement(hSplit, "split3");

        mUI.AddLayout(w3, 300, -1, 0.0f, 1.0f);
        mUI.AddVerticalLayout(w3);
        //AddImage(w3, Color.blue);

        // Split 1
        GameObject w1pContent;
        GameObject w1p = mUI.CreateWindowPanel(w1, out w1pContent, "Tools");

        mUI.AddLayout(w1p, -1, -1, 1.0f, 1.0f);
        //mUI.CreateTextElement(w1pContent, "Information", "text", CToolkitUI.ETextStyle.TS_HEADING);
        //mUI.CreateTextElement(w1pContent, "Testing string");

        mUI.CreateTextElement(w1pContent, "View Direction", "text", CToolkitUI.ETextStyle.TS_HEADING);

        toolbar = mUI.CreateElement(w1pContent, "toolbarView");
        mUI.AddLayout(toolbar, -1, 48, 1.0f, -1);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        _tbbView[0] = mUI.CreateToolbarButton(toolbar, "Front", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_FRONT));
        _tbbView[1] = mUI.CreateToolbarButton(toolbar, "Right", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_RIGHT));
        _tbbView[2] = mUI.CreateToolbarButton(toolbar, "Back", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_BACK));
        _tbbView[3] = mUI.CreateToolbarButton(toolbar, "Left", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_LEFT));
        mUI.SetToolbarButtonHighlight(_tbbView[0], CToolkitUI.EButtonHighlight.SELECTED);

        mUI.CreateTextElement(w1pContent, "Tool", "text", CToolkitUI.ETextStyle.TS_HEADING);

        GameObject editor;

        mUI.CreateFieldElement(w1pContent, "Edge Brush", out editor);
        mUI.CreateComboBox(editor, _edgeBrush, _GetBrushComboData, (string Name) => { _edgeBrush = Name; });

        mUI.CreateFieldElement(w1pContent, "Floor Colour", out editor);
        mUI.CreateColorEditor(editor, _floorColour, (Color color) => { _SetFloorColour(color); });
        //mUI.CreateFieldElement(w1pContent, "Translate Snap", out editor); mUI.CreateFloatEditor(editor, _snapSpacingTranslate, (float value) => { _snapSpacingTranslate = value; });
        //mUI.CreateFieldElement(w1pContent, "Rotate Snap", out editor); mUI.CreateFloatEditor(editor, _snapSpacingRotate, (float value) => { _snapSpacingRotate = value; });
        //mUI.CreateFieldElement(w1pContent, "Scale Snap", out editor); mUI.CreateFloatEditor(editor, _snapSpacingScale, (float value) => { _snapSpacingScale = value; });

        mUI.CreateTextElement(w1pContent, "Model Components", "text", CToolkitUI.ETextStyle.TS_HEADING);

        toolbar = mUI.CreateElement(w1pContent, "toolbarView");
        mUI.AddLayout(toolbar, -1, 48, 1.0f, -1);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        mUI.CreateToolbarButton(toolbar, "Add", mUI.LevelImage, _OnClickAddComponent);
        mUI.CreateToolbarButton(toolbar, "Duplicate", mUI.LevelImage, _OnClickDuplicateComponent);
        mUI.CreateToolbarButton(toolbar, "Remove", mUI.LevelImage, _OnClickRemoveComponent);

        GameObject scrollContent;
        GameObject scrollV1 = mUI.CreateScrollView(w1pContent, out scrollContent, true);

        mUI.AddLayout(scrollV1, -1, -1, 1.0f, 1.0f);

        CTUITreeView treeView;
        GameObject   treeViewGob = mUI.CreateTreeView(scrollContent, out treeView);

        mUI.AddLayout(treeViewGob, -1, -1, 1.0f, 1.0f);

        _treeViewPrimItem           = treeView.mRootItem.AddItem("Primitives");
        _treeViewPrimItem.mExpanded = true;
        _RebuildComponentTree();

        // Split 2
        GameObject w2pContent;
        GameObject w2p = mUI.CreateWindowPanel(w2, out w2pContent, "Model View");

        mUI.AddLayout(w2p, -1, -1, 1.0f, 1.0f);

        _viewport = mUI.CreateElement(w2pContent, "modelView");
        _viewport.AddComponent <CameraView>();
        _viewport.AddComponent <RawImage>().texture        = mToolkit.mPrimaryRT;
        _viewport.GetComponent <CameraView>().mOnMouseDown = _OnViewportMouseDown;
        _viewport.GetComponent <CameraView>().mOnMouseUp   = _OnViewportMouseUp;
        mUI.AddLayout(_viewport, -1, -1, 1.0f, 1.0f);

        // Split 3
        GameObject w3pContent;
        GameObject w3p = mUI.CreateWindowPanel(w3, out w3pContent, "Properties");

        mUI.AddLayout(w3p, -1, -1, 1.0f, 1.0f);

        mUI.CreateTextElement(w3pContent, "Selected Component", "text", CToolkitUI.ETextStyle.TS_HEADING);

        scrollV1 = mUI.CreateScrollView(w3pContent, out scrollContent, true);
        mUI.AddLayout(scrollV1, -1, -1, 1.0f, 1.0f);
        scrollContent.GetComponent <VerticalLayoutGroup>().spacing = 4;

        _primProps = scrollContent;

        // World Scene
        _sceneGraph = new GameObject("modelEditorRoot");

        _scaleMan = GameObject.Instantiate(CGame.PrimaryResources.Prefabs[7] as GameObject);
        _scaleMan.transform.SetParent(_sceneGraph.transform);
        _scaleMan.transform.localPosition = new Vector3(-1.0f, 0.0f, -3.0f);
        _scaleMan.transform.rotation      = Quaternion.AngleAxis(225, Vector3.up);

        _sceneGraph.SetActive(false);
        _modelGob = _vectorModel.CreateGameObject(_viewDirection);
        _modelGob.transform.SetParent(_sceneGraph.transform);
        _modelGob.GetComponent <MeshRenderer>().material.SetColor("_FloorColor", _floorColour);

        _camState.mBackgroundColor = new Color(0.18f, 0.18f, 0.18f, 1.0f);
        _camState.SetViewGame(EViewDirection.VD_FRONT);
        mUI.SetToolbarButtonHighlight(_tbbCamGame, CToolkitUI.EButtonHighlight.SELECTED);

        _tool = ETool.TRANSLATE;
    }
    public override void Init(CAssetToolkit Toolkit)
    {
        base.Init(Toolkit);

        mPrimaryContent = mUI.CreateElement(Toolkit.mPrimaryContent, "horzLayout");
        mPrimaryContent.SetActive(false);
        mUI.AddLayout(mPrimaryContent, -1, -1, 1.0f, 1.0f);
        mUI.AddVerticalLayout(mPrimaryContent);
        mPrimaryContent.GetComponent <VerticalLayoutGroup>().spacing = 4;

        GameObject toolbar = mUI.CreateElement(mPrimaryContent, "toolbarView");

        mUI.AddLayout(toolbar, -1, 48, 1.0f, 0.0f);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        mUI.CreateToolbarButton(toolbar, "Sheet", mUI.SheetImage);
        mUI.CreateToolbarButton(toolbar, "Level", mUI.LevelImage, () => _OnClickNewModel(EAssetType.AT_LEVEL));
        mUI.CreateToolbarButton(toolbar, "Brush", mUI.BrushImage, () => _OnClickNewModel(EAssetType.AT_BRUSH));
        mUI.CreateToolbarButton(toolbar, "Model", mUI.ModelImage, () => _OnClickNewModel(EAssetType.AT_MODEL));
        mUI.CreateToolbarButton(toolbar, "Item", mUI.ItemImage, () => _OnClickNewModel(EAssetType.AT_ITEM));

        mUI.CreateToolbarSeparator(toolbar);
        mUI.CreateToolbarButton(toolbar, "Character", mUI.BrushImage, mToolkit.EditCharacter);

        GameObject hSplit = mUI.CreateElement(mPrimaryContent, "horzLayout");

        mUI.AddLayout(hSplit, -1, -1, 1.0f, 1.0f);
        mUI.AddHorizontalLayout(hSplit);
        hSplit.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        GameObject w1 = mUI.CreateElement(hSplit, "split1");

        mUI.AddLayout(w1, -1, -1, 1.0f, 1.0f);
        mUI.AddVerticalLayout(w1);

        GameObject w2 = mUI.CreateElement(hSplit, "split2");

        mUI.AddLayout(w2, 300, -1, 0.0f, 1.0f);
        mUI.AddVerticalLayout(w2);

        // Split 1
        GameObject w1pContent;
        GameObject w1p = mUI.CreateWindowPanel(w1, out w1pContent, "Tools");

        mUI.AddLayout(w1p, -1, -1, 1.0f, 1.0f);

        //mUI.CreateTextElement(w1pContent, "Create New Asset", "text", CToolkitUI.ETextStyle.TS_HEADING);

        /*toolbar = mUI.CreateElement(w1pContent, "toolbarView");
         * mUI.AddLayout(toolbar, -1, 48, 1.0f, -1);
         * mUI.AddImage(toolbar, mUI.WindowPanelBackground);
         * mUI.AddHorizontalLayout(toolbar);
         * toolbar.GetComponent<HorizontalLayoutGroup>().spacing = 4;
         */

        //mUI.CreateToolbarButton(toolbar, "Company", mUI.CompanyImage);
        //mUI.CreateToolbarButton(toolbar, "Sheet", mUI.SheetImage);

        mUI.CreateTextElement(w1pContent, "Asset Directory", "text", CToolkitUI.ETextStyle.TS_HEADING);

        GameObject scrollContent;
        GameObject scrollV1 = mUI.CreateScrollView(w1pContent, out scrollContent, true);

        mUI.AddLayout(scrollV1, -1, -1, 1.0f, 1.0f);

        CTUITreeView treeView;
        GameObject   treeViewGob = mUI.CreateTreeView(scrollContent, out treeView);

        mUI.AddLayout(treeViewGob, -1, -1, 1.0f, 1.0f);

        _tviBrushes = treeView.mRootItem.AddItem("Brushes");
        _tviModels  = treeView.mRootItem.AddItem("Models");
        _tviItems   = treeView.mRootItem.AddItem("Items");
        _tviLevels  = treeView.mRootItem.AddItem("Levels");
        _tviSheets  = treeView.mRootItem.AddItem("Sheets");

        //item.AddItem(entry.Value.mName);
        //item = treeView.mRootItem.AddItem("Models");
        //item.AddItem(entry.Value.mName, () => OnClickAsset(0, guid), () => mToolkit.EditAsset(guid));

        foreach (KeyValuePair <string, CAssetDeclaration> entry in CGame.AssetManager.mAssetDeclarations)
        {
            CAssetDeclaration decl = entry.Value;
            CTUITreeViewItem  item = null;

            if (decl.mType == EAssetType.AT_BRUSH)
            {
                item = _tviBrushes;
            }
            else if (decl.mType == EAssetType.AT_MODEL)
            {
                item = _tviModels;
            }
            else if (decl.mType == EAssetType.AT_LEVEL)
            {
                item = _tviLevels;
            }
            else if (decl.mType == EAssetType.AT_ITEM)
            {
                item = _tviItems;
            }

            if (item != null)
            {
                item.AddItem(decl.mName, () => OnClickAsset(decl.mName), () => mToolkit.EditAsset(decl.mName));
            }
        }

        treeView.Rebuild();

        // Split 2
        GameObject w2p = mUI.CreateWindowPanel(w2, out _propertiesContent, "Properties");

        mUI.AddLayout(w2p, -1, -1, 1.0f, 1.0f);

        mUI.CreateTextElement(_propertiesContent, "(No Asset Selected)", "text", CToolkitUI.ETextStyle.TS_HEADING);
    }
Exemple #6
0
    public override void Init(CAssetToolkit Toolkit)
    {
        base.Init(Toolkit);

        // NOTE: Must assign new icon ASAP before UI elemnts are created that reference it.
        // TODO: Is this needed??
        //CGame.IconBuilder.RebuildItemIcons();

        mPrimaryContent = mUI.CreateElement(Toolkit.mPrimaryContent, "modelEditor");
        mUI.AddLayout(mPrimaryContent, -1, -1, 1.0f, 1.0f);
        mUI.AddVerticalLayout(mPrimaryContent);
        mPrimaryContent.GetComponent <VerticalLayoutGroup>().spacing = 4.0f;

        GameObject toolbar = mUI.CreateElement(mPrimaryContent, "toolbarView");

        mUI.AddLayout(toolbar, -1, 48, 1.0f, 0.0f);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        _tbbSave = mUI.CreateToolbarButton(toolbar, "Save", mUI.SaveImage, _Save);

        mUI.CreateToolbarSeparator(toolbar);
        _tbbShowGrid = mUI.CreateToolbarButton(toolbar, "Show Helpers", mUI.BrushImage, () =>
        {
            _showGrid = !_showGrid;
            mUI.SetToolbarButtonHighlight(_tbbShowGrid, _showGrid ? CToolkitUI.EButtonHighlight.SELECTED : CToolkitUI.EButtonHighlight.NOTHING);
        });
        mUI.SetToolbarButtonHighlight(_tbbShowGrid, CToolkitUI.EButtonHighlight.SELECTED);

        mUI.CreateToolbarSeparator(toolbar);
        mUI.CreateToolbarButton(toolbar, "Properties", mUI.SheetImage, () =>
        {
            _SelectTile(-1, -1);
            _RebuildItemPropertiesView();
        });

        //mUI.CreateToolbarSeparator(toolbar);
        //mUI.CreateToolbarButton(toolbar, "Tiles", mUI.SaveImage);
        //mUI.CreateToolbarButton(toolbar, "Move", mUI.SaveImage);
        //mUI.SetToolbarButtonHighlight(_tbbShowGrid, CToolkitUI.EButtonHighlight.SELECTED);

        GameObject hSplit = mUI.CreateElement(mPrimaryContent, "horzLayout");

        mUI.AddLayout(hSplit, -1, -1, 1.0f, 1.0f);
        mUI.AddHorizontalLayout(hSplit);
        hSplit.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        GameObject w1 = mUI.CreateElement(hSplit, "split1");

        mUI.AddLayout(w1, 256, -1, 0.0f, 1.0f);
        mUI.AddVerticalLayout(w1);
        //AddImage(w1, Color.red);

        GameObject w2 = mUI.CreateElement(hSplit, "split2");

        mUI.AddLayout(w2, -1, -1, 0.60f, 1.0f);
        mUI.AddVerticalLayout(w2);
        //AddImage(w2, Color.green);

        GameObject w3 = mUI.CreateElement(hSplit, "split3");

        mUI.AddLayout(w3, 300, -1, 0.0f, 1.0f);
        mUI.AddVerticalLayout(w3);

        // Split 1
        GameObject w1p = mUI.CreateWindowPanel(w1, out _toolPanelContent, "Components");

        mUI.AddLayout(w1p, -1, -1, 1.0f, 1.0f);

        mUI.CreateTextElement(_toolPanelContent, "View Direction", "text", CToolkitUI.ETextStyle.TS_HEADING);

        toolbar = mUI.CreateElement(_toolPanelContent, "toolbarView");
        mUI.AddLayout(toolbar, -1, 48, 1.0f, -1);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        _tbbView[0] = mUI.CreateToolbarButton(toolbar, "Front", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_FRONT));
        _tbbView[1] = mUI.CreateToolbarButton(toolbar, "Right", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_RIGHT));
        _tbbView[2] = mUI.CreateToolbarButton(toolbar, "Back", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_BACK));
        _tbbView[3] = mUI.CreateToolbarButton(toolbar, "Left", mUI.LevelImage, () => _OnClickEdgeSetView(EViewDirection.VD_LEFT));
        mUI.SetToolbarButtonHighlight(_tbbView[0], CToolkitUI.EButtonHighlight.SELECTED);

        _componentContent = mUI.CreateElement(_toolPanelContent);
        mUI.AddVerticalLayout(_componentContent);

        // Split 2
        GameObject w2pContent;
        GameObject w2p = mUI.CreateWindowPanel(w2, out w2pContent, "Item View");

        mUI.AddLayout(w2p, -1, -1, 1.0f, 1.0f);

        _viewport = mUI.CreateElement(w2pContent, "itemView");
        _viewport.AddComponent <CameraView>();
        _viewport.AddComponent <RawImage>().texture        = mToolkit.mPrimaryRT;
        _viewport.GetComponent <CameraView>().mOnMouseDown = _OnViewportMouseDown;
        _viewport.GetComponent <CameraView>().mOnMouseUp   = _OnViewportMouseUp;
        mUI.AddLayout(_viewport, -1, -1, 1.0f, 1.0f);

        // Split 3
        GameObject w3pContent;
        GameObject w3p = mUI.CreateWindowPanel(w3, out w3pContent, "Properties");

        mUI.AddLayout(w3p, -1, -1, 1.0f, 1.0f);

        GameObject scrollV2 = mUI.CreateScrollView(w3pContent, out _propViewContent, true);

        mUI.AddLayout(scrollV2, -1, -1, 1.0f, 1.0f);
        _propViewContent.GetComponent <VerticalLayoutGroup>().spacing = 4;

        // World Scene
        _sceneGraph = new GameObject("itemEditorRoot");
        _sceneGraph.SetActive(false);

        _helpers = new GameObject("itemEditorHelpers");
        _helpers.transform.SetParent(_sceneGraph.transform);

        _itemRoot = new GameObject("itemRoot");
        _itemRoot.transform.SetParent(_sceneGraph.transform);

        _tileIcons = new GameObject("itemTileIcons");
        _tileIcons.transform.SetParent(_helpers.transform);

        _camState.mBackgroundColor = new Color(0.18f, 0.18f, 0.18f, 1.0f);
        _camState.SetViewGame(EViewDirection.VD_FRONT);

        _RebuildComponentView();
        _RebuildItemPropertiesView();

        GameObject sceneText = _CreateSceneText(_helpers, "Width");

        sceneText.transform.position = new Vector3(0.5f, 0.0f, 0.0f);
        sceneText.transform.rotation = Quaternion.Euler(90, 0, 0);

        sceneText = _CreateSceneText(_helpers, "Length");
        sceneText.transform.position = new Vector3(0.0f, 0.0f, 0.5f);
        sceneText.transform.rotation = Quaternion.Euler(90, 90, 0);
    }
Exemple #7
0
    public override void Init(CAssetToolkit Toolkit)
    {
        base.Init(Toolkit);

        mPrimaryContent = mUI.CreateElement(Toolkit.mPrimaryContent, "modelEditor");
        mUI.AddLayout(mPrimaryContent, -1, -1, 1.0f, 1.0f);
        mUI.AddVerticalLayout(mPrimaryContent);
        mPrimaryContent.GetComponent <VerticalLayoutGroup>().spacing = 4.0f;

        GameObject toolbar = mUI.CreateElement(mPrimaryContent, "toolbarView");

        mUI.AddLayout(toolbar, -1, 48, 1.0f, 0.0f);
        mUI.AddImage(toolbar, mUI.WindowPanelBackground);
        mUI.AddHorizontalLayout(toolbar);
        toolbar.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        _tbbShowGrid = mUI.CreateToolbarButton(toolbar, "Show Grid", mUI.BrushImage, () =>
        {
            _showGrid = !_showGrid;
            mUI.SetToolbarButtonHighlight(_tbbShowGrid, _showGrid ? CToolkitUI.EButtonHighlight.SELECTED : CToolkitUI.EButtonHighlight.NOTHING);
        });
        mUI.SetToolbarButtonHighlight(_tbbShowGrid, CToolkitUI.EButtonHighlight.SELECTED);

        mUI.CreateToolbarButton(toolbar, "Screenshot", mUI.LevelImage, () => { Application.CaptureScreenshot("shot.png"); });

        GameObject hSplit = mUI.CreateElement(mPrimaryContent, "horzLayout");

        mUI.AddLayout(hSplit, -1, -1, 1.0f, 1.0f);
        mUI.AddHorizontalLayout(hSplit);
        hSplit.GetComponent <HorizontalLayoutGroup>().spacing = 4;

        GameObject w1 = mUI.CreateElement(hSplit, "split1");

        mUI.AddLayout(w1, 256, -1, 0.0f, 1.0f);
        mUI.AddVerticalLayout(w1);
        //AddImage(w1, Color.red);

        GameObject w2 = mUI.CreateElement(hSplit, "split2");

        mUI.AddLayout(w2, -1, -1, 0.60f, 1.0f);
        mUI.AddVerticalLayout(w2);
        //AddImage(w2, Color.green);

        GameObject w3 = mUI.CreateElement(hSplit, "split3");

        mUI.AddLayout(w3, 300, -1, 0.0f, 1.0f);
        mUI.AddVerticalLayout(w3);

        // Split 1
        GameObject w1p = mUI.CreateWindowPanel(w1, out _toolPanelContent, "Tools");

        mUI.AddLayout(w1p, -1, -1, 1.0f, 1.0f);

        _animName = Animation.GetDefaultAnimation();

        GameObject editor;

        mUI.CreateFieldElement(_toolPanelContent, "Speed", out editor);
        mUI.CreateFloatEditor(editor, _animSpeed, (float Value) => { _animSpeed = Value; _animator.speed = Value; });

        mUI.CreateFieldElement(_toolPanelContent, "Facing Angle", out editor);
        _facingAngleEditor = mUI.CreateFloatEditor(editor, _facingAngle, (float Value) =>
        {
            _facingAngle             = Value;
            _unit.transform.rotation = Quaternion.AngleAxis(_facingAngle, Vector3.up);
        });

        mUI.CreateTextElement(_toolPanelContent, "(Click and drag in viewport to rotate)");

        //mUI.CreateFieldElement(_toolPanelContent, "Animation", out editor);
        //mUI.CreateComboBox(editor, _animName, _GetAnimsComboData, (string Name) => { _SetAnim(Name); });

        mUI.CreateTextElement(_toolPanelContent, "Animation", "test", CToolkitUI.ETextStyle.TS_HEADING);

        GameObject scrollContent;
        GameObject scrollV1 = mUI.CreateScrollView(_toolPanelContent, out scrollContent, true);

        mUI.AddLayout(scrollV1, -1, -1, 1.0f, 1.0f);

        CTUITreeView treeView;
        GameObject   treeViewGob = mUI.CreateTreeView(scrollContent, out treeView);

        mUI.AddLayout(treeViewGob, -1, -1, 1.0f, 1.0f);

        for (int i = 0; i < Animation.FBXEntries.Length; ++i)
        {
            int localI            = i;
            CTUITreeViewItem item = treeView.mRootItem.AddItem(Animation.FBXEntries[i].mName, () =>
            {
                _SetAnim(Animation.FBXEntries[localI].mName);
            });
        }

        treeView.Rebuild();

        // Split 2
        GameObject w2pContent;
        GameObject w2p = mUI.CreateWindowPanel(w2, out w2pContent, "Item View");

        mUI.AddLayout(w2p, -1, -1, 1.0f, 1.0f);

        _viewport = mUI.CreateElement(w2pContent, "itemView");
        _viewport.AddComponent <CameraView>();
        _viewport.AddComponent <RawImage>().texture        = mToolkit.mPrimaryRT;
        _viewport.GetComponent <CameraView>().mOnMouseDown = _OnViewportMouseDown;
        _viewport.GetComponent <CameraView>().mOnMouseUp   = _OnViewportMouseUp;
        mUI.AddLayout(_viewport, -1, -1, 1.0f, 1.0f);
        mUI.AddVerticalLayout(_viewport, new RectOffset(4, 4, 4, 4));

        _viewInfoText = mUI.CreateTextElement(_viewport, "Testing Text", "", CToolkitUI.ETextStyle.TS_HEADING).GetComponent <Text>();

        // Split 3
        GameObject w3p = mUI.CreateWindowPanel(w3, out _propViewContent, "Properties");

        mUI.AddLayout(w3p, -1, -1, 1.0f, 1.0f);

        // World Scene
        _sceneGraph = new GameObject("charEditRoot");
        _sceneGraph.SetActive(false);

        _camState.mBackgroundColor = new Color(0.18f, 0.18f, 0.18f, 1.0f);
        _camState.SetViewGame(EViewDirection.VD_FRONT);

        _unit = GameObject.Instantiate(CGame.PrimaryResources.Prefabs[7] as GameObject);
        _unit.transform.SetParent(_sceneGraph.transform);
        _unit.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f);
        _unit.transform.rotation      = Quaternion.AngleAxis(_facingAngle, Vector3.up);

        _animator = _unit.transform.GetChild(0).GetComponent <Animator>();
    }