Add job labels
This commit is contained in:
@@ -12,12 +12,17 @@
|
||||
|
||||
let businessLabels = [];
|
||||
let houseLabels = [];
|
||||
let jobLabels = [];
|
||||
|
||||
let propertyLabelNameFont = null;
|
||||
let propertyLabelLockedFont = null;
|
||||
|
||||
let jobNameLabelFont = null;
|
||||
let jobHelpLabelFont = null;
|
||||
|
||||
let unlockedColour = toColour(50, 205, 50, 255);
|
||||
let lockedColour = toColour(205, 92, 92, 255);
|
||||
let jobHelpColour = toColour(234, 198, 126, 255);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
@@ -52,6 +57,20 @@ class houseLabelData {
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class jobLabelData {
|
||||
constructor(labelId, position, height, name, tempJobType, hidden) {
|
||||
this.labelId = labelId;
|
||||
this.position = position;
|
||||
this.height = height;
|
||||
this.name = name;
|
||||
this.jobType = tempJobType;
|
||||
this.hidden = hidden;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
addEventHandler("OnDrawnHUD", function(event) {
|
||||
@@ -60,8 +79,12 @@ addEventHandler("OnDrawnHUD", function(event) {
|
||||
}
|
||||
|
||||
for(let i in houseLabels) {
|
||||
renderPropertyLabel(houseLabels[i], true);
|
||||
}
|
||||
renderPropertyLabel(houseLabels[i], false);
|
||||
}
|
||||
|
||||
for(let i in jobLabels) {
|
||||
renderJobLabel(jobLabels[i]);
|
||||
}
|
||||
});
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -124,6 +147,15 @@ addNetworkHandler("ag.houselabel.all", function(tempHouseLabels) {
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
addNetworkHandler("ag.joblabel.all", function(tempJobLabels) {
|
||||
for(let i in tempJobLabels) {
|
||||
jobLabels.push(new jobLabelData(tempJobLabels[i][0], tempJobLabels[i][1], tempJobLabels[i][2], tempJobLabels[i][3], tempJobLabels[i][4], tempJobLabels[i][5]));
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
addNetworkHandler("ag.houselabel.name", function(labelId, name) {
|
||||
getHouseLabelData(labelId).name = name;
|
||||
return true;
|
||||
@@ -209,4 +241,43 @@ function renderPropertyLabel(labelData, isBusiness) {
|
||||
propertyLabelNameFont.render(text, [screenPosition.x-size[0]/2, screenPosition.y-size[1]/2], game.width, 0.0, 0.0, propertyLabelNameFont.size, COLOUR_WHITE, false, true, false, true);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
function renderJobLabel(labelData) {
|
||||
if(labelData.hidden) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(localPlayer == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(jobLabelNameFont == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(jobLabelLockedFont == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(localPlayer.position.distance(labelData.position) > 7.5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let tempPosition = labelData.position;
|
||||
let screenPosition = getScreenFromWorldPosition(tempPosition);
|
||||
|
||||
screenPosition.y -= labelData.height;
|
||||
|
||||
let text = (labelData.jobType == jobType) ? "Use /startwork to go on duty" : "Use /takejob to work for this job";
|
||||
let size = jobHelpLabelFont.measure(text, game.width, 0.0, 0.0, jobHelpLabelFont.size, true, true);
|
||||
jobHelpLabelFont.render(text, [screenPosition.x-size[0]/2, screenPosition.y-size[1]/2], game.width, 0.0, 0.0, jobHelpLabelFont.size, COLOUR_YELLOW, false, true, false, true);
|
||||
|
||||
screenPosition.y -= 18;
|
||||
|
||||
text = labelData.name;
|
||||
size = jobNameLabelFont.measure(text, game.width, 0.0, 0.0, jobNameLabelFont.size, true, true);
|
||||
jobNameLabelFont.render(text, [screenPosition.x-size[0]/2, screenPosition.y-size[1]/2], game.width, 0.0, 0.0, jobNameLabelFont.size, COLOUR_WHITE, false, true, false, true);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user