using DataLoader; using HarmonyLib; using RobocraftX; using RobocraftX.CR.MainGame; using RobocraftX.GUI; using RobocraftX.Multiplayer; using Svelto.Context; using Svelto.DataStructures; using Svelto.ECS; using Svelto.ECS.GUI; using Techblox.GameSelection; using UnityEngine; using Unity.Entities; using Unity.Physics.Systems; namespace TechbloxModdingAPI.Utility { /// /// Public access to the private variables in RobocraftX.FullGameCompositionRoot /// public static class FullGameFields { public static FullGameCompositionRoot Instance { private set; get; } = null; public static MultiplayerInitParameters _multiplayerParams { get { return (MultiplayerInitParameters)fgcr?.Field("_multiplayerParams").GetValue(); } } public static EnginesRoot _frontEndEnginesRoot { get { return (EnginesRoot)fgcr?.Field("_frontEndEnginesRoot").GetValue(); } } public static EnginesRoot _mainGameEnginesRoot { get { return (EnginesRoot)fgcr?.Field("_mainGameEnginesRoot").GetValue(); } } public static World _physicsWorld { get { return (World)fgcr?.Field("_physicsWorld").GetValue(); } } public static World _renderingWorld { get { return (World)fgcr?.Field("_renderingWorld").GetValue(); } } public static BuildPhysicsWorld _physicsWorldSystem { get { return (BuildPhysicsWorld)fgcr?.Field("_physicsWorldSystem").GetValue(); } } public static UnityContext _contextHolder { get { return (UnityContext)fgcr?.Field("_contextHolder").GetValue(); } } public static GameObject _frontEndGo { get { return (GameObject)fgcr?.Field("_frontEndGo").GetValue(); } } public static GameObject _mainGameGo { get { return (GameObject)fgcr?.Field("_mainGameGo").GetValue(); } } /*public static UnityEntitySubmissionScheduler _frontEndSubmissionScheduler { get { return (UnityEntitySubmissionScheduler)fgcr?.Field("_frontEndSubmissionScheduler").GetValue(); } }*/ public static LoadingScreenImplementer _loadingScreen { get { return (LoadingScreenImplementer)fgcr?.Field("_loadingScreen").GetValue(); } } public static IDataDB _dataDb { get { return (IDataDB)fgcr?.Field("_dataDb").GetValue(); } } public static ECSResourceManagers _managers { get { return (ECSResourceManagers)fgcr?.Field("_managers").GetValue(); } } public static bool _isQuitting { get { return (bool)fgcr?.Field("_isQuitting").GetValue(); } } public static FasterList _deserialisedBlockMap { get { return (FasterList) fgcr?.Field("_deserialisedBlockMap").GetValue(); } } public static SveltoGUI _frontEndGUI { get { return (SveltoGUI)fgcr?.Field("_frontEndGUI").GetValue(); } } public static GameSelectionData _gameSelectionData { get { return (GameSelectionData)fgcr?.Field("_gameSelectionData").GetValue(); } } private static Traverse fgcr; public static void Init(FullGameCompositionRoot instance) { fgcr = new Traverse(instance); FullGameFields.Instance = instance; } } }