Beispiel #1
0
 public SelectExternalContentTypeDialog(string title, Action <ExternalContentType> selectionHandler)
     : base(title, from v in EnumUtils.GetEnumValues(typeof(ExternalContentType))
            where ExternalContentManager.IsEntryTypeDownloadSupported((ExternalContentType) v)
            select v, 64f, delegate(object item)
 {
     ExternalContentType type = (ExternalContentType)item;
     XElement node            = ContentManager.Get <XElement>("Widgets/SelectExternalContentTypeItem");
     ContainerWidget obj      = (ContainerWidget)Widget.LoadWidget(null, node, null);
     obj.Children.Find <RectangleWidget>("SelectExternalContentType.Icon").Subtexture = ExternalContentManager.GetEntryTypeIcon(type);
     obj.Children.Find <LabelWidget>("SelectExternalContentType.Text").Text           = ExternalContentManager.GetEntryTypeDescription(type);
     return(obj);
 }, delegate(object item)
 {
     selectionHandler((ExternalContentType)item);
 })
 {
 }
        public override void Update()
        {
            if (m_gameModeButton.IsClicked)
            {
                IList <int> enumValues = EnumUtils.GetEnumValues(typeof(GameMode));
                m_worldSettings.GameMode = (GameMode)((enumValues.IndexOf((int)m_worldSettings.GameMode) + 1) % enumValues.Count);
                while (m_worldSettings.GameMode == GameMode.Adventure)
                {
                    m_worldSettings.GameMode = (GameMode)((enumValues.IndexOf((int)m_worldSettings.GameMode) + 1) % enumValues.Count);
                }
            }
            if (m_startingPositionButton.IsClicked)
            {
                IList <int> enumValues2 = EnumUtils.GetEnumValues(typeof(StartingPositionMode));
                m_worldSettings.StartingPositionMode = (StartingPositionMode)((enumValues2.IndexOf((int)m_worldSettings.StartingPositionMode) + 1) % enumValues2.Count);
            }
            bool flag = WorldsManager.ValidateWorldName(m_worldSettings.Name);

            m_nameTextBox.Text            = m_worldSettings.Name;
            m_seedTextBox.Text            = m_worldSettings.Seed;
            m_gameModeButton.Text         = LanguageControl.Get("GameMode", m_worldSettings.GameMode.ToString());
            m_startingPositionButton.Text = LanguageControl.Get("StartingPositionMode", m_worldSettings.StartingPositionMode.ToString());
            m_playButton.IsVisible        = flag;
            m_errorLabel.IsVisible        = !flag;
            m_blankSeedLabel.IsVisible    = (m_worldSettings.Seed.Length == 0 && !m_seedTextBox.HasFocus);
            m_descriptionLabel.Text       = StringsManager.GetString("GameMode." + m_worldSettings.GameMode.ToString() + ".Description");
            if (m_worldOptionsButton.IsClicked)
            {
                ScreensManager.SwitchScreen("WorldOptions", m_worldSettings, false);
            }
            if (m_playButton.IsClicked && WorldsManager.ValidateWorldName(m_nameTextBox.Text))
            {
                if (m_worldSettings.GameMode != 0)
                {
                    m_worldSettings.ResetOptionsForNonCreativeMode();
                }
                WorldInfo worldInfo = WorldsManager.CreateWorld(m_worldSettings);
                ScreensManager.SwitchScreen("GameLoading", worldInfo, null);
            }
            if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked)
            {
                ScreensManager.SwitchScreen("Play");
            }
        }
        static PlantsManager()
        {
            m_treeBrushesByType = new List <TerrainBrush> [EnumUtils.GetEnumValues(typeof(TreeType)).Max() + 1];
            m_treeTrunksByType  = new int[5]
            {
                9,
                10,
                11,
                11,
                255
            };
            m_treeLeavesByType = new int[5]
            {
                12,
                13,
                14,
                225,
                256
            };
            Random random = new Random(33);

            m_treeBrushesByType[0] = new List <TerrainBrush>();
            for (int i = 0; i < 16; i++)
            {
                int[] array = new int[16]
                {
                    5,
                    6,
                    7,
                    7,
                    8,
                    8,
                    9,
                    9,
                    9,
                    10,
                    10,
                    11,
                    12,
                    13,
                    14,
                    16
                };
                int          height4       = array[i];
                int          branchesCount = (int)MathUtils.Lerp(10f, 20f, (float)i / 16f);
                TerrainBrush item          = CreateTreeBrush(random, GetTreeTrunkValue(TreeType.Oak), GetTreeLeavesValue(TreeType.Oak), height4, branchesCount, delegate(int y)
                {
                    float num7 = 0.4f;
                    if ((float)y < 0.2f * (float)height4)
                    {
                        num7 = 0f;
                    }
                    else if ((float)y >= 0.2f * (float)height4 && y <= height4)
                    {
                        num7 *= 1.5f;
                    }
                    return(num7);
                }, delegate(int y)
                {
                    if ((float)y < (float)height4 * 0.3f || (float)y > (float)height4 * 0.9f)
                    {
                        return(0f);
                    }
                    float num6 = ((float)y < (float)height4 * 0.7f) ? (0.5f * (float)height4) : (0.35f * (float)height4);
                    return(random.Float(0.33f, 1f) * num6);
                });
                m_treeBrushesByType[0].Add(item);
            }
            m_treeBrushesByType[1] = new List <TerrainBrush>();
            for (int j = 0; j < 16; j++)
            {
                int[] array2 = new int[16]
                {
                    4,
                    5,
                    6,
                    6,
                    7,
                    7,
                    7,
                    8,
                    8,
                    8,
                    9,
                    9,
                    9,
                    10,
                    10,
                    11
                };
                int          height3        = array2[j];
                int          branchesCount2 = (int)MathUtils.Lerp(0f, 20f, (float)j / 16f);
                TerrainBrush item2          = CreateTreeBrush(random, GetTreeTrunkValue(TreeType.Birch), GetTreeLeavesValue(TreeType.Birch), height3, branchesCount2, delegate(int y)
                {
                    float num5 = 0.66f;
                    if (y < height3 / 2 - 1)
                    {
                        num5 = 0f;
                    }
                    else if (y > height3 / 2 && y <= height3)
                    {
                        num5 *= 1.5f;
                    }
                    return(num5);
                }, (int y) => ((float)y <(float)height3 * 0.35f || (float)y> (float) height3 * 0.75f) ? 0f : random.Float(0f, 0.33f * (float)height3));
                m_treeBrushesByType[1].Add(item2);
            }
            m_treeBrushesByType[2] = new List <TerrainBrush>();
            for (int k = 0; k < 16; k++)
            {
                int[] array3 = new int[16]
                {
                    7,
                    8,
                    9,
                    10,
                    10,
                    11,
                    11,
                    12,
                    12,
                    13,
                    13,
                    14,
                    14,
                    15,
                    16,
                    17
                };
                int          height2        = array3[k];
                int          branchesCount3 = height2 * 3;
                TerrainBrush item3          = CreateTreeBrush(random, GetTreeTrunkValue(TreeType.Spruce), GetTreeLeavesValue(TreeType.Spruce), height2, branchesCount3, delegate(int y)
                {
                    float num4 = MathUtils.Lerp(1.4f, 0.3f, (float)y / (float)height2);
                    if (y < 3)
                    {
                        num4 = 0f;
                    }
                    if (y % 2 == 0)
                    {
                        num4 *= 0.3f;
                    }
                    return(num4);
                }, delegate(int y)
                {
                    if (y < 3 || (float)y > (float)height2 * 0.8f)
                    {
                        return(0f);
                    }
                    return((y % 2 == 0) ? 0f : MathUtils.Lerp(0.3f * (float)height2, 0f, MathUtils.Saturate((float)y / (float)height2)));
                });
                m_treeBrushesByType[2].Add(item3);
            }
            m_treeBrushesByType[3] = new List <TerrainBrush>();
            for (int l = 0; l < 16; l++)
            {
                int[] array4 = new int[18]
                {
                    20,
                    21,
                    22,
                    23,
                    24,
                    24,
                    25,
                    25,
                    26,
                    26,
                    27,
                    27,
                    28,
                    28,
                    29,
                    29,
                    30,
                    30
                };
                int          height         = array4[l];
                int          branchesCount4 = height * 3;
                float        startHeight    = (0.3f + (float)(l % 4) * 0.05f) * (float)height;
                TerrainBrush item4          = CreateTreeBrush(random, GetTreeTrunkValue(TreeType.TallSpruce), GetTreeLeavesValue(TreeType.TallSpruce), height, branchesCount4, delegate(int y)
                {
                    float num2 = MathUtils.Saturate((float)y / (float)height);
                    float num3 = MathUtils.Lerp(1.5f, 0f, MathUtils.Saturate((num2 - 0.6f) / 0.4f));
                    if ((float)y < startHeight)
                    {
                        num3 = 0f;
                    }
                    if (y % 3 != 0 && y < height - 4)
                    {
                        num3 *= 0.2f;
                    }
                    return(num3);
                }, delegate(int y)
                {
                    float num = MathUtils.Saturate((float)y / (float)height);
                    if (y % 3 != 0)
                    {
                        return(0f);
                    }
                    return(((float)y < startHeight) ? ((!((float)y < startHeight - 4f)) ? (0.1f * (float)height) : 0f) : MathUtils.Lerp(0.18f * (float)height, 0f, MathUtils.Saturate((num - 0.6f) / 0.4f)));
                });
                m_treeBrushesByType[3].Add(item4);
            }
            m_treeBrushesByType[4] = new List <TerrainBrush>();
            for (int m = 0; m < 16; m++)
            {
                m_treeBrushesByType[4].Add(CreateMimosaBrush(random, MathUtils.Lerp(6f, 9f, (float)m / 15f)));
            }
        }
 public override void Update()
 {
     if (m_windowModeButton.IsClicked)
     {
         SettingsManager.WindowMode = (WindowMode)((int)(SettingsManager.WindowMode + 1) % EnumUtils.GetEnumValues(typeof(WindowMode)).Count);
     }
     if (m_languageButton.IsClicked)
     {
         DialogsManager.ShowDialog(null, new MessageDialog(LanguageControl.Get(fName, 1), LanguageControl.Get(fName, 2), LanguageControl.Get("Usual", "yes"), LanguageControl.Get("Usual", "no"), delegate(MessageDialogButton button)
         {
             if (button == MessageDialogButton.Button1)
             {
                 ModsManager.modSettings.languageType = (LanguageControl.LanguageType)((int)(ModsManager.modSettings.languageType + 1) % EnumUtils.GetEnumValues(typeof(LanguageControl.LanguageType)).Count);
                 ModsManager.SaveSettings();
                 System.Environment.Exit(0);
             }
         }));
     }
     if (m_uiSizeButton.IsClicked)
     {
         SettingsManager.GuiSize = (GuiSize)((int)(SettingsManager.GuiSize + 1) % EnumUtils.GetEnumValues(typeof(GuiSize)).Count);
     }
     if (m_upsideDownButton.IsClicked)
     {
         SettingsManager.UpsideDownLayout = !SettingsManager.UpsideDownLayout;
     }
     if (m_hideMoveLookPadsButton.IsClicked)
     {
         SettingsManager.HideMoveLookPads = !SettingsManager.HideMoveLookPads;
     }
     if (m_showGuiInScreenshotsButton.IsClicked)
     {
         SettingsManager.ShowGuiInScreenshots = !SettingsManager.ShowGuiInScreenshots;
     }
     if (m_showLogoInScreenshotsButton.IsClicked)
     {
         SettingsManager.ShowLogoInScreenshots = !SettingsManager.ShowLogoInScreenshots;
     }
     if (m_screenshotSizeButton.IsClicked)
     {
         SettingsManager.ScreenshotSize = (ScreenshotSize)((int)(SettingsManager.ScreenshotSize + 1) % EnumUtils.GetEnumValues(typeof(ScreenshotSize)).Count);
     }
     if (m_communityContentModeButton.IsClicked)
     {
         SettingsManager.CommunityContentMode = (CommunityContentMode)((int)(SettingsManager.CommunityContentMode + 1) % EnumUtils.GetEnumValues(typeof(CommunityContentMode)).Count);
     }
     m_windowModeButton.Text            = LanguageControl.Get("WindowMode", SettingsManager.WindowMode.ToString());
     m_uiSizeButton.Text                = LanguageControl.Get("GuiSize", SettingsManager.GuiSize.ToString());
     m_languageButton.Text              = LanguageControl.LName();
     m_upsideDownButton.Text            = (SettingsManager.UpsideDownLayout ? LanguageControl.Get("Usual", "yes") : LanguageControl.Get("Usual", "no"));
     m_hideMoveLookPadsButton.Text      = (SettingsManager.HideMoveLookPads ? LanguageControl.Get("Usual", "yes") : LanguageControl.Get("Usual", "no"));
     m_showGuiInScreenshotsButton.Text  = (SettingsManager.ShowGuiInScreenshots ? LanguageControl.Get("Usual", "yes") : LanguageControl.Get("Usual", "no"));
     m_showLogoInScreenshotsButton.Text = (SettingsManager.ShowLogoInScreenshots ? LanguageControl.Get("Usual", "yes") : LanguageControl.Get("Usual", "no"));
     m_screenshotSizeButton.Text        = LanguageControl.Get("ScreenshotSize", SettingsManager.ScreenshotSize.ToString());
     m_communityContentModeButton.Text  = LanguageControl.Get("CommunityContentMode", SettingsManager.CommunityContentMode.ToString());
     if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked)
     {
         ScreensManager.SwitchScreen(ScreensManager.PreviousScreen);
     }
 }
Beispiel #5
0
        public override void Update()
        {
            if (m_gameModeButton.IsClicked && m_worldSettings.GameMode != GameMode.Cruel)
            {
                IList <int> enumValues = EnumUtils.GetEnumValues(typeof(GameMode));
                do
                {
                    m_worldSettings.GameMode = (GameMode)((enumValues.IndexOf((int)m_worldSettings.GameMode) + 1) % enumValues.Count);
                }while (m_worldSettings.GameMode == GameMode.Cruel);
                m_descriptionLabel.Text = StringsManager.GetString("GameMode." + m_worldSettings.GameMode.ToString() + ".Description");
            }
            m_currentWorldSettingsData.Clear();
            m_worldSettings.Save(m_currentWorldSettingsData, liveModifiableParametersOnly: true);
            bool flag  = !CompareValueDictionaries(m_originalWorldSettingsData, m_currentWorldSettingsData);
            bool flag2 = WorldsManager.ValidateWorldName(m_worldSettings.Name);

            m_nameTextBox.Text           = m_worldSettings.Name;
            m_seedLabel.Text             = m_worldSettings.Seed;
            m_gameModeButton.Text        = LanguageControl.Get("GameMode", m_worldSettings.GameMode.ToString());
            m_gameModeButton.IsEnabled   = (m_worldSettings.GameMode != GameMode.Cruel);
            m_errorLabel.IsVisible       = !flag2;
            m_descriptionLabel.IsVisible = flag2;
            m_uploadButton.IsEnabled     = (flag2 && !flag);
            m_applyButton.IsEnabled      = (flag2 && flag);
            m_descriptionLabel.Text      = StringsManager.GetString("GameMode." + m_worldSettings.GameMode.ToString() + ".Description");
            if (m_worldOptionsButton.IsClicked)
            {
                ScreensManager.SwitchScreen("WorldOptions", m_worldSettings, true);
            }
            if (m_deleteButton.IsClicked)
            {
                MessageDialog dialog = null;
                dialog = new MessageDialog(LanguageControl.Get(fName, 1), LanguageControl.Get(fName, 2), LanguageControl.Get("Usual", "yes"), LanguageControl.Get("Usual", "no"), delegate(MessageDialogButton button)
                {
                    if (button == MessageDialogButton.Button1)
                    {
                        WorldsManager.DeleteWorld(m_directoryName);
                        ScreensManager.SwitchScreen("Play");
                        DialogsManager.HideDialog(dialog);
                    }
                    else
                    {
                        DialogsManager.HideDialog(dialog);
                    }
                });
                dialog.AutoHide = false;
                DialogsManager.ShowDialog(null, dialog);
            }
            if (m_uploadButton.IsClicked && flag2 && !flag)
            {
                ExternalContentManager.ShowUploadUi(ExternalContentType.World, m_directoryName);
            }
            if ((m_applyButton.IsClicked && flag2) & flag)
            {
                if (m_worldSettings.GameMode != 0 && m_worldSettings.GameMode != GameMode.Adventure)
                {
                    m_worldSettings.ResetOptionsForNonCreativeMode();
                }
                WorldsManager.ChangeWorld(m_directoryName, m_worldSettings);
                ScreensManager.SwitchScreen("Play");
            }
            if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked)
            {
                if (flag)
                {
                    DialogsManager.ShowDialog(null, new MessageDialog(LanguageControl.Get(fName, 3), LanguageControl.Get(fName, 4), LanguageControl.Get("Usual", "yes"), LanguageControl.Get("Usual", "no"), delegate(MessageDialogButton button)
                    {
                        if (button == MessageDialogButton.Button1)
                        {
                            ScreensManager.SwitchScreen("Play");
                        }
                    }));
                }
                else
                {
                    ScreensManager.SwitchScreen("Play");
                }
            }
        }
Beispiel #6
0
        public override void Update()
        {
            CommunityContentEntry communityContentEntry = m_listPanel.SelectedItem as CommunityContentEntry;

            m_downloadButton.IsEnabled = (communityContentEntry != null);
            m_deleteButton.IsEnabled   = (UserManager.ActiveUser != null && communityContentEntry != null && communityContentEntry.UserId == UserManager.ActiveUser.UniqueId);
            m_orderLabel.Text          = GetOrderDisplayName(m_order);
            m_filterLabel.Text         = GetFilterDisplayName(m_filter);
            if (m_changeOrderButton.IsClicked)
            {
                List <Order> items = EnumUtils.GetEnumValues(typeof(Order)).Cast <Order>().ToList();
                DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, "Order Type"), items, 60f, (object item) => GetOrderDisplayName((Order)item), delegate(object item)
                {
                    m_order = (Order)item;
                    PopulateList(null);
                }));
            }
            if (m_changeFilterButton.IsClicked)
            {
                List <object> list = new List <object>();
                list.Add(string.Empty);
                foreach (ExternalContentType item in from ExternalContentType t in EnumUtils.GetEnumValues(typeof(ExternalContentType))
                         where ExternalContentManager.IsEntryTypeDownloadSupported(t)
                         select t)
                {
                    list.Add(item);
                }
                if (UserManager.ActiveUser != null)
                {
                    list.Add(UserManager.ActiveUser.UniqueId);
                }
                DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, "Filter"), list, 60f, (object item) => GetFilterDisplayName(item), delegate(object item)
                {
                    m_filter = item;
                    PopulateList(null);
                }));
            }
            if (m_downloadButton.IsClicked && communityContentEntry != null)
            {
                DownloadEntry(communityContentEntry);
            }
            if (m_deleteButton.IsClicked && communityContentEntry != null)
            {
                DeleteEntry(communityContentEntry);
            }
            if (m_moreOptionsButton.IsClicked)
            {
                DialogsManager.ShowDialog(null, new MoreCommunityLinkDialog());
            }
            if (m_moreLink != null && m_moreLink.IsClicked)
            {
                PopulateList((string)m_moreLink.Tag);
            }
            if (base.Input.Back || Children.Find <BevelledButtonWidget>("TopBar.Back").IsClicked)
            {
                ScreensManager.SwitchScreen("Content");
            }
            if (base.Input.Hold.HasValue && base.Input.HoldTime > 2f && base.Input.Hold.Value.Y < 20f)
            {
                m_contentExpiryTime = 0.0;
                Task.Delay(250).Wait();
            }
        }
Beispiel #7
0
 public override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
 {
     m_subsystemTime        = base.Project.FindSubsystem <SubsystemTime>(throwOnError: true);
     m_subsystemPickables   = base.Project.FindSubsystem <SubsystemPickables>(throwOnError: true);
     m_componentCreature    = base.Entity.FindComponent <ComponentCreature>(throwOnError: true);
     m_componentPathfinding = base.Entity.FindComponent <ComponentPathfinding>(throwOnError: true);
     m_foodFactors          = new float[EnumUtils.GetEnumValues(typeof(FoodType)).Max() + 1];
     foreach (KeyValuePair <string, object> item in valuesDictionary.GetValue <ValuesDictionary>("FoodFactors"))
     {
         FoodType foodType = (FoodType)Enum.Parse(typeof(FoodType), item.Key, ignoreCase: false);
         m_foodFactors[(int)foodType] = (float)item.Value;
     }
     m_subsystemPickables.PickableAdded += delegate(Pickable pickable)
     {
         if (TryAddPickable(pickable) && m_pickable == null)
         {
             m_pickable = pickable;
         }
     };
     m_subsystemPickables.PickableRemoved += delegate(Pickable pickable)
     {
         m_pickables.Remove(pickable);
         if (m_pickable == pickable)
         {
             m_pickable = null;
         }
     };
     m_stateMachine.AddState("Inactive", delegate
     {
         m_importanceLevel = 0f;
         m_pickable        = null;
     }, delegate
     {
         if (m_satiation < 1f)
         {
             if (m_pickable == null)
             {
                 if (m_subsystemTime.GameTime > m_nextFindPickableTime)
                 {
                     m_nextFindPickableTime = m_subsystemTime.GameTime + (double)m_random.Float(2f, 4f);
                     m_pickable             = FindPickable(m_componentCreature.ComponentBody.Position);
                 }
             }
             else
             {
                 m_importanceLevel = m_random.Float(5f, 10f);
             }
         }
         if (IsActive)
         {
             m_stateMachine.TransitionTo("Move");
             m_blockedCount = 0;
         }
     }, null);
     m_stateMachine.AddState("Move", delegate
     {
         if (m_pickable != null)
         {
             float speed = (m_satiation == 0f) ? m_random.Float(0.5f, 0.7f) : 0.5f;
             int maxPathfindingPositions = (m_satiation == 0f) ? 1000 : 500;
             float num2 = Vector3.Distance(m_componentCreature.ComponentCreatureModel.EyePosition, m_componentCreature.ComponentBody.Position);
             m_componentPathfinding.SetDestination(m_pickable.Position, speed, 1f + num2, maxPathfindingPositions, useRandomMovements: true, ignoreHeightDifference: false, raycastDestination: true, null);
             if (m_random.Float(0f, 1f) < 0.66f)
             {
                 m_componentCreature.ComponentCreatureSounds.PlayIdleSound(skipIfRecentlyPlayed: true);
             }
         }
     }, delegate
     {
         if (!IsActive)
         {
             m_stateMachine.TransitionTo("Inactive");
         }
         else if (m_pickable == null)
         {
             m_importanceLevel = 0f;
         }
         else if (m_componentPathfinding.IsStuck)
         {
             m_importanceLevel = 0f;
             m_satiation      += 0.75f;
         }
         else if (!m_componentPathfinding.Destination.HasValue)
         {
             m_stateMachine.TransitionTo("Eat");
         }
         else if (Vector3.DistanceSquared(m_componentPathfinding.Destination.Value, m_pickable.Position) > 0.0625f)
         {
             m_stateMachine.TransitionTo("PickableMoved");
         }
         if (m_random.Float(0f, 1f) < 0.1f * m_subsystemTime.GameTimeDelta)
         {
             m_componentCreature.ComponentCreatureSounds.PlayIdleSound(skipIfRecentlyPlayed: true);
         }
         if (m_pickable != null)
         {
             m_componentCreature.ComponentCreatureModel.LookAtOrder = m_pickable.Position;
         }
         else
         {
             m_componentCreature.ComponentCreatureModel.LookRandomOrder = true;
         }
     }, null);
     m_stateMachine.AddState("PickableMoved", null, delegate
     {
         if (m_pickable != null)
         {
             m_componentCreature.ComponentCreatureModel.LookAtOrder = m_pickable.Position;
         }
         if (m_subsystemTime.PeriodicGameTimeEvent(0.25, (double)(GetHashCode() % 100) * 0.01))
         {
             m_stateMachine.TransitionTo("Move");
         }
     }, null);
     m_stateMachine.AddState("Eat", delegate
     {
         m_eatTime     = m_random.Float(4f, 5f);
         m_blockedTime = 0f;
     }, delegate
     {
         if (!IsActive)
         {
             m_stateMachine.TransitionTo("Inactive");
         }
         if (m_pickable == null)
         {
             m_importanceLevel = 0f;
         }
         if (m_pickable != null)
         {
             if (Vector3.DistanceSquared(new Vector3(m_componentCreature.ComponentCreatureModel.EyePosition.X, m_componentCreature.ComponentBody.Position.Y, m_componentCreature.ComponentCreatureModel.EyePosition.Z), m_pickable.Position) < 0.640000045f)
             {
                 m_eatTime    -= m_subsystemTime.GameTimeDelta;
                 m_blockedTime = 0f;
                 if (m_eatTime <= 0.0)
                 {
                     m_satiation     += 1f;
                     m_pickable.Count = MathUtils.Max(m_pickable.Count - 1, 0);
                     if (m_pickable.Count == 0)
                     {
                         m_pickable.ToRemove = true;
                         m_importanceLevel   = 0f;
                     }
                     else if (m_random.Float(0f, 1f) < 0.5f)
                     {
                         m_importanceLevel = 0f;
                     }
                 }
             }
             else
             {
                 float num = Vector3.Distance(m_componentCreature.ComponentCreatureModel.EyePosition, m_componentCreature.ComponentBody.Position);
                 m_componentPathfinding.SetDestination(m_pickable.Position, 0.3f, 0.5f + num, 0, useRandomMovements: false, ignoreHeightDifference: true, raycastDestination: false, null);
                 m_blockedTime += m_subsystemTime.GameTimeDelta;
             }
             if (m_blockedTime > 3f)
             {
                 m_blockedCount++;
                 if (m_blockedCount >= 3)
                 {
                     m_importanceLevel = 0f;
                     m_satiation      += 0.75f;
                 }
                 else
                 {
                     m_stateMachine.TransitionTo("Move");
                 }
             }
         }
         m_componentCreature.ComponentCreatureModel.FeedOrder = true;
         if (m_random.Float(0f, 1f) < 0.1f * m_subsystemTime.GameTimeDelta)
         {
             m_componentCreature.ComponentCreatureSounds.PlayIdleSound(skipIfRecentlyPlayed: true);
         }
         if (m_random.Float(0f, 1f) < 1.5f * m_subsystemTime.GameTimeDelta)
         {
             m_componentCreature.ComponentCreatureSounds.PlayFootstepSound(2f);
         }
     }, null);
     m_stateMachine.TransitionTo("Inactive");
 }
Beispiel #8
0
        public override void Update()
        {
            if (m_terrainGenerationButton.IsClicked && !m_isExistingWorld)
            {
                IList <int> enumValues = EnumUtils.GetEnumValues(typeof(TerrainGenerationMode));
                DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, 1), enumValues, 56f, (object e) => StringsManager.GetString("TerrainGenerationMode." + ((TerrainGenerationMode)e).ToString() + ".Name"), delegate(object e)
                {
                    if (m_worldSettings.GameMode != 0 && ((TerrainGenerationMode)e == TerrainGenerationMode.FlatContinent || (TerrainGenerationMode)e == TerrainGenerationMode.FlatIsland))
                    {
                        DialogsManager.ShowDialog(null, new MessageDialog(LanguageControl.Get(fName, 4), LanguageControl.Get(fName, 5), LanguageControl.Get("Usual", "ok"), null, null));
                    }
                    else
                    {
                        m_worldSettings.TerrainGenerationMode = (TerrainGenerationMode)e;
                        m_descriptionLabel.Text = StringsManager.GetString("TerrainGenerationMode." + m_worldSettings.TerrainGenerationMode.ToString() + ".Description");
                    }
                }));
            }
            if (m_islandSizeEW.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.IslandSize.X = m_islandSizes[MathUtils.Clamp((int)m_islandSizeEW.Value, 0, m_islandSizes.Length - 1)];
            }
            if (m_islandSizeNS.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.IslandSize.Y = m_islandSizes[MathUtils.Clamp((int)m_islandSizeNS.Value, 0, m_islandSizes.Length - 1)];
            }
            if (m_flatTerrainLevelSlider.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.TerrainLevel = MathUtils.Clamp((int)m_flatTerrainLevelSlider.Value / (int)m_flatTerrainLevelSlider.Granularity * (int)m_flatTerrainLevelSlider.Granularity, 2, 252);
                m_descriptionLabel.Text      = StringsManager.GetString("FlatTerrainLevel.Description");
            }
            if (m_flatTerrainShoreRoughnessSlider.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.ShoreRoughness = m_flatTerrainShoreRoughnessSlider.Value;
                m_descriptionLabel.Text        = StringsManager.GetString("FlatTerrainShoreRoughness.Description");
            }
            if (m_flatTerrainBlockButton.IsClicked && !m_isExistingWorld)
            {
                int[] items = new int[19]
                {
                    8,
                    2,
                    7,
                    3,
                    67,
                    66,
                    4,
                    5,
                    26,
                    73,
                    21,
                    46,
                    47,
                    15,
                    62,
                    68,
                    126,
                    71,
                    1
                };
                DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, 2), items, 72f, delegate(object index)
                {
                    XElement node2       = ContentManager.Get <XElement>("Widgets/SelectBlockItem");
                    ContainerWidget obj2 = (ContainerWidget)Widget.LoadWidget(null, node2, null);
                    obj2.Children.Find <BlockIconWidget>("SelectBlockItem.Block").Contents = (int)index;
                    obj2.Children.Find <LabelWidget>("SelectBlockItem.Text").Text          = BlocksManager.Blocks[(int)index].GetDisplayName(null, Terrain.MakeBlockValue((int)index));
                    return(obj2);
                }, delegate(object index)
                {
                    m_worldSettings.TerrainBlockIndex = (int)index;
                }));
            }
            if (m_flatTerrainMagmaOceanCheckbox.IsClicked)
            {
                m_worldSettings.TerrainOceanBlockIndex = ((m_worldSettings.TerrainOceanBlockIndex == 18) ? 92 : 18);
                m_descriptionLabel.Text = StringsManager.GetString("FlatTerrainMagmaOcean.Description");
            }
            if (m_seaLevelOffsetSlider.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.SeaLevelOffset = (int)m_seaLevelOffsetSlider.Value;
                m_descriptionLabel.Text        = StringsManager.GetString("SeaLevelOffset.Description");
            }
            if (m_temperatureOffsetSlider.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.TemperatureOffset = m_temperatureOffsetSlider.Value;
                m_descriptionLabel.Text           = StringsManager.GetString("TemperatureOffset.Description");
            }
            if (m_humidityOffsetSlider.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.HumidityOffset = m_humidityOffsetSlider.Value;
                m_descriptionLabel.Text        = StringsManager.GetString("HumidityOffset.Description");
            }
            if (m_biomeSizeSlider.IsSliding && !m_isExistingWorld)
            {
                m_worldSettings.BiomeSize = m_biomeSizes[MathUtils.Clamp((int)m_biomeSizeSlider.Value, 0, m_biomeSizes.Length - 1)];
                m_descriptionLabel.Text   = StringsManager.GetString("BiomeSize.Description");
            }
            if (m_blocksTextureButton.IsClicked)
            {
                BlocksTexturesManager.UpdateBlocksTexturesList();
                ListSelectionDialog dialog = new ListSelectionDialog(LanguageControl.Get(fName, 3), BlocksTexturesManager.BlockTexturesNames, 64f, delegate(object item)
                {
                    XElement node       = ContentManager.Get <XElement>("Widgets/BlocksTextureItem");
                    ContainerWidget obj = (ContainerWidget)Widget.LoadWidget(this, node, null);
                    Texture2D texture2  = m_blockTexturesCache.GetTexture((string)item);
                    obj.Children.Find <LabelWidget>("BlocksTextureItem.Text").Text           = BlocksTexturesManager.GetDisplayName((string)item);
                    obj.Children.Find <LabelWidget>("BlocksTextureItem.Details").Text        = $"{texture2.Width}x{texture2.Height}";
                    obj.Children.Find <RectangleWidget>("BlocksTextureItem.Icon").Subtexture = new Subtexture(texture2, Vector2.Zero, Vector2.One);
                    return(obj);
                }, delegate(object item)
                {
                    m_worldSettings.BlocksTextureName = (string)item;
                });
                DialogsManager.ShowDialog(null, dialog);
                m_descriptionLabel.Text = StringsManager.GetString("BlocksTexture.Description");
            }
            if (m_paletteButton.IsClicked)
            {
                DialogsManager.ShowDialog(null, new EditPaletteDialog(m_worldSettings.Palette));
            }
            if (m_supernaturalCreaturesButton.IsClicked)
            {
                m_worldSettings.AreSupernaturalCreaturesEnabled = !m_worldSettings.AreSupernaturalCreaturesEnabled;
                m_descriptionLabel.Text = StringsManager.GetString("SupernaturalCreatures." + m_worldSettings.AreSupernaturalCreaturesEnabled.ToString());
            }
            if (m_friendlyFireButton.IsClicked)
            {
                m_worldSettings.IsFriendlyFireEnabled = !m_worldSettings.IsFriendlyFireEnabled;
                m_descriptionLabel.Text = StringsManager.GetString("FriendlyFire." + m_worldSettings.IsFriendlyFireEnabled.ToString());
            }
            if (m_environmentBehaviorButton.IsClicked)
            {
                IList <int> enumValues2 = EnumUtils.GetEnumValues(typeof(EnvironmentBehaviorMode));
                m_worldSettings.EnvironmentBehaviorMode = (EnvironmentBehaviorMode)((enumValues2.IndexOf((int)m_worldSettings.EnvironmentBehaviorMode) + 1) % enumValues2.Count);
                m_descriptionLabel.Text = StringsManager.GetString("EnvironmentBehaviorMode." + m_worldSettings.EnvironmentBehaviorMode.ToString() + ".Description");
            }
            if (m_timeOfDayButton.IsClicked)
            {
                IList <int> enumValues3 = EnumUtils.GetEnumValues(typeof(TimeOfDayMode));
                m_worldSettings.TimeOfDayMode = (TimeOfDayMode)((enumValues3.IndexOf((int)m_worldSettings.TimeOfDayMode) + 1) % enumValues3.Count);
                m_descriptionLabel.Text       = StringsManager.GetString("TimeOfDayMode." + m_worldSettings.TimeOfDayMode.ToString() + ".Description");
            }
            if (m_weatherEffectsButton.IsClicked)
            {
                m_worldSettings.AreWeatherEffectsEnabled = !m_worldSettings.AreWeatherEffectsEnabled;
                m_descriptionLabel.Text = StringsManager.GetString("WeatherMode." + m_worldSettings.AreWeatherEffectsEnabled.ToString());
            }
            if (m_adventureRespawnButton.IsClicked)
            {
                m_worldSettings.IsAdventureRespawnAllowed = !m_worldSettings.IsAdventureRespawnAllowed;
                m_descriptionLabel.Text = StringsManager.GetString("AdventureRespawnMode." + m_worldSettings.IsAdventureRespawnAllowed.ToString());
            }
            if (m_adventureSurvivalMechanicsButton.IsClicked)
            {
                m_worldSettings.AreAdventureSurvivalMechanicsEnabled = !m_worldSettings.AreAdventureSurvivalMechanicsEnabled;
                m_descriptionLabel.Text = StringsManager.GetString("AdventureSurvivalMechanics." + m_worldSettings.AreAdventureSurvivalMechanicsEnabled.ToString());
            }
            m_creativeModePanel.IsVisible     = (m_worldSettings.GameMode == GameMode.Creative);
            m_newWorldOnlyPanel.IsVisible     = !m_isExistingWorld;
            m_continentTerrainPanel.IsVisible = (m_worldSettings.TerrainGenerationMode == TerrainGenerationMode.Continent || m_worldSettings.TerrainGenerationMode == TerrainGenerationMode.FlatContinent);
            m_islandTerrainPanel.IsVisible    = (m_worldSettings.TerrainGenerationMode == TerrainGenerationMode.Island || m_worldSettings.TerrainGenerationMode == TerrainGenerationMode.FlatIsland);
            m_flatTerrainPanel.IsVisible      = (m_worldSettings.TerrainGenerationMode == TerrainGenerationMode.FlatContinent || m_worldSettings.TerrainGenerationMode == TerrainGenerationMode.FlatIsland);
            m_terrainGenerationButton.Text    = StringsManager.GetString("TerrainGenerationMode." + m_worldSettings.TerrainGenerationMode.ToString() + ".Name");
            m_islandSizeEW.Value                      = FindNearestIndex(m_islandSizes, m_worldSettings.IslandSize.X);
            m_islandSizeEW.Text                       = m_worldSettings.IslandSize.X.ToString();
            m_islandSizeNS.Value                      = FindNearestIndex(m_islandSizes, m_worldSettings.IslandSize.Y);
            m_islandSizeNS.Text                       = m_worldSettings.IslandSize.Y.ToString();
            m_flatTerrainLevelSlider.Value            = m_worldSettings.TerrainLevel;
            m_flatTerrainLevelSlider.Text             = m_worldSettings.TerrainLevel.ToString();
            m_flatTerrainShoreRoughnessSlider.Value   = m_worldSettings.ShoreRoughness;
            m_flatTerrainShoreRoughnessSlider.Text    = $"{m_worldSettings.ShoreRoughness * 100f:0}%";
            m_flatTerrainBlock.Contents               = m_worldSettings.TerrainBlockIndex;
            m_flatTerrainMagmaOceanCheckbox.IsChecked = (m_worldSettings.TerrainOceanBlockIndex == 92);
            string text = (BlocksManager.Blocks[m_worldSettings.TerrainBlockIndex] != null) ? BlocksManager.Blocks[m_worldSettings.TerrainBlockIndex].GetDisplayName(null, Terrain.MakeBlockValue(m_worldSettings.TerrainBlockIndex)) : string.Empty;

            m_flatTerrainBlockLabel.Text = ((text.Length > 10) ? (text.Substring(0, 10) + "...") : text);
            Texture2D texture = m_blockTexturesCache.GetTexture(m_worldSettings.BlocksTextureName);

            m_blocksTextureIcon.Subtexture          = new Subtexture(texture, Vector2.Zero, Vector2.One);
            m_blocksTextureLabel.Text               = BlocksTexturesManager.GetDisplayName(m_worldSettings.BlocksTextureName);
            m_blocksTextureDetails.Text             = $"{texture.Width}x{texture.Height}";
            m_seaLevelOffsetSlider.Value            = m_worldSettings.SeaLevelOffset;
            m_seaLevelOffsetSlider.Text             = FormatOffset(m_worldSettings.SeaLevelOffset);
            m_temperatureOffsetSlider.Value         = m_worldSettings.TemperatureOffset;
            m_temperatureOffsetSlider.Text          = FormatOffset(m_worldSettings.TemperatureOffset);
            m_humidityOffsetSlider.Value            = m_worldSettings.HumidityOffset;
            m_humidityOffsetSlider.Text             = FormatOffset(m_worldSettings.HumidityOffset);
            m_biomeSizeSlider.Value                 = FindNearestIndex(m_biomeSizes, m_worldSettings.BiomeSize);
            m_biomeSizeSlider.Text                  = m_worldSettings.BiomeSize.ToString() + "x";
            m_environmentBehaviorButton.Text        = LanguageControl.Get("EnvironmentBehaviorMode", m_worldSettings.EnvironmentBehaviorMode.ToString());
            m_timeOfDayButton.Text                  = LanguageControl.Get("TimeOfDayMode", m_worldSettings.TimeOfDayMode.ToString());
            m_weatherEffectsButton.Text             = (m_worldSettings.AreWeatherEffectsEnabled ? LanguageControl.Get("Usual", "enable") : LanguageControl.Get("Usual", "disable"));
            m_adventureRespawnButton.Text           = (m_worldSettings.IsAdventureRespawnAllowed ? LanguageControl.Get("Usual", "allowed") : LanguageControl.Get("Usual", "not allowed"));
            m_adventureSurvivalMechanicsButton.Text = (m_worldSettings.AreAdventureSurvivalMechanicsEnabled ? LanguageControl.Get("Usual", "enable") : LanguageControl.Get("Usual", "disable"));
            m_supernaturalCreaturesButton.Text      = (m_worldSettings.AreSupernaturalCreaturesEnabled ? LanguageControl.Get("Usual", "enable") : LanguageControl.Get("Usual", "disable"));
            m_friendlyFireButton.Text               = (m_worldSettings.IsFriendlyFireEnabled ? LanguageControl.Get("Usual", "allowed") : LanguageControl.Get("Usual", "not allowed"));
            if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked)
            {
                ScreensManager.SwitchScreen(ScreensManager.PreviousScreen);
            }
        }
 public void Update(float dt)
 {
     if (m_subsystemGameInfo.WorldSettings.GameMode != 0 && m_subsystemGameInfo.WorldSettings.AreAdventureSurvivalMechanicsEnabled && m_subsystemTime.PeriodicGameTimeEvent(0.5, 0.0))
     {
         foreach (int enumValue in EnumUtils.GetEnumValues(typeof(ClothingSlot)))
         {
             bool flag = false;
             m_clothesList.Clear();
             m_clothesList.AddRange(GetClothes((ClothingSlot)enumValue));
             int num = 0;
             while (num < m_clothesList.Count)
             {
                 int          value        = m_clothesList[num];
                 ClothingData clothingData = ClothingBlock.GetClothingData(Terrain.ExtractData(value));
                 if ((float)clothingData.PlayerLevelRequired > m_componentPlayer.PlayerData.Level)
                 {
                     m_componentGui.DisplaySmallMessage(string.Format(LanguageControl.Get(fName, 1), clothingData.PlayerLevelRequired, clothingData.DisplayName), Color.White, blinking: true, playNotificationSound: true);
                     m_subsystemPickables.AddPickable(value, 1, m_componentBody.Position, null, null);
                     m_clothesList.RemoveAt(num);
                     flag = true;
                 }
                 else
                 {
                     num++;
                 }
             }
             if (flag)
             {
                 SetClothes((ClothingSlot)enumValue, m_clothesList);
             }
         }
     }
     if (m_subsystemGameInfo.WorldSettings.GameMode != 0 && m_subsystemGameInfo.WorldSettings.AreAdventureSurvivalMechanicsEnabled && m_subsystemTime.PeriodicGameTimeEvent(2.0, 0.0) && ((m_componentLocomotion.LastWalkOrder.HasValue && m_componentLocomotion.LastWalkOrder.Value != Vector2.Zero) || (m_componentLocomotion.LastSwimOrder.HasValue && m_componentLocomotion.LastSwimOrder.Value != Vector3.Zero) || m_componentLocomotion.LastJumpOrder != 0f))
     {
         if (m_lastTotalElapsedGameTime.HasValue)
         {
             foreach (int enumValue2 in EnumUtils.GetEnumValues(typeof(ClothingSlot)))
             {
                 bool flag2 = false;
                 m_clothesList.Clear();
                 m_clothesList.AddRange(GetClothes((ClothingSlot)enumValue2));
                 for (int i = 0; i < m_clothesList.Count; i++)
                 {
                     int          value2        = m_clothesList[i];
                     ClothingData clothingData2 = ClothingBlock.GetClothingData(Terrain.ExtractData(value2));
                     float        num2          = (m_componentVitalStats.Wetness > 0f) ? (10f * clothingData2.Sturdiness) : (20f * clothingData2.Sturdiness);
                     double       num3          = MathUtils.Floor(m_lastTotalElapsedGameTime.Value / (double)num2);
                     if (MathUtils.Floor(m_subsystemGameInfo.TotalElapsedGameTime / (double)num2) > num3 && m_random.Float(0f, 1f) < 0.75f)
                     {
                         m_clothesList[i] = BlocksManager.DamageItem(value2, 1);
                         flag2            = true;
                     }
                 }
                 int num4 = 0;
                 while (num4 < m_clothesList.Count)
                 {
                     if (Terrain.ExtractContents(m_clothesList[num4]) != 203)
                     {
                         m_clothesList.RemoveAt(num4);
                         m_subsystemParticles.AddParticleSystem(new BlockDebrisParticleSystem(m_subsystemTerrain, m_componentBody.Position + m_componentBody.BoxSize / 2f, 1f, 1f, Color.White, 0));
                         m_componentGui.DisplaySmallMessage(LanguageControl.Get(fName, 2), Color.White, blinking: true, playNotificationSound: true);
                     }
                     else
                     {
                         num4++;
                     }
                 }
                 if (flag2)
                 {
                     SetClothes((ClothingSlot)enumValue2, m_clothesList);
                 }
             }
         }
         m_lastTotalElapsedGameTime = m_subsystemGameInfo.TotalElapsedGameTime;
     }
     UpdateRenderTargets();
 }
 public override void Update()
 {
     if (m_moveControlModeButton.IsClicked)
     {
         SettingsManager.MoveControlMode = (MoveControlMode)((int)(SettingsManager.MoveControlMode + 1) % EnumUtils.GetEnumValues(typeof(MoveControlMode)).Count);
     }
     if (m_lookControlModeButton.IsClicked)
     {
         SettingsManager.LookControlMode = (LookControlMode)((int)(SettingsManager.LookControlMode + 1) % EnumUtils.GetEnumValues(typeof(LookControlMode)).Count);
     }
     if (m_leftHandedLayoutButton.IsClicked)
     {
         SettingsManager.LeftHandedLayout = !SettingsManager.LeftHandedLayout;
     }
     if (m_flipVerticalAxisButton.IsClicked)
     {
         SettingsManager.FlipVerticalAxis = !SettingsManager.FlipVerticalAxis;
     }
     if (m_autoJumpButton.IsClicked)
     {
         SettingsManager.AutoJump = !SettingsManager.AutoJump;
     }
     if (m_horizontalCreativeFlightButton.IsClicked)
     {
         SettingsManager.HorizontalCreativeFlight = !SettingsManager.HorizontalCreativeFlight;
     }
     if (m_moveSensitivitySlider.IsSliding)
     {
         SettingsManager.MoveSensitivity = m_moveSensitivitySlider.Value;
     }
     if (m_lookSensitivitySlider.IsSliding)
     {
         SettingsManager.LookSensitivity = m_lookSensitivitySlider.Value;
     }
     if (m_gamepadCursorSpeedSlider.IsSliding)
     {
         SettingsManager.GamepadCursorSpeed = m_gamepadCursorSpeedSlider.Value;
     }
     if (m_gamepadDeadZoneSlider.IsSliding)
     {
         SettingsManager.GamepadDeadZone = m_gamepadDeadZoneSlider.Value;
     }
     if (m_creativeDigTimeSlider.IsSliding)
     {
         SettingsManager.CreativeDigTime = m_creativeDigTimeSlider.Value;
     }
     if (m_creativeReachSlider.IsSliding)
     {
         SettingsManager.CreativeReach = m_creativeReachSlider.Value;
     }
     if (m_holdDurationSlider.IsSliding)
     {
         SettingsManager.MinimumHoldDuration = m_holdDurationSlider.Value;
     }
     if (m_dragDistanceSlider.IsSliding)
     {
         SettingsManager.MinimumDragDistance = m_dragDistanceSlider.Value;
     }
     m_moveControlModeButton.Text          = LanguageControl.Get("MoveControlMode", SettingsManager.MoveControlMode.ToString());
     m_lookControlModeButton.Text          = LanguageControl.Get("LookControlMode", SettingsManager.LookControlMode.ToString());
     m_leftHandedLayoutButton.Text         = (SettingsManager.LeftHandedLayout ? LanguageControl.Get("Usual", "on") : LanguageControl.Get("Usual", "off"));
     m_flipVerticalAxisButton.Text         = (SettingsManager.FlipVerticalAxis ? LanguageControl.Get("Usual", "on") : LanguageControl.Get("Usual", "off"));
     m_autoJumpButton.Text                 = (SettingsManager.AutoJump ? LanguageControl.Get("Usual", "on") : LanguageControl.Get("Usual", "off"));
     m_horizontalCreativeFlightButton.Text = (SettingsManager.HorizontalCreativeFlight ? LanguageControl.Get("Usual", "on") : LanguageControl.Get("Usual", "off"));
     m_moveSensitivitySlider.Value         = SettingsManager.MoveSensitivity;
     m_moveSensitivitySlider.Text          = MathUtils.Round(SettingsManager.MoveSensitivity * 10f).ToString();
     m_lookSensitivitySlider.Value         = SettingsManager.LookSensitivity;
     m_lookSensitivitySlider.Text          = MathUtils.Round(SettingsManager.LookSensitivity * 10f).ToString();
     m_gamepadCursorSpeedSlider.Value      = SettingsManager.GamepadCursorSpeed;
     m_gamepadCursorSpeedSlider.Text       = $"{SettingsManager.GamepadCursorSpeed:0.0}x";
     m_gamepadDeadZoneSlider.Value         = SettingsManager.GamepadDeadZone;
     m_gamepadDeadZoneSlider.Text          = $"{SettingsManager.GamepadDeadZone * 100f:0}%";
     m_creativeDigTimeSlider.Value         = SettingsManager.CreativeDigTime;
     m_creativeDigTimeSlider.Text          = $"{MathUtils.Round(1000f * SettingsManager.CreativeDigTime)}ms";
     m_creativeReachSlider.Value           = SettingsManager.CreativeReach;
     m_creativeReachSlider.Text            = string.Format(LanguageControl.Get(fName, 1), $"{SettingsManager.CreativeReach:0.0} ");
     m_holdDurationSlider.Value            = SettingsManager.MinimumHoldDuration;
     m_holdDurationSlider.Text             = $"{MathUtils.Round(1000f * SettingsManager.MinimumHoldDuration)}ms";
     m_dragDistanceSlider.Value            = SettingsManager.MinimumDragDistance;
     m_dragDistanceSlider.Text             = $"{MathUtils.Round(SettingsManager.MinimumDragDistance)} " + LanguageControl.Get(fName, 2);
     if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked)
     {
         ScreensManager.SwitchScreen(ScreensManager.PreviousScreen);
     }
 }
Beispiel #11
0
        public override void Update()
        {
            if (m_resolutionButton.IsClicked)
            {
                IList <int> enumValues = EnumUtils.GetEnumValues(typeof(ResolutionMode));
                SettingsManager.ResolutionMode = (ResolutionMode)((enumValues.IndexOf((int)SettingsManager.ResolutionMode) + 1) % enumValues.Count);
            }
            if (m_visibilityRangeSlider.IsSliding)
            {
                SettingsManager.VisibilityRange = m_visibilityRanges[MathUtils.Clamp((int)m_visibilityRangeSlider.Value, 0, m_visibilityRanges.Count - 1)];
            }
            if (m_viewAnglesButton.IsClicked)
            {
                IList <int> enumValues2 = EnumUtils.GetEnumValues(typeof(ViewAngleMode));
                SettingsManager.ViewAngleMode = (ViewAngleMode)((enumValues2.IndexOf((int)SettingsManager.ViewAngleMode) + 1) % enumValues2.Count);
            }
            if (m_terrainMipmapsButton.IsClicked)
            {
                SettingsManager.TerrainMipmapsEnabled = !SettingsManager.TerrainMipmapsEnabled;
            }
            if (m_skyRenderingModeButton.IsClicked)
            {
                IList <int> enumValues3 = EnumUtils.GetEnumValues(typeof(SkyRenderingMode));
                SettingsManager.SkyRenderingMode = (SkyRenderingMode)((enumValues3.IndexOf((int)SettingsManager.SkyRenderingMode) + 1) % enumValues3.Count);
            }
            if (m_objectShadowsButton.IsClicked)
            {
                SettingsManager.ObjectsShadowsEnabled = !SettingsManager.ObjectsShadowsEnabled;
            }
            if (m_framerateLimitSlider.IsSliding)
            {
                SettingsManager.PresentationInterval = m_presentationIntervals[MathUtils.Clamp((int)m_framerateLimitSlider.Value, 0, m_presentationIntervals.Count - 1)];
            }
            if (m_displayFpsCounterButton.IsClicked)
            {
                SettingsManager.DisplayFpsCounter = !SettingsManager.DisplayFpsCounter;
            }
            if (m_displayFpsRibbonButton.IsClicked)
            {
                SettingsManager.DisplayFpsRibbon = !SettingsManager.DisplayFpsRibbon;
            }
            m_resolutionButton.Text       = LanguageControl.Get("ResolutionMode", SettingsManager.ResolutionMode.ToString());
            m_visibilityRangeSlider.Value = ((m_visibilityRanges.IndexOf(SettingsManager.VisibilityRange) >= 0) ? m_visibilityRanges.IndexOf(SettingsManager.VisibilityRange) : 64);
            m_visibilityRangeSlider.Text  = string.Format(LanguageControl.Get(fName, 1), SettingsManager.VisibilityRange);
            if (SettingsManager.VisibilityRange <= 48)
            {
                m_visibilityRangeWarningLabel.IsVisible = true;
                m_visibilityRangeWarningLabel.Text      = LanguageControl.Get(fName, 2);
            }
            else if (SettingsManager.VisibilityRange <= 64)
            {
                m_visibilityRangeWarningLabel.IsVisible = false;
            }
            else if (SettingsManager.VisibilityRange <= 112)
            {
                m_visibilityRangeWarningLabel.IsVisible = true;
                m_visibilityRangeWarningLabel.Text      = LanguageControl.Get(fName, 3);
            }
            else if (SettingsManager.VisibilityRange <= 224)
            {
                m_visibilityRangeWarningLabel.IsVisible = true;
                m_visibilityRangeWarningLabel.Text      = LanguageControl.Get(fName, 4);
            }
            else if (SettingsManager.VisibilityRange <= 384)
            {
                m_visibilityRangeWarningLabel.IsVisible = true;
                m_visibilityRangeWarningLabel.Text      = LanguageControl.Get(fName, 5);
            }
            else if (SettingsManager.VisibilityRange <= 512)
            {
                m_visibilityRangeWarningLabel.IsVisible = true;
                m_visibilityRangeWarningLabel.Text      = LanguageControl.Get(fName, 6);
            }
            else
            {
                m_visibilityRangeWarningLabel.IsVisible = true;
                m_visibilityRangeWarningLabel.Text      = LanguageControl.Get(fName, 7);
            }
            m_viewAnglesButton.Text = LanguageControl.Get("ViewAngleMode", SettingsManager.ViewAngleMode.ToString());
            if (SettingsManager.TerrainMipmapsEnabled)
            {
                m_terrainMipmapsButton.Text = LanguageControl.Get("Usual", "enable");
            }
            else
            {
                m_terrainMipmapsButton.Text = LanguageControl.Get("Usual", "disable");
            }

            m_skyRenderingModeButton.Text  = LanguageControl.Get("SkyRenderingMode", SettingsManager.SkyRenderingMode.ToString());
            m_objectShadowsButton.Text     = SettingsManager.ObjectsShadowsEnabled ? LanguageControl.Get("Usual", "enable") : LanguageControl.Get("Usual", "disable");
            m_framerateLimitSlider.Value   = (m_presentationIntervals.IndexOf(SettingsManager.PresentationInterval) >= 0) ? m_presentationIntervals.IndexOf(SettingsManager.PresentationInterval) : (m_presentationIntervals.Count - 1);
            m_framerateLimitSlider.Text    = (SettingsManager.PresentationInterval != 0) ? string.Format(LanguageControl.Get(fName, 8), SettingsManager.PresentationInterval) : LanguageControl.Get(fName, 9);
            m_displayFpsCounterButton.Text = (SettingsManager.DisplayFpsCounter ? LanguageControl.Get("Usual", "yes") : LanguageControl.Get("Usual", "no"));
            m_displayFpsRibbonButton.Text  = (SettingsManager.DisplayFpsRibbon ? LanguageControl.Get("Usual", "yes") : LanguageControl.Get("Usual", "no"));
            if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked)
            {
                bool flag = SettingsManager.VisibilityRange > 128;
                if (SettingsManager.VisibilityRange > m_enterVisibilityRange && flag)
                {
                    DialogsManager.ShowDialog(null, new MessageDialog(LanguageControl.Get(fName, 10), LanguageControl.Get(fName, 11), LanguageControl.Get("Usual", "ok"), LanguageControl.Get("Usual", "back"), delegate(MessageDialogButton button)
                    {
                        if (button == MessageDialogButton.Button1)
                        {
                            ScreensManager.SwitchScreen(ScreensManager.PreviousScreen);
                        }
                    }));
                }
                else
                {
                    ScreensManager.SwitchScreen(ScreensManager.PreviousScreen);
                }
            }
        }