Compare commits
4 Commits
7334892c45
...
1.2.0
| Author | SHA1 | Date | |
|---|---|---|---|
| b20ac98410 | |||
| 89236bc66a | |||
| 21ad8f57da | |||
| 4f5f4f46bd |
22
Behavior.cs
Normal file
22
Behavior.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace BetterStuff;
|
||||
public class Behaviour : MonoBehaviour
|
||||
{
|
||||
private float timer = 2f;
|
||||
private void Update()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
if(timer >= 2f)
|
||||
{
|
||||
timer = 0f;
|
||||
foreach (SecurityGuardAnimationController controller in Resources.FindObjectsOfTypeAll<SecurityGuardAnimationController>())
|
||||
{
|
||||
controller.m_Agent.speed = Plugin.securityGuardSpeed.Value;
|
||||
controller.m_Agent.acceleration *= Plugin.acceleration;
|
||||
controller.m_Agent.angularSpeed *= Plugin.angularSpeed;
|
||||
controller.m_AnimationWalkingSpeed = Plugin.securityGuardSpeed.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<AssemblyName>BetterStuff</AssemblyName>
|
||||
<Product>Better Stuff</Product>
|
||||
<Version>1.0.0</Version>
|
||||
<Version>1.1.0</Version>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<RestoreAdditionalProjectSources>
|
||||
|
||||
35
CHANGELOG
Normal file
35
CHANGELOG
Normal file
@@ -0,0 +1,35 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.2.0] - 2026-04-03
|
||||
|
||||
### Added
|
||||
- Increased the walk speed of backer
|
||||
|
||||
### Fixed
|
||||
- Fix securityguard walkspeed don't work
|
||||
|
||||
## [1.1.1] - 2026-03-31
|
||||
|
||||
### Fixed
|
||||
- Fix janitor walkspeed don't work
|
||||
|
||||
## [1.1.0] - 2026-01-25
|
||||
|
||||
### Added
|
||||
- Increased the walk speed of janitors, security guards and customer helpers
|
||||
- Increased the scanning speed of customer helpers, customers and player on self checkouts
|
||||
- Config contains the default gamevalues of each option
|
||||
|
||||
## [1.0.0] - 2026-01-09
|
||||
|
||||
### Added
|
||||
- Initial release
|
||||
- Increased the scanning speed of cashiers
|
||||
- Increased the time until the paymentprocess is finished
|
||||
- Increased the time between scanningprocess an paymentprocess
|
||||
- Increased the walk speed of restockers
|
||||
189
Plugin.cs
189
Plugin.cs
@@ -1,25 +1,39 @@
|
||||
using System;
|
||||
using __Project__.Scripts.Janitor;
|
||||
using BepInEx;
|
||||
using BepInEx.Configuration;
|
||||
using BepInEx.Logging;
|
||||
using BepInEx.Unity.IL2CPP;
|
||||
using HarmonyLib;
|
||||
using Il2CppInterop.Runtime.Injection;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Playables;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace BetterStuff;
|
||||
|
||||
[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
|
||||
[BepInPlugin(PLUGIN_GUID, PLUGIN_NAME, PLUGIN_VERSION)]
|
||||
public class Plugin : BasePlugin
|
||||
{
|
||||
public const string PLUGIN_GUID = "de.mpburgmann.BetterStuff";
|
||||
public const string PLUGIN_NAME = "Better Stuff";
|
||||
public const string PLUGIN_VERSION = "1.2.0";
|
||||
internal static new ManualLogSource Log;
|
||||
|
||||
private static ConfigEntry<float> scanTimeMin;
|
||||
private static ConfigEntry<float> scanTimeMax;
|
||||
public const float acceleration = 200f;
|
||||
public const float angularSpeed = 200f;
|
||||
|
||||
private static ConfigEntry<float> scanTime;
|
||||
private static ConfigEntry<float> finishDuration;
|
||||
private static ConfigEntry<float> timeAfterScans;
|
||||
|
||||
private static ConfigEntry<float> restockerSpeed;
|
||||
private static ConfigEntry<float> selfcheckoutCustomerSpeed;
|
||||
private static ConfigEntry<float> selfcheckoutPlayerSpeed;
|
||||
private static ConfigEntry<float> customerHelperScanningSpeed;
|
||||
private static ConfigEntry<float> customerHelperSpeed;
|
||||
public static ConfigEntry<float> securityGuardSpeed;
|
||||
private static ConfigEntry<float> janitorSpeed;
|
||||
private static ConfigEntry<float> bakerSpeed;
|
||||
|
||||
|
||||
public override void Load()
|
||||
{
|
||||
@@ -27,54 +41,151 @@ public class Plugin : BasePlugin
|
||||
Log = base.Log;
|
||||
Log.LogInfo($"Plugin {MyPluginInfo.PLUGIN_GUID} is loaded!");
|
||||
|
||||
Plugin.scanTimeMin = Config.Bind("Cashier Scantime", "min", 0.2f);
|
||||
Plugin.scanTimeMax = Config.Bind("Cashier Scantime", "max", 0.8f);
|
||||
Plugin.finishDuration = Config.Bind("Cashier PaymentTime", "FinishingDuration", 1f);
|
||||
Plugin.timeAfterScans = Config.Bind("Cashier PaymentTime", "TimeAfterAllScans", 0.5f);
|
||||
scanTime = Config.Bind("Cashier", "Scanning Speed", 0.7f, "Default vanilla value is 1.5.");
|
||||
finishDuration = Config.Bind("Cashier", "FinishingDuration", 1f, "Default vanilla value is 2.");
|
||||
timeAfterScans = Config.Bind("Cashier", "TimeAfterAllScans", 0.5f, "Default vanilla value is 1.");
|
||||
|
||||
Plugin.restockerSpeed = Config.Bind("Restocker", "Speed", 5f);
|
||||
restockerSpeed = Config.Bind("Restocker", "Speed", 5f, "Default value is 2.");
|
||||
|
||||
Harmony harmony = new(MyPluginInfo.PLUGIN_GUID);
|
||||
selfcheckoutCustomerSpeed = Config.Bind("Selfcheckout", "Customer Speed", 0.6f, "Default vanilla value is 1.8.");
|
||||
selfcheckoutPlayerSpeed = Config.Bind("Selfcheckout", "Player Speed", 0.3f, "Default vanilla value is 0.6.");
|
||||
|
||||
customerHelperScanningSpeed = Config.Bind("Customer Helper", "Scanning Speed", 0.5f, "Default vanilla value is 1.5.");
|
||||
customerHelperSpeed = Config.Bind("Customer Helper", "Speed", 5f, "Default vanilla value is 2.");
|
||||
|
||||
securityGuardSpeed = Config.Bind("Security Guard", "Speed", 5f, "Default vanilla value is 2.");
|
||||
|
||||
janitorSpeed = Config.Bind("Janitor", "Speed", 5f, "Default vanilla value is 2.");
|
||||
|
||||
bakerSpeed = Config.Bind("Baker", "Speed", 5f, "Default vanilla value is 2.");
|
||||
|
||||
|
||||
Harmony harmony = new(PLUGIN_GUID);
|
||||
harmony.PatchAll();
|
||||
|
||||
SceneManager.sceneLoaded += (UnityAction<Scene, LoadSceneMode>) OnSceneLoaded;
|
||||
}
|
||||
|
||||
public static class CashierPatch
|
||||
[HarmonyPatch(typeof(Cashier), "Start")]
|
||||
public static class Cashier_Start_Patch
|
||||
{
|
||||
[HarmonyPatch(typeof(Cashier), "Start")]
|
||||
public static class Cashier_Start_Patch
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Cashier __instance)
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Cashier __instance)
|
||||
{
|
||||
__instance.ScanningInterval = UnityEngine.Random.Range(Plugin.scanTimeMin.Value, Plugin.scanTimeMax.Value);
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(Checkout), "FinishedScanning")]
|
||||
public static class Cashier_Checkout_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Checkout __instance)
|
||||
{
|
||||
__instance.m_AutomatedCheckout.m_FinishingPaymentDuration = Plugin.finishDuration.Value;
|
||||
__instance.m_AutomatedCheckout.m_IntervalAfterScanningAll = Plugin.timeAfterScans.Value;
|
||||
}
|
||||
__instance.ScanningInterval = scanTime.Value;
|
||||
}
|
||||
}
|
||||
|
||||
public static class RestockerPatch
|
||||
[HarmonyPatch(typeof(Checkout), "FinishedScanning")]
|
||||
public static class Cashier_Checkout_Patch
|
||||
{
|
||||
[HarmonyPatch(typeof(Restocker), "Start")]
|
||||
public static class Restocker_Start_Patch
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Checkout __instance)
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Restocker __instance)
|
||||
if(!__instance.m_IsSelfCheckout)
|
||||
{
|
||||
__instance.m_Agent.speed = Plugin.restockerSpeed.Value;
|
||||
__instance.m_Agent.acceleration *= 200f;
|
||||
__instance.m_Agent.angularSpeed *= 200f;
|
||||
__instance.m_AutomatedCheckout.m_FinishingPaymentDuration = finishDuration.Value;
|
||||
__instance.m_AutomatedCheckout.m_IntervalAfterScanningAll = timeAfterScans.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(Restocker), "Start")]
|
||||
public static class Restocker_Start_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Restocker __instance)
|
||||
{
|
||||
__instance.m_Agent.speed = restockerSpeed.Value;
|
||||
__instance.m_Agent.acceleration *= acceleration;
|
||||
__instance.m_Agent.angularSpeed *= angularSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(Checkout), "Start")]
|
||||
public static class Selfcheckout_Start_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Checkout __instance)
|
||||
{
|
||||
if (__instance.m_IsSelfCheckout)
|
||||
{
|
||||
__instance.m_SelfCheckout.m_CustomerScanningInterval = selfcheckoutCustomerSpeed.Value;
|
||||
__instance.m_SelfCheckout.m_PlayerScanningInterval = selfcheckoutPlayerSpeed.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(CustomerHelper), "Start")]
|
||||
public static class CustomerHelper_Start_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(CustomerHelper __instance)
|
||||
{
|
||||
__instance.ScanningInterval = customerHelperScanningSpeed.Value;
|
||||
__instance.m_CustomerHelperScanIntervals = new Il2CppSystem.Collections.Generic.List<float>(1);
|
||||
__instance.m_CustomerHelperScanIntervals.Add(customerHelperScanningSpeed.Value);
|
||||
__instance.m_Agent.speed = customerHelperSpeed.Value;
|
||||
__instance.m_Agent.acceleration *= acceleration;
|
||||
__instance.m_Agent.angularSpeed *= angularSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
// [HarmonyPatch(typeof(SecurityGuardAnimationController), "Start")]
|
||||
// public static class SecurityGuardAnimationController_Start_Patch
|
||||
// {
|
||||
// [HarmonyPostfix]
|
||||
// public static void Postfix(SecurityGuardAnimationController __instance)
|
||||
// {
|
||||
// __instance.m_Agent.speed = securityGuardSpeed.Value;
|
||||
// __instance.m_Agent.acceleration *= acceleration;
|
||||
// __instance.m_Agent.angularSpeed *= angularSpeed;
|
||||
|
||||
// }
|
||||
// }
|
||||
|
||||
[HarmonyPatch(typeof(Janitor), "Start")]
|
||||
public static class Janitor_Start_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Janitor __instance)
|
||||
{
|
||||
__instance.m_Agent.speed = janitorSpeed.Value;
|
||||
__instance.m_Agent.acceleration *= acceleration;
|
||||
__instance.m_Agent.angularSpeed *= angularSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(Baker), "Start")]
|
||||
public static class Baker_Start_Patch
|
||||
{
|
||||
[HarmonyPostfix]
|
||||
public static void Postfix(Baker __instance)
|
||||
{
|
||||
__instance.m_Agent.speed = bakerSpeed.Value;
|
||||
__instance.m_Agent.acceleration *= acceleration;
|
||||
__instance.m_Agent.angularSpeed *= angularSpeed;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private static void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
||||
{
|
||||
if (scene.name == "Main Scene")
|
||||
{
|
||||
ClassInjector.RegisterTypeInIl2Cpp<Behaviour>();
|
||||
GameObject gameObject = new("BetterStuffBehaviour");
|
||||
Object.DontDestroyOnLoad(gameObject);
|
||||
gameObject.AddComponent<Behaviour>();
|
||||
}
|
||||
|
||||
if(scene.name == "Main Menu")
|
||||
{
|
||||
Object gameObject = GameObject.Find("BetterStuffBehaviour");
|
||||
if(gameObject != null)
|
||||
{
|
||||
Object.Destroy(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user