Files
Aurora.3/code/__DEFINES/math_physics.dm
2024-02-29 18:30:04 +00:00

51 lines
2.3 KiB
Plaintext

/*#######################################################
LEGACY FILE, USE code\__DEFINES\maths.dm INSTEAD!
########################################################*/
// Math constants.
#define M_PI 3.14159
#define NUM_E 2.71828183
#define R_IDEAL_GAS_EQUATION 8.31 // kPa*L/(K*mol).
#define ONE_ATMOSPHERE 101.325 // kPa.
#define IDEAL_GAS_ENTROPY_CONSTANT 1164 // (mol^3 * s^3) / (kg^3 * L).
// Radiation constants.
#define STEFAN_BOLTZMANN_CONSTANT 5.6704e-8 // W/(m^2*K^4).
#define COSMIC_RADIATION_TEMPERATURE 3.15 // K.
#define AVERAGE_SOLAR_RADIATION 200 // W/m^2. Kind of arbitrary. Really this should depend on the sun position much like solars.
#define RADIATOR_OPTIMUM_PRESSURE 3771 // kPa at 20 C. This should be higher as gases aren't great conductors until they are dense. Used the critical pressure for air.
#define GAS_CRITICAL_TEMPERATURE 132.65 // K. The critical point temperature for air.
#define RADIATOR_EXPOSED_SURFACE_AREA_RATIO 0.04 // (3 cm + 100 cm * sin(3deg))/(2*(3+100 cm)). Unitless ratio.
#define HUMAN_EXPOSED_SURFACE_AREA 5.2 //m^2, surface area of 1.7m (H) x 0.46m (D) cylinder
/// 0.0 Degrees celsius, in Kelvin
#define T0C 273.15
/// 20.0 Degrees celsius, in Kelvin
#define T20C 293.15
/// -270.3 degrees celsius, in Kelvin
#define TCMB 2.7
#define QUANTIZE(variable) (round(variable,0.0001))
#define INFINITY 1.#INF
// A neat little helper to convert the value X, that's between imin and imax, into a value
// that's proportionally scaled and in range of omin and omax.
#define MAP(x, imin, imax, omin, omax) ((x - imin) * (omax - omin) / (imax - imin) + omin)
#define RAND_F(LOW, HIGH) (rand()*(HIGH-LOW) + LOW)
//time of day but automatically adjusts to the server going into the next day within the same round.
//for when you need a reliable time number that doesn't depend on byond time.
#define REALTIMEOFDAY (world.timeofday + (MIDNIGHT_ROLLOVER * MIDNIGHT_ROLLOVER_CHECK))
#define MIDNIGHT_ROLLOVER_CHECK ( rollovercheck_last_timeofday != world.timeofday ? update_midnight_rollover() : midnight_rollovers )
#define round_duration_in_ticks (round_start_time ? world.time - round_start_time : 0)
#define station_time_in_ticks (roundstart_hour HOURS + round_duration_in_ticks)
#define SIMPLE_SIGN(X) ((X) < 0 ? -1 : 1)