silphius/app/ecs/components/time.js

24 lines
818 B
JavaScript
Raw Normal View History

2024-07-04 15:17:33 -05:00
import Component from '@/ecs/component.js';
2024-07-20 04:41:00 -05:00
import {IRL_MINUTES_PER_GAME_DAY} from '@/util/constants';
2024-07-04 15:17:33 -05:00
const realSecondsPerGameDay = 60 * IRL_MINUTES_PER_GAME_DAY;
const realSecondsPerGameHour = realSecondsPerGameDay / 24;
const realSecondsPerGameMinute = realSecondsPerGameHour / 60;
export default class Time extends Component {
instanceFromSchema() {
return class TimeInstance extends super.instanceFromSchema() {
static gameDayLengthInRealSeconds = 24 * realSecondsPerGameHour;
get hour() {
return this.$$irlSeconds / realSecondsPerGameHour;
}
get minute() {
return (this.$$irlSeconds % realSecondsPerGameHour) / realSecondsPerGameMinute;
}
};
}
static properties = {
2024-07-07 17:40:30 -05:00
irlSeconds: {defaultValue: 10 * realSecondsPerGameHour, type: 'uint16'},
2024-07-04 15:17:33 -05:00
};
}