Make everything more attribute-based, WIP

This commit is contained in:
ang-xd committed 2024-05-14 20:18:03 -04:00
1 parent 5f29175235
commit 658e3659c5
25 files changed
+621 -99

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
using MiraAPI.Roles;
using UnityEngine;
namespace MiraAPI.Example
{
[RegisterCustomRole(ExamplePlugin.Id)]
public class CustomRole : CrewmateRole, ICustomRole
{
public string RoleName => "Sussy Baka";
public string RoleDescription => "Role decs?";
public string RoleLongDescription => "Extra role decs?";
public Color RoleColor => Palette.Orange;
public RoleTeamTypes Team => RoleTeamTypes.Crewmate;
}
}
+16
View File
@@ -0,0 +1,16 @@
using MiraAPI.API.GameOptions;
using MiraAPI.GameOptions;
using MiraAPI.GameOptions.Attributes;
using MiraAPI.Utilities;
using MiraAPI.Utilities.Assets;
using UnityEngine;
namespace MiraAPI.Example
{
[RegisterCustomOptions(ExamplePlugin.Id)]
public class ExampleOptions : IModOptions
{
public LoadableAsset<Sprite> OptionsTabIcon => MiraAssets.Empty;
public static CustomToggleOption YeOrNa = new CustomToggleOption("Ye or Na", true);
}
}
+24
View File
@@ -0,0 +1,24 @@
using BepInEx;
using BepInEx.Unity.IL2CPP;
using HarmonyLib;
using Reactor;
using Reactor.Networking;
using Reactor.Networking.Attributes;
namespace MiraAPI.Example;
[BepInAutoPlugin("mira.example", "MiraAPIExample")]
[BepInProcess("Among Us.exe")]
[BepInDependency(ReactorPlugin.Id)]
[ReactorModFlags(ModFlags.RequireOnAllClients)]
public partial class ExamplePlugin : BasePlugin
{
public Harmony Harmony { get; } = new(Id);
public static ExamplePlugin Instance { get; private set; }
public override void Load()
{
Instance = this;
Harmony.PatchAll();
}
}
+37
View File
@@ -0,0 +1,37 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>latest</LangVersion>
<DebugType>embedded</DebugType>
<VersionPrefix>1.0.0</VersionPrefix>
<VersionSuffix>dev</VersionSuffix>
<Description>Simple and easy to use Among Us modding API.</Description>
<Authors>Angxl, XtraCube</Authors>
</PropertyGroup>
<PropertyGroup>
<GamePlatform Condition="'$(GamePlatform)' == ''">Steam</GamePlatform>
<GameVersion Condition="'$(GamePlatform)' == 'Steam'">2024.3.5</GameVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Reactor" Version="2.2.0" />
<PackageReference Include="BepInEx.Unity.IL2CPP" Version="6.0.0-be.688" Private="false" ExcludeAssets="runtime;native" />
<PackageReference Include="Iced" Version="1.20.0" />
<PackageReference Include="AmongUs.GameLibs.Steam" Version="2024.3.5" PrivateAssets="all" />
<PackageReference Include="BepInEx.AutoPlugin" Version="1.1.0" PrivateAssets="all" />
<PackageReference Include="BepInEx.IL2CPP.MSBuild" Version="2.1.0-rc.1" PrivateAssets="all" ExcludeAssets="runtime">
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MiraAPI\MiraAPI.csproj" />
</ItemGroup>
<Target Name="Copy" AfterTargets="Build" Condition="'$(AmongUs)' != ''">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(AmongUs)/BepInEx/plugins/" />
</Target>
</Project>