
Description
This mod adds a structure in which you can find a block that acts as an OpenComputers peripheral, along with loot. Among this loot is an installable diskette that contains example programs to view the weather in a much more detailed way, allowing the combination of OpenComputers technology with the chaotic weather world added by Weather2 Remastered.
Type legend:
F = float
B = boolean
T = key-value pairs
S = string
I = integer
V = void
METHODS
METHODS (DIGITAL SIREN):
V: PlaySound( F: frequency(20-2000), I: duration in seconds (1-600), I: interval in ticks (1-60) )
METHODS (DIGITAL RADAR):
F: GetWindAngle() – returns the wind direction around the block
F: GetWindSpeed() – returns the wind speed around the block (must be multiplied by 9.65 to obtain a value in MPH)
B: IsRaining() – returns whether it is raining at the block
B: IsAStorm() – returns whether there is a storm within a 712-block radius
F: GetHumidity() – returns the humidity around the block on a 0–1 scale
F: GetPressure() – returns the atmospheric pressure around the block in kPa
F: GetDewpoint() – returns the dew point temperature around the block in °C
F: GetFarenheitTemperature() – returns the temperature around the block in °F (SIC)
F: GetCelsiusTemperature() – returns the temperature around the block in °C
T: ClosestStorm() – returns multiple key-value pairs describing the closest storm within a 712-block radius
S: .type – returns the storm type (TD1, EF1, C1, etc.)
F: .dist – returns the distance from the block to the storm (in blocks)
F: .angle – returns the direction angle of the storm
F: .speed – returns the movement speed of the storm
S: .name – returns the storm name (TROPICAL DEPRESSION IAN, etc.)
B: .danger – returns whether the storm is violent (increased size and health) (WIP)
B: .isDying – returns whether the storm is dissipating
I: .stage – returns the storm stage (higher stages mean stronger storms)
F: .Wspeed – returns the wind speed inside the storm (must be multiplied by 9.65 to obtain MPH)
I: .size – returns the storm size in blocks
EXAMPLE:
-- Lua example code to test the peripheral
local component = require("component")
local term = require("term")
if not component.isAvailable("WindAdapter") then
error("Component 'WindAdapter' not found")
end
local radar = component.WindAdapter
local function boolToText(v)
if v then return "YES" else return "NO" end
end
while true do
-- Basic readings
local angle = radar.GetWindAngle()
local speed = radar.GetWindSpeed() * 9.65
local humidity = radar.GetHumidity() * 100
local pressure = radar.GetPressure()
local dew = radar.GetDewpoint()
local tempC = radar.GetCelsiusTemperature()
local tempF = radar.GetFarenheitTemperature()
local isRaining = radar.IsRaining()
local isStorm = radar.IsAStorm()
-- Clear screen before printing
term.clear()
term.setCursor(1,1)
print("=== METEOROLOGICAL RADAR ===\n")
print("Wind:")
print(" Angle: " .. string.format("%.2f", angle))
print(" Speed: " .. string.format("%.2f", speed))
print("")
print("Atmosphere:")
print(" Temperature: " .. string.format("%.2f", tempC) .. " °C / " .. string.format("%.2f", tempF) .. " °F")
print(" Humidity: " .. string.format("%.2f", humidity) .. " %")
print(" Pressure: " .. string.format("%.2f", pressure))
print(" Dew point: " .. string.format("%.2f", dew))
print("")
print("Conditions:")
print(" Raining: " .. boolToText(isRaining))
print(" Storm detected: " .. boolToText(isStorm))
print("")
-- Storm processing
if isStorm then
local data = { radar.ClosestStorm() }
local storm = {}
for i = 1, #data, 2 do
storm[data[i]] = data[i+1]
end
-- Filter: ignore storms named "Cloud"
if storm.name == "Cloud" or storm.name == "" then
print("No active storms detected.")
else
print(">>> CLOSEST STORM <<<")
print(" Type: " .. tostring(storm.type))
print(" Name: " .. tostring(storm.name))
print(" Distance: " .. string.format("%.2f", storm.dist))
print(" Angle: " .. string.format("%.2f", storm.angle))
print(" Speed: " .. string.format("%.2f", storm.speed))
print(" Wind: " .. string.format("%.2f", storm.Wspeed * 9.65))
print(" Size: " .. tostring(storm.size))
print(" Dangerous: " .. boolToText(storm.danger))
print(" Dying: " .. boolToText(storm.isDying))
print(" Stage: " .. tostring(storm.stage))
end
else
print("No active storms detected.")
end
os.sleep(0.1)
end
UPDATE 1.2 MAY BREAK EXISTING SCRIPTS (API CHANGES) – CHECK CHANGELOG
Not affiliated with the Weather 2 Remastered team.
Any issues related to the base mod must be reported through their official channels, and likewise, issues specific to this mod should be reported through this project's channels.

