コード例 #1
0
ファイル: TileSequenceManager.cs プロジェクト: nadar71/Krea
        public void init(TilesMap map, Form1 mainForm)
        {
            this.currentTilesMap = map;
            this.mainForm = mainForm;

            this.textureSequenceImageList.Images.Clear();
            this.textureSequenceListView.Items.Clear();
            this.textureSequencePropGrid.SelectedObject = null;

            this.objectSequenceImageList.Images.Clear();
            this.objectSequenceListView.Items.Clear();
            this.objectSequencePropGrid.SelectedObject = null;

            if (map.TextureSequences == null)
                map.TextureSequences = new List<TileSequence>();

            if (map.ObjectSequences == null)
                map.ObjectSequences = new List<TileSequence>();

            for (int i = 0; i < map.TextureSequences.Count; i++)
            {
                TileSequence seq = map.TextureSequences[i];
                int indexImage = this.textureSequenceImageList.Images.Count;
                this.textureSequenceImageList.Images.Add(seq.Frames[0].GorgonSprite.Image.SaveBitmap());

                ListViewItem seqItem = new ListViewItem();
                seqItem.Text = seq.Name;
                seqItem.ImageIndex = indexImage;
                seqItem.Tag = seq;
                this.textureSequenceListView.Items.Add(seqItem);

            }

            for (int i = 0; i < map.ObjectSequences.Count; i++)
            {
                TileSequence seq = map.ObjectSequences[i];
                int indexImage = this.objectSequenceImageList.Images.Count;
                this.objectSequenceImageList.Images.Add(seq.Frames[0].GorgonSprite.Image.SaveBitmap());

                ListViewItem seqItem = new ListViewItem();
                seqItem.Text = seq.Name;
                seqItem.ImageIndex = indexImage;
                seqItem.Tag = seq;
                this.objectSequenceListView.Items.Add(seqItem);

            }
        }
コード例 #2
0
ファイル: CoronaLayer.cs プロジェクト: nadar71/Krea
        public void newTilesMap()
        {
            //Count all tile maps in the project
            int count = 0;
            for (int i = 0; i < this.SceneParent.projectParent.Scenes.Count; i++)
            {
                for (int j = 0; j < this.SceneParent.projectParent.Scenes[i].Layers.Count; j++)
                {
                    if (this.SceneParent.projectParent.Scenes[i].Layers[j].TilesMap != null)
                    {
                        count++;
                    }
                }
            }

            this.TilesMap = new TilesMap("map" + count, new Point(0, 0), 10, 10, 64, 64,this);
        }
コード例 #3
0
ファイル: TilesMapEditor.cs プロジェクト: nadar71/Krea
        public void setTilesMap(TilesMap tilesMap)
        {
            this.currentTilesMap = tilesMap;

            if (this.currentTilesMap != null)
            {
                this.tileEventManager.init(this.currentTilesMap, this.mainForm);

                this.ModelsSelection = new TilesSelection(tilesMap);
                this.setScrollValue();

                Point offsetPoint = this.getOffsetPoint();
                Rectangle rect = new Rectangle(new Point(-offsetPoint.X, -offsetPoint.Y), this.surfaceDessin.Size);

                this.currentTilesMap.setSurfaceVisible(rect,1,1);

                this.refreshPaletteContent();
                GorgonLibrary.Gorgon.Go();
            }
        }
コード例 #4
0
 //---------------------------------------------------
 //-------------------Constructeurs-------------------
 //---------------------------------------------------
 public TilesMapPropertyConverter(TilesMap tilesMapSelected, Form1 MainForm)
 {
     this.tilesMapSelected = tilesMapSelected;
     this.MainForm = MainForm;
 }
コード例 #5
0
ファイル: GameElementTreeView.cs プロジェクト: nadar71/Krea
        //----------------------------------------------------------
        //----------------Grille Map-----------------------
        //----------------------------------------------------------
        public void newTilesMap(TilesMap map)
        {
            if (this.LayerSelected != null)
            {
                GameElement node = new GameElement("TILESMAP", map.TilesMapName, map);

                node.Checked = map.isEnabled;
                GameElement layerNode = getNodeFromObjectInstance(this.treeViewElements.Nodes, LayerSelected);
                if (layerNode != null)
                {
                    Console.WriteLine("Map ADDED");
                    layerNode.Nodes.Add(node);
                }

            }
        }
コード例 #6
0
ファイル: TilesSelection.cs プロジェクト: nadar71/Krea
 //---------------------------------------------------
 //-------------------Constructors--------------------
 //---------------------------------------------------
 public TilesSelection(TilesMap tilesMapParent)
 {
     this.TilesMapParent = tilesMapParent;
     ListModelsSelected = new List<TileModel>();
 }
コード例 #7
0
        public void CleanTileMap(TilesMap map, bool removeAsset, bool checkIntegrity)
        {
            map.CleanAllTileModelsUsed(true, removeAsset, checkIntegrity);

            if (removeAsset == true)
            {
                //get textures content
                string folderDest = this.currentProject.SourceFolderPath;
                string textureContentFilePath = folderDest + "\\" + map.TilesMapName + "textures.json";
                if (File.Exists(textureContentFilePath))
                    File.Delete(textureContentFilePath);

                //get objects content
                string objectContentFilePath = folderDest + "\\" + map.TilesMapName + "objects.json";
                if (File.Exists(objectContentFilePath))
                    File.Delete(objectContentFilePath);

                //get collisions content
                string objectCollisionFilePath = folderDest + "\\" + map.TilesMapName + "collisions.json";
                if (File.Exists(objectCollisionFilePath))
                    File.Delete(objectCollisionFilePath);

                //get texture sequences content
                string textureSequenceContentFilePath = folderDest + "\\" + map.TilesMapName + "texturesequences.json";
                if (File.Exists(textureSequenceContentFilePath))
                    File.Delete(textureSequenceContentFilePath);

                //get object sequences content
                string objectSequenceContentFilePath = folderDest + "\\" + map.TilesMapName + "objectsequences.json";
                if (File.Exists(objectSequenceContentFilePath))
                    File.Delete(objectSequenceContentFilePath);

                //get events content
                string eventsContentFilePath = folderDest + "\\" + map.TilesMapName + "events.json";
                if (File.Exists(eventsContentFilePath))
                    File.Delete(eventsContentFilePath);
            }
        }
コード例 #8
0
ファイル: Form1.cs プロジェクト: nadar71/Krea
        ///---------------------------------------------------------------------------------------------------------
        ///--------------------- METHODES ET EVENTS TILESMAP MANAGER-------------------------------
        ///---------------------------------------------------------------------------------------------------------
        public void openTilesMapEditor(TilesMap map)
        {
            //Init le manager
            this.tilesManagerPanel1.setCurrentTilesMap(map);

            this.tilesMapEditor1.init(this);
            this.tilesMapEditor1.setTilesMap(map);

            if (this.tileMapEditorPage.Parent == null)
            {
                this.checkAndOpenTabPage(this.tileMapEditorPage);
            }

            TabControl controlParent = this.tileMapEditorPage.Parent as TabControl;
            controlParent.SelectedTab = this.tileMapEditorPage;

            this.checkAllTabControlEmpty();

            //------
            bool exists = false;
            for (int i = 0; i < this.sceneEditorView1.GraphicsContentManager.RendererWindows.Count; i++)
            {
                if (this.sceneEditorView1.GraphicsContentManager.RendererWindows[i].Name.Equals("TileMapEditor"))
                {
                    exists = true;
                    break;
                }
            }
            if (exists == false)
                this.sceneEditorView1.GraphicsContentManager.AddRenderWindow(
                 new GorgonLibrary.Graphics.RenderWindow("TileMapEditor", this.tilesMapEditor1.surfaceDessin, false));
            //------
            exists = false;
            for (int i = 0; i < this.sceneEditorView1.GraphicsContentManager.RendererWindows.Count; i++)
            {
                if (this.sceneEditorView1.GraphicsContentManager.RendererWindows[i].Name.Equals("TileMapEditor_TextureModels"))
                {
                    exists = true;
                    break;
                }
            }
            if (exists == false)
                this.sceneEditorView1.GraphicsContentManager.AddRenderWindow(
                 new GorgonLibrary.Graphics.RenderWindow("TileMapEditor_TextureModels", this.tilesMapEditor1.textureModelsPictBx, false));

            //------
            exists = false;
            for (int i = 0; i < this.sceneEditorView1.GraphicsContentManager.RendererWindows.Count; i++)
            {
                if (this.sceneEditorView1.GraphicsContentManager.RendererWindows[i].Name.Equals("TileMapEditor_ObjectModels"))
                {
                    exists = true;
                    break;
                }
            }
            if (exists == false)
                this.sceneEditorView1.GraphicsContentManager.AddRenderWindow(
                 new GorgonLibrary.Graphics.RenderWindow("TileMapEditor_ObjectModels", this.tilesMapEditor1.objectModelsPictBx, false));
        }
コード例 #9
0
ファイル: JSONTileMap.cs プロジェクト: nadar71/Krea
        public JSONTileMap(TilesMap map,Scene sceneParent, float xRatio, float yRatio)
        {
            this.NbColumns = map.NbColumns;
            this.NbLines = map.NbLines;
            this.TilesHeight =  Convert.ToInt32(map.TilesHeight * yRatio);
            this.TilesWidth =  Convert.ToInt32(map.TilesWidth * xRatio);
            this.TilesMapName = map.TilesMapName;
            this.Bounce = map.Bounce;
            this.IsInfinite = map.isInfinite;
            this.Friction = map.Friction;
            this.Radius = Convert.ToInt32(map.Radius *((xRatio + yRatio) / 2));
            this.Density = map.Density;
            this.IsPathFindingEnabled = map.IsPathFindingEnabled;
            this.isPhysicsEnabled = map.isPhysicsEnabled;

            this.TextureCount = map.TileModelsTextureUsed.Count;
            this.ObjectCount = map.TileModelsObjectsUsed.Count;

            if (map.TextureCountBySheet != null)
            this.TextureCountBySheet = map.TextureCountBySheet.ToArray();

            if (map.ObjectCountBySheet != null)
            this.ObjectCountBySheet = map.ObjectCountBySheet.ToArray();

            this.TextureSheetCount = map.NbTextureSheets;
            this.ObjectSheetCount = map.NbObjectSheets;

            this.TextureSequenceCount = map.TextureSequences.Count;
            this.ObjectSequenceCount = map.ObjectSequences.Count;

            if(map.TextureSequenceCountBySheet != null)
                 this.TextureSequenceCountBySheet = map.TextureSequenceCountBySheet.ToArray();

            if(map.ObjectSequenceCountBySheet != null)
                this.ObjectSequenceCountBySheet = map.ObjectSequenceCountBySheet.ToArray();

            this.TextureSequenceSheetCount = map.NbTextureSequenceSheets;
            this.ObjectSequenceSheetCount = map.NbObjectSequenceSheets;

            this.TextureSequences = new JSONTileSequence[map.TextureSequences.Count];
            int textureFrameCount = TextureCount;
            for (int i = 0; i < map.TextureSequences.Count; i++)
            {
                TileSequence seq = map.TextureSequences[i];
                JSONTileSequence seqJson = new JSONTileSequence(seq.Name.Replace(" ",""), textureFrameCount + 1, seq.Frames.Count, seq.Lenght, seq.Iteration);
                this.TextureSequences[i] = seqJson;

                textureFrameCount = textureFrameCount + seq.Frames.Count;
            }

            this.ObjectSequences = new JSONTileSequence[map.ObjectSequences.Count];
            int objectFrameCount = this.ObjectCount;
            for (int i = 0; i < map.ObjectSequences.Count; i++)
            {
                TileSequence seq = map.ObjectSequences[i];
                JSONTileSequence seqJson = new JSONTileSequence(seq.Name.Replace(" ", ""), objectFrameCount + 1, seq.Frames.Count, seq.Lenght, seq.Iteration);
                this.ObjectSequences[i] = seqJson;

                objectFrameCount = objectFrameCount + seq.Frames.Count;
            }

            if (map.CollisionFilterGroupIndex + 1 <= sceneParent.CollisionFilterGroups.Count)
            {
                CollisionFilterGroup group = sceneParent.CollisionFilterGroups[map.CollisionFilterGroupIndex];
                this.CollisionCategoryBits = group.CategorieBit;
                this.CollisionMaskBits = group.getMaskBits();
            }
            else
            {
                this.CollisionCategoryBits = 0;
                this.CollisionMaskBits = 0;
            }
        }
コード例 #10
0
ファイル: JSONTileMap.cs プロジェクト: nadar71/Krea
        public void serialize(string folderDest, TilesMap map)
        {
            var jss = new JavaScriptSerializer();
            jss.MaxJsonLength = 999999999;

            var jsonConfig = jss.Serialize(this);
            string configFilePath = folderDest + "\\" + map.TilesMapName.ToLower() + "config.json";
            File.WriteAllText(configFilePath, jsonConfig);

            //Serialize Texture Content Tab
            map.textureContent = new int[this.NbLines * this.NbColumns];
            map.objectContent = new int[this.NbLines * this.NbColumns];

            for (int i = 0; i < this.NbLines; i++)
            {
                for (int j = 0; j < this.NbColumns; j++)
                {
                    Tile tile = map.TabTiles[i, j];
                    if (tile != null)
                    {
                        if (tile.TileModelTexture != null)
                        {
                            map.textureContent[i * this.NbColumns + j] = map.TileModelsTextureUsed.IndexOf(tile.TileModelTexture);
                        }
                        else
                            map.textureContent[i * this.NbColumns + j] = -1;

                        if (tile.TileModelImageObject != null)
                        {
                            map.objectContent[i * this.NbColumns + j] = map.TileModelsObjectsUsed.IndexOf(tile.TileModelImageObject);
                        }
                        else
                            map.objectContent[i * this.NbColumns + j] = -1;

                    }

                }
            }

            var jsonTextureContent = jss.Serialize(map.textureContent);
            string textureContentFilePath = folderDest + "\\" + map.TilesMapName.ToLower() + "textures.json";

            File.WriteAllText(textureContentFilePath, jsonTextureContent);

            //Serialize Object Content Tab

            var jsonObjectContent = jss.Serialize(map.objectContent);
            string objectContentFilePath = folderDest + "\\" + map.TilesMapName.ToLower() + "objects.json";

            File.WriteAllText(objectContentFilePath, jsonObjectContent);

            //Serialize Collision Content Tab
            var jsonCollisionContent = jss.Serialize(map.collisionContent);
            string objectCollisionFilePath = folderDest + "\\" + map.TilesMapName.ToLower() + "collisions.json";

            File.WriteAllText(objectCollisionFilePath, jsonCollisionContent);

            //Serialize Texture Sequence Content Tab
            var jsonTextureSequenceContent = jss.Serialize(map.textureSequenceContent);
            string textureSequencesFilePath = folderDest + "\\" + map.TilesMapName.ToLower() + "texturesequences.json";

            File.WriteAllText(textureSequencesFilePath, jsonTextureSequenceContent);

            //Serialize Object Sequence Content Tab
            var jsonObjectSequenceContent = jss.Serialize(map.objectSequenceContent);
            string objectSequencesFilePath = folderDest + "\\" + map.TilesMapName.ToLower() + "objectsequences.json";

            File.WriteAllText(objectSequencesFilePath, jsonObjectSequenceContent);

            //Serialize events Content Tab
            var jsonEventContent = jss.Serialize(map.eventContent);
            string eventsFilePath = folderDest + "\\" + map.TilesMapName.ToLower() + "events.json";

            File.WriteAllText(eventsFilePath, jsonEventContent);

            jss = null;
            jsonCollisionContent = null;
            jsonConfig = null;
            jsonObjectContent = null;
            jsonTextureContent = null;
            jsonObjectSequenceContent = null;
            jsonTextureSequenceContent = null;
            jsonEventContent = null;
        }
コード例 #11
0
ファイル: JSONTileMap.cs プロジェクト: nadar71/Krea
        public void deserialize(string folderDest, TilesMap map)
        {
            var jss = new JavaScriptSerializer();
            jss.MaxJsonLength = 999999999;

            //get textures content
            string textureContentFilePath = folderDest + "\\" + map.TilesMapName + "textures.json";
            if(File.Exists(textureContentFilePath))
                map.textureContent = (int[])jss.Deserialize(File.ReadAllText(textureContentFilePath), typeof(int[]));

            //get objects content
            string objectContentFilePath = folderDest + "\\" + map.TilesMapName + "objects.json";
            if (File.Exists(objectContentFilePath))
             map.objectContent = (int[])jss.Deserialize(File.ReadAllText(objectContentFilePath), typeof(int[]));

            //get collisions content
            string objectCollisionFilePath = folderDest + "\\" + map.TilesMapName + "collisions.json";
            if (File.Exists(objectCollisionFilePath))
                map.collisionContent = (int[])jss.Deserialize(File.ReadAllText(objectCollisionFilePath), typeof(int[]));

            //get texture sequences content
            string textureSequenceContentFilePath = folderDest + "\\" + map.TilesMapName + "texturesequences.json";
            if (File.Exists(textureSequenceContentFilePath))
                map.textureSequenceContent = (int[])jss.Deserialize(File.ReadAllText(textureSequenceContentFilePath), typeof(int[]));

            //get object sequences content
            string objectSequenceContentFilePath = folderDest + "\\" + map.TilesMapName + "objectsequences.json";
            if (File.Exists(objectSequenceContentFilePath))
                map.objectSequenceContent = (int[])jss.Deserialize(File.ReadAllText(objectSequenceContentFilePath), typeof(int[]));

            //get events content
            string eventsContentFilePath = folderDest + "\\" + map.TilesMapName + "events.json";
            if (File.Exists(eventsContentFilePath))
                 map.eventContent = (int[])jss.Deserialize(File.ReadAllText(eventsContentFilePath), typeof(int[]));
            jss = null;
        }
コード例 #12
0
ファイル: TilesManagerPanel.cs プロジェクト: nadar71/Krea
 //---------------------------------------------------
 //-------------------Events--------------------
 //---------------------------------------------------
 public void setCurrentTilesMap(TilesMap map)
 {
     //Creer une selecteur de tilesmodel
     TilesSelection = new TilesSelection(map);
 }