Ejemplo n.º 1
0
        public override void Awake()
        {
            ShowDoppleganger = false;
            DopplegangerProps.Clear();
            DopplegangerMode = WIMode.Stacked;
            MouseoverHover   = false;
            DisplayMode      = SquareDisplayMode.Disabled;

            base.Awake();
        }
Ejemplo n.º 2
0
        public virtual void     SetMode(WIMode mode)
        {
            if (mDestroyed)
            {
                return;
            }

            if (!Is(WILoadState.Initialized | WILoadState.PreparingToUnload) || mode == WIMode.None)
            {
                return;
            }

            if (IsTemplate)
            {
                return;
            }

            Props.Local.PreviousMode = Props.Local.Mode;
            Props.Local.Mode         = mode;

            switch (mode)
            {
            case WIMode.World:
                OnSetWorldMode(false);
                break;

            case WIMode.Hidden:
                OnSetHiddenMode();
                break;

            case WIMode.Destroyed:
                OnSetDestroyedMode();
                break;

            case WIMode.Frozen:
                OnSetWorldMode(true);
                break;

            case WIMode.Equipped:
                OnSetEquippedMode();
                break;

            case WIMode.RemovedFromGame:
                StartCoroutine(OnSetRemovedMode());
                break;

            default:
                //stacked, crafting, etc. all handle themselves
                //just set the mode
                break;
            }
            //we don't bother to check if we're already in this mode
            //sometimes calling mode is like a 'reset' button and we
            //don't want to prevent that from happening
            if (mode != WIMode.RemovedFromGame)
            {
                try {
                    OnModeChange.SafeInvoke();
                } catch (Exception e) {
                    Debug.LogError("Exception when changing mode, proceeding normally: " + e.ToString());
                }
            }
        }
Ejemplo n.º 3
0
 public bool Is(WIMode mode)
 {
     return(Frontiers.Flags.Check((uint)Props.Local.Mode, (uint)mode, Frontiers.Flags.CheckType.MatchAny));
 }
Ejemplo n.º 4
0
        public override GameObject GetDoppleganger(WorldItem item, Transform dopplegangerParent, string dopplegangerName, WIMode mode, string state, string subcat, float scaleMultiplier, TimeOfDay tod, TimeOfYear toy)
        {
            GameObject doppleganger = dopplegangerParent.gameObject.FindOrCreateChild(dopplegangerName).gameObject;

            Books.Get.InitializeBookAvatarGameObject(doppleganger, item.StackName, subcat);
            WorldItems.ApplyDopplegangerMode(item, doppleganger, mode, scaleMultiplier);
            return(doppleganger);
        }
Ejemplo n.º 5
0
 public StackItem GetStackItem(WIMode stackItemMode)
 {
     return(this);
 }
Ejemplo n.º 6
0
        //custom doppleganger script for plants
        public override GameObject GetDoppleganger(WorldItem item, Transform dopplegangerParent, string dopplegangerName, WIMode mode, string state, string subcat, float scaleMultiplier, TimeOfDay tod, TimeOfYear toy)
        {
            GameObject doppleganger = dopplegangerParent.gameObject.FindOrCreateChild(dopplegangerName).gameObject;
            Vector3    offset       = Vector3.zero;

            //we have a lookup based on season so this has to be in season form
            toy = WorldClock.TimeOfYearToSeason(toy);
            Plants.Get.InitializeWorldPlantGameObject(doppleganger, subcat, toy);
            if (Flags.Check((uint)mode, (uint)(WIMode.Stacked | WIMode.Selected | WIMode.Crafting | WIMode.Wear), Flags.CheckType.MatchAny))
            {
                WorldItems.AutoScaleDoppleganger(dopplegangerParent, doppleganger, item.BaseObjectBounds, ref scaleMultiplier, ref offset);
            }
            //TODO debug so this isn't necessary...
            offset.y = 0f;
            WorldItems.ApplyDopplegangerMode(item, doppleganger, mode, scaleMultiplier, offset);
            return(doppleganger);
        }
Ejemplo n.º 7
0
 {                           //used by WorldItems manager to create a custom doppleganger
     public virtual GameObject GetDoppleganger(WorldItem item, Transform dopplegangerParent, string dopplegangerName, WIMode mode, string state, string subcat, float scaleMultiplier, TimeOfDay tod, TimeOfYear toy)
     {
         return(null);
     }
Ejemplo n.º 8
0
        public override GameObject GetDoppleganger(WorldItem item, Transform dopplegangerParent, string dopplegangerName, WIMode mode, string state, string subcat, float scaleMultiplier, TimeOfDay tod, TimeOfYear toy)
        {
            GameObject doppleganger = dopplegangerParent.gameObject.FindOrCreateChild(dopplegangerName).gameObject;
            //use the subcat to get our blueprint result
            Vector3 offset = Vector3.zero;

            ItemBounds.size               = Vector3.one;
            ItemBounds.center             = Vector3.zero;
            doppleganger.transform.parent = null;
            doppleganger.transform.ResetLocal();
            PreparedFoods.InitializePreparedFoodGameObject(doppleganger, subcat, true, ref ItemBounds);
            doppleganger.transform.parent = dopplegangerParent;
            if (Flags.Check((uint)mode, (uint)(WIMode.Stacked | WIMode.Selected | WIMode.Crafting | WIMode.Wear), Flags.CheckType.MatchAny))
            {
                WorldItems.AutoScaleDoppleganger(dopplegangerParent, doppleganger, ItemBounds, ref scaleMultiplier, ref offset);
            }
            WorldItems.ApplyDopplegangerMode(item, doppleganger, mode, scaleMultiplier, offset);
            WorldItems.ApplyDopplegangerMaterials(doppleganger, mode);
            return(doppleganger);
        }