├── .gitignore ├── CheatMenu ├── .vs │ └── CheatMenu │ │ └── v14 │ │ └── .suo ├── Atmosphere.cs ├── CStructure.cs ├── CheatMenu.csproj ├── CheatMenu.sln ├── CheatMenu.v12.suo ├── CheatMenuComponent.cs ├── FPController.cs ├── Mod │ ├── CheatMenu.dll │ └── CheatMenu.pdb ├── ModInfo.xml ├── NewEnemyHealth.cs ├── NewWeatherSystem.cs ├── Stats.cs ├── THealth.cs ├── entryAdd.tpl └── obj │ └── x86 │ └── Release │ ├── CheatMenu.csproj.FileListAbsolute.txt │ ├── CheatMenu.csprojResolveAssemblyReference.cache │ ├── CheatMenu.dll │ ├── CheatMenu.pdb │ └── DesignTimeResolveAssemblyReferencesInput.cache ├── DevPicker ├── .vs │ └── DevPicker │ │ └── v14 │ │ └── .suo ├── DevPicker.csproj ├── DevPicker.sln ├── Mod │ ├── DevPicker.dll │ └── DevPicker.pdb ├── ModInfo.xml ├── Picker.cs └── obj │ └── x86 │ └── Release │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── DevPicker.csproj.FileListAbsolute.txt │ ├── DevPicker.csprojResolveAssemblyReference.cache │ ├── DevPicker.dll │ └── DevPicker.pdb ├── LICENSE ├── Map ├── .vs │ └── Map │ │ └── v14 │ │ └── .suo ├── Downloader.cs ├── IngameMap.cs ├── Map.cs ├── Map.csproj ├── Map.sln ├── Mod │ ├── Map.dll │ └── Map.pdb ├── ModInfo.xml ├── Resources │ └── Markers.png └── obj │ └── x86 │ └── Release │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── Map.csproj.FileListAbsolute.txt │ ├── Map.csprojResolveAssemblyReference.cache │ ├── Map.dll │ └── Map.pdb ├── README.md ├── RemoveBuildings ├── .vs │ └── RemoveBuildings │ │ └── v14 │ │ └── .suo ├── Mod │ ├── RemoveBuildings.dll │ └── RemoveBuildings.pdb ├── ModInfo.xml ├── NewCreate.cs ├── RemoveBuildings.cs ├── RemoveBuildings.csproj ├── RemoveBuildings.sln ├── RemoveBuildings.v12.suo ├── Resources │ └── RemoveBuilding.png └── obj │ └── x86 │ └── Release │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── RemoveBuildings.csproj.FileListAbsolute.txt │ ├── RemoveBuildings.csprojResolveAssemblyReference.cache │ ├── RemoveBuildings.dll │ └── RemoveBuildings.pdb ├── SaveEverywhere ├── Mod │ ├── SaveEverywhere.dll │ └── SaveEverywhere.pdb ├── ModInfo.xml ├── SaveEverywhere.csproj ├── SaveEverywhere.sln ├── SaveEverywhere.v12.suo ├── Saver.cs └── obj │ └── x86 │ └── Release │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── SaveEverywhere.csproj.FileListAbsolute.txt │ ├── SaveEverywhere.csprojResolveAssemblyReference.cache │ ├── SaveEverywhere.dll │ └── SaveEverywhere.pdb └── SpawnCommand ├── .vs └── SpawnCommand │ └── v14 │ └── .suo ├── Mod ├── SpawnCommand.dll └── SpawnCommand.pdb ├── ModInfo.xml ├── SpawnCommand.cs ├── SpawnCommand.csproj ├── SpawnCommand.sln └── obj └── x86 └── Release ├── DesignTimeResolveAssemblyReferencesInput.cache ├── SpawnCommand.csproj.FileListAbsolute.txt ├── SpawnCommand.csprojResolveAssemblyReference.cache ├── SpawnCommand.dll └── SpawnCommand.pdb /.gitignore: -------------------------------------------------------------------------------- 1 | /Core 2 | /Spawner 3 | -------------------------------------------------------------------------------- /CheatMenu/.vs/CheatMenu/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/.vs/CheatMenu/v14/.suo -------------------------------------------------------------------------------- /CheatMenu/Atmosphere.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | namespace CheatMenu 8 | { 9 | class Atmosphere : TheForestAtmosphere 10 | { 11 | protected override void Update() 12 | { 13 | if (CheatMenuComponent.CaveLight > 0f && InACave) 14 | { 15 | CaveAddLight1 = new Color(CheatMenuComponent.CaveLight, CheatMenuComponent.CaveLight, CheatMenuComponent.CaveLight); 16 | CaveAddLight2 = new Color(CheatMenuComponent.CaveLight, CheatMenuComponent.CaveLight, CheatMenuComponent.CaveLight); ; 17 | CaveAddLight1Intensity = CheatMenuComponent.CaveLight; 18 | CaveAddLight2Intensity = CheatMenuComponent.CaveLight; 19 | base.Update(); 20 | } 21 | else 22 | { 23 | base.Update(); 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /CheatMenu/CStructure.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace CheatMenu 7 | { 8 | class CStructure : TheForest.Buildings.Creation.Craft_Structure 9 | { 10 | protected override void Update() 11 | { 12 | if (CheatMenuComponent.InstantBuild && ModAPI.Input.GetButtonDown("InstantBuild")) 13 | { 14 | for (int i = 0; i < this._requiredIngredients.Count; i++) 15 | { 16 | int a = _requiredIngredients[i]._itemID; 17 | for (int j = 0; j < a; j++) 18 | this.AddIngrendient_Actual(i, true); 19 | } 20 | } 21 | else 22 | { 23 | base.Update(); 24 | } 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /CheatMenu/CheatMenu.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Release 6 | x86 7 | {53821041-E269-4717-BAED-3C9C6836E83F} 8 | Library 9 | Properties 10 | CheatMenu 11 | CheatMenu 12 | v3.5 13 | 512 14 | 15 | 16 | 17 | pdbonly 18 | true 19 | Mod\ 20 | TRACE 21 | prompt 22 | 4 23 | 24 | 25 | 26 | 27 | 28 | 29 | ../../../libs/BaseModLib.dll 30 | False 31 | 32 | 33 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp-firstpass.dll 34 | False 35 | 36 | 37 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp.dll 38 | False 39 | 40 | 41 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript-firstpass.dll 42 | False 43 | 44 | 45 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript.dll 46 | False 47 | 48 | 49 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 50 | False 51 | 52 | 53 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 54 | False 55 | 56 | 57 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 58 | False 59 | 60 | 61 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyColor.dll 62 | False 63 | 64 | 65 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyMotion.dll 66 | False 67 | 68 | 69 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.dll 70 | False 71 | 72 | 73 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll 74 | False 75 | 76 | 77 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 78 | False 79 | 80 | 81 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Posix.dll 82 | False 83 | 84 | 85 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 86 | False 87 | 88 | 89 | ../../../modlib/TheForest/TheForest_data/Managed/mscorlib.dll 90 | False 91 | 92 | 93 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.ClipperLib.dll 94 | False 95 | 96 | 97 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Ionic.Zip.Reduced.dll 98 | False 99 | 100 | 101 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.JsonFx.dll 102 | False 103 | 104 | 105 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Poly2Tri.dll 106 | False 107 | 108 | 109 | ../../../modlib/TheForest/TheForest_data/Managed/PlayMaker.dll 110 | False 111 | 112 | 113 | ../../../modlib/TheForest/TheForest_data/Managed/Rewired_Core.dll 114 | False 115 | 116 | 117 | ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll 118 | False 119 | 120 | 121 | ../../../modlib/TheForest/TheForest_data/Managed/System.Configuration.dll 122 | False 123 | 124 | 125 | ../../../modlib/TheForest/TheForest_data/Managed/System.Core.dll 126 | False 127 | 128 | 129 | ../../../modlib/TheForest/TheForest_data/Managed/System.dll 130 | False 131 | 132 | 133 | ../../../modlib/TheForest/TheForest_data/Managed/System.Security.dll 134 | False 135 | 136 | 137 | ../../../modlib/TheForest/TheForest_data/Managed/System.Xml.dll 138 | False 139 | 140 | 141 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.dll 142 | False 143 | 144 | 145 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Analytics.dll 146 | False 147 | 148 | 149 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Networking.dll 150 | False 151 | 152 | 153 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.UI.dll 154 | False 155 | 156 | 157 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 158 | False 159 | 160 | 161 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.dll 162 | False 163 | 164 | 165 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.common.dll 166 | False 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | -------------------------------------------------------------------------------- /CheatMenu/CheatMenu.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.21005.1 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheatMenu", "CheatMenu.csproj", "{53821041-E269-4717-BAED-3C9C6836E83F}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Release|x86 = Release|x86 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.ActiveCfg = Release|x86 13 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.Build.0 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(SolutionProperties) = preSolution 16 | HideSolutionNode = FALSE 17 | EndGlobalSection 18 | EndGlobal -------------------------------------------------------------------------------- /CheatMenu/CheatMenu.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/CheatMenu.v12.suo -------------------------------------------------------------------------------- /CheatMenu/CheatMenuComponent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | using System.Reflection; 7 | 8 | namespace CheatMenu 9 | { 10 | public class CheatMenuComponent : MonoBehaviour 11 | { 12 | protected bool visible = false; 13 | public static bool GodMode = false; 14 | public static float SpeedMultiplier = 1f; 15 | public static float JumpMultiplier = 1f; 16 | public static bool FlyMode = false; 17 | public static bool NoClip = false; 18 | public static float TimeSpeed = 0.13f; 19 | public static bool InstantTree = false; 20 | public static bool InstantBuild = false; 21 | public static float CaveLight = 0f; 22 | public static int ForceWeather = -1; 23 | public static bool FreezeWeather = false; 24 | 25 | protected float a = 2f; 26 | protected GUIStyle labelStyle; 27 | protected static bool Already = false; 28 | 29 | [ModAPI.Attributes.ExecuteOnGameStart] 30 | static void AddMeToScene() 31 | { 32 | GameObject GO = new GameObject("__CheatMenu__"); 33 | GO.AddComponent(); 34 | } 35 | 36 | protected int Tab = 0; 37 | 38 | private void OnGUI() 39 | { 40 | if (this.visible) 41 | { 42 | GUI.skin = ModAPI.GUI.Skin; 43 | 44 | Matrix4x4 bkpMatrix = GUI.matrix; 45 | 46 | if (labelStyle == null) 47 | { 48 | labelStyle = new GUIStyle(GUI.skin.label); 49 | labelStyle.fontSize = 12; 50 | } 51 | 52 | GUI.Box(new Rect(10, 10, 400, 430), "", GUI.skin.window); 53 | this.Tab = GUI.Toolbar(new Rect(10, 10, 400, 30), this.Tab, new GUIContent[] { new GUIContent("Cheats"), new GUIContent("Environment"), new GUIContent("Player"), new GUIContent("Other") }, GUI.skin.GetStyle("Tabs")); 54 | /*this.Tab = GUI.Toggle(new Rect(10, 10, 100, 30), this.Tab == 0, "Cheats", GUI.skin.button) ? 0 : this.Tab; 55 | this.Tab = GUI.Toggle(new Rect(110, 10, 100, 30), this.Tab == 1, "Environment", GUI.skin.button) ? 1 : this.Tab; 56 | this.Tab = GUI.Toggle(new Rect(210, 10, 100, 30), this.Tab == 2, "Player", GUI.skin.button) ? 2 : this.Tab; 57 | this.Tab = GUI.Toggle(new Rect(310, 10, 100, 30), this.Tab == 3, "Other", GUI.skin.button) ? 3 : this.Tab;*/ 58 | float cY = 50f; 59 | 60 | if (Tab == 0) 61 | { 62 | GUI.Label(new Rect(20f, cY, 150f, 20f), "God mode:", labelStyle); 63 | GodMode = GUI.Toggle(new Rect(170f, cY, 20f, 30f), GodMode, ""); 64 | cY += 30f; 65 | 66 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Flymode:", labelStyle); 67 | FlyMode = GUI.Toggle(new Rect(170f, cY, 20f, 30f), FlyMode, ""); 68 | cY += 30f; 69 | 70 | if (FlyMode) 71 | { 72 | GUI.Label(new Rect(20f, cY, 150f, 20f), "No clip:", labelStyle); 73 | NoClip = GUI.Toggle(new Rect(170f, cY, 20f, 30f), NoClip, ""); 74 | cY += 30f; 75 | } 76 | 77 | GUI.Label(new Rect(20f, cY, 150f, 20f), "InstaTree:", labelStyle); 78 | InstantTree = GUI.Toggle(new Rect(170f, cY, 20f, 30f), InstantTree, ""); 79 | cY += 30f; 80 | 81 | GUI.Label(new Rect(20f, cY, 150f, 20f), "InstaBuild:", labelStyle); 82 | InstantBuild = GUI.Toggle(new Rect(170f, cY, 20f, 30f), InstantBuild, ""); 83 | cY += 30f; 84 | 85 | GUI.Label(new Rect(20f, cY, 150f, 20f), "InstaKill:", labelStyle); 86 | InstaKill = GUI.Toggle(new Rect(170f, cY, 20f, 30f), InstaKill, ""); 87 | cY += 30f; 88 | 89 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Speed:", labelStyle); 90 | SpeedMultiplier = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 210f, 30f), SpeedMultiplier, 1f, 10f); 91 | cY += 30f; 92 | 93 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Jump power:", labelStyle); 94 | JumpMultiplier = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 210f, 30f), JumpMultiplier, 1f, 10f); 95 | cY += 30f; 96 | } 97 | 98 | if (Tab == 1) 99 | { 100 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Speed of time:", labelStyle); 101 | TheForestAtmosphere.Instance.RotationSpeed = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 210f, 30f), TheForestAtmosphere.Instance.RotationSpeed, 0f, 10f); 102 | cY += 30f; 103 | if (GUI.Button(new Rect(280f, cY, 100f, 20f), "Reset")) 104 | { 105 | TheForestAtmosphere.Instance.RotationSpeed = 0.13f; 106 | } 107 | cY += 30f; 108 | 109 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Time:", labelStyle); 110 | TheForestAtmosphere.Instance.TimeOfDay = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 210f, 30f), TheForestAtmosphere.Instance.TimeOfDay, 0f, 360f); 111 | cY += 30f; 112 | 113 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Cave light:", labelStyle); 114 | CaveLight = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 210f, 30f), CaveLight, 0f, 1f); 115 | cY += 30f; 116 | 117 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Weather", labelStyle); 118 | cY += 30f; 119 | 120 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Freeze:", labelStyle); 121 | FreezeWeather = GUI.Toggle(new Rect(170f, cY, 20f, 30f), FreezeWeather, ""); 122 | cY += 30f; 123 | 124 | if (GUI.Button(new Rect(20f, cY, 180f, 20f), "Clear Weather")) 125 | { 126 | ForceWeather = 0; 127 | } 128 | cY += 30f; 129 | 130 | if (GUI.Button(new Rect(20f, cY, 180f, 20f), "Cloudy")) 131 | { 132 | ForceWeather = 4; 133 | } 134 | cY += 30f; 135 | 136 | if (GUI.Button(new Rect(20f, cY, 180f, 20f), "Light rain")) 137 | { 138 | ForceWeather = 1; 139 | } 140 | cY += 30f; 141 | 142 | if (GUI.Button(new Rect(20f, cY, 180f, 20f), "Medium rain")) 143 | { 144 | ForceWeather = 2; 145 | } 146 | cY += 30f; 147 | 148 | if (GUI.Button(new Rect(20f, cY, 180f, 20f), "Heavy rain")) 149 | { 150 | ForceWeather = 3; 151 | } 152 | cY += 30f; 153 | } 154 | 155 | if (Tab == 2) 156 | { 157 | GUI.Label(new Rect(370f, cY, 150f, 20f), "Fix", labelStyle); 158 | cY += 30f; 159 | 160 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Health:", labelStyle); 161 | if (!FixHealth) 162 | TheForest.Utils.LocalPlayer.Stats.Health = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.Health, 0f, 100f); 163 | else 164 | FixedHealth = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedHealth, 0f, 100f); 165 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.Health * 10) / 10f) + ""); 166 | FixHealth = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixHealth, ""); 167 | if (FixHealth) 168 | { 169 | if (FixedHealth == -1f) 170 | FixedHealth = TheForest.Utils.LocalPlayer.Stats.Health; 171 | } 172 | else 173 | { 174 | FixedHealth = -1f; 175 | } 176 | cY += 30f; 177 | 178 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Battery charge:", labelStyle); 179 | if (!FixBatteryCharge) 180 | TheForest.Utils.LocalPlayer.Stats.BatteryCharge = (int)GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.BatteryCharge, 0f, 100f); 181 | else 182 | FixedBatteryCharge = (int)GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedBatteryCharge, 0f, 100f); 183 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.BatteryCharge * 10) / 10f) + ""); 184 | FixBatteryCharge = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixBatteryCharge, ""); 185 | if (FixBatteryCharge) 186 | { 187 | if (FixedBatteryCharge == -1f) 188 | FixedBatteryCharge = TheForest.Utils.LocalPlayer.Stats.BatteryCharge; 189 | } 190 | else 191 | { 192 | FixedBatteryCharge = -1f; 193 | } 194 | cY += 30f; 195 | 196 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Fullness:", labelStyle); 197 | if (!FixFullness) 198 | TheForest.Utils.LocalPlayer.Stats.Fullness = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.Fullness, 0f, 1f); 199 | else 200 | FixedFullness = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedFullness, 0f, 1f); 201 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.Fullness * 10) / 10f) + ""); 202 | FixFullness = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixFullness, ""); 203 | if (FixFullness) 204 | { 205 | if (FixedFullness == -1f) 206 | FixedFullness = TheForest.Utils.LocalPlayer.Stats.Fullness; 207 | } 208 | else 209 | { 210 | FixedFullness = -1f; 211 | } 212 | cY += 30f; 213 | 214 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Stamina:", labelStyle); 215 | if (!FixStamina) 216 | TheForest.Utils.LocalPlayer.Stats.Stamina = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.Stamina, 0f, 100f); 217 | else 218 | FixedStamina = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedStamina, 0f, 100f); 219 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.Stamina * 10) / 10f) + ""); 220 | FixStamina = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixStamina, ""); 221 | if (FixStamina) 222 | { 223 | if (FixedStamina == -1f) 224 | FixedStamina = TheForest.Utils.LocalPlayer.Stats.Stamina; 225 | } 226 | else 227 | { 228 | FixedStamina = -1f; 229 | } 230 | cY += 30f; 231 | 232 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Energy:", labelStyle); 233 | if (!FixEnergy) 234 | TheForest.Utils.LocalPlayer.Stats.Energy = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.Energy, 0f, 100f); 235 | else 236 | FixedEnergy = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedEnergy, 0f, 100f); 237 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.Energy * 10) / 10f) + ""); 238 | FixEnergy = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixEnergy, ""); 239 | if (FixEnergy) 240 | { 241 | if (FixedEnergy == -1f) 242 | FixedEnergy = TheForest.Utils.LocalPlayer.Stats.Energy; 243 | } 244 | else 245 | { 246 | FixedEnergy = -1f; 247 | } 248 | cY += 30f; 249 | 250 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Thirst:", labelStyle); 251 | if (!FixThirst) 252 | TheForest.Utils.LocalPlayer.Stats.Thirst = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.Thirst, 0f, 1f); 253 | else 254 | FixedThirst = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedThirst, 0f, 1f); 255 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.Thirst * 10) / 10f) + ""); 256 | FixThirst = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixThirst, ""); 257 | if (FixThirst) 258 | { 259 | if (FixedThirst == -1f) 260 | FixedThirst = TheForest.Utils.LocalPlayer.Stats.Thirst; 261 | } 262 | else 263 | { 264 | FixedThirst = -1f; 265 | } 266 | cY += 30f; 267 | 268 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Starvation:", labelStyle); 269 | if (!FixStarvation) 270 | TheForest.Utils.LocalPlayer.Stats.Starvation = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.Starvation, 0f, 1f); 271 | else 272 | FixedStarvation = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedStarvation, 0f, 1f); 273 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.Starvation * 10) / 10f) + ""); 274 | FixStarvation = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixStarvation, ""); 275 | if (FixStarvation) 276 | { 277 | if (FixedStarvation == -1f) 278 | FixedStarvation = TheForest.Utils.LocalPlayer.Stats.Starvation; 279 | } 280 | else 281 | { 282 | FixedStarvation = -1f; 283 | } 284 | cY += 30f; 285 | 286 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Body Temp:", labelStyle); 287 | if (!FixBodyTemp) 288 | TheForest.Utils.LocalPlayer.Stats.BodyTemp = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), TheForest.Utils.LocalPlayer.Stats.BodyTemp, 10f, 60f); 289 | else 290 | FixedBodyTemp = GUI.HorizontalSlider(new Rect(170f, cY + 3f, 160f, 30f), FixedBodyTemp, 10f, 60f); 291 | GUI.Label(new Rect(340f, cY, 40f, 20f), (Mathf.RoundToInt(TheForest.Utils.LocalPlayer.Stats.BodyTemp * 10) / 10f) + ""); 292 | FixBodyTemp = GUI.Toggle(new Rect(370f, cY, 20f, 20f), FixBodyTemp, ""); 293 | if (FixBodyTemp) 294 | { 295 | if (FixedBodyTemp == -1f) 296 | FixedBodyTemp = TheForest.Utils.LocalPlayer.Stats.BodyTemp; 297 | } 298 | else 299 | { 300 | FixedBodyTemp = -1f; 301 | } 302 | cY += 30f; 303 | 304 | } 305 | 306 | if (Tab == 3) 307 | { 308 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Free cam:", labelStyle); 309 | FreeCam = GUI.Toggle(new Rect(170f, cY, 20f, 30f), FreeCam, ""); 310 | cY += 30f; 311 | 312 | GUI.Label(new Rect(20f, cY, 150f, 20f), "Freeze time:", labelStyle); 313 | FreezeTime = GUI.Toggle(new Rect(170f, cY, 20f, 30f), FreezeTime, ""); 314 | cY += 30f; 315 | GUI.matrix = bkpMatrix; 316 | } 317 | } 318 | } 319 | 320 | public static bool InstaKill = false; 321 | 322 | protected static bool FixHealth = false; 323 | protected static bool FixBatteryCharge = false; 324 | protected static bool FixFullness = false; 325 | protected static bool FixStamina = false; 326 | protected static bool FixEnergy = false; 327 | protected static bool FixThirst = false; 328 | protected static bool FixStarvation = false; 329 | protected static bool FixBodyTemp = false; 330 | 331 | protected static float FixedHealth = -1f; 332 | protected static float FixedBatteryCharge = -1f; 333 | protected static float FixedFullness = -1f; 334 | protected static float FixedStamina = -1f; 335 | protected static float FixedEnergy = -1f; 336 | protected static float FixedThirst = -1f; 337 | protected static float FixedStarvation = -1f; 338 | protected static float FixedBodyTemp = -1f; 339 | 340 | public static bool FreeCam = false; 341 | public static bool FreezeTime = false; 342 | 343 | protected GameObject Sphere; 344 | void Start() 345 | { 346 | GameObject go = GameObject.CreatePrimitive(PrimitiveType.Sphere); 347 | MeshFilter mf = go.GetComponent(); 348 | Mesh mesh = mf.sharedMesh; 349 | 350 | GameObject goNew = new GameObject(); 351 | goNew.name = "Inverted Sphere"; 352 | MeshFilter mfNew = goNew.AddComponent(); 353 | mfNew.sharedMesh = new Mesh(); 354 | 355 | //Scale the vertices; 356 | Vector3[] vertices = mesh.vertices; 357 | for (int i = 0; i < vertices.Length; i++) 358 | vertices[i] = vertices[i]; 359 | mfNew.sharedMesh.vertices = vertices; 360 | 361 | // Reverse the triangles 362 | int[] triangles = mesh.triangles; 363 | for (int i = 0; i < triangles.Length; i += 3) 364 | { 365 | int t = triangles[i]; 366 | triangles[i] = triangles[i + 2]; 367 | triangles[i + 2] = t; 368 | } 369 | mfNew.sharedMesh.triangles = triangles; 370 | 371 | // Reverse the normals; 372 | Vector3[] normals = mesh.normals; 373 | for (int i = 0; i < normals.Length; i++) 374 | normals[i] = -normals[i]; 375 | mfNew.sharedMesh.normals = normals; 376 | 377 | 378 | mfNew.sharedMesh.uv = mesh.uv; 379 | mfNew.sharedMesh.uv2 = mesh.uv2; 380 | mfNew.sharedMesh.RecalculateBounds(); 381 | 382 | 383 | DestroyImmediate(go); 384 | 385 | this.Sphere = goNew; 386 | this.Sphere.AddComponent(); 387 | Sphere.GetComponent().material = new Material(Shader.Find("Legacy Shaders/Transparent/Diffuse")); 388 | Sphere.GetComponent().material.SetColor("_Color", new Color(1f, 0f, 0f, 0.9f)); 389 | Sphere.GetComponent().enabled = false; 390 | Sphere.GetComponent().enabled = false; 391 | } 392 | 393 | protected float massTreeRadius = 10f; 394 | protected bool DestroyTree = false; 395 | protected bool LastFreezeTime = false; 396 | protected bool LastFreeCam = false; 397 | protected float rotationY = 0f; 398 | 399 | private void Update() 400 | { 401 | if (FreezeTime && !LastFreezeTime) 402 | { 403 | UnityEngine.Time.timeScale = 0f; 404 | LastFreezeTime = true; 405 | } 406 | if (!FreezeTime && LastFreezeTime) 407 | { 408 | UnityEngine.Time.timeScale = 1f; 409 | LastFreezeTime = false; 410 | } 411 | 412 | if (FreeCam && !LastFreeCam) 413 | { 414 | TheForest.Utils.LocalPlayer.CamFollowHead.enabled = false; 415 | TheForest.Utils.LocalPlayer.CamRotator.enabled = false; 416 | TheForest.Utils.LocalPlayer.MainRotator.enabled = false; 417 | TheForest.Utils.LocalPlayer.FpCharacter.enabled = false; 418 | LastFreeCam = true; 419 | } 420 | if (!FreeCam && LastFreeCam) 421 | { 422 | TheForest.Utils.LocalPlayer.CamFollowHead.enabled = true; 423 | TheForest.Utils.LocalPlayer.CamRotator.enabled = true; 424 | TheForest.Utils.LocalPlayer.MainRotator.enabled = true; 425 | TheForest.Utils.LocalPlayer.FpCharacter.enabled = true; 426 | LastFreeCam = false; 427 | } 428 | 429 | if (FreeCam) 430 | { 431 | bool button1 = TheForest.Utils.Input.GetButton("Crouch"); 432 | bool button2 = TheForest.Utils.Input.GetButton("Run"); 433 | bool button3 = TheForest.Utils.Input.GetButton("Jump"); 434 | float multiplier = 0.1f; 435 | if (button2) multiplier = 2f; 436 | 437 | Vector3 vector3 = Camera.main.transform.rotation * ( 438 | new Vector3(TheForest.Utils.Input.GetAxis("Horizontal"), 439 | 0f, 440 | TheForest.Utils.Input.GetAxis("Vertical") 441 | ) * multiplier); 442 | if (button3) vector3.y += multiplier; 443 | if (button1) vector3.y -= multiplier; 444 | Camera.main.transform.position += vector3; 445 | 446 | float rotationX = Camera.main.transform.localEulerAngles.y + TheForest.Utils.Input.GetAxis("Mouse X") * 15f; 447 | rotationY += TheForest.Utils.Input.GetAxis("Mouse Y") * 15f; 448 | rotationY = Mathf.Clamp(rotationY, -80f, 80f); 449 | Camera.main.transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0); 450 | } 451 | 452 | if (ModAPI.Input.GetButtonDown("FreezeTime")) 453 | { 454 | FreezeTime = !FreezeTime; 455 | } 456 | 457 | if (ModAPI.Input.GetButtonDown("FreeCam")) 458 | { 459 | FreeCam = !FreeCam; 460 | } 461 | if (ModAPI.Input.GetButton("MassTree")) 462 | { 463 | if (Input.mouseScrollDelta != Vector2.zero) 464 | { 465 | massTreeRadius = Mathf.Clamp(massTreeRadius + Input.mouseScrollDelta.y, 20f, 100f); 466 | } 467 | Sphere.GetComponent().enabled = true; 468 | Sphere.transform.position = TheForest.Utils.LocalPlayer.Transform.position; 469 | Sphere.transform.localScale = new Vector3(massTreeRadius * 2f, massTreeRadius * 2f, massTreeRadius * 2f); 470 | DestroyTree = true; 471 | } 472 | else 473 | { 474 | if (DestroyTree) 475 | { 476 | RaycastHit[] hits = Physics.SphereCastAll(Sphere.transform.position, massTreeRadius, new Vector3(1f, 0f, 0f)); 477 | foreach (RaycastHit hit in hits) 478 | { 479 | TreeHealth h = hit.collider.GetComponent(); 480 | if (h != null) 481 | { 482 | hit.collider.gameObject.SendMessage("Explosion", 100f); 483 | } 484 | } 485 | DestroyTree = false; 486 | } 487 | Sphere.GetComponent().enabled = false; 488 | } 489 | if (FixBodyTemp) 490 | TheForest.Utils.LocalPlayer.Stats.BodyTemp = FixedBodyTemp; 491 | if (FixBatteryCharge) 492 | TheForest.Utils.LocalPlayer.Stats.BatteryCharge = FixedBatteryCharge; 493 | if (FixEnergy) 494 | TheForest.Utils.LocalPlayer.Stats.Energy = FixedEnergy; 495 | if (FixHealth) 496 | TheForest.Utils.LocalPlayer.Stats.Health = FixedHealth; 497 | if (FixStamina) 498 | TheForest.Utils.LocalPlayer.Stats.Stamina = FixedStamina; 499 | if (FixFullness) 500 | TheForest.Utils.LocalPlayer.Stats.Fullness = FixedFullness; 501 | if (FixStarvation) 502 | TheForest.Utils.LocalPlayer.Stats.Starvation = FixedStarvation; 503 | if (FixThirst) 504 | TheForest.Utils.LocalPlayer.Stats.Thirst = FixedThirst; 505 | if (ModAPI.Input.GetButtonDown("OpenMenu")) 506 | //if (ModAPI.Input.GetButtonDown("Open")) 507 | { 508 | if (this.visible) 509 | { 510 | TheForest.Utils.LocalPlayer.FpCharacter.UnLockView(); 511 | //Screen.lockCursor = false; 512 | } 513 | else 514 | { 515 | TheForest.Utils.LocalPlayer.FpCharacter.LockView(); 516 | } 517 | this.visible = !this.visible; 518 | } 519 | 520 | } 521 | } 522 | } -------------------------------------------------------------------------------- /CheatMenu/FPController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | namespace CheatMenu 8 | { 9 | class FPController : FirstPersonCharacter 10 | { 11 | protected float baseWalkSpeed; 12 | protected float baseRunSpeed; 13 | protected float baseJumpHeight; 14 | protected float baseCrouchSpeed; 15 | protected float baseStrafeSpeed; 16 | protected float baseSwimmingSpeed; 17 | protected float baseGravity; 18 | protected float baseMaxVelocityChange; 19 | protected float baseMaximumVelocity; 20 | protected float baseMaxSwimVelocity; 21 | 22 | 23 | protected void BaseValues() 24 | { 25 | this.baseMaxSwimVelocity = this.maxSwimVelocity; 26 | this.baseWalkSpeed = this.walkSpeed; 27 | this.baseRunSpeed = this.runSpeed; 28 | this.baseJumpHeight = this.jumpHeight; 29 | this.baseCrouchSpeed = this.crouchSpeed; 30 | this.baseStrafeSpeed = this.strafeSpeed; 31 | this.baseSwimmingSpeed = this.swimmingSpeed; 32 | this.baseMaxVelocityChange = maxVelocityChange; 33 | this.baseMaximumVelocity = maximumVelocity; 34 | this.baseGravity = this.gravity; 35 | } 36 | 37 | protected Collider[] AllChildColliders; 38 | protected Collider[] AllColliders; 39 | 40 | protected override void Start() 41 | { 42 | this.AllChildColliders = gameObject.GetComponentsInChildren(); 43 | this.AllColliders = gameObject.GetComponents(); 44 | base.Start(); 45 | BaseValues(); 46 | } 47 | 48 | protected bool LastNoClip = false; 49 | protected bool LastFlyMode = false; 50 | 51 | protected override void FixedUpdate() 52 | { 53 | this.walkSpeed = baseWalkSpeed * CheatMenuComponent.SpeedMultiplier; 54 | this.runSpeed = baseRunSpeed * CheatMenuComponent.SpeedMultiplier; 55 | this.jumpHeight = baseJumpHeight * CheatMenuComponent.JumpMultiplier; 56 | this.crouchSpeed = baseCrouchSpeed * CheatMenuComponent.SpeedMultiplier; 57 | this.strafeSpeed = baseStrafeSpeed * CheatMenuComponent.SpeedMultiplier; 58 | this.swimmingSpeed = baseSwimmingSpeed * CheatMenuComponent.SpeedMultiplier; 59 | this.maxSwimVelocity = baseMaxSwimVelocity * CheatMenuComponent.SpeedMultiplier; 60 | 61 | if (!CheatMenuComponent.FreeCam) 62 | { 63 | if (CheatMenuComponent.FlyMode && !PushingSled) 64 | { 65 | this.rb.useGravity = false; 66 | if (CheatMenuComponent.NoClip) 67 | { 68 | if (!LastNoClip) 69 | { 70 | for (int i = 0; i < AllColliders.Length; i++) 71 | AllColliders[i].enabled = false; 72 | for (int i = 0; i < AllChildColliders.Length; i++) 73 | AllChildColliders[i].enabled = false; 74 | LastNoClip = true; 75 | } 76 | } 77 | else 78 | { 79 | if (LastNoClip) 80 | { 81 | for (int i = 0; i < AllColliders.Length; i++) 82 | AllColliders[i].enabled = true; 83 | for (int i = 0; i < AllChildColliders.Length; i++) 84 | AllChildColliders[i].enabled = true; 85 | LastNoClip = false; 86 | } 87 | } 88 | 89 | bool button1 = TheForest.Utils.Input.GetButton("Crouch"); 90 | bool button2 = TheForest.Utils.Input.GetButton("Run"); 91 | bool button3 = TheForest.Utils.Input.GetButton("Jump"); 92 | float multiplier = baseWalkSpeed; 93 | this.gravity = 0f; 94 | if (button2) multiplier = baseRunSpeed; 95 | 96 | Vector3 vector3 = Camera.main.transform.rotation * ( 97 | new Vector3(TheForest.Utils.Input.GetAxis("Horizontal"), 98 | 0f, 99 | TheForest.Utils.Input.GetAxis("Vertical") 100 | ) * multiplier * CheatMenuComponent.SpeedMultiplier); 101 | Vector3 velocity = this.rb.velocity; 102 | if (button3) velocity.y -= multiplier * CheatMenuComponent.SpeedMultiplier; 103 | if (button1) velocity.y += multiplier * CheatMenuComponent.SpeedMultiplier; 104 | Vector3 force = vector3 - velocity; 105 | this.rb.AddForce(force, ForceMode.VelocityChange); 106 | LastFlyMode = true; 107 | } 108 | else 109 | { 110 | if (LastFlyMode) 111 | { 112 | if (!this.IsInWater()) 113 | this.rb.useGravity = true; 114 | this.gravity = baseGravity; 115 | if (LastNoClip) 116 | { 117 | for (int i = 0; i < AllColliders.Length; i++) 118 | AllColliders[i].enabled = true; 119 | for (int i = 0; i < AllChildColliders.Length; i++) 120 | AllChildColliders[i].enabled = true; 121 | LastNoClip = false; 122 | } 123 | LastFlyMode = false; 124 | } 125 | base.FixedUpdate(); 126 | } 127 | } 128 | } 129 | } 130 | } -------------------------------------------------------------------------------- /CheatMenu/Mod/CheatMenu.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/Mod/CheatMenu.dll -------------------------------------------------------------------------------- /CheatMenu/Mod/CheatMenu.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/Mod/CheatMenu.pdb -------------------------------------------------------------------------------- /CheatMenu/ModInfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 0.28c 3 | 13 | 23 | 33 | 43 | 53 | 54 | Cheatmenu 55 | Cheatmenü 56 | 57 | 58 | This mod grants you superpowers and some other nice features like instant build or instant tree cutting. 59 | Dieser Mod verleiht dir Superkräfte und einige weitere nützliche Möglichkeiten wie Sofortbau oder schnelles Bäume fällen. 60 | 61 | 0.1.4 62 | -------------------------------------------------------------------------------- /CheatMenu/NewEnemyHealth.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace CheatMenu 7 | { 8 | class NewEnemyHealth : EnemyHealth 9 | { 10 | protected override void Hit(int damage) 11 | { 12 | if (CheatMenuComponent.InstaKill) 13 | base.Hit(damage * 1000000); 14 | else 15 | base.Hit(damage); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /CheatMenu/NewWeatherSystem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace CheatMenu 7 | { 8 | public class NewWeatherSystem : TheForest.World.WeatherSystem 9 | { 10 | protected float ResetCloudTime = 0f; 11 | 12 | protected override void TryRain() 13 | { 14 | if (CheatMenuComponent.FreezeWeather) 15 | { 16 | return; 17 | } 18 | base.TryRain(); 19 | } 20 | 21 | protected override void Update() 22 | { 23 | if (ResetCloudTime > 0f) 24 | { 25 | ResetCloudTime -= UnityEngine.Time.deltaTime; 26 | if (ResetCloudTime <= 0f) 27 | { 28 | CloudSmoothTime = 20f; 29 | } 30 | } 31 | if (CheatMenuComponent.ForceWeather >= 0) 32 | { 33 | TheForest.Utils.Scene.RainFollowGO.SetActive(false); 34 | TheForest.Utils.Scene.RainTypes.RainHeavy.SetActive(false); 35 | TheForest.Utils.Scene.RainTypes.RainMedium.SetActive(false); 36 | TheForest.Utils.Scene.RainTypes.RainLight.SetActive(false); 37 | TheForest.Utils.Scene.Clock.AfterStorm.SetActive(false); 38 | if (CheatMenuComponent.ForceWeather == 0) 39 | { 40 | this.Raining = true; 41 | this.RainDice = 1; 42 | this.RainDiceStop = 2; 43 | this.TryRain(); 44 | CloudSmoothTime = 1f; 45 | ResetCloudTime = 2f; 46 | } 47 | if (CheatMenuComponent.ForceWeather == 1) 48 | { 49 | this.Raining = false; 50 | this.RainDice = 2; 51 | this.RainDiceStop = 1; 52 | this.TryRain(); 53 | CloudSmoothTime = 1f; 54 | ResetCloudTime = 2f; 55 | } 56 | if (CheatMenuComponent.ForceWeather == 2) 57 | { 58 | this.Raining = false; 59 | this.RainDice = 3; 60 | this.RainDiceStop = 1; 61 | this.TryRain(); 62 | CloudSmoothTime = 1f; 63 | ResetCloudTime = 2f; 64 | } 65 | if (CheatMenuComponent.ForceWeather == 3) 66 | { 67 | this.Raining = false; 68 | this.RainDice = 4; 69 | this.RainDiceStop = 1; 70 | this.TryRain(); 71 | CloudSmoothTime = 1f; 72 | ResetCloudTime = 2f; 73 | } 74 | if (CheatMenuComponent.ForceWeather == 4) 75 | { 76 | this.Raining = false; 77 | this.RainDice = 5; 78 | this.RainDiceStop = 1; 79 | this.TryRain(); 80 | CloudSmoothTime = 1f; 81 | ResetCloudTime = 2f; 82 | } 83 | CheatMenuComponent.ForceWeather = -1; 84 | } 85 | base.Update(); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /CheatMenu/Stats.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace CheatMenu 7 | { 8 | class Stats : PlayerStats 9 | { 10 | 11 | [ModAPI.Attributes.Priority(1000)] 12 | protected override void hitFallDown() 13 | { 14 | if (!CheatMenuComponent.GodMode) 15 | base.hitFallDown(); 16 | } 17 | 18 | [ModAPI.Attributes.Priority(1000)] 19 | protected override void HitFire() 20 | { 21 | if (!CheatMenuComponent.GodMode) 22 | base.HitFire(); 23 | } 24 | 25 | 26 | [ModAPI.Attributes.Priority(1000)] 27 | public override void hitFromEnemy(int getDamage) 28 | { 29 | if (!CheatMenuComponent.GodMode) 30 | base.hitFromEnemy(getDamage); 31 | } 32 | 33 | [ModAPI.Attributes.Priority(1000)] 34 | public override void HitShark(int damage) 35 | { 36 | if (!CheatMenuComponent.GodMode) 37 | base.HitShark(damage); 38 | } 39 | 40 | [ModAPI.Attributes.Priority(1000)] 41 | protected override void FallDownDead() 42 | { 43 | if (!CheatMenuComponent.GodMode) 44 | base.FallDownDead(); 45 | } 46 | 47 | [ModAPI.Attributes.Priority(1000)] 48 | protected override void Fell() 49 | { 50 | if (!CheatMenuComponent.GodMode) 51 | base.Fell(); 52 | } 53 | 54 | [ModAPI.Attributes.Priority(1000)] 55 | protected override void HitFromPlayMaker(int damage) 56 | { 57 | if (!CheatMenuComponent.GodMode) 58 | base.HitFromPlayMaker(damage); 59 | } 60 | 61 | protected override void Update() 62 | { 63 | if (CheatMenuComponent.GodMode) 64 | { 65 | this.IsBloody = false; 66 | this.FireWarmth = true; 67 | this.SunWarmth = true; 68 | this.IsCold = false; 69 | this.Health = 100f; 70 | this.Armor = 400; 71 | this.Fullness = 1f; 72 | this.Stamina = 100f; 73 | this.Energy = 100f; 74 | this.Hunger = 0; 75 | this.Thirst = 0; 76 | this.Starvation = 0; 77 | } 78 | base.Update(); 79 | } 80 | 81 | protected override void KillPlayer() 82 | { 83 | if (!CheatMenuComponent.GodMode) 84 | base.KillPlayer(); 85 | } 86 | 87 | public override void HitFood() 88 | { 89 | if (!CheatMenuComponent.GodMode) 90 | base.HitFood(); 91 | } 92 | 93 | public override void HitFoodDelayed(int damage) 94 | { 95 | if (!CheatMenuComponent.GodMode) 96 | base.HitFoodDelayed(damage); 97 | } 98 | } 99 | } -------------------------------------------------------------------------------- /CheatMenu/THealth.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | namespace CheatMenu 8 | { 9 | class THealth : TreeHealth 10 | { 11 | protected override void Hit() 12 | { 13 | if (CheatMenuComponent.InstantTree) 14 | { 15 | this.Explosion(100f); 16 | } 17 | else 18 | { 19 | base.Hit(); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /CheatMenu/entryAdd.tpl: -------------------------------------------------------------------------------- 1 | {include file='documentHeader'} 2 | 3 | 4 | {lang}wsif.entry.{@$action}{/lang} - {$category->title|language} - {PAGE_TITLE|language} 5 | 6 | {include file='headInclude'} 7 | 8 | 30 | 31 | 32 | 33 | {include file='header'} 34 | 35 |
36 |

{lang}wsif.entry.{@$action}{/lang}

37 |
38 | 39 | {include file='userNotice'} 40 | 41 | {if !$category->getPermission('user.canAddEntryWithoutModeration')} 42 |

{lang}wsif.entry.moderation.info{/lang}

43 | {/if} 44 | 45 | {include file='formError'} 46 | 47 |
48 |
49 | {if $action == 'edit' && $entry->canDelete() && !$entry->isDeleted} 50 |
51 | {lang}wsif.entry.delete{/lang} 52 | 53 |
54 |
55 |
56 |
57 | 58 |
59 |
60 |
61 | 62 | {if $errorField == 'deleteReason'} 63 | 64 | {if $errorType == 'censoredWordsFound'} 65 | {lang}wcf.message.error.censoredWordsFound{/lang} 66 | {else} 67 | {lang}wsif.entry.deleteReason.error.{@$errorType}{/lang} 68 | {/if} 69 | 70 | {/if} 71 |
72 |
73 |
74 | 75 | 88 | {/if} 89 | 90 |
91 | {lang}wsif.entry.information{/lang} 92 | 93 | {if !$__wcf->user->userID} 94 | 95 |
96 |
97 | 98 | {if $errorField == 'username'} 99 | 100 | {if $errorType == 'empty'} 101 | {lang}wcf.global.form.error.empty{/lang} 102 | {else} 103 | {lang}wcf.user.username.error.{@$errorType}{/lang} 104 | {/if} 105 | 106 | {/if} 107 |
108 | 109 | {/if} 110 | 111 | {include file='messageFormMultilingualism'} 112 | 113 | {if $labelGroups|count} 114 | {hascontent} 115 |
116 |
117 |
118 |
    119 | {content} 120 | {foreach from=$labelGroups item=labelGroup} 121 | {if $labelGroup|count} 122 | 132 | {/if} 133 | {/foreach} 134 | {/content} 135 |
136 | {if $errorField == 'labelIDs'} 137 | {lang}wcf.label.error.notValid{/lang} 138 | {/if} 139 |
140 |
141 | {/hascontent} 142 | {/if} 143 | 144 | 145 |
146 |
147 | 148 | {if $errorField == 'subject'} 149 | 150 | {if $errorType == 'empty'} 151 | {lang}wcf.global.form.error.empty{/lang} 152 | {elseif $errorType == 'censoredWordsFound'} 153 | {lang}wcf.message.error.censoredWordsFound{/lang} 154 | {else} 155 | {lang}wsif.entry.subject.error.{@$errorType}{/lang} 156 | {/if} 157 | 158 | {/if} 159 |
160 | 161 | 162 | 163 |
164 |
165 | 166 | {lang}wsif.entry.teaser.description{/lang} 167 | {if $errorField == 'teaser'} 168 | 169 | {if $errorType == 'empty'} 170 | {lang}wcf.global.form.error.empty{/lang} 171 | {else} 172 | {lang}wsif.entry.teaser.error.{@$errorType}{/lang} 173 | {/if} 174 | 175 | {/if} 176 |
177 | 178 | 179 | {if MODULE_TAGGING && WSIF_ENTRY_ENABLE_TAGS && $category->getPermission('user.canSetTags')}{include file='tagInput'}{/if} 180 | 181 | {if ($action == 'add' || $entry->isDisabled) && $category->getPermission('mod.canEnableEntry')} 182 | {if $action == 'add'} 183 |
184 |
185 |
186 | 187 |
188 |
189 | {/if} 190 | 191 |
211 | 212 | {hascontent} 213 |
214 | {lang}wsif.entry.additionalInformation{/lang} 215 | 216 | {content} 217 | {foreach from=$fields key='fieldID' item='field'} 218 | fieldID} class="formError"{/if}> 219 |
220 |
221 | required} required="required"{/if} maxlength="255" class="long" /> 222 | {if $errorField == 'field' && $errorType.fieldID == $field->fieldID} 223 | 224 | {if $errorType.errorType == 'empty'} 225 | {lang}wcf.global.form.error.empty{/lang} 226 | {else} 227 | {lang}wsif.entry.field.error.{@$errorType.errorType}{/lang} 228 | {/if} 229 | 230 | {/if} 231 |
232 | 233 | {/foreach} 234 | 235 | {event name='additionalInformationFields'} 236 | {/content} 237 |
238 | {/hascontent} 239 | 240 |
241 | {lang}wsif.entry.contents{/lang} 242 | 243 |
244 | 251 | 252 | {include file='entryAddFiles' application='wsif'} 253 | {include file='entryAddImages' application='wsif'} 254 | 255 | {event name='tabMenuContents'} 256 |
257 |
258 | 259 | 266 | 267 | {include file='captcha'} 268 | 269 |
270 | {lang}wsif.entry.message{/lang} 271 | 272 |
273 |
274 |
275 | 276 | {if $errorField == 'text'} 277 | 278 | {if $errorType == 'empty'} 279 | {lang}wcf.global.form.error.empty{/lang} 280 | {elseif $errorType == 'tooLong'} 281 | {lang}wcf.message.error.tooLong{/lang} 282 | {elseif $errorType == 'censoredWordsFound'} 283 | {lang}wcf.message.error.censoredWordsFound{/lang} 284 | {elseif $errorType == 'disallowedBBCodes'} 285 | {lang}wcf.message.error.disallowedBBCodes{/lang} 286 | {else} 287 | {lang}wsif.entry.message.error.{@$errorType}{/lang} 288 | {/if} 289 | 290 | {/if} 291 |
292 |
293 | 294 | {event name='messageFields'} 295 |
296 | 297 | {include file='messageFormTabs' wysiwygContainerID='text'} 298 | 299 | {event name='fieldsets'} 300 |
301 | 302 |
303 | 304 | 305 | {include file='messageFormPreviewButton'} 306 | {@SECURITY_TOKEN_INPUT_TAG} 307 |
308 |
309 | 310 | {include file='footer'} 311 | {include file='wysiwyg'} 312 | 313 | 314 | -------------------------------------------------------------------------------- /CheatMenu/obj/x86/Release/CheatMenu.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.csprojResolveAssemblyReference.cache 2 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\CheatMenu\Mod\CheatMenu.dll 3 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\CheatMenu\Mod\CheatMenu.pdb 4 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.dll 5 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.pdb 6 | E:\ModAPI\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.csprojResolveAssemblyReference.cache 7 | E:\ModAPI\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.dll 8 | E:\ModAPI\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.pdb 9 | E:\ModAPI\projects\TheForest\CheatMenu\Mod\CheatMenu.dll 10 | E:\ModAPI\projects\TheForest\CheatMenu\Mod\CheatMenu.pdb 11 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\CheatMenu\Mod\CheatMenu.dll 12 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\CheatMenu\Mod\CheatMenu.pdb 13 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.csprojResolveAssemblyReference.cache 14 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.dll 15 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.pdb 16 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.csprojResolveAssemblyReference.cache 17 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.dll 18 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\CheatMenu\obj\x86\Release\CheatMenu.pdb 19 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\CheatMenu\Mod\CheatMenu.dll 20 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\CheatMenu\Mod\CheatMenu.pdb 21 | -------------------------------------------------------------------------------- /CheatMenu/obj/x86/Release/CheatMenu.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/obj/x86/Release/CheatMenu.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /CheatMenu/obj/x86/Release/CheatMenu.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/obj/x86/Release/CheatMenu.dll -------------------------------------------------------------------------------- /CheatMenu/obj/x86/Release/CheatMenu.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/obj/x86/Release/CheatMenu.pdb -------------------------------------------------------------------------------- /CheatMenu/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/CheatMenu/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /DevPicker/.vs/DevPicker/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/DevPicker/.vs/DevPicker/v14/.suo -------------------------------------------------------------------------------- /DevPicker/DevPicker.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Release 6 | x86 7 | {53821041-E269-4717-BAED-3C9C6836E83F} 8 | Library 9 | Properties 10 | DevPicker 11 | DevPicker 12 | v3.5 13 | 512 14 | 15 | 16 | 17 | pdbonly 18 | true 19 | Mod\ 20 | TRACE 21 | prompt 22 | 4 23 | 24 | 25 | 26 | 27 | 28 | 29 | ../../../libs/BaseModLib.dll 30 | False 31 | 32 | 33 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp-firstpass.dll 34 | False 35 | 36 | 37 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp.dll 38 | False 39 | 40 | 41 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript-firstpass.dll 42 | False 43 | 44 | 45 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript.dll 46 | False 47 | 48 | 49 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 50 | False 51 | 52 | 53 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 54 | False 55 | 56 | 57 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 58 | False 59 | 60 | 61 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyColor.dll 62 | False 63 | 64 | 65 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyMotion.dll 66 | False 67 | 68 | 69 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.dll 70 | False 71 | 72 | 73 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll 74 | False 75 | 76 | 77 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 78 | False 79 | 80 | 81 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Posix.dll 82 | False 83 | 84 | 85 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 86 | False 87 | 88 | 89 | ../../../modlib/TheForest/TheForest_data/Managed/mscorlib.dll 90 | False 91 | 92 | 93 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.ClipperLib.dll 94 | False 95 | 96 | 97 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Ionic.Zip.Reduced.dll 98 | False 99 | 100 | 101 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.JsonFx.dll 102 | False 103 | 104 | 105 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Poly2Tri.dll 106 | False 107 | 108 | 109 | ../../../modlib/TheForest/TheForest_data/Managed/PlayMaker.dll 110 | False 111 | 112 | 113 | ../../../modlib/TheForest/TheForest_data/Managed/Rewired_Core.dll 114 | False 115 | 116 | 117 | ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll 118 | False 119 | 120 | 121 | ../../../modlib/TheForest/TheForest_data/Managed/System.Configuration.dll 122 | False 123 | 124 | 125 | ../../../modlib/TheForest/TheForest_data/Managed/System.Core.dll 126 | False 127 | 128 | 129 | ../../../modlib/TheForest/TheForest_data/Managed/System.dll 130 | False 131 | 132 | 133 | ../../../modlib/TheForest/TheForest_data/Managed/System.Security.dll 134 | False 135 | 136 | 137 | ../../../modlib/TheForest/TheForest_data/Managed/System.Xml.dll 138 | False 139 | 140 | 141 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.dll 142 | False 143 | 144 | 145 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Analytics.dll 146 | False 147 | 148 | 149 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Networking.dll 150 | False 151 | 152 | 153 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.UI.dll 154 | False 155 | 156 | 157 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 158 | False 159 | 160 | 161 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.dll 162 | False 163 | 164 | 165 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.common.dll 166 | False 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /DevPicker/DevPicker.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.21005.1 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevPicker", "DevPicker.csproj", "{53821041-E269-4717-BAED-3C9C6836E83F}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Release|x86 = Release|x86 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.ActiveCfg = Release|x86 13 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.Build.0 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(SolutionProperties) = preSolution 16 | HideSolutionNode = FALSE 17 | EndGlobalSection 18 | EndGlobal -------------------------------------------------------------------------------- /DevPicker/Mod/DevPicker.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/DevPicker/Mod/DevPicker.dll -------------------------------------------------------------------------------- /DevPicker/Mod/DevPicker.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/DevPicker/Mod/DevPicker.pdb -------------------------------------------------------------------------------- /DevPicker/ModInfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 0.28c 3 | 11 | 12 | Dev Picker 13 | 14 | 15 | This mod is for mod developers which want to see which game object id they are looking at. 16 | 17 | 0.1.4 18 | -------------------------------------------------------------------------------- /DevPicker/Picker.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | class Picker : MonoBehaviour 8 | { 9 | protected GUIStyle boldLabel; 10 | protected GUIStyle pathLabel; 11 | protected GUIStyle whiteLabel; 12 | protected GUIStyle componentLabel; 13 | protected GUIStyle background; 14 | 15 | [ModAPI.Attributes.ExecuteOnGameStart] 16 | static void Init() 17 | { 18 | GameObject g = new GameObject("__DevPicker__"); 19 | g.AddComponent(); 20 | } 21 | 22 | protected Camera camera; 23 | protected bool Initialized = false; 24 | 25 | void Initialize() 26 | { 27 | Initialized = true; 28 | boldLabel = new GUIStyle(ModAPI.GUI.Skin.label); 29 | boldLabel.fontSize = 16; 30 | boldLabel.fontStyle = FontStyle.Bold; 31 | boldLabel.normal.textColor = Color.black; 32 | 33 | pathLabel = new GUIStyle(ModAPI.GUI.Skin.label); 34 | pathLabel.fontSize = 14; 35 | pathLabel.fontStyle = FontStyle.Bold; 36 | pathLabel.normal.textColor = Color.black; 37 | 38 | whiteLabel = new GUIStyle(ModAPI.GUI.Skin.label); 39 | whiteLabel.fontSize = 14; 40 | whiteLabel.fontStyle = FontStyle.Bold; 41 | whiteLabel.normal.textColor = Color.white; 42 | 43 | componentLabel = new GUIStyle(ModAPI.GUI.Skin.label); 44 | componentLabel.fontSize = 14; 45 | componentLabel.fontStyle = FontStyle.Normal; 46 | componentLabel.normal.textColor = Color.black; 47 | 48 | Texture2D t = new Texture2D(1, 1); 49 | t.SetPixel(0, 0, new Color(1f, 1f, 1f, 0.5f)); 50 | t.Apply(); 51 | 52 | background = new GUIStyle(); 53 | background.normal.background = t; 54 | } 55 | 56 | void Update() 57 | { 58 | if (!this.Initialized) 59 | this.Initialize(); 60 | if (this.camera == null) 61 | this.camera = TheForest.Utils.LocalPlayer.MainCam; 62 | if (this.camera != null) 63 | { 64 | if (ModAPI.Input.GetButton("ShowDevPicker")) 65 | { 66 | Ray r = this.camera.ScreenPointToRay(new Vector3(Screen.width / 2f, Screen.height / 2f, 0f)); 67 | // put the ray a little bit forward 68 | r.origin += this.camera.transform.forward * 1f; 69 | 70 | RaycastHit hit; 71 | 72 | if (Physics.Raycast(r, out hit, 100f)) 73 | { 74 | this.ScreenPosition = this.camera.WorldToScreenPoint(hit.point); 75 | this.Title = hit.collider.name; 76 | this.Path = ""; 77 | this.Layer = hit.collider.gameObject.layer + ""; 78 | Transform p = hit.collider.transform.parent; 79 | int failsafe = 0; 80 | while (p != null && failsafe < 100) 81 | { 82 | this.Path = p.name + " / "; 83 | p = p.parent; 84 | failsafe++; 85 | } 86 | Component[] c = hit.collider.GetComponents(); 87 | Components = new string[c.Length]; 88 | for (int i = 0; i < c.Length; i++) 89 | { 90 | Components[i] = c[i].GetType().Name; 91 | } 92 | } 93 | else 94 | { 95 | this.Title = ""; 96 | } 97 | } 98 | else 99 | { 100 | this.Title = ""; 101 | } 102 | } 103 | 104 | } 105 | 106 | protected Vector3 ScreenPosition; 107 | protected string Title; 108 | protected string Path; 109 | protected string Layer; 110 | protected string[] Components; 111 | 112 | void OnGUI() 113 | { 114 | if (this.Title != "") 115 | { 116 | float width = 300f; 117 | float height = 55f + Components.Length * 20f; 118 | float x = ScreenPosition.x - width / 2f; 119 | float y = ScreenPosition.y - height / 2f; 120 | GUI.Box(new Rect(x, y, width, height), "", this.background); 121 | GUI.Label(new Rect(x + 5, y - 20, width, 20), "Layer: "+this.Layer, this.whiteLabel); 122 | GUI.Label(new Rect(x + 5, y + 5, width, 20), this.Path, this.pathLabel); 123 | GUI.Label(new Rect(x + 5, y + 30, width, 20), this.Title, this.boldLabel); 124 | for (int i = 0; i < Components.Length; i++) 125 | { 126 | GUI.Label(new Rect(x + 5, y + 55 + 20 * i, width, 20), this.Components[i], this.componentLabel); 127 | } 128 | } 129 | } 130 | } -------------------------------------------------------------------------------- /DevPicker/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/DevPicker/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /DevPicker/obj/x86/Release/DevPicker.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\DevPicker\Mod\DevPicker.dll 2 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\DevPicker\Mod\DevPicker.pdb 3 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\DevPicker\obj\x86\Release\DevPicker.csprojResolveAssemblyReference.cache 4 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\DevPicker\obj\x86\Release\DevPicker.dll 5 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\DevPicker\obj\x86\Release\DevPicker.pdb 6 | -------------------------------------------------------------------------------- /DevPicker/obj/x86/Release/DevPicker.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/DevPicker/obj/x86/Release/DevPicker.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /DevPicker/obj/x86/Release/DevPicker.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/DevPicker/obj/x86/Release/DevPicker.dll -------------------------------------------------------------------------------- /DevPicker/obj/x86/Release/DevPicker.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/DevPicker/obj/x86/Release/DevPicker.pdb -------------------------------------------------------------------------------- /Map/.vs/Map/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/.vs/Map/v14/.suo -------------------------------------------------------------------------------- /Map/Downloader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading; 6 | using System.Net; 7 | 8 | namespace Map 9 | { 10 | public class Downloader 11 | { 12 | public int BytesLoaded; 13 | public int BytesTotal; 14 | public byte[] Data; 15 | public bool Finished = false; 16 | public string Error = ""; 17 | public float Progress; 18 | protected string url; 19 | public bool Loading = false; 20 | 21 | public Downloader(string url, bool startInstant = false) 22 | { 23 | this.url = url; 24 | if (startInstant) 25 | StartDownload(); 26 | } 27 | 28 | public void StartDownload() 29 | { 30 | Loading = true; 31 | Thread t = new Thread(this.Download); 32 | t.Start(); 33 | } 34 | 35 | void Download() 36 | { 37 | try 38 | { 39 | using (WebClient c = new System.Net.WebClient()) 40 | { 41 | c.DownloadProgressChanged += DownloadProgressChanged; 42 | c.DownloadDataCompleted += DownloadDataCompleted; 43 | c.DownloadDataAsync(new Uri(url)); 44 | } 45 | } 46 | catch (Exception e) 47 | { 48 | Error = e.ToString(); 49 | } 50 | } 51 | 52 | private void DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e) 53 | { 54 | Data = e.Result; 55 | Finished = true; 56 | } 57 | 58 | private void DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) 59 | { 60 | BytesLoaded += Convert.ToInt32(e.BytesReceived); 61 | BytesTotal = Convert.ToInt32(e.TotalBytesToReceive); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Map/IngameMap.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using UnityEngine; 7 | 8 | namespace Map 9 | { 10 | public class IngameMap : MonoBehaviour 11 | { 12 | public class MarkerSetting 13 | { 14 | public string ID; 15 | public string Label; 16 | public int Texture; 17 | public Color Color; 18 | public string Category; 19 | public bool Selected = true; 20 | } 21 | 22 | public static Vector2 WorldToMapFactor = new Vector2(5600f, 3500f); 23 | public static Vector2 WorldToMapOffset = new Vector2(0f, -20f); 24 | 25 | public static Rect GetTextureCoords(int index) 26 | { 27 | int x = index % 6; 28 | int y = Mathf.FloorToInt((float)index / 6f); 29 | float ux = x / 6f; 30 | float uy = 1f - (float)(y + 1) / 6f; 31 | return new Rect(ux, uy, 1f / 6f, 1f / 6f); 32 | } 33 | 34 | public static Vector2 WorldToMap(Vector3 world) 35 | { 36 | return new Vector2((-world.z + WorldToMapOffset.x) / WorldToMapFactor.x, (-world.x + WorldToMapOffset.y) / WorldToMapFactor.y); 37 | } 38 | 39 | public static Dictionary markerSettings = new Dictionary() 40 | { 41 | {"Big tree", new MarkerSetting() 42 | { 43 | Label = "Big tree", 44 | Texture = 0, 45 | Color = new Color(0.75f, 0.75f, 0.75f), 46 | Category = "General" 47 | } 48 | }, 49 | {"Good spot", new MarkerSetting() 50 | { 51 | Label = "Good spot", 52 | Texture = 1, 53 | Color = new Color(0.75f, 0.75f, 0.75f), 54 | Category = "General" 55 | } 56 | }, 57 | {"Passenger", new MarkerSetting() 58 | { 59 | ID = "Passenger", 60 | Label = "Passenger", 61 | Texture = 2, 62 | Color = new Color(0.75f, 0.75f, 0.75f), 63 | Category = "General" 64 | } 65 | }, 66 | {"Sharks", new MarkerSetting() 67 | { 68 | Label = "Sharks", 69 | Texture = 3, 70 | Color = new Color(0.75f, 0.75f, 0.75f), 71 | Category = "General" 72 | } 73 | }, 74 | {"Bedroll", new MarkerSetting() 75 | { 76 | Label = "Bedroll", 77 | Texture = 4, 78 | Color = new Color(0.75f, 0.75f, 0.75f), 79 | Category = "General" 80 | } 81 | }, 82 | {"Tent", new MarkerSetting() 83 | { 84 | Label = "Tent", 85 | Texture = 5, 86 | Color = new Color(0.75f, 0.75f, 0.75f), 87 | Category = "General" 88 | } 89 | }, 90 | {"Boat", new MarkerSetting() 91 | { 92 | Label = "Boat", 93 | Texture = 6, 94 | Color = new Color(0.75f, 0.75f, 0.75f), 95 | Category = "General" 96 | } 97 | }, 98 | {"Plane", new MarkerSetting() 99 | { 100 | Label = "Plane", 101 | Texture = 7, 102 | Color = new Color(0.75f, 0.75f, 0.75f), 103 | Category = "General" 104 | } 105 | }, 106 | {"Anchor", new MarkerSetting() 107 | { 108 | Label = "Anchor", 109 | Texture = 8, 110 | Color = new Color(0.75f, 0.75f, 0.75f), 111 | Category = "General" 112 | } 113 | }, 114 | {"Suitcase", new MarkerSetting() 115 | { 116 | Label = "Suitcase", 117 | Texture = 9, 118 | Color = new Color(0.75f, 0.75f, 0.75f), 119 | Category = "General" 120 | } 121 | }, 122 | {"Cave", new MarkerSetting() 123 | { 124 | Label = "Cave", 125 | Texture = 10, 126 | Color = new Color(0.75f, 0.75f, 0.75f), 127 | Category = "General" 128 | } 129 | }, 130 | {"Collectible", new MarkerSetting() 131 | { 132 | Label = "Collectible", 133 | Texture = 11, 134 | Color = new Color(0.75f, 0.75f, 0.75f), 135 | Category = "General" 136 | } 137 | }, 138 | {"Explodable", new MarkerSetting() 139 | { 140 | Label = "Explodable", 141 | Texture = 12, 142 | Color = new Color(0.75f, 0.75f, 0.75f), 143 | Category = "General" 144 | } 145 | }, 146 | {"Crate", new MarkerSetting() 147 | { 148 | Label = "Crate", 149 | Texture = 13, 150 | Color = new Color(0.75f, 0.75f, 0.75f), 151 | Category = "General" 152 | } 153 | }, 154 | {"Berries", new MarkerSetting() 155 | { 156 | Label = "Berries", 157 | Texture = 14, 158 | Color = new Color(0.5f,1f,0.5f), 159 | Category = "Food" 160 | } 161 | }, 162 | {"Mushrooms", new MarkerSetting() 163 | { 164 | Label = "Mushrooms", 165 | Texture = 16, 166 | Color = new Color(0.5f,1f,0.5f), 167 | Category = "Food" 168 | } 169 | }, 170 | {"Fish", new MarkerSetting() 171 | { 172 | Label = "Fish", 173 | Texture = 15, 174 | Color = new Color(0.5f,1f,0.5f), 175 | Category = "Food" 176 | } 177 | }, 178 | {"Medicine", new MarkerSetting() 179 | { 180 | Label = "Medicine", 181 | Texture = 17, 182 | Color = new Color(0.5f,1f,0.5f), 183 | Category = "Food" 184 | } 185 | }, 186 | {"Native camp", new MarkerSetting() 187 | { 188 | Label = "Native camp", 189 | Texture = 18, 190 | Color = Color.red, 191 | Category = "Natives" 192 | } 193 | }, 194 | {"Flashlight", new MarkerSetting() 195 | { 196 | Label = "Flashlight", 197 | Texture = 19, 198 | Color = new Color(0.75f,0.75f,1f), 199 | Category = "Tools" 200 | } 201 | }, 202 | {"Booze / Water", new MarkerSetting() 203 | { 204 | Label = "Booze / Water", 205 | Texture = 20, 206 | Color = new Color(0.75f,0.75f,1f), 207 | Category = "Tools" 208 | } 209 | }, 210 | {"Flare", new MarkerSetting() 211 | { 212 | Label = "Flare", 213 | Texture = 21, 214 | Color = new Color(0.75f,0.75f,1f), 215 | Category = "Tools" 216 | } 217 | }, 218 | {"Money", new MarkerSetting() 219 | { 220 | Label = "Money", 221 | Texture = 22, 222 | Color = new Color(0.75f,0.75f,1f), 223 | Category = "Tools" 224 | } 225 | }, 226 | {"Rope", new MarkerSetting() 227 | { 228 | Label = "Rope", 229 | Texture = 23, 230 | Color = new Color(0.75f,0.75f,1f), 231 | Category = "Tools" 232 | } 233 | }, 234 | {"Circuit", new MarkerSetting() 235 | { 236 | Label = "Circuit", 237 | Texture = 24, 238 | Color = new Color(0.75f,0.75f,1f), 239 | Category = "Tools" 240 | } 241 | }, 242 | {"Rebreather", new MarkerSetting() 243 | { 244 | Label = "Rebreather", 245 | Texture = 25, 246 | Color = new Color(0.75f,0.75f,1f), 247 | Category = "Tools" 248 | } 249 | }, 250 | {"Air Canister", new MarkerSetting() 251 | { 252 | Label = "Air Canister", 253 | Texture = 26, 254 | Color = new Color(0.75f,0.75f,1f), 255 | Category = "Tools" 256 | } 257 | }, 258 | {"Pot", new MarkerSetting() 259 | { 260 | Label = "Pot", 261 | Texture = 27, 262 | Color = new Color(0.75f,0.75f,1f), 263 | Category = "Tools" 264 | } 265 | }, 266 | {"Stick", new MarkerSetting() 267 | { 268 | Label = "Stick", 269 | Texture = 28, 270 | Color = new Color(1f, 0.6f, 0f), 271 | Category = "Weapons" 272 | } 273 | }, 274 | {"Axe", new MarkerSetting() 275 | { 276 | Label = "Axe", 277 | Texture = 29, 278 | Color = new Color(1f, 0.6f, 0f), 279 | Category = "Weapons" 280 | } 281 | }, 282 | {"Gun", new MarkerSetting() 283 | { 284 | Label = "Gun", 285 | Texture = 30, 286 | Color = new Color(1f, 0.6f, 0f), 287 | Category = "Weapons" 288 | } 289 | } 290 | }; 291 | protected bool Opened = false; 292 | protected Map Overworld; 293 | protected Map Underworld; 294 | 295 | protected Texture2D background; 296 | protected Texture2D foreground; 297 | protected Vector2 BaseSize = new Vector2(200f, 200f); 298 | protected Vector2 Position = Vector2.zero; 299 | protected float Zoom = 1f; 300 | protected int texNum = 31; 301 | 302 | [ModAPI.Attributes.ExecuteOnGameStart] 303 | public static void Init() 304 | { 305 | GameObject g = new GameObject("__Map__"); 306 | g.AddComponent(); 307 | } 308 | 309 | public bool DrawMarker(Map.Marker marker, float angle = 0f, float scale = 1f) 310 | { 311 | Vector2 center = new Vector2(Screen.width / 2f, Screen.height / 2f) + Position * Zoom; 312 | Vector2 wholeSize = new Vector2(Screen.width, Screen.height) * Zoom; 313 | Vector2 mapPos = WorldToMap(marker.WorldPosition); 314 | mapPos.x *= wholeSize.x; 315 | mapPos.y *= wholeSize.y; 316 | float markerSize = GetMarkerSize() * scale; 317 | Rect texCoords = GetTextureCoords(marker.Class.Texture); 318 | Vector2 mPos = new Vector2(center.x + mapPos.x, center.y + mapPos.y); 319 | Rect markerRect = new Rect(mPos.x - markerSize / 2f, mPos.y - markerSize / 2f, markerSize, markerSize); 320 | GUI.color = marker.Class.Color; 321 | if (angle != 0f) 322 | { 323 | Matrix4x4 bkpMatrix = GUI.matrix; 324 | GUIUtility.RotateAroundPivot(180f + TheForest.Utils.LocalPlayer.Transform.rotation.eulerAngles.y, mPos); 325 | GUI.DrawTextureWithTexCoords(markerRect, Markers, texCoords); 326 | GUI.matrix = bkpMatrix; 327 | } 328 | else 329 | { 330 | GUI.DrawTextureWithTexCoords(markerRect, Markers, texCoords); 331 | } 332 | GUI.color = Color.white; 333 | return markerRect.Contains(Event.current.mousePosition); 334 | } 335 | 336 | Map.Marker playerMarker; 337 | Map currentMap; 338 | void OnGUI() 339 | { 340 | try 341 | { 342 | GUI.skin = ModAPI.GUI.Skin; 343 | GUI.color = Color.white; 344 | if (Opened) 345 | { 346 | GUI.DrawTexture(new Rect(0f, 0f, Camera.main.pixelWidth, Camera.main.pixelHeight), background); 347 | 348 | if (currentMap.Textures != null && currentMap.Textures.Length > 0) 349 | { 350 | Vector2 wholeSize = new Vector2(Screen.width, Screen.height) * Zoom; 351 | if (wholeSize.x < wholeSize.y) 352 | wholeSize.y = wholeSize.x; 353 | else 354 | wholeSize.x = wholeSize.y; 355 | Vector2 size = wholeSize / Map.SPLIT; 356 | Vector2 center = new Vector2(Screen.width / 2f, Screen.height / 2f) + Position * Zoom; 357 | Vector2 start = center - wholeSize / 2f; 358 | for (int x = 0; x < Map.SPLIT; x++) 359 | { 360 | for (int y = 0; y < Map.SPLIT; y++) 361 | { 362 | int index = x + (Map.SPLIT - y - 1) * Map.SPLIT; 363 | GUI.DrawTexture(new Rect(start.x + size.x * x, start.y + size.y * y, size.x, size.y), currentMap.Textures[index]); 364 | } 365 | } 366 | GUI.DrawTexture(new Rect(0, 0, 500, 500), currentMap.Texture); 367 | 368 | List tooltip = new List(); 369 | for (int i = 0; i < currentMap.Markers.Count; i++) 370 | { 371 | if (currentMap.Markers[i].Class.Selected) 372 | { 373 | if (DrawMarker(currentMap.Markers[i])) 374 | { 375 | tooltip.Add(currentMap.Markers[i]); 376 | } 377 | } 378 | } 379 | playerMarker.WorldPosition = TheForest.Utils.LocalPlayer.Transform.position; 380 | DrawMarker(playerMarker, 180f + TheForest.Utils.LocalPlayer.Transform.rotation.eulerAngles.y, 2f); 381 | if (tooltip.Count > 0) 382 | { 383 | Vector2 tooltipStart = new Vector2(Event.current.mousePosition.x - 125f, Event.current.mousePosition.y + 5f); 384 | float _height = tooltip.Count * 30f + 5f; 385 | GUI.Box(new Rect(tooltipStart.x, tooltipStart.y, 120f, _height), ""); 386 | float ty = 0f; 387 | for (int j = 0; j < tooltip.Count; j++) 388 | { 389 | Rect tnr = new Rect(tooltipStart.x, tooltipStart.y + ty, 120f, 30f); 390 | GUI.color = new Color(tooltip[j].Class.Color.r, tooltip[j].Class.Color.g, tooltip[j].Class.Color.b, 0.2f); 391 | GUI.DrawTexture(tnr, foreground); 392 | GUI.color = tooltip[j].Class.Color; 393 | tnr = new Rect(tooltipStart.x + 5f, tooltipStart.y + ty + 5f, 20f, 20f); 394 | GUI.DrawTextureWithTexCoords(tnr, Markers, GetTextureCoords(tooltip[j].Class.Texture)); 395 | GUI.color = Color.white; 396 | tnr = new Rect(tooltipStart.x + 30f, tooltipStart.y + ty + 5f, 90f, 30f); 397 | GUI.Label(tnr, tooltip[j].Class.Label); 398 | ty += 30f; 399 | } 400 | } 401 | /*WorldToMapFactor.x = float.Parse(GUI.TextField(new Rect(10, 10, 200, 20), WorldToMapFactor.x + "")); 402 | WorldToMapFactor.y = float.Parse(GUI.TextField(new Rect(10, 40, 200, 20), WorldToMapFactor.y + "")); 403 | WorldToMapOffset.x = float.Parse(GUI.TextField(new Rect(10, 70, 200, 20), WorldToMapOffset.x + "")); 404 | WorldToMapOffset.y = float.Parse(GUI.TextField(new Rect(10, 100, 200, 20), WorldToMapOffset.y + "")); 405 | */ 406 | 407 | float height = 0f; 408 | int nn = 0; 409 | foreach (MarkerCategory category in Categories.Values) 410 | { 411 | height += 20f; 412 | if (category.Selected) 413 | { 414 | nn = 0; 415 | foreach (MarkerSetting setting in category.Markers) 416 | { 417 | if (nn == 0) 418 | height += 20f; 419 | nn++; 420 | if (nn >= 2) 421 | { 422 | nn = 0; 423 | } 424 | } 425 | } 426 | } 427 | GUI.Box(new Rect(10, Screen.height - (height + 30f) - 10f, 200f, height + 35f), "Filter", GUI.skin.window); 428 | int _y = 0; 429 | int _x = 0; 430 | foreach (MarkerCategory category in Categories.Values) 431 | { 432 | _x = 0; 433 | string categoryName = category.Markers[0].Category; 434 | category.Selected = GUI.Toggle(new Rect(10, Screen.height - (height) - 10f + _y, 200f, 20f), category.Selected, categoryName, GUI.skin.button); 435 | _y += 20; 436 | if (category.Selected) 437 | { 438 | foreach (MarkerSetting setting in category.Markers) 439 | { 440 | Rect nr = new Rect(10 + _x, Screen.height - (height) - 10f + _y, 100f, 20f); 441 | GUI.color = new Color(category.Color.r, category.Color.g, category.Color.b, setting.Selected ? 0.2f : 0f); 442 | GUI.DrawTexture(nr, foreground); 443 | GUI.color = category.Color; 444 | nr = new Rect(10 + _x, Screen.height - (height) - 10f + _y, 20f, 20f); 445 | GUI.DrawTextureWithTexCoords(nr, Markers, GetTextureCoords(setting.Texture)); 446 | GUI.color = Color.white; 447 | nr = new Rect(35 + _x, Screen.height - (height) - 10f + _y, 65f, 20f); 448 | setting.Selected = GUI.Toggle(nr, setting.Selected, setting.Label, GUI.skin.label); 449 | _x += 100; 450 | if (_x >= 200) 451 | { 452 | _x = 0; 453 | _y += 20; 454 | } 455 | } 456 | if (_x == 100) 457 | _y += 20; 458 | } 459 | } 460 | 461 | if (Event.current.type == EventType.MouseDown) 462 | { 463 | Drag = true; 464 | LastMousePos = Event.current.mousePosition; 465 | } 466 | else if (Event.current.type == EventType.MouseDrag) 467 | { 468 | Vector2 move = Event.current.mousePosition - LastMousePos; 469 | float w = Mathf.Min(Screen.width, Screen.height); 470 | Position += move / Zoom; 471 | Position.x = Mathf.Clamp(Position.x, w / -2f, w / 2f); 472 | Position.y = Mathf.Clamp(Position.y, w / -2f, w / 2f); 473 | LastMousePos = Event.current.mousePosition; 474 | } 475 | else if (Event.current.type == EventType.MouseUp) 476 | { 477 | Drag = false; 478 | } 479 | 480 | if (Event.current.type == EventType.ScrollWheel) 481 | { 482 | Zoom = Mathf.Clamp(Zoom + Event.current.delta.y / -20f, 1f, 3f); 483 | } 484 | 485 | GUIContent con = new GUIContent("Thanks to http://theforestmap.com/ for providing the map data."); 486 | Vector2 cons = GUI.skin.label.CalcSize(con); 487 | GUI.color = Color.black; 488 | GUI.Label(new Rect(Screen.width - 5f - cons.x, Screen.height - 25f, cons.x + 10f, cons.y + 10f), con); 489 | GUI.color = Color.white; 490 | GUI.Label(new Rect(Screen.width - 6f - cons.x, Screen.height - 26f, cons.x + 10f, cons.y + 10f), con); 491 | 492 | } 493 | 494 | if (currentMap.Loading) 495 | { 496 | if (currentMap.Textures == null || currentMap.Textures.Length == 0) 497 | { 498 | string loadingLabel = "Loading..."; 499 | 500 | // show big loader 501 | Vector2 s = GUI.skin.label.CalcSize(new GUIContent(loadingLabel)); 502 | GUI.Label(new Rect(Screen.width / 2f - s.x / 2f, Screen.height / 2f - s.y - 5f, s.x + 10, s.y + 10), loadingLabel, WhiteLabel); 503 | 504 | GUI.DrawTexture(new Rect(Screen.width / 4f, Screen.height / 2f + 1, (Screen.width / 2f) * currentMap.Progress, 2f), foreground); 505 | 506 | string percentageLabel = currentMap.CurrentTask + ": " + Mathf.FloorToInt(currentMap.Progress * 100f) + "% (" + Mathf.FloorToInt(currentMap.BytesLoaded) + "kb / " + Mathf.FloorToInt(currentMap.BytesTotal / 1024f) + "kb)"; 507 | s = GUI.skin.label.CalcSize(new GUIContent(percentageLabel)); 508 | GUI.Label(new Rect(Screen.width / 2f - s.x / 2f, Screen.height / 2f + 2f, s.x + 10, s.y + 10), percentageLabel, WhiteLabel); 509 | GUI.DrawTexture(new Rect(Screen.width / 4f, Screen.height / 2f, Screen.width / 2f, 1f), foreground); 510 | } 511 | else 512 | { 513 | string loadingLabel = "Loading..."; 514 | 515 | // show small loader 516 | Vector2 s = GUI.skin.label.CalcSize(new GUIContent(loadingLabel)); 517 | GUI.Label(new Rect(Screen.width - 110f - s.x / 2f, Screen.height - 40f - s.y - 5f, s.x + 10, s.y + 10), loadingLabel, WhiteLabel); 518 | 519 | GUI.DrawTexture(new Rect(Screen.width - 210f, Screen.height - 40f + 1, (200f) * currentMap.Progress, 2f), foreground); 520 | 521 | string percentageLabel = currentMap.CurrentTask + ": " + Mathf.FloorToInt(currentMap.Progress * 100f) + " % (" + Mathf.FloorToInt(currentMap.BytesLoaded) + "kb / " + Mathf.FloorToInt(currentMap.BytesTotal / 1024f) + "kb)"; 522 | s = GUI.skin.label.CalcSize(new GUIContent(percentageLabel)); 523 | GUI.Label(new Rect(Screen.width - 110f - s.x / 2f, Screen.height - 40f + 2f, s.x + 10, s.y + 10), percentageLabel, WhiteLabel); 524 | GUI.DrawTexture(new Rect(Screen.width - 210f, Screen.height - 40f, (200f), 1f), foreground); 525 | } 526 | } 527 | } 528 | } 529 | catch (Exception e) 530 | { 531 | ModAPI.Log.Write(e.ToString()); 532 | } 533 | } 534 | 535 | public float GetMarkerSize() 536 | { 537 | return 16f * Zoom; 538 | } 539 | 540 | protected bool Drag = false; 541 | protected Vector2 LastMousePos = Vector2.zero; 542 | 543 | protected Downloader overworldMapLoader; 544 | protected Downloader underworldMapLoader; 545 | protected GUIStyle WhiteLabel; 546 | protected float ShowPhase = 0f; 547 | protected Texture2D Markers; 548 | protected Dictionary Categories; 549 | 550 | public class MarkerCategory 551 | { 552 | public bool Selected = false; 553 | public List Markers = new List(); 554 | public Color Color; 555 | } 556 | 557 | void Start() 558 | { 559 | try 560 | { 561 | Categories = new Dictionary(); 562 | foreach (MarkerSetting setting in markerSettings.Values) 563 | { 564 | if (!Categories.ContainsKey(setting.Category)) 565 | { 566 | Categories.Add(setting.Category, new MarkerCategory()); 567 | Categories[setting.Category].Color = setting.Color; 568 | } 569 | Categories[setting.Category].Markers.Add(setting); 570 | } 571 | 572 | playerMarker = new Map.Marker() 573 | { 574 | Class = new MarkerSetting() 575 | { 576 | ID = "Player", 577 | Color = Color.white, 578 | Label = "You", 579 | Texture = 31, 580 | Category = "Player" 581 | }, 582 | Description = "You", 583 | WorldPosition = Vector3.zero, 584 | }; 585 | 586 | Markers = ModAPI.Resources.GetTexture("Markers.png"); 587 | background = new Texture2D(2, 2); 588 | background.SetPixel(0, 0, new Color(0f, 0f, 0f, 0.7f)); 589 | background.SetPixel(1, 0, new Color(0f, 0f, 0f, 0.7f)); 590 | background.SetPixel(0, 1, new Color(0f, 0f, 0f, 0.7f)); 591 | background.SetPixel(1, 1, new Color(0f, 0f, 0f, 0.7f)); 592 | background.filterMode = FilterMode.Point; 593 | background.Apply(); 594 | 595 | foreground = new Texture2D(2, 2); 596 | foreground.SetPixel(0, 0, new Color(1f, 1f, 1f, 1f)); 597 | foreground.SetPixel(1, 0, new Color(1f, 1f, 1f, 1f)); 598 | foreground.SetPixel(0, 1, new Color(1f, 1f, 1f, 1f)); 599 | foreground.SetPixel(1, 1, new Color(1f, 1f, 1f, 1f)); 600 | foreground.filterMode = FilterMode.Point; 601 | foreground.Apply(); 602 | 603 | WhiteLabel = new GUIStyle(ModAPI.GUI.Skin.label); 604 | WhiteLabel.normal.textColor = Color.white; 605 | 606 | Overworld = new Map("http://theforestmap.com/map/map-4096.jpg", "http://theforestmap.com/map/md5.php?map=forest", "http://theforestmap.com/inc/api/?json&map=forest", "Mods/Map/Cache/Overworld/map.jpg"); 607 | Underworld = new Map("http://theforestmap.com/map/cave-4096.jpg", "http://theforestmap.com/map/md5.php?map=cave", "http://theforestmap.com/inc/api/?json&map=cave", "Mods/Map/Cache/Underworld/map.jpg"); 608 | } 609 | catch (Exception e) 610 | { 611 | ModAPI.Log.Write(e.ToString()); 612 | } 613 | } 614 | 615 | protected bool overworldParsed = false; 616 | protected bool underworldParsed = false; 617 | protected Texture2D overworldTexture; 618 | protected Texture2D underworldTexture; 619 | 620 | void Update() 621 | { 622 | try 623 | { 624 | Overworld.Update(); 625 | Underworld.Update(); 626 | if (ModAPI.Input.GetButtonDown("OpenMap")) 627 | { 628 | if (TheForest.Utils.Scene.Atmosphere.InACave) 629 | currentMap = Underworld; 630 | else 631 | currentMap = Overworld; 632 | Opened = !Opened; 633 | ShowPhase = 0f; 634 | //Zoom = 1f; 635 | //Position = Vector2.zero; 636 | } 637 | if (Opened) 638 | { 639 | if (currentMap.TexturesLoaded) 640 | { 641 | if (ShowPhase < 1f) 642 | ShowPhase += Time.unscaledDeltaTime; 643 | } 644 | TheForest.Utils.LocalPlayer.FpCharacter.LockView(); 645 | } 646 | else 647 | { 648 | if (visible) 649 | TheForest.Utils.LocalPlayer.FpCharacter.UnLockView(); 650 | } 651 | this.visible = this.Opened; 652 | } 653 | catch (Exception e) 654 | { 655 | ModAPI.Log.Write(e.ToString()); 656 | } 657 | } 658 | 659 | protected bool visible = false; 660 | } 661 | } 662 | -------------------------------------------------------------------------------- /Map/Map.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | namespace Map 8 | { 9 | public class Map 10 | { 11 | public Texture2D Texture; 12 | public Texture2D[] Textures; 13 | public const int SPLIT = 8; 14 | protected Downloader Downloader; 15 | protected string url = ""; 16 | protected string filename = ""; 17 | protected bool downloadParsed = false; 18 | protected byte[] loadedHash = new byte[0]; 19 | protected byte[] serverHash = new byte[0]; 20 | protected Downloader HashDownloader; 21 | protected Downloader MarkerDownloader; 22 | public bool TexturesLoaded = false; 23 | protected bool markerParsed = false; 24 | 25 | public class Marker 26 | { 27 | public IngameMap.MarkerSetting Class; 28 | public string Description = ""; 29 | public Vector3 WorldPosition; 30 | public Vector2 MapPosition; 31 | 32 | public Marker() 33 | { 34 | 35 | } 36 | public Marker(LitJson.JsonData node, IngameMap.MarkerSetting setting) 37 | { 38 | Class = setting; 39 | Description = (string)node["description"]; 40 | float x = float.Parse((string)node["x"]); 41 | float y = 0f; 42 | if (((string)node["z"]) != "") 43 | y = float.Parse((string)node["z"]); 44 | float z = float.Parse((string)node["y"]); 45 | WorldPosition = new Vector3(x, y, z); 46 | } 47 | } 48 | 49 | public List Markers = new List(); 50 | 51 | public static byte[] ConvertHexStringToByteArray(string hexString) 52 | { 53 | byte[] HexAsBytes = new byte[hexString.Length / 2]; 54 | for (int index = 0; index < HexAsBytes.Length; index++) 55 | { 56 | string byteValue = hexString.Substring(index * 2, 2); 57 | HexAsBytes[index] = byte.Parse(byteValue, System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.InvariantCulture); 58 | } 59 | return HexAsBytes; 60 | } 61 | 62 | public float Progress 63 | { 64 | get 65 | { 66 | if (HashDownloader.Loading && !HashDownloader.Finished) 67 | { 68 | if (HashDownloader.BytesTotal == 0) 69 | return 0f; 70 | return (float)HashDownloader.BytesLoaded / (float)HashDownloader.BytesTotal; 71 | } 72 | else if (Downloader.Loading && !Downloader.Finished) 73 | { 74 | if (Downloader.BytesTotal == 0) 75 | return 0f; 76 | return (float)Downloader.BytesLoaded / (float)Downloader.BytesTotal; 77 | } 78 | else if (MarkerDownloader.Loading && !MarkerDownloader.Finished) 79 | { 80 | if (MarkerDownloader.BytesTotal == 0) 81 | return 0f; 82 | return (float)MarkerDownloader.BytesLoaded / (float)MarkerDownloader.BytesTotal; 83 | } 84 | else if (!TexturesLoaded) 85 | { 86 | return (float)CurrentTexture / (float)(SPLIT * SPLIT); 87 | } 88 | return 1f; 89 | } 90 | } 91 | 92 | public bool Loading 93 | { 94 | get 95 | { 96 | return (Downloader != null && !Downloader.Finished && Downloader.Loading) || (HashDownloader != null && !HashDownloader.Finished && HashDownloader.Loading) || (MarkerDownloader != null && !MarkerDownloader.Finished && MarkerDownloader.Loading) || !TexturesLoaded; 97 | } 98 | } 99 | 100 | public int BytesLoaded 101 | { 102 | get 103 | { 104 | if (HashDownloader != null && HashDownloader.Loading && !HashDownloader.Finished) 105 | { 106 | return HashDownloader.BytesLoaded; 107 | } 108 | else if (Downloader != null && Downloader.Loading && !Downloader.Finished) 109 | { 110 | return Downloader.BytesLoaded; 111 | } 112 | else if (MarkerDownloader != null && MarkerDownloader.Loading && !MarkerDownloader.Finished) 113 | { 114 | return MarkerDownloader.BytesLoaded; 115 | } 116 | else if (!TexturesLoaded) 117 | { 118 | return CurrentTexture; 119 | } 120 | return 0; 121 | } 122 | } 123 | 124 | public int BytesTotal 125 | { 126 | get 127 | { 128 | if (HashDownloader != null && HashDownloader.Loading && !HashDownloader.Finished) 129 | { 130 | return HashDownloader.BytesTotal; 131 | } 132 | else if (Downloader != null && Downloader.Loading && !Downloader.Finished) 133 | { 134 | return Downloader.BytesTotal; 135 | } 136 | else if (MarkerDownloader != null && MarkerDownloader.Loading && !MarkerDownloader.Finished) 137 | { 138 | return MarkerDownloader.BytesTotal; 139 | } 140 | else if (!TexturesLoaded) 141 | { 142 | return SPLIT * SPLIT; 143 | } 144 | return 0; 145 | } 146 | } 147 | 148 | public string CurrentTask 149 | { 150 | get 151 | { 152 | if (HashDownloader != null && HashDownloader.Loading && !HashDownloader.Finished) 153 | { 154 | return "Downloading hash"; 155 | } 156 | else if (Downloader != null && Downloader.Loading && !Downloader.Finished) 157 | { 158 | return "Downloading map"; 159 | } 160 | else if (MarkerDownloader != null && MarkerDownloader.Loading && !MarkerDownloader.Finished) 161 | { 162 | return "Downloading marker"; 163 | } 164 | else if (!TexturesLoaded) 165 | { 166 | return "Loading textures"; 167 | } 168 | return "Completed"; 169 | } 170 | } 171 | 172 | public Map(string url, string hashURL, string markerURL, string filename) 173 | { 174 | Textures = new Texture2D[SPLIT * SPLIT]; 175 | this.filename = filename; 176 | this.url = url; 177 | this.HashDownloader = new Downloader(hashURL, false); 178 | this.Downloader = new Downloader(url, false); 179 | this.MarkerDownloader = new Downloader(markerURL, true); 180 | if (System.IO.File.Exists(filename)) 181 | { 182 | System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); 183 | loadedHash = md5.ComputeHash(System.IO.File.ReadAllBytes(filename)); 184 | this.HashDownloader.StartDownload(); 185 | } 186 | else 187 | { 188 | this.Downloader.StartDownload(); 189 | } 190 | } 191 | 192 | protected int CurrentTexture = -1; 193 | 194 | public void FreeTextures() 195 | { 196 | if (Textures != null) 197 | for (int i = 0; i < Textures.Length; i++) 198 | if (Textures[i] != null) 199 | UnityEngine.Object.Destroy(Textures[i]); 200 | } 201 | 202 | public void ParseTextures() 203 | { 204 | FreeTextures(); 205 | string directoryName = System.IO.Path.GetDirectoryName(filename); 206 | if (!System.IO.Directory.Exists(directoryName)) 207 | System.IO.Directory.CreateDirectory(directoryName); 208 | 209 | Texture2D whole = new Texture2D(2, 2, TextureFormat.RGB24, false, false); 210 | whole.LoadImage(System.IO.File.ReadAllBytes(filename)); 211 | 212 | int widthPer = whole.width / SPLIT; 213 | int heightPer = whole.height / SPLIT; 214 | for (int x = 0; x < SPLIT; x++) 215 | { 216 | for (int y = 0; y < SPLIT; y++) 217 | { 218 | // splitting the texture for better distributed loading performance 219 | Texture2D n = new Texture2D(widthPer, heightPer, TextureFormat.RGB24, false, true); 220 | n.SetPixels(whole.GetPixels(x * widthPer, y * heightPer, widthPer, heightPer)); 221 | n.Apply(); 222 | int index = x + y * SPLIT; 223 | System.IO.File.WriteAllBytes(directoryName + System.IO.Path.DirectorySeparatorChar + index + ".png", n.EncodeToPNG()); 224 | Textures[index] = n; 225 | } 226 | } 227 | CurrentTexture = -1; 228 | TexturesLoaded = true; 229 | UnityEngine.Object.Destroy(whole); 230 | } 231 | 232 | void LoadTexture() 233 | { 234 | string fileName = System.IO.Path.GetDirectoryName(filename) + System.IO.Path.DirectorySeparatorChar + CurrentTexture + ".png"; 235 | if (!System.IO.File.Exists(fileName)) 236 | ParseTextures(); 237 | if (System.IO.File.Exists(fileName)) 238 | { 239 | Textures[CurrentTexture] = new Texture2D(2, 2, TextureFormat.RGB24, false, true); 240 | Textures[CurrentTexture].LoadImage(System.IO.File.ReadAllBytes(fileName)); 241 | } 242 | else 243 | { 244 | CurrentTexture = -1; 245 | // something went terribly wrong :( 246 | } 247 | CurrentTexture++; 248 | if (CurrentTexture >= SPLIT * SPLIT) 249 | { 250 | CurrentTexture = -1; 251 | TexturesLoaded = true; 252 | } 253 | } 254 | 255 | public void Update() 256 | { 257 | try 258 | { 259 | if (MarkerDownloader != null && MarkerDownloader.Finished) 260 | { 261 | string text = System.Text.UTF8Encoding.UTF8.GetString(MarkerDownloader.Data); 262 | LitJson.JsonData node = LitJson.JsonMapper.ToObject(text); 263 | for (int i = 0; i < node["markers"].Count; i++) 264 | { 265 | string n = node["markers"][i]["name"].ToString().Replace("\"", ""); 266 | if (IngameMap.markerSettings.ContainsKey(n)) 267 | { 268 | Markers.Add(new Marker(node["markers"][i], IngameMap.markerSettings[n])); 269 | } 270 | } 271 | MarkerDownloader = null; 272 | } 273 | if (HashDownloader != null && HashDownloader.Finished) 274 | { 275 | string text = System.Text.UTF8Encoding.UTF8.GetString(HashDownloader.Data); 276 | serverHash = ConvertHexStringToByteArray(text); 277 | bool identical = true; 278 | for (int i = 0; i < loadedHash.Length; i++) 279 | { 280 | if (loadedHash[i] != serverHash[i]) 281 | { 282 | identical = false; 283 | this.Downloader.StartDownload(); 284 | break; 285 | } 286 | } 287 | if (identical) 288 | { 289 | CurrentTexture = 0; 290 | } 291 | HashDownloader = null; 292 | } 293 | // load textures distributed over frames 294 | if (CurrentTexture >= 0) 295 | { 296 | LoadTexture(); 297 | } 298 | 299 | if (this.Downloader.Finished && !downloadParsed) 300 | { 301 | string directoryName = System.IO.Path.GetDirectoryName(filename); 302 | if (!System.IO.Directory.Exists(directoryName)) 303 | System.IO.Directory.CreateDirectory(directoryName); 304 | System.IO.File.WriteAllBytes(filename, Downloader.Data); 305 | ParseTextures(); 306 | downloadParsed = true; 307 | } 308 | } catch (Exception e) 309 | { 310 | ModAPI.Log.Write(e.ToString()); 311 | } 312 | } 313 | } 314 | } 315 | -------------------------------------------------------------------------------- /Map/Map.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Release 6 | x86 7 | {53821041-E269-4717-BAED-3C9C6836E83F} 8 | Library 9 | Properties 10 | Map 11 | Map 12 | v3.5 13 | 512 14 | 15 | 16 | 17 | pdbonly 18 | true 19 | Mod\ 20 | TRACE 21 | prompt 22 | 4 23 | 24 | 25 | 26 | 27 | 28 | 29 | ../../../libs/BaseModLib.dll 30 | False 31 | 32 | 33 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp-firstpass.dll 34 | False 35 | 36 | 37 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp.dll 38 | False 39 | 40 | 41 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript-firstpass.dll 42 | False 43 | 44 | 45 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript.dll 46 | False 47 | 48 | 49 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 50 | False 51 | 52 | 53 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 54 | False 55 | 56 | 57 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 58 | False 59 | 60 | 61 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyColor.dll 62 | False 63 | 64 | 65 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyMotion.dll 66 | False 67 | 68 | 69 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.dll 70 | False 71 | 72 | 73 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll 74 | False 75 | 76 | 77 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 78 | False 79 | 80 | 81 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Posix.dll 82 | False 83 | 84 | 85 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 86 | False 87 | 88 | 89 | ../../../modlib/TheForest/TheForest_data/Managed/mscorlib.dll 90 | False 91 | 92 | 93 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.ClipperLib.dll 94 | False 95 | 96 | 97 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Ionic.Zip.Reduced.dll 98 | False 99 | 100 | 101 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.JsonFx.dll 102 | False 103 | 104 | 105 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Poly2Tri.dll 106 | False 107 | 108 | 109 | ../../../modlib/TheForest/TheForest_data/Managed/PlayMaker.dll 110 | False 111 | 112 | 113 | ../../../modlib/TheForest/TheForest_data/Managed/Rewired_Core.dll 114 | False 115 | 116 | 117 | ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll 118 | False 119 | 120 | 121 | ../../../modlib/TheForest/TheForest_data/Managed/System.Configuration.dll 122 | False 123 | 124 | 125 | ../../../modlib/TheForest/TheForest_data/Managed/System.Core.dll 126 | False 127 | 128 | 129 | ../../../modlib/TheForest/TheForest_data/Managed/System.dll 130 | False 131 | 132 | 133 | ../../../modlib/TheForest/TheForest_data/Managed/System.Security.dll 134 | False 135 | 136 | 137 | ../../../modlib/TheForest/TheForest_data/Managed/System.Xml.dll 138 | False 139 | 140 | 141 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.dll 142 | False 143 | 144 | 145 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Analytics.dll 146 | False 147 | 148 | 149 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Networking.dll 150 | False 151 | 152 | 153 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.UI.dll 154 | False 155 | 156 | 157 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 158 | False 159 | 160 | 161 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.dll 162 | False 163 | 164 | 165 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.common.dll 166 | False 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /Map/Map.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.21005.1 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Map", "Map.csproj", "{53821041-E269-4717-BAED-3C9C6836E83F}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Release|x86 = Release|x86 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.ActiveCfg = Release|x86 13 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.Build.0 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(SolutionProperties) = preSolution 16 | HideSolutionNode = FALSE 17 | EndGlobalSection 18 | EndGlobal -------------------------------------------------------------------------------- /Map/Mod/Map.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/Mod/Map.dll -------------------------------------------------------------------------------- /Map/Mod/Map.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/Mod/Map.pdb -------------------------------------------------------------------------------- /Map/ModInfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 0.28c 3 | 13 | 14 | Map 15 | Karte 16 | 17 | 18 | An ingame map 19 | Eine Karte 20 | 21 | 0.3 22 | -------------------------------------------------------------------------------- /Map/Resources/Markers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/Resources/Markers.png -------------------------------------------------------------------------------- /Map/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /Map/obj/x86/Release/Map.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\Map\Mod\Map.dll 2 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\Map\Mod\Map.pdb 3 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\Map\obj\x86\Release\Map.csprojResolveAssemblyReference.cache 4 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\Map\obj\x86\Release\Map.dll 5 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Debug\projects\TheForest\Map\obj\x86\Release\Map.pdb 6 | -------------------------------------------------------------------------------- /Map/obj/x86/Release/Map.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/obj/x86/Release/Map.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /Map/obj/x86/Release/Map.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/obj/x86/Release/Map.dll -------------------------------------------------------------------------------- /Map/obj/x86/Release/Map.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/Map/obj/x86/Release/Map.pdb -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ModAPI-The-Forest-Mods 2 | Included mods for "The Forest" in the ModAPI 3 | -------------------------------------------------------------------------------- /RemoveBuildings/.vs/RemoveBuildings/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/.vs/RemoveBuildings/v14/.suo -------------------------------------------------------------------------------- /RemoveBuildings/Mod/RemoveBuildings.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/Mod/RemoveBuildings.dll -------------------------------------------------------------------------------- /RemoveBuildings/Mod/RemoveBuildings.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/Mod/RemoveBuildings.pdb -------------------------------------------------------------------------------- /RemoveBuildings/ModInfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 0.28c 3 | 13 | 14 | Gebäude löschen 15 | Remove buildings 16 | 17 | 18 | Ermöglicht das Entfernen von Gebäuden. 19 | Makes it possible to remove all buildings. 20 | 21 | 0.0.2.6 22 | -------------------------------------------------------------------------------- /RemoveBuildings/NewCreate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | namespace RemoveBuildings 8 | { 9 | class NewCreate : TheForest.Buildings.Creation.Craft_Structure 10 | { 11 | protected override void Update() 12 | { 13 | if (!this._initialized) 14 | return; 15 | 16 | TheForest.Utils.Scene.HudGui.DestroyIcon.SetActive(false); 17 | base.Update(); 18 | if (Input.GetButtonDown("Craft")) 19 | { 20 | this.CancelBlueprint(); 21 | return; 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /RemoveBuildings/RemoveBuildings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using UnityEngine; 7 | 8 | public class RemoveBuildingsBehaviour : MonoBehaviour 9 | { 10 | protected List buildingNames; 11 | 12 | protected GameObject removeClone; 13 | protected UITexture removeCloneTexture; 14 | protected bool ShowRemoveIcon = false; 15 | protected UILabel label; 16 | protected bool Initialized = false; 17 | protected Camera camera; 18 | 19 | [ModAPI.Attributes.ExecuteOnGameStart] 20 | public static void Init() 21 | { 22 | GameObject g = new GameObject("__RemoveBuildings__"); 23 | g.AddComponent(); 24 | } 25 | 26 | void Initialize() 27 | { 28 | Initialized = true; 29 | buildingNames = new List() 30 | { 31 | "Ex_EffigyBuilt", 32 | "Trap_SpikeWall", 33 | "Trap_Deadfall", 34 | "Trap_TripWire_Explosive", 35 | "Trap_Rabbit", 36 | "Ex_RockFenceChunkBuilt", 37 | "Bed_Built", 38 | "WalkwayStraightBuilt", 39 | "Ex_RoofBuilt", 40 | "TreesapCollectorBuilt", 41 | "Target_Built", 42 | "Ex_FloorBuilt", 43 | "Ex_FoundationBuilt", 44 | "Ex_StairsBuilt", 45 | "Ex_PlatformBuilt", 46 | "Ex_WallDefensiveChunkBuilt", 47 | "Ex_WallChunkBuilt", 48 | "Ex_StickFenceChunkBuilt", 49 | "FireBuilt", 50 | "FireStandBuilt", 51 | "BonFireBuilt", 52 | "FireBuiltRockPit", 53 | "LeafHutBuilt", 54 | "ShelterBuilt", 55 | "LogCabinBuilt", 56 | "LogCabin_Small_Built", 57 | "TreeHouse_Built_MP", 58 | "TreeHouseChalet_Built_MP", 59 | "Stick_HolderBuilt", 60 | "LogHolderBuilt", 61 | "MultiSledBuilt", 62 | "rock_HolderBuilt", 63 | "WeaponRack", 64 | "HolderExplosives_Built", 65 | "MedicineCabinet_Built", 66 | "HolderSnacks_Built", 67 | "WallBuilt", 68 | "WallBuiltDefensive", 69 | "WallBuilt_Doorway", 70 | "WallBuilt_Window", 71 | "StairCaseBuilt", 72 | "TreePlatform_Built", 73 | "PlatformBridgeBuilt", 74 | "SpikeDefenseBuilt", 75 | "FoundationBuilt", 76 | "FloorBuilt", 77 | "WallExBuilt", 78 | "StickMarkerBuilt", 79 | "RopeBuilt", 80 | "WalkwayStraightBuilt", 81 | "WorkBenchBuilt", 82 | "GazeboBuilt", 83 | "Trap_Rabbit", 84 | "Trap_TripWire_Explosive", 85 | "Trap_Deadfall", 86 | "Trap_SpikeWall", 87 | "Trap_RopeBuilt", 88 | "RabbitCageBuilt", 89 | "GardenBuilt", 90 | "DryingRackBuilt", 91 | "WaterCollector_Built", 92 | "RaftBuilt", 93 | "HouseBoat_Small", 94 | "EffigyHead", 95 | "EffigyBigBuilt", 96 | "EffigySmallBuilt", 97 | "EffigyRainBuilt", 98 | "PlatformExBuilt" 99 | }; 100 | if (TheForest.Utils.Scene.HudGui != null && TheForest.Utils.Scene.HudGui.DestroyIcon != null && TheForest.Utils.Scene.HudGui.DestroyIcon.gameObject != null) 101 | { 102 | GameObject MainPanel = null; 103 | for (int i = 0; i < TheForest.Utils.Scene.HudGui.PauseMenu.transform.childCount; i++) 104 | { 105 | Transform t = TheForest.Utils.Scene.HudGui.PauseMenu.transform.GetChild(i); 106 | if (t.name == "Panel - Main") 107 | { 108 | MainPanel = t.gameObject; 109 | break; 110 | } 111 | } 112 | 113 | Transform window = MainPanel.transform.GetChild(0); 114 | GameObject continueButton = null; 115 | for (int i = 0; i < window.childCount; i++) 116 | { 117 | Transform t = window.GetChild(i); 118 | if (t.name == "Button - Continue") 119 | { 120 | continueButton = t.gameObject; 121 | break; 122 | } 123 | } 124 | 125 | removeClone = NGUITools.AddChild(TheForest.Utils.Scene.HudGui.DestroyIcon.transform.parent.gameObject, TheForest.Utils.Scene.HudGui.DestroyIcon.gameObject); 126 | Destroy(removeClone.transform.GetChild(0).gameObject); 127 | removeClone.transform.localPosition = TheForest.Utils.Scene.HudGui.DestroyIcon.transform.localPosition; 128 | removeCloneTexture = removeClone.GetComponent(); 129 | removeCloneTexture.alpha = 1f; 130 | removeCloneTexture.mainTexture = ModAPI.Resources.GetTexture("RemoveBuilding.png"); 131 | GameObject newLabel = NGUITools.AddChild(removeClone, continueButton.transform.GetChild(0).gameObject); 132 | newLabel.GetComponent().text = ModAPI.Input.GetKeyBindingAsString("RemoveBuilding"); 133 | newLabel.transform.localPosition += new Vector3(0f, -70f, 0f); 134 | } 135 | } 136 | 137 | void Update() 138 | { 139 | if (!Initialized) 140 | Initialize(); 141 | if (this.camera == null) 142 | this.camera = TheForest.Utils.LocalPlayer.MainCam; 143 | if (this.camera != null) 144 | { 145 | try 146 | { 147 | Ray r = new Ray(camera.transform.position + camera.transform.forward * 1f, camera.transform.forward); 148 | RaycastHit[] hits = Physics.RaycastAll(r, 5f); 149 | if (hits.Length == 0) 150 | removeCloneTexture.gameObject.SetActive(false); 151 | 152 | foreach (RaycastHit hitInfo in hits) 153 | { 154 | Transform t = hitInfo.collider.transform; 155 | bool found = false; 156 | while (!found) 157 | { 158 | if (t == null) break; 159 | foreach (string n in buildingNames) 160 | { 161 | if (t.name.StartsWith(n)) 162 | { 163 | found = true; 164 | break; 165 | } 166 | } 167 | if (found) break; 168 | t = t.parent; 169 | } 170 | if (found) 171 | { 172 | ShowRemoveIcon = true; 173 | removeCloneTexture.gameObject.SetActive(true); 174 | if (ModAPI.Input.GetButtonDown("RemoveBuilding")) 175 | { 176 | Destroy(t.gameObject); 177 | return; 178 | } 179 | break; 180 | } 181 | else 182 | { 183 | ShowRemoveIcon = false; 184 | removeCloneTexture.gameObject.SetActive(false); 185 | } 186 | } 187 | } 188 | catch (Exception e) 189 | { 190 | ModAPI.Log.Write(e.ToString()); 191 | } 192 | } 193 | } 194 | } -------------------------------------------------------------------------------- /RemoveBuildings/RemoveBuildings.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Release 6 | x86 7 | {53821041-E269-4717-BAED-3C9C6836E83F} 8 | Library 9 | Properties 10 | RemoveBuildings 11 | RemoveBuildings 12 | v3.5 13 | 512 14 | 15 | 16 | 17 | pdbonly 18 | true 19 | Mod\ 20 | TRACE 21 | prompt 22 | 4 23 | 24 | 25 | 26 | 27 | 28 | 29 | ../../../libs/BaseModLib.dll 30 | False 31 | 32 | 33 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp-firstpass.dll 34 | False 35 | 36 | 37 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp.dll 38 | False 39 | 40 | 41 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript-firstpass.dll 42 | False 43 | 44 | 45 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript.dll 46 | False 47 | 48 | 49 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 50 | False 51 | 52 | 53 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 54 | False 55 | 56 | 57 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 58 | False 59 | 60 | 61 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyColor.dll 62 | False 63 | 64 | 65 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyMotion.dll 66 | False 67 | 68 | 69 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.dll 70 | False 71 | 72 | 73 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll 74 | False 75 | 76 | 77 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 78 | False 79 | 80 | 81 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Posix.dll 82 | False 83 | 84 | 85 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 86 | False 87 | 88 | 89 | ../../../modlib/TheForest/TheForest_data/Managed/mscorlib.dll 90 | False 91 | 92 | 93 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.ClipperLib.dll 94 | False 95 | 96 | 97 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Ionic.Zip.Reduced.dll 98 | False 99 | 100 | 101 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.JsonFx.dll 102 | False 103 | 104 | 105 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Poly2Tri.dll 106 | False 107 | 108 | 109 | ../../../modlib/TheForest/TheForest_data/Managed/PlayMaker.dll 110 | False 111 | 112 | 113 | ../../../modlib/TheForest/TheForest_data/Managed/Rewired_Core.dll 114 | False 115 | 116 | 117 | ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll 118 | False 119 | 120 | 121 | ../../../modlib/TheForest/TheForest_data/Managed/System.Configuration.dll 122 | False 123 | 124 | 125 | ../../../modlib/TheForest/TheForest_data/Managed/System.Core.dll 126 | False 127 | 128 | 129 | ../../../modlib/TheForest/TheForest_data/Managed/System.dll 130 | False 131 | 132 | 133 | ../../../modlib/TheForest/TheForest_data/Managed/System.Security.dll 134 | False 135 | 136 | 137 | ../../../modlib/TheForest/TheForest_data/Managed/System.Xml.dll 138 | False 139 | 140 | 141 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.dll 142 | False 143 | 144 | 145 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Analytics.dll 146 | False 147 | 148 | 149 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Networking.dll 150 | False 151 | 152 | 153 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.UI.dll 154 | False 155 | 156 | 157 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 158 | False 159 | 160 | 161 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.dll 162 | False 163 | 164 | 165 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.common.dll 166 | False 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | -------------------------------------------------------------------------------- /RemoveBuildings/RemoveBuildings.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.21005.1 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RemoveBuildings", "RemoveBuildings.csproj", "{53821041-E269-4717-BAED-3C9C6836E83F}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Release|x86 = Release|x86 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.ActiveCfg = Release|x86 13 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.Build.0 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(SolutionProperties) = preSolution 16 | HideSolutionNode = FALSE 17 | EndGlobalSection 18 | EndGlobal -------------------------------------------------------------------------------- /RemoveBuildings/RemoveBuildings.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/RemoveBuildings.v12.suo -------------------------------------------------------------------------------- /RemoveBuildings/Resources/RemoveBuilding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/Resources/RemoveBuilding.png -------------------------------------------------------------------------------- /RemoveBuildings/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /RemoveBuildings/obj/x86/Release/RemoveBuildings.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\RemoveBuildings\Mod\RemoveBuildings.dll 2 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\RemoveBuildings\Mod\RemoveBuildings.pdb 3 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\RemoveBuildings\obj\x86\Release\RemoveBuildings.csprojResolveAssemblyReference.cache 4 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\RemoveBuildings\obj\x86\Release\RemoveBuildings.dll 5 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\RemoveBuildings\obj\x86\Release\RemoveBuildings.pdb 6 | -------------------------------------------------------------------------------- /RemoveBuildings/obj/x86/Release/RemoveBuildings.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/obj/x86/Release/RemoveBuildings.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /RemoveBuildings/obj/x86/Release/RemoveBuildings.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/obj/x86/Release/RemoveBuildings.dll -------------------------------------------------------------------------------- /RemoveBuildings/obj/x86/Release/RemoveBuildings.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/RemoveBuildings/obj/x86/Release/RemoveBuildings.pdb -------------------------------------------------------------------------------- /SaveEverywhere/Mod/SaveEverywhere.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SaveEverywhere/Mod/SaveEverywhere.dll -------------------------------------------------------------------------------- /SaveEverywhere/Mod/SaveEverywhere.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SaveEverywhere/Mod/SaveEverywhere.pdb -------------------------------------------------------------------------------- /SaveEverywhere/ModInfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 0.28c 3 | 13 | 14 | Save Everywhere 15 | Überall speichern 16 | 17 | 18 | Enables you to save your game with a simple press of a button. Lookup the settings of this mod to change the key to save. 19 | Ermöglicht es dir überall zu speichern. Schau in die Einstellungen dieses Mods um die Tastenbelegung zu ändern. 20 | 21 | 0.0.2 22 | -------------------------------------------------------------------------------- /SaveEverywhere/SaveEverywhere.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Release 6 | x86 7 | {53821041-E269-4717-BAED-3C9C6836E83F} 8 | Library 9 | Properties 10 | SaveEverywhere 11 | SaveEverywhere 12 | v3.5 13 | 512 14 | 15 | 16 | 17 | pdbonly 18 | true 19 | Mod\ 20 | TRACE 21 | prompt 22 | 4 23 | 24 | 25 | 26 | 27 | 28 | 29 | ../../../libs/BaseModLib.dll 30 | False 31 | 32 | 33 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp-firstpass.dll 34 | False 35 | 36 | 37 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp.dll 38 | False 39 | 40 | 41 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript-firstpass.dll 42 | False 43 | 44 | 45 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript.dll 46 | False 47 | 48 | 49 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 50 | False 51 | 52 | 53 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 54 | False 55 | 56 | 57 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 58 | False 59 | 60 | 61 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyColor.dll 62 | False 63 | 64 | 65 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyMotion.dll 66 | False 67 | 68 | 69 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.dll 70 | False 71 | 72 | 73 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll 74 | False 75 | 76 | 77 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 78 | False 79 | 80 | 81 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Posix.dll 82 | False 83 | 84 | 85 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 86 | False 87 | 88 | 89 | ../../../modlib/TheForest/TheForest_data/Managed/mscorlib.dll 90 | False 91 | 92 | 93 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.ClipperLib.dll 94 | False 95 | 96 | 97 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Ionic.Zip.Reduced.dll 98 | False 99 | 100 | 101 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.JsonFx.dll 102 | False 103 | 104 | 105 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Poly2Tri.dll 106 | False 107 | 108 | 109 | ../../../modlib/TheForest/TheForest_data/Managed/PlayMaker.dll 110 | False 111 | 112 | 113 | ../../../modlib/TheForest/TheForest_data/Managed/Rewired_Core.dll 114 | False 115 | 116 | 117 | ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll 118 | False 119 | 120 | 121 | ../../../modlib/TheForest/TheForest_data/Managed/System.Configuration.dll 122 | False 123 | 124 | 125 | ../../../modlib/TheForest/TheForest_data/Managed/System.Core.dll 126 | False 127 | 128 | 129 | ../../../modlib/TheForest/TheForest_data/Managed/System.dll 130 | False 131 | 132 | 133 | ../../../modlib/TheForest/TheForest_data/Managed/System.Security.dll 134 | False 135 | 136 | 137 | ../../../modlib/TheForest/TheForest_data/Managed/System.Xml.dll 138 | False 139 | 140 | 141 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.dll 142 | False 143 | 144 | 145 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Analytics.dll 146 | False 147 | 148 | 149 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Networking.dll 150 | False 151 | 152 | 153 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.UI.dll 154 | False 155 | 156 | 157 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 158 | False 159 | 160 | 161 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.dll 162 | False 163 | 164 | 165 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.common.dll 166 | False 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /SaveEverywhere/SaveEverywhere.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.21005.1 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SaveEverywhere", "SaveEverywhere.csproj", "{53821041-E269-4717-BAED-3C9C6836E83F}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Release|x86 = Release|x86 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.ActiveCfg = Release|x86 13 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.Build.0 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(SolutionProperties) = preSolution 16 | HideSolutionNode = FALSE 17 | EndGlobalSection 18 | EndGlobal -------------------------------------------------------------------------------- /SaveEverywhere/SaveEverywhere.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SaveEverywhere/SaveEverywhere.v12.suo -------------------------------------------------------------------------------- /SaveEverywhere/Saver.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace SaveEverywhere 7 | { 8 | class Saver 9 | { 10 | [ModAPI.Attributes.ExecuteEveryFrame(true)] 11 | public static void CheckSave() 12 | { 13 | if (ModAPI.Input.GetButtonDown("Save")) 14 | { 15 | TheForest.Utils.LocalPlayer.Stats.JustSave(); 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SaveEverywhere/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SaveEverywhere/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /SaveEverywhere/obj/x86/Release/SaveEverywhere.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\SaveEverywhere\Mod\SaveEverywhere.dll 2 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\SaveEverywhere\Mod\SaveEverywhere.pdb 3 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\SaveEverywhere\obj\x86\Release\SaveEverywhere.csprojResolveAssemblyReference.cache 4 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\SaveEverywhere\obj\x86\Release\SaveEverywhere.dll 5 | H:\Users\hamsterphimo\Documents\ModAPI\ModAPI\ModAPI\bin\Debug\projects\TheForest\SaveEverywhere\obj\x86\Release\SaveEverywhere.pdb 6 | E:\ModAPI\projects\TheForest\SaveEverywhere\Mod\SaveEverywhere.dll 7 | E:\ModAPI\projects\TheForest\SaveEverywhere\Mod\SaveEverywhere.pdb 8 | E:\ModAPI\projects\TheForest\SaveEverywhere\obj\x86\Release\SaveEverywhere.csprojResolveAssemblyReference.cache 9 | E:\ModAPI\projects\TheForest\SaveEverywhere\obj\x86\Release\SaveEverywhere.dll 10 | E:\ModAPI\projects\TheForest\SaveEverywhere\obj\x86\Release\SaveEverywhere.pdb 11 | -------------------------------------------------------------------------------- /SaveEverywhere/obj/x86/Release/SaveEverywhere.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SaveEverywhere/obj/x86/Release/SaveEverywhere.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /SaveEverywhere/obj/x86/Release/SaveEverywhere.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SaveEverywhere/obj/x86/Release/SaveEverywhere.dll -------------------------------------------------------------------------------- /SaveEverywhere/obj/x86/Release/SaveEverywhere.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SaveEverywhere/obj/x86/Release/SaveEverywhere.pdb -------------------------------------------------------------------------------- /SpawnCommand/.vs/SpawnCommand/v14/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SpawnCommand/.vs/SpawnCommand/v14/.suo -------------------------------------------------------------------------------- /SpawnCommand/Mod/SpawnCommand.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SpawnCommand/Mod/SpawnCommand.dll -------------------------------------------------------------------------------- /SpawnCommand/Mod/SpawnCommand.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SpawnCommand/Mod/SpawnCommand.pdb -------------------------------------------------------------------------------- /SpawnCommand/ModInfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 0.28c 3 | 4 | Spawn Command 5 | Spawn Kommando 6 | 7 | 8 | Adds a spawn command to the console. 9 | Fügt einen Spawn Kommando zur Konsole hinzu. 10 | 11 | 0.1 12 | -------------------------------------------------------------------------------- /SpawnCommand/SpawnCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | 7 | namespace SpawnCommand 8 | { 9 | public class SpawnCommand 10 | { 11 | 12 | public static List ObjectNames = new List(); 13 | public static Dictionary Objects = new Dictionary(); 14 | 15 | [ModAPI.Attributes.ExecuteOnApplicationStart] 16 | public static void AddSpawnCommand() 17 | { 18 | ModAPI.Console.RegisterCommand(new ModAPI.Console.Command() 19 | { 20 | CommandName = "spawn", 21 | HelpText = "Spawns an item/object", 22 | OnSubmit = delegate (object[] objs) { 23 | string name = (string) objs[0]; 24 | GameObject.Instantiate(Objects[name], TheForest.Utils.LocalPlayer.MainCam.transform.position + TheForest.Utils.LocalPlayer.MainCam.transform.forward * 2f, Quaternion.identity); 25 | }, 26 | Parameters = new List() 27 | { 28 | new ModAPI.Console.BaseConsoleParameter() 29 | { 30 | IsOptional = false, 31 | UseAutoComplete = true, 32 | Name = "Object", 33 | ListValueRequired = true, 34 | TooltipText = "", 35 | Values = ObjectNames 36 | } 37 | } 38 | }); 39 | } 40 | 41 | protected static Dictionary MutantCounts = new Dictionary(); 42 | protected static void AddEnemy(string name, GameObject go) 43 | { 44 | if (go != null) 45 | { 46 | if (!MutantCounts.ContainsKey(name)) 47 | MutantCounts.Add(name, 0); 48 | 49 | bool add = true; 50 | for (int i = 0; i < MutantCounts[name]; i++) 51 | { 52 | string n = ""; 53 | if (i > 0) 54 | n = i+""; 55 | if (Objects["Enemy." + name + n] == go) 56 | { 57 | add = false; 58 | break; 59 | } 60 | } 61 | if (add) 62 | { 63 | string nk = ""; 64 | if (MutantCounts[name] > 0) 65 | nk = MutantCounts[name] + ""; 66 | ObjectNames.Add("Enemy."+name + nk); 67 | Objects.Add("Enemy."+name + nk, go); 68 | MutantCounts[name]++; 69 | } 70 | } 71 | } 72 | [ModAPI.Attributes.ExecuteEveryFrame] 73 | public static void FindEnemies() 74 | { 75 | if (!Objects.ContainsKey("Enemy.mutant")) 76 | { 77 | spawnMutants[] m = (spawnMutants[]) GameObject.FindObjectsOfTypeAll(typeof(spawnMutants)); 78 | for (int i = 0; i < m.Length; i++) 79 | { 80 | spawnMutants mk = m[i]; 81 | AddEnemy("mutant", mk.mutant); 82 | AddEnemy("mutant_female", mk.mutant_female); 83 | AddEnemy("mutant_pale", mk.mutant_pale); 84 | AddEnemy("armsy", mk.armsy); 85 | AddEnemy("vags", mk.vags); 86 | AddEnemy("baby", mk.baby); 87 | AddEnemy("fat", mk.fat); 88 | } 89 | } 90 | } 91 | 92 | [ModAPI.Attributes.ExecuteOnGameStart] 93 | public static void FindObjects() 94 | { 95 | ObjectNames.Clear(); 96 | Objects.Clear(); 97 | try 98 | { 99 | GreebleZone[] zones = (GreebleZone[])GameObject.FindObjectsOfTypeAll(typeof(GreebleZone)); 100 | foreach (GreebleZone zone in zones) 101 | { 102 | foreach (GreebleDefinition definition in zone.GreebleDefinitions) 103 | { 104 | string name = "Prop." + definition.Prefab.name; 105 | if (!ObjectNames.Contains(name)) 106 | { 107 | ObjectNames.Add(name); 108 | Objects.Add(name, definition.Prefab); 109 | } 110 | } 111 | } 112 | 113 | AnimalSpawnZone[] animalSpawns = GameObject.FindObjectsOfType(); 114 | foreach (AnimalSpawnZone aZone in animalSpawns) 115 | { 116 | foreach (AnimalSpawnConfig config in aZone.Spawns) 117 | { 118 | string name = "Animal." + config.Prefab.name; 119 | if (!ObjectNames.Contains(name)) 120 | { 121 | ObjectNames.Add(name); 122 | Objects.Add(name, config.Prefab); 123 | } 124 | } 125 | } 126 | 127 | } catch (System.Exception e) 128 | { 129 | ModAPI.Log.Write(e.ToString()); 130 | } 131 | } 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /SpawnCommand/SpawnCommand.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Release 6 | x86 7 | {53821041-E269-4717-BAED-3C9C6836E83F} 8 | Library 9 | Properties 10 | SpawnCommand 11 | SpawnCommand 12 | v3.5 13 | 512 14 | 15 | 16 | 17 | pdbonly 18 | true 19 | Mod\ 20 | TRACE 21 | prompt 22 | 4 23 | 24 | 25 | 26 | 27 | 28 | 29 | ../../../libs/BaseModLib.dll 30 | False 31 | 32 | 33 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp-firstpass.dll 34 | False 35 | 36 | 37 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp.dll 38 | False 39 | 40 | 41 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript-firstpass.dll 42 | False 43 | 44 | 45 | ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript.dll 46 | False 47 | 48 | 49 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 50 | False 51 | 52 | 53 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 54 | False 55 | 56 | 57 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 58 | False 59 | 60 | 61 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyColor.dll 62 | False 63 | 64 | 65 | ../../../modlib/TheForest/TheForest_data/Managed/AmplifyMotion.dll 66 | False 67 | 68 | 69 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.dll 70 | False 71 | 72 | 73 | ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll 74 | False 75 | 76 | 77 | ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll 78 | False 79 | 80 | 81 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Posix.dll 82 | False 83 | 84 | 85 | ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll 86 | False 87 | 88 | 89 | ../../../modlib/TheForest/TheForest_data/Managed/mscorlib.dll 90 | False 91 | 92 | 93 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.ClipperLib.dll 94 | False 95 | 96 | 97 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Ionic.Zip.Reduced.dll 98 | False 99 | 100 | 101 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.JsonFx.dll 102 | False 103 | 104 | 105 | ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Poly2Tri.dll 106 | False 107 | 108 | 109 | ../../../modlib/TheForest/TheForest_data/Managed/PlayMaker.dll 110 | False 111 | 112 | 113 | ../../../modlib/TheForest/TheForest_data/Managed/Rewired_Core.dll 114 | False 115 | 116 | 117 | ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll 118 | False 119 | 120 | 121 | ../../../modlib/TheForest/TheForest_data/Managed/System.Configuration.dll 122 | False 123 | 124 | 125 | ../../../modlib/TheForest/TheForest_data/Managed/System.Core.dll 126 | False 127 | 128 | 129 | ../../../modlib/TheForest/TheForest_data/Managed/System.dll 130 | False 131 | 132 | 133 | ../../../modlib/TheForest/TheForest_data/Managed/System.Security.dll 134 | False 135 | 136 | 137 | ../../../modlib/TheForest/TheForest_data/Managed/System.Xml.dll 138 | False 139 | 140 | 141 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.dll 142 | False 143 | 144 | 145 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Analytics.dll 146 | False 147 | 148 | 149 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Networking.dll 150 | False 151 | 152 | 153 | ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.UI.dll 154 | False 155 | 156 | 157 | ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll 158 | False 159 | 160 | 161 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.dll 162 | False 163 | 164 | 165 | ../../../modlib/TheForest/TheForest_data/Managed/udpkit.common.dll 166 | False 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | -------------------------------------------------------------------------------- /SpawnCommand/SpawnCommand.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 12.00 2 | # Visual Studio 2013 3 | VisualStudioVersion = 12.0.21005.1 4 | MinimumVisualStudioVersion = 10.0.40219.1 5 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpawnCommand", "SpawnCommand.csproj", "{53821041-E269-4717-BAED-3C9C6836E83F}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Release|x86 = Release|x86 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.ActiveCfg = Release|x86 13 | {53821041-E269-4717-BAED-3C9C6836E83F}.Release|x86.Build.0 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(SolutionProperties) = preSolution 16 | HideSolutionNode = FALSE 17 | EndGlobalSection 18 | EndGlobal -------------------------------------------------------------------------------- /SpawnCommand/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SpawnCommand/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /SpawnCommand/obj/x86/Release/SpawnCommand.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\SpawnCommand\Mod\SpawnCommand.dll 2 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\SpawnCommand\Mod\SpawnCommand.pdb 3 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\SpawnCommand\obj\x86\Release\SpawnCommand.dll 4 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\SpawnCommand\obj\x86\Release\SpawnCommand.pdb 5 | E:\Users\hamsterphimo\Documents\ModAPI\GitHub\ModAPI\bin\Release\projects\TheForest\SpawnCommand\obj\x86\Release\SpawnCommand.csprojResolveAssemblyReference.cache 6 | -------------------------------------------------------------------------------- /SpawnCommand/obj/x86/Release/SpawnCommand.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SpawnCommand/obj/x86/Release/SpawnCommand.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /SpawnCommand/obj/x86/Release/SpawnCommand.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SpawnCommand/obj/x86/Release/SpawnCommand.dll -------------------------------------------------------------------------------- /SpawnCommand/obj/x86/Release/SpawnCommand.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluffyFishGames/ModAPI-The-Forest-Mods/2e4235dbc164ba124fc9b397185d51fa2976e2f8/SpawnCommand/obj/x86/Release/SpawnCommand.pdb --------------------------------------------------------------------------------