diff --git a/HookahPlace.slnx b/HookahPlace.slnx index ba788ff..cb581a0 100644 --- a/HookahPlace.slnx +++ b/HookahPlace.slnx @@ -1,2 +1,3 @@ + diff --git a/HookahPlace/HookahPlace.csproj b/HookahPlace/HookahPlace.csproj new file mode 100644 index 0000000..0798e29 --- /dev/null +++ b/HookahPlace/HookahPlace.csproj @@ -0,0 +1,89 @@ + + + + + Ratijas.HookahPlace + HookahPlace + + 1.0.0 + + + + netstandard2.1 + CRLib._ModTemplate + true + latest + + + + + enable + + + + + + https://api.nuget.org/v3/index.json; + https://nuget.bepinex.dev/v3/index.json; + https://nuget.windows10ce.com/nuget/v3/index.json + + + + + + $(NoWarn);CS0436 + + + + + true + embedded + + $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))=./ + + + + 0.4.* + + + + + + + + + + + + + + + + + + + + + + $(MMHOOKDirectory)MMHOOK_Assembly-CSharp.dll + + + + + + + + + + 2022.3.62 + 1.12.0 + 1.0.0 + + + + + + diff --git a/HookahPlace/HookahPlace.csproj.user.template b/HookahPlace/HookahPlace.csproj.user.template new file mode 100644 index 0000000..1b05b60 --- /dev/null +++ b/HookahPlace/HookahPlace.csproj.user.template @@ -0,0 +1,30 @@ + + + + + .../Lethal Company/BepInEx/plugins/ + + + .../Lethal Comapny/BepInEx/plugins/MMHOOK/ + + + + + + + + + + + + + + + + + + + diff --git a/HookahPlace/README.md b/HookahPlace/README.md new file mode 100644 index 0000000..b59b1a7 --- /dev/null +++ b/HookahPlace/README.md @@ -0,0 +1,12 @@ +# TODO before release: +- `thunderstore.toml`: + - **Important**: Set `namespace` (this is your author name) and `description` + - Set `websiteUrl` + - Update `DawnLib` version + - Note that the name of your mod is determined by the name of the project, and the version is determined in your `.csproj` +- `.csproj`: + - Update `DawnLib` version +- `HookahPlaceKeys.cs`: + - Look in this file +- Update this README! (it gets used to generate your mods readme) +- Finally, build in the `Release` configuration to create the zip \ No newline at end of file diff --git a/HookahPlace/Thunderstore/CHANGELOG.md b/HookahPlace/Thunderstore/CHANGELOG.md new file mode 100644 index 0000000..6185211 --- /dev/null +++ b/HookahPlace/Thunderstore/CHANGELOG.md @@ -0,0 +1,2 @@ +# 1.0.0 +Inital release \ No newline at end of file diff --git a/HookahPlace/Thunderstore/thunderstore.toml b/HookahPlace/Thunderstore/thunderstore.toml new file mode 100644 index 0000000..72defb0 --- /dev/null +++ b/HookahPlace/Thunderstore/thunderstore.toml @@ -0,0 +1,34 @@ +[config] +schemaVersion = "0.0.1" + +[package] +namespace = "" +description = "" +websiteUrl = "" +containsNsfwContent = false +[package.dependencies] +BepInEx-BepInExPack = "5.4.2100" +TeamXiaolan-DawnLib = "0.4.0" + +[build] +icon = "./icon.png" +readme = "../README.md" +outdir = "../Packages" + +[[build.copy]] +source = "../bin/Release/netstandard2.1/Ratijas.HookahPlace.dll" +target = "BepInEx/plugins/HookahPlace/" + +[[build.copy]] +source = "../res" +target = "BepInEx/plugins/HookahPlace/Assets" + +[[build.copy]] +source = "./CHANGELOG.md" +target = "/" + +[publish] +repository = "https://thunderstore.io" +communities = [ "lethal-company", ] +[publish.categories] +lethal-company = [ "mods", "tools", "libraries", "clientside", "serverside" ] \ No newline at end of file diff --git a/HookahPlace/res/ASSETBUNDLES HERE b/HookahPlace/res/ASSETBUNDLES HERE new file mode 100644 index 0000000..e69de29 diff --git a/HookahPlace/src/Content/ExampleContentHandler.cs b/HookahPlace/src/Content/ExampleContentHandler.cs new file mode 100644 index 0000000..1fe0a70 --- /dev/null +++ b/HookahPlace/src/Content/ExampleContentHandler.cs @@ -0,0 +1,13 @@ +using Dawn; +using Dusk; + +namespace HookahPlace.Content; + +// REMOVE THIS FILE IF NOT USING DUSK +public class ExampleContentHandler : ContentHandler +{ + public ExampleContentHandler(DuskMod mod) : base(mod) + { + RegisterContent("content bundle name here", out DefaultBundle? bundle); + } +} \ No newline at end of file diff --git a/HookahPlace/src/HookahPlace.cs b/HookahPlace/src/HookahPlace.cs new file mode 100644 index 0000000..de984f9 --- /dev/null +++ b/HookahPlace/src/HookahPlace.cs @@ -0,0 +1,36 @@ +using BepInEx; +using BepInEx.Logging; +using System.Reflection; +using UnityEngine; +using Dawn; +using Dawn.Utils; + +namespace HookahPlace; + +[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)] +[BepInDependency(DawnLib.PLUGIN_GUID)] +public class HookahPlace : BaseUnityPlugin +{ + internal new static ManualLogSource Logger { get; private set; } = null!; + + internal static PersistentDataContainer PersistentData { get; private set; } = null!; + + + private void Awake() + { + Logger = base.Logger; + + // Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), MyPluginInfo.PLUGIN_GUID) // uncomment if using Harmony to patch + + + // Example Persistent Data Container Usage + // You can do anything you want with this DataContainer, there are a few additonal ones under the DawnLib class that pertain to actual save files + PersistentData = this.GetPersistentDataContainer(); + + // e.g. track the last version the player played with, could be useful if you want do to stuff like setting migration. + // if you want to do config migration you should use DawnLib.GetCurrentInstallSave instead. + PersistentData.Set(HookahPlaceKeys.LastVersion, MyPluginInfo.PLUGIN_VERSION); + + Logger.LogInfo($"{MyPluginInfo.PLUGIN_GUID} v{MyPluginInfo.PLUGIN_VERSION} has loaded!"); + } +} diff --git a/HookahPlace/src/HookahPlaceKeys.cs b/HookahPlace/src/HookahPlaceKeys.cs new file mode 100644 index 0000000..b2f44ba --- /dev/null +++ b/HookahPlace/src/HookahPlaceKeys.cs @@ -0,0 +1,21 @@ +using Dawn; + +namespace HookahPlace; + +// NamespacedKeys are a big component of how DawnLib works and tracks information, +// therefore you'll end up using quite a few of them +// +// To keep things organised, it's best practice to keep all your keys within a static class like this. +// So instead of doing NamespacedKey.From anywhere in your plugin, you should do it here. +// This way you only create one, and if you want to refactor the name to something, it's much easier. +// +// If you contain lots of keys, you might want to use child classes e.g: HookahPlaceKeys.Items.MyItem +// Note: the use of `partial` here is because of the DawnLib SourceGenerator, which you might not be using. +public static partial class HookahPlaceKeys { + // You may want to update this namespace. It should be "Snake case", e.g: FacilityMeltdown's namespace should be `facility_meltdown` + // You can also shorten it if you want, e.g: `meltdown` + public const string Namespace = "hookah_place"; + + // Data Keys + internal static NamespacedKey LastVersion = NamespacedKey.From(Namespace, "last_version"); +} \ No newline at end of file