forked from FujiAPI/Fuji
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathInterfaces.cs
92 lines (81 loc) · 2.25 KB
/
Interfaces.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
namespace Celeste64;
/// <summary>
/// Draws any Models provided here, if the Actor's World Bounds is visible in the Camera
/// </summary>
public interface IHaveModels
{
public void CollectModels(List<(Actor Actor, Model Model)> populate);
}
/// <summary>
/// Draws any Sprites provided here, if the Actor's World Bounds is visible in the Camera
/// </summary>
public interface IHaveSprites
{
public void CollectSprites(List<Sprite> populate);
}
/// <summary>
/// Draws UI above the gameplay (regardless of where the Actor is)
/// </summary>
public interface IHaveUI
{
public void RenderUI(Batcher batch, Rect bounds);
}
/// <summary>
/// Solid Platforms will search for any Actor implementing these, and move them with it
/// </summary>
public interface IRidePlatforms
{
public void RidingPlatformSetVelocity(in Vec3 value);
public void RidingPlatformMoved(in Vec3 delta);
public bool RidingPlatformCheck(Actor platform);
}
/// <summary>
/// Player searches for these and calls Pickup when they're near it
/// </summary>
public interface IPickup
{
public float PickupRadius { get; }
public void Pickup(Player player);
}
/// <summary>
/// Player pushes out of these. Creates a Cylindar-shape from relative 0,0,0
/// </summary>
public interface IHavePushout
{
public float PushoutHeight { get; set; }
public float PushoutRadius { get; set; }
}
/// <summary>
/// Actor is notified of Audio Timeline Events
/// </summary>
public interface IListenToAudioCallback
{
public void AudioCallbackEvent(int beatIndex);
}
/// <summary>
/// Actor is recycled instead of destroyed. Call World.Request<T> to get a new one.
/// </summary>
public interface IRecycle { }
/// <summary>
/// Strawberries search for any of these within their Target GroupName, and
/// waits until they're all satisfied or destroyed.
/// </summary>
public interface IUnlockStrawberry
{
public bool Satisfied { get; }
}
/// <summary>
/// Actors with this interface will cast a small point shadow downwards
/// </summary>
public interface ICastPointShadow
{
public float PointShadowAlpha { get; set; }
}
/// <summary>
/// Player searches for these and calls HandleDash if it collides at high velocity
/// </summary>
public interface IDashTrigger
{
public bool BouncesPlayer { get; }
public void HandleDash(Vec3 velocity);
}