Start updating to 2021.12.14.17.00
A bunch of errors still
This commit is contained in:
parent
fef66c349d
commit
2a1782cd82
18 changed files with 779 additions and 677 deletions
|
@ -39,7 +39,7 @@ if __name__ == "__main__":
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
print("Building Assembly references")
|
print("Building Assembly references")
|
||||||
asmXml = buildReferencesXml("../ref/TechbloxPreview_Data/Managed")
|
asmXml = buildReferencesXml("../ref_preview/TechbloxPreview_Data/Managed")
|
||||||
# print(asmXml)
|
# print(asmXml)
|
||||||
|
|
||||||
with open("../TechbloxModdingAPI/TechbloxModdingAPI.csproj", "r") as xmlFile:
|
with open("../TechbloxModdingAPI/TechbloxModdingAPI.csproj", "r") as xmlFile:
|
||||||
|
|
|
@ -1,23 +1,27 @@
|
||||||
namespace TechbloxModdingAPI.App
|
using System;
|
||||||
|
|
||||||
|
namespace TechbloxModdingAPI.App
|
||||||
{
|
{
|
||||||
public enum CurrentGameMode
|
public enum CurrentGameMode
|
||||||
{
|
{
|
||||||
None,
|
None,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Building a game
|
/// Building a world
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Build,
|
Build,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Playing a game
|
/// Playing on a map
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Play,
|
Play,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Viewing a prefab
|
/// Viewing a prefab (doesn't exist anymore)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[Obsolete]
|
||||||
View,
|
View,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Viewing a tutorial
|
/// Viewing a tutorial (doesn't exist anymore)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
[Obsolete]
|
||||||
Tutorial
|
Tutorial
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,12 +2,10 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
using RobocraftX.Common;
|
|
||||||
using RobocraftX.GUI.MyGamesScreen;
|
using RobocraftX.GUI.MyGamesScreen;
|
||||||
using RobocraftX.StateSync;
|
|
||||||
using Svelto.ECS;
|
using Svelto.ECS;
|
||||||
|
using Techblox.GameSelection;
|
||||||
|
|
||||||
using TechbloxModdingAPI;
|
|
||||||
using TechbloxModdingAPI.Blocks;
|
using TechbloxModdingAPI.Blocks;
|
||||||
using TechbloxModdingAPI.Tasks;
|
using TechbloxModdingAPI.Tasks;
|
||||||
using TechbloxModdingAPI.Utility;
|
using TechbloxModdingAPI.Utility;
|
||||||
|
@ -318,7 +316,7 @@ namespace TechbloxModdingAPI.App
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (menuMode || !VerifyMode()) return CurrentGameMode.None;
|
if (menuMode || !VerifyMode()) return CurrentGameMode.None;
|
||||||
return (CurrentGameMode) GameMode.CurrentMode;
|
return gameEngine.GetGameData().gameMode == GameMode.CreateWorld ? CurrentGameMode.Build : CurrentGameMode.Play;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace TechbloxModdingAPI.App
|
||||||
{
|
{
|
||||||
if (async)
|
if (async)
|
||||||
{
|
{
|
||||||
ExitCurrentGameAsync().RunOn(Lean.EveryFrameStepRunner_TimeRunningAndStopped);
|
ExitCurrentGameAsync().RunOn(ClientLean.EveryFrameStepRunner_TimeRunningAndStopped);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,16 +3,14 @@ using System.Reflection;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
|
|
||||||
using RobocraftX;
|
using RobocraftX;
|
||||||
using RobocraftX.Common;
|
|
||||||
using RobocraftX.FrontEnd;
|
|
||||||
using RobocraftX.GUI;
|
using RobocraftX.GUI;
|
||||||
using RobocraftX.GUI.MyGamesScreen;
|
using RobocraftX.GUI.MyGamesScreen;
|
||||||
using Svelto.ECS;
|
using Svelto.ECS;
|
||||||
using Svelto.ECS.Experimental;
|
using Svelto.ECS.Experimental;
|
||||||
using Techblox.GameSelection;
|
using Techblox.GameSelection;
|
||||||
|
|
||||||
using TechbloxModdingAPI.Engines;
|
using TechbloxModdingAPI.Engines;
|
||||||
using TechbloxModdingAPI.Utility;
|
using TechbloxModdingAPI.Utility;
|
||||||
using GameMode = RobocraftX.Common.GameMode;
|
|
||||||
|
|
||||||
namespace TechbloxModdingAPI.App
|
namespace TechbloxModdingAPI.App
|
||||||
{
|
{
|
||||||
|
@ -107,11 +105,10 @@ namespace TechbloxModdingAPI.App
|
||||||
|
|
||||||
public bool EnterGame(string gameName, string fileId, bool autoEnterSim = false)
|
public bool EnterGame(string gameName, string fileId, bool autoEnterSim = false)
|
||||||
{
|
{
|
||||||
GameMode.CurrentMode = autoEnterSim ? RCXMode.Play : RCXMode.Build;
|
|
||||||
var data = new GameSelectionData
|
var data = new GameSelectionData
|
||||||
{
|
{
|
||||||
gameMode = Techblox.GameSelection.GameMode.PlayGame,
|
gameMode = Techblox.GameSelection.GameMode.PlayGame,
|
||||||
gameType = GameType.MachineEditor,
|
isOnline = false,
|
||||||
saveName = gameName,
|
saveName = gameName,
|
||||||
saveType = SaveType.ExistingSave,
|
saveType = SaveType.ExistingSave,
|
||||||
gameID = "GAMEID_Road_Track", //TODO: Expose to the API
|
gameID = "GAMEID_Road_Track", //TODO: Expose to the API
|
||||||
|
|
|
@ -8,9 +8,10 @@ using Svelto.ECS.EntityStructs;
|
||||||
using RobocraftX.Common;
|
using RobocraftX.Common;
|
||||||
using RobocraftX.Blocks;
|
using RobocraftX.Blocks;
|
||||||
using Unity.Mathematics;
|
using Unity.Mathematics;
|
||||||
using Gamecraft.Blocks.GUI;
|
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using RobocraftX.PilotSeat;
|
using RobocraftX.PilotSeat;
|
||||||
|
using RobocraftX.Rendering;
|
||||||
|
using Techblox.BlockLabels;
|
||||||
|
|
||||||
using TechbloxModdingAPI.Blocks;
|
using TechbloxModdingAPI.Blocks;
|
||||||
using TechbloxModdingAPI.Blocks.Engines;
|
using TechbloxModdingAPI.Blocks.Engines;
|
||||||
|
@ -342,11 +343,9 @@ namespace TechbloxModdingAPI
|
||||||
[TestValue(null)]
|
[TestValue(null)]
|
||||||
public string Label
|
public string Label
|
||||||
{
|
{
|
||||||
get => BlockEngine.GetBlockInfoViewComponent<TextLabelEntityViewStruct>(this).textLabelComponent?.text;
|
get => BlockEngine.GetBlockInfo<LabelResourceIDComponent>(this).ToString(); //TODO: Block labels
|
||||||
set
|
set
|
||||||
{
|
{ //TODO
|
||||||
var comp = BlockEngine.GetBlockInfoViewComponent<TextLabelEntityViewStruct>(this).textLabelComponent;
|
|
||||||
if (comp != null) comp.text = value;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
|
|
||||||
copyToBlock.Invoke(Patch.copyEngine, new object[] {pickedBlock.ID, pickedBlock});
|
copyToBlock.Invoke(Patch.copyEngine, new object[] {pickedBlock.ID, pickedBlock});
|
||||||
|
|
||||||
ExclusiveGroupStruct group = WiresExclusiveGroups.WIRES_COPY_GROUP + playerID;
|
ExclusiveGroupStruct group = BuildModeWiresGroups.WIRES_COPY_GROUP + playerID;
|
||||||
copyWireToBlock.Invoke(Patch.createWireEngine, new object[] {group, pickedBlock.ID});
|
copyWireToBlock.Invoke(Patch.createWireEngine, new object[] {group, pickedBlock.ID});
|
||||||
|
|
||||||
pickedBlock.placedBlockTweaksMustCopy = false;
|
pickedBlock.placedBlockTweaksMustCopy = false;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
using RobocraftX.Common;
|
using RobocraftX.Common;
|
||||||
using RobocraftX.UECS;
|
|
||||||
using Svelto.ECS;
|
using Svelto.ECS;
|
||||||
using Svelto.ECS.EntityStructs;
|
using Svelto.ECS.EntityStructs;
|
||||||
using Unity.Mathematics;
|
using Unity.Mathematics;
|
||||||
|
|
|
@ -54,7 +54,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
//RobocraftX.CR.MachineEditing.PlaceSingleBlockEngine
|
//RobocraftX.CR.MachineEditing.PlaceSingleBlockEngine
|
||||||
DBEntityStruct dbEntity = new DBEntityStruct {DBID = block};
|
DBEntityStruct dbEntity = new DBEntityStruct {DBID = block};
|
||||||
|
|
||||||
EntityInitializer structInitializer = _blockEntityFactory.Build(CommonExclusiveGroups.nextBlockEntityID, block); //The ghost block index is only used for triggers
|
//TODO: Test
|
||||||
|
EntityInitializer structInitializer = _blockEntityFactory.Build(CommonExclusiveGroups.blockIDGeneratorClient.Next(), block); //The ghost block index is only used for triggers
|
||||||
uint prefabAssetID = structInitializer.Has<PrefabAssetIDComponent>()
|
uint prefabAssetID = structInitializer.Has<PrefabAssetIDComponent>()
|
||||||
? structInitializer.Get<PrefabAssetIDComponent>().prefabAssetID
|
? structInitializer.Get<PrefabAssetIDComponent>().prefabAssetID
|
||||||
: throw new BlockException("Prefab asset ID not found!"); //Set by the game
|
: throw new BlockException("Prefab asset ID not found!"); //Set by the game
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
|
|
||||||
public WireEntityStruct CreateNewWire(EGID startBlock, byte startPort, EGID endBlock, byte endPort)
|
public WireEntityStruct CreateNewWire(EGID startBlock, byte startPort, EGID endBlock, byte endPort)
|
||||||
{
|
{
|
||||||
EGID wireEGID = new EGID(WiresExclusiveGroups.NewWireEntityId, NamedExclusiveGroup<WiresGroup>.Group);
|
EGID wireEGID = new EGID(BuildModeWiresGroups.NewWireEntityId, BuildModeWiresGroups.WiresGroup.Group);
|
||||||
EntityInitializer wireInitializer = Factory.BuildEntity<WireEntityDescriptor>(wireEGID);
|
EntityInitializer wireInitializer = Factory.BuildEntity<WireEntityDescriptor>(wireEGID);
|
||||||
wireInitializer.Init(new WireEntityStruct
|
wireInitializer.Init(new WireEntityStruct
|
||||||
{
|
{
|
||||||
|
@ -77,8 +77,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
public ref PortEntityStruct GetPortByOffset(BlockPortsStruct bps, byte portNumber, bool input)
|
public ref PortEntityStruct GetPortByOffset(BlockPortsStruct bps, byte portNumber, bool input)
|
||||||
{
|
{
|
||||||
ExclusiveGroup group = input
|
ExclusiveGroup group = input
|
||||||
? NamedExclusiveGroup<InputPortsGroup>.Group
|
? NamedExclusiveGroup<BuildModeWiresGroups.InputPortsGroup>.Group
|
||||||
: NamedExclusiveGroup<OutputPortsGroup>.Group;
|
: NamedExclusiveGroup<BuildModeWiresGroups.OutputPortsGroup>.Group;
|
||||||
uint id = (input ? bps.firstInputID : bps.firstOutputID) + portNumber;
|
uint id = (input ? bps.firstInputID : bps.firstOutputID) + portNumber;
|
||||||
EGID egid = new EGID(id, group);
|
EGID egid = new EGID(id, group);
|
||||||
if (!entitiesDB.Exists<PortEntityStruct>(egid))
|
if (!entitiesDB.Exists<PortEntityStruct>(egid))
|
||||||
|
@ -193,7 +193,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
EGID[] inputs = new EGID[ports.inputCount];
|
EGID[] inputs = new EGID[ports.inputCount];
|
||||||
for (uint i = 0; i < ports.inputCount; i++)
|
for (uint i = 0; i < ports.inputCount; i++)
|
||||||
{
|
{
|
||||||
inputs[i] = new EGID(i + ports.firstInputID, NamedExclusiveGroup<InputPortsGroup>.Group);
|
inputs[i] = new EGID(i + ports.firstInputID, NamedExclusiveGroup<BuildModeWiresGroups.InputPortsGroup>.Group);
|
||||||
}
|
}
|
||||||
return inputs;
|
return inputs;
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
EGID[] outputs = new EGID[ports.outputCount];
|
EGID[] outputs = new EGID[ports.outputCount];
|
||||||
for (uint i = 0; i < ports.outputCount; i++)
|
for (uint i = 0; i < ports.outputCount; i++)
|
||||||
{
|
{
|
||||||
outputs[i] = new EGID(i + ports.firstOutputID, NamedExclusiveGroup<OutputPortsGroup>.Group);
|
outputs[i] = new EGID(i + ports.firstOutputID, NamedExclusiveGroup<BuildModeWiresGroups.OutputPortsGroup>.Group);
|
||||||
}
|
}
|
||||||
return outputs;
|
return outputs;
|
||||||
}
|
}
|
||||||
|
@ -219,8 +219,8 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
if (!entitiesDB.Exists<BlockPortsStruct>(block))
|
if (!entitiesDB.Exists<BlockPortsStruct>(block))
|
||||||
return default;
|
return default;
|
||||||
var group = output
|
var group = output
|
||||||
? NamedExclusiveGroup<OutputPortsGroup>.Group
|
? NamedExclusiveGroup<BuildModeWiresGroups.OutputPortsGroup>.Group
|
||||||
: NamedExclusiveGroup<InputPortsGroup>.Group;
|
: NamedExclusiveGroup<BuildModeWiresGroups.InputPortsGroup>.Group;
|
||||||
BlockPortsStruct ports = entitiesDB.QueryEntity<BlockPortsStruct>(block);
|
BlockPortsStruct ports = entitiesDB.QueryEntity<BlockPortsStruct>(block);
|
||||||
if (!entitiesDB.TryQueryMappedEntities<PortEntityStruct>(group, out var mapper))
|
if (!entitiesDB.TryQueryMappedEntities<PortEntityStruct>(group, out var mapper))
|
||||||
return default;
|
return default;
|
||||||
|
@ -237,7 +237,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
|
|
||||||
public ref WireEntityStruct MatchPortToWire(PortEntityStruct port, EGID blockID, out bool exists)
|
public ref WireEntityStruct MatchPortToWire(PortEntityStruct port, EGID blockID, out bool exists)
|
||||||
{
|
{
|
||||||
var wires = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<WiresGroup>.Group);
|
var wires = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group);
|
||||||
var wiresB = wires.ToBuffer().buffer;
|
var wiresB = wires.ToBuffer().buffer;
|
||||||
for (uint i = 0; i < wires.count; i++)
|
for (uint i = 0; i < wires.count; i++)
|
||||||
{
|
{
|
||||||
|
@ -264,7 +264,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BlockPortsStruct ports = entitiesDB.QueryEntity<BlockPortsStruct>(startBlock);
|
BlockPortsStruct ports = entitiesDB.QueryEntity<BlockPortsStruct>(startBlock);
|
||||||
startPorts = new EGID[] {new EGID(ports.firstOutputID + startPort, NamedExclusiveGroup<OutputPortsGroup>.Group) };
|
startPorts = new EGID[] {new EGID(ports.firstOutputID + startPort, NamedExclusiveGroup<BuildModeWiresGroups.OutputPortsGroup>.Group) };
|
||||||
}
|
}
|
||||||
|
|
||||||
EGID[] endPorts;
|
EGID[] endPorts;
|
||||||
|
@ -276,10 +276,10 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BlockPortsStruct ports = entitiesDB.QueryEntity<BlockPortsStruct>(endBlock);
|
BlockPortsStruct ports = entitiesDB.QueryEntity<BlockPortsStruct>(endBlock);
|
||||||
endPorts = new EGID[] {new EGID(ports.firstInputID + endPort, NamedExclusiveGroup<InputPortsGroup>.Group) };
|
endPorts = new EGID[] {new EGID(ports.firstInputID + endPort, NamedExclusiveGroup<BuildModeWiresGroups.InputPortsGroup>.Group) };
|
||||||
}
|
}
|
||||||
|
|
||||||
EntityCollection<WireEntityStruct> wires = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<WiresGroup>.Group);
|
EntityCollection<WireEntityStruct> wires = entitiesDB.QueryEntities<WireEntityStruct>(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group);
|
||||||
var wiresB = wires.ToBuffer().buffer;
|
var wiresB = wires.ToBuffer().buffer;
|
||||||
for (int endIndex = 0; endIndex < endPorts.Length; endIndex++)
|
for (int endIndex = 0; endIndex < endPorts.Length; endIndex++)
|
||||||
{
|
{
|
||||||
|
@ -304,7 +304,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
public OptionalRef<ChannelDataStruct> GetChannelDataStruct(EGID portID)
|
public OptionalRef<ChannelDataStruct> GetChannelDataStruct(EGID portID)
|
||||||
{
|
{
|
||||||
var port = GetPort(portID);
|
var port = GetPort(portID);
|
||||||
var channels = entitiesDB.QueryEntities<ChannelDataStruct>(NamedExclusiveGroup<ChannelDataGroup>.Group);
|
var channels = entitiesDB.QueryEntities<ChannelDataStruct>(NamedExclusiveGroup<BuildModeWiresGroups.ChannelDataGroup>.Group);
|
||||||
var channelsB = channels.ToBuffer();
|
var channelsB = channels.ToBuffer();
|
||||||
return port.firstChannelIndexCachedInSim < channels.count
|
return port.firstChannelIndexCachedInSim < channels.count
|
||||||
? new OptionalRef<ChannelDataStruct>(channelsB.buffer, port.firstChannelIndexCachedInSim)
|
? new OptionalRef<ChannelDataStruct>(channelsB.buffer, port.firstChannelIndexCachedInSim)
|
||||||
|
@ -329,7 +329,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
|
|
||||||
public EGID[] WiredToInput(EGID block, byte port)
|
public EGID[] WiredToInput(EGID block, byte port)
|
||||||
{
|
{
|
||||||
WireEntityStruct[] wireEntityStructs = Search(NamedExclusiveGroup<WiresGroup>.Group,
|
WireEntityStruct[] wireEntityStructs = Search(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group,
|
||||||
(WireEntityStruct wes) => wes.destinationPortUsage == port && wes.destinationBlockEGID == block);
|
(WireEntityStruct wes) => wes.destinationPortUsage == port && wes.destinationBlockEGID == block);
|
||||||
EGID[] result = new EGID[wireEntityStructs.Length];
|
EGID[] result = new EGID[wireEntityStructs.Length];
|
||||||
for (uint i = 0; i < wireEntityStructs.Length; i++)
|
for (uint i = 0; i < wireEntityStructs.Length; i++)
|
||||||
|
@ -342,7 +342,7 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
|
|
||||||
public EGID[] WiredToOutput(EGID block, byte port)
|
public EGID[] WiredToOutput(EGID block, byte port)
|
||||||
{
|
{
|
||||||
WireEntityStruct[] wireEntityStructs = Search(NamedExclusiveGroup<WiresGroup>.Group,
|
WireEntityStruct[] wireEntityStructs = Search(NamedExclusiveGroup<BuildModeWiresGroups.WiresGroup>.Group,
|
||||||
(WireEntityStruct wes) => wes.sourcePortUsage == port && wes.sourceBlockEGID == block);
|
(WireEntityStruct wes) => wes.sourcePortUsage == port && wes.sourceBlockEGID == block);
|
||||||
EGID[] result = new EGID[wireEntityStructs.Length];
|
EGID[] result = new EGID[wireEntityStructs.Length];
|
||||||
for (uint i = 0; i < wireEntityStructs.Length; i++)
|
for (uint i = 0; i < wireEntityStructs.Length; i++)
|
||||||
|
@ -371,13 +371,13 @@ namespace TechbloxModdingAPI.Blocks.Engines
|
||||||
private EntityCollection<ChannelDataStruct> GetSignalStruct(uint signalID, out uint index, bool input = true)
|
private EntityCollection<ChannelDataStruct> GetSignalStruct(uint signalID, out uint index, bool input = true)
|
||||||
{
|
{
|
||||||
ExclusiveGroup group = input
|
ExclusiveGroup group = input
|
||||||
? NamedExclusiveGroup<InputPortsGroup>.Group
|
? NamedExclusiveGroup<BuildModeWiresGroups.InputPortsGroup>.Group
|
||||||
: NamedExclusiveGroup<OutputPortsGroup>.Group;
|
: NamedExclusiveGroup<BuildModeWiresGroups.OutputPortsGroup>.Group;
|
||||||
if (entitiesDB.Exists<PortEntityStruct>(signalID, group))
|
if (entitiesDB.Exists<PortEntityStruct>(signalID, group))
|
||||||
{
|
{
|
||||||
index = entitiesDB.QueryEntity<PortEntityStruct>(signalID, group).anyChannelIndex;
|
index = entitiesDB.QueryEntity<PortEntityStruct>(signalID, group).anyChannelIndex;
|
||||||
var channelData =
|
var channelData =
|
||||||
entitiesDB.QueryEntities<ChannelDataStruct>(NamedExclusiveGroup<ChannelDataGroup>.Group);
|
entitiesDB.QueryEntities<ChannelDataStruct>(NamedExclusiveGroup<BuildModeWiresGroups.ChannelDataGroup>.Group);
|
||||||
return channelData;
|
return channelData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,7 @@ namespace TechbloxModdingAPI.Input
|
||||||
ref LocalPlayerInputEntityStruct currentInput = ref inputEngine.GetPlayerInputRef(playerID);
|
ref LocalPlayerInputEntityStruct currentInput = ref inputEngine.GetPlayerInputRef(playerID);
|
||||||
//Utility.Logging.CommandLog($"Current sim frame {currentInput.frame}");
|
//Utility.Logging.CommandLog($"Current sim frame {currentInput.frame}");
|
||||||
// set inputs
|
// set inputs
|
||||||
if (toggleMode) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.ToggleTimeRunningMode;
|
if (toggleMode) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.ToggleTimeRunningModeTest; //TODO: Test, play
|
||||||
if (forward) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Forward;
|
if (forward) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Forward;
|
||||||
if (backward) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Backward;
|
if (backward) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Backward;
|
||||||
if (up) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Up;
|
if (up) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Up;
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace TechbloxModdingAPI.Persistence
|
||||||
Logging.MetaDebugLog("Skipping component serialization: no serializers registered!");
|
Logging.MetaDebugLog("Skipping component serialization: no serializers registered!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
serializationData.data.ExpandBy((uint)frameStart.Length);
|
serializationData.data.IncreaseCapacityBy((uint)frameStart.Length);
|
||||||
BinaryBufferWriter bbw = new BinaryBufferWriter(serializationData.data.ToArrayFast(out int buffLen), serializationData.dataPos);
|
BinaryBufferWriter bbw = new BinaryBufferWriter(serializationData.data.ToArrayFast(out int buffLen), serializationData.dataPos);
|
||||||
uint originalPos = serializationData.dataPos;
|
uint originalPos = serializationData.dataPos;
|
||||||
Logging.MetaDebugLog($"dataPos: {originalPos}");
|
Logging.MetaDebugLog($"dataPos: {originalPos}");
|
||||||
|
@ -35,14 +35,14 @@ namespace TechbloxModdingAPI.Persistence
|
||||||
bbw.Write(frameStart[i]);
|
bbw.Write(frameStart[i]);
|
||||||
}
|
}
|
||||||
Logging.MetaDebugLog($"dataPos (after frame start): {bbw.Position}");
|
Logging.MetaDebugLog($"dataPos (after frame start): {bbw.Position}");
|
||||||
serializationData.data.ExpandBy(4u);
|
serializationData.data.IncreaseCapacityBy(4u);
|
||||||
bbw.Write((uint)SerializerManager.GetSerializersCount());
|
bbw.Write((uint)SerializerManager.GetSerializersCount());
|
||||||
string[] serializerKeys = SerializerManager.GetSerializerNames();
|
string[] serializerKeys = SerializerManager.GetSerializerNames();
|
||||||
for (uint c = 0; c < serializerKeys.Length; c++)
|
for (uint c = 0; c < serializerKeys.Length; c++)
|
||||||
{
|
{
|
||||||
Logging.MetaDebugLog($"dataPos (loop start): {bbw.Position}");
|
Logging.MetaDebugLog($"dataPos (loop start): {bbw.Position}");
|
||||||
// write component info
|
// write component info
|
||||||
serializationData.data.ExpandBy(4u + (uint)serializerKeys[c].Length);
|
serializationData.data.IncreaseCapacityBy(4u + (uint)serializerKeys[c].Length);
|
||||||
bbw.Write((uint)serializerKeys[c].Length);
|
bbw.Write((uint)serializerKeys[c].Length);
|
||||||
Logging.MetaDebugLog($"dataPos (now): {bbw.Position}");
|
Logging.MetaDebugLog($"dataPos (now): {bbw.Position}");
|
||||||
byte[] nameBytes = Encoding.UTF8.GetBytes(serializerKeys[c]);
|
byte[] nameBytes = Encoding.UTF8.GetBytes(serializerKeys[c]);
|
||||||
|
@ -51,7 +51,7 @@ namespace TechbloxModdingAPI.Persistence
|
||||||
bbw.Write(nameBytes[i]);
|
bbw.Write(nameBytes[i]);
|
||||||
}
|
}
|
||||||
Logging.MetaDebugLog($"dataPos (now): {bbw.Position}");
|
Logging.MetaDebugLog($"dataPos (now): {bbw.Position}");
|
||||||
serializationData.data.ExpandBy(4u);
|
serializationData.data.IncreaseCapacityBy(4u);
|
||||||
serializationData.dataPos = bbw.Position + 4u;
|
serializationData.dataPos = bbw.Position + 4u;
|
||||||
Logging.MetaDebugLog($"dataPos (now): {bbw.Position}");
|
Logging.MetaDebugLog($"dataPos (now): {bbw.Position}");
|
||||||
Logging.MetaDebugLog($"dataPos (appears to be): {serializationData.dataPos}");
|
Logging.MetaDebugLog($"dataPos (appears to be): {serializationData.dataPos}");
|
||||||
|
@ -73,8 +73,8 @@ namespace TechbloxModdingAPI.Persistence
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MethodBase TargetMethod()
|
public static MethodBase TargetMethod()
|
||||||
{
|
{
|
||||||
return typeof(SaveGameEngine).GetMethod("SerializeGameToBuffer");
|
return AccessTools.TypeByName("RobocraftX.SaveAndLoad.SaveGameEngine").GetMethod("SerializeGameToBuffer");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace TechbloxModdingAPI.Persistence
|
||||||
|
|
||||||
public bool Serialize(ref ISerializationData serializationData, EntitiesDB entitiesDB, IEntitySerialization entitySerializer)
|
public bool Serialize(ref ISerializationData serializationData, EntitiesDB entitiesDB, IEntitySerialization entitySerializer)
|
||||||
{
|
{
|
||||||
serializationData.data.ExpandBy(4u);
|
serializationData.data.IncreaseCapacityBy(4u);
|
||||||
BinaryBufferWriter bbw = new BinaryBufferWriter(serializationData.data.ToArrayFast(out int count), serializationData.dataPos);
|
BinaryBufferWriter bbw = new BinaryBufferWriter(serializationData.data.ToArrayFast(out int count), serializationData.dataPos);
|
||||||
EGID[] toSerialize = getEntitiesToSerialize(entitiesDB);
|
EGID[] toSerialize = getEntitiesToSerialize(entitiesDB);
|
||||||
bbw.Write((uint)toSerialize.Length);
|
bbw.Write((uint)toSerialize.Length);
|
||||||
|
|
|
@ -481,7 +481,7 @@ namespace TechbloxModdingAPI
|
||||||
{
|
{
|
||||||
var egid = playerEngine.GetThingLookedAt(Id, maxDistance);
|
var egid = playerEngine.GetThingLookedAt(Id, maxDistance);
|
||||||
return egid != default && egid.groupID == WiresGUIExclusiveGroups.WireGroup
|
return egid != default && egid.groupID == WiresGUIExclusiveGroups.WireGroup
|
||||||
? EcsObjectBase.GetInstance(new EGID(egid.entityID, NamedExclusiveGroup<WiresGroup>.Group),
|
? EcsObjectBase.GetInstance(new EGID(egid.entityID, BuildModeWiresGroups.WiresGroup.Group),
|
||||||
e => new Wire(e))
|
e => new Wire(e))
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace TechbloxModdingAPI.Tasks
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return RobocraftX.Schedulers.Lean.UIScheduler;
|
return RobocraftX.Schedulers.ClientLean.UIScheduler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ namespace TechbloxModdingAPI.Tasks
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return RobocraftX.Schedulers.ExtraLean.UIScheduler;
|
return RobocraftX.Schedulers.ClientExtraLean.UIScheduler;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -64,7 +64,7 @@ namespace TechbloxModdingAPI.Tests
|
||||||
_testsCountPassed = 0;
|
_testsCountPassed = 0;
|
||||||
_testsCountFailed = 0;
|
_testsCountFailed = 0;
|
||||||
// flow control
|
// flow control
|
||||||
Game.Enter += (sender, args) => { GameTests().RunOn(RobocraftX.Schedulers.Lean.EveryFrameStepRunner_TimeRunningAndStopped); };
|
Game.Enter += (sender, args) => { GameTests().RunOn(RobocraftX.Schedulers.ClientLean.EveryFrameStepRunner_TimeRunningAndStopped); };
|
||||||
Game.Exit += (s, a) => state = "ReturningFromGame";
|
Game.Exit += (s, a) => state = "ReturningFromGame";
|
||||||
Client.EnterMenu += (sender, args) =>
|
Client.EnterMenu += (sender, args) =>
|
||||||
{
|
{
|
||||||
|
|
|
@ -104,14 +104,6 @@ namespace TechbloxModdingAPI.Utility
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PhysicsUtility _physicsUtility
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return (PhysicsUtility)fgcr?.Field("_physicsUtility").GetValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*public static UnityEntitySubmissionScheduler _frontEndSubmissionScheduler
|
/*public static UnityEntitySubmissionScheduler _frontEndSubmissionScheduler
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
Loading…
Reference in a new issue