Attempt to bring console back and update block ID list

This commit is contained in:
Norbi Peti 2021-04-13 02:05:16 +02:00
parent 98e00de642
commit 124ef410c7
No known key found for this signature in database
GPG key ID: DBA4C4549A927E56
6 changed files with 176 additions and 374 deletions

View file

@ -9,362 +9,145 @@ namespace GamecraftModdingAPI.Blocks
/// Called "nothing" in Gamecraft. (DBID.NOTHING)
/// </summary>
Invalid = ushort.MaxValue,
AluminiumCube = 0,
AxleS,
HingeS = 3,
MotorS,
HingeM,
MotorM,
TyreM,
AxleM,
IronCube,
RubberCube,
OiledCube,
AluminiumConeSegment, //12
AluminiumCorner,
AluminiumRoundedCorner,
AluminiumSlicedCube,
AluminiumRoundedSlicedCube,
AluminiumCylinder,
AluminiumPyramidSegment,
AluminiumSlope,
AluminiumRoundedSlope,
AluminiumSphere,
RubberConeSegment, //22
RubberCorner,
RubberRoundedCorner,
RubberSlicedCube,
RubberRoundedSlicedCube,
RubberCylinder,
RubberPyramidSegment,
RubberSlope,
RubberRoundedSlope,
RubberSphere,
OiledConeSegment, //32
OiledCorner,
OiledRoundedCorner,
OiledSlicedCube,
OiledRoundedSlicedCube,
OiledCylinder,
OiledPyramidSegment,
OiledSlope,
OiledRoundedSlope,
OiledSphere,
IronConeSegment, //42
IronCorner,
IronRoundedCorner,
IronSlicedCube,
IronRoundedSlicedCube,
IronCylinder,
IronPyramidSegment,
IronSlope,
IronRoundedSlope,
IronSphere,
GlassCube, //52
GlassSlicedCube,
GlassSlope,
GlassCorner,
GlassPyramidSegment,
GlassRoundedSlicedCube,
GlassRoundedSlope,
GlassRoundedCorner,
GlassConeSegment,
GlassCylinder,
GlassSphere,
Lever, //63
WoodenSlatsDoor = 65,
PlayerSpawn, //Crashes without special handling
SmallSpawn,
MediumSpawn,
LargeSpawn,
Cube = 0,
Wedge,
QuarterPyramid,
Tetrahedron,
RoundedWedge,
RoundedQuarterPyramid,
RoundedTetrahedron,
NegativeQuarterPyramid,
NegativeTetrahedron,
RoundedNegativeQuarterPyramid,
RoundedNegativeTetrahedron, //10
PlateCube,
PlateWedge,
PlateQuarterPyramid,
PlateTetrahedron,
Sphere,
Frame,
FrameS1,
FrameS2,
FrameS3,
FrameS4, //20
FrameS5,
FrameWedge,
FrameWedgeS1,
FrameWedgeS2,
FrameWedgeS3,
FrameWedgeS4,
SideS0S1,
SideS0S2,
SideS0S3,
SideS0S4, //30
SideS0S5,
SideS1S1,
SideS1S2,
SideS1S3,
SideS1S4,
SideS1S5,
SideS2S1,
SideS2S2,
SideS2S3,
SideS2S4,
SideS2S5,
WindscreenS1, //42
WindscreenS2,
WindscreenS3,
WindscreenS4,
WindscreenS5,
CarWheelArch,
CarArchSmallFlare,
CarArchFlare,
CarArchExtrudedFlare, //50
Cube1X1,
Cube1X2,
Cube1X3,
Cube1X4,
Cube1X6,
Cube2X2,
Cube2X3,
Cube2X4,
Cube2X6,
Wedge1X1, //60
Wedge1X2,
Wedge1X3,
Wedge2X1,
Wedge2X2,
Wedge2X3,
RoundedWedge1X1,
RoundedWedge1X2,
RoundedWedge1X3,
RoundedWedge2X1,
RoundedWedge2X2, //70
RoundedWedge2X3,
Plate1X1,
Plate1X2,
Plate1X3,
Plate1X4,
Plate2X2,
Plate2X3,
Plate2X4,
Plate3X3,
Plate3X4, //80
Cube1X1S1,
Cube1X2S1,
Cube1X3S1,
Wedge1X1S1,
Wedge1X2S1,
Wedge1X3S1,
Wedge2X1S1,
Wedge2X2S1,
Wedge2X3S1,
Wedge3X1S1, //90
Wedge3X2S1,
Wedge3X3S1,
NegativeTetrahedron1X1S1,
NegativeTetrahedron1X2S1,
NegativeTetrahedron1X3S1,
NegativeTetrahedron2X1S1,
NegativeTetrahedron2X2S1,
NegativeTetrahedron2X3S1,
NegativeTetrahedron3X1S1,
Axle, //100
Hinge,
BallJoint,
UniversalJoint,
ServoAxle,
ServoHinge,
StepperAxle,
StepperHinge,
TelescopicJoint,
HingeSpring,
AxleSpring,
DampedSpring,
ServoPiston,
StepperPiston,
PneumaticPiston, //80
PneumaticHinge,
PneumaticAxle,
WindowedDoor,
Bench,
Chair,
Stool,
DampedHingeSpring,
PlainGlassDoor,
PlainWoodenDoor,
PilotSeat, //Might crash
WheelRigNoSteering,
WheelRigWithSteering,
NegativeTetrahedron3X2S1, //110
NegativeTetrahedron3X3S1,
Tetrahedron1X1S1,
Tetrahedron1X2S1,
Tetrahedron1X3S1,
Tetrahedron2X1S1,
Tetrahedron2X2S1,
Tetrahedron2X3S1,
Tetrahedron3X1S1,
Tetrahedron3X2S1,
Tetrahedron3X3S1, //120
QuarterPyramid1X1S1,
QuarterPyramid1X2S1,
QuarterPyramid1X3S1,
QuarterPyramid2X1S1,
QuarterPyramid2X2S1,
QuarterPyramid2X3S1,
QuarterPyramid3X1S1,
QuarterPyramid3X2S1,
QuarterPyramid3X3S1,
PlateTriangle, //130
PlateCircle,
PlateQtrCircle,
PlateRWedge,
PlateRTetrahedron,
DriverSeat = 150,
PassengerSeat,
PilotControls,
GrassCube,
DirtCube,
GrassConeSegment,
GrassCorner,
GrassRoundedCorner,
GrassSlicedCube,
GrassRoundedSlicedCube,
GrassPyramidSegment,
GrassSlope,
GrassRoundedSlope,
DirtConeSegment,
DirtCorner,
DirtRoundedCorner,
DirtSlicedCube,
DirtRoundedSlicedCube,
DirtPyramidSegment,
DirtSlope,
DirtRoundedSlope,
RubberHemisphere,
AluminiumHemisphere,
GrassInnerCornerBulged,
DirtInnerCornerBulged,
IronHemisphere,
OiledHemisphere,
GlassHemisphere,
TyreS,
ThreeWaySwitch,
Dial, //120
CharacterOnEnterTrigger, //Probably crashes
CharacterOnLeaveTrigger,
CharacterOnStayTrigger,
ObjectOnEnterTrigger,
ObjectOnLeaveTrigger,
ObjectOnStayTrigger,
Button,
Switch,
TextBlock, //Brings up a screen
ConsoleBlock, //Brings up a screen
Door,
GlassDoor,
PoweredDoor,
PoweredGlassDoor,
AluminiumTubeCorner,
IronTubeCorner,
WoodCube,
WoodSlicedCube,
WoodSlope,
WoodCorner,
WoodPyramidSegment,
WoodConeSegment,
WoodRoundedSlicedCube,
WoodRoundedSlope,
WoodRoundedCorner,
WoodCylinder,
WoodHemisphere,
WoodSphere,
BrickCube,
DampedAxleSpring, //150
BrickSlicedCube,
BrickSlope,
BrickCorner,
ConcreteCube,
ConcreteSlicedCube,
ConcreteSlope,
ConcreteCorner,
RoadCarTyre,
OffRoadCarTyre,
RacingCarTyre,
BicycleTyre,
FrontBikeTyre,
RearBikeTyre,
ChopperBikeTyre,
TractorTyre,
MonsterTruckTyre,
MotocrossBikeTyre,
CartTyre, //168
ObjectIdentifier,
ANDLogicBlock,
NANDLogicBlock,
NORLogicBlock,
NOTLogicBlock,
ORLogicBlock,
XNORLogicBlock,
XORLogicBlock,
AbsoluteMathsBlock,
AdderMathsBlock,
DividerMathsBlock,
SignMathsBlock, //180
MaxMathsBlock,
MinMathsBlock,
MultiplierMathsBlock,
SubtractorMathsBlock,
SimpleConnector,
MeanMathsBlock,
Bit,
Counter,
Timer,
ObjectFilter,
PlayerFilter,
TeamFilter,
Number2Text, //193
DestructionManager = 260,
ChunkHealthModifier,
ClusterHealthModifier, //262
BeachTree1 = 200,
BeachTree2,
BeachTree3,
Rock1,
Rock2,
Rock3,
Rock4,
BirchTree1,
BirchTree2,
BirchTree3,
PineTree1,
PineTree2,
PineTree3,
Flower1,
Flower2,
Flower3,
Shrub1,
Shrub2,
Shrub3,
CliffCube,
CliffSlicedCorner,
CliffCornerA,
CliffCornerB,
CliffSlopeA,
CliffSlopeB,
GrassEdge,
GrassEdgeInnerCorner,
GrassEdgeCorner,
GrassEdgeSlope,
CentreHUD,
ObjectiveHUD,
GameStatsHUD, //231
GameOverBlock,
SFXBlockGameplay = 240,
SFXBlock8Bit,
SFXBlockInstrument,
SFXBlockSciFi,
SFXBlockLoops,
SFXBlockVocal,
MovementConstrainer, //246
RotationConstrainer,
AdvancedMovementDampener,
AdvancedRotationDampener,
Mover = 250,
Rotator,
MovementDampener,
RotationDampener,
AdvancedMover,
AdvancedRotator,
MusicBlock, //256
PlasmaCannonBlock,
QuantumRiflePickup = 300,
QuantumRifleAmmoPickup,
AluminiumSlicedFraction,
AluminiumSlicedSlope,
AluminiumHalfPyramidLeft = 305,
AluminiumHalfPyramidRight,
AluminiumPyramidSliced,
AluminiumTubeCross,
AluminiumTubeT,
AluminiumPlateSquare,
AluminiumPlateCircle,
AluminiumPlateTriangle, //312
OiledSlicedFraction = 314,
OiledSlicedSlope,
OiledHalfPyramidLeft,
OiledHalfPyramidRight,
OiledPyramidSliced,
GlassSlicedFraction,
GlassSlicedSlope,
GlassHalfPyramidLeft,
GlassHalfPyramidRight,
GlassPyramidSliced,
RubberSlicedFraction,
RubberSlicedSlope,
RubberHalfPyramidLeft,
RubberHalfPyramidRight,
RubberPyramidSliced,
WoodSlicedFraction,
WoodSlicedSlope, //330
WoodHalfPyramidLeft,
WoodHalfPyramidRight,
WoodPyramidSliced,
HexNetSlicedFraction,
HexNetSlicedSlope,
HexNetHalfPyramidLeft,
HexNetHalfPyramidRight,
HexNetPyramidSliced,
OiledTubeCross,
OiledTubeT, //340
GlassTubeCross,
GlassTubeT,
RubberTubeCross,
RubberTubeT,
WoodTubeCross,
WoodTubeT,
HexNetTubeCross,
HexNetTubeT,
BouncyCube,
BouncySlicedCube, //350
BouncySlope,
BouncyCorner,
OiledTubeCorner,
GlassTubeCorner,
RubberTubeCorner,
WoodTubeCorner,
Basketball,
BowlingBall,
SoccerBall,
GolfBall, //360
HockeyPuck,
PoolBall,
BouncyBall,
TennisBall,
UnlitCube,
IronSlicedFraction,
IronSlicedSlope,
IronHalfPyramidLeft,
IronHalfPyramidRight,
IronPyramidSliced, //370
IronTubeCross,
IronTubeT,
SFXBlockMob = 374,
PointLight,
SpotLight,
SunLight,
AmbientLight,
UnlitGlowCube = 381,
PointLightInvisible,
SpotLightInvisible,
UnlitSlope,
UnlitGlowSlope,
Fog,
Sky,
GridCube,
GridSlicedCube,
GridSlope,
GridCorner,
MagmaRockCube = 777,
MagmaRockCubeSliced,
MagmaRockSlope,
MagmaRockCorner,
MagmaRockPyramidSegment,
MagmaRockConeSegment,
MagmaRockSlicedRounded,
MagmaRockSlopeRounded,
MagmaRockCornerRounded,
HexNetCube,
HexNetCubeSliced,
HexNetSlope,
HexNetCorner,
HexNetPyramidSegment,
HexNetConeSegment,
HexNetSlicedRounded,
HexNetSlopeRounded,
HexNetCornerRounded, //794
MagmaRockBulgedInner,
HexNetCylinder = 797,
HexNetHemisphere,
HexNetSphere,
HexNetTubeCorner, //800
CenterOfMassBlock = 1346
Engine,
CarWheelWideProfile = 200,
CarWheel,
}
}

View file

@ -19,14 +19,14 @@ namespace GamecraftModdingAPI.Blocks
[APITestCase(TestType.EditMode)]
public static void TestPlaceNew()
{
Block newBlock = Block.PlaceNew(BlockIDs.AluminiumCube, Unity.Mathematics.float3.zero);
Block newBlock = Block.PlaceNew(BlockIDs.Cube, Unity.Mathematics.float3.zero);
Assert.NotNull(newBlock.Id, "Newly placed block is missing Id. This should be populated when the block is placed.", "Newly placed block Id is not null, block successfully placed.");
}
[APITestCase(TestType.EditMode)]
public static void TestInitProperty()
{
Block newBlock = Block.PlaceNew(BlockIDs.AluminiumCube, Unity.Mathematics.float3.zero + 2);
Block newBlock = Block.PlaceNew(BlockIDs.Cube, Unity.Mathematics.float3.zero + 2);
if (!Assert.CloseTo(newBlock.Position, (Unity.Mathematics.float3.zero + 2), $"Newly placed block at {newBlock.Position} is expected at {Unity.Mathematics.float3.zero + 2}.", "Newly placed block position matches.")) return;
//Assert.Equal(newBlock.Exists, true, "Newly placed block does not exist, possibly because Sync() skipped/missed/failed.", "Newly placed block exists, Sync() successful.");
}

View file

@ -18,6 +18,7 @@ using UnityEngine.AddressableAssets;
using Material = UnityEngine.Material;
using GamecraftModdingAPI.Utility;
using ServiceLayer;
namespace GamecraftModdingAPI.Blocks
{
@ -114,7 +115,7 @@ namespace GamecraftModdingAPI.Blocks
{
public static void Prefix(IDataDB dataDB)
{
//var abd = dataDB.GetValue<CubeListData>((int) BlockIDs.AluminiumCube);
//var abd = dataDB.GetValue<CubeListData>((int) BlockIDs.Cube);
foreach (var (key, type) in CustomBlocks)
{
var attr = type.GetCustomAttribute<CustomBlockAttribute>();
@ -147,6 +148,12 @@ namespace GamecraftModdingAPI.Blocks
foreach (var (id, action) in BlockChangeActions)
action(dataDB.GetValue<CubeListData>(id));
/*foreach (var (key, value) in dataDB.GetValues<CubeListData>())
{
var data = (CubeListData) value;
Console.WriteLine($"ID: {key} - Name: {data.CubeNameKey}: {LocalizationService.Localize(data.CubeNameKey)}");
}*/
_canRegister = false;
}

View file

@ -53,7 +53,7 @@ namespace GamecraftModdingAPI.Input
/// <param name="hotbarPage">Select the hotbar page by number?</param>
/// <param name="quickSave">Quicksave?</param>
/// <param name="paste">Paste?</param>
public static void GuiInput(uint playerID = uint.MaxValue, int hotbar = -1, bool commandLine = false, bool escape = false, bool enter = false, bool debug = false, bool next = false, bool previous = false, bool tab = false, bool colour = false, int hotbarPage = -1, bool quickSave = false, bool paste = false)
public static void GuiInput(uint playerID = uint.MaxValue, int hotbar = -1, bool escape = false, bool enter = false, bool debug = false, bool next = false, bool previous = false, bool tab = false, int hotbarPage = -1, bool quickSave = false, bool paste = false)
{
if (playerID == uint.MaxValue)
{
@ -76,7 +76,6 @@ namespace GamecraftModdingAPI.Input
case 9: currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.Hotbar_9; break;
default: break;
}
//if (commandLine) currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.ToggleCommandLine; - TODO
if (escape) currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.Escape;
if (enter) currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.Return;
if (debug) currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.ToggleDebugDisplay;
@ -97,6 +96,7 @@ namespace GamecraftModdingAPI.Input
case 10: currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.HotbarPage10; break;
default: break;
}
//RewiredConsts.Action
if (quickSave) currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.QuickSave;
if (paste) currentInput.guiMask |= RobocraftX.Common.Input.GuiInput.PasteSelection;
}
@ -118,8 +118,8 @@ namespace GamecraftModdingAPI.Input
if (left) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Left;
if (right) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Right;
if (sprint) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.Sprint;
if (toggleFly) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.SwitchFlyMode;
if (alt) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.AltAction;
//if (toggleFly) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.SwitchFlyMode;
//if (alt) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.AltAction;
if (primary) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.PrimaryAction;
if (secondary) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.SecondaryAction;
if (tertiary) currentInput.actionMask |= RobocraftX.Common.Input.ActionInput.TertiaryAction;

View file

@ -91,7 +91,7 @@ namespace GamecraftModdingAPI
AsyncUtils.Init();
GamecraftModdingAPI.App.Client.Init();
GamecraftModdingAPI.App.Game.Init();
CustomBlock.Init();
//CustomBlock.Init();
// init UI
Interface.IMGUI.Constants.Init();
Interface.IMGUI.IMGUIManager.Init();

View file

@ -26,8 +26,11 @@ using GamecraftModdingAPI.Commands;
using GamecraftModdingAPI.Events;
using GamecraftModdingAPI.Utility;
using GamecraftModdingAPI.Blocks;
using GamecraftModdingAPI.Input;
using GamecraftModdingAPI.Interface.IMGUI;
using GamecraftModdingAPI.Players;
using RobocraftX.Common.Input;
using Svelto.DataStructures;
using UnityEngine.AddressableAssets;
using UnityEngine.AddressableAssets.ResourceLocators;
using UnityEngine.ResourceManagement.AsyncOperations;
@ -171,7 +174,7 @@ namespace GamecraftModdingAPI.Tests
.Description("Place a block of aluminium at the given coordinates")
.Action((float x, float y, float z) =>
{
var block = Block.PlaceNew(BlockIDs.AluminiumCube, new float3(x, y, z));
var block = Block.PlaceNew(BlockIDs.Cube, new float3(x, y, z));
Logging.CommandLog("Block placed with type: " + block.Type);
})
.Build();
@ -185,7 +188,7 @@ namespace GamecraftModdingAPI.Tests
var sw = Stopwatch.StartNew();
for (int i = 0; i < 100; i++)
for (int j = 0; j < 100; j++)
Block.PlaceNew(BlockIDs.AluminiumCube, new float3(x + i, y, z + j));
Block.PlaceNew(BlockIDs.Cube, new float3(x + i, y, z + j));
//Block.Sync();
sw.Stop();
Logging.CommandLog("Finished in " + sw.ElapsedMilliseconds + "ms");
@ -264,7 +267,7 @@ namespace GamecraftModdingAPI.Tests
})
.Build();*/
CommandBuilder.Builder()
/*CommandBuilder.Builder()
.Name("WireTest")
.Description("Place two blocks and then wire them together")
.Action(() =>
@ -275,7 +278,7 @@ namespace GamecraftModdingAPI.Tests
Wire conn = notBlock.Connect(0, andBlock, 1);
Logging.CommandLog(conn.ToString());
})
.Build();
.Build();*/
CommandBuilder.Builder("TestChunkHealth", "Sets the chunk looked at to the given health.")
.Action((float val, float max) =>
@ -291,13 +294,13 @@ namespace GamecraftModdingAPI.Tests
.Action((float x, float y, float z) =>
{
var pos = new float3(x, y, z);
var group = BlockGroup.Create(Block.PlaceNew(BlockIDs.AluminiumCube, pos,
var group = BlockGroup.Create(Block.PlaceNew(BlockIDs.Cube, pos,
color: BlockColors.Aqua));
Block.PlaceNew(BlockIDs.AluminiumCube, pos += new float3(1, 0, 0), color: BlockColors.Blue)
Block.PlaceNew(BlockIDs.Cube, pos += new float3(1, 0, 0), color: BlockColors.Blue)
.BlockGroup = group;
Block.PlaceNew(BlockIDs.AluminiumCube, pos += new float3(1, 0, 0), color: BlockColors.Green)
Block.PlaceNew(BlockIDs.Cube, pos += new float3(1, 0, 0), color: BlockColors.Green)
.BlockGroup = group;
Block.PlaceNew(BlockIDs.AluminiumCube, pos += new float3(1, 0, 0), color: BlockColors.Lime)
Block.PlaceNew(BlockIDs.Cube, pos += new float3(1, 0, 0), color: BlockColors.Lime)
.BlockGroup = group;
}).Build();
@ -328,7 +331,7 @@ namespace GamecraftModdingAPI.Tests
}
}, "MoveLastBlock", "Move the most-recently-placed block, and any connected blocks by the given offset"));
CommandManager.AddCommand(new SimpleCustomCommandEngine<float, float, float>(
(x, y, z) => { Blocks.Placement.PlaceBlock(Blocks.BlockIDs.AluminiumCube, new Unity.Mathematics.float3(x, y, z)); },
(x, y, z) => { Blocks.Placement.PlaceBlock(Blocks.BlockIDs.Cube, new Unity.Mathematics.float3(x, y, z)); },
"PlaceAluminium", "Place a block of aluminium at the given coordinates"));
System.Random random = new System.Random(); // for command below
CommandManager.AddCommand(new SimpleCustomCommandEngine(
@ -368,7 +371,7 @@ namespace GamecraftModdingAPI.Tests
Logging.Log("Compatible GamecraftScripting detected");
}
// Interface test
Interface.IMGUI.Group uiGroup = new Group(new Rect(20, 20, 200, 500), "GamecraftModdingAPI_UITestGroup", true);
/*Interface.IMGUI.Group uiGroup = new Group(new Rect(20, 20, 200, 500), "GamecraftModdingAPI_UITestGroup", true);
Interface.IMGUI.Button button = new Button("TEST");
button.OnClick += (b, __) => { Logging.MetaDebugLog($"Click on {((Interface.IMGUI.Button)b).Name}");};
Interface.IMGUI.Button button2 = new Button("TEST2");
@ -382,16 +385,16 @@ namespace GamecraftModdingAPI.Tests
uiGroup.AddElement(button2);
uiGroup.AddElement(uiText);
uiGroup.AddElement(uiLabel);
uiGroup.AddElement(uiImg);
uiGroup.AddElement(uiImg);*/
Addressables.LoadAssetAsync<Texture2D>("Assets/Art/Textures/UI/FrontEndMap/RCX_Blue_Background_5k.jpg")
/*Addressables.LoadAssetAsync<Texture2D>("Assets/Art/Textures/UI/FrontEndMap/RCX_Blue_Background_5k.jpg")
.Completed +=
handle =>
{
uiImg.Texture = handle.Result;
uiImg.Enabled = true;
Logging.MetaDebugLog($"Got blue bg asset {handle.Result}");
};
};*/
CommandBuilder.Builder("enableCompletions")
@ -414,8 +417,11 @@ namespace GamecraftModdingAPI.Tests
Logging.MetaDebugLog("Test custom block catalog not found");
}
CustomBlock.ChangeExistingBlock((ushort) BlockIDs.TyreS,
CustomBlock.ChangeExistingBlock((ushort) BlockIDs.CarWheel,
cld => cld.scalingPermission = ScalingPermission.NonUniform);
/*((FasterList<GuiInputMap.GuiInputMapElement>)AccessTools.Property(typeof(GuiInputMap), "GuiInputsButtonDown").GetValue(null))
.Add(new GuiInputMap.GuiInputMapElement(RewiredConsts.Action.ToggleCommandLine, GuiIn))*/
#if TEST
TestRoot.RunTests();
#endif
@ -465,6 +471,12 @@ namespace GamecraftModdingAPI.Tests
}
}
public override void OnUpdate()
{
if(UnityEngine.Input.GetKeyDown(KeyCode.Backslash))
FakeInput.CustomInput(new LocalInputEntityStruct{commandLineToggleInput = true});
}
[HarmonyPatch]
public class MinimumSpecsPatch
{