Exemplo n.º 1
0
    public void OnUpdate()
    {
        int value = (int)slider.value;

        Debug.Log(value);
        hardnessText.text = "Hardness " + value;
        GameObject[] BlockSelectors = GameObject.FindGameObjectsWithTag("BlockSelector");
        foreach (GameObject BlockSelector in BlockSelectors)
        {
            //Debug.Log(BlockSelector.name);
            if (BlockSelector.GetComponent <BlockSelect>().blockId != 0)
            {
                if (value == 0)
                {
                    BlockSelector.transform.Find("Hardness").GetComponent <Image>().enabled = false;
                    BlockSelector.transform.Find("Hardness").GetComponent <Image>().sprite  = null;
                }
                else
                {
                    BlockSelector.transform.Find("Hardness").GetComponent <Image>().enabled = true;
                    BlockSelector.transform.Find("Hardness").GetComponent <Image>().sprite  = hardnessSpr[value - 1];
                }
            }
        }
    }
Exemplo n.º 2
0
        private void MapInteractionOverlay_TextChanged(object sender, TextChangedEventArgs e)
        {
            MapTileInteraction selectedInteraction = (MapTileInteraction)MapInteractionList.SelectedItem;

            if (selectedInteraction != null)
            {
                try
                {
                    TileBlockOverlay overlay = JsonConvert.DeserializeObject <TileBlockOverlay>(MapInteractionOverlay.Text);

                    if (overlay != null && (overlay.PaletteIndex < 0 || overlay.PaletteIndex >= 8))
                    {
                        throw new Exception();
                    }

                    MapInteractionOverlay.Foreground = new SolidColorBrush(Colors.White);
                    selectedInteraction.Overlay      = overlay;

                    BlockSelector.Update(tileIndex: BlockSelector.SelectedBlockValue);
                    UpdateTileBlock();
                    SetUnsaved();
                }
                catch
                {
                    MapInteractionOverlay.Foreground = new SolidColorBrush(Colors.Red);
                }
            }
        }
Exemplo n.º 3
0
        public void Update(BlockSelector blockSelector)
        {
            if (player.LeftClick && !game.ExitedMenu)
            {
                player.SetLastClickTime();
                RemoveBlock();
            }

            else if (player.RightClick)
            {
                player.SetLastClickTime();
                AddBlock();
            }

            if (y != -1 && region[position][x, y, z] != null)
            {
                bool[] visibleFaces = new bool[6];
                region[position].GetVisibleFaces(visibleFaces, y, x, z);

                blockSelector.Update(visibleFaces, new Vector3(x, y, z) - position, player.Camera.Direction);
            }
            else
            {
                blockSelector.Clear();
            }
        }
Exemplo n.º 4
0
        public static void CreateTransmittalAndPdf()
        {
            List <Sheet>      dict        = new List <Sheet>();
            List <PrintModel> printModels = new List <PrintModel>();

            Active.Document.SendStringToExecute("REGENALL ", true, false, true);
            using (Transaction tr = Active.Database.TransactionManager.StartTransaction())
            {
                //фильтр для выбора только блока
                BlockSelector blockSelector = new BlockSelector();
                blockSelector.GetFilterForSelectBlockId();
                var res = blockSelector.SelectionResult;

                if (res.Status != PromptStatus.OK)
                {
                    Active.Editor.WriteMessage("Надо выбрать блок");
                    return;
                }

                SelectionSet selSet      = res.Value;
                ObjectId[]   idArrayTemp = selSet.GetObjectIds();

                ObjectIdCollection idArray = new ObjectIdCollection();
                foreach (var objectId in idArrayTemp)
                {
                    BlockReference   blRef = (BlockReference)tr.GetObject(objectId, OpenMode.ForRead);
                    BlockTableRecord block =
                        tr.GetObject(blRef.DynamicBlockTableRecord, OpenMode.ForRead) as BlockTableRecord;
                    if (!(block is null))
                    {
                        string blockName = block.Name;
                        if (blockName == "Формат" | blockName == "ФорматM25")
                        {
                            idArray.Add(objectId);
                        }
                    }
                }

                GetSheetsFromBlocks(Active.Editor, dict, tr, idArray);
                string selAttrName = "НОМЕР_ЛИСТА";
                GetPrintParametersToPdf(Active.Editor, printModels, tr, idArray, selAttrName);

                Utils utils = new Utils();
                //utils.CreateOnlyVed(dict);
                utils.CreateJsonFile(dict);

                foreach (var printModel in printModels)
                {
                    //Active.Editor.WriteMessage("{0} печатаем ", printModel.DocNumber);
                    PlotCurrentLayout(printModel.DocNumber, printModel);
                }

                //utils.CreateOnlytrans(dict);

                tr.Commit();
            }
        }
Exemplo n.º 5
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            CommitInteractions();

            _tileService.CommitTileSet(_currentLevel?.TileSetIndex ?? _currentWorld.TileSetIndex, _localTileSet, _localTileTerrain, _localMapTileInteraction);
            BlockSelector.Update();
            UpdateTileBlock();
            SetSaved();
            _projectService.SaveProject();
        }
Exemplo n.º 6
0
    private BlockSelector CopyThisComponent(GameObject p_target)
    {
        BlockSelector v_newComponent = null;

        if (p_target != null)
        {
            v_newComponent = KiltUtils.CopyComponent <BlockSelector>(p_target, this);
        }
        return(v_newComponent);
    }
Exemplo n.º 7
0
        public void CreatePdfName()
        {
            Active.Document.SendStringToExecute("REGENALL ", true, false, true);
            Dictionary <string, string> attrList = new Dictionary <string, string>();
            Window1 window = new Window1(new BlockViewModel(attrList));

            Application.ShowModalWindow(window);
            if (window.isClicked)
            {
                //ObjectIdCollection objectIds = Utils.SelectDynamicBlockReferences();
                List <Sheet> dict = new List <Sheet>();

                using (Transaction tr = Active.Database.TransactionManager.StartTransaction())
                {
                    BlockSelector blockSelector = new BlockSelector();
                    blockSelector.GetFilterForSelectBlockId(window.BlockName);
                    bool isExec = true;
                    var  res    = blockSelector.SelectionResult;

                    if (res.Status != PromptStatus.OK)
                    {
                        isExec = false;
                        Active.Editor.WriteMessage("Надо выбрать блок");
                    }

                    if (isExec)
                    {
                        SelectionSet selSet      = res.Value;
                        ObjectId[]   idArrayTemp = selSet.GetObjectIds();
                        //ObjectIdCollection idArray = new ObjectIdCollection(idArrayTemp);
                        //TODO printing X Y
                        //string selAttrName = attributeName.AttributeName;


                        FileNameCreator fileNameCreator = new FileNameCreator(window, idArrayTemp);

                        //GetPrintParametersToPdf(Active.Editor, printModels, tr, objectIds, selAttrName);

                        fileNameCreator.GetPrintParametersToPdf(tr);

                        Utils utils = new Utils();
                        utils.CreateJsonFile(dict);

                        foreach (var printModel in fileNameCreator.GetPrintModels())
                        {
                            PlotCurrentLayout(printModel.DocNumber, printModel);
                        }
                    }

                    tr.Commit();
                }
            }
        }
Exemplo n.º 8
0
        private void TileBlockImage_MouseDown(object sender, MouseButtonEventArgs e)
        {
            Point clickPoint = Snap(e.GetPosition((Image)sender));

            if (clickPoint.X <= 15 && clickPoint.Y <= 15)
            {
                BlockSelector.SelectedTileBlock.UpperLeft = _graphicTileIndexSelected;
                if (_isQuadSelected)
                {
                    BlockSelector.SelectedTileBlock.UpperRight = _graphicTileIndexSelected + 1;
                    BlockSelector.SelectedTileBlock.LowerLeft  = _graphicTileIndexSelected + 0x10;
                    BlockSelector.SelectedTileBlock.LowerRight = _graphicTileIndexSelected + 0x11;
                }
            }
            else if (clickPoint.X <= 15 && clickPoint.Y >= 16)
            {
                BlockSelector.SelectedTileBlock.LowerLeft = _graphicTileIndexSelected;

                if (_isQuadSelected)
                {
                    BlockSelector.SelectedTileBlock.LowerRight = _graphicTileIndexSelected + 1;
                    BlockSelector.SelectedTileBlock.UpperLeft  = _graphicTileIndexSelected + 0x10;
                    BlockSelector.SelectedTileBlock.UpperRight = _graphicTileIndexSelected + 0x11;
                }
            }
            else if (clickPoint.X >= 16 && clickPoint.Y <= 15)
            {
                BlockSelector.SelectedTileBlock.UpperRight = _graphicTileIndexSelected;

                if (_isQuadSelected)
                {
                    BlockSelector.SelectedTileBlock.UpperLeft  = _graphicTileIndexSelected + 0x1;
                    BlockSelector.SelectedTileBlock.LowerRight = _graphicTileIndexSelected + 0x10;
                    BlockSelector.SelectedTileBlock.LowerLeft  = _graphicTileIndexSelected + 0x11;
                }
            }
            else if (clickPoint.X >= 16 && clickPoint.Y >= 16)
            {
                BlockSelector.SelectedTileBlock.LowerRight = _graphicTileIndexSelected;

                if (_isQuadSelected)
                {
                    BlockSelector.SelectedTileBlock.LowerLeft  = _graphicTileIndexSelected + 0x1;
                    BlockSelector.SelectedTileBlock.UpperRight = _graphicTileIndexSelected + 0x10;
                    BlockSelector.SelectedTileBlock.UpperLeft  = _graphicTileIndexSelected + 0x11;
                }
            }

            BlockSelector.Update(tileIndex: BlockSelector.SelectedBlockValue);
            UpdateTileBlock();
            SetUnsaved();
        }
Exemplo n.º 9
0
    public GameObject InstantiateObjectByPrefab(GameObject p_prefab, bool p_keepLifePercert = false, bool p_destroyOldObject = true, bool p_keepEffectProperties = true)
    {
        if (p_prefab != null)
        {
            CachedPrefab = p_prefab;
            GameObject v_newObject = KiltUtils.Instantiate(p_prefab);
            v_newObject.name               = p_prefab.name + "(Selected)";
            v_newObject.transform.parent   = this.transform.parent;
            v_newObject.transform.position = this.transform.position;
            v_newObject.transform.rotation = this.transform.rotation;

            float v_signX = Mathf.Sign(this.transform.localScale.x);
            float v_signY = Mathf.Sign(this.transform.localScale.y);

            Vector3 v_localScale = new Vector3(p_prefab.transform.localScale.x * v_signX, p_prefab.transform.localScale.y * v_signY, p_prefab.transform.localScale.z);
            v_newObject.transform.localScale = v_localScale;
            if (p_keepLifePercert)
            {
                CopyDamagePercentToNewObject(v_newObject);
            }
            //MergeGameObjectWithThisObject(p_prefab);
            BlockSelector v_newComponent = CopyThisComponent(v_newObject);
            //Move New Component to first in new prefab
            MoveComponentToFirst(v_newComponent);
            //Plug Ropes To New Component
            AttachAllRopesToNewObject(v_newObject);
            //Select New Object in Editor Selection (if old object is previous selected and will be destroyed)
            if (p_destroyOldObject)
            {
                CheckIfNeedSelect(v_newObject);
            }
            //Apply Modifications in Cloned Component
            ApplyModificationsInEditMode(v_newComponent);
            ApplyShowHideComponent();

            if (p_destroyOldObject)
            {
                if (Application.isPlaying)
                {
                    GameObject.Destroy(this.gameObject);
                }
                else
                {
                    KiltUtils.Destroy(this.gameObject);
                }
            }

            return(v_newObject);
        }
        return(this.gameObject);
    }
Exemplo n.º 10
0
        private void MapInteractionList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            MapTileInteraction selectedIteraction = (MapTileInteraction)MapInteractionList.SelectedItem;

            if (selectedIteraction != null)
            {
                BlockSelector.SelectedTileBlock.Property = ((MapTileInteraction)MapInteractionList.SelectedItem).Value;
                MapInteractionOverlay.Text = JsonConvert.SerializeObject(selectedIteraction.Overlay, Formatting.Indented);

                BlockSelector.Update(tileIndex: BlockSelector.SelectedBlockValue);
                UpdateTileBlock();
                SetUnsaved();
            }
        }
Exemplo n.º 11
0
        private void TerrainList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            TileTerrain selectedTerrain = (TileTerrain)TerrainList.SelectedItem;

            InteractionList.ItemsSource   = selectedTerrain.Interactions;
            InteractionList.SelectedIndex = (int)(BlockSelector.SelectedTileBlock.Property & TileInteraction.Mask);

            BlockSelector.SelectedTileBlock.Property = selectedTerrain.Value | ((TileInteraction)InteractionList.SelectedItem).Value;
            TerrainOverlay.Text = JsonConvert.SerializeObject(selectedTerrain.Overlay, Formatting.Indented);

            BlockSelector.Update(tileIndex: BlockSelector.SelectedBlockValue);
            UpdateTileBlock();
            SetUnsaved();
        }
Exemplo n.º 12
0
        public TileBlockEditor(ProjectService projectService, WorldService worldService, LevelService levelService, GraphicsService graphicsService, PalettesService palettesService, TileService tileService, TextService textService)
        {
            _ignoreChanges = true;
            InitializeComponent();

            _projectService  = projectService;
            _palettesService = palettesService;
            _graphicsService = graphicsService;
            _worldService    = worldService;
            _levelService    = levelService;
            _tileService     = tileService;
            _textService     = textService;

            List <KeyValuePair <string, string> > tileSetText = _textService.GetTable("tile_sets");

            tileSetText.Insert(0, new KeyValuePair <string, string>("0", "Map"));

            TerrainList.ItemsSource        = _localTileTerrain = _tileService.GetTerrainCopy();
            LevelList.ItemsSource          = _levelService.AllWorldsLevels();
            MapInteractionList.ItemsSource = _localMapTileInteraction = _tileService.GetMapTileInteractionCopy();

            _graphicsAccessor = new GraphicsAccessor(_graphicsService.GetTileSection(0), _graphicsService.GetTileSection(0), _graphicsService.GetGlobalTiles(), _graphicsService.GetExtraTiles());

            _graphicsSetRenderer = new GraphicsSetRender(_graphicsAccessor);
            _tileSetRenderer     = new TileSetRenderer(_graphicsAccessor, _localTileTerrain, _localMapTileInteraction);

            Dpi dpi = this.GetDpi();

            _graphicsSetBitmap = new WriteableBitmap(128, 128, dpi.X, dpi.Y, PixelFormats.Bgra32, null);
            _tileBlockBitmap   = new WriteableBitmap(16, 16, dpi.X, dpi.Y, PixelFormats.Bgra32, null);

            GraphicsSetImage.Source = _graphicsSetBitmap;

            TileBlockImage.Source = _tileBlockBitmap;

            BlockSelector.Initialize(_graphicsAccessor, _tileService, _tileService.GetTileSet(0), _graphicsService.GetPalette(0), _tileSetRenderer);
            BlockSelector.TileBlockSelected += BlockSelector_TileBlockSelected;

            LevelList.SelectedIndex          = 1;
            BlockSelector.SelectedBlockValue = 0;
            _ignoreChanges = false;

            _graphicsService.GraphicsUpdated      += _graphicsService_GraphicsUpdated;
            _graphicsService.ExtraGraphicsUpdated += _graphicsService_GraphicsUpdated;
        }
Exemplo n.º 13
0
        private void BlockSelectorBorder_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if ((e.ButtonState & e.RightButton) > 0)
            {
                _copiedblock = BlockSelector.SelectedTileBlock;
            }

            if ((e.ButtonState & e.MiddleButton) > 0)
            {
                BlockSelector.SelectedTileBlock.UpperLeft  = _copiedblock.UpperLeft;
                BlockSelector.SelectedTileBlock.UpperRight = _copiedblock.UpperRight;
                BlockSelector.SelectedTileBlock.LowerLeft  = _copiedblock.LowerLeft;
                BlockSelector.SelectedTileBlock.LowerRight = _copiedblock.LowerRight;
                BlockSelector.Update();
                UpdateTileBlock();
                SetUnsaved();
            }
        }
    /*
     * public int height;
     * public Mesh testMesh;
     * public Texture2D testTex;
     * public bool isDebug = false;
     *
     * private void Start()
     * {
     *  if (isDebug)
     *  {
     *      BrickItConfiguration testCFG = GetTestCfg();
     *      runBrickification(testCFG);
     *  }
     * }*/

    public List <BuildingBlock> GetBuildingBlocks(BrickItConfiguration cfg)
    {
        var oldMesh = cfg.mesh.vertices;

        if (lastBricked != null)
        {
            DestroyImmediate(lastBricked);
            lastBricked = null;
        }
        BlockSelector selector = new BlockSelector(cfg.brickExtends);
        var           tex      = ColorCalculation.colorCalculate(cfg.tex, cfg.colors);
        var           voxels   = Voxelizer.Voxelize(cfg.mesh, tex, cfg.height);

        voxels            = Voxelizer.AddWidth(voxels, cfg.depth);
        lastExtends       = MeshUtils.GetBoundsPerDimension(cfg.mesh);
        cfg.mesh.vertices = oldMesh;
        cfg.mesh.RecalculateBounds();
        return(selector.calculateBlocksSpiralWithBounds(voxels));
    }
Exemplo n.º 15
0
        // It returns an array and making selected tiles value to -1 to indicate it and
        // added it to a List by using FloodFill Algorithm

        public List <Vector2Int> GetSelectedBlockTiles(Vector2Int index)
        {
            int[,] temp = _tiles.Clone() as int[, ];
            List <Vector2Int> returnPositionOfSelectedCubes = new List <Vector2Int>();

            BlockSelector.FloodFill(temp, index.x, index.y);

            for (int i = 0; i < ROW; i++)
            {
                for (int j = 0; j < COLUMN; j++)
                {
                    if (temp[i, j] == -1)
                    {
                        returnPositionOfSelectedCubes.Add(new Vector2Int(i, j));
                    }
                }
            }

            return(returnPositionOfSelectedCubes);
        }
Exemplo n.º 16
0
    public static void CreateBlockMenuItem()
    {
        GameObject v_parentObject = GameObject.Find("BlocksContainer");
        GameObject v_selector     = new GameObject("(Selected)");

        if (v_parentObject != null)
        {
            v_selector.transform.parent = v_parentObject.transform;
        }
        v_selector.transform.localScale    = Vector2.one;
        v_selector.transform.position      = Vector2.zero;
        v_selector.transform.localPosition = new Vector3(v_selector.transform.localPosition.x, v_selector.transform.localPosition.y, 0);         // Prevent Rope Collider to be in front of this Object

        BlockSelector v_component = v_selector.AddComponent <BlockSelector>();

        v_component.FillObjectsInFolderList(true);
        v_component.m_selectedFolderIndex       = 0;
        v_component.SelectedPrefabInFolderIndex = 0;
        v_selector = v_component.InstantiateObjectByPrefab(v_component.SelectedObject);
        Selection.activeTransform = v_selector.transform;
    }
Exemplo n.º 17
0
        private void _graphicsService_GraphicsUpdated()
        {
            if (_currentLevel != null)
            {
                _graphicsAccessor.SetBottomTable(_graphicsService.GetTileSection(_currentLevel.AnimationTileTableIndex));
                _graphicsAccessor.SetTopTable(_graphicsService.GetTileSection(_currentLevel.StaticTileTableIndex));
            }
            else if (_currentWorld != null)
            {
                Tile[] staticTiles   = _graphicsService.GetTileSection(_currentWorld.TileTableIndex);
                Tile[] animatedTiles = _graphicsService.GetTileSection(_currentWorld.AnimationTileTableIndex);

                _graphicsAccessor.SetBottomTable(staticTiles);
                _graphicsAccessor.SetTopTable(animatedTiles);
            }

            _graphicsAccessor.SetGlobalTiles(_graphicsService.GetGlobalTiles(), _graphicsService.GetExtraTiles());
            UpdateTileBlock();
            UpdateGraphics();
            BlockSelector.Update();
        }
	public override void OnInspectorGUI ()
	{
		m_component = target as BlockSelector;
		if(m_component != null)
		{
			m_component.ApplyShowHideComponent();
			m_component.FillObjectsInFolderList();
			if(!m_firstCorrection)
			{
				m_firstCorrection = true;
				m_component.CorrectSelectedPrefabIndex();
			}
			bool v_needRecreate = false;
			int v_folderIndex =  -1;

			EditorGUILayout.BeginHorizontal();

			bool v_buttonRefreshClicked = GUILayout.Button("Refresh");
			if(v_buttonRefreshClicked)
				m_component.FillObjectsInFolderList(true);
			bool v_buttonRecreateClicked = GUILayout.Button("Force Recreate");
			bool v_buttonResetLife = GUILayout.Button("Reset Block Life");
			if(v_buttonResetLife || v_buttonRecreateClicked)
				v_needRecreate = true;

			EditorGUILayout.EndHorizontal();

			EditorGUILayout.Separator();

			EditorGUILayout.BeginHorizontal();
			
			bool  v_buttonFlipXClicked = GUILayout.Button("Flip X");
			bool  v_buttonFlipYClicked = GUILayout.Button("Flip Y");
			
			if(v_buttonFlipXClicked || v_buttonFlipYClicked)
				m_component.PerformFlip(v_buttonFlipXClicked, v_buttonFlipYClicked);
			
			EditorGUILayout.EndHorizontal();

			string [] v_stringFolderPath = m_component.FoldersPath.GetStringList().ToArray();
			v_folderIndex = EditorGUILayout.Popup("Folder", m_component.SelectedFolderIndex, v_stringFolderPath);
			if(v_folderIndex != m_component.SelectedFolderIndex)
			{
				v_needRecreate = true;
				m_component.SelectedFolderIndex = v_folderIndex;
			}

			FolderPrefabs v_selectedFolder = m_component.SelectedFolderPrefab;
			if(v_selectedFolder != null)
			{
				string [] v_stringPrefabsInFolder = GetListOfNames(v_selectedFolder.PrefabsInFolder).ToArray();
				int v_prefabIndex = EditorGUILayout.Popup("Prefab", m_component.SelectedPrefabInFolderIndex, v_stringPrefabsInFolder);
				if(v_prefabIndex != m_component.SelectedPrefabInFolderIndex)
				{
					v_needRecreate = true;
					m_component.SelectedPrefabInFolderIndex = v_prefabIndex;
				}
			}

			EditorGUILayout.Separator();

			bool v_hideOtherComponents = EditorGUILayout.Toggle("Hide Other Components", m_component.HideComponentsInInspector);
			if(m_component.HideComponentsInInspector != v_hideOtherComponents)
				m_component.HideComponentsInInspector = v_hideOtherComponents;

			if(GUI.changed)
				EditorUtility.SetDirty(m_component);
			if(v_needRecreate && m_component.SelectedObject != null)
			{
				GameObject v_newObject = m_component.InstantiateObjectByPrefab(m_component.SelectedObject,!v_buttonResetLife,true,true);
				Selection.activeObject = v_newObject;
			}
		}
	}
Exemplo n.º 19
0
    public override void OnInspectorGUI()
    {
        m_component = target as BlockSelector;
        if (m_component != null)
        {
            m_component.ApplyShowHideComponent();
            m_component.FillObjectsInFolderList();
            if (!m_firstCorrection)
            {
                m_firstCorrection = true;
                m_component.CorrectSelectedPrefabIndex();
            }
            bool v_needRecreate = false;
            int  v_folderIndex  = -1;

            EditorGUILayout.BeginHorizontal();

            bool v_buttonRefreshClicked = GUILayout.Button("Refresh");
            if (v_buttonRefreshClicked)
            {
                m_component.FillObjectsInFolderList(true);
            }
            bool v_buttonRecreateClicked = GUILayout.Button("Force Recreate");
            bool v_buttonResetLife       = GUILayout.Button("Reset Block Life");
            if (v_buttonResetLife || v_buttonRecreateClicked)
            {
                v_needRecreate = true;
            }

            EditorGUILayout.EndHorizontal();

            EditorGUILayout.Separator();

            EditorGUILayout.BeginHorizontal();

            bool v_buttonFlipXClicked = GUILayout.Button("Flip X");
            bool v_buttonFlipYClicked = GUILayout.Button("Flip Y");

            if (v_buttonFlipXClicked || v_buttonFlipYClicked)
            {
                m_component.PerformFlip(v_buttonFlipXClicked, v_buttonFlipYClicked);
            }

            EditorGUILayout.EndHorizontal();

            string [] v_stringFolderPath = m_component.FoldersPath.GetStringList().ToArray();
            v_folderIndex = EditorGUILayout.Popup("Folder", m_component.SelectedFolderIndex, v_stringFolderPath);
            if (v_folderIndex != m_component.SelectedFolderIndex)
            {
                v_needRecreate = true;
                m_component.SelectedFolderIndex = v_folderIndex;
            }

            FolderPrefabs v_selectedFolder = m_component.SelectedFolderPrefab;
            if (v_selectedFolder != null)
            {
                string [] v_stringPrefabsInFolder = GetListOfNames(v_selectedFolder.PrefabsInFolder).ToArray();
                int       v_prefabIndex           = EditorGUILayout.Popup("Prefab", m_component.SelectedPrefabInFolderIndex, v_stringPrefabsInFolder);
                if (v_prefabIndex != m_component.SelectedPrefabInFolderIndex)
                {
                    v_needRecreate = true;
                    m_component.SelectedPrefabInFolderIndex = v_prefabIndex;
                }
            }

            EditorGUILayout.Separator();

            bool v_hideOtherComponents = EditorGUILayout.Toggle("Hide Other Components", m_component.HideComponentsInInspector);
            if (m_component.HideComponentsInInspector != v_hideOtherComponents)
            {
                m_component.HideComponentsInInspector = v_hideOtherComponents;
            }

            if (GUI.changed)
            {
                EditorUtility.SetDirty(m_component);
            }
            if (v_needRecreate && m_component.SelectedObject != null)
            {
                GameObject v_newObject = m_component.InstantiateObjectByPrefab(m_component.SelectedObject, !v_buttonResetLife, true, true);
                Selection.activeObject = v_newObject;
            }
        }
    }
Exemplo n.º 20
0
    // Called by unity engine on start up to initialize variables.
    public void Start()
    {
        // Reference to the game manager and state manager.
        gameManager  = GameObject.Find("GameManager").GetComponent <GameManager>();
        stateManager = GameObject.Find("GameManager").GetComponent <StateManager>();


        // Initialize component classes.
        playerInventory = GetComponent <InventoryManager>();
        laserController = new LaserController(this, gameManager);

        // Load mouse settings.
        Cursor.visible   = true;
        Cursor.lockState = CursorLockMode.None;
        if (PlayerPrefs.GetFloat("xSensitivity") != 0)
        {
            GetComponent <MSCameraController>().CameraSettings.firstPerson.sensibilityX = PlayerPrefs.GetFloat("xSensitivity");
        }
        if (PlayerPrefs.GetFloat("ySensitivity") != 0)
        {
            GetComponent <MSCameraController>().CameraSettings.firstPerson.sensibilityY = PlayerPrefs.GetFloat("ySensitivity");
        }
        GetComponent <MSCameraController>().CameraSettings.firstPerson.invertYInput = PlayerPrefsX.GetPersistentBool("mouseInverted");

        // Loading volume settings.
        if (PlayerPrefs.GetFloat("volume") > 0)
        {
            AudioListener.volume = PlayerPrefs.GetFloat("volume");
            GetComponent <MSCameraController>().cameras[0].volume = AudioListener.volume;
        }
        else
        {
            GetComponent <MSCameraController>().cameras[0].volume = 2.5f;
        }

        // Audio source for placing blocks.
        builderSound = builder.GetComponent <AudioSource>();

        // Audio source for GUI related sounds.
        guiSound = guiObject.GetComponent <AudioSource>();

        // Graphics quality.
        if (PlayerPrefsX.GetPersistentBool("changedGraphicsQuality") == true)
        {
            QualitySettings.SetQualityLevel(PlayerPrefs.GetInt("graphicsQuality"));
        }
        graphicsQuality = QualitySettings.GetQualityLevel();

        // Vsync.
        QualitySettings.vSyncCount = PlayerPrefs.GetInt("vSyncCount");

        int range = PlayerPrefs.GetInt("defaultRange");

        defaultRange = range >= 10 ? range : 10;

        // Fog and Scanner color for atmospheric worlds.
        if (SceneManager.GetActiveScene().name.Equals("QE_World_Atmo"))
        {
            scannerFlash.GetComponent <Light>().color     = Color.white;
            scannerFlash.GetComponent <Light>().intensity = 1;
        }

        if (!SceneManager.GetActiveScene().name.Equals("QE_World"))
        {
            float fogDensity = PlayerPrefs.GetFloat("fogDensity");
            RenderSettings.fogDensity = fogDensity > 0 ? fogDensity : 0.00025f;
            RenderSettings.fog        = PlayerPrefsX.GetPersistentBool("fogEnabled");
        }

        inputManager         = new InputManager(this);
        blockSelector        = new BlockSelector(this);
        networkController    = new NetworkController(this);
        networkItemLocations = new List <Vector3>();
    }
 private string GetOrderByClause(string blocksAlias, BlockSelector selector)
 {
     if (selector.Order == null || selector.Direction == null)
     {
         throw new ArgumentException("The sort order is not defined.", nameof(selector));
     }
     return $"order by {blocksAlias}.{selector.Order} {selector.Direction}";
 }
        public StoredBlock FindFirst(BlockSelector selector)
        {
            string whereClause = GetWhereClause("B", selector);
            string orderByClause = GetOrderByClause("B", selector);

            var command = CreateCommand($"select {GetBlockColumns("B")} from Blocks B {whereClause} {orderByClause} limit 1");

            SetParameters(command, selector);

            using (SQLiteDataReader reader = command.ExecuteReader())
            {
                if (!reader.Read())
                {
                    return null;
                }
                return ReadBlock(reader);
            }
        }
Exemplo n.º 23
0
 private void ShowTerrain_Click(object sender, RoutedEventArgs e)
 {
     BlockSelector.Update(withMapInteractionOverlay: _currentLevel != null ? ShowTerrain.IsChecked.Value : false);
     UpdateTileBlock();
 }
 void Start()
 {
     blockSelector = GetComponent <BlockSelector>();
     py            = Input.mousePosition.y;
     dy            = 0.0f;
 }
Exemplo n.º 25
0
        private void LevelList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            _ignoreChanges = true;
            if (LevelList.SelectedItem is LevelInfo)
            {
                PSwitchSection.IsEnabled      = IceballSection.IsEnabled = FireballSection.IsEnabled = true;
                TileDefinitions.Visibility    = LevelTileSection.Visibility = Visibility.Visible;
                MapTileDefinitions.Visibility = MapTileSection.Visibility = Visibility.Collapsed;

                LevelInfo levelInfo = (LevelInfo)LevelList.SelectedItem;
                _currentLevel = _levelService.LoadLevel(levelInfo);
                _currentWorld = null;

                Tile[]  staticTiles   = _graphicsService.GetTileSection(_currentLevel.StaticTileTableIndex);
                Tile[]  animatedTiles = _graphicsService.GetTileSection(_currentLevel.AnimationTileTableIndex);
                Palette palette       = _palettesService.GetPalette(_currentLevel.PaletteId);

                _graphicsAccessor.SetBottomTable(animatedTiles);
                _graphicsAccessor.SetTopTable(staticTiles);

                _localTileSet = JsonConvert.DeserializeObject <TileSet>(JsonConvert.SerializeObject(_tileService.GetTileSet(_currentLevel.TileSetIndex)));

                _ignoreChanges = false;
                _graphicsSetRenderer.Update(palette);
                BlockSelector.Update(tileSet: _localTileSet, palette: palette, withProjectileInteractions: false);
                UpdateGraphics();
                UpdateTileBlock();
                LoadInteractions();
            }
            else if (LevelList.SelectedItem is WorldInfo)
            {
                PSwitchSection.IsEnabled      = IceballSection.IsEnabled = FireballSection.IsEnabled = false;
                TileDefinitions.Visibility    = LevelTileSection.Visibility = Visibility.Collapsed;
                MapTileDefinitions.Visibility = MapTileSection.Visibility = Visibility.Visible;

                if (MapInteractionList.SelectedIndex == -1)
                {
                    MapInteractionList.SelectedIndex = 0;
                }

                WorldInfo worldInfo = (WorldInfo)LevelList.SelectedItem;
                _currentWorld = _worldService.LoadWorld(worldInfo);
                _currentLevel = null;

                Tile[]  staticTiles   = _graphicsService.GetTileSection(_currentWorld.TileTableIndex);
                Tile[]  animatedTiles = _graphicsService.GetTileSection(_currentWorld.AnimationTileTableIndex);
                Palette palette       = _palettesService.GetPalette(_currentWorld.PaletteId);

                _graphicsAccessor.SetBottomTable(staticTiles);
                _graphicsAccessor.SetTopTable(animatedTiles);

                _localTileSet = JsonConvert.DeserializeObject <TileSet>(JsonConvert.SerializeObject(_tileService.GetTileSet(0)));
                _graphicsSetRenderer.Update(palette);

                _ignoreChanges = false;

                _graphicsSetRenderer.Update(palette);
                BlockSelector.Update(tileSet: _localTileSet, palette: palette, withProjectileInteractions: false);
                UpdateGraphics();
                UpdateTileBlock();
            }
        }
 private void SetParameters(SQLiteCommand command, BlockSelector selector)
 {
     if (selector.Heights != null)
     {
         SetInParameters(command, "H", selector.Heights);
     }
     if (selector.HasContent != null)
     {
         command.Parameters.Add("@HasContent", DbType.Boolean).Value = selector.HasContent;
     }
     if (selector.IsInBestHeaderChain != null)
     {
         command.Parameters.Add("@IsInBestHeaderChain", DbType.Boolean).Value = selector.IsInBestHeaderChain;
     }
     if (selector.IsInBestBlockChain != null)
     {
         command.Parameters.Add("@IsInBestBlockChain", DbType.Boolean).Value = selector.IsInBestBlockChain;
     }
 }
        public List<StoredBlock> Find(BlockSelector selector, int count)
        {
            string whereClause = GetWhereClause("B", selector);
            string orderByClause = GetOrderByClause("B", selector);

            var command = CreateCommand($"select {GetBlockColumns("B")} from Blocks B {whereClause} {orderByClause} limit @limit");

            SetParameters(command, selector);
            command.Parameters.Add("@limit", DbType.Int32).Value = count;

            List<StoredBlock> blocks = new List<StoredBlock>();

            using (SQLiteDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    blocks.Add(ReadBlock(reader));
                }
            }

            return blocks;
        }
 public StoredBlock FindFirst(BlockSelector selector)
 {
     using (BlockchainRepository repo = new BlockchainRepository(conn))
     {
         return repo.FindFirst(selector);
     }
 }
 public List<StoredBlock> Find(BlockSelector selector, int count)
 {
     if (count <= 0 || count > 256)
     {
         throw new ArgumentException($"The parameter '{nameof(count)}' is not within its bounds.", nameof(count));
     }
     using (BlockchainRepository repo = new BlockchainRepository(conn))
     {
         return repo.Find(selector, count);
     }
 }
Exemplo n.º 30
0
        protected override async void Update(GameTime gameTime)
        {
            if (IsActive)
            {
                switch (State)
                {
                case GameState.Started:
                {
                    if (!Paused)
                    {
                        player.Update(gameTime);
                        if (player.UpdateOccured)
                        {
                            world.UpdateBlocks();
                        }
                        await world.UpdateAsync();
                    }

                    gameMenu.Update();

                    break;
                }

                case GameState.Loading:
                {
                    State = GameState.Started;

                    currentSave = mainMenu.CurrentSave;

                    time = new Time(currentSave.Parameters.Day, currentSave.Parameters.Hour, currentSave.Parameters.Minute);

                    ScreenshotHandler screenshotHandler = new ScreenshotHandler(GraphicsDevice, Window.ClientBounds.Width,
                                                                                Window.ClientBounds.Height);
                    BlockSelector blockSelector = new BlockSelector(GraphicsDevice);

                    databaseHandler = new DatabaseHandler(this, currentSave.Parameters.SaveName);
                    gameMenu        = new GameMenu(this, GraphicsDevice, time, screenshotHandler, currentSave.Parameters);
                    world           = new WorldManager(gameMenu, databaseHandler, blockSelector, currentSave.Parameters);
                    player          = new Player(this, GraphicsDevice, currentSave.Parameters);
                    renderer        = new Renderer(this, GraphicsDevice, time, world.Region, screenshotHandler, blockSelector);

                    world.SetPlayer(this, player, currentSave.Parameters);

                    if (!File.Exists($@"Saves\{currentSave.Parameters.SaveName}\save_icon.png"))
                    {
                        player.Update(gameTime);
                        world.Update();
                        renderer.Draw(world.ActiveChunks, player);
                        screenshotHandler.SaveIcon(currentSave.Parameters.SaveName, out currentSave.Icon);
                    }

                    break;
                }

                case GameState.Exiting:
                {
                    databaseHandler.Close();

                    player.SaveParameters(currentSave.Parameters);
                    time.SaveParameters(currentSave.Parameters);
                    currentSave.Parameters.Save();

                    player          = null;
                    world           = null;
                    databaseHandler = null;
                    gameMenu        = null;
                    renderer        = null;

                    GC.Collect();

                    State          = GameState.MainMenu;
                    IsMouseVisible = true;

                    break;
                }

                case GameState.MainMenu:
                {
                    mainMenu.Update();
                    break;
                }
                }
            }

            base.Update(gameTime);
        }
 private string GetWhereClause(string blocksAlias, BlockSelector selector)
 {
     List<string> criteria = new List<string>();
     if (selector.Heights != null)
     {
         criteria.Add($"{blocksAlias}.Height in ({GetInParameters("H", selector.Heights.Length)})");
     }
     if (selector.HasContent != null)
     {
         criteria.Add($"{blocksAlias}.HasContent=@HasContent");
     }
     if (selector.IsInBestHeaderChain != null)
     {
         criteria.Add($"{blocksAlias}.IsInBestHeaderChain=@IsInBestHeaderChain");
     }
     if (selector.IsInBestBlockChain != null)
     {
         criteria.Add($"{blocksAlias}.IsInBestBlockChain=@IsInBestBlockChain");
     }
     if (!criteria.Any())
     {
         return "";
     }
     return "where " + string.Join(" AND ", criteria);
 }
Exemplo n.º 32
0
        static void Main(string[] args)
        {
            CommandLineArguments arguments = null;

            try
            {
                arguments = CommandLineHelper.Parse <CommandLineArguments>(args);
            }
            catch (Exception)
            {
                return;
            }

            /*try
             * {*/
            var gameStateManager = new GameStateManager();
            var blockSimples     = new[]
            {
                new Tuple <byte, string, bool>(1, "Stone", true),
                new Tuple <byte, string, bool>(2, "Grass block", true),
                new Tuple <byte, string, bool>(3, "Dirt", true),
                new Tuple <byte, string, bool>(4, "Cobblestone", true),
                new Tuple <byte, string, bool>(5, "Wooden planks", true),
                new Tuple <byte, string, bool>(7, "Bedrock", true),
                new Tuple <byte, string, bool>(12, "Sand", true),
                new Tuple <byte, string, bool>(13, "Gravel", true),
                new Tuple <byte, string, bool>(14, "Gold Ore", true),
                new Tuple <byte, string, bool>(15, "Iron Ore", true),
                new Tuple <byte, string, bool>(16, "Coal Ore", true),
                new Tuple <byte, string, bool>(17, "Oak Wood", true),
                new Tuple <byte, string, bool>(24, "Sandstone", true),
                new Tuple <byte, string, bool>(31, "Grass", false),
                new Tuple <byte, string, bool>(35, "Wool", true),
            };
            var blocksProvider = new BlocksProvider();
            var blockSelector  = new BlockSelector();

            for (int i = 0; i < blockSimples.Length; i++)
            {
                blocksProvider.RegisterBlock(blockSimples[i].Item1, new BlockSimple(blockSimples[i].Item2, blockSimples[i].Item3));
                blockSelector.AddSelectableBlock(blockSimples[i].Item1);
            }

            var chunkManager     = new ChunkManager();
            var chunkGenerator   = new ChunkGeneratorSurface(chunkManager);
            var worldManager     = new WorldManager(blocksProvider, chunkManager, chunkGenerator);
            var chunkPartManager = new ChunkPartManager(worldManager, chunkManager, blocksProvider);

            var world  = new World("world", (arguments?.Seed ?? 0) != 0 ? arguments.Seed : new Random().Next());
            var window = new MainWindow(gameStateManager, world);

            gameStateManager.SetGameState(new GameStatePlay(gameStateManager, worldManager, chunkManager, chunkPartManager, blockSelector, blocksProvider, world));
            window.Run(60);
            worldManager.Clean(world);

            /*}
             * catch (Exception exception)
             * {
             *  Console.Error.WriteLine($"Une exception de type {exception.GetType()} est survenue, message : {exception.Message}");
             *  Console.Error.WriteLine($"Stacktrace:");
             *  Console.Error.WriteLine(exception.StackTrace);
             *  Console.WriteLine("Sortie...");
             *  Environment.Exit(1);
             * }*/
        }
Exemplo n.º 33
0
        public static void CreateDwg()
        {
            Active.Document.SendStringToExecute("REGENALL ", true, false, true);
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db  = doc.Database;

            Dictionary <ObjectId, bool> layersDictionary = LayerManipulation.GetLayersIsBlockedCol();

            if (doc == null)
            {
                return;
            }
            doc.LockOrUnlockLayers(false, ignoreCurrent: false, lockZero: true);

            bool isExec = true;

            using (Transaction tr = Active.Database.TransactionManager.StartTransaction())
            {
                BlockSelector blockSelector = new BlockSelector();
                blockSelector.GetFilterForSelectBlockId();
                var res = blockSelector.SelectionResult;
                if (res.Status != PromptStatus.OK)
                {
                    isExec = false;
                    Active.Editor.WriteMessage("Надо выбрать блок");
                }

                if (isExec)
                {
                    SelectionSet selSet      = res.Value;
                    ObjectId[]   idArrayTemp = selSet.GetObjectIds();

                    //idArray.Select(id => (BlockReference) tr.GetObject(id, OpenMode.ForRead))
                    //    .Where(br =>
                    //        ((BlockTableRecord) tr.GetObject(br.DynamicBlockTableRecord, OpenMode.ForRead)).Name ==
                    //        "Формат")
                    //    .Select(br => br.ObjectId);

                    ObjectIdCollection idArray = new ObjectIdCollection();
                    foreach (var objectId in idArrayTemp)
                    {
                        BlockReference   blRef = (BlockReference)tr.GetObject(objectId, OpenMode.ForRead);
                        BlockTableRecord block =
                            tr.GetObject(blRef.DynamicBlockTableRecord, OpenMode.ForRead) as BlockTableRecord;
                        string blockName = block.Name;

                        if (blockName == "Формат")
                        {
                            idArray.Add(objectId);
                        }
                        else if (blockName == "ФорматM25")
                        {
                            idArray.Add(objectId);
                        }

                        //Active.Document.Editor.WriteMessage(blockName);
                    }

                    //MyCommands.GetSheetsFromBlocks(Active.Editor, dict, tr, idArray);
                    //MyCommands.GetPrintParametersToPdf(Active.Editor, printModels, tr, idArray);
                    //Active.Editor.WriteMessage("печать {0} - {1}", printModels[0].DocNumber, printModels.Count);

                    foreach (ObjectId objectId in idArray)
                    {
                        ObjectCopier       objectCopier = new ObjectCopier(objectId);
                        ObjectIdCollection objectIds    = objectCopier.SelectCrossingWindow();
                        BlockReference     blkRef       = (BlockReference)tr.GetObject(objectId, OpenMode.ForRead);
                        string             selAttrName  = "НОМЕР_ЛИСТА";
                        string             fileName     = Utils.GetBlockAttributeValue(blkRef, selAttrName);

                        //HostApplicationServices hs = HostApplicationServices.Current;
                        //string path = Application.GetSystemVariable("DWGPREFIX");
                        //hs.FindFile(doc.Name, doc.Database, FindFileHint.Default);
                        string createdwgFolder = Path.GetFileNameWithoutExtension(db.OriginalFileName);

                        string folderdwg   = Path.GetDirectoryName(db.OriginalFileName);
                        string dwgFilename = Path.Combine(folderdwg, fileName + ".dwg");
                        objectCopier.CopyObjectsNewDatabases(objectIds, dwgFilename);
                        // objectCopier.CopyObjectsBetweenDatabases(objectIds, dwgFilename);
                        Active.Editor.WriteMessage("{0} сохранен", dwgFilename);
                        string newFileName = ZoomFilesAndSave(dwgFilename);
                        File.Delete(dwgFilename);
                        System.IO.File.Move(newFileName, dwgFilename);
                    }
                }

                doc.LockLayers(layersDictionary);
                tr.Commit();
            }
        }