Fix styling and docs
This commit is contained in:
parent
79a2f7c09c
commit
cd6862bb29
7 changed files with 46 additions and 36 deletions
|
@ -1,5 +1,8 @@
|
||||||
namespace GamecraftModdingAPI.Blocks
|
namespace GamecraftModdingAPI.Blocks
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Preset block colours
|
||||||
|
/// </summary>
|
||||||
public enum BlockColors
|
public enum BlockColors
|
||||||
{
|
{
|
||||||
Default = byte.MaxValue,
|
Default = byte.MaxValue,
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
namespace GamecraftModdingAPI.Blocks
|
namespace GamecraftModdingAPI.Blocks
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Possible block types
|
||||||
|
/// </summary>
|
||||||
public enum BlockIDs
|
public enum BlockIDs
|
||||||
{
|
{
|
||||||
AluminiumCube,
|
AluminiumCube,
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace GamecraftModdingAPI.Blocks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The block's id</param>
|
/// <param name="id">The block's id</param>
|
||||||
/// <param name="vector">The movement amount (x,y,z)</param>
|
/// <param name="vector">The movement amount (x,y,z)</param>
|
||||||
/// <returns></returns>
|
/// <returns>Whether the operation was successful</returns>
|
||||||
public static bool MoveBlock(uint id, float3 vector)
|
public static bool MoveBlock(uint id, float3 vector)
|
||||||
{
|
{
|
||||||
if (movementEngine.IsInGame && movementEngine.IsBuildMode())
|
if (movementEngine.IsInGame && movementEngine.IsBuildMode())
|
||||||
|
@ -36,7 +36,7 @@ namespace GamecraftModdingAPI.Blocks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The starting block's id</param>
|
/// <param name="id">The starting block's id</param>
|
||||||
/// <param name="vector">The movement amount (x,y,z)</param>
|
/// <param name="vector">The movement amount (x,y,z)</param>
|
||||||
/// <returns></returns>
|
/// <returns>Whether the operation was successful</returns>
|
||||||
public static bool MoveConnectedBlocks(uint id, float3 vector)
|
public static bool MoveConnectedBlocks(uint id, float3 vector)
|
||||||
{
|
{
|
||||||
if (movementEngine.IsInGame && movementEngine.IsBuildMode())
|
if (movementEngine.IsInGame && movementEngine.IsBuildMode())
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
using System;
|
using System;
|
||||||
using GamecraftModdingAPI.Utility;
|
|
||||||
using GCMC;
|
|
||||||
using Unity.Mathematics;
|
using Unity.Mathematics;
|
||||||
|
|
||||||
|
using GamecraftModdingAPI.Utility;
|
||||||
|
|
||||||
namespace GamecraftModdingAPI.Blocks
|
namespace GamecraftModdingAPI.Blocks
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Common block movement operations
|
/// Common block placement operations
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class Placement
|
public static class Placement
|
||||||
{
|
{
|
||||||
|
@ -24,17 +25,26 @@ namespace GamecraftModdingAPI.Blocks
|
||||||
/// <param name="uscale">The block's uniform scale - default scale is 1 (with 0.2 width)</param>
|
/// <param name="uscale">The block's uniform scale - default scale is 1 (with 0.2 width)</param>
|
||||||
/// <param name="scale">The block's non-uniform scale - 0 means <paramref name="uscale"/> is used</param>
|
/// <param name="scale">The block's non-uniform scale - 0 means <paramref name="uscale"/> is used</param>
|
||||||
/// <param name="playerId">The player who placed the block</param>
|
/// <param name="playerId">The player who placed the block</param>
|
||||||
/// <exception cref="Exception"></exception>
|
/// <returns>Whether the operation was successful</returns>
|
||||||
public static bool PlaceBlock(BlockIDs block, float3 position,
|
public static bool PlaceBlock(BlockIDs block, float3 position,
|
||||||
quaternion rotation = new quaternion(), BlockColors color = BlockColors.Default, byte darkness = 0,
|
quaternion rotation = new quaternion(), BlockColors color = BlockColors.Default, byte darkness = 0,
|
||||||
int uscale = 1, float3 scale = new float3(), uint playerId = 0)
|
int uscale = 1, float3 scale = new float3(), uint playerId = 0)
|
||||||
{
|
{
|
||||||
if (placementEngine.IsInGame && GameState.IsBuildMode())
|
if (placementEngine.IsInGame && GameState.IsBuildMode())
|
||||||
{
|
{
|
||||||
placementEngine.PlaceBlock(block, color, darkness, position, uscale, scale, playerId, rotation);
|
try
|
||||||
|
{
|
||||||
|
placementEngine.PlaceBlock(block, color, darkness, position, uscale, scale, playerId, rotation);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
#if DEBUG
|
||||||
|
Logging.LogException(e);
|
||||||
|
#endif
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
using DataLoader;
|
using DataLoader;
|
||||||
using GamecraftModdingAPI.Blocks;
|
|
||||||
using GamecraftModdingAPI.Utility;
|
|
||||||
using Harmony;
|
using Harmony;
|
||||||
using JetBrains.Annotations;
|
|
||||||
using RobocraftX.Blocks;
|
using RobocraftX.Blocks;
|
||||||
using RobocraftX.Blocks.Ghost;
|
using RobocraftX.Blocks.Ghost;
|
||||||
using RobocraftX.Blocks.Scaling;
|
using RobocraftX.Blocks.Scaling;
|
||||||
|
@ -22,8 +20,13 @@ using Unity.Mathematics;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using uREPL;
|
using uREPL;
|
||||||
|
|
||||||
namespace GCMC
|
using GamecraftModdingAPI.Utility;
|
||||||
|
|
||||||
|
namespace GamecraftModdingAPI.Blocks
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Engine which executes block placement actions
|
||||||
|
/// </summary>
|
||||||
public class PlacementEngine : IApiEngine
|
public class PlacementEngine : IApiEngine
|
||||||
{
|
{
|
||||||
public bool IsInGame = false;
|
public bool IsInGame = false;
|
||||||
|
@ -55,22 +58,14 @@ namespace GCMC
|
||||||
public void PlaceBlock(BlockIDs block, BlockColors color, byte darkness, float3 position, int uscale,
|
public void PlaceBlock(BlockIDs block, BlockColors color, byte darkness, float3 position, int uscale,
|
||||||
float3 scale, uint playerId, quaternion rotation)
|
float3 scale, uint playerId, quaternion rotation)
|
||||||
{ //It appears that only the non-uniform scale has any visible effect, but if that's not given here it will be set to the uniform one
|
{ //It appears that only the non-uniform scale has any visible effect, but if that's not given here it will be set to the uniform one
|
||||||
try
|
if (darkness > 9)
|
||||||
{
|
throw new Exception("That is too dark. Make sure to use 0-9 as darkness. (0 is default.)");
|
||||||
if (darkness > 9)
|
BuildBlock((ushort) block, (byte) (color + darkness * 10), position, uscale, scale, rotation).Init(
|
||||||
throw new Exception("That is too dark. Make sure to use 0-9 as darkness. (0 is default.)");
|
new BlockPlacementInfoStruct()
|
||||||
BuildBlock((ushort) block, (byte) (color + darkness * 10), position, uscale, scale, rotation).Init(
|
{
|
||||||
new BlockPlacementInfoStruct()
|
loadedFromDisk = false,
|
||||||
{
|
placedBy = playerId
|
||||||
loadedFromDisk = false,
|
});
|
||||||
placedBy = playerId
|
|
||||||
});
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Console.WriteLine(e);
|
|
||||||
Log.Error(e.Message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private EntityStructInitializer BuildBlock(ushort block, byte color, float3 position, int uscale, float3 scale, quaternion rot)
|
private EntityStructInitializer BuildBlock(ushort block, byte color, float3 position, int uscale, float3 scale, quaternion rot)
|
||||||
|
@ -135,16 +130,15 @@ namespace GCMC
|
||||||
return structInitializer;
|
return structInitializer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name { get; } = nameof(PlacementEngine);
|
public string Name { get; } = "GamecraftModdingAPIPlacementGameEngine";
|
||||||
|
|
||||||
[HarmonyPatch]
|
[HarmonyPatch]
|
||||||
[UsedImplicitly]
|
|
||||||
public class FactoryObtainerPatch
|
public class FactoryObtainerPatch
|
||||||
{
|
{
|
||||||
static void Postfix(BlockEntityFactory blockEntityFactory)
|
static void Postfix(BlockEntityFactory blockEntityFactory)
|
||||||
{
|
{
|
||||||
_blockEntityFactory = blockEntityFactory;
|
_blockEntityFactory = blockEntityFactory;
|
||||||
Debug.Log("Block entity factory injected.");
|
Logging.MetaDebugLog("Block entity factory injected.");
|
||||||
}
|
}
|
||||||
|
|
||||||
static MethodBase TargetMethod(HarmonyInstance instance)
|
static MethodBase TargetMethod(HarmonyInstance instance)
|
||||||
|
|
|
@ -19,8 +19,8 @@ namespace GamecraftModdingAPI.Blocks
|
||||||
/// Rotate a single block by a specific amount in degrees
|
/// Rotate a single block by a specific amount in degrees
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The block's id</param>
|
/// <param name="id">The block's id</param>
|
||||||
/// <param name="vector">The rotation amount around the x,y,z-planes</param>
|
/// <param name="vector">The rotation amount around the x,y,z-axis</param>
|
||||||
/// <returns></returns>
|
/// <returns>Whether the operation was successful</returns>
|
||||||
public static bool RotateBlock(uint id, float3 vector)
|
public static bool RotateBlock(uint id, float3 vector)
|
||||||
{
|
{
|
||||||
if (rotationEngine.IsInGame && rotationEngine.IsBuildMode())
|
if (rotationEngine.IsInGame && rotationEngine.IsBuildMode())
|
||||||
|
@ -35,8 +35,8 @@ namespace GamecraftModdingAPI.Blocks
|
||||||
/// Rotate all connected blocks by a specific amount in degrees
|
/// Rotate all connected blocks by a specific amount in degrees
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">The starting block's id</param>
|
/// <param name="id">The starting block's id</param>
|
||||||
/// <param name="vector">The rotation around the x,y,z-planes</param>
|
/// <param name="vector">The rotation around the x,y,z-axis</param>
|
||||||
/// <returns></returns>
|
/// <returns>Whether the operation was successful</returns>
|
||||||
public static bool RotateConnectedBlocks(uint id, float3 vector)
|
public static bool RotateConnectedBlocks(uint id, float3 vector)
|
||||||
{
|
{
|
||||||
if (rotationEngine.IsInGame && rotationEngine.IsBuildMode())
|
if (rotationEngine.IsInGame && rotationEngine.IsBuildMode())
|
||||||
|
|
|
@ -24,7 +24,7 @@ using GamecraftModdingAPI.Utility;
|
||||||
namespace GamecraftModdingAPI.Blocks
|
namespace GamecraftModdingAPI.Blocks
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Engine which executes block movement actions
|
/// Engine which executes signal actions
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class SignalEngine : IApiEngine
|
public class SignalEngine : IApiEngine
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue