示例#1
0
        public SignalDeclaration(
            SignalDeclarationBindInfo bindInfo,
            [InjectOptional]
            ZenjectSettings zenjectSettings)
        {
            zenjectSettings = zenjectSettings ?? ZenjectSettings.Default;
            _settings       = zenjectSettings.Signals ?? ZenjectSettings.SignalSettings.Default;

            _bindingId = new BindingId(bindInfo.SignalType, bindInfo.Identifier);
            _missingHandlerResponses = bindInfo.MissingHandlerResponse;
            _isAsync     = bindInfo.RunAsync;
            TickPriority = bindInfo.TickPriority;
        }
        public static DeclareSignalIdRequireHandlerAsyncTickPriorityCopyBinder DeclareSignal <TSignal>(this DiContainer container)
        {
            var signalBindInfo = new SignalDeclarationBindInfo(typeof(TSignal));

            signalBindInfo.RunAsync = container.Settings.Signals.DefaultSyncMode == SignalDefaultSyncModes.Asynchronous;
            signalBindInfo.MissingHandlerResponse = container.Settings.Signals.MissingHandlerDefaultResponse;
            signalBindInfo.TickPriority           = container.Settings.Signals.DefaultAsyncTickPriority;

            var bindInfo = container.Bind <SignalDeclaration>().AsCached()
                           .WithArguments(signalBindInfo).WhenInjectedInto(typeof(SignalBus), typeof(SignalDeclarationAsyncInitializer)).BindInfo;

            var signalBinder = new DeclareSignalIdRequireHandlerAsyncTickPriorityCopyBinder(signalBindInfo);

            signalBinder.AddCopyBindInfo(bindInfo);
            return(signalBinder);
        }
示例#3
0
 public SignalTickPriorityCopyBinder(
     SignalDeclarationBindInfo signalBindInfo)
 {
     SignalBindInfo = signalBindInfo;
 }
 public DeclareSignalIdRequireHandlerAsyncTickPriorityCopyBinder(
     SignalDeclarationBindInfo signalBindInfo)
     : base(signalBindInfo)
 {
 }
示例#5
0
 public DeclareSignalAsyncTickPriorityCopyBinder(SignalDeclarationBindInfo signalBindInfo)
     : base(signalBindInfo)
 {
 }