OC Sensors

Quick rating

OC Sensors

No reviews yet

Sensor Addon for OpenComputers

No Theme
Tech
Mod Addon
Mod Loaders
Forge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

About

Project Details

Type
Mod
Latest Version
ocsensors-1.0.4-b23.jar
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

About

Description

ocsensors

Sensor Addon for OpenComputers

Similiar to the old OpenCCSensors mod this mod adds a sensor block that allows
computers to scan surrounding blocks.

Available Methods

Method Description
scan(x:number, y:number, z:number, [side:number]) Scans a block relative to the sensor
search([name:string=”“], [meta:number=-1], [section:string=”“], [range:number=]) Search for blocks matching the given criteria in the given range
searchEntities(x1:number, y1:number, z1:number, x2:number, y2:number, z3:number) Scans a region relative to the sensor for entities

Examples

Get stored energy of all energy-capable nearby blocks

local component = require('component')

local sensor = component.sensor

local totalCapacity = 0
local totalStored = 0

print("Searching for blocks handling energy")
local positions = sensor.search("", -1, "energy")

print("Scanning " .. #positions .. " blocks")
for _,pos in ipairs(positions) do
  local info = sensor.scan(pos.x, pos.y, pos.z)

  print("  " .. info.block.label .. " @ " .. pos.x .. "," .. pos.y .. "," .. pos.z)
  totalStored = totalStored + info.data.energy.energyStored
  totalCapacity = totalCapacity + info.data.energy.maxEnergyStored
end

print("")
print("Energy summary:")
print("  Total capacity: " .. totalCapacity);
print("  Total stored:   " .. totalStored);

Output a redstone signal when all nearby extra utilities 2 generators are ready to run

local component = require("component")
local sides = require("sides")

local sensor = component.sensor
local redstone = component.redstone

local redstoneSide = sides.back

-- Search for generators once
local generators = sensor.search("", -1, "extrautils2")

while(true) do
    -- Loop over nearby machines and see if they are all satisfied
    local missing = 0
    for _,pos in ipairs(generators) do
        local info = sensor.scan(pos.x, pos.y, pos.z)
        local xu = info.data.extrautils2

        -- Is the generator already running?
        local alreadyRunning = info.data.extrautils2.processTime > 0

        -- Is the Generator satisfied with items?
        local enoughItems = info.data.items.n == 0 or info.data.items.n == #info.data.items

        -- Is it satisfied with fluid?
        local enoughFluid = true
        if(info.data.fluid.n > 0) then
            for _,tank in ipairs(info.data.fluid) do
                if(tank.contents == nil or tank.contents.amount == 0) then
                    enoughFluid = false
                end
            end
        end

        if(alreadyRunning or (enoughItems and enoughFluid)) then
            --print(info.block.label .. ": " .. serialization.serialize(info.data))
            print("Ready:   " .. info.block.label)
        else
            print("Missing: " .. info.block.label)

            -- Immediately turn off all other generators
            redstone.setOutput(redstoneSide, 0)
            missing = missing + 1
        end
    end

    -- React accordingly
    if(missing == 0) then
        print("--> All generators good to go")
        redstone.setOutput(redstoneSide, 15)
    else
        print("--> Missing " .. missing .. " generators")
    end

    os.sleep(1)
end

Dump the fluid of all nearby MooFluid cows

local component = require('component')
local serialization = require('serialization')

local sensor = component.sensor

local range = 5

local foundFluids = {}
for _, entity in ipairs(sensor.searchEntities(-range, -range, -range, range, range, range)) do
    if(entity.type == "neutral" and entity.moofluids ~= nil) then
        foundFluids[#foundFluids+1] = entity.moofluids.fluid.name
    end
end

print(serialization.serialize(foundFluids))
-- {"lava", "lava", "lava", "water", "water", "lava"}

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

3.5m
Downloads
Last Updated
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works