Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Base description of a ship component */
- USTRUCT()
- struct FFlareSpacecraftComponentDescription
- {
- GENERATED_USTRUCT_BODY()
- /** Part internal name */
- UPROPERTY(EditAnywhere, Category = Content) FName Identifier;
- /** Part size */
- UPROPERTY(EditAnywhere, Category = Content) TEnumAsByte<EFlarePartType::Type> Type;
- /** Part size */
- UPROPERTY(EditAnywhere, Category = Content) TEnumAsByte<EFlarePartSize::Type> Size;
- /** Part name */
- UPROPERTY(EditAnywhere, Category = Content) FText Name;
- /** Part description */
- UPROPERTY(EditAnywhere, Category = Content) FText Description;
- /** Part cost */
- UPROPERTY(EditAnywhere, Category = Content) int32 Cost;
- /** Hit point for component armor. Absorb first damages */
- UPROPERTY(EditAnywhere, Category = Content) float ArmorHitPoints;
- /** Hit point for component fonctionnaly. Absorb when no more armor. Component not working when no more hit points */
- UPROPERTY(EditAnywhere, Category = Content) float HitPoints;
- /** Part mesh name */
- UPROPERTY(EditAnywhere, Category = Content) UStaticMesh* Mesh;
- /** Effect used when destroyed*/
- UPROPERTY(EditAnywhere, Category = Content) UParticleSystem* DestroyedEffect;
- /** Part mesh preview image */
- UPROPERTY(EditAnywhere, Category = Content) FSlateBrush MeshPreviewBrush;
- /** General characteristic structure */
- UPROPERTY(EditAnywhere, Category = Content) FFlareSpacecraftComponentGeneralCharacteristics GeneralCharacteristics;
- /** Engine characteristic structure */
- UPROPERTY(EditAnywhere, Category = Content) FFlareSpacecraftComponentEngineCharacteristics EngineCharacteristics;
- /** Weapon characteristic structure */
- UPROPERTY(EditAnywhere, Category = Content) FFlareSpacecraftComponentWeaponCharacteristics WeaponCharacteristics;
- };
- /** Component general characteristic */
- USTRUCT()
- struct FFlareSpacecraftComponentGeneralCharacteristics
- {
- GENERATED_USTRUCT_BODY()
- // Contain the ship crew.
- UPROPERTY(EditAnywhere, Category = Content) bool LifeSupport;
- // Is a electric system.
- UPROPERTY(EditAnywhere, Category = Content) bool ElectricSystem;
- // Heat radiation surface in m^2
- UPROPERTY(EditAnywhere, Category = Content) float HeatSink;
- // Heat production on usage in KiloWatt on max usage
- UPROPERTY(EditAnywhere, Category = Content) float HeatProduction;
- // Cargo volume un m^3
- UPROPERTY(EditAnywhere, Category = Content) float Cargo;
- };
- /** Engine characteristic */
- USTRUCT()
- struct FFlareSpacecraftComponentEngineCharacteristics
- {
- GENERATED_USTRUCT_BODY()
- UPROPERTY(EditAnywhere, Category = Content) bool IsEngine;
- // Engine thrust in KN
- UPROPERTY(EditAnywhere, Category = Content) float EnginePower;
- // Value represents global rcs system initial capabilities. Angular acceleration un °/s^2
- UPROPERTY(EditAnywhere, Category = Content) float AngularAccelerationRate;
- /** Sound played when firing */
- UPROPERTY(EditAnywhere, Category = Content) USoundCue* EngineSound;
- };
- /** Bomb characteristic */
- USTRUCT()
- struct FFlareSpacecraftComponentBombCharacteristics
- {
- GENERATED_USTRUCT_BODY()
- /** Is a gun */
- UPROPERTY(EditAnywhere, Category = Content) bool IsBomb;
- /** Bomb mesh */
- UPROPERTY(EditAnywhere, Category = Content) UStaticMesh* BombMesh;
- /** Distance before armed */
- UPROPERTY(EditAnywhere, Category = Content) float ActivationDistance;
- /** Bomb forward velocity in m/s */
- UPROPERTY(EditAnywhere, Category = Content) float DropLinearVelocity;
- /** Bomb angular velocity in °/s */
- UPROPERTY(EditAnywhere, Category = Content) float DropAngularVelocity;
- };
- /** Gun characteristic */
- USTRUCT()
- struct FFlareSpacecraftComponentGunCharacteristics
- {
- GENERATED_USTRUCT_BODY()
- /** Is a gun */
- UPROPERTY(EditAnywhere, Category = Content) bool IsGun;
- /** Shell kinetic energy in KJ */
- UPROPERTY(EditAnywhere, Category = Content) float KineticEnergy;
- /** Weapon firerate in ammo/min */
- UPROPERTY(EditAnywhere, Category = Content) float AmmoRate;
- /** Weapon ammo velocity in m/s */
- UPROPERTY(EditAnywhere, Category = Content) float AmmoVelocity;
- /** Weapon ammo range before disappear in meter */
- UPROPERTY(EditAnywhere, Category = Content) float AmmoRange;
- /** Weapon ammo precision in ° */
- UPROPERTY(EditAnywhere, Category = Content) float AmmoPrecision;
- /** Weapon barrel count */
- UPROPERTY(EditAnywhere, Category = Content) int32 GunCount;
- /** Alterned fire. If true, the gun don't fire at same time */
- UPROPERTY(EditAnywhere, Category = Content) bool AlternedFire;
- /** If true, the gun fire one shell at each fire activation */
- UPROPERTY(EditAnywhere, Category = Content) bool SemiAutomaticFire;
- /** Effect used when firing */
- UPROPERTY(EditAnywhere, Category = Content) UParticleSystem* FiringEffect;
- /** Effect used for tracer ammunitions */
- UPROPERTY(EditAnywhere, Category = Content) UParticleSystem* TracerEffect;
- /** Decal used when an explosion hit a ship */
- UPROPERTY(EditAnywhere, Category = Content) UMaterialInterface* ExplosionMaterial;
- };
- /** Turret characteristic */
- USTRUCT()
- struct FFlareSpacecraftComponentTurretCharacteristics
- {
- GENERATED_USTRUCT_BODY()
- /** Is a turret */
- UPROPERTY(EditAnywhere, Category = Content) bool IsTurret;
- /** Turret base angular velocity */
- UPROPERTY(EditAnywhere, Category = Content) float TurretAngularVelocity;
- /** Turret barrels angular velocity */
- UPROPERTY(EditAnywhere, Category = Content) float BarrelsAngularVelocity;
- /** Turret max angle. If >= 180 full rotation is possible */
- UPROPERTY(EditAnywhere, Category = Content) float TurretMaxAngle;
- /** Turret min angle. If <= -180 full rotation is possible */
- UPROPERTY(EditAnywhere, Category = Content) float TurretMinAngle;
- /** Turret barrels max angle. If >= 180 full rotation is possible */
- UPROPERTY(EditAnywhere, Category = Content) float BarrelsMaxAngle;
- /** Turret barrels min angle. If <= -180 full rotation is possible */
- UPROPERTY(EditAnywhere, Category = Content) float BarrelsMinAngle;
- /** Turret mesh */
- UPROPERTY(EditAnywhere, Category = Content) UStaticMesh* TurretMesh;
- /** Barrel mesh */
- UPROPERTY(EditAnywhere, Category = Content) UStaticMesh* BarrelsMesh;
- /** Sound played on turret rotation */
- UPROPERTY(EditAnywhere, Category = Content) USoundCue* TurretRotationSound;
- /** Sound played on barrel rotation*/
- UPROPERTY(EditAnywhere, Category = Content) USoundCue* BarrelRotationSound;
- };
- /** Weapon characteristics */
- USTRUCT()
- struct FFlareSpacecraftComponentWeaponCharacteristics
- {
- GENERATED_USTRUCT_BODY()
- /** Is a weapon */
- UPROPERTY(EditAnywhere, Category = Content) bool IsWeapon;
- /** Weapon order in weapon groups */
- UPROPERTY(EditAnywhere, Category = Content) int32 Order;
- /** Alterned weapons. If true, all the weapons don't fire at same time */
- UPROPERTY(EditAnywhere, Category = Content) bool AlternedWeapon;
- /** Damage type */
- UPROPERTY(EditAnywhere, Category = Content) TEnumAsByte<EFlareShellDamageType::Type> DamageType;
- /** Explosion (or fragment) energy in KJ */
- UPROPERTY(EditAnywhere, Category = Content) float ExplosionPower;
- /** Shell fragment count (for HE shell) */
- UPROPERTY(EditAnywhere, Category = Content) int32 AmmoFragmentCount;
- /** Ammo damage radius */
- UPROPERTY(EditAnywhere, Category = Content) float AmmoDamageRadius;
- /** Ammo explosion effective radius (for HE shell) */
- UPROPERTY(EditAnywhere, Category = Content) float AmmoExplosionRadius;
- /** Weapon ammo max capacity */
- UPROPERTY(EditAnywhere, Category = Content) int32 AmmoCapacity;
- /** Damage type */
- UPROPERTY(EditAnywhere, Category = Content) TEnumAsByte<EFlareShellFuzeType::Type> FuzeType;
- /** If proximity fuse, below this distance the shell will explode */
- UPROPERTY(EditAnywhere, Category = Content) float FuzeMinDistanceThresold;
- /** If proximity fuse, above this distance the shell will no trig*/
- UPROPERTY(EditAnywhere, Category = Content) float FuzeMaxDistanceThresold;
- /** Sound played on impact */
- UPROPERTY(EditAnywhere, Category = Content) USoundCue* ImpactSound;
- /** Sound played on damage */
- UPROPERTY(EditAnywhere, Category = Content) USoundCue* DamageSound;
- /** Sound played when firing */
- UPROPERTY(EditAnywhere, Category = Content) USoundCue* FiringSound;
- /** Effect shown with a shell explode */
- UPROPERTY(EditAnywhere, Category = Content) UParticleSystem* ExplosionEffect;
- /** Effect shown with a shell or a fragment impact a target */
- UPROPERTY(EditAnywhere, Category = Content) UParticleSystem* ImpactEffect;
- /** Gun characteristic structure */
- UPROPERTY(EditAnywhere, Category = Content) FFlareSpacecraftComponentGunCharacteristics GunCharacteristics;
- /** Turret characteristic structure */
- UPROPERTY(EditAnywhere, Category = Content) FFlareSpacecraftComponentTurretCharacteristics TurretCharacteristics;
- /** Bomb characteristic structure */
- UPROPERTY(EditAnywhere, Category = Content) FFlareSpacecraftComponentBombCharacteristics BombCharacteristics;
- };
- /** Part type values */
- UENUM()
- namespace EFlarePartType
- {
- enum Type
- {
- None,
- OrbitalEngine,
- RCS,
- Weapon,
- Meta,
- InternalComponent,
- Num
- };
- }
- /** Shell fuze type */
- UENUM()
- namespace EFlareShellFuzeType
- {
- enum Type
- {
- Contact, // The shell explode on contact
- Proximity, // The shell explode near the target
- };
- }
- /** Shell damage type */
- UENUM()
- namespace EFlareShellDamageType
- {
- enum Type
- {
- HighExplosive, // Explosion send shell pieces around at hight velocity.
- ArmorPiercing, // Not explosive shell, The damage are done by kinetic energy. Classique bullets.
- HEAT, // Heat Explosive Anti Tank. The explosion is focalized in a hot beam of metal melting armor.
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement