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

◆ UpdateCarouselInfo()

void UpdateCarouselInfo ( )
protected

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

148 {
149 if (!m_NewsArticles)
151 else
152 m_NewsArticles.Clear();
153
155 if (!newsData)
156 return;
157
158 for (int i = 0; i < newsData.News.Count(); i++)
159 {
160 JsonDataNewsArticle article = newsData.News[i];
161 if (article)
162 {
163 if (article.categoryID == NewsCategory.DLCS)
164 {
166 if (modInfo && !modInfo.GetIsOwned())
167 {
168 m_NewsArticles.Insert(article);
169 }
170 }
171
172 if (article.categoryID == NewsCategory.DLC_PROMO)
173 {
174 m_NewsArticles.Insert(article);
175 }
176
177 if (m_NewsArticles.Count() >= MAX_ARTICLES)
178 break;
179 }
180 }
181
182 int articlesCount = m_NewsArticles.Count();
183 if (articlesCount < MAX_ARTICLES)
184 {
185 if (articlesCount == 0)
186 {
187 m_Root.Show(false);
188 }
189 else
190 {
191 m_Root.Show(true);
192 if (articlesCount == 1)
193 {
194 Widget pageIndicators = m_Root.FindAnyWidget("nf_pages");
195 if (pageIndicators)
196 {
197 pageIndicators.Show(false);
198 }
199
200 #ifndef PLATFORM_CONSOLE
201 m_NextPageBtnIcon.Show(false);
202 #else
203 m_NextPageBtnIconConsole.Show(false);
204 #endif
205 }
206
207 // Color carousel page indicators or hide them if not needed
208 for (int j = 1; j <= MAX_ARTICLES; j++)
209 {
210 Widget w = m_Root.FindAnyWidget("page" + j);
211 if (!w)
212 break;
213
214 if (j > articlesCount)
215 {
216 w.Show(false);
217 }
218 }
219 }
220 }
221
222 if (!m_NewsSwitchTimer && articlesCount > 1)
223 {
225 m_NewsSwitchTimer.Run(ARTICLE_SWITCH_TIME, this, "SwitchNews", null, true);
226 }
227
228 if (!m_AnimatedSpacer)
229 {
230 int maxColums = (articlesCount - 1);
231 m_AnimatedSpacer = new AnimatedGridSpacer(m_GridSpacer, maxColums, 0.4, AnimatedGridSpacerEasingType.EASE_IN_OUT_QUART);
232 m_AnimatedSpacer.m_OnAnimationComplete.Insert(OnAnimationCompleted);
233 }
234
235 ShowPost(0);
236 }
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:7
static ModInfo GetDLCModInfoByName(string dlcName)
DLCs only.
Определения MainMenuData.c:124
Определения 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_GridSpacer, m_NewsArticles, m_NewsSwitchTimer, m_NextPageBtnIcon, m_Root, MAX_ARTICLES, JsonDataNewsList::News, OnAnimationCompleted() и ShowPost().

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