public void Init(IActorController actorController, IActorInitializer actorInitializer, IUiConfig uiConfig, IGameConfig gameConfig) { _actorController = actorController; _actorInitializer = actorInitializer; _uiConfig = uiConfig; _gameConfig = gameConfig; }
public static Func <WAngle> WorldFacingFromInit(IActorInitializer init, TraitInfo info, WAngle defaultFacing) { // (Dynamic)TurretFacingInit is specified relative to the actor body. // We need to add the body facing to return an absolute world angle. Func <WAngle> bodyFacing = null; var facingInit = init.GetOrDefault <FacingInit>(); if (facingInit != null) { var facing = facingInit.Value; bodyFacing = () => facing; } var turretFacingInit = init.GetOrDefault <TurretFacingInit>(info); if (turretFacingInit != null) { var facing = turretFacingInit.Value; return(bodyFacing != null ? (Func <WAngle>)(() => bodyFacing() + facing) : () => facing); } var dynamicFacingInit = init.GetOrDefault <DynamicTurretFacingInit>(info); if (dynamicFacingInit != null) { return(bodyFacing != null ? () => bodyFacing() + dynamicFacingInit.Value() : dynamicFacingInit.Value); } return(bodyFacing ?? (() => defaultFacing)); }
public static Func <int> TurretFacingFromInit(IActorInitializer init, TraitInfo info, int defaultFacing, string turret = null) { if (turret != null) { Func <int> getFacing; var dynamicTurretFacingsInit = init.GetOrDefault <DynamicTurretFacingsInit>(); if (dynamicTurretFacingsInit != null && dynamicTurretFacingsInit.Value.TryGetValue(turret, out getFacing)) { return(getFacing); } int facing; var turretFacingsInit = init.GetOrDefault <TurretFacingsInit>(); if (turretFacingsInit != null && turretFacingsInit.Value.TryGetValue(turret, out facing)) { return(() => facing); } } var turretFacingInit = init.GetOrDefault <TurretFacingInit>(info); if (turretFacingInit != null) { var facing = turretFacingInit.Value; return(() => facing); } var dynamicFacingInit = init.GetOrDefault <DynamicFacingInit>(); if (dynamicFacingInit != null) { return(dynamicFacingInit.Value); } var facingInit = init.GetOrDefault <FacingInit>(); if (facingInit != null) { var facing = facingInit.Value; return(() => facing); } return(() => defaultFacing); }
public Func <WAngle> LocalFacingFromInit(IActorInitializer init) { var turretFacingInit = init.GetOrDefault <TurretFacingInit>(this); if (turretFacingInit != null) { var facing = turretFacingInit.Value; return(() => facing); } var dynamicFacingInit = init.GetOrDefault <DynamicTurretFacingInit>(this); if (dynamicFacingInit != null) { return(dynamicFacingInit.Value); } return(() => InitialFacing); }
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); }
public Func <WAngle> WorldFacingFromInit(IActorInitializer init) { return(WorldFacingFromInit(init, this, InitialFacing)); }
public static Func <WAngle> TurretFacingFromInit(IActorInitializer init, TurretedInfo info) { return(TurretFacingFromInit(init, info, info.InitialFacing)); }
public OilPatch(IActorInitializer init, OilPatchInfo info) { this.info = info; this.resources = info.Amount == 0 ? init.World.WorldActor.TraitOrDefault <OilAmount>().Amount : info.Amount; this.burnTotal = this.info.FullAmount * init.World.WorldActor.TraitOrDefault <OilBurn>().Amount / 100; }