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"); }
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); }