File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
MethodSystem/Methods/DoorMethods Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ using System ;
2+ using System . Linq ;
3+ using Interactables . Interobjects . DoorUtils ;
4+ using SER . ArgumentSystem . Arguments ;
5+ using SER . ArgumentSystem . BaseArguments ;
6+ using SER . MethodSystem . BaseMethods ;
7+
8+ namespace SER . MethodSystem . Methods . DoorMethods ;
9+
10+ public class SetDoorPermissionMethod : SynchronousMethod
11+ {
12+ public override string Description => "Sets door permissions." ;
13+
14+ public override Argument [ ] ExpectedArguments { get ; } =
15+ [
16+ new DoorsArgument ( "doors" ) ,
17+ new EnumArgument < DoorPermissionFlags > ( "permissions" )
18+ {
19+ ConsumesRemainingValues = true ,
20+ }
21+ ] ;
22+
23+ public override void Execute ( )
24+ {
25+ var doors = Args . GetDoors ( "doors" ) ;
26+ var permissions = Args
27+ . GetRemainingArguments < object , EnumArgument < DoorPermissionFlags > > ( "permissions" )
28+ . Cast < DoorPermissionFlags > ( )
29+ . ToArray ( ) ;
30+
31+ doors . ForEach ( door =>
32+ {
33+ door . Permissions = permissions . Aggregate ( ( a , b ) => a | b ) ;
34+ } ) ;
35+ }
36+ }
You can’t perform that action at this time.
0 commit comments