public void Init(int _id, UISaveLoad _uisaveload, SESystem _sesystem) { id = _id; uisaveload = _uisaveload; sesystem = _sesystem; Button button = GetComponent <Button>(); button.onClick.AddListener(() => ChangeData()); GetComponentInChildren <Text>().text = "セーブ" + (id + 1); }
public static bool ConfirmSaveLoadPatch_pagination(ref CtrlSaveLoad __instance) { Heluo.Logger.LogError("ConfirmSaveLoadPatch_pagination start"); UISaveLoad view = Traverse.Create(__instance).Field("view").GetValue <UISaveLoad>(); int saveIndex = Traverse.Create(__instance).Field("saveIndex").GetValue <int>(); //获取存读档文件时需要转换成真实index int trueSaveIndex = saveIndex; if (pagination.Value) { trueSaveIndex += (currentPage - 1) * countPerPage.Value; } //存档 if (__instance.isSave) { string filename = string.Format("PathOfWuxia_{0:00}.{1}", trueSaveIndex, "save"); view.HideBlur(); Game.SaveAsync(filename, new Action(__instance.OnSaveFinish)); view.ShowBlur(); Heluo.Logger.LogError("ConfirmSaveLoadPatch_pagination end"); return(false); } Game.UI.HideTeamMemeberUI(); Game.UI.Open <UILoading>(); int categoryIndex = Traverse.Create(__instance).Field("categoryIndex").GetValue <int>(); //读档 if (categoryIndex == 0) { List <PathOfWuxiaSaveHeader> saves = Traverse.Create(__instance).Field("saves").GetValue <List <PathOfWuxiaSaveHeader> >(); if (!saves[saveIndex].HasData) { return(false); } Game.LoadAsync(string.Format("PathOfWuxia_{0:00}.{1}", trueSaveIndex, "save"), null); view.Hide(); Heluo.Logger.LogError("ConfirmSaveLoadPatch_pagination end"); return(false); } //读自动存档 else { List <PathOfWuxiaSaveHeader> autosaves = Traverse.Create(__instance).Field("autosaves").GetValue <List <PathOfWuxiaSaveHeader> >(); if (!autosaves[saveIndex].HasData) { return(false); } Game.LoadAsync(string.Format("PathOfWuxia_{0:00}.{1}", trueSaveIndex, "autosave"), null); view.Hide(); Heluo.Logger.LogError("ConfirmSaveLoadPatch_pagination end"); return(false); } }
public void SetItem(int Index, Texture tex, string area, string playTime , string gameTime, string saveTime, UISaveLoad parent) { mIndex = Index; if (mIndex == -1) { mCountLabel.text = "Auto"; } else { mCountLabel.text = Index.ToString(); } mMapTex.mainTexture = tex; mAreaLabel.text = area; mPlayTimeLabel.text = playTime; mGameTimeLabel.text = gameTime; mSaveTimeLabel.text = saveTime; }
public static void showPatch_pagination(ref UISaveLoad __instance) { Heluo.Logger.LogError("showPatch_pagination start"); //创建主挂载对象,这个对象是不会删除的 GameObject obj; WGTabScroll saveload = Traverse.Create(__instance).Field("saveload").GetValue <WGTabScroll>(); var trans = saveload.transform.Find("pageBar"); if (trans == null) { GameObject pageBar = new GameObject("pageBar"); Image bg = pageBar.AddComponent <Image>(); bg.sprite = Game.Resource.Load <Sprite>("Image/UI/UICharacter/Info_HotKey_bg.png"); HorizontalLayoutGroup layout = pageBar.AddComponent <HorizontalLayoutGroup>(); layout.childControlHeight = true; layout.childControlWidth = true; layout.childForceExpandHeight = true; layout.childForceExpandWidth = true; pageBar.transform.SetParent(saveload.transform, false); pageBar.transform.position = new Vector3(pageBar.transform.position.x, pageBar.transform.position.y - Screen.height / 2 + 50, 0); pageBar.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, 100); //controller:刷新用 CtrlSaveLoad controller = Traverse.Create(__instance).Field("controller").GetValue <CtrlSaveLoad>(); obj = createPageBar(pageBar, controller); } else { obj = trans.gameObject; } if (pagination.Value) { obj.SetActive(true); } else { obj.SetActive(false); } Heluo.Logger.LogError("showPatch_pagination end"); }
void Awake() { mInstance = this; mIndex = 0; mSaveTex.enabled = false; mAutoTex = Resources.Load("Texture2d/Tex/AutoSave") as Texture2D; mDataList = new List <SaveDateItem_N>(); int total = AutoSaveNum + CustomDataNum; for (int i = 0; i < total; i++) { SaveDateItem_N addItem = Instantiate(mDataPrefab) as SaveDateItem_N; addItem.transform.parent = mDataGrid.transform; addItem.transform.localScale = Vector3.one; addItem.transform.localPosition = Vector3.back; if (i < AutoSaveNum) { addItem.mIndexTex.text = "Auto" + (i + 1); } else { addItem.mIndexTex.text = (i - AutoSaveNum + 1).ToString(); } addItem.mCheckbox.radioButtonRoot = mDataGrid.transform; addItem.Init(i, delegate(int index, Pathea.PeGameSummary summary) { mIndex = index; ChangeArvhive(summary); }); mDataList.Add(addItem); } mDataGrid.Reposition(); }
//页码按钮事件 public static void pageClick(GameObject pageBar, CtrlSaveLoad controller, int page) { Heluo.Logger.LogError("pageClick start"); //获得当前页码 if (page < 1) { page = 1; } if (page > totalPage) { page = totalPage; } Text[] texts = pageBar.GetComponentsInChildren <Text>(); for (int i = 0; i < texts.Length; i++) { Text text = texts[i]; if (text.text.Equals(page + "")) { currentPage = page; break; } } //每次点击都重新创建分页栏 createPageBar(pageBar, controller); //然后更新saves和autosaves Traverse.Create(controller).Field("saves").SetValue(Game.Platform.ListSaveHeaderFile(GameSaveType.Manual)); Traverse.Create(controller).Field("autosaves").SetValue(Game.Platform.ListSaveHeaderFile(GameSaveType.Auto)); //刷新页面 UISaveLoad view = Traverse.Create(controller).Field("view").GetValue <UISaveLoad>(); view.UpdateSaveLoad(countPerPage.Value, true, true); Heluo.Logger.LogError("pageClick end"); }
public static void UpdateSaveLoadPatch_jumpToLatestSave(ref CtrlSaveLoad __instance) { Heluo.Logger.LogError("UpdateSaveLoadPatch_jumpToLatestSave start"); //每次进来先置1,防止中途关闭分页功能后仍然停留在后续页面 currentPage = 1; if (jumpToLatestSave.Value) { //判断是存档还是自动存档 int categoryIndex = Traverse.Create(__instance).Field("categoryIndex").GetValue <int>(); //先暂时取消分页,获取所有存档,以找到最新的一条,然后恢复 bool paginationTemp = pagination.Value; pagination.Value = false; List <PathOfWuxiaSaveHeader> saves; if (categoryIndex == 0) { saves = Game.Platform.ListSaveHeaderFile(GameSaveType.Manual); } else { saves = Game.Platform.ListSaveHeaderFile(GameSaveType.Auto); } pagination.Value = paginationTemp; //获取最新存档的index int num = -1; DateTime saveTime = new DateTime(100L); for (int i = 0; i < saves.Count; i++) { PathOfWuxiaSaveHeader pathOfWuxiaSaveHeader = saves[i]; if (!pathOfWuxiaSaveHeader.HasData) { continue; } if (DateTime.Compare(pathOfWuxiaSaveHeader.SaveTime, saveTime) > 0) { num = i; saveTime = pathOfWuxiaSaveHeader.SaveTime; } } int currentIndex = num; int totalIndex = saveCount.Value; //重新给saves和autosaves赋值 if (pagination.Value) { currentPage = (num / countPerPage.Value) + 1; //如果是最后一页,有可能出现存档数不足一页的情况,所以以总数量-前面几页的数量计算 if (currentPage == totalPage) { totalIndex = saveCount.Value - (currentPage - 1) * countPerPage.Value; } else { totalIndex = countPerPage.Value; } currentIndex = num % countPerPage.Value; } Traverse.Create(__instance).Field("saves").SetValue(Game.Platform.ListSaveHeaderFile(GameSaveType.Manual)); Traverse.Create(__instance).Field("autosaves").SetValue(Game.Platform.ListSaveHeaderFile(GameSaveType.Auto)); //更新界面 UISaveLoad view = Traverse.Create(__instance).Field("view").GetValue <UISaveLoad>(); view.UpdateSaveLoad(totalIndex, true, true); //更新分页栏 WGTabScroll saveload = Traverse.Create(view).Field("saveload").GetValue <WGTabScroll>(); GameObject pageBar = saveload.transform.Find("pageBar").gameObject; createPageBar(pageBar, __instance); //更新滚动条位置 WGInfiniteScroll loopScroll = Traverse.Create(saveload).Field("loopScroll").GetValue <WGInfiniteScroll>(); ScrollRect scrollRect = Traverse.Create(loopScroll).Field("scrollRect").GetValue <ScrollRect>(); scrollRect.verticalScrollbar.value = ((float)(totalIndex - currentIndex - 1)) / (totalIndex - 1); //滑动条是反的,不知道为什么 } Heluo.Logger.LogError("UpdateSaveLoadPatch_jumpToLatestSave end"); }
// add game ui void InstantiateGameUI() { // gameMain GameObject gameUI = AddUIPrefab(GameMainPrefab, gameObject.transform); mUIGameMenuCtrl = gameUI.GetComponentsInChildren <UIGameMenuCtrl>(true)[0]; mUIGameMenuCtrl.Show(); mUIMainMidCtrl = gameUI.GetComponentsInChildren <UIMainMidCtrl>(true)[0]; mUIMainMidCtrl.Show(); mUIMinMapCtrl = gameUI.GetComponentsInChildren <UIMinMapCtrl>(true)[0]; mUIMinMapCtrl.Show(); mNPCTalk = gameUI.GetComponentsInChildren <UINPCTalk>(true)[0]; mNPCTalk.Hide(); mNPCSpeech = gameUI.GetComponentInChildren <UINpcSpeech>(); mServantTalk = gameUI.GetComponentsInChildren <UIServantTalk>(true)[0]; mServantTalk.Hide(); gameUI.SetActive(true); //UI System gameUI = AddUIPrefab(SytemPrefab, gameObject.transform); mSystemMenu = gameUI.GetComponentInChildren <UISystemMenu>(); mSystemMenu.e_OnShow += OnSystemWndShow; mSystemMenu.e_OnHide += OnSystemWndHide; mOption = gameUI.GetComponentInChildren <UIOption>(); mOption.e_OnShow += OnSystemWndShow; mOption.e_OnHide += OnSystemWndHide; mSaveLoad = gameUI.GetComponentInChildren <UISaveLoad>(); mSaveLoad.e_OnShow += OnSystemWndShow; mSaveLoad.e_OnHide += OnSystemWndHide; gameUI.SetActive(true); //Map gameUI = AddUIPrefab(worldMapPrefab, gameObject.transform); mUIWorldMap = gameUI.GetComponent <UIWorldMapCtrl>(); gameUI.SetActive(false); // UI Build gameUI = AddUIPrefab(buildPrefab, gameObject.transform); mBuildBlock = gameUI.GetComponent <UIBuildBlock>(); gameUI.SetActive(false); // Tip end gameUI = AddUIPrefab(tipsWmdPrefab, gameObject.transform); mTipsCtrl = gameUI.GetComponent <UITips>(); gameUI.SetActive(true); // TipRecords gameUI = AddUIPrefab(tipRecordsMgrPrefab, gameObject.transform); mTipRecordsMgr = gameUI.GetComponent <UITipRecordsMgr>(); gameUI.SetActive(false); //wnd // player info gameUI = AddUIPrefab(playerInfoPrefab, tsCenter); mUIPlayerInfoCtrl = gameUI.GetComponent <UIPlayerInfoCtrl>(); gameUI.transform.localPosition = UIDefaultPostion.Instance.pos_PlayerInfo; gameUI.SetActive(false); mUIPlayerInfoCtrl.transform.localPosition = UIDefaultPostion.Instance.pos_PlayerInfo; // Item Package gameUI = AddUIPrefab(ItemPackagePrefab, tsCenter); mItemPackageCtrl = gameUI.GetComponent <UIItemPackageCtrl>(); gameUI.SetActive(false); mItemPackageCtrl.transform.localPosition = UIDefaultPostion.Instance.pos_ItemPackge; // Npc Strage gameUI = AddUIPrefab(npcStoragePrefab, tsCenter); mNpcStrageCtrl = gameUI.GetComponent <UINpcStorageCtrl>(); gameUI.SetActive(false); mNpcStrageCtrl.transform.localPosition = UIDefaultPostion.Instance.pos_NpcStorage; // Compound Wnd gameUI = AddUIPrefab(compoundWndPrefab, tsCenter); mCompoundWndCtrl = gameUI.GetComponent <UICompoundWndControl>(); gameUI.SetActive(false); mCompoundWndCtrl.transform.localPosition = UIDefaultPostion.Instance.pos_Compound; // Servant Wnd gameUI = AddUIPrefab(servantWndPrefab, tsCenter); mServantWndCtrl = gameUI.GetComponent <UIServantWnd>(); gameUI.SetActive(false); mServantWndCtrl.transform.localPosition = UIDefaultPostion.Instance.pos_Servant; // Npc gameUI = AddUIPrefab(npcGuiPrefab, tsCenter); mNpcWnd = gameUI.GetComponent <UINpcWnd>(); gameUI.SetActive(false); mNpcWnd.transform.localPosition = UIDefaultPostion.Instance.pos_Npc; // Mission Wnd gameUI = AddUIPrefab(missionWndPrefab, tsCenter); mUIMissionWndCtrl = gameUI.GetComponent <UIMissionWndCtrl>(); gameUI.SetActive(false); // MissionTrack Wnd gameUI = AddUIPrefab(missionTrackWndPrefab, tsCenterOther); mMissionTrackWnd = gameUI.GetComponent <UIMissionTrackCtrl>(); mMissionTrackWnd.transform.localPosition = UIDefaultPostion.Instance.pos_MissionTruck; // mMissionTrackWnd.transform.localPosition = new Vector3 (856,162,0); mMissionTrackWnd.transform.localPosition = new Vector3(Screen.width / 2 - 145, 35, 0); gameUI.SetActive(false); // Get Item Wnd gameUI = AddUIPrefab(itemGetWndPrefab, tsCenter); mItemGet = gameUI.GetComponent <UIItemGet>(); gameUI.SetActive(false); // Item Option Wnd gameUI = AddUIPrefab(itemOpGuiPrefab, tsCenter); mItemOp = gameUI.GetComponent <UIItemOp>(); gameUI.SetActive(false); // Shop Wnd gameUI = AddUIPrefab(shopGuiPrefab, tsCenter); mShopWnd = gameUI.GetComponent <UIShopWnd>(); gameUI.SetActive(false); mShopWnd.transform.localPosition = UIDefaultPostion.Instance.pos_Shop; // Item Box gameUI = AddUIPrefab(itemBoxGuiPrefab, tsCenter); mItemBox = gameUI.GetComponent <UIItemBox>(); gameUI.SetActive(false); // Repair Wnd gameUI = AddUIPrefab(repairWndGuiPrefab, tsCenter); mRepair = gameUI.GetComponent <UIRepairWnd>(); gameUI.SetActive(false); mRepair.transform.localPosition = UIDefaultPostion.Instance.pos_Repair; // Power Plant Solar Wnd gameUI = AddUIPrefab(powerPlantSolarPrefab, tsCenter); mPowerPlantSolar = gameUI.GetComponent <UIPowerPlantSolar>(); gameUI.SetActive(false); mPowerPlantSolar.transform.localPosition = UIDefaultPostion.Instance.pos_PowerPlant; // Revive Gui Wnd gameUI = AddUIPrefab(reviveGuiPrefab, tsCenter); mRevive = gameUI.GetComponent <UIRevive>(); gameUI.SetActive(false); // Ware House Wnd gameUI = AddUIPrefab(wareHouseGuiPrefab, tsCenter); mWarehouse = gameUI.GetComponent <UIWarehouse>(); gameUI.SetActive(false); mWarehouse.transform.localPosition = UIDefaultPostion.Instance.pos_WareHouse; //colony Wnd gameUI = AddUIPrefab(colonyWndPrefab, tsCenter); mCSUI_MainWndCtrl = gameUI.GetComponent <CSUI_MainWndCtrl>(); gameUI.SetActive(false); //phone Wnd gameUI = AddUIPrefab(phoneWndPrefab, tsCenter); mPhoneWnd = gameUI.GetComponent <UIPhoneWnd>(); gameUI.SetActive(false); // skill wnd gameUI = AddUIPrefab(skillWndPrefab, tsCenter); mSkillWndCtrl = gameUI.GetComponent <UISkillWndCtrl>(); gameUI.SetActive(false); // workshop wnd gameUI = AddUIPrefab(workshopPrefb, tsCenter); mWorkShopCtrl = gameUI.GetComponent <UIWorkShopCtrl>(); gameUI.SetActive(false); //information wnd gameUI = AddUIPrefab(informationPrefab, tsCenter); mTeamInfoMgr = gameUI.GetComponent <CSUI_TeamInfoMgr>(); gameUI.SetActive(false); // railwayPoint gameUI = AddUIPrefab(railwayPonitPrefab, tsCenter); mRailwayPoint = gameUI.GetComponent <RailwayPointGui_N>(); gameUI.SetActive(false); // mallWndPrefab if (Pathea.PeGameMgr.IsMulti) { gameUI = AddUIPrefab(mallWndPrefab, tsCenter); mMallWnd = gameUI.GetComponent <UIMallWnd>(); gameUI.SetActive(false); } //UI Adminstrator //AdminUI gameUI = AddUIPrefab(AdministratorPrefab, tsCenter); mAdminstratorWnd = gameUI.GetComponent <UIAdminstratorWnd>(); gameUI.SetActive(false); // Driving UI gameUI = AddUIPrefab(drivingPrefab, tsCenterOther); mDrivingCtrl = gameUI.GetComponent <UIDrivingCtrl>(); gameUI.SetActive(false); // Custom stopwatch UI gameUI = AddUIPrefab(stopwatchPrefab, transform); mStopwatchList = gameUI.GetComponent <UIStopwatchList>(); gameUI.SetActive(false); // Custom npc talk UI gameUI = AddUIPrefab(npcWndCustomPrefab, tsCenter); mNpcDialog = gameUI.GetComponent <UINpcDialog>(); // Custom npc mission ui gameUI = AddUIPrefab(missionWndCustomPrefab, tsCenter); mMissionGoal = gameUI.GetComponent <UIMissionGoal>(); // Custom MissionTrack ui gameUI = AddUIPrefab(missionTrackCustomPrefab, tsCenterOther); mCustomMissionTrack = gameUI.GetComponent <UIMissionTrack>(); mCustomMissionTrack.transform.localPosition = UIDefaultPostion.Instance.pos_MissionTruck; // mMissionTrackWnd.transform.localPosition = new Vector3 (856,162,0); mCustomMissionTrack.transform.localPosition = new Vector3(Screen.width / 2 - 145, 35, 0); //lz-2016.10.22 KickstarterCtrl gameUI = AddUIPrefab(mKickstarterCtrlPrefab, tsCenter); mKickstarterCtrl = gameUI.GetComponent <KickstarterCtrl>(); gameUI.SetActive(false); //lz-2016.11.07 NpcTalkHistoryWnd gameUI = AddUIPrefab(mNpcTalkHistoryPrefab, tsCenter); mNpcTalkHistoryWnd = gameUI.GetComponent <NpcTalkHistoryWnd>(); gameUI.SetActive(false); // itemsTrack Wnd gameUI = AddUIPrefab(itemsTrackWndPrefab, tsCenterOther); mItemsTrackWnd = gameUI.GetComponent <UIItemsTrackCtrl>(); mItemsTrackWnd.transform.localPosition = mMissionTrackWnd.transform.localPosition + new Vector3(0, 170f, 0); gameUI.SetActive(false); }