using LinePutScript.Dictionary;
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Threading;
using VPet_Simulator.Core;
using static VPet_Simulator.Windows.Interface.ScheduleTask;
namespace VPet_Simulator.Windows.Interface
{
///
/// 游戏主窗体
///
public interface IMainWindow
{
///
/// 存档前缀, 用于多开游戏, 为空时使用默认存档, 不为空时前缀的前缀一般为'-'
///
string PrefixSave { get; }
///
/// 启动参数
///
LPS_D Args { get; }
///
/// 是否为Steam用户
///
bool IsSteamUser { get; }
///
/// SteamID
///
public ulong SteamID { get; }
///
/// 游戏设置
///
ISetting Set { get; }
///
/// 宠物加载器列表
///
List Pets { get; }
///
/// 所有可用聊天API
///
List TalkAPI { get; }
///
/// 当前正在使用的TalkBox
///
ITalkAPI TalkBoxCurr { get; }
///
/// 桌宠数据核心
///
GameCore Core { get; }
///
/// 桌宠主要部件
///
Main Main { get; }
///
/// 版本号
///
int version { get; }
///
/// 版本号
///
string Version { get; }
///
/// 上次点击时间 (Tick)
///
long lastclicktime { get; set; }
///
/// 所有三方插件
///
List Plugins { get; }
///
/// 所有食物
///
List Foods { get; }
///
/// 需要食物时会说的话
///
List LowFoodText { get; }
///
/// 需要饮料时会说的话
///
List LowDrinkText { get; }
///
/// 点击时会说的话
///
List ClickTexts { get; }
///
/// 选择说的话
///
List SelectTexts { get; }
///
/// 获得自动点击的文本
///
/// 说话内容
ClickText GetClickText();
///
/// 图片资源
///
ImageResources ImageSources { get; }
///
/// 文件资源, 储存的为文件路径 : 可以给代码插件MOD用
///
Resources FileSources { get; }
///
/// 设置游戏缩放倍率
///
/// 缩放倍率 范围0.1-10
void SetZoomLevel(double zl);
///
/// 保存设置
///
void Save();
///
/// 加载DIY内容
///
void LoadDIY();
///
/// 显示设置页面
///
/// 设置页
void ShowSetting(int page = -1);
///
/// 显示更好买页面
///
/// 食物类型
void ShowBetterBuy(Food.FoodType type);
///
/// 关闭桌宠
///
void Close();
///
/// 重启桌宠
///
void Restart();
///
/// 鼠标穿透
///
bool MouseHitThrough { get; set; }
///
/// 存档 Hash检查 是否通过
///
bool HashCheck { get; }
///
/// 获得当前系统音乐播放音量
///
float AudioPlayingVolume();
///
/// 关闭指示器,默认为true
///
bool CloseConfirm { get; }
///
/// 关闭该玩家的HashCheck检查
/// 如果你的mod属于作弊mod/有作弊内容,请在作弊前调用这个方法
///
void HashCheckOff();
///
/// 游戏打开过的窗口, 会在退出时统一调用退出
///
List Windows { get; set; }
///
/// 游戏存档数据
///
GameSave_v2 GameSavesData { get; }
///
/// 主窗体 Grid
///
Grid MGHost { get; }
///
/// 主窗体 Pet Grid
///
Grid PetGrid { get; }
///
/// 当创建/加入新的多人联机窗口(访客表)时触发
/// 如果你想写联机功能,请监听这个事件
///
event Action MutiPlayerHandle;
///
/// 当创建/加入新的多人联机窗口(访客表)时触发
/// 用于给MOD定义自己的联机窗口时准备的, 一般联机功能不需要调用这个
///
///
void MutiPlayerStart(IMPWindows mp);
///
/// 显示吃东西(夹层)动画
///
/// 夹层动画名
/// 被夹在中间的图片
void DisplayFoodAnimation(string graphName, ImageSource imageSource);
///
/// 使用/食用物品 (自动扣钱) (不包括显示动画)
///
/// 物品
void TakeItem(Food item);
///
/// 显示输入框
///
/// 标题
/// 文本
/// 默认文本
/// 结束事件
/// 是否允许多行输入
/// 文本居中
/// 能否隐藏
void ShowInputBox(string title, string text, string defaulttext, Action ENDAction, bool AllowMutiLine = false, bool TextCenter = true, bool CanHide = false);
///
/// UI线程调用位置
///
Dispatcher Dispatcher { get; }
///
/// 获取当前所有MOD信息
///
IEnumerable ModInfo { get; }
///
/// 获取当前所有已启用的MOD信息
///
IEnumerable OnModInfo { get; }
///
/// 所有MOD文件位置
///
List MODPath { get; }
///
/// 日程表
///
ScheduleTask ScheduleTask { get; }
///
/// 所有可用套餐
///
List SchedulePackage { get; }
///
/// 事件:吃东西
///
event Action Event_TakeItem;
}
}