Weather, Computers and Broadcast [OC + Weather2 Remastered]

Quick rating

Community listing page, reviews here may not be monitored by the author.

Weather, Computers and Broadcast [OC + Weather2 Remastered]

No reviews yet

An addon that adds compatibility between Weather2 Remastered and OpenComputers.

Mod Loaders
Minecraft

About

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.