newlon/scripts/particles/FallFloor.cs
2025-07-25 18:48:49 +05:00

43 lines
879 B
C#

using System;
using Godot;
using Godot.Collections;
namespace Newlon.Particles;
public partial class FallFloor : Node2D
{
private static FallFloor Instance;
private Array<StaticBody2D> bodies = [];
public override void _Ready()
{
Instance = this;
foreach (StaticBody2D body in GetChildren())
{
bodies.Add(body);
}
}
public static StaticBody2D GetNearest(Vector2 point)
{
var selected = Instance.bodies[0];
foreach (StaticBody2D body in Instance.bodies)
{
if (Math.Abs(selected.GlobalPosition.Y - point.Y) > Math.Abs(body.GlobalPosition.Y - point.Y))
{
selected = body;
}
}
return selected;
}
public static Array<StaticBody2D> GetEverythingElse(StaticBody2D except)
{
Array<StaticBody2D> bodys = [];
foreach (StaticBody2D body in Instance.bodies)
{
if (except != body)
{
bodys.Add(body);
}
}
return bodys;
}
}