示例#1
0
 public override void OnEnable()
 {
     foreach (World world in ProvenceManager.Instance.worlds.Values)
     {
         world.eventManager.Raise(new WorldSafetyDestroy(world, Time.time));
     }
     if (playModeState == PlayModeStateChange.ExitingEditMode)
     {
         ShortcutManager.instance.activeProfileId = "playmode";
     }
     if (playModeState == PlayModeStateChange.EnteredEditMode)
     {
         ShortcutManager.instance.activeProfileId = "Default copy";
     }
     if (root != null)
     {
         root.Clear();
     }
     if (playModeState != PlayModeStateChange.ExitingEditMode)
     {
         ProvenceSceneHook hook = FindObjectOfType <ProvenceSceneHook>();
         if (hook == null)
         {
             CreateNewManagerHook();
             return;
         }
         ProvenceManager.Load(hook.id);
     }
     base.OnEnable();
 }
示例#2
0
        protected void AddPackageButtonPressed(MouseClickEvent e)
        {
            if (e.button != 0)
            {
                return;
            }
            HashSet <string> set = new HashSet <string>();

            foreach (string key in ProvenceManager.Collections <SystemPackage>().Keys)
            {
                if (!chosenKey.systemManager.systemPackages.Contains(key))
                {
                    set.Add(key);
                }
            }
            KeySelector keySelector = KeySelector.Open();

            keySelector.eventManager.AddListener <MainframeKeySelection <string> >(ev => {
                chosenKey.systemManager.systemPackages.Add(ev.value);
                chosenKey.systemManager.systemPackages = new HashSet <string>(chosenKey.systemManager.systemPackages.OrderBy(p => p));
                eventManager.Raise <SetSceneDirtyEvent>(new SetSceneDirtyEvent(EditorSceneManager.GetActiveScene()));
                eventManager.Raise <DrawColumnEventArgs <World> >(new DrawColumnEventArgs <World>(1));
            });
            keySelector.eventManager.Raise <SetSelectorParameters <HashSet <string> > >(new SetSelectorParameters <HashSet <string> >(set));
        }
示例#3
0
 protected void AddPackage(string packageName)
 {
     if (ProvenceManager.Collections <SystemPackage>().ContainsKey(packageName))
     {
         HashSet <Type> package = ProvenceManager.Collections <SystemPackage>()[packageName].systems;
         foreach (Type systemType in package)
         {
             if (!systemDictionary.ContainsKey(systemType))
             {
                 systemDictionary[systemType] = (ProvenceSystem)Activator.CreateInstance(systemType);
             }
         }
     }
 }
示例#4
0
 public void AddSystemPackageAtRuntime(string packageName)
 {
     if (ProvenceManager.Collections <SystemPackage>().ContainsKey(packageName))
     {
         HashSet <Type> package = ProvenceManager.Collections <SystemPackage>()[packageName].systems;
         foreach (Type systemType in package)
         {
             if (!systemDictionary.ContainsKey(systemType))
             {
                 ProvenceSystem system = (ProvenceSystem)Activator.CreateInstance(systemType);
                 AddSystem((dynamic)system);
             }
         }
     }
 }
示例#5
0
 protected void CreateEntryInstance(CreateEntryInstance <ActorManualEntry> args)
 {
     ProvenceManager.Collections <ActorManualEntry>().CreateEntryInstance(world, args.key, args.position, args.rotation);
 }
示例#6
0
 protected void SetEntityToManualEntry(SetEntityToManualEntry <ActorManualEntry> args)
 {
     ProvenceManager.Collections <ActorManualEntry>().SetEntityToEntry(world, args.entity, args.key, args.position, args.rotation);
 }
示例#7
0
 protected override void LoadCollection()
 {
     collection = ProvenceManager.Collections <ActorManualEntry>();
 }
示例#8
0
        protected static void CreateControl <V>(StructureControl <ProvenceCollectionInstance <V> > control) where V : ProvenceCollectionEntry
        {
            //Change to picker
            ListItem           item        = new ListItem();
            KeySelectorElement keySelector = item.AddKeySelector("Entry Name:", control.structure.key, ProvenceManager.Collections <V>().Keys.ToSet());

            keySelector.eventManager.AddListener <MainframeKeySelection <string> >(e => {
                control.structure.key = e.value;
                control.eventManager.Raise <MainframeKeySelection <string> >(new MainframeKeySelection <string>(e.value));
                control.eventManager.Raise(new StructureControlUpdated <ProvenceCollectionInstance <V> >(control));
            });
            item.AddButton("Set to Entry").eventManager.AddListener <MouseClickEvent>(e => {
                if (e.button != 0)
                {
                    return;
                }
                if (control.world != null && control.entity != null)
                {
                    control.world.eventManager.Raise(new SetEntityToManualEntry <V>(control.entity, keySelector.value));
                    control.eventManager.Raise(new StructureControlUpdated <ProvenceCollectionInstance <V> >(control));
                    control.eventManager.Raise(new StructureControlRefreshRequest(100));
                }
            });
            control.Add(item);
        }
 protected override void LoadCollection()
 {
     collection = ProvenceManager.Collections <SystemPackage>();
 }