EVERYTHING

This commit is contained in:
niko
2026-06-01 17:19:55 +02:00
parent d063b81359
commit b62bac090b
1081 changed files with 1716544 additions and 0 deletions
@@ -0,0 +1,62 @@
using System;
using UnityEngine;
[DisallowMultipleComponent]
public sealed class RayBehavior : NodeBehavior
{
public override void OnRun(string inputPortName)
{
if (base.IsAuthoritative && string.Equals(inputPortName, "Cast", StringComparison.Ordinal))
{
Vector3 origin = ResolvePosition(GetInputValue("Origin"));
Vector3 vector = ResolveDirection(GetInputValue("Direction"));
float maxDistance = Mathf.Max(0f, (float)GetInputNumber("Distance"));
if (Physics.Raycast(new Ray(origin, (vector.sqrMagnitude > 0.0001f) ? vector.normalized : Vector3.forward), out var hitInfo, maxDistance))
{
Vector3 vector2 = NodePlayerUtility.WorldToVoxelPosition(hitInfo.point);
SetOutputValueIfChanged("DidHit", BSValue.FromBool(value: true));
SetOutputValueIfChanged("X", BSValue.FromNumber(vector2.x));
SetOutputValueIfChanged("Y", BSValue.FromNumber(vector2.y));
SetOutputValueIfChanged("Z", BSValue.FromNumber(vector2.z));
TriggerOutput("Hit");
}
else
{
SetOutputValueIfChanged("DidHit", BSValue.FromBool(value: false));
TriggerOutput("Miss");
}
}
}
private static Vector3 ResolvePosition(BSValue value)
{
if (value.Kind == BSValueKind.Player)
{
Transform transform = NodePlayerUtility.ResolveHeadTransform(NodePlayerUtility.ResolvePlayer(value.AsPlayerId()));
if (!(transform != null))
{
return Vector3.zero;
}
return transform.position;
}
if (value.TryResolveGroup(out var group) && group != null)
{
return group.GetWorldBounds().center;
}
return Vector3.zero;
}
private static Vector3 ResolveDirection(BSValue value)
{
if (value.Kind == BSValueKind.Player)
{
Transform transform = NodePlayerUtility.ResolveHeadTransform(NodePlayerUtility.ResolvePlayer(value.AsPlayerId()));
if (!(transform != null))
{
return Vector3.forward;
}
return transform.forward;
}
return Vector3.forward;
}
}