Files
iFactory.Cutting.Unity/Mods/bitkit.workshop.samples/Class1.cs

62 lines
1.5 KiB
C#
Raw Normal View History

2024-03-04 18:45:21 +08:00
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);
}
}
}