Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://github.com/erogenousbeef/BigReactors/blob/fdb050fb9cff0f7f8b79cabc08b157122832a90f/src/main/java/erogenousbeef/bigreactors/common/multiblock/tileentity/TileEntityTurbineComputerPort.java
- max_speed = 2100
- target_speed = 1800
- speed_band = 50
- turbine_index = os.getComputerLabel()
- term.clear()
- term.setCursorPos(1,1)
- turbine = peripheral.wrap("back")
- rednet.open("top")
- turbine_controller_id = rednet.lookup("turbine_control", "turbine_control")
- print("Turbine controller at: " .. (turbine_controller_id or "nil"));
- engaged = false
- active = false
- function setInductor(state)
- engaged = state
- turbine.setInductorEngaged(state)
- end
- setInductor(false)
- function setActive(state)
- active = state
- local amt = 2000
- if not state then amt = 0 end
- turbine.setFluidFlowRateMax(amt)
- end
- setActive(false)
- while true do
- speed = turbine.getRotorSpeed(speed)
- -- Prevent overspeed
- if speed < target_speed then
- setActive(true)
- else if speed > max_speed then
- setActive(false)
- end
- -- Detach inductors when underspeed
- if speed < target_speed - speed_band then
- setInductor(false)
- else if speed > target_speed + speed_band then
- setInductor(true)
- end
- end
- -- send status update
- if turbine_controller_id then
- rednet.send(turbine_controller_id, {
- id = turbine_index,
- active = active,
- engaged = engaged,
- speed = speed,
- target_speed = target_speed,
- max_speed = max_speed,
- energy = turbine.getEnergyProducedLastTick()
- }, "turbine_control");
- end
- os.sleep(1)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement