151 lines
5.3 KiB
Go
151 lines
5.3 KiB
Go
package itemprops
|
||
|
||
import "github.com/shopspring/decimal"
|
||
|
||
//MedicalSystem организм
|
||
// Humanoid
|
||
// Circuits
|
||
// Intake
|
||
//
|
||
// Breathe: Vessel: Air intake >> mouth/nose -> trachea -> lungs
|
||
// Vessel: Blood >> heart -> lungs -> brain -> heart
|
||
// Eat:
|
||
// Vessel: food >> mouth -> jaws
|
||
// Vessel: pulp >> esophagus -> stomach
|
||
// Congestion:
|
||
// Vessel: Blood >> heart -> guts -> system -> liver -> heart
|
||
// Vessel: pulp >> stomach -> guts -> output
|
||
// Vessel: bile >> liver -> stomach -> guts
|
||
// Fast Congestion
|
||
// Vessel: liquid >> stomach -> guts -> kidney -> bladder -> pulp output
|
||
// Vessel: Blood >> heart -> guts -> system -> kidney -> heart
|
||
// Blood сirculation:
|
||
// Vessel: blood >> heart -> system -> spleen -> heart
|
||
// -> brain -> heart
|
||
// Vision:
|
||
// Vessel: Nerve signal >> eye -> brain
|
||
// Smell:
|
||
// Vessel: Air intake >> nose
|
||
// Vessel: Nerve signal >> nose -> brain
|
||
// Hearing:
|
||
// Vessel: Air pressure >> ear
|
||
// Vessel: Nerve signal >> ear -> brain
|
||
// Touching:
|
||
// Vessel: Phys pressure/Temperature/Solvent >> skin -> nerve tissue -> brain
|
||
// Motion Sense:
|
||
// Vessel: Air pressure >> ear/nose -> inner ear -> brain [feeling fast-moving items]
|
||
// Motion:
|
||
// Vessel: Gravity >> inner ear -> brain [equilibrium]
|
||
// Vessel: Nerve signal >> brain -> major nerve -> [...muscle -> tendon -> bone/joint] -> nerve tissue -> brain
|
||
// Structural:
|
||
// Vessel: Nerve signal >> brain -> spinal brain -> [...muscle] -> nerve tissue -> brain
|
||
// Psychic:
|
||
// Vessel: Nerve signal >> brain -> spinal brain -> brain
|
||
// Consciousness:
|
||
// Vessel: Nerve signal >> brain -> brain
|
||
// Misc
|
||
// Hand Grip ???:
|
||
// Vessel: Nerve signal >> palm -> fingers with off-thumb
|
||
// Stance
|
||
// Body structure:
|
||
// BasePart -> chest -> spine -> joint -> head
|
||
// -> spine -> lowerbody
|
||
// -> [left] joint -> shoulder -> joint -> arm -> joint -> palm -> 5 x finger
|
||
// -> [right] joint -> shoulder -> joint -> arm -> joint -> palm -> 5 x finger
|
||
// -> lowerbody
|
||
// -> [left] joint -> leg -> joint -> hip -> joint -> foot -> 5 x finger
|
||
// -> [right] joint -> leg -> joint -> hip -> joint -> foot -> 5 x finger
|
||
// -> head -> joint -> jaw
|
||
|
||
// MedicalSystem Организм
|
||
type MedicalSystem struct {
|
||
BasePart BodyPart
|
||
}
|
||
|
||
// MedicalCircuit Система обращения
|
||
type MedicalCircuit struct {
|
||
Provides MedicalAbility
|
||
DependsOn Organ
|
||
Vessel MedicalVessel
|
||
Contains []Organ
|
||
}
|
||
|
||
// MedicalVessel кровь, желчь, пульпа, воздух, еда
|
||
type MedicalVessel struct {
|
||
Name string
|
||
Material
|
||
Pressure decimal.Decimal //Pressure давление, kg / m3
|
||
}
|
||
|
||
// BodyPart часть тела
|
||
type BodyPart struct {
|
||
LayerExtra MedicalMaterial
|
||
LayerOuter MedicalMaterial
|
||
LayerMiddle MedicalMaterial
|
||
LayerInner MedicalMaterial
|
||
|
||
Joints []Joint
|
||
Contains []InnerOrgan
|
||
Exposes []OuterOrgan
|
||
}
|
||
|
||
// Joint суставы, к чему и что крепится
|
||
type Joint struct {
|
||
Name string
|
||
ConnectsFrom BodyPart
|
||
ConnectsTo BodyPart
|
||
}
|
||
|
||
type Organ struct {
|
||
Name string
|
||
Material
|
||
}
|
||
|
||
// InnerOrgan ливер, селезёнка, сердце, кишки итп
|
||
type InnerOrgan struct {
|
||
Organ
|
||
DependsOn MedicalCircuit
|
||
BelongsTo MedicalCircuit
|
||
}
|
||
|
||
// OuterOrgan глаза, уши, волосы, когти итп
|
||
type OuterOrgan struct {
|
||
Organ
|
||
DependsOn MedicalCircuit
|
||
BelongsTo MedicalCircuit
|
||
}
|
||
|
||
// слой части тела - кожа/чешуя/роговые пластины/хитиновый панцирь, жир, мускулы, кости
|
||
type MedicalMaterial struct {
|
||
Name string
|
||
Material
|
||
MedicalSystemFlags
|
||
}
|
||
|
||
// @todo заменить на Medical Circuit
|
||
type MedicalSystemFlags struct {
|
||
//Structural является ли опорным аппаратом
|
||
Structural bool
|
||
//Содежит ли кровь/ихор/
|
||
MajorVeins bool //вход на мотор, сломаешь - быстро выйдет из строя если будет двигаться
|
||
MajorArteria bool //выход, то же самое + высокое давление
|
||
|
||
Veins bool //вход на мотор
|
||
Arteria bool //выход из мотора, высокое давление
|
||
|
||
MajorNerve bool //повредишь - ниже по суставам не работает
|
||
NerveTissue bool //повредишь - ниже по суставамс болит
|
||
|
||
OxygenTube bool //трахея
|
||
OxygenPump bool //лёгкое
|
||
|
||
BloodPump bool //мотор
|
||
|
||
ContainsCongestionLiquid bool
|
||
|
||
IsMainCongestionPump bool
|
||
}
|
||
|
||
// MedicalAbility спсобность есть, стоять, не терять равновесие, дышать, выздоравливать, лечить свои органы, видеть итп
|
||
type MedicalAbility string
|