public GOAP_Worldstate(WorldStateKey key, int value, IActionTarget target = null) { this.key = key; this.value = value; this.target = target; type = DetermineType(); forgetTime = DetermineForgetTime(); }
public IActionTarget FindClosestAvailable(IActionTarget[] transforms, Vector3 position) { IActionTarget closest = null; float minDistance = Mathf.Infinity; foreach (IActionTarget t in transforms) { if (t == null || !t.IsAvailable()) { continue; } float distance = Vector3.Distance(t.GetPosition(), position); if (distance < minDistance) { closest = t; minDistance = distance; } } return(closest); }
public override object ProvideValue(IServiceProvider serviceProvider) { var pvt = serviceProvider.GetService <IProvideValueTarget>(); //var s1 = (IRootObjectProvider)serviceProvider.GetService(typeof(IRootObjectProvider)); var s2 = serviceProvider.GetService <IXamlTypeResolver>(); var s3 = serviceProvider.GetService <IXamlSchemaContextProvider>(); var sdf = s3.SchemaContext; IActionTarget result = pvt.TargetProperty switch { EventInfo ee => new EventAction(pvt.TargetObject, Path, ee.EventHandlerType), DependencyProperty dp when dp.PropertyType == typeof(ICommand) => new CommandAction(pvt.TargetObject, Path), MethodInfo mm => new EventAction(pvt.TargetObject, Path, mm.GetParameters().ElementAt(1).ParameterType), _ => throw new NotSupportedException($"Not support xaml attribute: {pvt.TargetProperty}") }; return(result.ProvideValue(serviceProvider)); } }
public GOAP_Worldstate(WorldStateKey key, bool value, IActionTarget target = null) : this(key, value == true ? 1 : 0, target) { }
public void AddSatisfyWorldState(WorldStateKey key, int value, IActionTarget target = null) { GOAP_Worldstate state = new GOAP_Worldstate(key, value, target); SatisfyWorldstates.Add(state); }
public void AddSatisfyWorldState(WorldStateKey key, bool value, IActionTarget target = null) { AddSatisfyWorldState(key, value ? 1 : 0, target); }
protected void AddRequiredWorldState(WorldStateKey key, int value, IActionTarget target = null) { GOAP_Worldstate state = new GOAP_Worldstate(key, value, target); RequiredWorldstates.Add(state); }
protected void AddRequiredWorldState(WorldStateKey key, bool value, IActionTarget target = null) { AddRequiredWorldState(key, value ? 1 : 0, target); }