Serialization v3 content PR (#3491)

* serv3 in shared pt 1

* beginning of deepclone api

* progress in implementing ideepclone & serv3 in content

* adds target

* its cant hurt you it cant hurt you

* more changes to content.server

* adds dataclasses

* almost there

* renamed & edited entry

* finishes refactoring content to use serv3

* gasmixture runtimes, next: reagentunit

* fucin hell that was an annoying one

* adds flags

* fixes some yaml errors

* removes comment

* fixes generic components for now

* removes todo
actually clones values my god paul
fixes bug involving resolving custom data classes from other proj
renames dataclass
fixes spritecomp
adds WithFormat.Constants support

* adds deepclone to ResistanceSet

* adds a bunch of deepclone implementations
adds a deepclone analyzer (TODO)
adds a deep clone fallback for classes & structs

* fixes a bunch of runtimes

* adds deepclone to entityuid

* adds generator to sln

* gets rid of warnings

* fixes

* argh

* componentdata refactors

* more deepclone impl

* heck me i reworked all of content deepclone

* renames custom dataclasstarget

* misc

* reworks prototypes

* deepclone nuke

* renamed customdataclass attribute

* fixes everything

* misc fixed

* the killcommit

* getting there

* changed yamlfieldattribute namespace

* adds back iselfserialize

* renames everything to data(field/definition)

* ouch

* Fix most errors on content

* Fix more errors in content

* Fix some components

* work on tests

* fixes some customdataclasses

* fuggin shit

* yes

* yeas

* Remove data classes

* Data field naming fixes

* arg

* Git resetti RobustToolbox

* Merge fixes

* General fixes

* Fix startup serialization errors

* Fix DamageContainerPrototype when supported classes or types are null

* Implement construction graph step type serializer

* Fix up construction serialization

* Fix up construction serialization part 2

* Fix null list in technology database component

* Fix body serialization

* Fix entity storage serialization

* Fix actions serialization

* Fix AI serialization

* Fix reaction serialization

* Fix body serialization

* Fix grid atmosphere serialization

* Rename IServ3Manager to ISerializationManager

* Convert every non generic serializer to the new format, general fixes

* Serialization and body system fix

* pushinheritance fix

* Update all prototypes to have a parent and have consistent id/parent properties

* Merge fixes

* smh my head

* cuddling slaps

* Content commit for engine PR

* stuff

* more fixes

* argh

* yes even you are fixed

* changelog fixes

* fixes seeds

* argh

* Test fixes

* Add writing for alert order prototype

* Fix alert order writing

* FIX

* its been alot ok

* Fix the rest of the visualizers

* Fix server alerts component tests

* Fix alert prototype tests not using the read value

* Fix alert prototype tests initializing serialization multiple times

* THIS IS AN AMERICAN CODEBASE GOD BLESS THE USA

* Add ImplicitDataDefinitionForInheritors to IMechanismBehavior
Fixes the behaviors not being found

* Fix NRE in strap component
Good night to the 1 buckle optimization

* Fix clothing component slot flags serialization tag

* Fix body component in all components test

* Merge fixes

* ffs

* Make construction graph prototype use serialization hooks

* human yaml linted

* a

* Do the thing for construction

* stuff

* a

* monke see yaml linter

* LINT HARDER

* Remove redundant todo

* yes

* Add skip hook argument to readers and copiers

* we gamin

* test/datafield fixes

* adds more verbose validation

* moves linter to action

* Improve construction graph step type serializer error message

* Fix ammo box component NRE

* gamin

* some updates to the linter

* yes

* removes that test

* misc fixes

* array fix
priority fix
misc fixes

* adds proper info the validation

* adds alwaysrelevant usa

* Make yaml linter take half as long to run (~50% less)

* Make yaml linter 5 times faster (~80% less execution time)

* based vera being based

* fixes mapsaving

* warning cleanup & moves surpressor

* removes old msbuild targets

* Revert "Make yaml linter 5 times faster (~80% less execution time)"

This reverts commit 3e6091359a26252c3e98828199553de668031c63.

* Add -nowarn to yaml linter run configuration

* Improve yaml linter message feedback

* Make dependencies an argument instead of a property on the serialization manager

* yamllinting slaps

* Clean up type serializers

* Move yaml linter code to its own method

* Fix yaml errors

* Change yaml linter action name and remove -nowarn

* yaml linter please shut

* Git resetti robust toolbox

Co-authored-by: Paul <ritter.paul1+git@googlemail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
This commit is contained in:
Paul Ritter
2021-03-05 01:08:38 +01:00
committed by GitHub
parent 05d4d9692c
commit 5c50b1f6ed
545 changed files with 4547 additions and 6650 deletions

View File

@@ -22,6 +22,7 @@
sprite: Clothing/OuterClothing/Hardsuits/capspace.rsi
- type: Clothing
sprite: Clothing/OuterClothing/Hardsuits/capspace.rsi
- type: PressureProtection
highPressureMultiplier: 0.5
lowPressureMultiplier: 100

View File

@@ -36,10 +36,7 @@
max: 1
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Occluder
sizeX: 32
sizeY: 32
- type: entity
id: Bookshelf0

View File

@@ -74,4 +74,3 @@
- type: PointLight
radius: 2
color: "#2cb2e8"
power: 0.25

View File

@@ -1,7 +1,7 @@
- type: entity
id: Rack
name: rack
desription: "A rack for storing things on."
description: "A rack for storing things on."
placement:
mode: SnapgridCenter
components:

View File

@@ -39,10 +39,11 @@
visuals:
- type: GasCanisterVisualizer
stateConnected: can-connector
stateO0: can-o0
stateO1: can-o1
stateO2: can-o2
stateO3: can-o3
pressureStates:
- can-o0
- can-o1
- can-o2
- can-o3
- type: UserInterface
interfaces:
- key: enum.GasCanisterUiKey.Key

View File

@@ -12,7 +12,6 @@
- type: CargoConsole
- type: CargoOrderDatabase
- type: GalacticMarket
static: true
products:
- cargo.emergencyexplosive
- cargo.emergencyfire

View File

@@ -33,7 +33,7 @@
parent: WireBase
id: HVWire
name: HV Wire
decription: "An orange high voltage power cable."
description: "An orange high voltage power cable."
components:
- type: Sprite
sprite: Constructible/Power/Wires/hv_cable.rsi

View File

@@ -18,7 +18,6 @@
- Impassable
- MobImpassable
- VaultImpassable
IsScrapingFloor: true
- type: SnapGrid
offset: Center
- type: Pullable

View File

@@ -5,9 +5,10 @@
parent: BulletBase
components:
- type: Sprite
sprite: Constructible/Specific/Engines/PA/particle.rsi
state: particle0
shader: unshaded
layers:
- sprite: Constructible/Specific/Engines/PA/particle.rsi
state: particle0
shader: unshaded
- type: Projectile
delete_on_collide: false
soundHit: /Audio/Weapons/Guns/Hits/bullet_hit.ogg

View File

@@ -49,10 +49,11 @@
- type: Appearance
visuals:
- type: GravityGeneratorVisualizer
broken: "broken"
unpowered: "off"
off: "off"
on: "on"
spritemap:
broken: "broken"
unpowered: "off"
off: "off"
on: "on"
placement:
mode: AlignTileAny

View File

@@ -11,8 +11,6 @@
visuals:
- type: SmokeVisualizer
- type: Occluder
sizeX: 32
sizeY: 32
- type: SnapGrid
offset: Center
- type: SmokeSolutionAreaEffect

View File

@@ -4,7 +4,6 @@
parent: BaseHumanMob_Content
id: HumanMob_PathDummy
description: A miserable pile of secrets.
drawdepth: Mobs
suffix: AI
components:
- type: UtilityAI

View File

@@ -2,7 +2,6 @@
save: false
abstract: true
id: SimpleMobBase
drawdepth: Mobs
suffix: AI
components:
- type: Tag

View File

@@ -4,7 +4,6 @@
parent: BaseHumanMob_Content
id: HumanMob_Content
description: A miserable pile of secrets.
drawdepth: Mobs
components:
- type: Mind
showExamineInfo: true

View File

@@ -4,7 +4,6 @@
parent: BaseSlimeMob_Content
id: SlimeMob_Content
description: A miserable pile of slime
drawdepth: Mobs
components:
- type: Mind
showExamineInfo: true

View File

@@ -4,7 +4,6 @@
name: Urist McHands
id: BaseHumanMob_Content
description: A miserable pile of secrets.
drawdepth: Mobs
abstract: true
components:
- type: Tag

View File

@@ -5,7 +5,6 @@
name: Slime Person
id: BaseSlimeMob_Content
description: A miserable pile of slime.
drawdepth: Mobs
abstract: true
components:
- type: Tag

View File

@@ -13,7 +13,6 @@
state: cigpapers
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigpapers
- type: entity
id: PaperRolling
@@ -30,7 +29,6 @@
state: cigpaper
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigpaper
- type: entity
id: CigaretteFilter
@@ -47,4 +45,3 @@
state: cigfilter
- type: Item
sprite: Objects/Consumable/Smokeables/Cigarettes/paper.rsi
state: cigfilter

View File

@@ -56,7 +56,6 @@
- type: Sprite
sprite: Objects/Consumable/Drinks/glass_clear.rsi
- type: SolutionContainer
fillingState: glass
maxVol: 50
- type: SolutionTransfer
transferAmount: 5

View File

@@ -53,7 +53,6 @@
reagents:
- ReagentId: chem.Nutriment
Quantity: 4
trash: TrashSnackBowl
- type: Sprite
sprite: Objects/Consumable/Food/aesirsalad.rsi
@@ -776,7 +775,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/donut2.rsi
- type: Item
sprite: Objects/Consumable/Food/donut2.rsi.rsi
sprite: Objects/Consumable/Food/donut2.rsi
- type: entity
parent: FoodBase
@@ -792,7 +791,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/egg-blue.rsi
- type: Item
sprite: Objects/Consumable/Food/egg-blue.rsi.rsi
sprite: Objects/Consumable/Food/egg-blue.rsi
- type: entity
parent: FoodBase
@@ -808,7 +807,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/egg-green.rsi
- type: Item
sprite: Objects/Consumable/Food/egg-green.rsi.rsi
sprite: Objects/Consumable/Food/egg-green.rsi
- type: entity
parent: FoodBase
@@ -824,7 +823,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/egg-mime.rsi
- type: Item
sprite: Objects/Consumable/Food/egg-mime.rsi.rsi
sprite: Objects/Consumable/Food/egg-mime.rsi
- type: entity
parent: FoodBase
@@ -840,7 +839,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/egg-orange.rsi
- type: Item
sprite: Objects/Consumable/Food/egg-orange.rsi.rsi
sprite: Objects/Consumable/Food/egg-orange.rsi
- type: entity
parent: FoodBase
@@ -856,7 +855,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/egg-purple.rsi
- type: Item
sprite: Objects/Consumable/Food/egg-purple.rsi.rsi
sprite: Objects/Consumable/Food/egg-purple.rsi
- type: entity
parent: FoodBase
@@ -872,7 +871,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/egg-rainbow.rsi
- type: Item
sprite: Objects/Consumable/Food/egg-rainbow.rsi.rsi
sprite: Objects/Consumable/Food/egg-rainbow.rsi
- type: entity
parent: FoodBase
@@ -888,8 +887,7 @@
- type: Sprite
sprite: Objects/Consumable/Food/egg-red.rsi
- type: Item
sprite: Objects/Consumable/Food/egg-red.rsi.rsi
sprite: Objects/Consumable/Food/egg-red.rsi
- type: entity
parent: FoodBase
@@ -1941,7 +1939,6 @@
- type: Food
trash: TrashPopcorn
- type: SolutionContainer
transfer_amount: 1
contents:
reagents:
- ReagentId: chem.Nutriment
@@ -2173,7 +2170,6 @@
reagents:
- ReagentId: chem.Nutriment
Quantity: 4
trash: TrashSOSJerky
- type: Sprite
sprite: Objects/Consumable/Food/sosjerky.rsi
- type: Item

View File

@@ -12,7 +12,7 @@
- key: enum.InstrumentUiKey.Key
type: InstrumentBoundUserInterface
- type: Item
Size: 24
size: 24
- type: entity
name: synthesizer

View File

@@ -15,7 +15,6 @@
sprite: Objects/Specific/Chemistry/beakers.rsi
HeldPrefix: beaker
- type: SolutionContainer
fillingState: beaker
maxVol: 50
caps: OpenContainer, FitsInDispenser # can add and remove solutions and fits in the chemmaster.
- type: SolutionTransfer
@@ -35,7 +34,6 @@
- type: Item
HeldPrefix: beaker
- type: SolutionContainer
fillingState: beakerlarge
maxVol: 100
caps: OpenContainer, FitsInDispenser
- type: SolutionTransfer
@@ -54,8 +52,6 @@
sprite: Objects/Specific/Chemistry/dropper.rsi
state: dropper
- type: SolutionContainer
fillingState: dropper
fillingSteps: 2
maxVol: 5
- type: SolutionTransfer
transferAmount: 5.0
@@ -71,8 +67,6 @@
sprite: Objects/Specific/Chemistry/syringe.rsi
state: 0
- type: SolutionContainer
fillingState: syringe
fillingSteps: 5
maxVol: 15
- type: Injector
injectOnly: false

View File

@@ -7,6 +7,7 @@
- type: Ammo
caliber: Shotgun
ammoSpread: 40
projectilesFired: 6
soundCollectionEject: ShellEject
- type: Sprite
netsync: false
@@ -53,7 +54,6 @@
sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi
- type: Ammo
projectile: PelletShotgun
projectilesFired: 6
- type: entity
id: ShellShotgunFlash
@@ -64,7 +64,6 @@
sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_flash.rsi
- type: Ammo
projectile: PelletShotgunFlash
projectilesFired: 6
- type: entity
id: ShellShotgunIncendiary
@@ -75,7 +74,6 @@
sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_incendiary.rsi
- type: Ammo
projectile: PelletShotgun
projectilesFired: 6
- type: entity
id: ShellShotgunPractice
@@ -86,7 +84,6 @@
sprite: Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell_practice.rsi
- type: Ammo
projectile: PelletShotgun
projectilesFired: 6
- type: entity
id: ShellTranquilizer

View File

@@ -22,7 +22,7 @@
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: foambox
- type: entity
id: BoxCartridgeCap
name: "cap gun cartridge box"
@@ -32,5 +32,5 @@
capacity: 20
fillPrototype: CartridgeCap
- type: Sprite
sprite: Objects\Storage\boxes.rsi
sprite: Objects/Storage/boxes.rsi
state: box

View File

@@ -9,7 +9,7 @@
- type: Sprite
netsync: false
directional: true
sprite: Objects\Weapons\Guns\Ammunition\Casings\ammo_casing.rsi
sprite: Objects/Weapons/Guns/Ammunition/Casings/ammo_casing.rsi
layers:
- state: base
map: ["enum.AmmoVisualLayers.Base"]
@@ -21,4 +21,4 @@
parent: CartridgeCapBase
components:
- type: Ammo
projectile: BulletCap
projectile: BulletCap

View File

@@ -107,7 +107,7 @@
angleDecay: 45
powerCellPrototype: PowerCellSmallSuper
powerCellRemovable: true
base_fire_cost: 600
fireCost: 600
ammoPrototype: XrayLaser
soundGunshot: /Audio/Weapons/Guns/Gunshots/laser3.ogg
- type: Appearance

View File

@@ -11,7 +11,6 @@
state: icon
- type: Item
size: 24
state: icon
- type: MagazineBarrel
currentSelector: Automatic
allSelectors:

View File

@@ -9,7 +9,6 @@
netsync: false
- type: Item
size: 24
state: icon
- type: entity
name: china lake

View File

@@ -18,7 +18,6 @@
state: icon
- type: Item
size: 12
state: icon
- type: MagazineBarrel
caliber: Pistol
magazineTypes:
@@ -155,7 +154,6 @@
- Single
magazineTypes:
- Pistol
capacity: 1
fireRate: 8
minAngle: 10
maxAngle: 60

View File

@@ -13,7 +13,6 @@
state: bullet
- type: Physics
anchored: false
edgeslide: false
hard: false
shapes:
- !type:PhysShapeAabb
@@ -98,7 +97,7 @@
shader: unshaded
- type: Physics
anchored: false
edgeslide: false
hard: false
shapes:
- !type:PhysShapeAabb
@@ -119,7 +118,7 @@
state: frag
- type: ExplosiveProjectile
- type: Projectile
deleteOnCollide: false
delete_on_collide: false
- type: Explosive
devastationRange: 1
heavyImpactRange: 2
@@ -141,7 +140,7 @@
sprite: Objects/Weapons/Guns/Projectiles/grenade.rsi
state: grenade
- type: Projectile
deleteOnCollide: false
delete_on_collide: false
soundHit: /Audio/Effects/gen_hit.ogg
- type: StunnableProjectile
paralyzeAmount: 8
@@ -158,7 +157,7 @@
state: grenade
- type: ExplosiveProjectile
- type: Projectile
deleteOnCollide: false
delete_on_collide: false
- type: Explosive
devastationRange: 1
heavyImpactRange: 2
@@ -176,7 +175,7 @@
sprite: Objects/Weapons/Guns/Projectiles/grenade.rsi
state: grenade
- type: Projectile
deleteOnCollide: false
delete_on_collide: false
soundHit: /Audio/Effects/flash_bang.ogg
- type: FlashProjectile
range: 7
@@ -194,7 +193,7 @@
state: grenade
- type: ExplosiveProjectile
- type: Projectile
deleteOnCollide: false
delete_on_collide: false
- type: Explosive
devastationRange: 0
heavyImpactRange: 1
@@ -212,7 +211,7 @@
sprite: Objects/Fun/toys.rsi
state: foamdart
- type: Projectile
deleteOnCollide: true
delete_on_collide: true
soundHit: /Audio/Guns/Hits/snap.ogg
damages:
Blunt: 2
@@ -228,6 +227,6 @@
sprite: Objects/Fun/toys.rsi
state: capbullet
- type: Projectile
deleteOnCollide: true
delete_on_collide: true
damages:
Piercing: 0

View File

@@ -7,8 +7,6 @@
components:
- type: Sprite
netsync: false
- type: Icon
state: icon
- type: Item
size: 24
state: icon

View File

@@ -11,7 +11,6 @@
state: icon
- type: Item
size: 24
state: icon
- type: MagazineBarrel
currentSelector: Automatic
allSelectors:

View File

@@ -92,7 +92,6 @@
- type: Item
size: 24
sprite: Objects/Weapons/Guns/Shotguns/db_shotgun.rsi
state: icon
- type: RangedWeapon
- type: BoltActionBarrel
caliber: Shotgun
@@ -110,8 +109,8 @@
soundGunshot: /Audio/Weapons/Guns/Gunshots/shotgun.ogg
soundEmpty: /Audio/Weapons/Guns/Empty/empty.ogg
soundInsert: /Audio/Weapons/Guns/MagIn/shotgun_insert.ogg
sound_bolt_open: /Audio/Weapons/Guns/Cock/shotgun_open.ogg
sound_bolt_closed: /Audio/Weapons/Guns/Cock/shotgun_close.ogg
soundBoltOpen: /Audio/Weapons/Guns/Cock/shotgun_open.ogg
soundBoltClosed: /Audio/Weapons/Guns/Cock/shotgun_close.ogg
- type: Appearance
visuals:
- type: BarrelBoltVisualizer
@@ -216,7 +215,6 @@
- type: Item
size: 24
sprite: Objects/Weapons/Guns/Shotguns/sawn.rsi
state: icon
- type: RangedWeapon
- type: BoltActionBarrel
caliber: Shotgun