CORE/src/misc.gd

46 lines
1.7 KiB
GDScript3
Raw Normal View History

# CORE FRAMEWORK SOURCE FILE
# Copyright (c) 2024 The StarOpenSource Project & Contributors
# Licensed under the GNU General Public License v3
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
## Contains various useful functions that do not fit into other modules.
##
## Contains various useful functions that you can use to save yourself some time
## programming or searching.
2024-02-04 21:36:30 +01:00
extends CoreBaseModule
func quit_safely(exitcode: int = 0) -> void:
logger.info("Shutting down (code " + str(exitcode) + ")")
logger.diag("Waiting for log messages to be flushed")
await get_tree().create_timer(0.25).timeout
get_tree().quit(exitcode)
@warning_ignore("integer_division")
func byte2mib(bytes: int, flatten: bool = true) -> float:
if flatten: return bytes/1048576
return bytes/float(1048576)
2024-02-10 18:48:37 +01:00
func mib2byte(mib: float, flatten: bool = true) -> float:
if flatten: return int(mib*1048576)
return mib*1048576
func mib2gib(mib: float, flatten: bool = true) -> float:
2024-02-10 18:48:37 +01:00
if flatten: return int(mib/1024)
return mib/1024
2024-02-10 18:48:37 +01:00
func gib2mib(gib: float, flatten: bool = true) -> float:
if flatten: return int(gib*1024)
return gib*1024