Архив сообщества
2011 — 2019
Аватар ASU-08-1

Температура и внешний вид помещений станции

Автор: ASU-08-1 · 13.03.2013, 16:10 · 57 сообщений

Сообщений в теме: 57

Editor TEH Chaos-neutral#52
Набросок есть. Он состоит из 8 проверок, 3 одинаковых циклов, и добавления оверлея, лал.

//Ice and melting overlays
        if(air.temperature < 0 && air.temperature_archived >= 0) //Water should ice.
            for(var/obj/A in contents)
                A.overlays += image('atmosEffect.dmi', "icon_state" = "Ice")
        if(air.temperature > 400 && air.temperature_archived <= 400) //Melting, OGA.
            for(var/obj/A in contents)
                A.overlays += image('atmosEffect.dmi', "icon_state" = "Melt")
        if(air.temperature > 0 && air.temperature < 400 && air.temperature_archived < 0 || air.temperature_archived >= 400) //If previous temperature was lesser than 0 or higher 400, and now it lesser 400 or higher 0, then delete overlays. That's realize unlagable.
            for(var/obj/A in contents)
                A.overlays -= image('atmosEffect.dmi', "icon_state" = "Melt")
                A.overlays -= image('atmosEffect.dmi', "icon_state" = "Ice")
0
Скопировать ссылку
ASU-08-1#55
Editor TEH Chaos-neutral (17 March 2013 - 05:59) писал: писал:
Набросок есть. Он состоит из 8 проверок, 3 одинаковых циклов, и добавления оверлея, лал.

//Ice and melting overlays
if(air.temperature < 0 && air.temperature_archived >= 0) //Water should ice.
for(var/obj/A in contents)
A.overlays += image('atmosEffect.dmi', "icon_state" = "Ice")
if(air.temperature > 400 && air.temperature_archived <= 400) //Melting, OGA.
for(var/obj/A in contents)
A.overlays += image('atmosEffect.dmi', "icon_state" = "Melt")
if(air.temperature > 0 && air.temperature < 400 && air.temperature_archived < 0 || air.temperature_archived >= 400) //If previous temperature was lesser than 0 or higher 400, and now it lesser 400 or higher 0, then delete overlays. That's realize unlagable.
for(var/obj/A in contents)
A.overlays -= image('atmosEffect.dmi', "icon_state" = "Melt")
A.overlays -= image('atmosEffect.dmi', "icon_state" = "Ice")

Думаю алгоритм, который нужно реализовать данным кодом, понятен каждому и вопросов не вызывает?
Мне кажется воспользовавшись оператором "Else" можно убрать последние проверки из вычислений.
0
Скопировать ссылку
Editor TEH Chaos-neutral#56
Цитата

Думаю алгоритм, который нужно реализовать данным кодом, понятен каждому и вопросов не вызывает?

else if в данной ситуации будут ухудшать красоту и читаемость кода. И не изменит вообще ничего.
0
Скопировать ссылку
Editor TEH Chaos-neutral#57
Цитата
Карта размерами 255X255 тайлов и состоит из 5 слоев. Делаем не сложные вычисления и видим что тайлов в игре - 325125 штук. А теперь подумай, переменная проверяет их ВСЕ. Лагач будет знатный.
Хуйла не знают, что космос не отрабатывается.
0
Скопировать ссылку

Обратно в Идеи