|
|
@@ -29,8 +29,15 @@ using GamecraftModdingAPI.Blocks; |
|
|
|
using GamecraftModdingAPI.Input; |
|
|
|
using GamecraftModdingAPI.Interface.IMGUI; |
|
|
|
using GamecraftModdingAPI.Players; |
|
|
|
using GamecraftModdingAPI.Tasks; |
|
|
|
using RobocraftX.Common.Input; |
|
|
|
using RobocraftX.CR.MainGame; |
|
|
|
using RobocraftX.GUI.CommandLine; |
|
|
|
using RobocraftX.Multiplayer; |
|
|
|
using RobocraftX.StateSync; |
|
|
|
using Svelto.Context; |
|
|
|
using Svelto.DataStructures; |
|
|
|
using Svelto.Services; |
|
|
|
using UnityEngine.AddressableAssets; |
|
|
|
using UnityEngine.AddressableAssets.ResourceLocators; |
|
|
|
using UnityEngine.ResourceManagement.AsyncOperations; |
|
|
@@ -493,6 +500,114 @@ namespace GamecraftModdingAPI.Tests |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[HarmonyPatch] |
|
|
|
public static class MainGamePatch |
|
|
|
{ |
|
|
|
public static void Postfix(Transform mainGameTransform) |
|
|
|
{ |
|
|
|
//CommandLineCompositionRoot.Init(mainGameTransform).RunOn(Scheduler.extraLeanRunner); - uREPL C# compilation not supported anymore |
|
|
|
} |
|
|
|
|
|
|
|
public static MethodInfo TargetMethod() |
|
|
|
{ |
|
|
|
return AccessTools.Method(typeof(MainGameCompositionRoot), "Init"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[HarmonyPatch] |
|
|
|
public static class MainGamePatch2 |
|
|
|
{ |
|
|
|
public static void Postfix(UnityContext<MainGameCompositionRoot> contextHolder, |
|
|
|
Action reloadGame, MultiplayerInitParameters multiplayerParameters, |
|
|
|
StateSyncRegistrationHelper stateSyncReg) |
|
|
|
{ |
|
|
|
/*CommandLineCompositionRoot.Compose(contextHolder, stateSyncReg.enginesRoot, reloadGame, multiplayerParameters, |
|
|
|
stateSyncReg); - uREPL C# compilation not supported anymore */ |
|
|
|
var enginesRoot = stateSyncReg.enginesRoot; |
|
|
|
var entityFunctions = enginesRoot.GenerateEntityFunctions(); |
|
|
|
var entityFactory = enginesRoot.GenerateEntityFactory(); |
|
|
|
var entitySerializer = enginesRoot.GenerateEntitySerializer(); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteSetGravityCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteSetPhysicsPrecisionCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteSetPhysicsFrequencyCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName( |
|
|
|
"RobocraftX.GUI.CommandLine.ExecuteClearAllPartsCommandEngine"), |
|
|
|
entityFunctions)); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteHelpCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName( |
|
|
|
"RobocraftX.GUI.CommandLine.ExecuteSetLinearRestingThresholdCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName( |
|
|
|
"RobocraftX.GUI.CommandLine.ExecuteSetAngularRestingThresholdCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteEnableVisualProfilerCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteSetNetworkJitterFramesEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteSetSendConnectedEntitiesCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteSetMaxSimFramesEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.SetDebugDisplayExtraInfoCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.SetNetSyncBandwidthLimitCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ThrowExceptionCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.SetPriorityCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.TeleportCharacterCommandEngine"), |
|
|
|
entityFactory)); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ChangeTextBlockTextCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.SetCharacterRunSpeedCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.SetCameraZoomDistanceCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.EditLightingSettingsCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.EditSkySettingsCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.EditFogSettingsCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.TeleportCharacterImplementationEngine"), |
|
|
|
entityFunctions)); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteConnectToServerCommandEngine"), |
|
|
|
entityFunctions, entitySerializer, reloadGame, multiplayerParameters)); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.SetInputBroadcastCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteSetJointInertiaTensorCommandEngine"))); |
|
|
|
enginesRoot.AddEngine( |
|
|
|
(IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.CommandLineInputEngine"))); |
|
|
|
stateSyncReg.AddDeterministicEngine( |
|
|
|
(IDeterministicEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ExecuteCommandEngine"))); |
|
|
|
enginesRoot.AddEngine( |
|
|
|
(IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.ChangeTeamCommandEngine"))); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.DamageCharacterCommandEngine"), entityFactory)); |
|
|
|
enginesRoot.AddEngine((IEngine) Activator.CreateInstance( |
|
|
|
AccessTools.TypeByName("RobocraftX.GUI.CommandLine.DisableCharacterDamageCommandEngine"))); |
|
|
|
} |
|
|
|
|
|
|
|
public static MethodInfo TargetMethod() |
|
|
|
{ |
|
|
|
return AccessTools.Method(typeof(MainGameCompositionRoot), "DeterministicCompose") |
|
|
|
.MakeGenericMethod(typeof(UnityContext<MainGameCompositionRoot>)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[CustomBlock("customCatalog.json", "Assets/Prefabs/Cube.prefab", "strAluminiumCube", SortIndex = 12)] |
|
|
|
public class TestBlock : CustomBlock |
|
|
|
{ |
|
|
|