Exemplo n.º 1
0
    public static void LoadBrush()
    {
        s_tblPatterns = new Dictionary <int, BSPattern>();

        SqliteDataReader reader = LocalDatabase.Instance.ReadFullTable("BlockBrush");

        while (reader.Read())
        {
            BSPattern addBrush = new BSPattern(reader);
            s_tblPatterns[addBrush.ID] = addBrush;
        }

        foreach (KeyValuePair <int, BSPattern> kvp in s_tblPatterns)
        {
            s_DefaultB1 = kvp.Value;
            break;
        }
    }
Exemplo n.º 2
0
    protected static Vector3 CalcSnapto(BSMath.DrawTarget target, IBSDataSource ds, BSPattern pt)
    {
        Vector3 snapto = Vector3.zero;
        // Update gizmo Position
        IntVector3 realPos = new IntVector3(Mathf.FloorToInt(target.snapto.x * ds.ScaleInverted),
                                            Mathf.FloorToInt(target.snapto.y * ds.ScaleInverted),
                                            Mathf.FloorToInt(target.snapto.z * ds.ScaleInverted));

        float offset = Mathf.FloorToInt(pt.size * 0.5f) * ds.Scale;

        snapto = realPos.ToVector3() * ds.Scale - new Vector3(offset, offset, offset);
        int sign = pt.size % 2 == 0? 1 : 0;

        if (offset != 0)
        {
            Vector3 offset_v = Vector3.zero;

            if (target.rch.normal.x > 0)
            {
                offset_v.x -= (offset - ds.Scale * sign);
            }
            else if (target.rch.normal.x < 0)
            {
                offset_v.x += offset;
            }
            else
            {
                offset_v.x = 0;
            }

            if (target.rch.normal.y > 0)
            {
                offset_v.y -= (offset - ds.Scale * sign);
            }
            else if (target.rch.normal.y < 0)
            {
                offset_v.y += offset;
            }

            else
            {
                offset_v.y = 0;
            }

            if (target.rch.normal.z > 0)
            {
                offset_v.z -= (offset - ds.Scale * sign);
            }
            else if (target.rch.normal.z < 0)
            {
                offset_v.z += offset;
            }
            else
            {
                offset_v.z = 0;
            }

            snapto += offset_v;
        }

        return(snapto);
    }
Exemplo n.º 3
0
    protected override bool ExtraAdjust()
    {
        if (BSInput.s_Alt)
        {
            mode            = EBSBrushMode.Subtract;
            gizmoCube.color = removeModeGizmoColor;
        }
        else
        {
            mode            = EBSBrushMode.Add;
            gizmoCube.color = addModeGizmoColor;
        }

        if (!AllowRemoveVoxel && pattern.type == EBSVoxelType.Voxel && mode == EBSBrushMode.Subtract)
        {
            if (modelGizmo != null && modelGizmo.gameObject.activeSelf)
            {
                modelGizmo.gameObject.SetActive(false);
            }
            if (modelGizmo != null && !modelGizmo.gameObject.activeSelf)
            {
                gizmoCube.gameObject.SetActive(false);
            }
            ResetDrawing();


            return(false);
        }
        else
        {
            if (gizmoCube != null)
            {
                if (!gizmoCube.gameObject.activeSelf)
                {
                    gizmoCube.gameObject.SetActive(true);
                }
            }

            if (BSInput.s_MouseOnUI)
            {
                if (modelGizmo != null && modelGizmo.gameObject.activeSelf)
                {
                    modelGizmo.gameObject.SetActive(false);
                }
                return(true);
            }
            else
            {
                if (modelGizmo != null && !modelGizmo.gameObject.activeSelf)
                {
                    modelGizmo.gameObject.SetActive(true);
                }
            }
        }

        // Set gizmo
        if (pattern != m_PrevPattern)
        {
            if (modelGizmo != null)
            {
                Destroy(modelGizmo.gameObject);
                modelGizmo = null;
            }

            if (pattern.MeshPath != null && pattern.MeshPath != "")
            {
                modelGizmo = GameObject.Instantiate(Resources.Load(pattern.MeshPath)) as GameObject;
                modelGizmo.transform.parent = transform;
                modelGizmo.name             = "Model Gizmo";
                Renderer mr = modelGizmo.GetComponent <Renderer>();
                mr.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
                mr.receiveShadows    = false;
            }


            m_PrevPattern = pattern;
            m_Rot         = 0;
        }

        if (pattern.MeshMat != null && modelGizmo != null)
        {
            Renderer gizmo_render = modelGizmo.GetComponent <Renderer>();
            if (gizmo_render != null)
            {
                gizmo_render.material = pattern.MeshMat;
            }
        }

        if (modelGizmo != null)
        {
            modelGizmo.transform.localScale = new Vector3(pattern.size, pattern.size, pattern.size) * dataSource.Scale;
        }



        // Ratate the gizmo ?  Only block can rotate
        if (pattern.type == EBSVoxelType.Block)
        {
            if (Input.GetKeyDown(KeyCode.T))
            {
                m_Rot = ++m_Rot > 3 ? 0 : m_Rot;
            }
        }

        if (gizmoTrigger.RayCast || forceShowRemoveColor)
        {
            if (gizmoTrigger.RayCast)
            {
                ExtraTips = PELocalization.GetString(8000686);
            }
            if (forceShowRemoveColor)
            {
                ExtraTips = PELocalization.GetString(821000001);
            }
            gizmoCube.color = removeModeGizmoColor;
        }
        else
        {
            ExtraTips = "";
        }

        return(true);
    }
Exemplo n.º 4
0
    public static void LoadAllData()
    {
        if (s_localDatabase != null)
        {
            return;
        }

#if UNITY_EDITOR
        System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
        sw.Start();
#endif
        s_localDatabase = LoadDb();
        SkillSystem.SkData.LoadData();
        Pathea.Effect.EffectData.LoadData();
        Pathea.Projectile.ProjectileData.LoadData();
        Pathea.RequestRelation.LoadData();
        Pathea.CampData.LoadData();
        Pathea.ThreatData.LoadData();
        Pathea.DamageData.LoadData();
        HumanSoundData.LoadData();
        ItemDropData.LoadData();

        PELocalization.LoadData();

        NaturalResAsset.NaturalRes.LoadData();
        //SkillAsset.EffCastData.LoadData();
        //SkillAsset.EffSkill.LoadData();
        //SkillAsset.MergeSkill.LoadData();
        //AnimData.LoadData();
        //AnimSoundData.LoadData();

        AiAsset.AiData.LoadData();

        SoundAsset.SESoundBuff.LoadData();
        SoundAsset.SESoundStory.LoadData();
        //CharacterData.LoadCharacterData();
        StoryDoodadMap.LoadData();
        StoreRepository.LoadData();
        NpcMissionDataRepository.LoadData();
        //PlayerAttribute.LoadData();
        MissionRepository.LoadData();
        TalkRespository.LoadData();
        //NpcRandomRepository.LoadData();
        ShopRespository.LoadData();
        WareHouseManager.LoadData();
        //HeroTalkRepository.LoadData();
        MutiPlayRandRespository.LoadData();
        PromptRepository.LoadData();

        //MapIconData.LoadDate();
        //MapMaskData.LoadDate();
        CampPatrolData.LoadDate();
        Camp.LoadData();
        RepProcessor.LoadData();

        CloudManager.LoadData();
        //BattleUnitData.LoadData();
        TutorialData.LoadData();
        //RepairMachineManager.LoadData();
        MapMaskData.LoadDate();
        MessageData.LoadData();         //lz-2016.07.13 Add it
        MonsterHandbookData.LoadData(); //lz-2016.07.20 Add it
        StoryRepository.LoadData();
        RMRepository.LoadRandMission();
        MisInitRepository.LoadData();
        CameraRepository.LoadCameraPlot();
        AdRMRepository.LoadData();
        VCConfig.InitConfig();
        Cutscene.LoadData();

//		BuildBrushData.LoadBrush();
        BSPattern.LoadBrush();
        BSVoxelMatMap.Load();
        BSBlockMatMap.Load();
        BlockBuilding.LoadBuilding();
        LifeFormRule.LoadData();
        PlantInfo.LoadData();
        MetalScanData.LoadData();
        BattleConstData.LoadData();
        CustomCharactor.CustomMetaData.LoadData();
        SkillTreeInfo.LoadData();
        VArtifactUtil.LoadData();
        Pathea.ActionRelationData.LoadActionRelation();

        //colony
        CSInfoMgr.LoadData();
        ProcessingObjInfo.LoadData();
        CSTradeInfoData.LoadData();
        CampTradeIdData.LoadData();
        AbnormalTypeTreatData.LoadData();
        CSMedicineSupport.LoadData();
        //RandomItemMgr
        RandomItemDataMgr.LoadData();
        FecesData.LoadData();
        //randomdungeon
        RandomDungeonDataBase.LoadData();
        AbnormalData.LoadData();
        PEAbnormalNoticeData.LoadData();

        RelationInfo.LoadData();
        EquipSetData.LoadData();
        SuitSetData.LoadData();

        CheatData.LoadData();

        Pathea.NpcProtoDb.Load();
        Pathea.MonsterProtoDb.Load();
        Pathea.MonsterRandomDb.Load();
        Pathea.MonsterGroupProtoDb.Load();
        Pathea.RandomNpcDb.Load();
        Pathea.PlayerProtoDb.Load();
        Pathea.TowerProtoDb.Load();
        Pathea.DoodadProtoDb.Load();
        Pathea.AttPlusNPCData.Load();
        Pathea.AttPlusBuffDb.Load();
        Pathea.NpcTypeDb.Load();
        Pathea.NpcRandomTalkDb.Load();
        Pathea.NpcThinkDb.LoadData();
        Pathea.NpcEatDb.LoadData();
        Pathea.NpcRobotDb.Load();
        Pathea.NPCScheduleData.Load();
        Pathea.NpcVoiceDb.LoadData();
        InGameAidData.LoadData(); //lz-2016.08.21 add it
        MountsSkillDb.LoadData();

#if UNITY_EDITOR
        sw.Stop();
        Debug.Log("Database Loaded : " + sw.ElapsedMilliseconds);
        sw.Reset();
#else
        Debug.Log("Database Loaded");
#endif
    }
Exemplo n.º 5
0
    void AddMode()
    {
        // Set gizmo
        if (pattern != prvePattern)
        {
            if (Gizmo != null)
            {
                Destroy(Gizmo.gameObject);
                Gizmo = null;
            }

            if (pattern.MeshPath != null && pattern.MeshPath != "")
            {
                Gizmo = GameObject.Instantiate(Resources.Load(pattern.MeshPath)) as GameObject;
                Gizmo.transform.parent = transform;
            }


            prvePattern = pattern;
            m_Rot       = 0;
        }


        if (pattern.MeshMat != null && Gizmo != null)
        {
            Renderer gizmo_render = Gizmo.GetComponent <Renderer>();
            if (gizmo_render != null)
            {
                gizmo_render.material = pattern.MeshMat;
            }
        }

        // Ratate the gizmo ?  Only block can rotate
        if (pattern.type == EBSVoxelType.Block)
        {
            if (Input.GetKeyDown(KeyCode.T))
            {
                m_Rot = ++m_Rot > 3 ? 0 : m_Rot;
            }
        }

        // Gizmo rotate
        Vector3 rot_offset = Vector3.zero;

        if (Gizmo != null)
        {
            Quaternion rot = Quaternion.Euler(0, 90 * m_Rot, 0);
            Gizmo.transform.rotation = Quaternion.Euler(0, 90 * m_Rot, 0);
            float half_size = pattern.size * 0.5f;
            rot_offset = (rot * new Vector3(-half_size, -half_size, -half_size) + new Vector3(half_size, half_size, half_size)) * dataSource.Scale;

            // Gizmo scale
            Gizmo.transform.localScale = new Vector3(pattern.size, pattern.size, pattern.size) * dataSource.Scale;
        }


        // default gizmo cube
        GizmoCube.m_VoxelSize = dataSource.Scale;
        GizmoCube.CubeSize    = new IntVector3(pattern.size, pattern.size, pattern.size);
        Vector3 trigget_size = new Vector3(GizmoCube.CubeSize.x * dataSource.Scale,
                                           GizmoCube.CubeSize.y * dataSource.Scale,
                                           GizmoCube.CubeSize.z * dataSource.Scale);

        GizmoTrigger.boxCollider.size   = trigget_size;
        GizmoTrigger.boxCollider.center = trigget_size * 0.5f;

        // Ray cast voxel
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (BSMath.RayCastDrawTarget(ray, dataSource, out m_Target, minvol, true, BuildingMan.Datas))
        {
            // Show the Gizmo
            if (Gizmo != null)
            {
                Gizmo.SetActive(true);
            }
            GizmoCube.gameObject.SetActive(true);

            m_Cursor = CalcCursor(m_Target, dataSource, pattern.size);

            // Gizmo position
            FocusAjust();

            m_Cursor += m_FocusOffset * dataSource.Scale;
            if (Gizmo != null)
            {
                Gizmo.transform.position = m_Cursor + dataSource.Offset + rot_offset;
            }
            GizmoCube.transform.position = m_Cursor + dataSource.Offset;

            // Bursh do
            if (Input.GetMouseButtonDown(0) && !GizmoTrigger.RayCast)
            {
                Do();
            }
        }
    }
Exemplo n.º 6
0
    void SubtractMode()
    {
        m_Rot       = 0;
        prvePattern = null;

        if (Gizmo != null)
        {
            Destroy(Gizmo.gameObject);
            Gizmo = null;
        }

        GizmoCube.gameObject.SetActive(true);

        GizmoCube.m_VoxelSize = dataSource.Scale;
        GizmoCube.CubeSize    = new IntVector3(pattern.size, pattern.size, pattern.size);

        // Ray cast voxel
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (BSMath.RayCastDrawTarget(ray, dataSource, out m_Target, minvol, false))
        {
            // Show the Gizmo
            if (Gizmo != null)
            {
                Gizmo.SetActive(true);
            }
            if (!GizmoCube.gameObject.activeSelf)
            {
                GizmoCube.gameObject.SetActive(true);
            }

            // Cursor position
            m_Cursor = CalcSnapto(m_Target, dataSource, pattern);

            // Gizmo position
            FocusAjust();

            m_Cursor += m_FocusOffset * dataSource.Scale;
            if (Gizmo != null)
            {
                Gizmo.transform.position = m_Cursor + dataSource.Offset;
            }
            GizmoCube.transform.position = m_Cursor + dataSource.Offset;

            // Bursh do
            if (Input.GetMouseButtonDown(0))
            {
                Do();
            }
        }
        else
        {
            if (Gizmo != null)
            {
                Gizmo.SetActive(false);
            }
            if (GizmoCube.gameObject.activeSelf)
            {
                GizmoCube.gameObject.SetActive(false);
            }
        }
    }
Exemplo n.º 7
0
    void Update()
    {
                #if TEST_CODE
        UpdateTest();
                #endif

        if (BSInput.s_Undo)
        {
            BSHistory.Undo();
        }
        else if (BSInput.s_Redo)
        {
            BSHistory.Redo();
        }

        // if null get the defualt pattern
        if (pattern == null)
        {
            pattern = BSPattern.DefaultB1;
        }

        IBSDataSource data = null;
        if (pattern.type == EBSVoxelType.Block)
        {
            data = Blocks;

            if (Block45Man.self._b45Materials.Length > MaterialType)
            {
                pattern.MeshMat = Block45Man.self._b45Materials[MaterialType];
            }
            else
            {
                pattern.MeshMat = Block45Man.self._b45Materials[0];
            }
        }
        else if (pattern.type == EBSVoxelType.Voxel)
        {
            data = Voxels;
        }
        else
        {
            data = null;
        }

//		pattern.SetMaterial(MaterialType);
//		int expand = Mathf.Clamp(2 + (pattern.size - 2), 2, 3);
//		blockIndicator.m_Expand = expand;
//		voxelIndicator.m_Expand = expand;

        if (m_ActiveBrush != null)
        {
            voxelIndicator.minVol = m_ActiveBrush.minvol;

            m_ActiveBrush.dataSource   = data;
            m_ActiveBrush.pattern      = pattern;
            m_ActiveBrush.materialType = MaterialType;

            if (m_ActiveBrush.pattern.type == EBSVoxelType.Block)
            {
                blockIndicator.enabled = true;
                voxelIndicator.enabled = false;
            }
            else if (m_ActiveBrush.pattern.type == EBSVoxelType.Voxel)
            {
                blockIndicator.enabled = false;
                voxelIndicator.enabled = true;
            }
        }
        else
        {
            blockIndicator.enabled = false;
            voxelIndicator.enabled = false;
        }
    }