HomeJavaModsWeather, Computers and Broadcast [OC + Weather2 Remastered]
Weather, Computers and Broadcast [OC + Weather2 Remastered]
ModsJava

Weather, Computers and Broadcast [OC + Weather2 Remastered]

by Santiagom123 · on CurseForge

An addon that adds compatibility between Weather2 Remastered and OpenComputers.

⬇ Download on CurseForge
Weather, Computers and Broadcast [OC + Weather2 Remastered] — screenshot 1Weather, Computers and Broadcast [OC + Weather2 Remastered] — screenshot 2

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.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more