mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 03:18:37 +08:00
Merge pull request #67694 from aaronfranke/its-time
Remove duplicate Month and Weekday enums
This commit is contained in:
commit
565ae3b767
@ -613,27 +613,6 @@ void OS::_bind_methods() {
|
||||
BIND_ENUM_CONSTANT(RENDERING_DRIVER_VULKAN);
|
||||
BIND_ENUM_CONSTANT(RENDERING_DRIVER_OPENGL3);
|
||||
|
||||
BIND_ENUM_CONSTANT(DAY_SUNDAY);
|
||||
BIND_ENUM_CONSTANT(DAY_MONDAY);
|
||||
BIND_ENUM_CONSTANT(DAY_TUESDAY);
|
||||
BIND_ENUM_CONSTANT(DAY_WEDNESDAY);
|
||||
BIND_ENUM_CONSTANT(DAY_THURSDAY);
|
||||
BIND_ENUM_CONSTANT(DAY_FRIDAY);
|
||||
BIND_ENUM_CONSTANT(DAY_SATURDAY);
|
||||
|
||||
BIND_ENUM_CONSTANT(MONTH_JANUARY);
|
||||
BIND_ENUM_CONSTANT(MONTH_FEBRUARY);
|
||||
BIND_ENUM_CONSTANT(MONTH_MARCH);
|
||||
BIND_ENUM_CONSTANT(MONTH_APRIL);
|
||||
BIND_ENUM_CONSTANT(MONTH_MAY);
|
||||
BIND_ENUM_CONSTANT(MONTH_JUNE);
|
||||
BIND_ENUM_CONSTANT(MONTH_JULY);
|
||||
BIND_ENUM_CONSTANT(MONTH_AUGUST);
|
||||
BIND_ENUM_CONSTANT(MONTH_SEPTEMBER);
|
||||
BIND_ENUM_CONSTANT(MONTH_OCTOBER);
|
||||
BIND_ENUM_CONSTANT(MONTH_NOVEMBER);
|
||||
BIND_ENUM_CONSTANT(MONTH_DECEMBER);
|
||||
|
||||
BIND_ENUM_CONSTANT(SYSTEM_DIR_DESKTOP);
|
||||
BIND_ENUM_CONSTANT(SYSTEM_DIR_DCIM);
|
||||
BIND_ENUM_CONSTANT(SYSTEM_DIR_DOCUMENTS);
|
||||
|
@ -129,33 +129,6 @@ public:
|
||||
RENDERING_DRIVER_OPENGL3,
|
||||
};
|
||||
|
||||
enum Weekday {
|
||||
DAY_SUNDAY,
|
||||
DAY_MONDAY,
|
||||
DAY_TUESDAY,
|
||||
DAY_WEDNESDAY,
|
||||
DAY_THURSDAY,
|
||||
DAY_FRIDAY,
|
||||
DAY_SATURDAY
|
||||
};
|
||||
|
||||
enum Month {
|
||||
// Start at 1 to follow Windows SYSTEMTIME structure
|
||||
// https://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx
|
||||
MONTH_JANUARY = 1,
|
||||
MONTH_FEBRUARY,
|
||||
MONTH_MARCH,
|
||||
MONTH_APRIL,
|
||||
MONTH_MAY,
|
||||
MONTH_JUNE,
|
||||
MONTH_JULY,
|
||||
MONTH_AUGUST,
|
||||
MONTH_SEPTEMBER,
|
||||
MONTH_OCTOBER,
|
||||
MONTH_NOVEMBER,
|
||||
MONTH_DECEMBER
|
||||
};
|
||||
|
||||
virtual PackedStringArray get_connected_midi_inputs();
|
||||
virtual void open_midi_inputs();
|
||||
virtual void close_midi_inputs();
|
||||
@ -583,8 +556,6 @@ VARIANT_ENUM_CAST(core_bind::ResourceLoader::CacheMode);
|
||||
VARIANT_BITFIELD_CAST(core_bind::ResourceSaver::SaverFlags);
|
||||
|
||||
VARIANT_ENUM_CAST(core_bind::OS::RenderingDriver);
|
||||
VARIANT_ENUM_CAST(core_bind::OS::Weekday);
|
||||
VARIANT_ENUM_CAST(core_bind::OS::Month);
|
||||
VARIANT_ENUM_CAST(core_bind::OS::SystemDir);
|
||||
|
||||
VARIANT_ENUM_CAST(core_bind::Geometry2D::PolyBooleanOperation);
|
||||
|
28
core/os/os.h
28
core/os/os.h
@ -34,6 +34,7 @@
|
||||
#include "core/config/engine.h"
|
||||
#include "core/io/image.h"
|
||||
#include "core/io/logger.h"
|
||||
#include "core/os/time_enums.h"
|
||||
#include "core/string/ustring.h"
|
||||
#include "core/templates/list.h"
|
||||
#include "core/templates/vector.h"
|
||||
@ -185,33 +186,6 @@ public:
|
||||
|
||||
virtual void yield();
|
||||
|
||||
enum Weekday : uint8_t {
|
||||
WEEKDAY_SUNDAY,
|
||||
WEEKDAY_MONDAY,
|
||||
WEEKDAY_TUESDAY,
|
||||
WEEKDAY_WEDNESDAY,
|
||||
WEEKDAY_THURSDAY,
|
||||
WEEKDAY_FRIDAY,
|
||||
WEEKDAY_SATURDAY,
|
||||
};
|
||||
|
||||
enum Month : uint8_t {
|
||||
/// Start at 1 to follow Windows SYSTEMTIME structure
|
||||
/// https://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx
|
||||
MONTH_JANUARY = 1,
|
||||
MONTH_FEBRUARY,
|
||||
MONTH_MARCH,
|
||||
MONTH_APRIL,
|
||||
MONTH_MAY,
|
||||
MONTH_JUNE,
|
||||
MONTH_JULY,
|
||||
MONTH_AUGUST,
|
||||
MONTH_SEPTEMBER,
|
||||
MONTH_OCTOBER,
|
||||
MONTH_NOVEMBER,
|
||||
MONTH_DECEMBER,
|
||||
};
|
||||
|
||||
struct DateTime {
|
||||
int64_t year;
|
||||
Month month;
|
||||
|
@ -52,8 +52,8 @@ static const uint8_t MONTH_DAYS_TABLE[2][12] = {
|
||||
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(Time::Month);
|
||||
VARIANT_ENUM_CAST(Time::Weekday);
|
||||
VARIANT_ENUM_CAST(Month);
|
||||
VARIANT_ENUM_CAST(Weekday);
|
||||
|
||||
#define UNIX_TIME_TO_HMS \
|
||||
uint8_t hour, minute, second; \
|
||||
|
@ -32,6 +32,7 @@
|
||||
#define TIME_H
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
#include "time_enums.h"
|
||||
|
||||
// This Time class conforms with as many of the ISO 8601 standards as possible.
|
||||
// * As per ISO 8601:2004 4.3.2.1, all dates follow the Proleptic Gregorian
|
||||
@ -51,33 +52,6 @@ class Time : public Object {
|
||||
public:
|
||||
static Time *get_singleton();
|
||||
|
||||
enum Month {
|
||||
/// Start at 1 to follow Windows SYSTEMTIME structure
|
||||
/// https://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx
|
||||
MONTH_JANUARY = 1,
|
||||
MONTH_FEBRUARY,
|
||||
MONTH_MARCH,
|
||||
MONTH_APRIL,
|
||||
MONTH_MAY,
|
||||
MONTH_JUNE,
|
||||
MONTH_JULY,
|
||||
MONTH_AUGUST,
|
||||
MONTH_SEPTEMBER,
|
||||
MONTH_OCTOBER,
|
||||
MONTH_NOVEMBER,
|
||||
MONTH_DECEMBER,
|
||||
};
|
||||
|
||||
enum Weekday : uint8_t {
|
||||
WEEKDAY_SUNDAY,
|
||||
WEEKDAY_MONDAY,
|
||||
WEEKDAY_TUESDAY,
|
||||
WEEKDAY_WEDNESDAY,
|
||||
WEEKDAY_THURSDAY,
|
||||
WEEKDAY_FRIDAY,
|
||||
WEEKDAY_SATURDAY,
|
||||
};
|
||||
|
||||
// Methods that convert times.
|
||||
Dictionary get_datetime_dict_from_unix_time(int64_t p_unix_time_val) const;
|
||||
Dictionary get_date_dict_from_unix_time(int64_t p_unix_time_val) const;
|
||||
|
63
core/os/time_enums.h
Normal file
63
core/os/time_enums.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*************************************************************************/
|
||||
/* time_enums.h */
|
||||
/*************************************************************************/
|
||||
/* This file is part of: */
|
||||
/* GODOT ENGINE */
|
||||
/* https://godotengine.org */
|
||||
/*************************************************************************/
|
||||
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
|
||||
/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
|
||||
/* */
|
||||
/* Permission is hereby granted, free of charge, to any person obtaining */
|
||||
/* a copy of this software and associated documentation files (the */
|
||||
/* "Software"), to deal in the Software without restriction, including */
|
||||
/* without limitation the rights to use, copy, modify, merge, publish, */
|
||||
/* distribute, sublicense, and/or sell copies of the Software, and to */
|
||||
/* permit persons to whom the Software is furnished to do so, subject to */
|
||||
/* the following conditions: */
|
||||
/* */
|
||||
/* The above copyright notice and this permission notice shall be */
|
||||
/* included in all copies or substantial portions of the Software. */
|
||||
/* */
|
||||
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
|
||||
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
|
||||
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
|
||||
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
|
||||
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
|
||||
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifndef TIME_ENUMS_H
|
||||
#define TIME_ENUMS_H
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
enum Month {
|
||||
/// Start at 1 to follow Windows SYSTEMTIME structure
|
||||
/// https://msdn.microsoft.com/en-us/library/windows/desktop/ms724950(v=vs.85).aspx
|
||||
MONTH_JANUARY = 1,
|
||||
MONTH_FEBRUARY,
|
||||
MONTH_MARCH,
|
||||
MONTH_APRIL,
|
||||
MONTH_MAY,
|
||||
MONTH_JUNE,
|
||||
MONTH_JULY,
|
||||
MONTH_AUGUST,
|
||||
MONTH_SEPTEMBER,
|
||||
MONTH_OCTOBER,
|
||||
MONTH_NOVEMBER,
|
||||
MONTH_DECEMBER,
|
||||
};
|
||||
|
||||
enum Weekday : uint8_t {
|
||||
WEEKDAY_SUNDAY,
|
||||
WEEKDAY_MONDAY,
|
||||
WEEKDAY_TUESDAY,
|
||||
WEEKDAY_WEDNESDAY,
|
||||
WEEKDAY_THURSDAY,
|
||||
WEEKDAY_FRIDAY,
|
||||
WEEKDAY_SATURDAY,
|
||||
};
|
||||
|
||||
#endif // TIME_ENUMS_H
|
@ -654,63 +654,6 @@
|
||||
<constant name="RENDERING_DRIVER_OPENGL3" value="1" enum="RenderingDriver">
|
||||
The OpenGL 3 rendering driver. It uses OpenGL 3.3 Core Profile on desktop platforms, OpenGL ES 3.0 on mobile devices, and WebGL 2.0 on Web.
|
||||
</constant>
|
||||
<constant name="DAY_SUNDAY" value="0" enum="Weekday">
|
||||
Sunday.
|
||||
</constant>
|
||||
<constant name="DAY_MONDAY" value="1" enum="Weekday">
|
||||
Monday.
|
||||
</constant>
|
||||
<constant name="DAY_TUESDAY" value="2" enum="Weekday">
|
||||
Tuesday.
|
||||
</constant>
|
||||
<constant name="DAY_WEDNESDAY" value="3" enum="Weekday">
|
||||
Wednesday.
|
||||
</constant>
|
||||
<constant name="DAY_THURSDAY" value="4" enum="Weekday">
|
||||
Thursday.
|
||||
</constant>
|
||||
<constant name="DAY_FRIDAY" value="5" enum="Weekday">
|
||||
Friday.
|
||||
</constant>
|
||||
<constant name="DAY_SATURDAY" value="6" enum="Weekday">
|
||||
Saturday.
|
||||
</constant>
|
||||
<constant name="MONTH_JANUARY" value="1" enum="Month">
|
||||
January.
|
||||
</constant>
|
||||
<constant name="MONTH_FEBRUARY" value="2" enum="Month">
|
||||
February.
|
||||
</constant>
|
||||
<constant name="MONTH_MARCH" value="3" enum="Month">
|
||||
March.
|
||||
</constant>
|
||||
<constant name="MONTH_APRIL" value="4" enum="Month">
|
||||
April.
|
||||
</constant>
|
||||
<constant name="MONTH_MAY" value="5" enum="Month">
|
||||
May.
|
||||
</constant>
|
||||
<constant name="MONTH_JUNE" value="6" enum="Month">
|
||||
June.
|
||||
</constant>
|
||||
<constant name="MONTH_JULY" value="7" enum="Month">
|
||||
July.
|
||||
</constant>
|
||||
<constant name="MONTH_AUGUST" value="8" enum="Month">
|
||||
August.
|
||||
</constant>
|
||||
<constant name="MONTH_SEPTEMBER" value="9" enum="Month">
|
||||
September.
|
||||
</constant>
|
||||
<constant name="MONTH_OCTOBER" value="10" enum="Month">
|
||||
October.
|
||||
</constant>
|
||||
<constant name="MONTH_NOVEMBER" value="11" enum="Month">
|
||||
November.
|
||||
</constant>
|
||||
<constant name="MONTH_DECEMBER" value="12" enum="Month">
|
||||
December.
|
||||
</constant>
|
||||
<constant name="SYSTEM_DIR_DESKTOP" value="0" enum="SystemDir">
|
||||
Desktop directory path.
|
||||
</constant>
|
||||
|
@ -91,7 +91,7 @@ TEST_CASE("[Time] Datetime dictionary conversion methods") {
|
||||
datetime[YEAR_KEY] = 2014;
|
||||
datetime[MONTH_KEY] = 2;
|
||||
datetime[DAY_KEY] = 9;
|
||||
datetime[WEEKDAY_KEY] = Time::Weekday::WEEKDAY_SUNDAY;
|
||||
datetime[WEEKDAY_KEY] = Weekday::WEEKDAY_SUNDAY;
|
||||
datetime[HOUR_KEY] = 22;
|
||||
datetime[MINUTE_KEY] = 10;
|
||||
datetime[SECOND_KEY] = 30;
|
||||
@ -100,7 +100,7 @@ TEST_CASE("[Time] Datetime dictionary conversion methods") {
|
||||
date_only[YEAR_KEY] = 2014;
|
||||
date_only[MONTH_KEY] = 2;
|
||||
date_only[DAY_KEY] = 9;
|
||||
date_only[WEEKDAY_KEY] = Time::Weekday::WEEKDAY_SUNDAY;
|
||||
date_only[WEEKDAY_KEY] = Weekday::WEEKDAY_SUNDAY;
|
||||
|
||||
Dictionary time_only;
|
||||
time_only[HOUR_KEY] = 22;
|
||||
@ -115,8 +115,8 @@ TEST_CASE("[Time] Datetime dictionary conversion methods") {
|
||||
CHECK_MESSAGE(time->get_date_dict_from_unix_time(1391904000).hash() == date_only.hash(), "Time get_date_dict_from_unix_time: The date timestamp for GODOT IS OPEN SOURCE is converted to a dictionary as expected.");
|
||||
CHECK_MESSAGE(time->get_time_dict_from_unix_time(79830).hash() == time_only.hash(), "Time get_time_dict_from_unix_time: The time timestamp for GODOT IS OPEN SOURCE is converted to a dictionary as expected.");
|
||||
|
||||
CHECK_MESSAGE((Time::Weekday)(int)time->get_datetime_dict_from_unix_time(0)[WEEKDAY_KEY] == Time::Weekday::WEEKDAY_THURSDAY, "Time get_datetime_dict_from_unix_time: The weekday for the Unix epoch is a Thursday as expected.");
|
||||
CHECK_MESSAGE((Time::Weekday)(int)time->get_datetime_dict_from_unix_time(1391983830)[WEEKDAY_KEY] == Time::Weekday::WEEKDAY_SUNDAY, "Time get_datetime_dict_from_unix_time: The weekday for GODOT IS OPEN SOURCE is a Sunday as expected.");
|
||||
CHECK_MESSAGE((Weekday)(int)time->get_datetime_dict_from_unix_time(0)[WEEKDAY_KEY] == Weekday::WEEKDAY_THURSDAY, "Time get_datetime_dict_from_unix_time: The weekday for the Unix epoch is a Thursday as expected.");
|
||||
CHECK_MESSAGE((Weekday)(int)time->get_datetime_dict_from_unix_time(1391983830)[WEEKDAY_KEY] == Weekday::WEEKDAY_SUNDAY, "Time get_datetime_dict_from_unix_time: The weekday for GODOT IS OPEN SOURCE is a Sunday as expected.");
|
||||
|
||||
CHECK_MESSAGE(time->get_datetime_dict_from_datetime_string("2014-02-09T22:10:30").hash() == datetime.hash(), "Time get_datetime_dict_from_string: The dictionary from string for GODOT IS OPEN SOURCE works as expected.");
|
||||
CHECK_MESSAGE(!time->get_datetime_dict_from_datetime_string("2014-02-09T22:10:30", false).has(WEEKDAY_KEY), "Time get_datetime_dict_from_string: The dictionary from string for GODOT IS OPEN SOURCE without weekday doesn't contain the weekday key as expected.");
|
||||
|
Loading…
Reference in New Issue
Block a user