Scripts/resources/[ps]/ps-realtor/client/createProperty.lua

133 lines
3.7 KiB
Lua
Raw Permalink Normal View History

2024-12-29 20:28:24 +00:00
CreateProperty = {
creating = false,
street = "",
region = "",
description = "",
for_sale = 1,
price = 0,
shell = "",
door_data = nil,
garage_data = nil,
StartCreating = function(self)
self.creating = true
end,
CancelCreating = function(self)
self.creating = false
self.description = ""
self.for_sale = false
self.price = 0
self.shell = ""
self.door_data = nil
self.garage_data = nil
self.creating = false
end,
SetTextFields = function(self, data)
self.description = data.description
self.for_sale = data.for_sale
self.price = data.price
self.shell = data.shell
end,
PlacingZone = function(self, type)
local zoneDataPromise = promise.new()
ZoneThread(type, zoneDataPromise)
local zoneData = Citizen.Await(zoneDataPromise)
if not zoneData then return end
zoneData.x = math.floor(zoneData.x* 100) / 100
zoneData.y = math.floor(zoneData.y* 100) / 100
zoneData.z = math.floor(zoneData.z* 100) / 100
zoneData.h = math.floor(zoneData.h* 100) / 100
if type == "door" then
self.door_data = zoneData
self.door_data.locked = false
self.door_data.length = 1.5
self.door_data.width = 2.2
SendNUIMessage({
action = "createdDoor",
data = true
})
lib.notify({ description = 'Door was set!', type = 'success'})
elseif type == "garage" then
self.garage_data = zoneData
self.garage_data.length = 3.0
self.garage_data.width = 5.0
SendNUIMessage({
action = "createdGarage",
data = true
})
lib.notify({ description = 'Garage was set!', type = 'success'})
end
local streetHash = GetStreetNameAtCoord(zoneData.x, zoneData.y, zoneData.z)
self.street = GetStreetNameFromHashKey(streetHash)
local regionHash = GetNameOfZone(zoneData.x, zoneData.y, zoneData.z)
self.region = GetLabelText(regionHash)
end,
RemoveGarage = function(self)
self.garage_data = nil
SendNUIMessage({
action = "createdGarage",
data = nil
})
lib.notify({ description = 'Garage was removed!', type = 'error'})
end,
CreateProperty = function(self)
local data = {
street = self.street,
region = self.region,
description = self.description,
for_sale = self.for_sale,
price = self.price,
shell = self.shell,
door_data = self.door_data,
garage_data = self.garage_data,
}
TriggerServerEvent("ps-realtor:server:registerProperty", data)
lib.notify({ description = 'Property was created!', type = 'success'})
self:CancelCreating()
end,
}
RegisterNUICallback("create:startCreating", function(data, cb)
CreateProperty:StartCreating()
cb("ok")
end)
RegisterNUICallback("create:cancelCreating", function(data, cb)
CreateProperty:CancelCreating()
cb("ok")
end)
RegisterNUICallback("create:setTextFields", function(data, cb)
CreateProperty:SetTextFields(data)
cb("ok")
end)
RegisterNUICallback("create:confirmListing", function(data, cb)
CreateProperty:CreateProperty()
cb("ok")
end)
RegisterNUICallback("create:createZone", function(data, cb)
local type = data.type
SetNuiFocus(false, false)
CreateProperty:PlacingZone(type)
cb("ok")
end)
RegisterNUICallback("create:removeGarage", function(data, cb)
CreateProperty:RemoveGarage()
cb("ok")
end)