mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 11:38:12 +01:00
@@ -14,6 +14,7 @@
|
||||
var/im_list_ui[0] //List of messages.
|
||||
|
||||
var/weather[0]
|
||||
var/injection = null
|
||||
var/modules_ui[0] //Home screen info.
|
||||
|
||||
//First we add other 'local' communicators.
|
||||
@@ -70,8 +71,16 @@
|
||||
//Weather reports.
|
||||
for(var/datum/planet/planet in planet_controller.planets)
|
||||
if(planet.weather_holder && planet.weather_holder.current_weather)
|
||||
weather[++weather.len] = list("Planet" = planet.name, "Weather" = planet.weather_holder.current_weather.name, "Temperature" = (round(planet.weather_holder.temperature*1000)/1000),\
|
||||
"High" = planet.weather_holder.current_weather.temp_high, "Low" = planet.weather_holder.current_weather.temp_low, "Wind" = "[planet.weather_holder.wind_speed]|[dir2text(planet.weather_holder.wind_dir)]")
|
||||
var/list/W = list(
|
||||
"Planet" = planet.name,
|
||||
"Time" = planet.current_time.show_time("hh:mm"),
|
||||
"Weather" = planet.weather_holder.current_weather.name,
|
||||
"Temperature" = planet.weather_holder.temperature - T0C,
|
||||
"High" = planet.weather_holder.current_weather.temp_high - T0C,
|
||||
"Low" = planet.weather_holder.current_weather.temp_low - T0C)
|
||||
weather[++weather.len] = W
|
||||
|
||||
injection = "<div>Test</div>"
|
||||
|
||||
//Modules for homescreen.
|
||||
for(var/list/R in modules)
|
||||
@@ -98,6 +107,8 @@
|
||||
data["homeScreen"] = modules_ui
|
||||
data["note"] = note // current notes
|
||||
data["weather"] = weather
|
||||
data["aircontents"] = src.analyze_air()
|
||||
data["injection"] = injection
|
||||
|
||||
// update the ui if it exists, returns null if no ui is passed/found
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/obj/item/device/communicator/proc/analyze_air()
|
||||
var/list/results = list()
|
||||
var/turf/T = get_turf(src.loc)
|
||||
if(!isnull(T))
|
||||
var/datum/gas_mixture/environment = T.return_air()
|
||||
var/pressure = environment.return_pressure()
|
||||
var/total_moles = environment.total_moles
|
||||
if (total_moles)
|
||||
var/o2_level = environment.gas["oxygen"]/total_moles
|
||||
var/n2_level = environment.gas["nitrogen"]/total_moles
|
||||
var/co2_level = environment.gas["carbon_dioxide"]/total_moles
|
||||
var/phoron_level = environment.gas["phoron"]/total_moles
|
||||
var/unknown_level = 1-(o2_level+n2_level+co2_level+phoron_level)
|
||||
results = list(
|
||||
"pressure" = "[round(pressure,0.1)]",
|
||||
"nitrogen" = "[round(n2_level*100,0.1)]",
|
||||
"oxygen" = "[round(o2_level*100,0.1)]",
|
||||
"carbon_dioxide" = "[round(co2_level*100,0.1)]",
|
||||
"phoron" = "[round(phoron_level*100,0.01)]",
|
||||
"other" = "[round(unknown_level, 0.01)]",
|
||||
"temp" = "[round(environment.temperature-T0C,0.1)]",
|
||||
"reading" = 1
|
||||
)
|
||||
|
||||
if(isnull(results))
|
||||
results = list("reading" = 0)
|
||||
return results
|
||||
@@ -242,15 +242,75 @@ Used In File(s): code\game\objects\items\devices\communicator\communicator.dm
|
||||
<HR>
|
||||
<div class="itemContent" style="width: 100%;">{{:helper.link('Home', 'home', {'switch_tab' : 1})}}</div><BR>
|
||||
|
||||
<h4>Curren Conditions:</h4>
|
||||
<div class="item">
|
||||
{{if data.aircontents.reading == 1}}
|
||||
<div class="itemLabel">
|
||||
Pressure:
|
||||
</div>
|
||||
<div class = "itemContent">
|
||||
{{:helper.string('<span class="{0}">{1} kPa</span>', data.aircontents.pressure < 80 || data.aircontents.pressure > 120 ? 'bad' : data.aircontents.pressure < 95 || data.aircontents.pressure > 110 ? 'average' : 'good' , data.aircontents.pressure)}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Temperature:
|
||||
</div>
|
||||
<div class = "itemContent">
|
||||
{{:helper.string('<span class="{0}">{1} °C</span>', data.aircontents.temp < 5 || data.aircontents.temp > 35 ? 'bad' : data.aircontents.temp < 15 || data.aircontents.temp > 25 ? 'average' : 'good' , data.aircontents.temp)}}
|
||||
</div>
|
||||
<br>
|
||||
<div class="itemLabel">
|
||||
Oxygen:
|
||||
</div>
|
||||
<div class = "itemContent">
|
||||
{{:helper.string('<span class="{0}">{1}%</span>', data.aircontents.oxygen < 17 ? 'bad' : data.aircontents.oxygen < 19 ? 'average' : 'good' , data.aircontents.oxygen)}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Nitrogen:
|
||||
</div>
|
||||
<div class = "itemContent">
|
||||
{{:helper.string('<span class="{0}">{1}%</span>', data.aircontents.nitrogen > 82 ? 'bad' : data.aircontents.nitrogen > 80 ? 'average' : 'good' , data.aircontents.nitrogen)}}
|
||||
</div>
|
||||
{{if data.aircontents.carbon_dioxide > 0}}
|
||||
<div class="itemLabel">
|
||||
Carbon Dioxide:
|
||||
</div>
|
||||
<div class = "itemContent">
|
||||
{{:helper.string('<span class="{0}">{1}%</span>', data.aircontents.carbon_dioxide > 5 ? 'bad' : 'good' , data.aircontents.carbon_dioxide)}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if data.aircontents.phoron > 0}}
|
||||
<div class="itemLabel">
|
||||
Phoron:
|
||||
</div>
|
||||
<div class = "itemContent">
|
||||
{{:helper.string('<span class="{0}">{1}%</span>', data.aircontents.phoron > 0 ? 'bad' : 'good' , data.aircontents.phoron)}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if data.aircontents.other > 0}}
|
||||
<div class="itemLabel">
|
||||
Unknown:
|
||||
</div>
|
||||
<div class = "itemContent">
|
||||
<span class="bad">{{:data.aircontents.other}}%</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div class="itemContent" style="width: 100%;">
|
||||
<span class="average"><b>Unable to get air reading</b></span>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
<h4>Weather Reports:</h4>
|
||||
{{for data.weather}}
|
||||
<div class="item">
|
||||
<div class="itemLabel">
|
||||
{{:value.Planet}}:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
Weather: {{:value.Weather}}, {{:value.Temperature - 273.15}}℃<BR>
|
||||
High: {{:value.High - 273.15}}℃ | Low: {{:value.Low - 273.15}}℃<BR>
|
||||
Wind: {{:value.Wind}}
|
||||
Time: {{:value.Time}}<BR>
|
||||
Weather: {{:value.Weather}}, {{:helper.fixed(value.Temperature)}}°C<BR>
|
||||
High: {{:helper.fixed(value.High)}}°C | Low: {{:helper.fixed(value.Low)}}°C
|
||||
</div>
|
||||
</div>
|
||||
{{empty}}
|
||||
|
||||
@@ -852,6 +852,7 @@
|
||||
#include "code\game\objects\items\devices\whistle.dm"
|
||||
#include "code\game\objects\items\devices\communicator\cartridge.dm"
|
||||
#include "code\game\objects\items\devices\communicator\communicator.dm"
|
||||
#include "code\game\objects\items\devices\communicator\helper.dm"
|
||||
#include "code\game\objects\items\devices\communicator\integrated.dm"
|
||||
#include "code\game\objects\items\devices\communicator\messaging.dm"
|
||||
#include "code\game\objects\items\devices\communicator\phone.dm"
|
||||
|
||||
Reference in New Issue
Block a user