mirror of
https://github.com/hanzoai/ProjectTinySamples.git
synced 2026-09-24 00:01:34 +00:00
77 lines
2.3 KiB
C#
77 lines
2.3 KiB
C#
using System;
|
|
using Unity.Entities;
|
|
using Unity.Tiny.Input;
|
|
using Unity.Tiny.Text;
|
|
|
|
namespace TinyTime
|
|
{
|
|
public class DateTimeSystem : SystemBase
|
|
{
|
|
private Entity DateEntity;
|
|
private Entity TimeEntity;
|
|
|
|
protected override void OnCreate()
|
|
{
|
|
RequireSingletonForUpdate<TimeData>();
|
|
RequireSingletonForUpdate<DateText>();
|
|
RequireSingletonForUpdate<TimeText>();
|
|
base.OnCreate();
|
|
}
|
|
|
|
protected override void OnStartRunning()
|
|
{
|
|
DateEntity = GetSingletonEntity<DateText>();
|
|
TimeEntity = GetSingletonEntity<TimeText>();
|
|
base.OnStartRunning();
|
|
}
|
|
|
|
protected override void OnUpdate()
|
|
{
|
|
var currentTime = DateTime.Now;
|
|
var input = World.GetOrCreateSystem<InputSystem>();
|
|
var timeData = GetSingleton<TimeData>();
|
|
var hours = DateTime.Now.Hour;
|
|
timeData.IsNightTime = hours < 6 || hours > 17;
|
|
|
|
if (input.GetKey(KeyCode.Space))
|
|
timeData.IsNightTime = !timeData.IsNightTime;
|
|
|
|
SetSingleton(timeData);
|
|
TextLayout.SetEntityTextRendererString(EntityManager, TimeEntity, TimeFormat(currentTime));
|
|
TextLayout.SetEntityTextRendererString(EntityManager, DateEntity,
|
|
$"{GetDayOfWeek(currentTime)} {currentTime.Month:00}/{currentTime.Day:00}");
|
|
}
|
|
|
|
private string GetDayOfWeek(DateTime dateTime)
|
|
{
|
|
switch (dateTime.DayOfWeek)
|
|
{
|
|
case DayOfWeek.Sunday:
|
|
return "Sunday";
|
|
case DayOfWeek.Monday:
|
|
return "Monday";
|
|
case DayOfWeek.Tuesday:
|
|
return "Tuesday";
|
|
case DayOfWeek.Wednesday:
|
|
return "Wednesday";
|
|
case DayOfWeek.Thursday:
|
|
return "Thursday";
|
|
case DayOfWeek.Friday:
|
|
return "Friday";
|
|
case DayOfWeek.Saturday:
|
|
return "Saturday";
|
|
}
|
|
|
|
return "";
|
|
}
|
|
|
|
private string TimeFormat(DateTime dateTime)
|
|
{
|
|
var hours = dateTime.Hour;
|
|
if (hours > 11)
|
|
hours = hours - 12;
|
|
return $"{hours:00}:{dateTime.Minute:00}";
|
|
}
|
|
}
|
|
}
|