Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Port] Time Cycle #81

Closed
wants to merge 3 commits into from

Conversation

PuroSlavKing
Copy link

Описание PR

Taken from: Simple-Station/Einstein-Engines#1234

Почему / Баланс

Город засыпает, просыпается мафия.

Ссылка на ветку

Технические детали

Медиа

Разгар дня и ночи на silly:
image
image

Критические изменения

Мапперам нужно добавлять компонент TimeCycle на свои земные карты, иначе цикла не будет.

Список изменений

🆑 DocNITE & PuroSlavKing

  • add: Добавлена система цикла дня и ночи. Требуется добавление компонента TimeCycle в прототип карты.
  • add: Добавлена система цикла дня и ночи на карты: Pearl, Silly, Terra и Pilgrim.

DocNITE and others added 2 commits November 24, 2024 23:27
# Description

Add real world Day/Night cycle changing, with Ambient color
interpolation and some configurable features for mappers.
High inspired by
[Nuclear-14](https://github.com/Vault-Overseers/nuclear-14.git) and
[Crystall Punk 14](https://github.com/crystallpunk-14/)

TimeCycle use 24h day calculation, instead coefficient, like in N14. 

---

# TODO

[ ] - Add more examples/prepared map palettes for Day/Night ambient.
[ ] - (Optional) Move all palette description into List of variables,
instead calling `IPrototypeManager` every minute passing.

---


https://github.com/user-attachments/assets/cc5d1b8c-bd25-4042-8cee-e2edfa0d9acc


![image](https://github.com/user-attachments/assets/abcdc11d-fdb1-4b48-8599-0116a5797f8b)

---

# Changelog

:cl:
- add: Added Day/Night time cycle for admins and mapers.
@PuroSlavKing PuroSlavKing requested a review from Morb0 as a code owner November 24, 2024 21:12
@github-actions github-actions bot added S: Untriaged S: Needs Review ПРу необходим ревью Changes: Map Изменяет карты size/L and removed S: Needs Review ПРу необходим ревью labels Nov 24, 2024
@Vonsant
Copy link
Collaborator

Vonsant commented Nov 24, 2024

Уже четвертая кринжреализация смены дневного цикла, что я вижу.

@PuroSlavKing
Copy link
Author

Уже четвертая кринжреализация смены дневного цикла, что я вижу.

А что тебе нужно? Что-бы на клиенте в зависимости от часового пояса пользователя отображалось время суток?

@Vonsant
Copy link
Collaborator

Vonsant commented Nov 25, 2024

А что тебе нужно? Что-бы на клиенте в зависимости от часового пояса пользователя отображалось время суток?

Ничего, просто констатирую.

@Vonsant
Copy link
Collaborator

Vonsant commented Nov 25, 2024

Но если интересно, глянь как это у Эда сделано, самая адекватная реализация (но там лицензия не даст портировать).

@VigersRay
Copy link

О, надо бы закинуть нам на оазис смену дня и ночи, а то без дела лежит.

@PuroSlavKing
Copy link
Author

Но если интересно, глянь как это у Эда сделано, самая адекватная реализация (но там лицензия не даст портировать).

Не только лицензия, но и закрытый билд

@CaptainSqrBeard
Copy link

Тестирование

Игра

Замечания

  • Солнечные сутки на планетарных картах равны 1 час 36 минут :)
  • Часы никак не связаны и максимум начинают с того-же времени, что и время цикла дня и ночи. Но это не проблема, ведь часы показывают земное время, а не станционное или планетарное.
  • Как по мне, планетарным картам не хватает кромешной тьмы из-за того, как работает эмбиентовое освещение. Этот PR частично решает эту проблему: ночью на станции действительно кромешная тьма.

Предложения

  • Было бы прикольно, если бы время было рандомизировано в начале раунда.

Реализация

  • Напрягает то, что освещение карты обрабатывается сервером, а не клиентом. Думаю вполне можно было перенести это на клиент.
  • Просчёт текущего времени можно было сделать от GameTiming.CurTime, не считая и записывая всё очередной раз в компоненте. В TimeCycleComponent тогда можно просто добавить какой-нить условное поле TimeOffset для смещения от текущего времени.
  • У системы смены дня и ночи есть функционал ускорения, но при этом он никак не используется. Думаю его стоит удалить как неиспользуемый код.

@Tornado-Technology
Copy link
Collaborator

Тестирование

Игра

Замечания

  • Солнечные сутки на планетарных картах равны 1 час 36 минут :)
  • Часы никак не связаны и максимум начинают с того-же времени, что и время цикла дня и ночи. Но это не проблема, ведь часы показывают земное время, а не станционное или планетарное.
  • Как по мне, планетарным картам не хватает кромешной тьмы из-за того, как работает эмбиентовое освещение. Этот PR частично решает эту проблему: ночью на станции действительно кромешная тьма.

Предложения

  • Было бы прикольно, если бы время было рандомизировано в начале раунда.

Реализация

  • Напрягает то, что освещение карты обрабатывается сервером, а не клиентом. Думаю вполне можно было перенести это на клиент.
  • Просчёт текущего времени можно было сделать от GameTiming.CurTime, не считая и записывая всё очередной раз в компоненте. В TimeCycleComponent тогда можно просто добавить какой-нить условное поле TimeOffset для смещения от текущего времени.
  • У системы смены дня и ночи есть функционал ускорения, но при этом он никак не используется. Думаю его стоит удалить как неиспользуемый код.

Касаемо серверности, это так не работает. Да свет ренедерится на клиенте, вся остальная логика только на сервере из-за специфики MapLight. Хотя лучше портировать мою с эдом реализацию.

@Tornado-Technology Tornado-Technology added Undergoing Maintainer Discussion Этот PR в настоящее время проходит внутреннее обсуждение мейнтейнеров. S: DO NOT MERGE НЕ МЕРДЖИТЬ!!!! labels Nov 29, 2024
@AwareFoxy
Copy link
Collaborator

tornado sdelaet svoye vrode

@AwareFoxy AwareFoxy closed this Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Map Изменяет карты S: DO NOT MERGE НЕ МЕРДЖИТЬ!!!! S: Untriaged size/L Undergoing Maintainer Discussion Этот PR в настоящее время проходит внутреннее обсуждение мейнтейнеров.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants