62 lines
1.5 KiB
C#
62 lines
1.5 KiB
C#
using System.Numerics;
|
|
using System.Runtime.CompilerServices;
|
|
using BITFactory.Cutting;
|
|
using BITKit;
|
|
using BITKit.Mod;
|
|
using Unity.Mathematics;
|
|
|
|
namespace iFactory_Cutting.Mods.Examples
|
|
{
|
|
|
|
public sealed class NewNewMod : MyMod
|
|
{
|
|
public override string Name => "NewNew的新Mod";
|
|
public override string PackageName => "com.bitkit.2A051144-8BE3-4A1E-980B-6907B9480A2D";
|
|
}
|
|
public sealed class ExampleModBrush : MyMod
|
|
{
|
|
public override string Name => "空的Mod";
|
|
public override string PackageName => "com.bitkit.test.brush";
|
|
|
|
public sealed class voidModBrush : CuttingToolBrush
|
|
{
|
|
public override string Name => "空的Mod笔刷";
|
|
[Export] public float radius = 1;
|
|
public override unsafe void* GetExport(string name)
|
|
{
|
|
fixed (float* p = &radius)
|
|
{
|
|
return name == nameof(radius) ? p : base.GetExport(name);
|
|
}
|
|
}
|
|
|
|
public override void HandlePoint(bool isPreview, float3 normal, float3 point)
|
|
{
|
|
cuttingTool.CutPlantSphere(isPreview,normal,point,radius);
|
|
}
|
|
}
|
|
|
|
[Inject] private ICuttingToolService _cuttingToolService;
|
|
|
|
private readonly voidModBrush _brush = new voidModBrush();
|
|
|
|
public override void OnInitialize()
|
|
{
|
|
base.OnInitialize();
|
|
BIT4Log.Log("ExampleModBrush.OnInitialize");
|
|
DI.Inject(this);
|
|
}
|
|
|
|
public override void OnInitialized()
|
|
{
|
|
base.OnInitialized();
|
|
_cuttingToolService.Register(_brush);
|
|
}
|
|
|
|
public override void OnDispose()
|
|
{
|
|
base.OnDispose();
|
|
_cuttingToolService.UnRegister(_brush);
|
|
}
|
|
}
|
|
} |