Aetheria/Assets/Scripts/Gameplay/GameSettings.cs
Meta Vens c7c7e58508 Unity draws Zone.FloatingItems and nothing else; the Unity loot roll, collision pickup, tractor pull and GridObject are gone
ZoneRenderer draws one ItemPickup per FloatingItem (load, ObserveAdd, ObserveRemove, ClearZone); ItemPickup.Bind places it
from the sim body and spins it for show. EntityInstance's drop loops, ShieldManager's pickup branch (the whole
OnCollisionEnter, which did nothing else), ZoneRenderer.DropItem/DestroyLoot/_loot, TractorBeam's pull, and
GameSettings' three loot fields are deleted; WireFloatingItems stripped GridObject from the five pickup prefabs and
reassigned ZoneRenderer's four pickup fields in ARPG.unity; FloatingItemsDrawnSmoke (play session, batchmode) pins the
lowering. GridObject and TimedDestroy were deleted in fa911f2d, so fa911f2d and 2565e2c5 do not build in Unity.
Assets/Resources/Settings.asset keeps three stale serialized GameSettings fields Unity ignores (LFS object, not rewritten).

Builds: Unity batchmode compile green at this commit; dotnet green at 2565e2c5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 02:36:47 +02:00

81 lines
No EOL
3.1 KiB
C#

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "Sector Display Properties", menuName = "Aetheria/Sector Display Properties")]
public class GameSettings : ScriptableObject
{
public string StartingHullName = "Longinus";
public float HeatstrokePhasingFloor = 0;
public float HeatstrokePhasingFrequency = 5;
public float WormholeDistanceRatio;
public float DefaultViewDistance;
public float MinimapZoneGravityRange;
public float[] MinimapZoomLevels;
public int DefaultMinimapZoom;
public ExponentialCurve IconSize;
public int AsteroidMeshCount = 5;
public float MinimapAsteroidSize = 3;
public float MinimapIconSize = 1f / 32;
public float PlanetRotationSpeed = 1;
public NameGeneratorSettings NameGeneratorSettings;
public TutorialGenerationSettings TutorialGenerationSettings;
public SectorBackgroundSettings TutorialBackgroundSettings;
public SectorBackgroundSettings SectorBackgroundSettings;
public SectorGenerationSettings SectorGenerationSettings;
public BodySettingsCollection[] BodySettingsCollections;
public PlanetSettings PlanetSettings;
public ZoneGenerationSettings ZoneSettings;
public GameplaySettings GameplaySettings;
public Color ArmorHitColor;
public Color HardpointHitColor;
public Color GearHitColor;
public Gradient ArmorGradient;
public Gradient DurabilityGradient;
public ZoneEnvironment DefaultEnvironment;
[HideInInspector] public Sprite[] ItemIcons;
[HideInInspector] public Sprite[] WeaponTypeIcons;
[HideInInspector] public Sprite[] WeaponCaliberIcons;
[HideInInspector] public Sprite[] WeaponRangeIcons;
[HideInInspector] public Sprite[] WeaponFireTypeIcons;
[HideInInspector] public Sprite[] WeaponModifierIcons;
public Sprite GetIcon(HardpointType type) => ItemIcons[(int) type];
public Sprite GetIcon(WeaponType type) => WeaponTypeIcons[(int) type];
public Sprite GetIcon(WeaponRange range) => WeaponRangeIcons[(int) range];
public Sprite GetIcon(WeaponCaliber caliber) => WeaponCaliberIcons[(int) caliber];
public IEnumerable<Sprite> GetIcons(WeaponFireType type)
{
var count = Enum.GetValues(typeof(WeaponFireType)).Length;
var t = (int) type;
for (int i = 0; i < count - 1; i++)
{
if (1 << i == (1 << i & t))
yield return WeaponFireTypeIcons[i + 1];
}
}
public IEnumerable<Sprite> GetIcons(WeaponModifiers type)
{
var count = Enum.GetValues(typeof(WeaponModifiers)).Length;
var t = (int) type;
for (int i = 0; i < count - 1; i++)
{
if (1 << i == (1 << i & t))
yield return WeaponModifierIcons[i + 1];
}
}
}
[Serializable]
public class BodySettingsCollection
{
public float MinimumMass;
public CelestialBodySettings[] BodySettings;
}