Exemplo n.º 1
0
 public CModelEditor(string AssetName)
 {
     _viewDirection = EViewDirection.VD_FRONT;
     mAssetName     = AssetName;
     _asset         = CGame.AssetManager.GetAsset <CModelAsset>(AssetName);
     _vectorModel   = _asset.mVectorModel;
 }
Exemplo n.º 2
0
    private void _OnClickEdgeSetView(EViewDirection ViewDirection)
    {
        _viewDirection = ViewDirection;

        for (int i = 0; i < 4; ++i)
        {
            if (i == (int)ViewDirection)
            {
                mUI.SetToolbarButtonHighlight(_tbbView[i], CToolkitUI.EButtonHighlight.SELECTED);
            }
            else
            {
                mUI.SetToolbarButtonHighlight(_tbbView[i], CToolkitUI.EButtonHighlight.NOTHING);
            }
        }

        /*
         * GameObject.Destroy(_modelGob);
         * _modelGob = _vectorModel.CreateGameObject(ViewDirection);
         * _modelGob.transform.SetParent(_sceneGraph.transform);
         * _modelGob.GetComponent<MeshRenderer>().material.SetColor("_FloorColor", _floorColour);
         *
         * _camState = CGame.CameraManager.GetCamState();
         * if (_camState.mViewMode == ECameraViewMode.CVM_GAME)
         * {
         *      _camState.SetViewGame(ViewDirection);
         *      CGame.CameraManager.SetCamState(_camState);
         * }
         */
    }
 public void SetViewGame(EViewDirection ViewDirection)
 {
     mViewMode         = ECameraViewMode.CVM_GAME;
     mViewDirection    = ViewDirection;
     mInteractable     = true;
     mFOV              = 15;
     mNearClip         = 1;
     mFarClip          = 500;
     mTargetPosition   = Vector3.zero;
     mTargetRotation   = mViewRotations[(int)ViewDirection];
     mCamLocalPosition = new Vector3(0, 0, -65);
     mCamLocalRotation = Quaternion.identity;
     mLerpSpeed        = 1.0f;
 }
Exemplo n.º 4
0
    public GameObject CreateGameObject(EViewDirection ViewDirection, Material SharedMat = null)
    {
        GameObject   gob          = new GameObject("vectorModel");
        MeshRenderer meshRenderer = gob.AddComponent <MeshRenderer>();

        if (SharedMat != null)
        {
            meshRenderer.sharedMaterial = SharedMat;
        }
        else
        {
            meshRenderer.material = CGame.WorldResources.VectorMat;
        }

        MeshFilter meshFilter = gob.AddComponent <MeshFilter>();

        meshFilter.mesh = _mesh[(int)ViewDirection];

        return(gob);
    }
Exemplo n.º 5
0
    private void _OnClickEdgeSetView(EViewDirection ViewDirection)
    {
        _viewDirection = ViewDirection;
        _OnClickPrimitive(_selectedPrimID, false);

        for (int i = 0; i < 4; ++i)
        {
            if (i == (int)ViewDirection)
            {
                mUI.SetToolbarButtonHighlight(_tbbView[i], CToolkitUI.EButtonHighlight.SELECTED);
            }
            else
            {
                mUI.SetToolbarButtonHighlight(_tbbView[i], CToolkitUI.EButtonHighlight.NOTHING);
            }
        }

        /*
         * Quaternion rotation = Quaternion.AngleAxis(0.0f, Vector3.up);
         * if (ViewDirection == EViewDirection.VD_RIGHT) rotation = Quaternion.AngleAxis(270.0f, Vector3.up);
         * else if (ViewDirection == EViewDirection.VD_BACK) rotation = Quaternion.AngleAxis(180.0f, Vector3.up);
         * else if (ViewDirection == EViewDirection.VD_LEFT) rotation = Quaternion.AngleAxis(90.0f, Vector3.up);
         * _modelGob.transform.rotation = rotation;
         */

        GameObject.Destroy(_modelGob);
        _modelGob = _vectorModel.CreateGameObject(ViewDirection);
        _modelGob.transform.SetParent(_sceneGraph.transform);
        _modelGob.GetComponent <MeshRenderer>().material.SetColor("_FloorColor", _floorColour);

        _camState = CGame.CameraManager.GetCamState();
        if (_camState.mViewMode == ECameraViewMode.CVM_GAME)
        {
            _camState.SetViewGame(ViewDirection);
            CGame.CameraManager.SetCamState(_camState);
        }
    }
Exemplo n.º 6
0
 public Mesh GetSharedMesh(EViewDirection ViewDirection)
 {
     return(_mesh[(int)ViewDirection]);
 }
Exemplo n.º 7
0
    public GameObject CreateVisuals(EViewDirection ViewDirection)
    {
        GameObject gob = new GameObject();

        // TODO: Take the overall view direction, and work out the individual model view directions.

        Material sharedMat = (Material)GameObject.Instantiate(CGame.WorldResources.VectorMat);

        if (mItemType == EItemType.DESK)
        {
            _CreatePrimaryModel(gob, sharedMat);
            _CreateSecondaryModel(gob, sharedMat);

            /*
             * CModelAsset paperModel = CGame.AssetManager.GetAsset<CModelAsset>("default_contract_paper");
             *
             * GameObject paper = paperModel.mVectorModel.CreateGameObject(EViewDirection.VD_FRONT);
             * paper.transform.SetParent(gob.transform);
             * paper.transform.localPosition = mPaperInPosition;
             * paper.transform.localRotation = Quaternion.Euler(mPaperInRotation);
             *
             * paper = paperModel.mVectorModel.CreateGameObject(EViewDirection.VD_FRONT);
             * paper.transform.SetParent(gob.transform);
             * paper.transform.localPosition = mPaperOutPosition;
             * paper.transform.localRotation = Quaternion.Euler(mPaperOutRotation);
             */
        }
        else if (mItemType == EItemType.DECO)
        {
            _CreatePrimaryModel(gob, sharedMat);
        }
        else if (mItemType == EItemType.SAFE)
        {
            _CreatePrimaryModel(gob, sharedMat);
        }
        else if (mItemType == EItemType.FOOD)
        {
            _CreatePrimaryModel(gob, sharedMat);
        }
        else if (mItemType == EItemType.REST)
        {
            _CreatePrimaryModel(gob, sharedMat);
        }
        else if (mItemType == EItemType.START)
        {
            _CreatePrimaryModel(gob, sharedMat);

            if (mSMAsset != null)
            {
                GameObject doorGob = mSMAsset.mVectorModel.CreateGameObject(sharedMat);

                doorGob.transform.SetParent(gob.transform);
                doorGob.transform.localPosition = new Vector3(0, 0, 1.001f);
                doorGob.transform.localRotation = Quaternion.Euler(0, 0, 0);

                doorGob = mSMAsset.mVectorModel.CreateGameObject(sharedMat);
                doorGob.transform.SetParent(gob.transform);
                doorGob.transform.localPosition = new Vector3(2, 0, 1.001f);
                doorGob.transform.localRotation = Quaternion.Euler(0, 180, 0);
            }
            else
            {
                Debug.LogError("Start Item Asset needs a door model!");
            }
        }
        else if (mItemType == EItemType.DOOR)
        {
            _CreatePrimaryModel(gob, sharedMat);
        }
        else if (mItemType == EItemType.CAMERA)
        {
            _CreatePrimaryModel(gob, sharedMat);
        }

        gob.AddComponent <Item>().Init(sharedMat);

        return(gob);
    }
Exemplo n.º 8
0
    public override void Deserialize(BinaryReader R)
    {
        base.Deserialize(R);
        int version = R.ReadInt32();

        mVersion = version;

        if (version == 11)
        {
            mItemType     = (EItemType)R.ReadInt32();
            mFriendlyName = R.ReadString();
            mFlavourText  = R.ReadString();
            mWidth        = R.ReadInt32();
            mLength       = R.ReadInt32();

            mTiles = new STile[mWidth * 2, mLength * 2];
            for (int iX = 0; iX < mWidth * 2; ++iX)
            {
                for (int iY = 0; iY < mLength * 2; ++iY)
                {
                    mTiles[iX, iY].mSolid = R.ReadBoolean();
                }
            }

            mDurability   = R.ReadInt32();
            mCost         = R.ReadInt32();
            mValue        = R.ReadSingle();
            mStress       = R.ReadSingle();
            mAreaOfEffect = R.ReadSingle();
            mSheetsInMax  = R.ReadInt32();
            mSheetsOutMax = R.ReadInt32();

            string modelName = R.ReadString();
            if (modelName != "")
            {
                mPMAsset = CGame.AssetManager.GetAsset <CModelAsset>(modelName);
            }

            mPMPosition = CUtility.ReadVec3(R);
            mPMRotation = CUtility.ReadVec3(R);

            modelName = R.ReadString();
            if (modelName != "")
            {
                mSMAsset = CGame.AssetManager.GetAsset <CModelAsset>(modelName);
            }

            mSMPosition = CUtility.ReadVec3(R);
            mSMRotation = CUtility.ReadVec3(R);

            int usageSlotCount = R.ReadInt32();
            mUsageSlots.Clear();
            for (int i = 0; i < usageSlotCount; ++i)
            {
                CUsageSlot s = new CUsageSlot();
                s.mEntryPosition = CUtility.ReadVec3(R);
                s.mEntryRotation = CUtility.ReadVec3(R);
                s.mEntrySize     = CUtility.ReadVec3(R);
                s.mUsePosition   = CUtility.ReadVec3(R);
                s.mUseRotation   = CUtility.ReadVec3(R);
                mUsageSlots.Add(s);
            }

            // Desk
            mPaperInPosition  = CUtility.ReadVec3(R);
            mPaperInRotation  = CUtility.ReadVec3(R);
            mPaperOutPosition = CUtility.ReadVec3(R);
            mPaperOutRotation = CUtility.ReadVec3(R);

            // Icon
            mIconCameraPostion = CUtility.ReadVec3(R);
            mIconViewDirection = (EViewDirection)R.ReadInt32();
        }
        else
        {
            Debug.LogError("Can't load item asset '" + mName + "' with version " + version);
        }
    }