Welcome to the new Diaspora forums, please let us know if you see anything broken! Notice: Some users may need to reupload their avatars due to an issue during forum setup!
E2 lifesupport
Hello!
I bring my E2 lifesupport to you.
Its a bit old schoolish since the last update.
-No wiring
-Links automatically all life support parts and core to the node
-Adjusts resources
-Adjusts capacitor
-Adjusts ship environment when probe is around
-Starts to repair shields when needed
Enjoy!
I bring my E2 lifesupport to you.
Its a bit old schoolish since the last update.
-No wiring
-Links automatically all life support parts and core to the node
-Adjusts resources
-Adjusts capacitor
-Adjusts ship environment when probe is around
-Starts to repair shields when needed
Enjoy!
@name SweetOnes_Lifesupport @persist Players:array Caches:array Probes:array Fusions:array O2Hs:array Steams:array Waters:array LScores:array Nodes:array Storages:array SolarPanels:array Climates:array @persist Dispensers:array Waterpumps:array Cores:array Repairs:array @persist Fusion:wirelink Cache:wirelink Pump:wirelink O2H:wirelink Steam:wirelink Waterpump:wirelink Water:wirelink AtmoProbe:wirelink Climate:wirelink Core:wirelink @persist LSCore:wirelink Repair:wirelink #Lets find devices first and wirelink & link em if(first()|dupefinished()){ Players=players() O=owner() E=entity() for(I=1,Players:count()) { findExcludePlayerProps(Players[I,entity]) } findAllowPlayerProps(O) findIncludeClass("resource_node") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Nodes=findToArray() if (!(Nodes)) { print("Unable to find a node close enough!") } if(Nodes){ for(I=1,Nodes:count()) { Nodes[I, entity]:wirelink() print(Nodes[I, entity]:toString()+" link has been made") } } findExcludeClass("resource_node") findIncludeClass("storage_cache") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Caches=findToArray() if (!(Caches)) { print("Unable to find a cache close enough!") } if(Caches){ for(I=1,Caches:count()) { Caches[I, entity]:wirelink() Caches[I, entity]:link(Nodes[1, entity]) Cache=Caches[1, wirelink] print(Caches[1, entity]:toString()+" link has been made") } } findExcludeClass("storage_cache") findIncludeClass("other_probe") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Probes=findToArray() if (!(Probes)) { print("Unable to find a atmoprobe close enough!") } if(Probes){ for(I=1,Probes:count()) { Probes[1, entity]:wirelink() Probes[1, entity]:link(Nodes[1, entity]) AtmoProbe=Probes[I, wirelink] print(Probes[1, entity]:toString()+" link has been made") } } findExcludeClass("other_probe") findIncludeClass("other_dispenser") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Dispensers=findToArray() if (!(Dispensers)) { print("Unable to find a dispenser close enough!") } if(Dispensers){ for(I=1,Dispensers:count()) {Dispensers[I, entity]:wirelink() Dispensers[I, entity]:link(Nodes[1, entity]) print(Dispensers[I, entity]:toString()+" link has been made") } } findExcludeClass("other_probe") findExcludeClass("other_dispenser") findIncludeClass("generator_energy_fusion") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Fusions=findToArray() if (!(Fusions)) { print("Unable to find a fusion close enough!") } if(Fusions){ for(I=1,Fusions:count()) { Fusions[I, entity]:wirelink() Fusions[I, entity]:link(Nodes[1, entity]) Fusion=Fusions[I, wirelink] print(Fusions[I, entity]:toString()+" link has been made") } } findExcludeClass("generator_energy_fusion") findIncludeClass("generator_gas_o2h_water") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) O2Hs=findToArray() if (!(O2Hs)) { print("Unable to find a h20 close enough!") } if(O2Hs){ for(I=1,O2Hs:count()) { O2Hs[I, entity]:wirelink() O2Hs[I, entity]:link(Nodes[1, entity]) O2H=O2Hs[I, wirelink] O2H["Multiplier",number]=200 O2H["Mute",number]=1 print(O2Hs[I, entity]:toString()+" link has been made") } } findExcludeClass("generator_gas_o2h_water") findIncludeClass("generator_liquid_water") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Waterpumps=findToArray() if (!(Waterpumps)) { print("Unable to find a core close enough!") } if(Waterpumps){ for(I=1,Waterpumps:count()) { Waterpumps[1, entity]:wirelink() Waterpumps[1, entity]:link(Nodes[1, entity]) Waterpump=Waterpumps[I, wirelink] Waterpump["Multiplier",number]=200 Waterpump["Mute",number]=1 print(Waterpumps[I, entity]:toString()+" link has been made") } } findExcludeClass("generator_liquid_water") findIncludeClass("generator_liquid_hvywater") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Steams=findToArray() if (!(Steams)) { print("Unable to find a core close enough!") } if(Steams){ timer("continue",2000) for(I=1,Steams:count()) { Steams[I, entity]:wirelink() Steams[I, entity]:link(Nodes[1, entity]) Steam=Steams[I, wirelink] Steam["Multiplier",number]=200 Steam["Mute",number]=1 print(Steams[I, entity]:toString()+" link has been made")} } } #if first have limited capacity so we need to continue it if(clk("continue")){ Players=players() O=owner() E=entity() for(I=1,Players:count()) { findExcludePlayerProps(Players[I,entity]) } findAllowPlayerProps(O) findExcludeClass("generator_liquid_hvywater") findIncludeClass("generator_energy_steam_turbine") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Waters=findToArray() if (!(Waters)) { print("Unable to find a core close enough!") } if(Waters){ for(I=1,Waters:count()) { Waters[I, entity]:wirelink() Waters[I, entity]:link(Nodes[1, entity]) Water=Waters[I, wirelink] Water["Multiplier",number]=200 Water["Mute",number]=1 print(Waters[I, entity]:toString()+" link has been made") } } findExcludeClass("generator_energy_steam_turbine") findIncludeClass("ls_core") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) LSCores=findToArray() if (!(LSCores)) { print("Unable to find a core close enough!") } if(LSCores){ for(I=1,LSCores:count()) { LSCores[1, entity]:wirelink() LSCores[1, entity]:link(Nodes[1, entity]) LSCore=LSCores[I, wirelink] print(LSCores[1, entity]:toString()+" link has been made") } } findExcludeClass("ls_core") findIncludeClass("storage_energy") findIncludeClass("storage_liquid_water") findIncludeClass("storage_gas") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Storages=findToArray() if (!(Storages)) { print("Unable to find a core close enough!") } if(Storages){ for(I=1,Storages:count()) { Storages[I, entity]:wirelink() Storages[I, entity]:link(Nodes[1, entity]) print(Storages[I, entity]:toString()+" link has been made") } } findExcludeClass("storage_energy") findExcludeClass("storage_liquid_water") findExcludeClass("storage_gas") findIncludeClass("generator_energy_solar") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) SolarPanels=findToArray() if (!(SolarPanels)) { print("Unable to find a core close enough!") } if(SolarPanels){ for(I=1,SolarPanels:count()) { SolarPanels[I, entity]:wirelink() SolarPanels[I, entity]:link(Nodes[1, entity]) print(SolarPanels[I, entity]:toString()+" link has been made") } } findExcludeClass("generator_energy_solar") findIncludeClass("base_climate_control") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Climates=findToArray() if (!(Storages)) { print("Unable to find a core close enough!") } if(Climates){ for(I=1,Climates:count()) { Climates[I, entity]:wirelink() Climates[I, entity]:link(Nodes[1, entity]) print(Climates[I, entity]:toString()+" link has been made") } Climate=Climates[1, wirelink] Climate["Radius",number]=6000 } findExcludeClass("base_climate_control") findIncludeClass("ship_core") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Cores=findToArray() if (!(Cores)) { print("Unable to find a core close enough!") } if(Cores){ for(I=1,Cores:count()) { Cores[I, entity]:wirelink() Cores[I, entity]:link(Nodes[1, entity]) print(Cores[I, entity]:toString()+" link has been made") } Core=Cores[1, wirelink] } findExcludeClass("ship_core") findIncludeClass("sc_shield_repair") findInSphere(E:pos(),5000) findSortByDistance(E:pos()) Repairs=findToArray() if (!(Repairs)) { print("Unable to find a repair close enough!") } if(Repairs){ for(I=1,Repairs:count()) { Repairs[I, entity]:wirelink() Repairs[I, entity]:link(Nodes[1, entity]) print(Repairs[I, entity]:toString()+" link has been made") } } stoptimer("continue") } # #if first finally ends # runOnChat(1) interval(1000) if (Cache["Water",number]<= Cache["Max Water",number] * 0.99 & Cache["Max Steam",number]>0 & Cache["Energy",number] >= Cache["Max Energy",number] *0.2) { for(I=1,Waters:count()){ Water=Waters[I, wirelink] Water["On",number]=1 } } if (Cache["Water",number]<= Cache["Max Water",number] * 0.99 & Cache["Energy",number] >= Cache["Max Energy",number] *0.02) { Waterpump["On",number]=1 } if (Cache["Water",number] >= Cache["Max Water",number] *0.99) { Waterpump["On",number]=0 for(I=1,Waters:count()){ Water=Waters[I, wirelink] Water["On",number]=0 } } if(Cache["Water",number] >= Cache["Max Water",number] *0.02){ if(Cache["Energy",number] <= Cache["Max Energy",number] * 0.50 | Core["Capacitor",number] <= Core["Max Capacitor",number] * 0.99) { for(I=1,Fusions:count()) { Fusion=Fusions[I, wirelink] Fusion["On",number]=1 } } } if (Core["Capacitor",number] >= Core["Max Capacitor",number] * 0.99 & Cache["Energy",number] >= Cache["Max Energy",number] * 0.50) { for(I=1,Fusions:count()) { Fusion=Fusions[I, wirelink] Fusion["On",number]=0 } } if(Cache["Water",number] >= Cache["Max Water",number] *0.3 & Cache["Energy",number] >= Cache["Max Energy",number] *0.98 || Cache["Hvy Water",number] < Cache["Max Hvy Water",number] *0.02){ if (Cache["Steam",number] <= Cache["Max Steam",number] * 0.95) { for(I=1,Steams:count()) { Steam=Steams[I, wirelink] Steam["On",number]=1 } } if (Cache["Steam",number] >= Cache["Max Steam",number] *0.99) { for(I=1,Steams:count()) { Steam=Steams[I, wirelink] Steam["On",number]=0 } } } if(Cache["Water",number] >= Cache["Max Water",number] *0.02 & Cache["Energy",number] >= Cache["Max Energy",number] *0.10){ if (Cache["Oxygen",number] <= Cache["Max Oxygen",number] * 0.91 || Cache["Hydrogen",number] <= Cache["Max Hydrogen",number] * 0.90) { for(I=1,O2Hs:count()) { O2H=O2Hs[I, wirelink] O2H["On",number]=1 } } if (Cache["Oxygen",number] >= Cache["Max Oxygen",number] *0.99 & Cache["Hydrogen",number] >= Cache["Max Hydrogen",number] *0.99) { for(I=1,O2Hs:count()) { O2H=O2Hs[I, wirelink] O2H["On",number]=0 } } } if(Cache["Energy",number] >= Cache["Max Energy",number] * 0.02){ AtmoProbe["On",number]=1 LSCore["On",number]=1 } else{ AtmoProbe["On",number]=0 LSCore["On",number]=0 } if(Core["Shield",number] <= Core["Max Shield",number] * 0.99){ for(I=1,Repairs:count()) { Repair=Repairs[I, wirelink] Repair["On",number]=1 } }else{ for(I=1,Repairs:count()) { Repair=Repairs[I, wirelink] Repair["On",number]=0 } }