@ -20,154 +20,154 @@ namespace ColdMint.scripts.loader.uiLoader;
/// </summary>
/// </summary>
public partial class MainMenuLoader : UiLoaderTemplate
public partial class MainMenuLoader : UiLoaderTemplate
{
{
private Button ? _startGameButton ;
private Button ? _startGameButton ;
private Label ? _copyrightLabel ;
private Label ? _copyrightLabel ;
private StringBuilder ? _copyrightBuilder ;
private StringBuilder ? _copyrightBuilder ;
private PackedScene ? _gameScene ;
private PackedScene ? _gameScene ;
private PackedScene ? _contributor ;
private PackedScene ? _contributor ;
private PackedScene ? _levelGraphEditor ;
private PackedScene ? _levelGraphEditor ;
private Label ? _sloganLabel ;
private Label ? _sloganLabel ;
private Label ? _versionLabel ;
private Label ? _versionLabel ;
private Button ? _levelGraphEditorButton ;
private Button ? _levelGraphEditorButton ;
private LinkButton ? _contributorButton ;
private LinkButton ? _contributorButton ;
public override void InitializeData ( )
public override void InitializeData ( )
{
{
AppConfigData ? appConfigData = AppConfig . LoadFromFile ( ) ;
AppConfigData ? appConfigData = AppConfig . LoadFromFile ( ) ;
if ( appConfigData ! = null )
if ( appConfigData ! = null )
{
{
AppConfig . ApplyAppConfig ( appConfigData ) ;
AppConfig . ApplyAppConfig ( appConfigData ) ;
}
}
if ( Config . IsDebug ( ) )
if ( Config . IsDebug ( ) )
{
{
//Set the minimum log level to Info in debug mode.(Print all logs)
//Set the minimum log level to Info in debug mode.(Print all logs)
//在调试模式下将最小日志等级设置为Info。( 打印全部日志)
//在调试模式下将最小日志等级设置为Info。( 打印全部日志)
LogCat . MinLogLevel = LogCat . InfoLogLevel ;
LogCat . MinLogLevel = LogCat . InfoLogLevel ;
}
}
else
else
{
{
//Disable all logs in the release version.
//Disable all logs in the release version.
//在发行版禁用所有日志。
//在发行版禁用所有日志。
LogCat . MinLogLevel = LogCat . DisableAllLogLevel ;
LogCat . MinLogLevel = LogCat . DisableAllLogLevel ;
}
}
ContributorDataManager . RegisterAllContributorData ( ) ;
ContributorDataManager . RegisterAllContributorData ( ) ;
DeathInfoGenerator . RegisterDeathInfoHandler ( new SelfDeathInfoHandler ( ) ) ;
DeathInfoGenerator . RegisterDeathInfoHandler ( new SelfDeathInfoHandler ( ) ) ;
MapGenerator . RegisterRoomInjectionProcessor ( new ChanceRoomInjectionProcessor ( ) ) ;
MapGenerator . RegisterRoomInjectionProcessor ( new ChanceRoomInjectionProcessor ( ) ) ;
MapGenerator . RegisterRoomInjectionProcessor ( new TimeIntervalRoomInjectorProcessor ( ) ) ;
MapGenerator . RegisterRoomInjectionProcessor ( new TimeIntervalRoomInjectorProcessor ( ) ) ;
//Register the corresponding encoding provider to solve the problem of garbled Chinese path of the compressed package
//Register the corresponding encoding provider to solve the problem of garbled Chinese path of the compressed package
//注册对应的编码提供程序,解决压缩包中文路径乱码问题
//注册对应的编码提供程序,解决压缩包中文路径乱码问题
Encoding . RegisterProvider ( CodePagesEncodingProvider . Instance ) ;
Encoding . RegisterProvider ( CodePagesEncodingProvider . Instance ) ;
//创建游戏数据文件夹
//创建游戏数据文件夹
var dataPath = Config . GetGameDataDirectory ( ) ;
var dataPath = Config . GetGameDataDirectory ( ) ;
if ( ! Directory . Exists ( dataPath ) )
if ( ! Directory . Exists ( dataPath ) )
{
{
Directory . CreateDirectory ( dataPath ) ;
Directory . CreateDirectory ( dataPath ) ;
}
}
//Registered camp
//Registered camp
//注册阵营
//注册阵营
var defaultCamp = new Camp ( Config . CampId . Default )
var defaultCamp = new Camp ( Config . CampId . Default )
{
{
FriendInjury = true
FriendInjury = true
} ;
} ;
CampManager . SetDefaultCamp ( defaultCamp ) ;
CampManager . SetDefaultCamp ( defaultCamp ) ;
var mazoku = new Camp ( Config . CampId . Mazoku ) ;
var mazoku = new Camp ( Config . CampId . Mazoku ) ;
CampManager . AddCamp ( mazoku ) ;
CampManager . AddCamp ( mazoku ) ;
var aborigines = new Camp ( Config . CampId . Aborigines ) ;
var aborigines = new Camp ( Config . CampId . Aborigines ) ;
CampManager . AddCamp ( aborigines ) ;
CampManager . AddCamp ( aborigines ) ;
_gameScene = GD . Load < PackedScene > ( "res://scenes/game.tscn" ) ;
_gameScene = GD . Load < PackedScene > ( "res://scenes/game.tscn" ) ;
_contributor = GD . Load < PackedScene > ( "res://scenes/contributor.tscn" ) ;
_contributor = GD . Load < PackedScene > ( "res://scenes/contributor.tscn" ) ;
_levelGraphEditor = GD . Load < PackedScene > ( "res://scenes/levelGraphEditor.tscn" ) ;
_levelGraphEditor = GD . Load < PackedScene > ( "res://scenes/levelGraphEditor.tscn" ) ;
//Register ItemTypes from file
//Register ItemTypes from file
//从文件注册物品类型
//从文件注册物品类型
ItemTypeRegister . RegisterFromFile ( ) ;
ItemTypeRegister . RegisterFromFile ( ) ;
//Hardcoded ItemTypes Register
//Hardcoded ItemTypes Register
//硬编码注册物品类型
//硬编码注册物品类型
ItemTypeRegister . StaticRegister ( ) ;
ItemTypeRegister . StaticRegister ( ) ;
//静态注册掉落表
//静态注册掉落表
LootRegister . StaticRegister ( ) ;
LootRegister . StaticRegister ( ) ;
}
}
public override void InitializeUi ( )
public override void InitializeUi ( )
{
{
_contributorButton = GetNode < LinkButton > ( "VBoxContainer2/ContributorButton" ) ;
_contributorButton = GetNode < LinkButton > ( "VBoxContainer2/ContributorButton" ) ;
_startGameButton = GetNode < Button > ( "StartGameButton" ) ;
_startGameButton = GetNode < Button > ( "StartGameButton" ) ;
_levelGraphEditorButton = GetNode < Button > ( "levelGraphEditorButton" ) ;
_levelGraphEditorButton = GetNode < Button > ( "levelGraphEditorButton" ) ;
//The level map editor is only available in debug mode.
//The level map editor is only available in debug mode.
//关卡图编辑器仅在调试模式可用。
//关卡图编辑器仅在调试模式可用。
_levelGraphEditorButton . Visible = Config . IsDebug ( ) ;
_levelGraphEditorButton . Visible = Config . IsDebug ( ) ;
_startGameButton . GrabFocus ( ) ;
_startGameButton . GrabFocus ( ) ;
_versionLabel = GetNode < Label > ( "VBoxContainer2/VersionLabel" ) ;
_versionLabel = GetNode < Label > ( "VBoxContainer2/VersionLabel" ) ;
//Generative copyright
//Generative copyright
//生成版权
//生成版权
_copyrightLabel = GetNode < Label > ( "VBoxContainer/CopyrightLabel" ) ;
_copyrightLabel = GetNode < Label > ( "VBoxContainer/CopyrightLabel" ) ;
_sloganLabel = GetNode < Label > ( "CenterContainer2/SloganLabel" ) ;
_sloganLabel = GetNode < Label > ( "CenterContainer2/SloganLabel" ) ;
_copyrightBuilder = new StringBuilder ( ) ;
_copyrightBuilder = new StringBuilder ( ) ;
_copyrightBuilder . Append ( ' \ u00a9 ' ) ;
_copyrightBuilder . Append ( ' \ u00a9 ' ) ;
var currentYear = DateTime . Now . Year ;
var currentYear = DateTime . Now . Year ;
_copyrightBuilder . Append ( Config . CreationYear ) ;
_copyrightBuilder . Append ( Config . CreationYear ) ;
if ( currentYear ! = Config . CreationYear )
if ( currentYear ! = Config . CreationYear )
{
{
_copyrightBuilder . Append ( '-' ) ;
_copyrightBuilder . Append ( '-' ) ;
_copyrightBuilder . Append ( currentYear ) ;
_copyrightBuilder . Append ( currentYear ) ;
}
}
_copyrightBuilder . Append ( ' ' ) ;
_copyrightBuilder . Append ( ' ' ) ;
_copyrightBuilder . Append ( Config . CompanyName ) ;
_copyrightBuilder . Append ( Config . CompanyName ) ;
_copyrightBuilder . Append ( " all rights reserved." ) ;
_copyrightBuilder . Append ( " all rights reserved." ) ;
_copyrightLabel . Text = _copyrightBuilder . ToString ( ) ;
_copyrightLabel . Text = _copyrightBuilder . ToString ( ) ;
_versionLabel . Text = "ver." + Config . GetVersion ( ) ;
_versionLabel . Text = "ver." + Config . GetVersion ( ) ;
_sloganLabel . Text = SloganProvider . GetSlogan ( ) ;
_sloganLabel . Text = SloganProvider . GetSlogan ( ) ;
_contributorButton . Text =
_contributorButton . Text =
TranslationServerUtils . TranslateWithFormat ( "ui_contributor_tips" ,
TranslationServerUtils . TranslateWithFormat ( "ui_contributor_tips" ,
ContributorDataManager . GetContributorTotals ( ) ) ;
ContributorDataManager . GetContributorTotals ( ) ) ;
}
}
public override void LoadUiActions ( )
public override void LoadUiActions ( )
{
{
if ( _startGameButton ! = null )
if ( _startGameButton ! = null )
{
{
_startGameButton . Pressed + = ( ) = >
_startGameButton . Pressed + = ( ) = >
{
{
if ( _gameScene = = null )
if ( _gameScene = = null )
{
{
return ;
return ;
}
}
GetTree ( ) . ChangeSceneToPacked ( _gameScene ) ;
GetTree ( ) . ChangeSceneToPacked ( _gameScene ) ;
} ;
} ;
}
}
if ( _contributorButton ! = null )
if ( _contributorButton ! = null )
{
{
_contributorButton . Pressed + = ( ) = >
_contributorButton . Pressed + = ( ) = >
{
{
if ( _contributor = = null )
if ( _contributor = = null )
{
{
return ;
return ;
}
}
GetTree ( ) . ChangeSceneToPacked ( _contributor ) ;
GetTree ( ) . ChangeSceneToPacked ( _contributor ) ;
} ;
} ;
}
}
if ( _levelGraphEditorButton ! = null )
if ( _levelGraphEditorButton ! = null )
{
{
_levelGraphEditorButton . Pressed + = ( ) = >
_levelGraphEditorButton . Pressed + = ( ) = >
{
{
LogCat . Log ( "level_graph_editor" ) ;
LogCat . Log ( "level_graph_editor" ) ;
if ( _levelGraphEditor = = null )
if ( _levelGraphEditor = = null )
{
{
return ;
return ;
}
}
GetTree ( ) . ChangeSceneToPacked ( _levelGraphEditor ) ;
GetTree ( ) . ChangeSceneToPacked ( _levelGraphEditor ) ;
} ;
} ;
}
}
}
}
}
}