mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Make planets more generic
So that Sif doesn't have to be the only one!
This commit is contained in:
@@ -1,11 +1,16 @@
|
|||||||
|
var/datum/controller/process/planet/planet_controller = null
|
||||||
|
|
||||||
/datum/controller/process/planet
|
/datum/controller/process/planet
|
||||||
var/list/planets = list()
|
var/list/planets = list()
|
||||||
|
|
||||||
/datum/controller/process/planet/setup()
|
/datum/controller/process/planet/setup()
|
||||||
name = "planet"
|
name = "planet"
|
||||||
|
planet_controller = src
|
||||||
schedule_interval = 600 // every minute
|
schedule_interval = 600 // every minute
|
||||||
planet_sif = new()
|
var/list/planet_datums = typesof(/datum/planet) - /datum/planet
|
||||||
planets.Add(planet_sif)
|
for(var/P in planet_datums)
|
||||||
|
var/datum/planet/NP = new P()
|
||||||
|
planets.Add(NP)
|
||||||
|
|
||||||
/datum/controller/process/planet/doWork()
|
/datum/controller/process/planet/doWork()
|
||||||
for(var/datum/planet/P in planets)
|
for(var/datum/planet/P in planets)
|
||||||
|
|||||||
@@ -977,7 +977,7 @@
|
|||||||
if(!check_rights(R_DEBUG))
|
if(!check_rights(R_DEBUG))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/datum/planet/planet = input(usr, "Which planet do you want to modify the weather on?", "Change Weather") in list(planet_sif)
|
var/datum/planet/planet = input(usr, "Which planet do you want to modify the weather on?", "Change Weather") in planet_controller.planets
|
||||||
var/datum/weather/new_weather = input(usr, "What weather do you want to change to?", "Change Weather") as null|anything in planet.weather_holder.allowed_weather_types
|
var/datum/weather/new_weather = input(usr, "What weather do you want to change to?", "Change Weather") as null|anything in planet.weather_holder.allowed_weather_types
|
||||||
if(new_weather)
|
if(new_weather)
|
||||||
planet.weather_holder.change_weather(new_weather)
|
planet.weather_holder.change_weather(new_weather)
|
||||||
@@ -993,7 +993,7 @@
|
|||||||
if(!check_rights(R_DEBUG))
|
if(!check_rights(R_DEBUG))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/datum/planet/planet = input(usr, "Which planet do you want to modify time on?", "Change Time") in list(planet_sif)
|
var/datum/planet/planet = input(usr, "Which planet do you want to modify time on?", "Change Time") in planet_controller.planets
|
||||||
|
|
||||||
var/datum/time/current_time_datum = planet.current_time
|
var/datum/time/current_time_datum = planet.current_time
|
||||||
var/new_hour = input(usr, "What hour do you want to change to?", "Change Time", text2num(current_time_datum.show_time("hh"))) as null|num
|
var/new_hour = input(usr, "What hour do you want to change to?", "Change Time", text2num(current_time_datum.show_time("hh"))) as null|num
|
||||||
|
|||||||
@@ -36,7 +36,12 @@
|
|||||||
if(weather_holder)
|
if(weather_holder)
|
||||||
weather_holder.process()
|
weather_holder.process()
|
||||||
|
|
||||||
// Returns the time datum of Sif.
|
/datum/planet/proc/update_sun_deferred(var/new_range, var/new_brightness, var/new_color)
|
||||||
/proc/get_sif_time()
|
set background = 1
|
||||||
if(planet_sif)
|
set waitfor = 0
|
||||||
return planet_sif.current_time
|
var/i = 0
|
||||||
|
for(var/turf/simulated/floor/T in outdoor_turfs)
|
||||||
|
T.set_light(new_range, new_brightness, new_color)
|
||||||
|
i++
|
||||||
|
if(i % 30 == 0)
|
||||||
|
sleep(1)
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ var/datum/planet/sif/planet_sif = null
|
|||||||
|
|
||||||
/datum/planet/sif/New()
|
/datum/planet/sif/New()
|
||||||
..()
|
..()
|
||||||
|
planet_sif = src
|
||||||
weather_holder = new /datum/weather_holder/sif(src) // Cold weather is also nice.
|
weather_holder = new /datum/weather_holder/sif(src) // Cold weather is also nice.
|
||||||
|
|
||||||
// This code is horrible.
|
// This code is horrible.
|
||||||
@@ -95,12 +96,11 @@ var/datum/planet/sif/planet_sif = null
|
|||||||
spawn(1)
|
spawn(1)
|
||||||
update_sun_deferred(2, new_brightness, new_color)
|
update_sun_deferred(2, new_brightness, new_color)
|
||||||
|
|
||||||
/datum/planet/proc/update_sun_deferred(var/new_range, var/new_brightness, var/new_color)
|
// We're gonna pretend there are 32 hours in a Sif day instead of 32.64 for the purposes of not losing sanity. We lose 38m 24s but the alternative is a path to madness.
|
||||||
set background = 1
|
/datum/time/sif
|
||||||
set waitfor = 0
|
seconds_in_day = 60 * 60 * 32 * 10 // 115,200 seconds. If we did 32.64 hours/day it would be around 117,504 seconds instead.
|
||||||
var/i = 0
|
|
||||||
for(var/turf/simulated/floor/T in outdoor_turfs)
|
// Returns the time datum of Sif.
|
||||||
T.set_light(new_range, new_brightness, new_color)
|
/proc/get_sif_time()
|
||||||
i++
|
if(planet_sif)
|
||||||
if(i % 30 == 0)
|
return planet_sif.current_time
|
||||||
sleep(1)
|
|
||||||
|
|||||||
@@ -70,7 +70,3 @@
|
|||||||
answer = replacetext(answer, "mm", minute_text)
|
answer = replacetext(answer, "mm", minute_text)
|
||||||
answer = replacetext(answer, "ss", second_text)
|
answer = replacetext(answer, "ss", second_text)
|
||||||
return answer
|
return answer
|
||||||
|
|
||||||
// We're gonna pretend there are 32 hours in a Sif day instead of 32.64 for the purposes of not losing sanity. We lose 38m 24s but the alternative is a path to madness.
|
|
||||||
/datum/time/sif
|
|
||||||
seconds_in_day = 60 * 60 * 32 * 10 // 115,200 seconds. If we did 32.64 hours/day it would be around 117,504 seconds instead.
|
|
||||||
Reference in New Issue
Block a user