com.planet_ink.coffee_mud.Common.interfaces
Interface TimeClock

All Superinterfaces:
java.lang.Cloneable, CMCommon, CMObject, java.lang.Comparable<CMObject>, Tickable
All Known Implementing Classes:
DefaultTimeClock

public interface TimeClock
extends Tickable, CMCommon

This interface represents more than a "Time Zone", but a complete calendar, a complete lunar cycle, and schedule for days and nights. Oh, and it also manages the current date and time.

See Also:
Area.setTimeObj(TimeClock), Area.getTimeObj()

Nested Class Summary
static class TimeClock.MoonPhase
          The phases of the moon
static class TimeClock.Season
          Enumeration for the season of the year
static class TimeClock.TidePhase
          The phases of the tides
static class TimeClock.TimeOfDay
          Time of Day enumeration
static class TimeClock.TimePeriod
          Different time periods.
 
Field Summary
 
Fields inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
STATUS_AFFECT, STATUS_ALIVE, STATUS_BEHAVIOR, STATUS_CLASS, STATUS_DEAD, STATUS_END, STATUS_FIGHT, STATUS_MISC, STATUS_MISC2, STATUS_MISC3, STATUS_MISC4, STATUS_MISC5, STATUS_MISC6, STATUS_MISC7, STATUS_NOT, STATUS_OTHER, STATUS_RACE, STATUS_REBIRTH, STATUS_SCRIPT, STATUS_START, STATUS_WEATHER, TICKID_AREA, TICKID_BEAMWEAPON, TICKID_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_ELECTRONICS, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MISCELLANEOUS, TICKID_MOB, TICKID_PROPERTY_SPECIAL, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SOLITARYMASK, TICKID_SPECIALCOMBAT, TICKID_SPECIALMANEUVER, TICKID_SPELL_AFFECT, TICKID_SUPPORT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET
 
Method Summary
 void bumpDays(int num)
          Increase this clocks time by the given number of days.
 void bumpHours(int num)
          Increase this clocks time by the given number of hours.
 void bumpMonths(int num)
          Increase this clocks time by the given number of months.
 void bumpWeeks(int num)
          Increase this clocks time by the given number of weeks.
 void bumpYears(int num)
          Increase this clocks time by the given number of years.
 TimeClock deriveClock(long millis)
          Using the current time and date as a yardstick, and assuming constant running and perfect timing, this method will derive a mud date and time from the given real life date/time in milliseconds.
 java.lang.String deriveEllapsedTimeString(long millis)
          Using the given number of milliseconds, this method will return a string describing the number of mud days, hours, etc that is represented by that amount of real time, assuming constant running and perfect timing.
 long deriveMillisAfter(TimeClock C)
          This method will discover the difference in mud hours between this time clock and the given EARLIER clock, assuming they use the same scale of measurement.
 long deriveMudHoursAfter(TimeClock C)
          This method will discover the difference in mud hours between this time clock and the given EARLIER clock, assuming they use the same scale of measurement.
 int[] getDawnToDusk()
          Gets the dawn to dusk values, indexed by the TOD constants.
 int getDayOfMonth()
          Gets the current day of month.
 int getDaysInMonth()
          Gets the days in a month.
 int getDaysInWeek()
          Gets the number of days in each week
 int getHourOfDay()
          Gets the current time of day (the hour).
 int getHoursInDay()
          Gets the hours in a day.
 int getMonth()
          Gets the current month.
 java.lang.String[] getMonthNames()
          Gets the month names, in order, indexed by 0.
 int getMonthsInYear()
          Gets the months in a year.
 TimeClock.MoonPhase getMoonPhase(Room room)
          Gets the moon phase an an enumeration.
 TimeClock.Season getSeasonCode()
          Gets the season code.
 java.lang.String getShortestTimeDescription()
          Gets the shortest time description, showing only the date and time in brief numeric format.
 java.lang.String getShortTimeDescription()
          Gets a shorter time description, showing the date and time in full sentence format, but skipping lunar orientation.
 TimeClock.TidePhase getTidePhase(Room room)
          Gets the phase of the tides as an enumeration.
 TimeClock.TimeOfDay getTODCode()
          Gets the TOD code, which is the sun-orientation (morning, evening, etc)
 java.lang.String[] getWeekNames()
          Gets the week names, which is the names of the days of each week, a string array indexed by the day of the week - 1.
 int getYear()
          Gets the current year.
 java.lang.String[] getYearNames()
          Gets the names of the year, an arbitrary sized list that is rotated through from year to year.
 void handleTimeChange()
          Causes the world to visibly react to a change in time
 void initializeINIClock(CMProps page)
          Initialize ini clock by reading calendar values from the given properties page.
 void save()
          Saves the current time/date information where ever its supposed to be saved.
 void setDawnToDusk(int dawn, int day, int dusk, int night)
          Sets the dawn to dusk values as absolute hours when that particular time of day begins.
 void setDayOfMonth(int d)
          Sets the current day of month.
 void setDaysInMonth(int d)
          Sets the days in a month.
 void setDaysInWeek(java.lang.String[] days)
          Sets the number of days in each week by naming each of them in a string array
 void setFromHoursSinceEpoc(long num)
          Sets this clock to the given number of hours since epoc.
 boolean setHourOfDay(int t)
          Sets the time of day (the hour).
 void setHoursInDay(int h)
          Sets the hours in a day.
 void setLoadName(java.lang.String name)
          Sets the name of this time object for the purposes of database loading and saving.
 void setMonth(int m)
          Sets the current month.
 void setMonthsInYear(java.lang.String[] months)
          Sets the months in year as a string array of names, arranged in order.
 void setYear(int y)
          Sets the current year.
 void setYearNames(java.lang.String[] years)
          Sets the year names, which is an arbitrary sized list that is rotated through from year to year.
 void tickTock(int howManyHours)
          Alters the time/day by the given number of hours (forward or backward)
 java.lang.String timeDescription(MOB mob, Room room)
          Returns a complete description of the date, time, and lunar orientation, and day of the week in a full sentence word format.
 long toHoursSinceEpoc()
          Returns the total hours since epoc
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
getTickStatus, name, tick
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.CMObject
copyOf, ID, initializeClass, newInstance
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

timeDescription

java.lang.String timeDescription(MOB mob,
                                 Room room)
Returns a complete description of the date, time, and lunar orientation, and day of the week in a full sentence word format.

Parameters:
mob - the mob who wants to know the time
room - the room the room where the mob is wanting the time
Returns:
the string representing the date and time
See Also:
getShortTimeDescription(), getShortestTimeDescription()

getShortTimeDescription

java.lang.String getShortTimeDescription()
Gets a shorter time description, showing the date and time in full sentence format, but skipping lunar orientation.

Returns:
the short time description
See Also:
timeDescription(MOB, Room), getShortestTimeDescription()

getShortestTimeDescription

java.lang.String getShortestTimeDescription()
Gets the shortest time description, showing only the date and time in brief numeric format.

Returns:
the shortest time description
See Also:
timeDescription(MOB, Room), getShortTimeDescription()

getYear

int getYear()
Gets the current year.

Returns:
the current year
See Also:
setYear(int)

setYear

void setYear(int y)
Sets the current year.

Parameters:
y - the new year
See Also:
getYear()

getMonth

int getMonth()
Gets the current month.

Returns:
the current month
See Also:
setMonth(int)

setMonth

void setMonth(int m)
Sets the current month.

Parameters:
m - the new month
See Also:
getMonth()

getDayOfMonth

int getDayOfMonth()
Gets the current day of month.

Returns:
the day of month
See Also:
setDayOfMonth(int)

setDayOfMonth

void setDayOfMonth(int d)
Sets the current day of month.

Parameters:
d - the new day of month
See Also:
getDayOfMonth()

getHourOfDay

int getHourOfDay()
Gets the current time of day (the hour).

Returns:
the time of day (hour)
See Also:
setHourOfDay(int)

setHourOfDay

boolean setHourOfDay(int t)
Sets the time of day (the hour).

Parameters:
t - the time of day (the hour)
Returns:
true, if the new time denotes a change of sun-orientation, false otherwise
See Also:
getHourOfDay()

getTODCode

TimeClock.TimeOfDay getTODCode()
Gets the TOD code, which is the sun-orientation (morning, evening, etc)

Returns:
the TOD code
See Also:
setHourOfDay(int), setDawnToDusk(int, int, int, int), TimeClock.TimeOfDay

getMoonPhase

TimeClock.MoonPhase getMoonPhase(Room room)
Gets the moon phase an an enumeration.

Parameters:
room - the room to check the moon phase for
Returns:
the moon phase as an enumeration
See Also:
TimeClock.MoonPhase

getTidePhase

TimeClock.TidePhase getTidePhase(Room room)
Gets the phase of the tides as an enumeration.

Parameters:
room - the room to check the tide phase for
Returns:
the tide phase as an enumeration
See Also:
TimeClock.TidePhase

getSeasonCode

TimeClock.Season getSeasonCode()
Gets the season code.

Returns:
the season code
See Also:
TimeClock.Season

tickTock

void tickTock(int howManyHours)
Alters the time/day by the given number of hours (forward or backward)

Parameters:
howManyHours - the how many hours to alter the time by

save

void save()
Saves the current time/date information where ever its supposed to be saved. Requires that setLoadName be called before.

See Also:
setLoadName(String)

setLoadName

void setLoadName(java.lang.String name)
Sets the name of this time object for the purposes of database loading and saving. This is required for the save method to do anything at all.

Parameters:
name - the new load name
See Also:
save()

getHoursInDay

int getHoursInDay()
Gets the hours in a day.

Returns:
the hours in a day
See Also:
setHoursInDay(int)

setHoursInDay

void setHoursInDay(int h)
Sets the hours in a day.

Parameters:
h - the new hours in a day
See Also:
getHoursInDay()

getDaysInMonth

int getDaysInMonth()
Gets the days in a month.

Returns:
the days in a month
See Also:
setDaysInMonth(int)

setDaysInMonth

void setDaysInMonth(int d)
Sets the days in a month.

Parameters:
d - the new days in a month
See Also:
getDaysInMonth()

getMonthsInYear

int getMonthsInYear()
Gets the months in a year.

Returns:
the months in a year
See Also:
setMonthsInYear(String[]), getMonthNames()

getMonthNames

java.lang.String[] getMonthNames()
Gets the month names, in order, indexed by 0.

Returns:
the month names
See Also:
setMonthsInYear(String[]), getMonthNames()

setMonthsInYear

void setMonthsInYear(java.lang.String[] months)
Sets the months in year as a string array of names, arranged in order.

Parameters:
months - the new month names in a year
See Also:
getMonthNames(), getMonthsInYear()

getDawnToDusk

int[] getDawnToDusk()
Gets the dawn to dusk values, indexed by the TOD constants. Each entry is an hour when the TOD starts. The order of the values is DAWN, DAY, DUSK, NIGHT.

Returns:
the dawn to dusk array
See Also:
getTODCode(), setDawnToDusk(int, int, int, int), TimeClock.TimeOfDay

setDawnToDusk

void setDawnToDusk(int dawn,
                   int day,
                   int dusk,
                   int night)
Sets the dawn to dusk values as absolute hours when that particular time of day begins.

Parameters:
dawn - the dawn hour
day - the day hour
dusk - the dusk hour
night - the night hour
See Also:
getDawnToDusk(), getTODCode(), TimeClock.TimeOfDay

getWeekNames

java.lang.String[] getWeekNames()
Gets the week names, which is the names of the days of each week, a string array indexed by the day of the week - 1.

Returns:
the week names as an array of strings
See Also:
setDaysInWeek(String[]), getDaysInWeek()

getDaysInWeek

int getDaysInWeek()
Gets the number of days in each week

Returns:
the days in each week
See Also:
setDaysInWeek(String[]), getWeekNames()

setDaysInWeek

void setDaysInWeek(java.lang.String[] days)
Sets the number of days in each week by naming each of them in a string array

Parameters:
days - the new days in each week string array
See Also:
getDaysInWeek(), getWeekNames()

getYearNames

java.lang.String[] getYearNames()
Gets the names of the year, an arbitrary sized list that is rotated through from year to year. (think: "year of the donkey", etc..)

Returns:
the year names, if any.
See Also:
setYearNames(String[])

setYearNames

void setYearNames(java.lang.String[] years)
Sets the year names, which is an arbitrary sized list that is rotated through from year to year. (think: "year of the donkey", etc..)

Parameters:
years - the new years names
See Also:
getYearNames()

deriveClock

TimeClock deriveClock(long millis)
Using the current time and date as a yardstick, and assuming constant running and perfect timing, this method will derive a mud date and time from the given real life date/time in milliseconds.

Parameters:
millis - the milliseconds since 1970
Returns:
the time clock object representing that real life time
See Also:
deriveMillisAfter(TimeClock), deriveEllapsedTimeString(long)

deriveMillisAfter

long deriveMillisAfter(TimeClock C)
This method will discover the difference in mud hours between this time clock and the given EARLIER clock, assuming they use the same scale of measurement. It will then return the number of actual milliseconds would have elapsed, assuming constant running and perfect timing.

Parameters:
C - the earlier time clock object
Returns:
the number of milliseconds elapsed since the given clock
See Also:
deriveClock(long), deriveEllapsedTimeString(long)

deriveMudHoursAfter

long deriveMudHoursAfter(TimeClock C)
This method will discover the difference in mud hours between this time clock and the given EARLIER clock, assuming they use the same scale of measurement. It will then return the number of actual mud hours would have elapsed.

Parameters:
C - the earlier time clock object
Returns:
the number of mud hours elapsed since the given clock
See Also:
deriveClock(long), deriveEllapsedTimeString(long)

bumpHours

void bumpHours(int num)
Increase this clocks time by the given number of hours. Does NOT move the sky. Use tickTock for that.

Parameters:
num - the number to bump
See Also:
tickTock(int), bumpDays(int), bumpWeeks(int), bumpMonths(int), bumpYears(int)

bumpDays

void bumpDays(int num)
Increase this clocks time by the given number of days. Does NOT move the sky. Use tickTock for that.

Parameters:
num - the number to bump
See Also:
tickTock(int), bumpHours(int), bumpWeeks(int), bumpMonths(int), bumpYears(int)

bumpWeeks

void bumpWeeks(int num)
Increase this clocks time by the given number of weeks. Does NOT move the sky. Use tickTock for that.

Parameters:
num - the number to bump
See Also:
tickTock(int), bumpHours(int), bumpDays(int), bumpMonths(int), bumpYears(int)

bumpMonths

void bumpMonths(int num)
Increase this clocks time by the given number of months. Does NOT move the sky. Use tickTock for that.

Parameters:
num - the number to bump
See Also:
tickTock(int), bumpHours(int), bumpDays(int), bumpWeeks(int), bumpYears(int)

bumpYears

void bumpYears(int num)
Increase this clocks time by the given number of years. Does NOT move the sky. Use tickTock for that.

Parameters:
num - the number to bump
See Also:
tickTock(int), bumpHours(int), bumpDays(int), bumpWeeks(int), bumpMonths(int)

toHoursSinceEpoc

long toHoursSinceEpoc()
Returns the total hours since epoc

Returns:
total hours since epoc
See Also:
setFromHoursSinceEpoc(long)

setFromHoursSinceEpoc

void setFromHoursSinceEpoc(long num)
Sets this clock to the given number of hours since epoc. Does NOT move the sky, you need to call tickTock for that.

Parameters:
num - the new time, in hours since epoc.
See Also:
tickTock(int), toHoursSinceEpoc()

deriveEllapsedTimeString

java.lang.String deriveEllapsedTimeString(long millis)
Using the given number of milliseconds, this method will return a string describing the number of mud days, hours, etc that is represented by that amount of real time, assuming constant running and perfect timing.

Parameters:
millis - the milliseconds of elapsed time represented
Returns:
the string representing the elapsed mud time
See Also:
deriveMillisAfter(TimeClock), deriveClock(long)

initializeINIClock

void initializeINIClock(CMProps page)
Initialize ini clock by reading calendar values from the given properties page. Does not load current values from anywhere.

Parameters:
page - the properties page

handleTimeChange

void handleTimeChange()
Causes the world to visibly react to a change in time