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); } }
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); }
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(); } }
//--------------------------------------------------- //-------------------Constructeurs------------------- //--------------------------------------------------- public TilesMapPropertyConverter(TilesMap tilesMapSelected, Form1 MainForm) { this.tilesMapSelected = tilesMapSelected; this.MainForm = MainForm; }
//---------------------------------------------------------- //----------------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); } } }
//--------------------------------------------------- //-------------------Constructors-------------------- //--------------------------------------------------- public TilesSelection(TilesMap tilesMapParent) { this.TilesMapParent = tilesMapParent; ListModelsSelected = new List<TileModel>(); }
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); } }
///--------------------------------------------------------------------------------------------------------- ///--------------------- 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)); }
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; } }
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; }
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; }
//--------------------------------------------------- //-------------------Events-------------------- //--------------------------------------------------- public void setCurrentTilesMap(TilesMap map) { //Creer une selecteur de tilesmodel TilesSelection = new TilesSelection(map); }