示例#1
0
    private void OnTriggerEnter(Collider other)
    {
        // Once we pass through the LayerConverter we are in the box. So after setting a few key parameter
        // we then parent the FactoryObject to the container and make our RB kinematic.
        // This ensures that the ball will not fly out of the box if moved too quickly for the physics simulation
        if (other.gameObject.tag == "LayerConverter")
        {
            // Added for when the Object is dropped in a container
            FactoryContainer fCon = other.transform.root.GetComponent <FactoryContainer>();
            if (fCon != null)
            {
                DropObjectInContainer(fCon);
            }
            //if (fCon != null)
            //{
            //    Debug.LogWarning("Factory Container Detected");
            //    fCon.ActivatePlaceHolderFactoryObj();
            //    fCon.IsFilled = true;
            //    fCon.UpdateCheckList();
            //    // Send this Factory Object back to the Factory object "pool"
            //    this.Initialize();
            //}
            //// todo play sound?
            //// Disable Interaction item
            //m_interaction.enabled = false;
            //m_rigid.useGravity = false;
            //m_rigid.isKinematic = true;
            //m_rigid.constraints = RigidbodyConstraints.None;

            ////UpdateCheckList();
        }
    }
示例#2
0
        private void CreateDataSource(FactoryContainer fc)
        {
            if (fc.Factory.Title == null)
            {
                return;
            }


            BarCheckItem bci = new BarCheckItem(barManager1, fc.Factory.FactoryId == activeProvider);

            bci.Manager            = barManager1;
            bci.CheckStyle         = BarCheckStyles.Radio;
            bci.GroupIndex         = 1;
            bci.CheckBoxVisibility = CheckBoxVisibility.BeforeText;
            //bci.Caption = fc.Factory.Title;
            bci.Enabled = fc.FactorySetting.Status != DataProviderFactoryStatus.Disabled;
            if (fc.Factory.SmallImage != null)
            {
                string imageName = fc.Factory.FactoryId + "_small";
                FactoriesImagesSmall.AddImage(fc.Factory.SmallImage, imageName);
                bci.Caption       = string.Format($"<image={imageName}>{fc.Factory.Title}");
                bci.AllowHtmlText = DefaultBoolean.True;
            }
            bci.ItemClick += (s, e) =>
            {
                bci.Checked = true;
                LoadFactory(fc);
            };
            bsiDataProviders.AddItem(bci);
        }
        private static ISerializer GetSerializer()
        {
            var container = new FactoryContainer <Type, JsonConverter>();

            container.AddFactory(new DynamicCombinatorConverters());
            container.AddFactory(new DataModelConverters());
            return(new JSerializer(container));
        }
示例#4
0
    void RegisterFactories()
    {
        FactoryContainer container = FactoryContainer.Instance;

        container.Register <BombFactory>();
        container.Register <PlayerFactory>();
        container.Register <Enemy1Factory>();
        container.Register <Enemy2Factory>();
    }
示例#5
0
        public XtraFormLogGrid()
        {
            InitializeComponent();
            _messages   = new List <AnalogyLogMessage>();
            _dataSource = "Analogy";
            FactoryContainer analogy = FactoriesManager.Instance.GetBuiltInFactoryContainer(AnalogyBuiltInFactory.AnalogyGuid);
            var analogyDataProvider  = analogy.DataProvidersFactories.First().DataProviders.First();

            ucLogs1.SetFileDataSource(analogyDataProvider, null);
        }
示例#6
0
    E_ScanStatus ScanItem(GameObject Obj, EFactoryType objType)
    {
        FactoryContainer fObj = null;

        switch (objType)
        {
        // Automatic Scan fail for scanning a FactoryObject by itselt
        case EFactoryType.FactoryObject:
            StartCoroutine(RestartFactoryObjectLifeCycle(Obj, EFactoryType.FactoryObject));
            ScanFailed.Raise();
            return(E_ScanStatus.Fail);

        case EFactoryType.FactoryContainer:
            fObj = Obj.GetComponent <FactoryContainer>();
            if (fObj != null)
            {
                Debug.LogWarning("FACTORY CONTAINER COMPONENT FOUND");

                // that need to be checked to see if passes inspection
                for (int i = 0; i < fObj.CheckList.Length; i++)
                {
                    if (fObj.CheckList[i])
                    {
                        continue;
                    }
                    else
                    {
                        StartCoroutine(RestartFactoryObjectLifeCycle(fObj.gameObject, EFactoryType.FactoryContainer));
                        ScanFailed.Raise();
                        return(E_ScanStatus.Fail);
                    }
                }
                //print("Success");
                // If all items of the checklist pass then the scan is successful
                StartCoroutine(RestartFactoryObjectLifeCycle(fObj.gameObject, EFactoryType.FactoryContainer));
                ScanPassed.Raise();
                return(E_ScanStatus.Pass);
            }
            else
            {
                Debug.LogWarning("NO FACTORY CONTAINER FOUND");
            }
            fObj.CanMove = false;
            return(E_ScanStatus.Fail);

        default:
            // If there is no FactoryObject Component attached then send an error
            Debug.LogWarning("No FactoryObject Component found in ScanItem");
            fObj.CanMove = false;
            return(E_ScanStatus.Fail);
        }
    }
示例#7
0
 public GameObject GrabUnusedFactoryContainer()
 {
     foreach (GameObject go in m_pooledFactoryContainers)
     {
         FactoryContainer fCon = go.GetComponent <FactoryContainer>();
         // If our GameObject has a FactoryObject Component and is not in use then return it
         if (fCon && !fCon.IsInUse)
         {
             return(go);
         }
     }
     // All objects are in use, return null
     return(null);
 }
        public FactoriesManager()
        {
            Factories        = new List <FactoryContainer>();
            BuiltInFactories = new List <FactoryContainer>();
            var analogyFactory        = new AnalogyBuiltInFactory();
            var currentAssembly       = Assembly.GetExecutingAssembly();
            var analogyFactorySetting = UserSettingsManager.UserSettings.GetOrAddFactorySetting(analogyFactory);

            analogyFactorySetting.FactoryName = analogyFactory.Title;
            FactoryContainer fc = new FactoryContainer(currentAssembly, analogyFactory, analogyFactorySetting);

            fc.AddDataProviderFactory(new AnalogyOfflineDataProviderFactory());
            fc.AddCustomActionFactory(new AnalogyCustomActionFactory());
            BuiltInFactories.Add(fc);
        }
示例#9
0
 public PluginManager(Type factoryType, string pluginPath)
 {
     Log.Debug("PluginManager<{0}> Initialized", factoryType.Name);
     try {
         factoryContainer = new FactoryContainer(factoryType, LoadAssemblies(pluginPath));
         Log.Info("\t** Loaded `{0}' {1} plugins", factoryContainer.Count, factoryType.Name);
     } catch (ReflectionTypeLoadException ex) {
         ShowDomainInfo();
         foreach (Exception e in ex.LoaderExceptions)
         {
             Log.Fatal(e);
         }
         throw;
     }
 }
示例#10
0
        public XtraFormLogGrid(bool registerToAnalogyLogger)
        {
            InitializeComponent();
            _dataSource = "Analogy";
            _messages   = new List <AnalogyLogMessage>();
            FactoryContainer analogy = FactoriesManager.Instance.GetBuiltInFactoryContainer(AnalogyBuiltInFactory.AnalogyGuid);
            var analogyDataProvider  = analogy.DataProvidersFactories.First().DataProviders.First();

            AnalogyLogManager.Instance.OnNewMessage += Instance_OnNewMessage;
            ucLogs1.SetFileDataSource(analogyDataProvider, null);

            if (registerToAnalogyLogger)
            {
                AnalogyLogManager.Instance.OnNewMessage += Instance_OnNewMessage;
            }
        }
示例#11
0
    private void OnTriggerEnter(Collider other)
    {
        switch (other.gameObject.tag)
        {
        case "FactoryContainer":
            FactoryContainer fCon = other.gameObject.GetComponent <FactoryContainer>();
            // Grab the third child in the Hierarchy and turn on the MeshRenderer
            other.gameObject.transform.GetChild(2).GetComponent <MeshRenderer>().enabled   = true;
            other.gameObject.transform.GetChild(2).GetComponent <MeshCollider>().isTrigger = false;
            fCon.IsTopped = true;
            fCon.UpdateCheckList();
            break;

        default:
            break;
        }
    }
        public FactoriesManager()
        {
            Factories        = new List <FactoryContainer>();
            BuiltInFactories = new List <FactoryContainer>();
            var analogyFactory = new AnalogyBuiltInFactory();

            analogyFactory.RegisterNotificationCallback(NotificationManager.Instance);
            var currentAssembly       = Assembly.GetExecutingAssembly();
            var analogyFactorySetting = UserSettingsManager.UserSettings.GetOrAddFactorySetting(analogyFactory);

            analogyFactorySetting.FactoryName = analogyFactory.Title;
            FactoryContainer fc = new FactoryContainer(currentAssembly, Environment.CurrentDirectory, analogyFactory,
                                                       analogyFactorySetting);

            fc.AddDataProviderFactory(new AnalogyOfflineDataProviderFactory());
            fc.AddCustomActionFactory(new AnalogyCustomActionFactory());
            BuiltInFactories.Add(fc);
        }
示例#13
0
    void DropObjectInContainer(FactoryContainer targetContainer)
    {
        Debug.LogWarning("Factory Container Detected");
        targetContainer.ActivatePlaceHolderFactoryObj();
        targetContainer.IsFilled = true;
        targetContainer.UpdateCheckList();
        // Send this Factory Object back to the Factory object "pool"
        this.Initialize();

        // todo play sound?
        // Disable Interaction item
        m_interaction.enabled = false;
        m_rigid.useGravity    = false;
        m_rigid.isKinematic   = true;
        m_rigid.constraints   = RigidbodyConstraints.None;

        //UpdateCheckList();
    }
示例#14
0
        void MessageFun(string messageKey, object param1, object param2)
        {
            if (messageKey.CompareTo(Hi5_Glove_Interaction_Message.Hi5_MessageMessageKey.messageObjectEvent) == 0)
            {
                Hi5_Glove_Interaction_Object_Event_Data data = param1 as Hi5_Glove_Interaction_Object_Event_Data;
                if (data.mObjectId == ObjectItem.idObject)
                {
                    switch (data.mEventType)
                    {
                    case EEventObjectType.EClap:
                        break;

                    case EEventObjectType.EPoke:
                        break;

                    case EEventObjectType.EPinch:
                        FactoryObject    fObj = gameObject.GetComponent <FactoryObject>();
                        FactoryContainer fCon = gameObject.GetComponent <FactoryContainer>();
                        if (fObj)
                        {
                            fObj.CanMove = false;
                        }
                        if (fCon)
                        {
                            fCon.CanMove     = false;
                            fCon.TimerActive = false;
                        }
                        break;

                    case EEventObjectType.EMove:
                        break;

                    case EEventObjectType.ELift:
                        break;

                    case EEventObjectType.EStatic:
                        break;
                    }
                }
            }
        }
        private void CreateDataSource(FactoryContainer fc)
        {
            if (fc.Factory.Title == null)
            {
                return;
            }



            BarCheckItem bci = new BarCheckItem(barManager1, fc.Factory.FactoryId == activeProvider);

            bci.Manager            = barManager1;
            bci.CheckBoxVisibility = CheckBoxVisibility.BeforeText;
            bci.Caption            = fc.Factory.Title;
            bci.Enabled            = fc.FactorySetting.Status != DataProviderFactoryStatus.Disabled;
            bci.Glyph      = fc.Factory.SmallImage;
            bci.ItemClick += (s, e) =>
            {
                bci.Checked = true;
                LoadFactory(fc);
            };
            bsiDataProviders.AddItem(bci);
        }
 public ComponentDownloadInformationUC(FactoryContainer factory) : this()
 {
     Factory      = factory;
     DownloadInfo = Factory.DownloadInformation !;
 }
        private async void FluentDesignMainForm_Load(object sender, EventArgs e)
        {
            if (DesignMode)
            {
                return;
            }

            activeProvider = settings.RememberLastOpenedDataProvider
                ? settings.LastOpenedDataProvider
                : UserSettingsManager.UserSettings.InitialSelectedDataProvider;

            if (settings.AnalogyPosition.RememberLastPosition ||
                settings.AnalogyPosition.WindowState != FormWindowState.Minimized)
            {
                WindowState = settings.AnalogyPosition.WindowState;
                if (WindowState != FormWindowState.Maximized)
                {
                    if (Screen.AllScreens.Any(s => s.WorkingArea.Contains(settings.AnalogyPosition.Location)))
                    {
                        Location = settings.AnalogyPosition.Location;
                        Size     = settings.AnalogyPosition.Size;
                    }
                    else
                    {
                        AnalogyLogger.Instance.LogError("",
                                                        $"Last location {settings.AnalogyPosition.Location} is not inside any screen");
                    }
                }
            }

            string framework = UpdateManager.Instance.CurrentFrameworkAttribute.FrameworkName;

            Text = $"Analogy Log Viewer {UpdateManager.Instance.CurrentVersion} ({framework})";
            Icon = settings.GetIcon();
            notifyIconAnalogy.Visible = preventExit = settings.MinimizedToTrayBar;
            await FactoriesManager.Instance.InitializeBuiltInFactories();

            string[] arguments = Environment.GetCommandLineArgs();
            disableOnlineDueToFileOpen = arguments.Length == 2;
            SetupEventHandlers();
            bbiFileCaching.Caption = "File caching is " + (settings.EnableFileCaching ? "on" : "off");
            bbiFileCaching.Appearance.BackColor = settings.EnableFileCaching ? Color.LightGreen : Color.Empty;


            //todo:

            //CreateAnalogyBuiltinDataProviders
            FactoryContainer analogy = FactoriesManager.Instance.GetBuiltInFactoryContainer(AnalogyBuiltInFactory.AnalogyGuid);

            CreateDataSource(analogy);


            await FactoriesManager.Instance.AddExternalDataSources();

            PopulateGlobalTools();
            //LoadStartupExtensions();

            //Create all other DataSources
            foreach (FactoryContainer factory in FactoriesManager.Instance.Factories
                     .Where(factory => !FactoriesManager.Instance.IsBuiltInFactory(factory.Factory)))
            {
                CreateDataSource(factory);
            }

            if (OnlineSources.Any())
            {
                TmrAutoConnect.Start();
            }

            Initialized = true;
            //todo: fine handler for file
            if (arguments.Length == 2)
            {
                //todo
                string[] fileNames = { arguments[1] };
                // await OpenOfflineFileWithSpecificDataProvider(fileNames);
            }
            else
            {
                TmrAutoConnect.Enabled = true;
            }

            if (settings.ShowChangeLogAtStartUp)
            {
                var change = new ChangeLog();
                change.ShowDialog(this);
            }

            //todo:fix below
            if (settings.RememberLastOpenedDataProvider && Mapping.ContainsKey(settings.LastOpenedDataProvider))
            {
                //ribbonControlMain.SelectPage(Mapping[settings.LastOpenedDataProvider]);
            }

            if (AnalogyLogManager.Instance.HasErrorMessages || AnalogyLogManager.Instance.HasWarningMessages)
            {
                bbtnErrors.Visibility = BarItemVisibility.Always;
            }

            if (!AnalogyNonPersistSettings.Instance.UpdateAreDisabled)
            {
                var(_, release) = await UpdateManager.Instance.CheckVersion(false);

                if (release?.TagName != null && UpdateManager.Instance.NewestVersion != null)
                {
                    bbtnCheckUpdates.Caption = "Latest Version: " + UpdateManager.Instance.NewestVersion.ToString();
                    if (UpdateManager.Instance.NewVersionExist)
                    {
                        bbtnCheckUpdates.Appearance.BackColor = Color.GreenYellow;
                        bbtnCheckUpdates.Caption =
                            "New Version Available: " + UpdateManager.Instance.NewestVersion.ToString();
                    }
                }
            }
            else
            {
                AnalogyLogManager.Instance.LogWarning("Update is disabled", nameof(MainForm));
            }

            if (settings.ShowWhatIsNewAtStartup)
            {
                WhatsNewForm f = new WhatsNewForm();
                f.ShowDialog(this);
                settings.ShowWhatIsNewAtStartup = false;
            }
        }
        private void LoadFactory(FactoryContainer fc)
        {
            if (activeProvider == fc.Factory.FactoryId)
            {
                return;
            }
            //        RibbonPage ribbonPage = new RibbonPage(fc.Factory.Title);
            //    ribbonControlMain.Pages.Insert(position, ribbonPage);
            //    Mapping.Add(fc.Factory.FactoryId, ribbonPage);
            //    var ribbonPageImage = FactoriesManager.Instance.GetSmallImage(fc.Factory.FactoryId);
            //    if (ribbonPageImage != null)
            //    {
            //        ribbonPage.ImageOptions.Image = ribbonPageImage;
            //    }

            //    AddGraphPlotter(ribbonPage, fc.GraphPlotter);
            //    var dataSourceFactory = fc.DataProvidersFactories;

            //    foreach (var dataProvidersFactory in dataSourceFactory)
            //    {
            //        if (!string.IsNullOrEmpty(dataProvidersFactory.Title))
            //        {
            //            CreateDataSourceRibbonGroup(fc.Factory, dataProvidersFactory, ribbonPage);
            //        }
            //    }

            //    var actionFactories = fc.CustomActionsFactories;
            //    foreach (var actionFactory in actionFactories.Where(af
            //        => af.Actions.Any(a => a.Type == AnalogyCustomActionType.BelongsToProvider)))
            //    {

            //        if (string.IsNullOrEmpty(actionFactory.Title))
            //        {
            //            continue;
            //        }

            //        RibbonPageGroup groupActionSource = new RibbonPageGroup(actionFactory.Title);
            //        groupActionSource.AllowTextClipping = false;
            //        ribbonPage.Groups.Add(groupActionSource);
            //        if (actionFactory.Actions == null)
            //        {
            //            AnalogyLogManager.Instance.LogCritical($"null actions for {actionFactory.Title}:{actionFactory.FactoryId}", $"{actionFactory.Title}{actionFactory.FactoryId}");
            //            continue;
            //        }
            //        foreach (IAnalogyCustomAction action in actionFactory.Actions.Where(a => a.Type == AnalogyCustomActionType.BelongsToProvider))
            //        {
            //            BarButtonItem actionBtn = new BarButtonItem
            //            {
            //                Caption = action.Title,
            //                RibbonStyle = RibbonItemStyles.All
            //            };
            //            groupActionSource.ItemLinks.Add(actionBtn);
            //            actionBtn.ImageOptions.Image = action.SmallImage ?? Resources.PageSetup_32x32;
            //            actionBtn.ImageOptions.LargeImage = action.LargeImage ?? Resources.PageSetup_32x32;
            //            actionBtn.ItemClick += (sender, e) => { action.Action(); };
            //        }
            //    }

            //    AddFactorySettings(fc, ribbonPage);
            //    AddAbout(fc, ribbonPage);
        }
示例#19
0
 public GameFactory(FactoryContainer container)
 {
     _container = container;
 }