public override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
 {
     base.Load(valuesDictionary, idToEntityMap);
     m_subsystemTerrain        = base.Project.FindSubsystem <SubsystemTerrain>(throwOnError: true);
     m_subsystemModelsRenderer = base.Project.FindSubsystem <SubsystemModelsRenderer>(throwOnError: true);
     m_subsystemNoise          = base.Project.FindSubsystem <SubsystemNoise>(throwOnError: true);
     m_subsystemAudio          = base.Project.FindSubsystem <SubsystemAudio>(throwOnError: true);
     m_componentMiner          = base.Entity.FindComponent <ComponentMiner>();
     m_componentRider          = base.Entity.FindComponent <ComponentRider>();
     m_componentSleep          = base.Entity.FindComponent <ComponentSleep>();
     m_componentPlayer         = base.Entity.FindComponent <ComponentPlayer>();
     m_walkAnimationSpeed      = valuesDictionary.GetValue <float>("WalkAnimationSpeed");
     m_walkBobHeight           = valuesDictionary.GetValue <float>("WalkBobHeight");
     m_walkLegsAngle           = valuesDictionary.GetValue <float>("WalkLegsAngle");
 }
Example #2
0
        public override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
        {
            flatBatch           = primitivesRenderer.FlatBatch();
            componentPlayer     = base.Entity.FindComponent <ComponentPlayer>(throwOnError: true);
            subsystemTerrain    = base.Entity.Project.FindSubsystem <SubsystemTerrain>(throwOnError: true);
            subsystemPlantBlock = base.Entity.Project.FindSubsystem <SubsystemPlantBlockBehavior>(throwOnError: true);
            creatureSpawn       = Project.FindSubsystem <SubsystemCreatureSpawn>();
            modelsRenderer      = base.Entity.Project.FindSubsystem <SubsystemModelsRenderer>();
            subsystemBodies     = Project.FindSubsystem <SubsystemBodies>();
            jeiBehavior         = base.Entity.Project.FindSubsystem <SubsystemXjJeiBehavior>();
            jump.Texture        = TextureAtlasManager.GetSubtexture("JEITextures/JEI_Jump").Texture;
            jumpcanvas.Children.Add(touch);
            jumpcanvas.Children.Add(jump);
            jumpcanvas.DesiredSize = SubsystemXjJeiBehavior.jumpsize;
            jump.DesiredSize       = SubsystemXjJeiBehavior.jumpsize;
            jumpcanvas.IsVisible   = SubsystemXjJeiBehavior.showjump;
            messageInfo.setPlayer(componentPlayer);
            if (componentPlayer != null)
            {
                msginfobtn.NormalSubtexture  = new Subtexture(ContentManager.Get <Texture2D>("JEITextures/JEI_MSG"), Vector2.Zero, Vector2.One);
                msginfobtn.ClickedSubtexture = new Subtexture(ContentManager.Get <Texture2D>("JEITextures/JEI_MSG_P"), Vector2.Zero, Vector2.One);
                componentPlayer.GuiWidget.Children.Find <CanvasWidget>("ControlsContainer").Children.Add(infoDialog);
                componentPlayer.GuiWidget.Children.Find <CanvasWidget>("ControlsContainer").Children.Add(messageInfo);
                componentPlayer.GuiWidget.Children.Find <CanvasWidget>("ControlsContainer").Children.Add(moreInfo);
                componentPlayer.GuiWidget.Children.Find <StackPanelWidget>("RightControlsContainer").Children.Add(msginfobtn);
                componentPlayer.GuiWidget.Children.Find <CanvasWidget>("ControlsContainer").Children.Add(jumpcanvas);
            }

            int num = 0;

            try
            {
                List <string> namelist = new List <string>();
                Dictionary <string, List <string> > depancys = new Dictionary <string, List <string> >();
                List <uint> verList = new List <uint>();
                foreach (ModInfo modInfo in ModsManager.LoadedMods)
                {
                    if (!namelist.Contains(modInfo.Name))
                    {
                        if (!string.IsNullOrEmpty(modInfo.Dependency))
                        {
                            string[]      mm    = modInfo.Dependency.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                            List <string> mlist = new List <string>();
                            if (mm.Length == 1)
                            {
                                mlist.Add(modInfo.Dependency);
                            }
                            else
                            {
                                foreach (string mmsa in mm)
                                {
                                    mlist.Add(mmsa);
                                }
                            }
                            depancys.Add(modInfo.Name, mlist);
                        }
                        namelist.Add(modInfo.Name);
                        verList.Add(modInfo.Version);
                    }
                }
                messageInfo.addMessage("[color=yellow]欢迎使用[/color][color=red]SCCRF合成书[/color][color=yellow]模组![/color]");
                messageInfo.addMessage($"[color=green]<SCCRF>:[/color]使用一根[color=red]木棍[/color]开始你的[color=green]合成之旅[/color]");
                messageInfo.addMessage($"[color=green]<SCCRF>:[/color]电脑端按下[color=red]TAB[/color]快捷打开[color=green]消息框[/color]");
                messageInfo.addMessage($"[color=green]<SCCRF>:[/color]电脑端按下[color=red]B[/color]快捷打开[color=green]合成谱[/color]");
                messageInfo.addMessage($"[color=green]<SCCRF>:[/color]输入[color=red]/help[/color]使用[color=green]命令[/color]帮助");
                messageInfo.addMessage($"[color=green]并且您已安装([/color][color=red]{namelist.Count}[/color][color=green])个模组[/color]");
                foreach (string modInfo in namelist)
                {
                    messageInfo.addMessage($"[color=blue]{num+1}.[/color] {modInfo.Replace('[','{').Replace(']','}')} [color=yellow]{parseVersion(verList[num])}[/color]");
                    num++;
                }
                num = 0;
                foreach (KeyValuePair <string, List <string> > kkop in depancys)
                {
                    foreach (string huap in kkop.Value)
                    {
                        if (!namelist.Contains(huap))
                        {
                            if (huap == "zh-cn" && namelist.Contains("NewBlocks_SC"))
                            {
                                continue;
                            }
                            messageInfo.addMessage($"[color=yellow]<警告>[/color]:使用[color=blue]{kkop.Key}[/color]需要安装依赖MOD [color=green]{huap}[/color]");
                        }
                    }
                    ++num;
                }
                messageInfo.IsVisible = false;
            }
            catch (Exception e) {
                messageInfo.addMessage(e.ToString());
            }
            infoDialog.IsVisible = false;
            base.Load(valuesDictionary, idToEntityMap);
        }