dfhack/scripts/weather.lua

47 lines
1.3 KiB
Lua

-- Print the weather map or change weather.
local helpstr = [[=begin
weather
=======
Prints a map of the local weather, or with arguments ``clear``,
``rain``, and ``snow`` changes the weather.
=end]]
local args = {...}
local cmd
local val_override = tonumber(args[1])
if args[1] then
cmd = args[1]:sub(1, 1)
end
if cmd == "h" or cmd == "?" then
print("The current weather is "..df.weather_type[dfhack.world.ReadCurrentWeather()])
print((helpstr:gsub('=[a-z]+', '')))
elseif cmd == "c" then
dfhack.world.SetCurrentWeather(df.weather_type.None)
print("The weather has cleared.")
elseif cmd == "r" then
dfhack.world.SetCurrentWeather(df.weather_type.Rain)
print("It is now raining.")
elseif cmd == "s" then
dfhack.world.SetCurrentWeather(df.weather_type.Snow)
print("It is now snowing.")
elseif val_override then
dfhack.world.SetCurrentWeather(val_override)
print("Set weather to " .. val_override)
elseif args[1] then
qerror("Unrecognized argument: " .. args[1])
else
-- df.global.current_weather is arranged in columns, not rows
kind = {[0]="C", "R", "S"}
print("Weather map (C = clear, R = rain, S = snow):")
for y=0, 4 do
s = ""
for x=0, 4 do
local cur = df.global.current_weather[x][y]
s = s .. (kind[cur] or cur) .. ' '
end
print(s)
end
end