From 199450f198be318d5b12932d7123704312bad01c Mon Sep 17 00:00:00 2001
From: Robin Ruud Kristensen <robin1998@hotmail.no>
Date: Wed, 26 Oct 2022 09:00:57 +0200
Subject: [PATCH] generate map on scene

---
 MrBigsock/Assets/Code/Map.meta                |  8 ++++
 MrBigsock/Assets/Code/Map/AbstractMapGen.cs   | 37 ++++++++++++++++++
 .../Assets/Code/Map/AbstractMapGen.cs.meta    | 11 ++++++
 .../Assets/Code/Map/NeighbourMapGenerator.cs  | 38 +++++++++++++++++++
 .../Code/Map/NeighbourMapGenerator.cs.meta    | 11 ++++++
 .../Assets/Code/Map/TilemapGenerator.cs.meta  | 11 ++++++
 6 files changed, 116 insertions(+)
 create mode 100644 MrBigsock/Assets/Code/Map.meta
 create mode 100644 MrBigsock/Assets/Code/Map/AbstractMapGen.cs
 create mode 100644 MrBigsock/Assets/Code/Map/AbstractMapGen.cs.meta
 create mode 100644 MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs
 create mode 100644 MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs.meta
 create mode 100644 MrBigsock/Assets/Code/Map/TilemapGenerator.cs.meta

diff --git a/MrBigsock/Assets/Code/Map.meta b/MrBigsock/Assets/Code/Map.meta
new file mode 100644
index 00000000..dcac9727
--- /dev/null
+++ b/MrBigsock/Assets/Code/Map.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 74feb499403b4aa41a830a61dba8f194
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Code/Map/AbstractMapGen.cs b/MrBigsock/Assets/Code/Map/AbstractMapGen.cs
new file mode 100644
index 00000000..51fc8431
--- /dev/null
+++ b/MrBigsock/Assets/Code/Map/AbstractMapGen.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Unity.VisualScripting;
+using UnityEngine;
+
+namespace Bigsock
+{
+    public abstract class AbstractMapGen : MonoBehaviour
+    {
+        [SerializeField]
+        protected TilemapGenerator tilemapGenerator = null;
+        [SerializeField]
+        protected int RoomCount;
+
+        //Depricated
+        public void GenerateMap()
+        {
+            //tilemapVisualizer.Clear();
+            RunProceduralGeneration();
+        }
+
+        public void Generate()
+        {
+            //tilemapGenerator.Clear();
+            RunProceduralGeneration();
+        }
+
+        public void ClearMap()
+        {
+            tilemapGenerator.Clear(RoomCount, true);
+            //tilemapVisualizer.Clear();
+        }
+
+        public abstract void RunProceduralGeneration();
+    }
+}
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Map/AbstractMapGen.cs.meta b/MrBigsock/Assets/Code/Map/AbstractMapGen.cs.meta
new file mode 100644
index 00000000..8b8a1cbc
--- /dev/null
+++ b/MrBigsock/Assets/Code/Map/AbstractMapGen.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 725e1e4aadc26ea4295922b37086eaeb
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs b/MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs
new file mode 100644
index 00000000..a17b139e
--- /dev/null
+++ b/MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs
@@ -0,0 +1,38 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Bigsock
+{
+    public class NeighbourMapGenerator : AbstractMapGen
+    {
+        [SerializeField]
+        protected NeigbourSO[] mapParam;
+
+        private static List<int[,]> roomList = new List<int[,]>();
+
+        public override void RunProceduralGeneration()
+        {
+            
+            for (int i = 0; i <= RoomCount - 1; i++)
+            {
+                int randomMap = Random.Range(0, mapParam.Length);
+                int[,] map = tilemapGenerator.GenerateArray(mapParam[randomMap].width, mapParam[randomMap].height, mapParam[randomMap].empty);
+                roomList.Add(map);
+                tilemapGenerator.RenderMap(roomList[i],i);
+            }
+            /*
+            int randomMap = Random.Range(0, mapParam.Length);
+            int[,] map = tilemapGenerator.GenerateArray(mapParam[randomMap].width, mapParam[randomMap].height, mapParam[randomMap].empty);
+            roomList.Add(map);
+            tilemapGenerator.RenderMap(roomList[0]);*/
+
+            tilemapGenerator.polyCollider(roomList[0], 0);
+        }
+
+        public static int[,] GetRoomList(int i)
+        {
+            return roomList[i];
+        }
+    }
+}
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs.meta b/MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs.meta
new file mode 100644
index 00000000..a4ad0f60
--- /dev/null
+++ b/MrBigsock/Assets/Code/Map/NeighbourMapGenerator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 960d72caa307da4499b26afcf1a028ad
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/MrBigsock/Assets/Code/Map/TilemapGenerator.cs.meta b/MrBigsock/Assets/Code/Map/TilemapGenerator.cs.meta
new file mode 100644
index 00000000..a2ff5b8a
--- /dev/null
+++ b/MrBigsock/Assets/Code/Map/TilemapGenerator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: afb5afdf97765df4284fda5971c18543
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
-- 
GitLab