mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-18 03:36:47 -04:00
Merge branch 'master' of https://github.com/MightyPirates/OpenComputers into MC1.7
This commit is contained in:
commit
2bc84f49a5
@ -2,6 +2,7 @@ local component = require("component")
|
|||||||
local computer = require("computer")
|
local computer = require("computer")
|
||||||
local event = require("event")
|
local event = require("event")
|
||||||
|
|
||||||
|
local adding = {}
|
||||||
local removing = {}
|
local removing = {}
|
||||||
local primaries = {}
|
local primaries = {}
|
||||||
|
|
||||||
@ -57,12 +58,27 @@ function component.setPrimary(componentType, address)
|
|||||||
if wasAvailable and address == primaries[componentType].address then
|
if wasAvailable and address == primaries[componentType].address then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
primaries[componentType] = address and component.proxy(address) or nil
|
primaries[componentType] = nil
|
||||||
|
local wasAdding = adding[componentType]
|
||||||
|
if wasAdding then
|
||||||
|
event.cancel(wasAdding)
|
||||||
|
adding[componentType] = nil
|
||||||
|
end
|
||||||
|
local primary = address and component.proxy(address) or nil
|
||||||
if wasAvailable then
|
if wasAvailable then
|
||||||
computer.pushSignal("component_unavailable", componentType)
|
computer.pushSignal("component_unavailable", componentType)
|
||||||
end
|
end
|
||||||
if component.isAvailable(componentType) then
|
if primary then
|
||||||
|
if wasAvailable or wasAdding then
|
||||||
|
adding[componentType] = event.timer(0.1, function()
|
||||||
|
primaries[componentType] = primary
|
||||||
|
adding[componentType] = nil
|
||||||
computer.pushSignal("component_available", componentType)
|
computer.pushSignal("component_available", componentType)
|
||||||
|
end)
|
||||||
|
else
|
||||||
|
primaries[componentType] = primary
|
||||||
|
computer.pushSignal("component_available", componentType)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ trait Component extends network.Component with Node {
|
|||||||
case peripheral: PeripheralCallback =>
|
case peripheral: PeripheralCallback =>
|
||||||
multi.environments.find {
|
multi.environments.find {
|
||||||
case (_, environment: ManagedPeripheral) => environment.methods.contains(peripheral.name)
|
case (_, environment: ManagedPeripheral) => environment.methods.contains(peripheral.name)
|
||||||
|
case _ => false
|
||||||
} match {
|
} match {
|
||||||
case Some((_, environment)) => method -> Some(environment)
|
case Some((_, environment)) => method -> Some(environment)
|
||||||
case _ => method -> None
|
case _ => method -> None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user