mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Generate settings pages automatically.
This adds metadata to settings fields that can be used to automatically generate the settings window. For now I have replaced the Difficulty page. Will follow up to replace the others.
This commit is contained in:
31
game/settings/boundedfloatoption.py
Normal file
31
game/settings/boundedfloatoption.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Any, Optional
|
||||
|
||||
from .optiondescription import OptionDescription, SETTING_DESCRIPTION_KEY
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class BoundedFloatOption(OptionDescription):
|
||||
min: float
|
||||
max: float
|
||||
divisor: int
|
||||
|
||||
|
||||
def bounded_float_option(
|
||||
text: str,
|
||||
page: str,
|
||||
section: str,
|
||||
min: float,
|
||||
max: float,
|
||||
divisor: int,
|
||||
detail: Optional[str] = None,
|
||||
**kwargs: Any,
|
||||
) -> float:
|
||||
return field(
|
||||
metadata={
|
||||
SETTING_DESCRIPTION_KEY: BoundedFloatOption(
|
||||
page, section, text, detail, min, max, divisor
|
||||
)
|
||||
},
|
||||
**kwargs,
|
||||
)
|
||||
Reference in New Issue
Block a user