public static Func <int> TurretFacingFromInit(IActorInitializer init, int def, string turret = null) { if (turret != null && init.Contains <DynamicTurretFacingsInit>()) { Func <int> facing; if (init.Get <DynamicTurretFacingsInit, Dictionary <string, Func <int> > >().TryGetValue(turret, out facing)) { return(facing); } } if (turret != null && init.Contains <TurretFacingsInit>()) { int facing; if (init.Get <TurretFacingsInit, Dictionary <string, int> >().TryGetValue(turret, out facing)) { return(() => facing); } } if (init.Contains <TurretFacingInit>()) { var facing = init.Get <TurretFacingInit, int>(); return(() => facing); } if (init.Contains <DynamicFacingInit>()) { return(init.Get <DynamicFacingInit, Func <int> >()); } if (init.Contains <FacingInit>()) { var facing = init.Get <FacingInit, int>(); return(() => facing); } return(() => def); }
public static int GetInitialTurretFacing(IActorInitializer init, int def, string turret = null) { if (turret != null && init.Contains <TurretFacingsInit>()) { int facing; if (init.Get <TurretFacingsInit, Dictionary <string, int> >().TryGetValue(turret, out facing)) { return(facing); } } if (init.Contains <TurretFacingInit>()) { return(init.Get <TurretFacingInit, int>()); } if (init.Contains <FacingInit>()) { return(init.Get <FacingInit, int>()); } return(def); }