DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ UpdateCarouselInfo()

void UpdateCarouselInfo ( )
protected

См. определение в файле NewsCarousel.c строка 161

162 {
163 if (!m_NewsArticles)
165 else
166 m_NewsArticles.Clear();
167
169 if (!newsData)
170 return;
171
172 foreach(JsonDataNewsArticle article: newsData.News)
173 {
174 if (article)
175 {
177 if (article.categoryID == NewsCategory.DLCS)
178 {
179 if (modInfo && !modInfo.GetIsOwned())
180 {
181 m_NewsArticles.Insert(article);
182 }
183 }
184
185 if (article.categoryID == NewsCategory.DLC_PROMO)
186 {
187 if (!modInfo || (modInfo && !modInfo.GetIsOwned()))
188 {
189 m_NewsArticles.Insert(article);
190 }
191 }
192
193 if (m_NewsArticles.Count() >= MAX_ARTICLES)
194 break;
195 }
196 }
197
198 int articlesCount = m_NewsArticles.Count();
199
200 m_ArticleIndex = 0;
201 m_SwitchToNext = true;
202
203 if (articlesCount < MAX_ARTICLES)
204 {
205 if (articlesCount == 0)
206 {
207 m_Root.Show(false);
208 }
209 else
210 {
211 m_Root.Show(true);
212 if (articlesCount == 1)
213 {
214 Widget pageIndicators = m_Root.FindAnyWidget("nf_pages");
215 if (pageIndicators)
216 {
217 pageIndicators.Show(false);
218 }
219
220 #ifndef PLATFORM_CONSOLE
221 m_NextPageBtnIcon.Show(false);
222 #else
223 m_NextPageBtnIconConsole.Show(false);
224 #endif
225 }
226
227 // Color carousel page indicators or hide them if not needed
228 for (int j = 1; j <= MAX_ARTICLES; j++)
229 {
230 Widget w = m_Root.FindAnyWidget("page" + j);
231 if (!w)
232 break;
233
234 if (j > articlesCount)
235 {
236 w.Show(false);
237 }
238 }
239 }
240 }
241
243 {
244 m_NewsSwitchTimer.Stop();
245 m_NewsSwitchTimer = null;
246 }
247
248 m_AnimatedSpacer = null; // force rebuild with the new column count
249
250 if (articlesCount > 1)
251 {
253 m_NewsSwitchTimer.Run(ARTICLE_SWITCH_TIME, this, "SwitchNews", null, true);
254 }
255
256 m_AnimatedSpacer = new AnimatedGridSpacer(m_GridSpacer, articlesCount - 1, 0.4, AnimatedGridSpacerEasingType.EASE_IN_OUT_QUART);
257 m_AnimatedSpacer.m_OnAnimationComplete.Insert(OnAnimationCompleted);
258
259 ShowPost(0);
260 ShowArrowRight(articlesCount > 1);
261 ShowArrowLeft(false);
262 }
enum AnimatedGridSpacerEasingType m_GridSpacer
void AnimatedGridSpacer(Widget gridSpacer, int maxColums, float animDuration=0.25, AnimatedGridSpacerEasingType easing=AnimatedGridSpacerEasingType.EASE_IN_OUT_CUBIC)
Определения AnimatedGridSpacer.c:31
AnimatedGridSpacerEasingType
Определения AnimatedGridSpacer.c:3
Widget m_Root
Определения SizeToChild.c:91
int categoryID
Определения BiosLobbyService.c:8
string dlcName
Определения BiosLobbyService.c:11
Определения BiosLobbyService.c:6
ref array< ref JsonDataNewsArticle > News
Определения BiosLobbyService.c:27
static JsonDataNewsList GetNewsData()
Определения MainMenuData.c:26
static ModInfo GetDLCModInfoByName(string dlcName)
DLCs only.
Определения MainMenuData.c:142
Определения MainMenuData.c:2
proto bool GetIsOwned()
Определения ModInfo.c:2
Определения DayZPlayerImplement.c:39
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
const int CALL_CATEGORY_GUI
Определения 3_Game/DayZ/tools/tools.c:9

Перекрестные ссылки AnimatedGridSpacer(), ARTICLE_SWITCH_TIME, CALL_CATEGORY_GUI, JsonDataNewsArticle::categoryID, JsonDataNewsArticle::dlcName, MainMenuData::GetDLCModInfoByName(), ModInfo::GetIsOwned(), MainMenuData::GetNewsData(), m_AnimatedSpacer, m_ArticleIndex, m_GridSpacer, m_NewsArticles, m_NewsSwitchTimer, m_NextPageBtnIcon, m_Root, m_SwitchToNext, MAX_ARTICLES, JsonDataNewsList::News, OnAnimationCompleted(), ShowArrowLeft(), ShowArrowRight() и ShowPost().

Используется в NewsCarousel() и ShowNewsCarousel().