// AUTHORED SHIM (not copied). Input / Random / Resources statics + the full KeyCode // enum. Referenced almost entirely by non-battle UI/input files swept into the closure; // headless we never pump input and never load resources, so all of this is inert. using System; namespace UnityEngine { public static partial class Input { public static Vector3 mousePosition => Vector3.zero; public static Vector2 mouseScrollDelta => Vector2.zero; public static int touchCount => 0; public static Touch[] touches => new Touch[0]; public static Touch GetTouch(int i) => default; public static bool anyKey => false; public static bool anyKeyDown => false; public static bool mousePresent => false; public static bool GetMouseButton(int b) => false; public static bool GetMouseButtonDown(int b) => false; public static bool GetMouseButtonUp(int b) => false; public static bool GetKey(KeyCode k) => false; public static bool GetKey(string n) => false; public static bool GetKeyDown(KeyCode k) => false; public static bool GetKeyDown(string n) => false; public static bool GetKeyUp(KeyCode k) => false; public static bool GetButton(string n) => false; public static bool GetButtonDown(string n) => false; public static float GetAxis(string n) => 0f; public static float GetAxisRaw(string n) => 0f; public static string inputString => ""; public static bool multiTouchEnabled { get; set; } } public static class Random { public static float value => 0f; public static int Range(int minInclusive, int maxExclusive) => minInclusive; public static float Range(float min, float max) => min; public static Vector2 insideUnitCircle => Vector2.zero; public static Vector3 insideUnitSphere => Vector3.zero; public static Vector3 onUnitSphere => Vector3.up; public static Quaternion rotation => Quaternion.identity; public static Quaternion rotationUniform => Quaternion.identity; public static int seed { get; set; } public static void InitState(int s) { } public static Color ColorHSV() => Color.white; } public static partial class Resources { public static T Load(string path) where T : Object => null; public static T Load(string path, Type t) where T : Object => null; // Headless: the non-generic Load is used by the copied PrefabMgr to back a prefab // dictionary that the resolution-path ctor then Instantiate()s + GetComponent()s // (e.g. Prefab/Game/UnityEventAgent). Return a cached no-op GameObject per path so that // chain yields a non-null object. Typed asset loads go through the generic Load (null). // ConcurrentDictionary + GetOrAdd so concurrent battle setups don't race on first-miss. private static readonly System.Collections.Concurrent.ConcurrentDictionary _loaded = new System.Collections.Concurrent.ConcurrentDictionary(); public static Object Load(string path) { if (string.IsNullOrEmpty(path)) return null; return _loaded.GetOrAdd(path, static p => new GameObject(p)); } public static Object Load(string path, Type t) => Load(path); public static T[] LoadAll(string path) where T : Object => new T[0]; public static Object[] LoadAll(string path) => new Object[0]; public static ResourceRequest LoadAsync(string path) where T : Object => null; public static ResourceRequest LoadAsync(string path) => null; public static void UnloadAsset(Object o) { } public static AsyncOperation UnloadUnusedAssets() => null; } public class ResourceRequest : AsyncOperation { public Object asset => null; } public enum KeyCode { None = 0, Backspace = 8, Tab = 9, Clear = 12, Return = 13, Pause = 19, Escape = 27, Space = 32, Exclaim = 33, DoubleQuote = 34, Hash = 35, Dollar = 36, Ampersand = 38, Quote = 39, LeftParen = 40, RightParen = 41, Asterisk = 42, Plus = 43, Comma = 44, Minus = 45, Period = 46, Slash = 47, Alpha0 = 48, Alpha1, Alpha2, Alpha3, Alpha4, Alpha5, Alpha6, Alpha7, Alpha8, Alpha9, Colon = 58, Semicolon = 59, Less = 60, Equals = 61, Greater = 62, Question = 63, At = 64, LeftBracket = 91, Backslash = 92, RightBracket = 93, Caret = 94, Underscore = 95, BackQuote = 96, A = 97, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, LeftCurlyBracket = 123, Pipe = 124, RightCurlyBracket = 125, Tilde = 126, Delete = 127, Keypad0 = 256, Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, KeypadPeriod = 266, KeypadDivide = 267, KeypadMultiply = 268, KeypadMinus = 269, KeypadPlus = 270, KeypadEnter = 271, KeypadEquals = 272, UpArrow = 273, DownArrow = 274, RightArrow = 275, LeftArrow = 276, Insert = 277, Home = 278, End = 279, PageUp = 280, PageDown = 281, F1 = 282, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, Numlock = 300, CapsLock = 301, ScrollLock = 302, RightShift = 303, LeftShift = 304, RightControl = 305, LeftControl = 306, RightAlt = 307, LeftAlt = 308, RightCommand = 309, LeftCommand = 310, LeftWindows = 311, RightWindows = 312, AltGr = 313, Help = 315, Print = 316, SysReq = 317, Break = 318, Menu = 319, Mouse0 = 323, Mouse1, Mouse2, Mouse3, Mouse4, Mouse5, Mouse6, JoystickButton0 = 330, JoystickButton1, JoystickButton2, JoystickButton3, JoystickButton4, JoystickButton5, JoystickButton6, JoystickButton7, JoystickButton8, JoystickButton9, JoystickButton10, JoystickButton11, JoystickButton12, JoystickButton13, JoystickButton14, JoystickButton15, JoystickButton16, JoystickButton17, JoystickButton18, JoystickButton19 } }