public StdInterpreterPackage(ConfigurableEWRIptrFactory factory, ImmediateGiver <Behaver, GrammarBlock> behaverGiver) { _fAnalyser = factory.NewConfigurableFAnalyser(); _gAnalyser = factory.NewConfigurableGAnalyser(); _bAnalyser = factory.NewConfigurableBAnalyser(behaverGiver); _configurableIptr = factory.NewNativeConfigurableERWInterpreter(); _configurableIptr.SetFAnalyser(_fAnalyser); _configurableIptr.SetGAnalyser(_gAnalyser); _configurableIptr.SetBAnalyser(_bAnalyser); }
public static IEnumerable <BehaviorTrigger> TriggerNameListToTriggerList(ImmediateGiver <BehaviorTrigger, string> baseTrigger, IEnumerable <string> triggerNames) { var triggerList = new List <BehaviorTrigger>(); foreach (var triggerName in triggerNames) { var unitProcess = baseTrigger.PickBestElement(triggerName); triggerList.Add(unitProcess); } return(triggerList); }
public BehaverFactoryBridge(ImmediateGiver <Behaver, GrammarBlock> _behaverGiver, BridgeHelperFactoryBridge _helperFactory) { behaverGiver = _behaverGiver; behaverFrontFactoryCallback = (factoryAgent, baseAttributeGBlock) => { try { var picked = behaverGiver.PickBestElement(NativeGrammarBlockUtils.GBlockPtrToGBlock(baseAttributeGBlock)); if (picked != null) { behavers.Add(new BehaverBridge(picked, _helperFactory)); ReadyBehaver(factoryAgent, behavers.Last().matchAttributeCallback, behavers.Last().setBehaviorCallback, behavers.Last().checkBehaviorCallback); } } catch (System.Exception e) { Debug.LogError(e); } }; nativeFactoryPtr = _helperFactory.NewBehaverFactory(behaverFrontFactoryCallback); }
public ConfigurableBAnalyserBridge NewConfigurableBAnalyser(ImmediateGiver <Behaver, GrammarBlock> behaverFactory) { var factoryBridge = new BehaverFactoryBridge(behaverFactory, helperFactory); factory.Add(factoryBridge); var anlys = new ConfigurableBAnalyserBridge { helperFactory = helperFactory, implPtr = NewConfigurableBAnalyser(implPtr, factoryBridge.nativeFactoryPtr) }; if (nativeBehaverGetter != null) { nativeBehaverGetter.GetElement(new NativeBehaverGetter { bAnlys = anlys }); } return(anlys); }