diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/__resource.lua b/resources/[EGRP-CarPacks]/EGRP-Emergency/__resource.lua index e0b010342..732514a22 100644 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/__resource.lua +++ b/resources/[EGRP-CarPacks]/EGRP-Emergency/__resource.lua @@ -165,21 +165,6 @@ data_file 'CARCOLS_FILE' 'data/swat1/carcols.meta' data_file 'VEHICLE_VARIATION_FILE' 'data/swat1/carvariations.meta' data_file 'VEHICLE_LAYOUTS_FILE' 'data/swat1/dlctext.meta' - --velocity - files { - 'data/velocity/vehicles.meta', - 'data/velocity/carvariations.meta', - 'data/velocity/carcols.meta', - 'data/velocity/handling.meta', - 'data/velocity/vehiclelayouts.meta', -} - -data_file 'HANDLING_FILE' 'data/velocity/handling.meta' -data_file 'VEHICLE_METADATA_FILE' 'data/velocity/vehicles.meta' -data_file 'CARCOLS_FILE' 'data/velocity/carcols.meta' -data_file 'VEHICLE_VARIATION_FILE' 'data/velocity/carvariations.meta' -data_file 'VEHICLE_LAYOUTS_FILE' 'data/velocity/dlctext.meta' - --EG-Sheriff files { 'data/EG-Sheriff/vehicles.meta', diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/2011 Crown Victoria.png b/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/2011 Crown Victoria.png deleted file mode 100644 index 0c533abb8..000000000 Binary files a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/2011 Crown Victoria.png and /dev/null differ diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/carcols.meta b/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/carcols.meta deleted file mode 100644 index 2e70d1f56..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/carcols.meta +++ /dev/null @@ -1,1599 +0,0 @@ - - - - - Maxing1CVPI_modkit - - MKT_SPECIAL - - - fs_rambar_11cvpi - fs_rambar_11cvpi - - - misc_c - - VMT_BUMPER_F - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_alprs_11cvpi - fs_alprs_11cvpi - - - - - VMT_TRUNK - boot - boot - VMCP_DEFAULT - - - - - - - - fs_alprs1_11cvpi - fs_alprs1_11cvpi - - - - - VMT_TRUNK - boot - boot - VMCP_DEFAULT - - - - - - - - fs_spotlightp_11cvpi - fs_spotlightp_11cvpi - - - - - VMT_WING_R - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_spotlightp1_11cvpi - fs_spotlightp1_11cvpi - - - - - VMT_WING_R - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_spotlightp2_11cvpi - fs_spotlightp2_11cvpi - - - - - VMT_WING_R - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_spotlightp3_11cvpi - fs_spotlightp3_11cvpi - - - - - VMT_WING_R - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_spotlightd_11cvpi - fs_spotlightd_11cvpi - - - - - VMT_WING_L - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_spotlightd1_11cvpi - fs_spotlightd1_11cvpi - - - - - VMT_WING_L - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_spotlightd2_11cvpi - fs_spotlightd2_11cvpi - - - - - VMT_WING_L - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_spotlightd3_11cvpi - fs_spotlightd3_11cvpi - - - - - VMT_WING_L - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_dashcam_11cvpi - fs_dashcam_11cvpi - - - - - VMT_ENGINEBAY1 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_dashcam1_11cvpi - fs_dashcam1_11cvpi - - - - - VMT_ENGINEBAY1 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_radar_11cvpi - fs_radar_11cvpi - - - - - VMT_CHASSIS - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_radar1_11cvpi - fs_radar1_11cvpi - - - - - VMT_CHASSIS - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_speaker1_11cvpi - fs_speaker1_11cvpi - - - - VMT_PLTVANITY - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_speaker2_11cvpi - fs_speaker2_11cvpi - - - - VMT_PLTVANITY - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_speaker3_11cvpi - fs_speaker3_11cvpi - - - - VMT_PLTVANITY - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_wrap_11cvpi - fs_wrap_11cvpi - - - - - VMT_BONNET - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_wrap1_11cvpi - fs_wrap1_11cvpi - - - - - VMT_BONNET - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumperg_11cvpi - fs_jumperg_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumperg1_11cvpi - fs_jumperg1_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumperr_11cvpi - fs_jumperr_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumperr1_11cvpi - fs_jumperr1_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumpery_11cvpi - fs_jumpery_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumpery1_11cvpi - fs_jumpery1_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumperb_11cvpi - fs_jumperb_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_jumperb1_11cvpi - fs_jumperb1_11cvpi - - - - - VMT_KNOB - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs_partition_11cvpi - fs_partition_11cvpi - - - - - VMT_CHASSIS2 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna1-11cvpi - fs-antenna1-11cvpi - - - - - VMT_CHASSIS3 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna2-11cvpi - fs-antenna2-11cvpi - - - - - VMT_CHASSIS3 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna3-11cvpi - fs-antenna3-11cvpi - - - - - VMT_CHASSIS3 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna4-11cvpi - fs-antenna4-11cvpi - - - - - VMT_CHASSIS3 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna5-11cvpi - fs-antenna5-11cvpi - - - - - VMT_CHASSIS3 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna6-11cvpi - fs-antenna6-11cvpi - - - - - VMT_CHASSIS3 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna7-11cvpi - fs-antenna7-11cvpi - - - - - VMT_CHASSIS3 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna8-11cvpi - fs-antenna8-11cvpi - - - - - VMT_CHASSIS4 - boot - boot - VMCP_DEFAULT - - - - - - - - fs-antenna9-11cvpi - fs-antenna9-11cvpi - - - - - VMT_CHASSIS4 - boot - boot - VMCP_DEFAULT - - - - - - - - fs-antenna10-11cvpi - fs-antenna10-11cvpi - - - - - VMT_CHASSIS4 - boot - boot - VMCP_DEFAULT - - - - - - - - fs-antenna11-11cvpi - fs-antenna11-11cvpi - - - - - VMT_CHASSIS4 - boot - boot - VMCP_DEFAULT - - - - - - - - fs-antenna12-11cvpi - fs-antenna12-11cvpi - - - - - VMT_CHASSIS4 - boot - boot - VMCP_DEFAULT - - - - - - - - fs-antenna13-11cvpi - fs-antenna13-11cvpi - - - - - VMT_CHASSIS4 - boot - boot - VMCP_DEFAULT - - - - - - - - fs-antenna14-11cvpi - fs-antenna14-11cvpi - - - - - VMT_CHASSIS4 - boot - boot - VMCP_DEFAULT - - - - - - - - fs-antenna15-11cvpi - fs-antenna15-11cvpi - - - - - VMT_INTERIOR5 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna16-11cvpi - fs-antenna16-11cvpi - - - - - VMT_INTERIOR5 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna17-11cvpi - fs-antenna17-11cvpi - - - - - VMT_INTERIOR5 - chassis - chassis - VMCP_DEFAULT - - - - - - - - fs-antenna18-11cvpi - fs-antenna18-11cvpi - - - - - VMT_INTERIOR5 - chassis - chassis - VMCP_DEFAULT - - - - - - - - - - VMT_PLTVANITY - Speakers - - - VMT_BONNET - Wrap_Arounds - - - VMT_KNOB - Jumpers - - - VMT_PLAQUE - Bonnet_Logos - - - VMT_CHASSIS - Radar - - - VMT_CHASSIS1 - Partition - - - VMT_ENGINEBAY1 - Dashcam - - - VMT_WING_L - Driver Spotlight - - - VMT_WING_R - Passenger Spotlight - - - - - - - - Maxing1CVPI - - - - - - - VehicleLight_sirenlight - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/carvariations.meta b/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/carvariations.meta deleted file mode 100644 index 360abd442..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/carvariations.meta +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - Maxing1CVPI - - - - 0 - 111 - 0 - 143 - 0 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - oldfedsig11cvpi_modkit - - - - - - Police guv plate - - - - - - - - - \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/handling.meta b/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/handling.meta deleted file mode 100644 index dcc06f662..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/handling.meta +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - Maxing1CVPI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 440010 - 820100 - 0 - AVERAGE - - - - - - - - - - - - \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/vehicles.meta b/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/vehicles.meta deleted file mode 100644 index e9ed7df64..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/Maxing1CVPI/vehicles.meta +++ /dev/null @@ -1,134 +0,0 @@ - - - vehshare - - - - Maxing1CVPI - Maxing1CVPI - Maxing1CVPI - Maxing1CVPI - - null - null - - - - null - cvpiv8 - LAYOUT_STD_HIGHWINDOW - SHERIFF_COVER_OFFSET_INFO - EXPLOSION_INFO_DEFAULT - - DEFAULT_FOLLOW_VEHICLE_CAMERA - DEFAULT_THIRD_PERSON_VEHICLE_AIM_CAMERA - VEHICLE_BONNET_CAMERA_MID_HIGH - DEFAULT_POV_CAMERA - - - - - - - - - - - - - - - - - - - - - - - - - - - - VFXVEHICLEINFO_CAR_GENERIC - - - - - - - - - - - - - - - - - - - - - - 1500.000000 - 3000.000000 - 7000.000000 - 14000.000000 - 50000.000000 - 50000.000000 - - - - - - - - - - - SWANKNESS_4 - - FLAG_BOOT_IN_FRONT FLAG_SPORTS FLAG_HAS_LIVERY FLAG_EXTRAS_STRONG FLAG_EXTRAS_REQUIRE FLAG_LAW_ENFORCEMENT FLAG_EMERGENCY_SERVICE FLAG_HAS_INTERIOR_EXTRAS FLAG_DONT_SPAWN_AS_AMBIENT FLAG_DONT_SPAWN_IN_CARGEN FLAG_NO_RESPRAY - VEHICLE_TYPE_CAR - VPT_FRONT_AND_BACK_PLATES - VDT_RACE - VC_EMERGENCY - VWT_SPORT - - - - S_M_Y_Cop_01 - - - - - - - - - - - REWARD_STAT_WEAPON - - - WHEEL_FRONT_RIGHT_CAMERA - WHEEL_FRONT_LEFT_CAMERA - WHEEL_REAR_RIGHT_CAMERA - WHEEL_REAR_LEFT_CAMERA - - - - - - - STD_POLICE_FRONT_LEFT - STD_POLICE_FRONT_RIGHT - STD_POLICE_REAR_LEFT - STD_POLICE_REAR_RIGHT - - - - \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI+hi.ytd b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI+hi.ytd deleted file mode 100644 index 70e28ed19..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI+hi.ytd +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7173f114f8c309fb649a20b911da1235bbde3837ee2618fbe8547bf9ca4b2045 -size 3181173 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI.yft deleted file mode 100644 index f2064d689..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e8b0daed3c467e109e206b612be528b0905189ff18345fa6198ae3add6f2ffc3 -size 3626385 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI.ytd b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI.ytd deleted file mode 100644 index f4cf16175..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI.ytd +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:97120672d96413d2b8e027ab6baeb3cfc44cad492193a8ab2e98faef6b6fe49a -size 8013926 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI_hi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI_hi.yft deleted file mode 100644 index d0591f25a..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/Maxing1CVPI_hi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d5096b0fd3f1a24324fe99776d06d1617ad5dbbbcdbda28000c8e49bae05690 -size 4516179 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna1-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna1-11cvpi.yft deleted file mode 100644 index cb35f4990..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna1-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9c07796d7e106ef9871c4e75e3a6031952c7bc6ac284ce74c2b94aa7eb67a985 -size 21755 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna10-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna10-11cvpi.yft deleted file mode 100644 index f2450173b..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna10-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:470aa207f96843bf3ef08715286abd93e027e9ef5da88ea83c063c421e5c9981 -size 24733 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna11-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna11-11cvpi.yft deleted file mode 100644 index 863d630ef..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna11-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da81eca5d969933f5d65997eed46a6fb4acc9193d5d68e1e8fc69237fa9c2878 -size 27490 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna12-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna12-11cvpi.yft deleted file mode 100644 index 825711166..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna12-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1a8048469bcf0c2485708e6db735f30fa3162a6094c7360077f3c8125dbac5b -size 34028 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna13-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna13-11cvpi.yft deleted file mode 100644 index 8ac03d109..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna13-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7174479937306f19fde2a71578f83ae8f2296758455a086107ef5635ca38713d -size 986057 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna14-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna14-11cvpi.yft deleted file mode 100644 index aa0c813f1..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna14-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:62a2faf600a8d45ad0c43e0b013e5b88d958c0921cf34c5d11ad81a89f7d4c9f -size 115339 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna15-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna15-11cvpi.yft deleted file mode 100644 index 216362ca6..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna15-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9438828c39859e730aa9d8547e44a3d74e7ff5aac009fd96b474ae9bb0dce2b -size 19091 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna16-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna16-11cvpi.yft deleted file mode 100644 index 475c11a93..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna16-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1b802c854694dd3d4ac618ba3109cb7285df6fdfcdcc9df72b8a229ef4a4e23a -size 18704 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna17-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna17-11cvpi.yft deleted file mode 100644 index 732a8c56b..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna17-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4ae2236a3fcc4f01b3b0944e10637826aa8edc16149e0cfb9a59ffff5347924f -size 18585 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna18-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna18-11cvpi.yft deleted file mode 100644 index ccf416100..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna18-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b340e09653c9ece6e605d472f34528287f5e67f4ef75e15c87e68420d2a6d33 -size 20770 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna2-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna2-11cvpi.yft deleted file mode 100644 index 58e328975..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna2-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f756e7da0d10bbcc49d0f912cf22abbef1b3ea4d906a4418e8ecbe78b1eb8e58 -size 40529 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna3-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna3-11cvpi.yft deleted file mode 100644 index dccf1d45b..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna3-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:632afad8e3a020a0766b5da9c4b8195e004488d54cd61a989bb555b50590b242 -size 24453 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna4-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna4-11cvpi.yft deleted file mode 100644 index 0da2dab3c..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna4-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8945f7654234571c4248444161188456dd0eff77443789630e13738031a03eb8 -size 27458 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna5-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna5-11cvpi.yft deleted file mode 100644 index 2a13e9c6d..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna5-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b03808e414276154377db8506dde16ab39d2a359ec401e63790c8c3510e5d68c -size 33877 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna6-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna6-11cvpi.yft deleted file mode 100644 index a494a5715..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna6-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1f11df12bfe06edde08d5a52a791a06504bc10a5d6874a1d31da32ca0a494b6a -size 986299 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna7-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna7-11cvpi.yft deleted file mode 100644 index b725f6958..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna7-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43611c92a84700c303c56ba80a5233231240e92ec05ceb2a3d9424a31e791940 -size 111842 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna8-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna8-11cvpi.yft deleted file mode 100644 index feff50983..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna8-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:46e2415e67922dbcfe628c55f4bccba1dd4aa609b9033fc1d8e7147731274fe8 -size 987144 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna9-11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna9-11cvpi.yft deleted file mode 100644 index 8d6b3fe73..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs-antenna9-11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f3ecb161399548f1f5685850866acfbff0673e7976f2c02da45e5b7a486daba -size 41120 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_alprs1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_alprs1_11cvpi.yft deleted file mode 100644 index 5ea4c55e6..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_alprs1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6fc2fd65f703ab57ea3422ffc733fedab1a711df8eec0a55f8127566e213dd32 -size 1428198 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_alprs_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_alprs_11cvpi.yft deleted file mode 100644 index 2e4143d2e..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_alprs_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e3e540e366e78a0867fc0117f5d6029fdb2c21bc7ac3271b28b420fb6769a81 -size 1106216 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_dashcam1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_dashcam1_11cvpi.yft deleted file mode 100644 index d95853123..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_dashcam1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:05722c336575adcae59f27abd8463dec96fdd96c486543fb674488f290ffdda4 -size 89060 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_dashcam_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_dashcam_11cvpi.yft deleted file mode 100644 index c8c3df24f..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_dashcam_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45d68351d8c68578cd9ed54730aae05c874c97927a59921bd0305a7cc5438b85 -size 114919 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperb1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperb1_11cvpi.yft deleted file mode 100644 index a477cbf52..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperb1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95d732f8f8f62129978b86050b43b76a18085ab268973b5cf6b092819a4f4504 -size 1207085 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperb_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperb_11cvpi.yft deleted file mode 100644 index 672f0b9ad..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperb_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:242a30b43d6c3026d461c9720b7fb5d4f0641d8d89a423bb31df6e574fc14d32 -size 1205076 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperg1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperg1_11cvpi.yft deleted file mode 100644 index b75d1340b..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperg1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:42fb271226236fd9f8e52de40f19b0a5a4a23d4aa9163d4417da3dc26fd7745c -size 1208424 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperg_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperg_11cvpi.yft deleted file mode 100644 index da3ef6602..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperg_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc2ff0efe349c605dda7a773b996e095ddf17dc6b841a0eff5008dfcc7170875 -size 1206747 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperr1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperr1_11cvpi.yft deleted file mode 100644 index 6efe107fb..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperr1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:446918fc4100f7e0d2fd2320d88f41fbd6968af81a2f1350c34ce929fa801424 -size 1207099 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperr_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperr_11cvpi.yft deleted file mode 100644 index 81e3416e1..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumperr_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ff703bd5528436a43d9e4fe750b75a2f8e709429bf4eb9fc1173b1f76e1b849 -size 1205097 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumpery1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumpery1_11cvpi.yft deleted file mode 100644 index 38ac97ad4..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumpery1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:59a90a40789ded92a4c01b6134de09c42f6d7b585d5370b0f8f305954ffd759b -size 1207114 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumpery_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumpery_11cvpi.yft deleted file mode 100644 index 6dff03edc..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_jumpery_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8d20917a320f5dcb768cab66cdc8642f9f344dedf84f7f3bc93a08f6ff085d83 -size 1205103 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_partition_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_partition_11cvpi.yft deleted file mode 100644 index a7cc63dd2..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_partition_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2eb6f335781a94039521bbe51250bd84dd41611404031aa4f4f13cf16d4dafea -size 246106 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_radar1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_radar1_11cvpi.yft deleted file mode 100644 index f2addadf1..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_radar1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:575866f35c83d18761f843742186bc35c3f452232e41b7453a00f0028d9638a3 -size 779628 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_radar_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_radar_11cvpi.yft deleted file mode 100644 index 2176b514f..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_radar_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e14135defe2512f47ad111baebfad5e797767e880ee18677d4a62a7ddc9658f -size 779462 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_rambar_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_rambar_11cvpi.yft deleted file mode 100644 index 5cb8d10ab..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_rambar_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23d15db5dd060d83ac6bd949c9720361d0d20606e0c3caef54964a7165db9565 -size 1760 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker1_11cvpi.yft deleted file mode 100644 index bf4065826..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68a8a5767fae51ae6baca0c39392cd512d57e1e60adb5fcc0394b8f220a63ac8 -size 655734 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker2_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker2_11cvpi.yft deleted file mode 100644 index 4ae427a3e..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker2_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7dfb93b7bfddbd1dd63d745c28e66c6605cf5590edae723b5c6ad62d11699350 -size 657332 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker3_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker3_11cvpi.yft deleted file mode 100644 index 1954b180e..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_speaker3_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:04ec8be7063ff47ba5862e2d7cd9a66b3e231c618c6ec6eb0afc720a377d5f3b -size 658647 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd1_11cvpi.yft deleted file mode 100644 index c827cf580..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7842b2bb03f54f9e2c8171337ca0741bf4fa381726b88adab890bf86c5741d7 -size 128336 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd2_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd2_11cvpi.yft deleted file mode 100644 index 86b14fc82..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd2_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:586a823525cdba898551b84d90b66a18d92315ce249f2318c4c2312d5df47488 -size 128814 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd3_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd3_11cvpi.yft deleted file mode 100644 index ca82b08bc..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd3_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f1c38140a71ec77fd094800acea49302ceaf809ccae0b99f7818a6d61b894e95 -size 128709 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd_11cvpi.yft deleted file mode 100644 index 867e9e0a9..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightd_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52781f93395948153734ac7564c630b72f836f855e96347a027e84d1200e662e -size 119528 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp1_11cvpi.yft deleted file mode 100644 index f279155e2..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:525a9d0a19450891ab70582903b2e5c1da77295e0614cfa8b94147dc6ba0b2ab -size 127284 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp2_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp2_11cvpi.yft deleted file mode 100644 index 940ff938d..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp2_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af3e2a94c2133a53a14b80f677e1bac990109921cd193d8093e43e34b8cbc1c3 -size 127220 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp3_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp3_11cvpi.yft deleted file mode 100644 index 9d63c3f0e..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp3_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:facc5b6cf42f0e0a6625504ecb12259d45016c4929c8f9c335d906ebbfb54ec5 -size 127110 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp_11cvpi.yft deleted file mode 100644 index 6520f1a5f..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_spotlightp_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e86d296b5f29774044e71827affc550cd0957fe754c29a526fb1d5bd9f3be58 -size 118806 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_wrap1_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_wrap1_11cvpi.yft deleted file mode 100644 index 3d9624fbe..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_wrap1_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7938ae0c5b60a4a9adac0ed1a4c834dc2d18e346d113ee2a7564c1a68b21208 -size 240271 diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_wrap_11cvpi.yft b/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_wrap_11cvpi.yft deleted file mode 100644 index 1233c944f..000000000 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/Maxing1CVPI/modkits/fs_wrap_11cvpi.yft +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79a33f618073c9bf94ca5309a3bee3b9ef21dd751af0b5bdf9570c8f3b9bc2f9 -size 150500 diff --git a/resources/[EGRP-CarPacks]/EGRP-Industrial/data/Ford9000/vehicles.meta b/resources/[EGRP-CarPacks]/EGRP-Industrial/data/Ford9000/vehicles.meta index 833bd3132..5352878d7 100644 --- a/resources/[EGRP-CarPacks]/EGRP-Industrial/data/Ford9000/vehicles.meta +++ b/resources/[EGRP-CarPacks]/EGRP-Industrial/data/Ford9000/vehicles.meta @@ -15,7 +15,7 @@ null null - PHANTOM + kc85cumminsb67 LAYOUT_RANGER_SANDKING PHANTOM_COVER_OFFSET_INFO EXPLOSION_INFO_TRUCK diff --git a/resources/[EGRP-CarPacks]/EGRP-Industrial/data/kw900/vehicles.meta b/resources/[EGRP-CarPacks]/EGRP-Industrial/data/kw900/vehicles.meta index 6eaf573ad..0e2bf94bb 100644 --- a/resources/[EGRP-CarPacks]/EGRP-Industrial/data/kw900/vehicles.meta +++ b/resources/[EGRP-CarPacks]/EGRP-Industrial/data/kw900/vehicles.meta @@ -15,7 +15,7 @@ null null - PHANTOM + kc129powerstroke60 LAYOUT_TRUCK_TOW PHANTOM_COVER_OFFSET_INFO EXPLOSION_INFO_TRUCK diff --git a/resources/[EGRP-CarPacks]/EGRP-Industrial/data/pete352custom/vehicles.meta b/resources/[EGRP-CarPacks]/EGRP-Industrial/data/pete352custom/vehicles.meta index 687c871cb..22d82af8a 100644 --- a/resources/[EGRP-CarPacks]/EGRP-Industrial/data/pete352custom/vehicles.meta +++ b/resources/[EGRP-CarPacks]/EGRP-Industrial/data/pete352custom/vehicles.meta @@ -15,7 +15,7 @@ null null - PHANTOM + kc129powerstroke60 LAYOUT_RANGER_SANDKING PHANTOM_COVER_OFFSET_INFO EXPLOSION_INFO_TRUCK diff --git a/resources/[EGRP-Discord-Integration]/Discord-VehRestriction/config.lua b/resources/[EGRP-Discord-Integration]/Discord-VehRestriction/config.lua index 89997a99a..8190eb6d3 100644 --- a/resources/[EGRP-Discord-Integration]/Discord-VehRestriction/config.lua +++ b/resources/[EGRP-Discord-Integration]/Discord-VehRestriction/config.lua @@ -10,7 +10,6 @@ Config.VehicleRestrictions = { "Staff-gtwinturbocobra", "Staff-kgbearcat", "Staff-c3ghoulmarked", - "Staff-c322legacyexpd", "Staff-hpescal21", "Staff-23gsbb" }, @@ -87,9 +86,9 @@ Config.VehicleRestrictions = { ['EG | Server Developer'] = { "Staff-Buggy", "Staff-DMLEOF82", - "Staff-gtwinturbocobra", + "maxdarkhorse", "Staff-kgbearcat", - "Staff-c3ghoulmarked", + "maxfirebison", "Staff-23gsbb", "Staff-c322legacyexpd", "Staff-hpescal21", @@ -100,9 +99,9 @@ Config.VehicleRestrictions = { ['EG | Owner'] = { "Staff-Buggy", "Staff-DMLEOF82", - "Staff-gtwinturbocobra", + "maxdarkhorse", "Staff-kgbearcat", - "Staff-c3ghoulmarked", + "maxfirebison", "Staff-23gsbb", "Staff-c322legacyexpd", "Staff-hpescal21", @@ -111,8 +110,8 @@ Config.VehicleRestrictions = { "Staff-c322prsilv" }, ['Silver Supporter 🥈'] = { - "r8v10", - "18performante" + "mxxraprb", + "EGRPBearcat" }, ['Gold Supporter 🥇'] = { "bdivo", diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/fxmanifest.lua b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/fxmanifest.lua new file mode 100644 index 000000000..4db87b8b0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/fxmanifest.lua @@ -0,0 +1,13 @@ +fx_version 'bodacious' +game 'gta5' +this_is_a_map 'yes' + +escrow_ignore { + 'stream/*.ytd', + 'stream/*.ytyp', + 'stream/*.ymap', + 'stream/*.ybn' +} + + +dependency '/assetpacks' \ No newline at end of file diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/_manifest.ymf b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/_manifest.ymf new file mode 100644 index 000000000..44410a081 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/_manifest.ymf differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_9.ybn b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_9.ybn new file mode 100644 index 000000000..f651ca4f8 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_9.ybn differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_cattleshade03.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_cattleshade03.ydr new file mode 100644 index 000000000..478fb6530 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_cattleshade03.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba859da20614722a16bb781b31c0a34b6dece6c353ab4cdb2160b0e8d0b0a3ed +size 381978 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_frmland4.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_frmland4.ydr new file mode 100644 index 000000000..eba368c12 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_03_frmland4.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c472963c0627eb21e25da041de628d06fb42e733e08609fa46b676ef2398b30f +size 437710 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_occl_03.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_occl_03.ymap new file mode 100644 index 000000000..854dc2352 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/cs2_occl_03.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b652b2561e08a4f03b362bccdd0f140b49f463715e186b40cc4584b422935ce +size 22795 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/grapeseed.ymt b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/grapeseed.ymt new file mode 100644 index 000000000..88ece0632 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/grapeseed.ymt differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03.ymap new file mode 100644 index 000000000..d01f69a2b --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eb57f6693f50d346208eef98343e701f19e7e643b9f2f017f7405901878bd05 +size 15833 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_critical_0.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_critical_0.ymap new file mode 100644 index 000000000..ae81f53b9 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_critical_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:876cee5b715816e02c69bc274891ffb4dd33dcf65a6a3f3851b48ef2c0d875af +size 8021 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_grass_0.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_grass_0.ymap new file mode 100644 index 000000000..f5c29a3d1 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_grass_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7505b93f6ffeeb86a592ede15b54286120ac482684995e4cdf49925090edd8b9 +size 1446525 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_long_0.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_long_0.ymap new file mode 100644 index 000000000..1c809b2dc --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_long_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09c97568a12f1b23fc4c4c9f8fbbb2ff14f4304547764459c224e87a15de9a1f +size 20596 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_strm_0.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_strm_0.ymap new file mode 100644 index 000000000..4e457e015 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_strm_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:817ebbe13d263daedfd456815894d4a7f44654bd28eeb2ce90c6908f7fc0e235 +size 15998 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_strm_2.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_strm_2.ymap new file mode 100644 index 000000000..f833b37c0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_03_strm_2.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59c30f4811064e0c6bf36dd62eccbe1ee7f15336ec9444f1340f0f8f9ccfcab +size 16254 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_roads_strm_0.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_roads_strm_0.ymap new file mode 100644 index 000000000..75693d462 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_roads_strm_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8024215c4b99aed1e326bd0981053d894961158193afbdcfaa1e1d6d23c30882 +size 18447 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_roadsb_strm_0.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_roadsb_strm_0.ymap new file mode 100644 index 000000000..960c785ac --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hei_cs2_roadsb_strm_0.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a90087f02a0336f4ad6875731b7e9fca323ea9065edd011194db54842c0cef0b +size 3830 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hi@cs2_03_15.ybn b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hi@cs2_03_15.ybn new file mode 100644 index 000000000..9e493a004 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/hi@cs2_03_15.ybn differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_bathroom_d.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_bathroom_d.ydr new file mode 100644 index 000000000..0cc92a1e5 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_bathroom_d.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb302da98723a94373f6b8e58aac51354f99c982c8abb44e5c27752cd3401adc +size 209542 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_col.ybn b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_col.ybn new file mode 100644 index 000000000..84d17ed4c Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_col.ybn differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_desk.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_desk.ydr new file mode 100644 index 000000000..466161a90 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_desk.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa2a8f9435b3d04f680a31eeecc34b977ec9cb97ee2d305a0822e51555f9b9a1 +size 193222 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_dirt_decals.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_dirt_decals.ydr new file mode 100644 index 000000000..0895ff732 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_dirt_decals.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:457f4e0115d5d7a2b1cff39ba19d2b7e2fd11f7e23758b806f0364f4dda28c20 +size 90179 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_distantlights.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_distantlights.ymap new file mode 100644 index 000000000..f942ad93a --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_distantlights.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe2f693823e1ebbe1b244d6e552c57e4c1956dad0986e502b18db6772c6b9322 +size 992 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ymap new file mode 100644 index 000000000..775765f91 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:362fdf8d1d76b07236ba0b12a349f30be7f8b0f350cd63faefecd24f67529d33 +size 1594 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ytd b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ytd new file mode 100644 index 000000000..f99a65ad3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:163b10d3fc4620df2110944ccfaf7f6e1272cb8c9fcc23581a14a3663fcc52d5 +size 2870095 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ytyp b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ytyp new file mode 100644 index 000000000..6e1bcd261 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_exterior.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ex_col.ybn b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ex_col.ybn new file mode 100644 index 000000000..b412fa7c9 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ex_col.ybn differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_exterior.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_exterior.ydr new file mode 100644 index 000000000..16fe07ccb --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_exterior.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:754b043bf16078987e13c2fa70b79658b067ee16a71fd11a51d21fbedc0412f5 +size 213702 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ground.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ground.ydr new file mode 100644 index 000000000..77e075820 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ground.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afd2eaef99c23c942eefd19e335522822abb9f237197f08af17fb22c8e126f48 +size 5272 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ground_col.ybn b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ground_col.ybn new file mode 100644 index 000000000..e9866c953 Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_firestation_ground_col.ybn differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_frontdoor.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_frontdoor.ydr new file mode 100644 index 000000000..f1b3b4093 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_frontdoor.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b265f1d3bedf4617f87b926a14eb10d50ec02381847be7ad46a41e737a460e6 +size 77012 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_door.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_door.ydr new file mode 100644 index 000000000..514fc6ee0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_door.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11b2d225405b7d94983bac8ab29d61254c8bac186fd9846c06c638e648c68dcd +size 31302 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_lights.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_lights.ydr new file mode 100644 index 000000000..4b5d279e1 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_lights.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:443b3132b1fff505268412dbef231ef2feabe7a5c2311c4fa1cc8e2a67c181dc +size 105466 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_vac.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_vac.ydr new file mode 100644 index 000000000..fdeb202ec --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_vac.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f04f6471f4af1ad5fa50c6be4ffdb4d531e06f7775e988ce630fd22dedaba294 +size 133123 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_vents.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_vents.ydr new file mode 100644 index 000000000..3ecb1aaf3 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_garage_vents.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bb0271c65c80cb74abf10d72a6ce6ee012f1fbd071f284a4ccab992f647fdb0 +size 408338 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_glass.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_glass.ydr new file mode 100644 index 000000000..8e8242cb6 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_glass.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:702431ee1530124581c5fc848251c8dabda96c43543b9e477fa65e22c1615ce6 +size 20668 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_interior.ytd b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_interior.ytd new file mode 100644 index 000000000..0ee43a639 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_interior.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19b7af29e48023b3410e0280fb085c0b31caea461ffeb92929aade383d4a6ff6 +size 3235557 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_interior_d.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_interior_d.ydr new file mode 100644 index 000000000..b68a43398 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_interior_d.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:928be9c9aba7013e390dd44e82731503da8ea28b74385b7f293d87b7f1575747 +size 280561 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_kit.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_kit.ydr new file mode 100644 index 000000000..212457fbf --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_kit.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a98d044efd1645f72cc202eb559415f96449a23e04d1b8e5329c334b4eeed2c +size 1919318 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_lodlights.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_lodlights.ymap new file mode 100644 index 000000000..136e87c86 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_lodlights.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22454d3f6aa792c5c93a82fd0ecbe72773a557636ad59251d4c9e128250a365c +size 1012 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_main_det.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_main_det.ydr new file mode 100644 index 000000000..7c63f14a0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_main_det.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d624cbc729ba6134b17869e84667cb54117621e61ec9e03b44bd555fb765a4a2 +size 234101 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_main_frames.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_main_frames.ydr new file mode 100644 index 000000000..1b98320d2 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_main_frames.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6203e839766639e7192b4c936bfd6ae82f258201dd46d74f9b7ac43623c98b93 +size 7953 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_mlo.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_mlo.ymap new file mode 100644 index 000000000..292241aa2 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_mlo.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3806cc648e3838d597c8c461c7184ad2d07d56ebac7d7e7f41d73dc949c4cd07 +size 1173 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_parking.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_parking.ydr new file mode 100644 index 000000000..fe540604d --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_parking.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbca397b7f6195bcc5a9e31ebb96949c8930c51525034d139c09753d54f87cf3 +size 156199 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_pictureframe.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_pictureframe.ydr new file mode 100644 index 000000000..a1d4e6d1f --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_pictureframe.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ddecbeed1e8a3dc94873e94eae6e542855102fee00db1b33c21ac425267d662 +size 7743 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_shell.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_shell.ydr new file mode 100644 index 000000000..e5f2e0656 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_shell.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef43a671c32802d414fa106af87c9d4e12e87922fca90dcc7b1b319ae0082645 +size 33191 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_sidedoor.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_sidedoor.ydr new file mode 100644 index 000000000..13d4bbbb0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_sidedoor.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:683c3eff691280568c3ca8d4a349ab608bcc95f96eb959809aedff1f306fc0fa +size 174748 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_sign.ydr b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_sign.ydr new file mode 100644 index 000000000..0941888e1 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_sign.ydr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ec6925d1116b9881d926cfce8e2e788e8cfd6c44069746363440dd21efdf181 +size 8153 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_ytyp.ytyp b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_ytyp.ytyp new file mode 100644 index 000000000..818ec74af Binary files /dev/null and b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/otto_grape_ytyp.ytyp differ diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/vw_distlodlights_medium005.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/vw_distlodlights_medium005.ymap new file mode 100644 index 000000000..7b0d7336e --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/vw_distlodlights_medium005.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14c7325f52a8c822c9f0a024a5baf024680fa18b0e9ac7402595130ff77e1df4 +size 3533 diff --git a/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/vw_lodlights_medium005.ymap b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/vw_lodlights_medium005.ymap new file mode 100644 index 000000000..2228b55e0 --- /dev/null +++ b/resources/[EGRP-Map-Addons]/otto_grapeseed_firestation/stream/vw_lodlights_medium005.ymap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f792449fc64872ddfb43bfad170db2af57ecdfc263fa17ab23a93861846d6f87 +size 4076 diff --git a/resources/flashbang/Flashbang.Client.net.dll b/resources/flashbang/Flashbang.Client.net.dll index f6caec5d7..188c31e26 100644 Binary files a/resources/flashbang/Flashbang.Client.net.dll and b/resources/flashbang/Flashbang.Client.net.dll differ diff --git a/resources/flashbang/Flashbang.Server.net.dll b/resources/flashbang/Flashbang.Server.net.dll new file mode 100644 index 000000000..0d579811e Binary files /dev/null and b/resources/flashbang/Flashbang.Server.net.dll differ diff --git a/resources/flashbang/Newtonsoft.Json.dll b/resources/flashbang/Newtonsoft.Json.dll new file mode 100644 index 000000000..0395b1e92 Binary files /dev/null and b/resources/flashbang/Newtonsoft.Json.dll differ diff --git a/resources/flashbang/__resource.lua b/resources/flashbang/__resource.lua index 4bc265068..428bdc114 100644 --- a/resources/flashbang/__resource.lua +++ b/resources/flashbang/__resource.lua @@ -1,5 +1,6 @@ --[[ Scripted By: Xander1998 (X. Cross) + Modified By: Eddie (Eddbox LP) Model Ported & META's redone By: xRxExTxRxOx --]] diff --git a/resources/flashbang/config.json b/resources/flashbang/config.json new file mode 100644 index 000000000..c06635c42 --- /dev/null +++ b/resources/flashbang/config.json @@ -0,0 +1,7 @@ +{ + "stuntime" : 8, + "aftertime" : 8, + "range" : 20.0, + "damage" : 25, + "lethalrange" : 1.6 +} diff --git a/resources/flashbang/data/contentunlocks.meta b/resources/flashbang/data/contentunlocks.meta new file mode 100644 index 000000000..5742f1b6b --- /dev/null +++ b/resources/flashbang/data/contentunlocks.meta @@ -0,0 +1,6 @@ + + + + CU_WEP_FLASHBANG + + \ No newline at end of file diff --git a/resources/flashbang/data/dlctext.meta b/resources/flashbang/data/dlctext.meta new file mode 100644 index 000000000..aa51c38a4 --- /dev/null +++ b/resources/flashbang/data/dlctext.meta @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/flashbang/data/explosion.meta b/resources/flashbang/data/explosion.meta new file mode 100644 index 000000000..c8322be45 --- /dev/null +++ b/resources/flashbang/data/explosion.meta @@ -0,0 +1,38 @@ + + + + + EXP_TAG_FLASH + + + + + + + + + + + + + GRENADE_EXPLOSION_SHAKE + + + + + + EXP_VFXTAG_FLASH + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/flashbang/data/explosionfx.dat b/resources/flashbang/data/explosionfx.dat new file mode 100644 index 000000000..6b3fe484e --- /dev/null +++ b/resources/flashbang/data/explosionfx.dat @@ -0,0 +1,46 @@ +4.00 + +# COLN TYPE: 1-ground plane, 2-ground bound, 3-vehicle up + +# PTFX ------------------------------------------------------------------------------------------------------------------------------------------------------------------------> FIRES -------------------------------------------------------------------------------------> +#TYPE FX_NAME FX_2_NAME FX_3_NAME FX_AIR_NAME FX_AIR_2_NAME FX_AIR_3_NAME SCALE SCORCH NUMBER RANGE BURN TIME BURN STRENGTH PEAK TIME FUEL +# DECALS MIN MAX MIN MAX MIN MAX MIN MAX MIN MAX LEVEL BURN +# RATE + +EXPLOSIONFX_TABLE_START + +EXP_VFXTAG_FLASH exp_grd_grenade exp_grd_gren_sp - exp_air_grenade - - 1.0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_GRENADE exp_grd_grenade exp_grd_gren_sp - exp_air_grenade - - 3.0 1 1 4 0.1 2.0 1.0 14.0 0.7 2.0 0.8 2.5 1.0 1.5 +EXP_VFXTAG_STICKYBOMB exp_grd_sticky exp_grd_sticky_sp - exp_air_grenade - - 3.0 2 1 4 0.3 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_MOLOTOV exp_grd_molotov - - exp_air_molotov - - 1.5 1 3 6 0.3 4.8 0.5 18.0 0.7 6.0 0.8 2.5 1.0 1.5 +EXP_VFXTAG_ROCKET exp_grd_rpg exp_grd_rpg_sp exp_grd_rpg_post exp_air_rpg exp_air_rpg_sp - 2.0 2 1 3 0.2 0.8 0.5 2.0 0.7 1.0 0.8 3.5 0.0 0.0 +EXP_VFXTAG_PETROL_PUMP exp_grd_petrol_pump exp_grd_petrol_pump_sp exp_grd_petrol_pump_post exp_grd_petrol_pump exp_grd_petrol_pump_sp - 3.0 2 3 7 0.4 1.0 4.0 14.0 0.7 1.0 0.8 2.5 1.0 0.25 +EXP_VFXTAG_VEHICLE exp_grd_vehicle exp_grd_vehicle_sp - exp_air_rpg exp_air_rpg_sp - 3.0 2 1 3 0.2 0.3 1.3 0.5 0.7 1.0 0.8 2.5 0.0 0.05 +EXP_VFXTAG_BIKE exp_grd_vehicle exp_grd_vehicle_sp exp_grd_vehicle_post exp_air_rpg exp_air_rpg_sp - 1.9 2 3 3 0.7 1.4 2.0 4.0 0.7 1.0 0.8 2.5 2.0 0.25 +EXP_VFXTAG_DIR_STEAM exp_sht_steam - - exp_sht_steam - - 2.0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_DIR_FLAME exp_sht_flame - - exp_sht_flame - - 2.0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_DIR_WATER_HYDRANT exp_hydrant - - exp_hydrant - - 1.0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_DIR_GAS_CANISTER exp_sht_flame - - exp_sht_flame - - 2.0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_TRUCK exp_grd_vehicle exp_grd_vehicle_sp exp_grd_vehicle_post exp_air_rpg exp_air_rpg_sp - 2.3 2 0 0 0.3 0.4 0.3 0.5 0.7 1.0 1.0 3.0 0.0 0.05 +EXP_VFXTAG_BULLET exp_grd_grenade exp_grd_gren_sp - exp_air_grenade - - 4.0 1 1 4 0.3 3.0 2.0 14.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_SMOKE_GRENADE exp_grd_grenade_smoke - - exp_grd_grenade_smoke - - 3.0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_BZGAS exp_grd_bzgas_smoke - - exp_grd_bzgas_smoke - - 1.0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_FBI4_TRUCK_DOORS exp_fbi4_doors - - exp_fbi4_doors - - 2.5 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_GAS_CANISTER exp_grd_gas_can - - exp_air_rpg exp_air_rpg_sp - 2.0 1 1 2 0.7 1.2 1.0 2.0 0.7 1.0 0.8 1.5 2.0 0.25 +EXP_VFXTAG_EXTINGUISHER exp_sht_extinguisher - - exp_sht_extinguisher - - 3.0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_TRAIN exp_grd_train exp_grd_vehicle_sp exp_grd_vehicle_post exp_grd_train exp_grd_vehicle_sp - 2.0 2 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_BARREL exp_grd_barrel - - exp_air_rpg exp_air_rpg_sp - 2.0 1 1 2 0.2 1.0 1.0 1.0 0.7 1.0 0.8 1.5 1.0 0.25 +EXP_VFXTAG_PROPANE exp_grd_propane exp_grd_petrol_pump_sp exp_grd_petrol_pump_post exp_grd_propane exp_grd_petrol_pump_sp - 2.3 2 2 3 0.7 1.2 1.0 2.0 0.7 1.0 0.8 1.5 1.0 0.25 +EXP_VFXTAG_BLIMP exp_air_blimp exp_air_blimp_sp - exp_air_blimp exp_air_blimp_sp - 2.3 2 1 2 0.7 1.2 1.0 2.0 0.7 1.0 0.8 2.5 0.0 0.0 +EXP_VFXTAG_FLARE exp_grd_flare - - exp_grd_flare - - 1.0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 +EXP_VFXTAG_PLANE_ROCKET exp_grd_tankshell exp_grd_rpg_plane_sp exp_grd_vehicle_post exp_air_rpg_plane exp_air_rpg_plane_sp - 2.2 2 3 5 0.2 0.8 1.0 2.0 0.7 1.0 0.8 2.5 0.0 0.0 +EXP_VFXTAG_TANKER exp_grd_plane exp_grd_plane_sp exp_grd_plane_post exp_grd_plane exp_grd_plane_sp - 2.0 2 0 0 0.2 0.3 0.3 0.5 0.7 1.0 0.8 2.5 0.0 0.05 +EXP_VFXTAG_PLANE exp_grd_plane exp_grd_plane_sp exp_grd_plane_post exp_grd_plane exp_grd_plane_sp - 2.3 2 2 2 0.7 1.2 1.0 2.0 0.7 1.0 0.8 1.5 2.0 0.25 +EXP_VFXTAG_BOAT exp_grd_boat exp_grd_boat_sp exp_grd_vehicle_post exp_grd_boat exp_grd_boat_sp - 2.3 2 2 2 0.7 1.2 1.0 2.0 0.7 1.0 0.8 1.5 1.0 0.25 +EXP_VFXTAG_TANKSHELL exp_grd_tankshell - exp_grd_vehicle_post exp_grd_tankshell - - 2.0 2 0 1 0.3 0.7 1.0 2.0 0.7 1.0 0.8 2.5 1.0 0.25 +EXP_VFXTAG_TREV3_TRAILER scr_trev3_trailer_expolsion - - scr_trev3_trailer_expolsion - - 3.0 2 0 1 0.3 0.7 1.0 2.0 0.7 1.0 0.8 1.5 1.0 0.25 +EXP_VFXTAG_BLIMP2 exp_air_blimp2 exp_air_blimp2_sp - exp_air_blimp2 exp_air_blimp2_sp - 2.3 2 1 2 0.7 1.2 1.0 2.0 0.7 1.0 0.8 2.5 0.0 0.0 +EXP_VFXTAG_BIRDCRAP exp_bird_crap - - exp_bird_crap - - 1.0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 + + +EXPLOSIONFX_TABLE_END \ No newline at end of file diff --git a/resources/lvc/SIRENS.lua b/resources/lvc/SIRENS.lua index 816f22a58..ffe5a883a 100644 --- a/resources/lvc/SIRENS.lua +++ b/resources/lvc/SIRENS.lua @@ -100,7 +100,7 @@ SIREN_ASSIGNMENTS = { ['LGUARD'] = { 1, 2, 3, 4, 11 }, ['medic22'] = { 45, 16,40, 38, 48, 31 }, ['e450ambo'] = { 45, 16,40, 38, 48, 31 }, - ['c3bisonrescue'] = { 45, 16,40, 38, 48, 31 }, + ['maxfirebison'] = { 45, 16,40, 38, 48, 31 }, ['fireburb'] = { 45, 16,19, 18, 48, 31 }, ['fd20exp'] = { 45, 16,19, 18, 48, 31 }, ['brush'] = { 45, 16,19, 18, 48, 31 }, @@ -246,7 +246,7 @@ SIREN_ASSIGNMENTS = { ['umscatty'] = { 33, 34, 35, 36, 37, 38 }, ['23legacy18utility'] = { 33, 34, 35, 36, 37, 38 }, ['23legacy21suv'] = { 33, 34, 35, 36, 37, 38 }, - ['legTahoey22'] = { 33, 34, 35, 36, 37, 38 }, - + ['23legacy18utilitysl'] = { 33, 34, 35, 36, 37, 38 }, + ['23legacy21suv'] = { 33, 34, 35, 36, 37, 38 }, } \ No newline at end of file diff --git a/resources/scenes-main/.github/actions/bump-manifest-version.js b/resources/scenes-main/.github/actions/bump-manifest-version.js new file mode 100644 index 000000000..30c550743 --- /dev/null +++ b/resources/scenes-main/.github/actions/bump-manifest-version.js @@ -0,0 +1,10 @@ +const fs = require('fs') + +const version = process.env.TGT_RELEASE_VERSION +const newVersion = version.replace('v', '') + +const manifestFile = fs.readFileSync('fxmanifest.lua', {encoding: 'utf8'}) + +const newFileContent = manifestFile.replace(/\bversion\s+(.*)$/gm, `version '${newVersion}'`) + +fs.writeFileSync('fxmanifest.lua', newFileContent) \ No newline at end of file diff --git a/resources/scenes-main/.github/workflows/release.yml b/resources/scenes-main/.github/workflows/release.yml new file mode 100644 index 000000000..6c536cd1b --- /dev/null +++ b/resources/scenes-main/.github/workflows/release.yml @@ -0,0 +1,82 @@ +name: Release + +on: + push: + tags: + - 'v*.*.*' + +jobs: + create-release: + name: Build and Create Tagged Release + runs-on: ubuntu-latest + steps: + - name: Install archive tools + run: sudo apt install zip + + - name: Checkout source code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + ref: ${{ github.event.repository.default_branch }} + + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 16.x + cache: 'yarn' + cache-dependency-path: web + + - name: Set env + run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies & Build + run: yarn --frozen-lockfile && yarn build + working-directory: web + + - name: Bump manifest version + run: node .github/actions/bump-manifest-version.js + env: + TGT_RELEASE_VERSION: ${{ github.ref_name }} + + - name: Push manifest change + uses: EndBug/add-and-commit@v8 + with: + add: fxmanifest.lua + push: true + author_name: Manifest Bumper + author_email: 41898282+github-actions[bot]@users.noreply.github.com + message: 'chore: bump manifest version to ${{ github.ref_name }}' + + - name: Update tag ref + uses: EndBug/latest-tag@latest + with: + tag-name: ${{ github.ref_name }} + + - name: Bundle files + run: | + mkdir -p ./temp/fivem-scenes + cp ./{LICENSE,README.md,fxmanifest.lua,config.lua,scenes.sql} ./temp/fivem-scenes + cp -r ./client ./temp/fivem-scenes + cp -r ./server ./temp/fivem-scenes + cp -r ./stream ./temp/fivem-scenes + mkdir -p ./temp/fivem-scenes/web/build + cp -r ./web/build/* ./temp/fivem-scenes/web/build/ + cd ./temp && zip -r ../fivem-scenes.zip ./fivem-scenes + + - name: Create Release + uses: 'marvinpinto/action-automatic-releases@v1.2.1' + id: auto_release + with: + repo_token: '${{ secrets.GITHUB_TOKEN }}' + title: ${{ env.RELEASE_VERSION }} + prerelease: false + files: fivem-scenes.zip + + env: + CI: false + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/resources/scenes-main/LICENSE b/resources/scenes-main/LICENSE new file mode 100644 index 000000000..f288702d2 --- /dev/null +++ b/resources/scenes-main/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/resources/scenes-main/README.md b/resources/scenes-main/README.md new file mode 100644 index 000000000..68ec3c3d6 --- /dev/null +++ b/resources/scenes-main/README.md @@ -0,0 +1,49 @@ +# fivem-scenes +A standalone scene creation script + +## Setup +Make sure to download the latest release from the Releases section on the right and not the source code +https://github.com/SamShanks1/fivem-scenes/releases/latest/download/fivem-scenes.zip + +Import scenes.sql into your database + +Ensure fivem-scenes after ox_lib and oxmysql + +## Dependencies +- [ox_lib](https://github.com/overextended/ox_lib) +- [oxmysql](https://github.com/overextended/oxmysql) + +## Features +* Manage scene using a laser point with the command 'scene' +* Custom Background & Fonts (credits to dpscenes) +* Change the text, colour, font size, shadow, outline and view distance +* Config for max distance, max duration, logs and max scenes +* Change the background type, colour, height, width, position and opacity +* View the changes being made before placing the scene +* Scenes are saved to the database +* Scenes are automatically deleted when they expire +* Delete your own scenes or admins can delete anyones +* Admin only option +* Permanent scenes options + +## Example Usage +### Interface Examples +![Interface](https://i.gyazo.com/84f8f8b877ae1c403893ce8ec52ada0e.png) +### Video Example +[![Video Example](https://i.gyazo.com/b1a47c5bcfcc831aea3478c255a94794.png)](https://streamable.com/2lj8o9) + + +# ToDo List +* Help button on UI showing [Text Formatting](https://docs.fivem.net/docs/game-references/text-formatting) +* Edit Scenes +* Emoji selector +* Show Scene duration +* Word Filter + +## Credits +Credit to [ItsANoBrainer's qb-scenes](https://github.com/ItsANoBrainer/qb-scenes) for a lot of the functions, lua code and inspiration. + +Credit to [Andristum's dpscenes](https://github.com/andristum/dpscenes) for the fonts, backgrounds and some more lua code. + +## License +[GNU GPL v3](http://www.gnu.org/licenses/gpl-3.0.html) diff --git a/resources/scenes-main/client/client.lua b/resources/scenes-main/client/client.lua new file mode 100644 index 000000000..d7d79fd78 --- /dev/null +++ b/resources/scenes-main/client/client.lua @@ -0,0 +1,243 @@ +local creationLaser = false +local editingScene = false +local scenes = {} +local sceneData = {} +local closestScenes = {} + +lib.requestStreamedTextureDict("commonmenu") +lib.requestStreamedTextureDict("scenes") + +local function toggleNuiFrame(shouldShow) + SetNuiFocus(shouldShow, shouldShow) + SendReactMessage('setVisible', shouldShow) +end + +RegisterNUICallback('hideFrame', function(_, cb) + toggleNuiFrame(false) + editingScene = false + cb({}) +end) + +RegisterNUICallback('CreateScene', function(data, cb) + toggleNuiFrame(false) + editingScene = false + TriggerServerEvent('fivem-scenes:server:createScene', sceneData) + cb({}) +end) + +CreateThread(function() + local admin = lib.callback.await("fivem-scenes:server:isAdmin") + local data = { + maxDistance = Config.MaxDistance, + maxDuration = Config.MaxDuration, + isAdmin = admin, + neverExpire = Config.NeverExpire, + neverExpireAdmin = Config.NeverExpireAdmin + } + SendReactMessage('setConfig', data) + SendReactMessage('setFonts', Fonts) +end) + +RegisterNUICallback('UpdateScene', function(data, cb) + data.coords = sceneData.coords + sceneData = data + cb({}) +end) + +RegisterNetEvent('fivem-scenes:client:startScenes', function() + ToggleSceneLaser() +end) + +RegisterNetEvent('fivem-scenes:client:updateAllScenes', function(data) + scenes = data +end) + +RegisterNetEvent('fivem-scenes:client:addScene', function(data) + scenes[#scenes+1] = data +end) + +RegisterNetEvent('fivem-scenes:client:removeScene', function(sceneId) + for i = 1, #scenes do + if scenes[i].id == sceneId then + table.remove(scenes, i) + end + end +end) + +CreateThread(function() + local data = lib.callback.await("fivem-scenes:server:getScenes") + scenes = data + + if Config.Radial and not Config.AdminOnly then + lib.addRadialItem({ + id = 'scenes', + icon = 'palette', + label = 'Scene', + onSelect = function() + ToggleSceneLaser() + end + }) + end + + if Config.EnableKeybind then + lib.addKeybind({ + name = "Scenes", + description = "Create/Delete scenes", + defaultKey = Config.KeybindKey, + onReleased = function(self) + ToggleSceneLaser() + end + }) + end +end) + +CreateThread(function() + while true do + closestScenes = {} + for i=1, #scenes do + local currentScene = scenes[i] + local plyPosition = GetEntityCoords(cache.ped) + local distance = #(plyPosition - currentScene.coords) + if distance < Config.MaxDistance then + closestScenes[#closestScenes+1] = currentScene + end + end + Wait(1000) + end +end) + +CreateThread(function() + while true do + local wait = 1000 + if #closestScenes > 0 then + wait = 0 + for i=1, #closestScenes do + local currentScene = closestScenes[i] + local plyPosition = GetEntityCoords(cache.ped) + local distance = #(plyPosition - currentScene.coords) + if distance <= currentScene.viewDistance then + DrawScene(closestScenes[i]) + end + end + end + Wait(wait) + end +end) + +function ToggleSceneLaser() + creationLaser = true + if creationLaser then + CreateThread(function() + while creationLaser do + local hit, coords = DrawLaser('PRESS ~g~E~w~ TO CREATE SCENE\nPRESS ~g~G~w~ TO DELETE SCENE', {r = 2, g = 241, b = 181, a = 200}) + + if IsControlJustReleased(0, 38) then + sceneData.coords = coords + if hit then + creationLaser = false + EditingScene() + toggleNuiFrame(true) + else + lib.notify({description = "Laser did not hit anything.", type = "error"}) + end + elseif IsControlJustReleased(0, 47) then + creationLaser = false + DeleteScene(coords) + end + Wait(0) + end + end) + end +end + +function DeleteScene(coords) + local closestScene = nil + local shortestDistance = nil + for i=1,#scenes do + local currentScene = scenes[i] + local distance = #(coords - currentScene.coords) + if distance < 1 and (shortestDistance == nil or distance < shortestDistance) then + closestScene = currentScene.id + shortestDistance = distance + end + end + + if closestScene then + TriggerServerEvent('fivem-scenes:server:deleteScene', closestScene) + else + lib.notify({type = "error", description = "No scene was close enough"}) + end +end + +function EditingScene() + editingScene = true + if editingScene then + CreateThread(function() + while editingScene do + DrawScene(sceneData) + Wait(0) + end + end) + end +end + +function DrawLaser(message, color) + local hit, coords = RayCastGamePlayCamera(Config.MaxDistance) + Draw2DText(message, 4, {255, 255, 255}, 0.4, 0.43, 0.888 + 0.025) + + if hit then + local position = GetEntityCoords(cache.ped) + DrawLine(position.x, position.y, position.z, coords.x, coords.y, coords.z, color.r, color.g, color.b, color.a) + DrawMarker(28, coords.x, coords.y, coords.z, 0.0, 0.0, 0.0, 0.0, 180.0, 0.0, 0.1, 0.1, 0.1, color.r, color.g, color.b, color.a, false, true, 2, nil, nil, false) + end + + return hit, coords +end + +function DrawScene(currentScene) + local hit = false + if Config.CheckForCollisions then + hit = CanPlayerSeeScene(currentScene.coords) + end + local onScreen, screenX, screenY = GetScreenCoordFromWorldCoord(currentScene.coords.x, currentScene.coords.y, currentScene.coords.z) + + if onScreen and not hit then + local camCoords = GetFinalRenderedCamCoord() + local distance = #(currentScene.coords - camCoords) + local fov = (1 / GetGameplayCamFov()) * 75 + local scale = (1 / distance) * (4) * fov * (currentScene.fontSize or 1) + local r,g,b=rgbToHex(currentScene.colour or "#ffffff") + local text = currentScene.text + + SetTextScale(0.0, scale) + SetTextFont(currentScene.font or 0) + SetTextColour(r, g, b, 255) + SetTextProportional(true) + SetTextWrap(0.0, 1.0) + SetTextCentre(true) + + if currentScene.shadow then + SetTextDropshadow(1, 255, 255, 255, 0) + end + + if currentScene.outline then + SetTextOutline() + end + + BeginTextCommandGetWidth("STRING") + AddTextComponentString(text ~= "" and text or "Example Text") + + local H = GetRenderedCharacterHeight(scale, currentScene.font)+0.0030 + local W = EndTextCommandGetWidth(currentScene.font)+0.005 + + BeginTextCommandDisplayText("STRING") + AddTextComponentString(text ~= "" and text or "Example Text") + EndTextCommandDisplayText(screenX, screenY) + + if currentScene.background and currentScene.background ~= "none" then + local br, bg, bb = rgbToHex(currentScene.backgroundColour) + + DrawSprite("scenes", currentScene.background, screenX+currentScene.backgroundX*scale, screenY+currentScene.backgroundY*scale, W+currentScene.backgroundWidth*scale, H+currentScene.backgroundHeight*scale, 0, br,bg,bb, currentScene.backgroundAlpha) + end + end +end \ No newline at end of file diff --git a/resources/scenes-main/client/fonts.lua b/resources/scenes-main/client/fonts.lua new file mode 100644 index 000000000..14a567f1d --- /dev/null +++ b/resources/scenes-main/client/fonts.lua @@ -0,0 +1,36 @@ +---Credit https://github.com/andristum/dpscenes + +Fonts = { + {label = "Chalet Comprimé", value = "4", group = "Normal"}, + {label = "Chalet", value = "0", group = "Normal"}, + {label = "Sign Painter", value = "1", group = "Handwritten"}, + {label = "Pricedown", value = "7", group = "Misc"}, +} + +local AddonFonts = { + --Normal + {"ArialNarrow", "Arial Narrow", "Normal"}, + {"Lato", "Lato", "Normal"}, + -- Handwritten + {"Inkfree", "Inkfree", "Handwritten"}, + {"Kid", "Kid", "Handwritten"}, + {"Strawberry", "Strawberry", "Handwritten"}, + {"PaperDaisy", "Paper Daisy", "Handwritten"}, + {"ALittleSunshine", "A Little Sunshine", "Handwritten"}, + {"WriteMeASong", "Write Me A Song", "Handwritten"}, + -- Graffiti + {"BeatStreet", "Beat Street", "Graffiti"}, + {"DirtyLizard", "Dirty Lizard", "Graffiti"}, + {"Maren", "Maren", "Graffiti"}, + -- Misc + {"HappyDay", "Happy Day", "Misc"}, + {"ImpactLabel", "Impact Label", "Misc"}, + {"Easter", "Easter", "Misc"}, +} + + +for i = 1, #AddonFonts do + RegisterFontFile(AddonFonts[i][1]) + local Id = RegisterFontId(AddonFonts[i][2]) + Fonts[#Fonts+1] = {label = AddonFonts[i][2], value = tostring(Id), group = AddonFonts[i][3]} +end \ No newline at end of file diff --git a/resources/scenes-main/client/utils.lua b/resources/scenes-main/client/utils.lua new file mode 100644 index 000000000..a3f27bfa7 --- /dev/null +++ b/resources/scenes-main/client/utils.lua @@ -0,0 +1,78 @@ +--- A simple wrapper around SendNUIMessage that you can use to +--- dispatch actions to the React frame. +--- +---@param action string The action you wish to target +---@param data any The data you wish to send along with this action +function SendReactMessage(action, data) + SendNUIMessage({ + action = action, + data = data + }) +end + +---Credit https://github.com/ItsANoBrainer/qb-scenes/blob/master/client/utils.lua +function RotationToDirection(rotation) + local adjustedRotation = + { + x = (math.pi / 180) * rotation.x, + y = (math.pi / 180) * rotation.y, + z = (math.pi / 180) * rotation.z + } + local direction = + { + x = -math.sin(adjustedRotation.z) * math.abs(math.cos(adjustedRotation.x)), + y = math.cos(adjustedRotation.z) * math.abs(math.cos(adjustedRotation.x)), + z = math.sin(adjustedRotation.x) + } + return direction +end + +function RayCastGamePlayCamera(distance) + local cameraRotation = GetGameplayCamRot() + local cameraCoord = GetGameplayCamCoord() + local direction = RotationToDirection(cameraRotation) + local destination = + { + x = cameraCoord.x + direction.x * distance, + y = cameraCoord.y + direction.y * distance, + z = cameraCoord.z + direction.z * distance + } + local _, hit, endCoords, _, _ = GetShapeTestResult(StartShapeTestRay(cameraCoord.x, cameraCoord.y, cameraCoord.z, destination.x, destination.y, destination.z, -1, cache.ped, 0)) + return hit == 1, endCoords +end + +function CanPlayerSeeScene(sceneCoords) + local coords = GetEntityCoords(cache.ped) + local _, hit, _, _, _ = GetShapeTestResult(StartShapeTestRay(coords.x, coords.y, coords.z, sceneCoords.x, sceneCoords.y, sceneCoords.z, -1, cache.ped, 0)) + return hit == 1 +end + +function rgbToHex(hex) + hex = hex:gsub("#","") + return tonumber("0x"..hex:sub(1,2)), tonumber("0x"..hex:sub(3,4)), tonumber("0x"..hex:sub(5,6)) +end + +function Draw2DText(content, font, colour, scale, x, y) + SetTextFont(font) + SetTextScale(scale, scale) + SetTextColour(colour[1],colour[2],colour[3], 255) + SetTextEntry("STRING") + SetTextDropShadow(0, 0, 0, 0,255) + SetTextDropShadow() + SetTextEdge(4, 0, 0, 0, 255) + SetTextOutline() + AddTextComponentString(content) + DrawText(x, y) +end + +---Credit https://github.com/andristum/dpscenes +function SceneAge(sec) + local Seconds = tonumber(sec) + if Seconds <= 0 then + return {Hours = 0, Minutes = 0} + else + Hours = string.format("%02.f", math.floor(Seconds/3600)) + Minutes = string.format("%02.f", math.floor(Seconds/60-(Hours*60))) + return {Hours = Hours, Minutes = Minutes} + end +end \ No newline at end of file diff --git a/resources/scenes-main/config.lua b/resources/scenes-main/config.lua new file mode 100644 index 000000000..6094cb5f2 --- /dev/null +++ b/resources/scenes-main/config.lua @@ -0,0 +1,16 @@ +Config = {} + +Config.MaxDistance = 25 --max distance that can be placed & viewed, passed to UI for view distance +Config.Log = false --logs the scene creation and deletion with ox_lib logging +Config.MaxScenes = 999 --max scenes that can be placed +Config.Radial = false --add scene management to ox_lib radial menu | AdminOnly must be false +Config.AdminOnly = false --only admins can create scenes +Config.AdminDeleteAll = true --admins can delete other peoples scenes +Config.AceGroup = 'admin' --if AdminOnly or AdminDeleteAll is set to true the ace group the command will be locked too +Config.EnableKeybind = false --allow scenes menu to be opened via keybind +Config.KeybindKey = "K" --if EnableKeybind is set to true the key to use, if you change this it will only change for new players +Config.MaxDuration = 50 --max duration the scene can be set in hours +Config.NeverExpire = false --set this to true for an option that scenes never expire in the UI and they will not be deleted from db +Config.NeverExpireAdmin = true --if set to true then you have to be an admin to see the NeverExpire option if true +Config.CheckForCollisions = false --enable this to check for collisions +Config.AuditInterval = 15 --How many minutes to wait to query the databse to check for expired scenes \ No newline at end of file diff --git a/resources/scenes-main/fxmanifest.lua b/resources/scenes-main/fxmanifest.lua new file mode 100644 index 000000000..d86b1d59d --- /dev/null +++ b/resources/scenes-main/fxmanifest.lua @@ -0,0 +1,20 @@ +fx_version "cerulean" +lua54 'yes' +game 'gta5' + +author "Sam Shanks" +version '1.5.1' +repository 'https://github.com/SamShanks1/fivem-scenes' +description 'Fivem Scenes' + +shared_scripts { '@ox_lib/init.lua', 'config.lua' } + +ui_page 'web/build/index.html' + +client_scripts { "client/utils.lua", "client/client.lua", "client/fonts.lua" } +server_scripts { "@oxmysql/lib/MySQL.lua", "server/server.lua" } + +files { + 'web/build/index.html', + 'web/build/**/*', +} diff --git a/resources/scenes-main/scenes.sql b/resources/scenes-main/scenes.sql new file mode 100644 index 000000000..2cfa2f178 --- /dev/null +++ b/resources/scenes-main/scenes.sql @@ -0,0 +1,9 @@ +CREATE TABLE IF NOT EXISTS `scenes` ( + `id` int NOT NULL AUTO_INCREMENT, + `creator` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL, + `data` longtext DEFAULT NULL, + `createdAt` datetime DEFAULT NULL, + `deleteAt` datetime DEFAULT NULL, + `neverExpire` TINYINT (1) DEFAULT 0, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC; \ No newline at end of file diff --git a/resources/scenes-main/server/server.lua b/resources/scenes-main/server/server.lua new file mode 100644 index 000000000..5f48ab8a3 --- /dev/null +++ b/resources/scenes-main/server/server.lua @@ -0,0 +1,135 @@ +lib.versionCheck('SamShanks1/fivem-scenes') + +local scenes = {} + +local group = ('group.%s'):format(Config.AceGroup) +local restrictedGroup = Config.AdminOnly and group + +lib.addCommand('scene', { + help = 'Create/Delete a scene', + restricted = restrictedGroup +}, function(source, args, raw) + TriggerClientEvent('fivem-scenes:client:startScenes', source) +end) + +--Credit https://github.com/ItsANoBrainer/qb-scenes/blob/master/server/server.lua + +local function updateAllScenes() + scenes = {} + MySQL.Async.fetchAll('SELECT * FROM scenes', {}, function(result) + if result[1] then + for _, v in pairs(result) do + local sceneData = json.decode(v.data) + sceneData.id = v.id + sceneData.coords = vector3(sceneData.coords.x, sceneData.coords.y, sceneData.coords.z) + scenes[#scenes+1] = sceneData + end + end + TriggerClientEvent('fivem-scenes:client:updateAllScenes', -1, scenes) + end) +end + +local function deleteExpiredScenes() + if Config.NeverExpire then + MySQL.Async.execute('DELETE FROM scenes WHERE deleteAt < NOW() AND `neverExpire` = 0', {}, function(result) + if result > 0 then + print('Deleted '..result..' expired scenes from the database.') + updateAllScenes() + end + end) + else + MySQL.Async.execute('DELETE FROM scenes WHERE deleteAt < NOW()', {}, function(result) + if result > 0 then + print('Deleted '..result..' expired scenes from the database.') + updateAllScenes() + end + end) + end +end + +local function countScenes(identifier) + local count = 0 + for i = 1, #scenes do + if scenes[i].creator == identifier then + count = count+1 + end + end + return count +end + +local function getIdentifier(source) + for _, v in pairs(GetPlayerIdentifiers(source)) do + if v:sub(1, #"license:") == "license:" then + return v + end + end +end + +RegisterNetEvent('fivem-scenes:server:createScene', function(sceneData) + local src = source + local identifier = getIdentifier(src) + local count = countScenes(identifier) + if count > Config.MaxScenes then + return TriggerClientEvent('ox_lib:notify', src, {type = "error", description = "You have exceed the max scene count"}) + end + sceneData.creator = identifier + MySQL.Async.insert('INSERT INTO scenes (creator, data, createdAt, deleteAt, neverExpire) VALUES (?, ?, NOW(), DATE_ADD(NOW(), INTERVAL ? HOUR), ?)', { + identifier, json.encode(sceneData), sceneData.duration, sceneData.neverExpire + }, function(id) + sceneData.id = id + if Config.Log then + lib.logger(src, 'CreateScene', json.encode(sceneData)) + end + scenes[#scenes+1] = sceneData + TriggerClientEvent('fivem-scenes:client:addScene', -1, sceneData) + end) +end) + +RegisterNetEvent('fivem-scenes:server:deleteScene', function(sceneId) + local src = source + local identifier = getIdentifier(src) + local canDelete = false + local scenePos + + for i = 1, #scenes do + if scenes[i].creator == identifier then + canDelete = true + scenePos = i + end + end + + if IsPlayerAceAllowed(src, Config.AceGroup) then + canDelete = true + end + + if not canDelete then + return TriggerClientEvent('ox_lib:notify', src, {type = "error", description = "You did not create this scene"}) + end + + MySQL.Async.execute('DELETE FROM scenes WHERE id = ?', {sceneId}, function() + if Config.Log then + lib.logger(src, 'DeleteScene', scenes[scenePos]) + end + table.remove(scenes, scenePos) + TriggerClientEvent('fivem-scenes:client:removeScene', -1, sceneId) + TriggerClientEvent('ox_lib:notify', src, {type = "success", description = "Scene Deleted"}) + end) + +end) + +lib.callback.register('fivem-scenes:server:getScenes', function() + return scenes +end) + + +lib.callback.register('fivem-scenes:server:isAdmin', function(source) + return IsPlayerAceAllowed(source, Config.AceGroup) +end) + +CreateThread(function() + updateAllScenes() + while true do + deleteExpiredScenes() + Wait(Config.AuditInterval * 1000 * 60) + end +end) diff --git a/resources/scenes-main/stream/ALittleSunshine.gfx b/resources/scenes-main/stream/ALittleSunshine.gfx new file mode 100644 index 000000000..932101e0b Binary files /dev/null and b/resources/scenes-main/stream/ALittleSunshine.gfx differ diff --git a/resources/scenes-main/stream/ArialNarrow.gfx b/resources/scenes-main/stream/ArialNarrow.gfx new file mode 100644 index 000000000..2affffdad Binary files /dev/null and b/resources/scenes-main/stream/ArialNarrow.gfx differ diff --git a/resources/scenes-main/stream/BeatStreet.gfx b/resources/scenes-main/stream/BeatStreet.gfx new file mode 100644 index 000000000..c1e88e35f Binary files /dev/null and b/resources/scenes-main/stream/BeatStreet.gfx differ diff --git a/resources/scenes-main/stream/Christmas.gfx b/resources/scenes-main/stream/Christmas.gfx new file mode 100644 index 000000000..5f1a7af42 Binary files /dev/null and b/resources/scenes-main/stream/Christmas.gfx differ diff --git a/resources/scenes-main/stream/DirtyLizard.gfx b/resources/scenes-main/stream/DirtyLizard.gfx new file mode 100644 index 000000000..08f985332 Binary files /dev/null and b/resources/scenes-main/stream/DirtyLizard.gfx differ diff --git a/resources/scenes-main/stream/Easter.gfx b/resources/scenes-main/stream/Easter.gfx new file mode 100644 index 000000000..c55abde1d Binary files /dev/null and b/resources/scenes-main/stream/Easter.gfx differ diff --git a/resources/scenes-main/stream/Halloween.gfx b/resources/scenes-main/stream/Halloween.gfx new file mode 100644 index 000000000..e0436829c Binary files /dev/null and b/resources/scenes-main/stream/Halloween.gfx differ diff --git a/resources/scenes-main/stream/HappyDay.gfx b/resources/scenes-main/stream/HappyDay.gfx new file mode 100644 index 000000000..2665eb0ba Binary files /dev/null and b/resources/scenes-main/stream/HappyDay.gfx differ diff --git a/resources/scenes-main/stream/ImpactLabel.gfx b/resources/scenes-main/stream/ImpactLabel.gfx new file mode 100644 index 000000000..2e4fc2199 Binary files /dev/null and b/resources/scenes-main/stream/ImpactLabel.gfx differ diff --git a/resources/scenes-main/stream/Inkfree.gfx b/resources/scenes-main/stream/Inkfree.gfx new file mode 100644 index 000000000..92e31124a Binary files /dev/null and b/resources/scenes-main/stream/Inkfree.gfx differ diff --git a/resources/scenes-main/stream/Kid.gfx b/resources/scenes-main/stream/Kid.gfx new file mode 100644 index 000000000..80ec1eb6c Binary files /dev/null and b/resources/scenes-main/stream/Kid.gfx differ diff --git a/resources/scenes-main/stream/Lato.gfx b/resources/scenes-main/stream/Lato.gfx new file mode 100644 index 000000000..ffa0553e4 Binary files /dev/null and b/resources/scenes-main/stream/Lato.gfx differ diff --git a/resources/scenes-main/stream/Maren.gfx b/resources/scenes-main/stream/Maren.gfx new file mode 100644 index 000000000..aafaec378 Binary files /dev/null and b/resources/scenes-main/stream/Maren.gfx differ diff --git a/resources/scenes-main/stream/PaperDaisy.gfx b/resources/scenes-main/stream/PaperDaisy.gfx new file mode 100644 index 000000000..e8e8e3f55 Binary files /dev/null and b/resources/scenes-main/stream/PaperDaisy.gfx differ diff --git a/resources/scenes-main/stream/Strawberry.gfx b/resources/scenes-main/stream/Strawberry.gfx new file mode 100644 index 000000000..12ceb631d Binary files /dev/null and b/resources/scenes-main/stream/Strawberry.gfx differ diff --git a/resources/scenes-main/stream/WriteMeASong.gfx b/resources/scenes-main/stream/WriteMeASong.gfx new file mode 100644 index 000000000..6ed7eaf02 Binary files /dev/null and b/resources/scenes-main/stream/WriteMeASong.gfx differ diff --git a/resources/scenes-main/stream/scenes.ytd b/resources/scenes-main/stream/scenes.ytd new file mode 100644 index 000000000..812308ece --- /dev/null +++ b/resources/scenes-main/stream/scenes.ytd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbc07d11e35fe02ffd5fe1e20196381875d4c7a2e55e21bf51129f6d56ae8a78 +size 665082 diff --git a/resources/scenes-main/update.sql b/resources/scenes-main/update.sql new file mode 100644 index 000000000..d4bc7ee2b --- /dev/null +++ b/resources/scenes-main/update.sql @@ -0,0 +1,2 @@ +ALTER TABLE `scenes` +ADD COLUMN `neverExpire` TINYINT (1) DEFAULT 0 \ No newline at end of file diff --git a/resources/scenes-main/web/.gitignore b/resources/scenes-main/web/.gitignore new file mode 100644 index 000000000..317c8ccc3 --- /dev/null +++ b/resources/scenes-main/web/.gitignore @@ -0,0 +1,23 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +build +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/resources/scenes-main/web/index.html b/resources/scenes-main/web/index.html new file mode 100644 index 000000000..b216a7664 --- /dev/null +++ b/resources/scenes-main/web/index.html @@ -0,0 +1,13 @@ + + + + + + + NUI React Boilerplate + + +
+ + + diff --git a/resources/scenes-main/web/package.json b/resources/scenes-main/web/package.json new file mode 100644 index 000000000..5ca43d97c --- /dev/null +++ b/resources/scenes-main/web/package.json @@ -0,0 +1,28 @@ +{ + "name": "web", + "homepage": "web/build", + "private": true, + "version": "0.1.0", + "scripts": { + "start": "vite", + "start:game": "vite build --watch", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@emotion/react": "^11.11.1", + "@mantine/core": "^6.0.19", + "@mantine/form": "^6.0.19", + "@mantine/hooks": "^6.0.19", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "tabler-icons-react": "^1.56.0" + }, + "devDependencies": { + "@types/react": "^18.0.25", + "@types/react-dom": "^18.0.9", + "@vitejs/plugin-react": "^2.2.0", + "typescript": "^4.9.3", + "vite": "^3.2.4" + } +} diff --git a/resources/scenes-main/web/src/components/App.tsx b/resources/scenes-main/web/src/components/App.tsx new file mode 100644 index 000000000..d7040f797 --- /dev/null +++ b/resources/scenes-main/web/src/components/App.tsx @@ -0,0 +1,448 @@ +import React, { useEffect, useState, forwardRef } from "react"; +import { + Box, + createStyles, + Stack, + Center, + TextInput, + Select, + Slider, + Group, + Switch, + Button, + Text, + ColorInput, + Tooltip, + ActionIcon, +} from "@mantine/core"; +import { TextSize, RulerMeasure } from "tabler-icons-react"; +import { fetchNui } from "../utils/fetchNui"; +import { useNuiEvent } from "../hooks/useNuiEvent"; + +interface IFonts { + label: string; + value: string; + group: string; +} + +interface ItemProps extends React.ComponentPropsWithoutRef<"div"> { + image: string; + label: string; + description: string; +} + +interface IConfig { + maxDuration: number; + maxDistance: number; + isAdmin: boolean; + neverExpire: boolean; + neverExpireAdmin: boolean; +} + +const SelectItem = forwardRef( + ({ image, label, description, ...others }: ItemProps, ref) => ( +
+ +
+ {label} + + {description} + +
+
+
+ ) +); + +const useStyles = createStyles((theme) => ({ + wrapper: { + position: "absolute", + top: "15px", + right: "15px", + width: 330, + backgroundColor: theme.colors.dark[7], + borderRadius: theme.radius.md, + color: theme.colors.dark[1], + }, +})); + +const BackgroundSprites = [ + { label: "None", value: "none", description: "No Background" }, + { label: "Sleek", value: "TallFive", description: "Tall and sleek. (5px)" }, + { label: "Sleek 2", value: "TallTen", description: "Tall and sleek. (10px)" }, + { + label: "Sleek 3", + value: "TallFifteen", + description: "Tall and sleek. (15px)", + }, + { + label: "Simple", + value: "Background", + description: "As simple as it gets.", + }, + { label: "Blood", value: "Blood", description: "Bloody mess." }, + { label: "Blood 2", value: "Blood2", description: "Bloody mess." }, + { label: "Blood 3", value: "Blood3", description: "Bloody mess." }, + { label: "Blood 4", value: "Blood4", description: "Bloody mess." }, + { label: "Blood 5", value: "Blood5", description: "Bloody mess." }, + { label: "Brush", value: "Brush", description: "A simple brush stroke." }, + { label: "Chain", value: "Chain", description: '"Never break the chain"' }, + { + label: "Metal", + value: "Metal", + description: "Not to be confused with rock.", + }, + { + label: "Metal 2", + value: "Metal2", + description: "Not to be confused with rock.", + }, + { + label: "Gradient", + value: "Gradient1", + description: "A little bit of gradient in my life.", + }, + { + label: "Gradient 2", + value: "Gradient2", + description: "A little bit of gradient by my side.", + }, + { + label: "Gradient 3", + value: "Gradient3", + description: "A little bit of gradient is all i need.", + }, + { + label: "Gradient 4", + value: "Gradient4", + description: "A little bit of gradient is what i see.", + }, + { label: "Noise", value: "Noise", description: "Too loud." }, + { label: "Note", value: "Note", description: "Colour white recommended." }, + { label: "Note 2", value: "Note2", description: "Colour white recommended." }, + { label: "Note 3", value: "Note3", description: "Colour white recommended." }, + { label: "Note 4", value: "Note4", description: "Colour white recommended." }, + { label: "Note 5", value: "Note5", description: "Colour white recommended." }, + { label: "Note 6", value: "Note6", description: "Colour white recommended." }, + { label: "Spray", value: "Spray", description: "Just a spray." }, +]; + +const App: React.FC = () => { + const { classes } = useStyles(); + const [text, setText] = useState(""); + const [font, setFont] = useState("0"); + const [colour, setColour] = useState("#ffffff"); + const [fontSize, setFontSize] = useState(0.2); + const [shadow, setShadow] = useState(false); + const [outline, setOutline] = useState(false); + const [background, setBackground] = useState("none"); + const [backgroundHeight, setBackgroundHeight] = useState(0.01); + const [backgroundWidth, setBackgroundWidth] = useState(0.01); + const [backgroundColour, setBackgroundColour] = useState("#000000"); + const [backgroundAlpha, setBackgroundAlpha] = useState(128); + const [backgroundX, setBackgroundX] = useState(0); + const [backgroundY, setBackgroundY] = useState(0.034); + const [duration, setDuration] = useState(1); + const [viewDistance, setViewDistance] = useState(5); + const [maxViewDistance, setMaxViewDistance] = useState(25); + const [maxDuration, setMaxDuration] = useState(50); + const [isAdmin, setIsAdmin] = useState(false); + const [neverExpireOption, setNeverExpireOption] = useState(false); + const [neverExpireAdmin, setNeverExpireAdmin] = useState(true); + const [neverExpire, setNeverExpire] = useState(false); + + // const [showDuration, setShowDuration] = useState(false); + + const [fontOptions, setFontOptions] = useState([ + { label: "Chalet Comprimé", value: "4", group: "Normal" }, + { label: "Chalet", value: "0", group: "Normal" }, + { label: "Sign Painter", value: "1", group: "Handwritten" }, + { label: "Pricedown", value: "7", group: "Misc" }, + ]); + + useNuiEvent('setConfig', (data) => { + setMaxViewDistance(data.maxDistance); + setMaxDuration(data.maxDuration); + setIsAdmin(data.isAdmin); + setNeverExpireOption(data.neverExpire); + setNeverExpireAdmin(data.neverExpireAdmin); + }) + + useNuiEvent("setFonts", (data) => { + setFontOptions(data); + }) + + const resetMenu = () => { + setText(""); + setFont("0"); + setColour("#ffffff"); + setFontSize(0.2); + setShadow(false); + setOutline(false); + setBackground("none"); + setBackgroundHeight(0.01); + setBackgroundWidth(0.01); + setBackgroundColour("#000000"); + setBackgroundAlpha(128); + setBackgroundX(0); + setBackgroundY(0.034); + setDuration(1); + setViewDistance(5); + setNeverExpire(false); + }; + + useEffect(() => { + fetchNui("UpdateScene", { + text: text, + font: Number(font), + colour: colour, + fontSize: fontSize, + shadow: shadow, + outline: outline, + background: background, + backgroundHeight: backgroundHeight, + backgroundWidth: backgroundWidth, + backgroundColour: backgroundColour, + backgroundAlpha: backgroundAlpha, + backgroundX: backgroundX, + backgroundY: backgroundY, + duration: duration, + viewDistance: viewDistance, + neverExpire: neverExpire + // showDuration: showDuration, + }); + }, [ + text, + font, + colour, + fontSize, + shadow, + outline, + background, + backgroundHeight, + backgroundWidth, + backgroundColour, + backgroundAlpha, + backgroundX, + backgroundY, + neverExpire + ]); + + return ( + +
+ + {/* TEXT INPUT */} + { + setText(event.currentTarget.value); + }} + /> + + {/* FONT SELECT */} + + + {/* BACKGROUND COLOUR */} + + + {/* BACKGROUND HEIGHT */} + + Background Height + + + + {/* BACKGROUND WIDTH */} + + Background Width + + + + {/* BACKGROUND OPACITY */} + + Background Opacity + + + + {/* BACKGROUND X */} + + Background X + + + + {/* BACKGROUND Y */} + + Background Y + + + + {/* DURATION */} + + Duration (Hours) + + + + {/* Never Expire */} + {neverExpireOption && (!neverExpireAdmin || isAdmin) && ( + + { + setNeverExpire(event.currentTarget.checked); + }} + /> + )} + + {/* SHOW SCENE DURATION */} + {/* { + setShowDuration(event.currentTarget.checked); + }} + /> */} + + + + + + + +
+
+ ); +}; + +export default App; diff --git a/resources/scenes-main/web/src/hooks/useNuiEvent.ts b/resources/scenes-main/web/src/hooks/useNuiEvent.ts new file mode 100644 index 000000000..d0e15743e --- /dev/null +++ b/resources/scenes-main/web/src/hooks/useNuiEvent.ts @@ -0,0 +1,49 @@ +import {MutableRefObject, useEffect, useRef} from "react"; +import {noop} from "../utils/misc"; + +interface NuiMessageData { + action: string; + data: T; +} + +type NuiHandlerSignature = (data: T) => void; + +/** + * A hook that manage events listeners for receiving data from the client scripts + * @param action The specific `action` that should be listened for. + * @param handler The callback function that will handle data relayed by this hook + * + * @example + * useNuiEvent<{visibility: true, wasVisible: 'something'}>('setVisible', (data) => { + * // whatever logic you want + * }) + * + **/ + +export const useNuiEvent = ( + action: string, + handler: (data: T) => void +) => { + const savedHandler: MutableRefObject> = useRef(noop); + + // Make sure we handle for a reactive handler + useEffect(() => { + savedHandler.current = handler; + }, [handler]); + + useEffect(() => { + const eventListener = (event: MessageEvent>) => { + const { action: eventAction, data } = event.data; + + if (savedHandler.current) { + if (eventAction === action) { + savedHandler.current(data); + } + } + }; + + window.addEventListener("message", eventListener); + // Remove Event Listener on component cleanup + return () => window.removeEventListener("message", eventListener); + }, [action]); +}; diff --git a/resources/scenes-main/web/src/index.css b/resources/scenes-main/web/src/index.css new file mode 100644 index 000000000..655579666 --- /dev/null +++ b/resources/scenes-main/web/src/index.css @@ -0,0 +1,25 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + height: 100vh; + background: none !important; + overflow: hidden !important; + user-select: none; +} + +html { + color-scheme: normal !important; +} + +#root { + height: 100%; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/resources/scenes-main/web/src/main.tsx b/resources/scenes-main/web/src/main.tsx new file mode 100644 index 000000000..18f832f79 --- /dev/null +++ b/resources/scenes-main/web/src/main.tsx @@ -0,0 +1,41 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import { VisibilityProvider } from './providers/VisibilityProvider'; +import App from './components/App'; +import './index.css'; +import { MantineProvider, MantineThemeOverride } from '@mantine/core'; +import { isEnvBrowser } from './utils/misc'; +import { debugData } from './utils/debugData'; + +if (isEnvBrowser()) { + const root = document.getElementById('root'); + + // https://i.imgur.com/iPTAdYV.png - Night time img + // root!.style.backgroundImage = 'url("https://i.imgur.com/3pzRj9n.png")'; + // root!.style.backgroundSize = 'cover'; + // root!.style.backgroundRepeat = 'no-repeat'; + // root!.style.backgroundPosition = 'center'; + + // This will set the NUI to visible if we are + // developing in browser + debugData([ + { + action: "setVisible", + data: true, + }, + ]); +} + +const customTheme: MantineThemeOverride = { + colorScheme: 'dark', +}; + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + + + + + , +); diff --git a/resources/scenes-main/web/src/providers/VisibilityProvider.tsx b/resources/scenes-main/web/src/providers/VisibilityProvider.tsx new file mode 100644 index 000000000..a5c537cf3 --- /dev/null +++ b/resources/scenes-main/web/src/providers/VisibilityProvider.tsx @@ -0,0 +1,50 @@ +import React, {Context, createContext, useContext, useEffect, useState} from "react"; +import {useNuiEvent} from "../hooks/useNuiEvent"; +import {fetchNui} from "../utils/fetchNui"; +import { isEnvBrowser } from "../utils/misc"; + +const VisibilityCtx = createContext(null) + +interface VisibilityProviderValue { + setVisible: (visible: boolean) => void + visible: boolean +} + +// This should be mounted at the top level of your application, it is currently set to +// apply a CSS visibility value. If this is non-performant, this should be customized. +export const VisibilityProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { + const [visible, setVisible] = useState(false) + + useNuiEvent('setVisible', setVisible) + + // Handle pressing escape/backspace + useEffect(() => { + // Only attach listener when we are visible + if (!visible) return; + + const keyHandler = (e: KeyboardEvent) => { + if (["Escape"].includes(e.code)) { + if (!isEnvBrowser()) fetchNui("hideFrame"); + else setVisible(!visible); + } + } + + window.addEventListener("keydown", keyHandler) + + return () => window.removeEventListener("keydown", keyHandler) + }, [visible]) + + return ( + +
+ {children} +
+
) +} + +export const useVisibility = () => useContext(VisibilityCtx as Context) diff --git a/resources/scenes-main/web/src/utils/debugData.ts b/resources/scenes-main/web/src/utils/debugData.ts new file mode 100644 index 000000000..56876ddb8 --- /dev/null +++ b/resources/scenes-main/web/src/utils/debugData.ts @@ -0,0 +1,30 @@ +import { isEnvBrowser } from './misc'; + +interface DebugEvent { + action: string; + data: T; +} + +/** + * Emulates dispatching an event using SendNuiMessage in the lua scripts. + * This is used when developing in browser + * + * @param events - The event you want to cover + * @param timer - How long until it should trigger (ms) + */ +export const debugData =

(events: DebugEvent

[], timer = 1000): void => { + if (import.meta.env.MODE === 'development' && isEnvBrowser()) { + for (const event of events) { + setTimeout(() => { + window.dispatchEvent( + new MessageEvent('message', { + data: { + action: event.action, + data: event.data, + }, + }), + ); + }, timer); + } + } +}; diff --git a/resources/scenes-main/web/src/utils/fetchNui.ts b/resources/scenes-main/web/src/utils/fetchNui.ts new file mode 100644 index 000000000..3487da4a7 --- /dev/null +++ b/resources/scenes-main/web/src/utils/fetchNui.ts @@ -0,0 +1,33 @@ +import { isEnvBrowser } from "./misc"; + +/** + * Simple wrapper around fetch API tailored for CEF/NUI use. This abstraction + * can be extended to include AbortController if needed or if the response isn't + * JSON. Tailor it to your needs. + * + * @param eventName - The endpoint eventname to target + * @param data - Data you wish to send in the NUI Callback + * @param mockData - Mock data to be returned if in the browser + * + * @return returnData - A promise for the data sent back by the NuiCallbacks CB argument + */ + +export async function fetchNui(eventName: string, data?: any, mockData?: T): Promise { + const options = { + method: 'post', + headers: { + 'Content-Type': 'application/json; charset=UTF-8', + }, + body: JSON.stringify(data), + }; + + if (isEnvBrowser() && mockData) return mockData; + + const resourceName = (window as any).GetParentResourceName ? (window as any).GetParentResourceName() : 'nui-frame-app'; + + const resp = await fetch(`https://${resourceName}/${eventName}`, options); + + const respFormatted = await resp.json() + + return respFormatted +} diff --git a/resources/scenes-main/web/src/utils/misc.ts b/resources/scenes-main/web/src/utils/misc.ts new file mode 100644 index 000000000..4c16a2998 --- /dev/null +++ b/resources/scenes-main/web/src/utils/misc.ts @@ -0,0 +1,6 @@ +// Will return whether the current environment is in a regular browser +// and not CEF +export const isEnvBrowser = (): boolean => !(window as any).invokeNative + +// Basic no operation function +export const noop = () => {} \ No newline at end of file diff --git a/resources/scenes-main/web/src/vite-env.d.ts b/resources/scenes-main/web/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/resources/scenes-main/web/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/resources/scenes-main/web/tsconfig.json b/resources/scenes-main/web/tsconfig.json new file mode 100644 index 000000000..3d0a51a86 --- /dev/null +++ b/resources/scenes-main/web/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/resources/scenes-main/web/tsconfig.node.json b/resources/scenes-main/web/tsconfig.node.json new file mode 100644 index 000000000..e993792cb --- /dev/null +++ b/resources/scenes-main/web/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "esnext", + "moduleResolution": "node" + }, + "include": ["vite.config.ts"] +} diff --git a/resources/scenes-main/web/vite.config.ts b/resources/scenes-main/web/vite.config.ts new file mode 100644 index 000000000..724195ed7 --- /dev/null +++ b/resources/scenes-main/web/vite.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + base: './', + build: { + outDir: 'build', + }, +}); diff --git a/resources/scenes-main/web/yarn.lock b/resources/scenes-main/web/yarn.lock new file mode 100644 index 000000000..ed94226a4 --- /dev/null +++ b/resources/scenes-main/web/yarn.lock @@ -0,0 +1,1255 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" + integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== + dependencies: + "@babel/highlight" "^7.22.10" + chalk "^2.4.2" + +"@babel/compat-data@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" + integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + +"@babel/core@^7.19.6": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" + integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.10" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.10" + "@babel/parser" "^7.22.10" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.1" + +"@babel/generator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" + integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== + dependencies: + "@babel/types" "^7.22.10" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-compilation-targets@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" + integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== + dependencies: + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.5" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" + integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== + +"@babel/helper-function-name@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" + integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== + dependencies: + "@babel/template" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" + integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-transforms@^7.22.9": + version "7.22.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" + integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.5" + +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" + integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== + +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + +"@babel/helper-validator-option@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" + integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== + +"@babel/helpers@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a" + integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw== + dependencies: + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" + +"@babel/highlight@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" + integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== + dependencies: + "@babel/helper-validator-identifier" "^7.22.5" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.22.10", "@babel/parser@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" + integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== + +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-development@^7.18.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" + integrity sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.22.5" + +"@babel/plugin-transform-react-jsx-self@^7.18.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz#ca2fdc11bc20d4d46de01137318b13d04e481d8e" + integrity sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-source@^7.19.6": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz#49af1615bfdf6ed9d3e9e43e425e0b2b65d15b6c" + integrity sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx@^7.19.0", "@babel/plugin-transform-react-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" + integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.18.3": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" + integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== + dependencies: + "@babel/code-frame" "^7.22.5" + "@babel/parser" "^7.22.5" + "@babel/types" "^7.22.5" + +"@babel/traverse@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa" + integrity sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig== + dependencies: + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.22.10" + "@babel/types" "^7.22.10" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.22.10", "@babel/types@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" + integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + +"@emotion/babel-plugin@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c" + integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/serialize" "^1.1.2" + babel-plugin-macros "^3.1.0" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "4.2.0" + +"@emotion/cache@^11.11.0": + version "11.11.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff" + integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ== + dependencies: + "@emotion/memoize" "^0.8.1" + "@emotion/sheet" "^1.2.2" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + stylis "4.2.0" + +"@emotion/hash@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43" + integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/react@^11.11.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.11.0" + "@emotion/cache" "^11.11.0" + "@emotion/serialize" "^1.1.2" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1" + "@emotion/utils" "^1.2.1" + "@emotion/weak-memoize" "^0.3.1" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51" + integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA== + dependencies: + "@emotion/hash" "^0.9.1" + "@emotion/memoize" "^0.8.1" + "@emotion/unitless" "^0.8.1" + "@emotion/utils" "^1.2.1" + csstype "^3.0.2" + +"@emotion/sheet@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec" + integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== + +"@emotion/unitless@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" + integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== + +"@emotion/utils@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4" + integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg== + +"@emotion/weak-memoize@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" + integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== + +"@esbuild/android-arm@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" + integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== + +"@esbuild/linux-loong64@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" + integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== + +"@floating-ui/core@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17" + integrity sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ== + dependencies: + "@floating-ui/utils" "^0.1.1" + +"@floating-ui/dom@^1.2.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.1.tgz#88b70defd002fe851f17b4a25efb2d3c04d7a8d7" + integrity sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw== + dependencies: + "@floating-ui/core" "^1.4.1" + "@floating-ui/utils" "^0.1.1" + +"@floating-ui/react-dom@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-1.3.0.tgz#4d35d416eb19811c2b0e9271100a6aa18c1579b3" + integrity sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g== + dependencies: + "@floating-ui/dom" "^1.2.1" + +"@floating-ui/react@^0.19.1": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.19.2.tgz#c6e4d2097ed0dca665a7c042ddf9cdecc95e9412" + integrity sha512-JyNk4A0Ezirq8FlXECvRtQOX/iBe5Ize0W/pLkrZjfHW9GUV7Xnq6zm6fyZuQzaHHqEnVizmvlA96e1/CkZv+w== + dependencies: + "@floating-ui/react-dom" "^1.3.0" + aria-hidden "^1.1.3" + tabbable "^6.0.1" + +"@floating-ui/utils@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83" + integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw== + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@mantine/core@^6.0.19": + version "6.0.19" + resolved "https://registry.yarnpkg.com/@mantine/core/-/core-6.0.19.tgz#612413f0e8eb117e6a39068a625c6ccf2ae2ccdd" + integrity sha512-SvMZCOgCc315SIg6hkuLM0ZnBaAac4VFDHZ0BM5LIE4MPJUpe4QOLsg/5RGxOa5s7JRCtu/dawH3/9frvfDrhw== + dependencies: + "@floating-ui/react" "^0.19.1" + "@mantine/styles" "6.0.19" + "@mantine/utils" "6.0.19" + "@radix-ui/react-scroll-area" "1.0.2" + react-remove-scroll "^2.5.5" + react-textarea-autosize "8.3.4" + +"@mantine/form@^6.0.19": + version "6.0.19" + resolved "https://registry.yarnpkg.com/@mantine/form/-/form-6.0.19.tgz#3d97f08a45b1a8bc8840dbf77defd267abb20e39" + integrity sha512-5SFLZEzaBH7yKIDSDt1r9UiN4y7RkFvu+7J7CFPIQM+nTdXeGnugVFM8rASuZI7/FSYty/XoPY+Yymq3xDX+MQ== + dependencies: + fast-deep-equal "^3.1.3" + klona "^2.0.5" + +"@mantine/hooks@^6.0.19": + version "6.0.19" + resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-6.0.19.tgz#39f61434304f687d3ba7bf0040c5adf380c7c4b3" + integrity sha512-YkmuB6kmoenU1PVuE8tLBA+6RJIY9hIsGyIQG1yuPAy6SLWNFT8g2T9YvI/psqsUbVIYGaNEXg8zq42xbxnD8Q== + +"@mantine/styles@6.0.19": + version "6.0.19" + resolved "https://registry.yarnpkg.com/@mantine/styles/-/styles-6.0.19.tgz#7d9a6f2c2a9b345dfd9d12f8fd66af3976d67ab2" + integrity sha512-0tg3Dvv/kxCc1mbQVFhZaIhlSbSbV1F/3xG0NRlP2DF23mw9088o5KaIXGKM6XkXU6OEt/f99nDCUHBk2ixtUg== + dependencies: + clsx "1.1.1" + csstype "3.0.9" + +"@mantine/utils@6.0.19": + version "6.0.19" + resolved "https://registry.yarnpkg.com/@mantine/utils/-/utils-6.0.19.tgz#0197fccc5649259787d5468228139f8815909803" + integrity sha512-duvtnaW1gDR2gnvUqnWhl6DMW7sN0HEWqS8Z/BbwaMi75U+Xp17Q72R9JtiIrxQbzsq+KvH9L9B/pxMVwbLirg== + +"@radix-ui/number@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.0.0.tgz#4c536161d0de750b3f5d55860fc3de46264f897b" + integrity sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/primitive@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.0.0.tgz#e1d8ef30b10ea10e69c76e896f608d9276352253" + integrity sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-compose-refs@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz#37595b1f16ec7f228d698590e78eeed18ff218ae" + integrity sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-context@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.0.0.tgz#f38e30c5859a9fb5e9aa9a9da452ee3ed9e0aee0" + integrity sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-direction@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.0.0.tgz#a2e0b552352459ecf96342c79949dd833c1e6e45" + integrity sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-presence@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-1.0.0.tgz#814fe46df11f9a468808a6010e3f3ca7e0b2e84a" + integrity sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-use-layout-effect" "1.0.0" + +"@radix-ui/react-primitive@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-1.0.1.tgz#c1ebcce283dd2f02e4fbefdaa49d1cb13dbc990a" + integrity sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-slot" "1.0.1" + +"@radix-ui/react-scroll-area@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.2.tgz#26c906d351b56835c0301126b24574c9e9c7b93b" + integrity sha512-k8VseTxI26kcKJaX0HPwkvlNBPTs56JRdYzcZ/vzrNUkDlvXBy8sMc7WvCpYzZkHgb+hd72VW9MqkqecGtuNgg== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/number" "1.0.0" + "@radix-ui/primitive" "1.0.0" + "@radix-ui/react-compose-refs" "1.0.0" + "@radix-ui/react-context" "1.0.0" + "@radix-ui/react-direction" "1.0.0" + "@radix-ui/react-presence" "1.0.0" + "@radix-ui/react-primitive" "1.0.1" + "@radix-ui/react-use-callback-ref" "1.0.0" + "@radix-ui/react-use-layout-effect" "1.0.0" + +"@radix-ui/react-slot@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.0.1.tgz#e7868c669c974d649070e9ecbec0b367ee0b4d81" + integrity sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw== + dependencies: + "@babel/runtime" "^7.13.10" + "@radix-ui/react-compose-refs" "1.0.0" + +"@radix-ui/react-use-callback-ref@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz#9e7b8b6b4946fe3cbe8f748c82a2cce54e7b6a90" + integrity sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg== + dependencies: + "@babel/runtime" "^7.13.10" + +"@radix-ui/react-use-layout-effect@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz#2fc19e97223a81de64cd3ba1dc42ceffd82374dc" + integrity sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ== + dependencies: + "@babel/runtime" "^7.13.10" + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/react-dom@^18.0.9": + version "18.2.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.0.25": + version "18.2.20" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.20.tgz#1605557a83df5c8a2cc4eeb743b3dfc0eb6aaeb2" + integrity sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.3" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" + integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== + +"@vitejs/plugin-react@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz#1b9f63b8b6bc3f56258d20cd19b33f5cc761ce6e" + integrity sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA== + dependencies: + "@babel/core" "^7.19.6" + "@babel/plugin-transform-react-jsx" "^7.19.0" + "@babel/plugin-transform-react-jsx-development" "^7.18.6" + "@babel/plugin-transform-react-jsx-self" "^7.18.6" + "@babel/plugin-transform-react-jsx-source" "^7.19.6" + magic-string "^0.26.7" + react-refresh "^0.14.0" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +aria-hidden@^1.1.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.3.tgz#14aeb7fb692bbb72d69bebfa47279c1fd725e954" + integrity sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ== + dependencies: + tslib "^2.0.0" + +babel-plugin-macros@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +browserslist@^4.21.9: + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== + dependencies: + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" + update-browserslist-db "^1.0.11" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +caniuse-lite@^1.0.30001517: + version "1.0.30001522" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz#44b87a406c901269adcdb834713e23582dd71856" + integrity sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +clsx@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +convert-source-map@^1.5.0, convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +cosmiconfig@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +csstype@3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz#6410af31b26bd0520933d02cbc64fce9ce3fbf0b" + integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw== + +csstype@^3.0.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + +debug@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +detect-node-es@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" + integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ== + +electron-to-chromium@^1.4.477: + version "1.4.498" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.498.tgz#cef35341123f62a35ba7084e439c911d25e0d81b" + integrity sha512-4LODxAzKGVy7CJyhhN5mebwe7U2L29P+0G+HUriHnabm0d7LSff8Yn7t+Wq+2/9ze2Fu1dhX7mww090xfv7qXQ== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +esbuild-android-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" + integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== + +esbuild-android-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" + integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== + +esbuild-darwin-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" + integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== + +esbuild-darwin-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" + integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== + +esbuild-freebsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" + integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== + +esbuild-freebsd-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" + integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== + +esbuild-linux-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" + integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== + +esbuild-linux-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" + integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== + +esbuild-linux-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" + integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== + +esbuild-linux-arm@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" + integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== + +esbuild-linux-mips64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" + integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== + +esbuild-linux-ppc64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" + integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== + +esbuild-linux-riscv64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" + integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== + +esbuild-linux-s390x@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" + integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== + +esbuild-netbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" + integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== + +esbuild-openbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" + integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== + +esbuild-sunos-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" + integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== + +esbuild-windows-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" + integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== + +esbuild-windows-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" + integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== + +esbuild-windows-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" + integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== + +esbuild@^0.15.9: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" + integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== + optionalDependencies: + "@esbuild/android-arm" "0.15.18" + "@esbuild/linux-loong64" "0.15.18" + esbuild-android-64 "0.15.18" + esbuild-android-arm64 "0.15.18" + esbuild-darwin-64 "0.15.18" + esbuild-darwin-arm64 "0.15.18" + esbuild-freebsd-64 "0.15.18" + esbuild-freebsd-arm64 "0.15.18" + esbuild-linux-32 "0.15.18" + esbuild-linux-64 "0.15.18" + esbuild-linux-arm "0.15.18" + esbuild-linux-arm64 "0.15.18" + esbuild-linux-mips64le "0.15.18" + esbuild-linux-ppc64le "0.15.18" + esbuild-linux-riscv64 "0.15.18" + esbuild-linux-s390x "0.15.18" + esbuild-netbsd-64 "0.15.18" + esbuild-openbsd-64 "0.15.18" + esbuild-sunos-64 "0.15.18" + esbuild-windows-32 "0.15.18" + esbuild-windows-64 "0.15.18" + esbuild-windows-arm64 "0.15.18" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-nonce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" + integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hoist-non-react-statics@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +klona@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loose-envify@^1.0.0, loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +magic-string@^0.26.7: + version "0.26.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" + integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== + dependencies: + sourcemap-codec "^1.4.8" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +postcss@^8.4.18: + version "8.4.28" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5" + integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + +react-remove-scroll-bar@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz#53e272d7a5cb8242990c7f144c44d8bd8ab5afd9" + integrity sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A== + dependencies: + react-style-singleton "^2.2.1" + tslib "^2.0.0" + +react-remove-scroll@^2.5.5: + version "2.5.6" + resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.6.tgz#7510b8079e9c7eebe00e65a33daaa3aa29a10336" + integrity sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg== + dependencies: + react-remove-scroll-bar "^2.3.4" + react-style-singleton "^2.2.1" + tslib "^2.1.0" + use-callback-ref "^1.3.0" + use-sidecar "^1.1.2" + +react-style-singleton@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4" + integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g== + dependencies: + get-nonce "^1.0.0" + invariant "^2.2.4" + tslib "^2.0.0" + +react-textarea-autosize@8.3.4: + version "8.3.4" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz#270a343de7ad350534141b02c9cb78903e553524" + integrity sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ== + dependencies: + "@babel/runtime" "^7.10.2" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.19.0, resolve@^1.22.1: + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rollup@^2.79.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tabbable@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" + integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== + +tabler-icons-react@^1.56.0: + version "1.56.0" + resolved "https://registry.yarnpkg.com/tabler-icons-react/-/tabler-icons-react-1.56.0.tgz#d2a6cf9160f25b370c38c356fa6284c254e5113e" + integrity sha512-FOme3w6PJIWDpeXqQ4xjArQqdxzrr9xNy7PSSgWpRzOUQ71RyZ7jt6WThsfyLBz5os78TPJRA8f/0NLjnKcx9A== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +tslib@^2.0.0, tslib@^2.1.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +typescript@^4.9.3: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +update-browserslist-db@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" + integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +use-callback-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" + integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== + dependencies: + tslib "^2.0.0" + +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + +use-sidecar@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2" + integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw== + dependencies: + detect-node-es "^1.1.0" + tslib "^2.0.0" + +vite@^3.2.4: + version "3.2.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.7.tgz#35a62826bd4d6b778ae5db8766d023bcd4e7bef3" + integrity sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g== + dependencies: + esbuild "^0.15.9" + postcss "^8.4.18" + resolve "^1.22.1" + rollup "^2.79.1" + optionalDependencies: + fsevents "~2.3.2" + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== diff --git a/resources/vMenu/config/addons.json b/resources/vMenu/config/addons.json index b9518b775..a87490b2b 100644 --- a/resources/vMenu/config/addons.json +++ b/resources/vMenu/config/addons.json @@ -391,7 +391,6 @@ "fenzo", "fmagnum", "fprofilee", - "freebovenomgt", "fsvj", "fsc20", "fsm07", @@ -482,8 +481,8 @@ "23legacy18utility", "23legacy21suv", "umscatty", - " ", - " ", + "23legacy18utilitysl", + "23legacy21suv", " ", " ", " ", diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/Templates/velocity_flags.png b/resources/velocity/Templates/velocity_flags.png similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/Templates/velocity_flags.png rename to resources/velocity/Templates/velocity_flags.png diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/Templates/velocity_sign_1.png b/resources/velocity/Templates/velocity_sign_1.png similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/Templates/velocity_sign_1.png rename to resources/velocity/Templates/velocity_sign_1.png diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/Templates/windows_template.png b/resources/velocity/Templates/windows_template.png similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/Templates/windows_template.png rename to resources/velocity/Templates/windows_template.png diff --git a/resources/velocity/__resource.lua b/resources/velocity/__resource.lua new file mode 100644 index 000000000..fff0be1b8 --- /dev/null +++ b/resources/velocity/__resource.lua @@ -0,0 +1,15 @@ +resource_manifest_version '77731fab-63ca-442c-a67b-abc70f28dfa5' + +files { + 'vehicles.meta', + 'carvariations.meta', + 'carcols.meta', + 'handling.meta', + 'vehiclelayouts.meta', +} + +data_file 'HANDLING_FILE' 'handling.meta' +data_file 'VEHICLE_METADATA_FILE' 'vehicles.meta' +data_file 'CARCOLS_FILE' 'carcols.meta' +data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta' +data_file 'VEHICLE_LAYOUTS_FILE' 'vehiclelayouts.meta' \ No newline at end of file diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/carcols.meta b/resources/velocity/carcols.meta similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/carcols.meta rename to resources/velocity/carcols.meta diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/carvariations.meta b/resources/velocity/carvariations.meta similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/carvariations.meta rename to resources/velocity/carvariations.meta diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/handling.meta b/resources/velocity/handling.meta similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/handling.meta rename to resources/velocity/handling.meta diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/velocity/velocity.yft b/resources/velocity/stream/velocity.yft similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/stream/velocity/velocity.yft rename to resources/velocity/stream/velocity.yft diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/velocity/velocity.ytd b/resources/velocity/stream/velocity.ytd similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/stream/velocity/velocity.ytd rename to resources/velocity/stream/velocity.ytd diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/stream/velocity/velocity_hi.yft b/resources/velocity/stream/velocity_hi.yft similarity index 100% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/stream/velocity/velocity_hi.yft rename to resources/velocity/stream/velocity_hi.yft diff --git a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/vehicles.meta b/resources/velocity/vehicles.meta similarity index 99% rename from resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/vehicles.meta rename to resources/velocity/vehicles.meta index e0f0b3103..2ea1829bf 100644 --- a/resources/[EGRP-CarPacks]/EGRP-Emergency/data/velocity/vehicles.meta +++ b/resources/velocity/vehicles.meta @@ -15,7 +15,7 @@ null veh_barrage - firetruk + kc85cumminsb67 LAYOUT_FIRETRUCK UTILITRUCK_COVER_OFFSET_INFO EXPLOSION_INFO_DEFAULT diff --git a/server.cfg b/server.cfg index 07fb4bebe..9d80733f6 100644 --- a/server.cfg +++ b/server.cfg @@ -443,7 +443,7 @@ ensure breze_dealership ensure int_mphouse01 ensure cfx-gom-map-higginsauto ensure cfx-gom-map-dealershop2 -ensure +ensure otto_grapeseed_firestation ensure ensure ensure