Add For Sale Sings for Unified Money

This commit is contained in:
1F616EMO 2024-06-05 18:40:04 +08:00
parent e667ca580a
commit d6e65af8f2
No known key found for this signature in database
GPG Key ID: EF52EFA8E05859B2
8 changed files with 130 additions and 60 deletions

View File

@ -88,6 +88,7 @@ func ParseConfig(filename string) (*Config, error) {
Locator: false,
Signs: true,
MapserverAirutils: true,
UnifiefMoneyAreaForSale: true,
}
mapblockaccessor := MapBlockAccessorConfig{

View File

@ -64,6 +64,7 @@ type MapObjectConfig struct {
Locator bool `json:"locator"`
Signs bool `json:"signs"`
MapserverAirutils bool `json:"mapserver_airutils"`
UnifiefMoneyAreaForSale bool `json:"um_area_forsale"`
}
type WebApiConfig struct {

View File

@ -72,3 +72,7 @@
* unifieddyes_palette_extended.png
* GPL 2.0
* Source: https://gitlab.com/VanessaE/unifieddyes
* um_area_forsale_sign_alpha.png
* By Gabriel Pérez-Cerezo; AGPL 3.0
* Modified from https://github.com/C-C-Minetest-Server/um_area_forsale/blob/main/textures/um_area_forsale_sign.png

View File

@ -184,5 +184,10 @@ func Setup(ctx *app.App) {
l.AddMapObject("default:sign_wall_steel", &SignBlock{Material: "steel"})
}
//For Sale Sign for Unified Money
if ctx.Config.MapObjects.UnifiefMoneyAreaForSale {
l.AddMapObject("um_area_forsale:for_sale_sign", &UnifiefMoneyAreaForSale{})
}
ctx.MapBlockAccessor.Eventbus.AddListener(&l)
}

View File

@ -0,0 +1,22 @@
package mapobject
import (
"mapserver/mapobjectdb"
"mapserver/types"
"github.com/minetest-go/mapparser"
)
type UnifiefMoneyAreaForSale struct{}
func (this *UnifiefMoneyAreaForSale) onMapObject(mbpos *types.MapBlockCoords, x, y, z int, block *mapparser.MapBlock) *mapobjectdb.MapObject {
md := block.Metadata.GetMetadata(x, y, z)
o := mapobjectdb.NewMapObject(mbpos, x, y, z, "um_area_forsale")
o.Attributes["owner"] = md["owner"]
o.Attributes["id"] = md["id"] // ", " seperated
o.Attributes["price"] = md["price"]
o.Attributes["description"] = md["description"]
return o
}

View File

@ -23,6 +23,7 @@ import TrainOverlay from './overlays/TrainOverlay.js';
import TrainsignalOverlay from './overlays/TrainsignalOverlay.js';
import SignOverlay from './overlays/SignOverlay.js';
import AirUtilsPlanesOverlay from "./overlays/AirUtilsPlanesOverlay.js";
import UnifiedMoneyAreaForSaleOverlay from './overlays/UnifiedMoneyAreaForSaleOverlay.js';
export default function(cfg, map, overlays, wsChannel){
@ -207,4 +208,11 @@ export default function(cfg, map, overlays, wsChannel){
}
}
if (cfg.mapobjects.um_area_forsale) {
overlays.UnifiedMoneyAreaForSale = new UnifiedMoneyAreaForSaleOverlay();
if (isDefault("um_area_forsale")) {
map.addLayer(overlays.UnifiedMoneyAreaForSale);
}
}
}

View File

@ -0,0 +1,29 @@
import AbstractIconOverlay from './AbstractIconOverlay.js';
import {HtmlSanitizer} from '../../lib/HtmlSanitizer.js';
export default AbstractIconOverlay.extend({
initialize: function() {
AbstractIconOverlay.prototype.initialize.call(this, "um_area_forsale");
},
getMaxDisplayedZoom: function(){
return 8;
},
getIcon: function(obj){
return L.icon({
iconUrl: "pics/um_area_forsale_sign_alpha.png",
iconSize: [32, 32],
iconAnchor: [16, 16],
popupAnchor: [0, -16]
});
},
createPopup: function(obj){
return "<h4>Area for sale</h4><hr>" +
"<b>Description:</b> $" + HtmlSanitizer.SanitizeHtml(obj.attributes.description || "N/A") + "<br>" +
"<b>Owner:</b> " + HtmlSanitizer.SanitizeHtml(obj.attributes.owner) + "<br>" +
"<b>Area IDs:</b> " + HtmlSanitizer.SanitizeHtml(obj.attributes.id) + "<br>" +
"<b>Price:</b> $" + HtmlSanitizer.SanitizeHtml(obj.attributes.price) + "<br>";
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B