Files
GTA4RP/scripts/client/messaging.js
2023-02-09 11:08:12 -06:00

109 lines
4.0 KiB
JavaScript

// ===========================================================================
// Vortrex's Roleplay Resource
// https://github.com/VortrexFTW/v-roleplay
// ===========================================================================
// FILE: messaging.js
// DESC: Provides messaging/textdraw functions and usage
// TYPE: Client (JavaScript)
// ===========================================================================
let bigGameMessageFonts = {};
let bigGameMessageFontName = "";
let bigGameMessageText = "";
let bigGameMessageColour = COLOUR_WHITE;
let bigGameMessageTimer = null;
let smallGameMessageFonts = {};
let smallGameMessageFontName = "";
let smallGameMessageText = "";
let smallGameMessageColour = COLOUR_WHITE;
let smallGameMessageTimer = null;
// ===========================================================================
function initMessagingScript() {
logToConsole(LOG_DEBUG, "[V.RP.Messaging]: Initializing messaging script ...");
smallGameMessageFonts = loadSmallGameMessageFonts();
bigGameMessageFonts = loadSmallGameMessageFonts();
logToConsole(LOG_DEBUG, "[V.RP.Messaging]: Messaging script initialized!");
}
// ===========================================================================
function loadSmallGameMessageFonts() {
let tempSmallGameMessageFonts = {};
let fontStream = openFile("files/fonts/pricedown.ttf");
if (fontStream != null) {
tempSmallGameMessageFonts["Pricedown"] = lucasFont.createFont(fontStream, 20.0);
fontStream.close();
}
fontStream = openFile("files/fonts/aurora-bold-condensed.ttf");
if (fontStream != null) {
tempSmallGameMessageFonts["AuroraBdCnBT"] = lucasFont.createFont(fontStream, 20.0);
fontStream.close();
}
tempSmallGameMessageFonts["Roboto"] = lucasFont.createDefaultFont(20.0, "Roboto");
tempSmallGameMessageFonts["RobotoLight"] = lucasFont.createDefaultFont(20.0, "Roboto", "Light");
return tempSmallGameMessageFonts;
}
// ===========================================================================
function loadBigGameMessageFont() {
let tempBigGameMessageFonts = {};
let fontStream = openFile("files/fonts/pricedown.ttf");
if (fontStream != null) {
tempBigGameMessageFonts["Pricedown"] = lucasFont.createFont(fontStream, 28.0);
fontStream.close();
}
fontStream = openFile("files/fonts/aurora-bold-condensed.ttf");
if (fontStream != null) {
tempBigGameMessageFonts["AuroraBdCnBT"] = lucasFont.createFont(fontStream, 28.0);
fontStream.close();
}
tempBigGameMessageFonts["Roboto"] = lucasFont.createDefaultFont(28.0, "Roboto");
tempBigGameMessageFonts["RobotoLight"] = lucasFont.createDefaultFont(28.0, "Roboto", "Light");
return tempBigGameMessageFonts;
}
// ===========================================================================
function processSmallGameMessageRendering() {
logToConsole(LOG_VERBOSE, "[V.RP.Messaging]: Processing small game message rendering ...");
if (renderSmallGameMessage) {
if (smallGameMessageText != "") {
logToConsole(LOG_VERBOSE, `[V.RP.Messaging]: Rendering small game message: ${smallGameMessageText}`);
if (smallGameMessageFonts[smallGameMessageFontName] != null) {
smallGameMessageFonts[smallGameMessageFontName].render(smallGameMessageText, [0, game.height - 90], game.width, 0.5, 0.0, smallGameMessageFonts[smallGameMessageFontName].size, smallGameMessageColour, true, true, false, true);
}
}
}
}
// ===========================================================================
function showSmallGameMessage(text, colour, duration, fontName) {
logToConsole(LOG_DEBUG, `[V.RP.Messaging] Showing small game message '${text}' using font ${fontName} for ${duration}ms`);
if (smallGameMessageText != "") {
clearTimeout(smallGameMessageTimer);
}
smallGameMessageFontName = fontName;
smallGameMessageColour = colour;
smallGameMessageText = text;
smallGameMessageTimer = setTimeout(function () {
smallGameMessageText = "";
smallGameMessageColour = COLOUR_WHITE;
smallGameMessageTimer = null;
smallGameMessageFontName = "";
}, duration);
}
// ===========================================================================