コード例 #1
0
        public static bool CheckIfHasCustomRenderer(PediaUI ui, PediaDirector.Id id)
        {
            var panel = GetPanel(ui);

            if (PediaRegistry.activeRenderer != null)
            {
                if (PediaRegistry.activeRenderer is IReusablePediaRenderer r)
                {
                    r.CurrentID = id;
                }
                PediaRegistry.activeRenderer.OnListingDeselected(panel);
                PediaRegistry.activeRenderer = null;
            }

            var renderer = PediaRegistry.GetRenderer(id);

            if (renderer == null)
            {
                return(false);
            }
            if (renderer is IReusablePediaRenderer R)
            {
                R.CurrentID = id;
            }
            renderer.OnListingSelected(panel);
            PediaRegistry.activeRenderer = renderer;
            return(true);
        }
コード例 #2
0
 /// <summary>
 /// Template to create new Craft Resources
 /// </summary>
 /// <param name="name">The name of the object (prefixes are recommend, but not needed)</param>
 /// <param name="ID">The Identifiable ID for this resource</param>
 /// <param name="pediaID">The pedia ID for this resource</param>
 /// <param name="mesh">The model's mesh for this resource</param>
 /// <param name="materials">The materials that compose this resource's model</param>
 public CraftResourceTemplate(string name, Identifiable.Id ID, PediaDirector.Id pediaID, Mesh mesh, Material[] materials) : base(name)
 {
     this.ID        = ID;
     this.pediaID   = pediaID;
     this.mesh      = mesh;
     this.materials = materials;
 }
コード例 #3
0
 public static void RegisterIdEntry(PediaDirector.Id id, Sprite icon)
 {
     RegisterIdEntry(new PediaDirector.IdEntry()
     {
         id = id, icon = icon
     });
 }
コード例 #4
0
 public static void RegisterIdentifiableMapping(PediaDirector.Id pedia, Identifiable.Id ident)
 {
     RegisterIdentifiableMapping(new PediaDirector.IdentMapEntry()
     {
         identId = ident, pediaId = pedia
     });
 }
コード例 #5
0
        public static void SetPediaCategory(PediaDirector.Id id, PediaCategory category)
        {
            var cat = GetCategory(category).ToList();

            cat.Add(id);
            GetCategory(category) = cat.ToArray();
        }
コード例 #6
0
        public static void Prefix(PediaUI __instance, PediaDirector.Id id)
        {
            if (id == PediaDirector.Id.LOCKED)
            {
                return;
            }
            if (PediaRegistry.activeTabRenderer != null)
            {
                PediaRegistry.activeTabRenderer.OnTabDeselected(__instance.gameObject);
                PediaRegistry.activeTabRenderer = null;
            }
            foreach (var v in PediaRegistry.customTabs)
            {
                if (v.Key.Entries.Contains(id))
                {
                    v.Key.TabToggle.isOn = true;

                    __instance.BuildListing(v.Key.Entries.ToArray());
                    PediaRegistry.activeTabRenderer = v.Key.TabRenderer;
                    if (PediaRegistry.activeTabRenderer != null)
                    {
                        PediaRegistry.activeTabRenderer.OnTabSelected(__instance.gameObject);
                    }
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// Adds Pedia mappings
        /// </summary>
        /// <param name="id">The pedia ID to register</param>
        /// <param name="cat">The pedia category to add this in</param>
        public IdentifiableItem AddPediaMapping(PediaDirector.Id id, PediaRegistry.PediaCategory cat = PediaRegistry.PediaCategory.RESOURCES)
        {
            PediaRegistry.RegisterIdentifiableMapping(id, ID);
            PediaRegistry.RegisterIdEntry(id, Icon);
            PediaRegistry.SetPediaCategory(id, cat);

            return(this);
        }
コード例 #8
0
        public static bool Prefix(PediaDirector __instance, PediaDirector.Id id)
        {
            if (__instance.entryDict.ContainsKey(id))
            {
                return(true);
            }

            __instance.UnlockWithoutPopup(id);
            return(false);
        }
コード例 #9
0
 internal static PediaTab GetCustomPediaTab(PediaDirector.Id id)
 {
     foreach (var v in customTabs)
     {
         if (v.Key.Entries.Contains(id) || v.Key.ID == id)
         {
             return(v.Key);
         }
     }
     return(null);
 }
コード例 #10
0
 internal static IPediaRenderer GetRenderer(PediaDirector.Id id)
 {
     if (!customPediaRenderers.TryGetValue(id, out var renderer))
     {
         var tab = GetCustomPediaTab(id);
         if (tab != null)
         {
             return(GetDefaultRenderer(tab.DefaultDisplaySetting));
         }
         return(null);
     }
     return(renderer);
 }
コード例 #11
0
        /// <summary>
        /// Template to create new foods
        /// </summary>
        /// <param name="name">The name of the object (prefixes are recommended, but not needed)</param>
        /// <param name="ID">The Identifiable ID for this food</param>
        /// <param name="pediaID">The pedia ID for this resource</param>
        /// <param name="type">The type of food</param>
        /// <param name="mesh">The model's mesh for this food</param>
        /// <param name="materials">The materials that compose this food's model</param>
        public FoodTemplate(string name, Identifiable.Id ID, PediaDirector.Id pediaID, Type type, Mesh mesh, Material[] materials) : base(name)
        {
            this.ID        = ID;
            foodType       = type;
            this.mesh      = mesh;
            this.materials = materials;

            if (type != Type.CUSTOM)
            {
                releaseCue      = type == Type.VEGGIE ? EffectObjects.cueVeggieRelease : EffectObjects.cueFruitRelease;
                hitCue          = type == Type.VEGGIE ? EffectObjects.cueHitVeggie : EffectObjects.cueHitFruit;
                ejectWhenMature = type == Type.VEGGIE;
            }
        }
コード例 #12
0
 public static void RegisterRenderer(PediaDirector.Id id, IPediaRenderer renderer)
 {
     customPediaRenderers.Add(id, renderer);
 }
コード例 #13
0
 public static void RegisterInitialPediaEntry(PediaDirector.Id id)
 {
     initialEntries.Add(id);
 }
コード例 #14
0
 public ResourcePediaEntryTranslation(PediaDirector.Id id) : base(id)
 {
 }
コード例 #15
0
 public TutorialPediaEntryTranslation(PediaDirector.Id id) : base(id)
 {
 }
コード例 #16
0
 public SlimePediaEntryTranslation(PediaDirector.Id id) : base(id)
 {
 }