Merge pull request #974 from caelaislinn/master

releasing maplock for erthilo to merge antiqua changes.
This commit is contained in:
CIB
2012-05-05 02:47:35 -07:00
14 changed files with 3717 additions and 3179 deletions

View File

@@ -162,9 +162,11 @@
#define FILE_DIR "code/WorkInProgress" #define FILE_DIR "code/WorkInProgress"
#define FILE_DIR "code/WorkInProgress/Apples" #define FILE_DIR "code/WorkInProgress/Apples"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Jumper"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara" #define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Tajara"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/tajara_sprites"
#define FILE_DIR "code/WorkInProgress/Chinsky" #define FILE_DIR "code/WorkInProgress/Chinsky"
#define FILE_DIR "code/WorkInProgress/mapload" #define FILE_DIR "code/WorkInProgress/mapload"
#define FILE_DIR "code/WorkInProgress/Mini" #define FILE_DIR "code/WorkInProgress/Mini"

View File

@@ -22,6 +22,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
// //
var/obj/machinery/rust/core/owned_core var/obj/machinery/rust/core/owned_core
var/list/dormant_reactant_quantities = new var/list/dormant_reactant_quantities = new
luminosity = 1
// //
var/energy = 0 var/energy = 0
var/mega_energy = 0 var/mega_energy = 0

View File

@@ -84,12 +84,14 @@ max volume of plasma storeable by the field = the total volume of a number of ti
if(owned_field) if(owned_field)
owned_field.ChangeFieldStrength(field_strength) owned_field.ChangeFieldStrength(field_strength)
icon_state = "core1" icon_state = "core1"
luminosity = 1
return 1 return 1
proc/Shutdown() proc/Shutdown()
icon_state = "core0" icon_state = "core0"
on = 0 on = 0
del(owned_field) del(owned_field)
luminosity = 0
proc/AddParticles(var/name, var/quantity = 1) proc/AddParticles(var/name, var/quantity = 1)
if(owned_field) if(owned_field)
@@ -104,6 +106,9 @@ max volume of plasma storeable by the field = the total volume of a number of ti
Shutdown() Shutdown()
return return
// //
luminosity = round(owned_field.field_strength/10)
luminosity = max(luminosity,1)
//
if(stat & (NOPOWER|BROKEN)) if(stat & (NOPOWER|BROKEN))
Shutdown() Shutdown()

View File

@@ -9,7 +9,7 @@
New() New()
spawn(0) spawn(0)
core_generator = locate() in range(15,src) core_generator = locate() in world
attack_ai(mob/user) attack_ai(mob/user)
attack_hand(user) attack_hand(user)

View File

@@ -20,7 +20,7 @@
fuel_injectors.Add("SCRAM") fuel_injectors.Add("SCRAM")
fuel_injectors["SCRAM"] = new/list fuel_injectors["SCRAM"] = new/list
spawn(0) spawn(0)
for(var/obj/machinery/rust/fuel_injector/Injector in range(50,src)) for(var/obj/machinery/rust/fuel_injector/Injector in world)
if(Injector.stage in fuel_injectors) if(Injector.stage in fuel_injectors)
var/list/targetlist = fuel_injectors[Injector.stage] var/list/targetlist = fuel_injectors[Injector.stage]
targetlist.Add(Injector) targetlist.Add(Injector)

View File

@@ -44,7 +44,7 @@
return return
var/t = "<B>Gyrotron Remote Control Console</B><BR>" var/t = "<B>Gyrotron Remote Control Console</B><BR>"
t += "<hr>" t += "<hr>"
for(var/obj/machinery/rust/gyrotron/gyro in range(25)) for(var/obj/machinery/rust/gyrotron/gyro in world)
if(gyro.remoteenabled && gyro.on) if(gyro.remoteenabled && gyro.on)
t += "<font color=green>Gyrotron operational</font><br>" t += "<font color=green>Gyrotron operational</font><br>"
t += "Operational mode: <font color=blue>" t += "Operational mode: <font color=blue>"

View File

@@ -6,6 +6,7 @@
icon = 'effects.dmi' icon = 'effects.dmi'
icon_state = "energynet" icon_state = "energynet"
density = 0 density = 0
anchored = 1
var/obj/machinery/rust/em_field/parent var/obj/machinery/rust/em_field/parent
var/mysize = 0 var/mysize = 0

View File

@@ -61,12 +61,6 @@
//a lot of these variables are pretty hacked, so dont rely on the comments //a lot of these variables are pretty hacked, so dont rely on the comments
/obj/machinery/power/supermatter/process() /obj/machinery/power/supermatter/process()
var/datum/gas_mixture/env = loc.return_air()
//Remove gas from surrounding area
var/transfer_moles = gasefficency * env.total_moles()
var/datum/gas_mixture/removed = env.remove(transfer_moles)
//core can no longer spontaneously explode //core can no longer spontaneously explode
/* /*
previousdet = det previousdet = det
@@ -111,15 +105,24 @@
#define REACTION_POWER_MODIFIER 0.5 //Higher == more overall power #define REACTION_POWER_MODIFIER 0.5 //Higher == more overall power
*/ */
//100% oxygen atmosphere = 100% plasma production var/datum/gas_mixture/env = loc.return_air()
//100% nitrogen atmosphere = 0% plasma production
//anything else is halfway in between; an atmosphere with no nitrogen or oxygen will still be at 50% (but steadily rise as more oxygen is made) //nothing can happen in a vacuum
var/total_moles = removed.total_moles() var/datum/gas_mixture/removed = env
var/retardation_factor = 0.5 var/retardation_factor = 0.5
if(total_moles) if(env.total_moles())
retardation_factor += removed.oxygen / (total_moles * 2) - removed.nitrogen / (total_moles * 2) //Remove gas from surrounding area
else var/transfer_moles = gasefficency * env.total_moles()
retardation_factor -= 0.25 removed = env.remove(transfer_moles)
//100% oxygen atmosphere = 100% plasma production
//100% nitrogen atmosphere = 0% plasma production
//anything else is halfway in between; an atmosphere with no nitrogen or oxygen will still be at 50% (but steadily rise as more oxygen is made)
var/total_moles = removed.total_moles()
if(total_moles)
retardation_factor += removed.oxygen / (total_moles * 2) - removed.nitrogen / (total_moles * 2)
else
retardation_factor -= 0.25
var/device_energy = mega_energy * REACTION_POWER_MODIFIER //device energy is provided by the zero point lasers var/device_energy = mega_energy * REACTION_POWER_MODIFIER //device energy is provided by the zero point lasers
device_energy *= removed.temperature / T0C //environmental heat directly affects device energy device_energy *= removed.temperature / T0C //environmental heat directly affects device energy

View File

@@ -339,7 +339,7 @@
layer = 2.6 // a bit above wires layer = 2.6 // a bit above wires
/obj/machinery/power/generator /obj/machinery/power/generator
name = "thermoelectric generator" name = "thermoelectric generator mark I"
desc = "It's a high efficiency thermoelectric generator." desc = "It's a high efficiency thermoelectric generator."
icon_state = "teg" icon_state = "teg"
anchored = 1 anchored = 1
@@ -352,7 +352,7 @@
var/lastgenlev = -1 var/lastgenlev = -1
/obj/machinery/power/generator_type2 /obj/machinery/power/generator_type2
name = "thermoelectric generator" name = "thermoelectric generator mark II"
desc = "It's a high efficiency thermoelectric generator." desc = "It's a high efficiency thermoelectric generator."
icon_state = "teg" icon_state = "teg"
anchored = 1 anchored = 1

View File

@@ -16,7 +16,7 @@
//only load blast doors for map-defined departments for the moment //only load blast doors for map-defined departments for the moment
switch(department) switch(department)
if("Engineering") if("SinguloEngineering-Antiqua")
connectedDoorIds.Add("Engineering Primary Access") connectedDoorIds.Add("Engineering Primary Access")
connectedDoorIds.Add("Engineering Secondary Access") connectedDoorIds.Add("Engineering Secondary Access")
connectedDoorIds.Add("Fore Maintenance Access") connectedDoorIds.Add("Fore Maintenance Access")
@@ -28,7 +28,13 @@
connectedDoorIds.Add("Atmospheric Storage Rad Shielding") connectedDoorIds.Add("Atmospheric Storage Rad Shielding")
connectedDoorIds.Add("Construction Storage Rad Shielding") connectedDoorIds.Add("Construction Storage Rad Shielding")
connectedDoorIds.Add("Engineering Secure Storage") connectedDoorIds.Add("Engineering Secure Storage")
if("Medbay") if("RustEngineering-Antiqua")
connectedDoorIds.Add("Port vessel entry")
connectedDoorIds.Add("Starboard vessel entry")
connectedDoorIds.Add("Central aft shell access")
connectedDoorIds.Add("Port aft shell access")
connectedDoorIds.Add("Starboard aft shell access")
if("Medbay-Exodus")
connectedDoorIds.Add("Genetics Outer Shutters") connectedDoorIds.Add("Genetics Outer Shutters")
connectedDoorIds.Add("Genetics Inner Shutters") connectedDoorIds.Add("Genetics Inner Shutters")
connectedDoorIds.Add("Chemistry Outer Shutters") connectedDoorIds.Add("Chemistry Outer Shutters")

View File

@@ -1,4 +1,7 @@
// dummy generator object for testing // thermo electric generator powered by twinned gas turbines
// more realistic than type 2, and also cooler
#define ENERGY_TRANSFER_FACTOR 10
#define POWER_PRODUCTION_FACTOR 1.25
/*/obj/machinery/power/generator/verb/set_amount(var/g as num) /*/obj/machinery/power/generator/verb/set_amount(var/g as num)
set src in view(1) set src in view(1)
@@ -35,12 +38,19 @@
if(!circ1 || !circ2) if(!circ1 || !circ2)
return return
var/datum/gas_mixture/hot_air = circ1.return_transfer_air() var/datum/gas_mixture/air1 = circ1.return_transfer_air()
var/datum/gas_mixture/cold_air = circ2.return_transfer_air() var/datum/gas_mixture/air2 = circ2.return_transfer_air()
//
var/datum/gas_mixture/hot_air = air1
var/datum/gas_mixture/cold_air = air2
lastgen = 0 lastgen = 0
if(cold_air && hot_air) if(hot_air && cold_air)
if(hot_air.temperature < cold_air.temperature)
hot_air = air2
cold_air = air1
var/cold_air_heat_capacity = cold_air.heat_capacity() var/cold_air_heat_capacity = cold_air.heat_capacity()
var/hot_air_heat_capacity = hot_air.heat_capacity() var/hot_air_heat_capacity = hot_air.heat_capacity()
@@ -52,24 +62,25 @@
var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity)
var/heat = energy_transfer*(1-efficiency) var/heat = energy_transfer*(1-efficiency)
lastgen = energy_transfer*efficiency lastgen = POWER_PRODUCTION_FACTOR * energy_transfer*efficiency
hot_air.temperature = hot_air.temperature - energy_transfer/hot_air_heat_capacity //ENERGY_TRANSFER_FACTOR to beef up the amount of heat passed over
cold_air.temperature = cold_air.temperature + heat/cold_air_heat_capacity hot_air.temperature -= energy_transfer/hot_air_heat_capacity
cold_air.temperature += heat/cold_air_heat_capacity
world << "POWER: [lastgen] W generated at [efficiency*100]% efficiency and sinks sizes [cold_air_heat_capacity], [hot_air_heat_capacity]" //world << "POWER: [lastgen] W generated at [efficiency*100]% efficiency and sinks sizes [cold_air_heat_capacity], [hot_air_heat_capacity]"
add_avail(lastgen) add_avail(lastgen)
// update icon overlays only if displayed level has changed // update icon overlays only if displayed level has changed
if(hot_air) if(air1)
circ1.air2.merge(hot_air) circ1.air2.merge(air1)
if(cold_air) if(air2)
circ2.air2.merge(cold_air) circ2.air2.merge(air2)
var/genlev = max(0, min( round(11*lastgen / 100000), 11)) var/genlev = max(0, min( round(11*lastgen / 250000), 11))
if(genlev != lastgenlev) if(genlev != lastgenlev)
lastgenlev = genlev lastgenlev = genlev
updateicon() updateicon()
@@ -97,17 +108,27 @@
user.machine = src user.machine = src
var/obj/machinery/atmospherics/binary/circulator/hot_circ = circ1
var/obj/machinery/atmospherics/binary/circulator/cold_circ = circ2
if(hot_circ.air1.temperature < cold_circ.air1.temperature)
hot_circ = circ2
cold_circ = circ1
var/t = "<PRE><B>Thermo-Electric Generator</B><HR>" var/t = "<PRE><B>Thermo-Electric Generator</B><HR>"
t += "Output : [round(lastgen)] W<BR><BR>" t += "Output : [round(lastgen)] W<BR><BR>"
t += "<B>Cold loop</B><BR>" t += "<B>Cold loop</B><BR>"
t += "Temperature Inlet: [round(circ1.air1.temperature, 0.1)] K Outlet: [round(circ1.air2.temperature, 0.1)] K<BR>" t += "Temperature Inlet: [round(cold_circ.air1.temperature, 0.1)] K<BR>"
t += "Pressure Inlet: [round(circ1.air1.return_pressure(), 0.1)] kPa Outlet: [round(circ1.air2.return_pressure(), 0.1)] kPa<BR>" t += "Temperature Outlet: [round(cold_circ.air2.temperature, 0.1)] K<BR>"
t += "Pressure Inlet: [round(cold_circ.air1.return_pressure(), 0.1)] kPa<BR>"
t += "Pressure Outlet: [round(cold_circ.air2.return_pressure(), 0.1)] kPa<BR>"
t += "<B>Hot loop</B><BR>" t += "<B>Hot loop</B><BR>"
t += "Temperature Inlet: [round(circ2.air1.temperature, 0.1)] K Outlet: [round(circ2.air2.temperature, 0.1)] K<BR>" t += "Temperature Inlet: [round(hot_circ.air1.temperature, 0.1)] K<BR>"
t += "Pressure Inlet: [round(circ2.air1.return_pressure(), 0.1)] kPa Outlet: [round(circ2.air2.return_pressure(), 0.1)] kPa<BR>" t += "Temperature Outlet: [round(hot_circ.air2.temperature, 0.1)] K<BR>"
t += "Pressure Inlet: [round(hot_circ.air1.return_pressure(), 0.1)] kPa<BR>"
t += "Pressure Outlet: [round(hot_circ.air2.return_pressure(), 0.1)] kPa<BR>"
t += "<BR><HR><A href='?src=\ref[src];close=1'>Close</A>" t += "<BR><HR><A href='?src=\ref[src];close=1'>Close</A>"

View File

@@ -1,3 +1,5 @@
//luna's TEG - simpler and less realistic than type 1
/obj/machinery/power/generator_type2/New() /obj/machinery/power/generator_type2/New()
..() ..()
@@ -52,8 +54,9 @@
var/heat = energy_transfer*(1-efficiency) var/heat = energy_transfer*(1-efficiency)
lastgen = energy_transfer*efficiency lastgen = energy_transfer*efficiency
hot_air.temperature = hot_air.temperature - energy_transfer/hot_air_heat_capacity //ENERGY_TRANSFER_FACTOR to beef up the amount of heat passed over
cold_air.temperature = cold_air.temperature + heat/cold_air_heat_capacity hot_air.temperature = ENERGY_TRANSFER_FACTOR*hot_air.temperature - energy_transfer/hot_air_heat_capacity
cold_air.temperature = ENERGY_TRANSFER_FACTOR*cold_air.temperature + heat/cold_air_heat_capacity
if(input1.network) if(input1.network)
input1.network.update = 1 input1.network.update = 1
@@ -64,7 +67,7 @@
add_avail(lastgen/5) add_avail(lastgen/5)
// update icon overlays only if displayed level has changed // update icon overlays only if displayed level has changed
var/genlev = max(0, min( round(11*lastgen / 500000), 11)) var/genlev = max(0, min( round(11*lastgen / 100000), 11))
if(genlev != lastgenlev) if(genlev != lastgenlev)
lastgenlev = genlev lastgenlev = genlev
updateicon() updateicon()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

After

Width:  |  Height:  |  Size: 756 B

File diff suppressed because it is too large Load Diff