Skip to content

Commit e16056c

Browse files
authored
Merge pull request #187 from EverestAPI/flag_toggle_camera_triggers
Flag-toggled camera target triggers and smooth camera offsets
2 parents 78dea0b + 4af58f7 commit e16056c

File tree

5 files changed

+94
-0
lines changed

5 files changed

+94
-0
lines changed

Ahorn/lang/en_gb.lang

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,25 @@ placements.triggers.SpringCollab2020/SmoothCameraOffsetTrigger.tooltips.offsetYT
5858
placements.triggers.SpringCollab2020/SmoothCameraOffsetTrigger.tooltips.positionMode=The fade direction.
5959
placements.triggers.SpringCollab2020/SmoothCameraOffsetTrigger.tooltips.onlyOnce=If checked, the trigger will be disabled when the player first leaves it.
6060

61+
# Flag Toggle Smooth Camera Offset Trigger
62+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.offsetXFrom=The X offset to fade from.
63+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.offsetXTo=The X offset to fade to.
64+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.offsetYFrom=The Y offset to fade from.
65+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.offsetYTo=The Y offset to fade to.
66+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.positionMode=The fade direction.
67+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.onlyOnce=If checked, the trigger will be disabled when the player first leaves it.
68+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.flag=The flag this trigger should react to.
69+
placements.triggers.SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger.tooltips.inverted=If checked, the trigger will be disabled when the flag is active.\nIf unchecked, the trigger will be enabled when the flag is active.
70+
71+
# Flag Toggle Camera Target Trigger
72+
placements.triggers.SpringCollab2020/FlagToggleCameraTargetTrigger.tooltips.positionMode=Determines which direction the camera position moves in.
73+
placements.triggers.SpringCollab2020/FlagToggleCameraTargetTrigger.tooltips.yOnly=The camera will only lock on the Y axis.
74+
placements.triggers.SpringCollab2020/FlagToggleCameraTargetTrigger.tooltips.xOnly=The camera will only lock on the X axis.
75+
placements.triggers.SpringCollab2020/FlagToggleCameraTargetTrigger.tooltips.lerpStrength=Determines how fast the camera moves to lock into place upon activation.
76+
placements.triggers.SpringCollab2020/FlagToggleCameraTargetTrigger.tooltips.deleteFlag=Session flag to deactivate the trigger, ignored if left empty. Camera will not reset if player is inside the trigger as it deactivates.\nIf the player transitions into the room with the flag set, the trigger can not be reactivated. However, if it was enabled and then disabled in the room, the player can reactivate it.
77+
placements.triggers.SpringCollab2020/FlagToggleCameraTargetTrigger.tooltips.flag=The flag this trigger should react to.
78+
placements.triggers.SpringCollab2020/FlagToggleCameraTargetTrigger.tooltips.inverted=If checked, the trigger will be disabled when the flag is active.\nIf unchecked, the trigger will be enabled when the flag is active.
79+
6180
# Dash Spring
6281
placements.entities.SpringCollab2020/dashSpring.tooltips.playerCanUse=Determines whether the player is able to interact with the spring.
6382

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
module SpringCollab2020FlagToggleCameraTargetTrigger
2+
3+
using ..Ahorn, Maple
4+
5+
@mapdef Trigger "SpringCollab2020/FlagToggleCameraTargetTrigger" FlagToggleCameraTargetTrigger(x::Integer, y::Integer, width::Integer=Maple.defaultTriggerWidth, height::Integer=Maple.defaultTriggerHeight,
6+
lerpStrength::Number=0.0, positionMode::String="NoEffect", xOnly::Bool=false, yOnly::Bool=false, deleteFlag::String="", nodes::Array{Tuple{Integer, Integer}, 1}=Tuple{Integer, Integer}[],
7+
flag::String="flag_toggle_camera_target", inverted::Bool=false)
8+
9+
const placements = Ahorn.PlacementDict(
10+
"Flag Toggle Camera Target (Spring Collab 2020)" => Ahorn.EntityPlacement(
11+
FlagToggleCameraTargetTrigger,
12+
"rectangle",
13+
Dict{String, Any}(),
14+
function(trigger)
15+
trigger.data["nodes"] = [(Int(trigger.data["x"]) + Int(trigger.data["width"]) + 8, Int(trigger.data["y"]))]
16+
end
17+
)
18+
)
19+
20+
function Ahorn.editingOptions(trigger::FlagToggleCameraTargetTrigger)
21+
return Dict{String, Any}(
22+
"positionMode" => Maple.trigger_position_modes
23+
)
24+
end
25+
26+
function Ahorn.nodeLimits(trigger::FlagToggleCameraTargetTrigger)
27+
return 1, 1
28+
end
29+
30+
end
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module SpringCollab2020FlagToggleSmoothCameraOffsetTrigger
2+
3+
using ..Ahorn, Maple
4+
5+
@mapdef Trigger "SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger" FlagToggleSmoothCameraOffsetTrigger(x::Integer, y::Integer, width::Integer=Maple.defaultTriggerWidth, height::Integer=Maple.defaultTriggerHeight,
6+
offsetXFrom::Number=0.0, offsetXTo::Number=0.0, offsetYFrom::Number=0.0, offsetYTo::Number=0.0, positionMode::String="NoEffect", onlyOnce::Bool=false, flag::String="flag_toggle_smooth_camera_offset", inverted::Bool=false)
7+
8+
const placements = Ahorn.PlacementDict(
9+
"Flag Toggle Smooth Camera Offset (Spring Collab 2020)" => Ahorn.EntityPlacement(
10+
FlagToggleSmoothCameraOffsetTrigger,
11+
"rectangle",
12+
),
13+
)
14+
15+
function Ahorn.editingOptions(trigger::FlagToggleSmoothCameraOffsetTrigger)
16+
return Dict{String, Any}(
17+
"positionMode" => Maple.trigger_position_modes
18+
)
19+
end
20+
21+
end
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Celeste.Mod.Entities;
2+
using Celeste.Mod.SpringCollab2020.Entities;
3+
using Microsoft.Xna.Framework;
4+
5+
namespace Celeste.Mod.SpringCollab2020.Triggers {
6+
[CustomEntity("SpringCollab2020/FlagToggleCameraTargetTrigger")]
7+
class FlagToggleCameraTargetTrigger : CameraTargetTrigger {
8+
public FlagToggleCameraTargetTrigger(EntityData data, Vector2 offset) : base(data, offset) {
9+
Add(new FlagToggleComponent(data.Attr("flag"), data.Bool("inverted")));
10+
}
11+
}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Celeste.Mod.Entities;
2+
using Celeste.Mod.SpringCollab2020.Entities;
3+
using Microsoft.Xna.Framework;
4+
5+
namespace Celeste.Mod.SpringCollab2020.Triggers {
6+
[CustomEntity("SpringCollab2020/FlagToggleSmoothCameraOffsetTrigger")]
7+
class FlagToggleSmoothCameraOffsetTrigger : SmoothCameraOffsetTrigger {
8+
public FlagToggleSmoothCameraOffsetTrigger(EntityData data, Vector2 offset) : base(data, offset) {
9+
Add(new FlagToggleComponent(data.Attr("flag"), data.Bool("inverted")));
10+
}
11+
}
12+
}

0 commit comments

Comments
 (0)