Copy salient and essential scripts and models from Plane Building Roblox
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
local module = {}
|
||||
|
||||
local programModule = require(_G.Modules.ProgramModule)
|
||||
|
||||
function module.new(this,computer,context)
|
||||
this.value = _G.GetInstance(computer,"Program")
|
||||
this.led = _G.GetInstance(computer,"LED")
|
||||
this.program = programModule.open_program(this.value,nil)
|
||||
this.program:load()
|
||||
this.inputs = {}
|
||||
this.output = function(pin,name,value)
|
||||
context.connected("ConnectorData","ConnectorEnd",computer[pin],function(object)
|
||||
context.message(object,name,value)
|
||||
end)
|
||||
end
|
||||
this.input = function(name)
|
||||
return this.inputs[name]
|
||||
end
|
||||
this.control = function(name)
|
||||
return context.controls[name]
|
||||
end
|
||||
this.message = function(title,value)
|
||||
if context.queue(this,"notification",3) then _G.Events.Notification:Fire(title,value) end
|
||||
end
|
||||
this.led.Color = Color3.fromRGB(255,255,255)
|
||||
return this
|
||||
end
|
||||
|
||||
local begin = tick()
|
||||
module.run = _G.Protect(function(this,computer,context)
|
||||
if not this.program then this.led.Color = Color3.fromRGB(255,0,0) return true end
|
||||
this.led.Color = Color3.fromRGB(0,255,0)
|
||||
this.program.variables = this.variables or {}
|
||||
this.program:run(this)
|
||||
context.replicate(this,computer,module,this.program.variables)
|
||||
return true
|
||||
end)
|
||||
|
||||
function module.remove(this,computer,context)
|
||||
|
||||
end
|
||||
|
||||
module.replication_delta = 0.25
|
||||
function module.replicate(this,computer,context,variables)
|
||||
this.variables = variables
|
||||
end
|
||||
|
||||
module.messages = {
|
||||
default = function(this,object,context,value)
|
||||
local pin = object.Name
|
||||
this.inputs[pin] = value
|
||||
end
|
||||
}
|
||||
|
||||
module.manifest = {
|
||||
"Microcontroller"
|
||||
}
|
||||
|
||||
return module
|
||||
Reference in New Issue
Block a user