mirror of
https://github.com/ND-Framework/ND_Core.git
synced 2026-08-16 21:46:03 +01:00
feat: vehicle metadata
This commit is contained in:
@@ -8,6 +8,7 @@ CREATE TABLE IF NOT EXISTS `nd_vehicles` (
|
||||
`stored` INT(11) DEFAULT '1',
|
||||
`impounded` INT(11) DEFAULT '0',
|
||||
`stolen` INT(11) DEFAULT '0',
|
||||
`metadata` LONGTEXT DEFAULT '[]',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `owner` (`owner`) USING BTREE,
|
||||
CONSTRAINT `vehowner` FOREIGN KEY (`owner`) REFERENCES `nd_characters` (`charid`) ON UPDATE CASCADE ON DELETE CASCADE
|
||||
|
||||
@@ -52,7 +52,8 @@ local function getVehicleDatabaseInfo(vehicle)
|
||||
stored = stored,
|
||||
impounded = impounded,
|
||||
stolen = vehicle.stolen == 1,
|
||||
available = not impounded and stored
|
||||
available = not impounded and stored,
|
||||
metadata = json.decode(vehicle.metadata) or {}
|
||||
}
|
||||
end
|
||||
|
||||
@@ -79,7 +80,7 @@ function NDCore.getVehicle(entity)
|
||||
properties = state.props,
|
||||
locked = state.locked,
|
||||
hotwired = state.hotwired,
|
||||
metadata = state.metadata,
|
||||
metadata = state.metadata or {},
|
||||
netId = NetworkGetNetworkIdFromEntity(entity)
|
||||
}
|
||||
|
||||
@@ -145,6 +146,18 @@ function NDCore.getVehicle(entity)
|
||||
return true
|
||||
end
|
||||
|
||||
function self.setMetadata(key, value)
|
||||
self.metadata[key] = value
|
||||
if DoesEntityExist(entity) then
|
||||
local state = Entity(self.entity).state
|
||||
local metadata = state.metadata
|
||||
metadata[key] = value
|
||||
state.metadata = metadata
|
||||
end
|
||||
if not self.id or not self.owner then return end
|
||||
MySQL.query("UPDATE nd_vehicles SET metadata = ? WHERE id = ?", {json.encode(self.metadata), self.id})
|
||||
end
|
||||
|
||||
if self.id and self.owner then
|
||||
spawnedPlayerVehicles[self.id] = self
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user