10
10
using GTA . Math ;
11
11
using GTA . Native ;
12
12
using GTA . UI ;
13
- using NativeUI ;
13
+ using LemonUI ;
14
+ using LemonUI . Menus ;
14
15
15
16
namespace ActivityGhosts
16
17
{
17
18
public class ActivityGhosts : Script
18
19
{
19
- private List < Ghost > ghosts ;
20
+ private readonly List < Ghost > ghosts ;
20
21
private Blip start ;
21
22
private int lastTime ;
22
23
private Keys menuKey ;
23
24
public static PointF initialGPSPoint ;
24
25
public static int opacity ;
25
26
private bool showDate ;
27
+ private ObjectPool menuPool ;
28
+ private NativeMenu mainMenu ;
29
+ private NativeItem loadMenuItem ;
30
+ private NativeItem regroupMenuItem ;
31
+ private NativeItem deleteMenuItem ;
26
32
27
33
public ActivityGhosts ( )
28
34
{
@@ -132,45 +138,52 @@ private void LoadSettings()
132
138
133
139
private void CreateMenu ( )
134
140
{
135
- var menuPool = new MenuPool ( ) ;
136
- var mainMenu = new UIMenu ( "ActivityGhosts" , "Ride with ghosts from previous activities ") ;
141
+ menuPool = new ObjectPool ( ) ;
142
+ mainMenu = new NativeMenu ( "ActivityGhosts" ) ;
137
143
menuPool . Add ( mainMenu ) ;
138
- var loadMenuItem = new UIMenuItem ( "Load" , "Load ghosts" ) ;
139
- loadMenuItem . Enabled = true ;
140
- mainMenu . AddItem ( loadMenuItem ) ;
141
- var regroupMenuItem = new UIMenuItem ( "Regroup" , "Regroup ghosts" ) ;
142
- regroupMenuItem . Enabled = false ;
143
- mainMenu . AddItem ( regroupMenuItem ) ;
144
- var deleteMenuItem = new UIMenuItem ( "Delete" , "Delete ghosts" ) ;
145
- deleteMenuItem . Enabled = false ;
146
- mainMenu . AddItem ( deleteMenuItem ) ;
147
- mainMenu . OnItemSelect += ( sender , item , index ) =>
144
+ loadMenuItem = new NativeItem ( "Load" , "Load ghosts" )
148
145
{
149
- if ( item == loadMenuItem && loadMenuItem . Enabled )
150
- {
151
- LoadGhosts ( ) ;
152
- if ( ghosts . Count > 0 )
153
- {
154
- start = World . CreateBlip ( Game . Player . Character . Position ) ;
155
- start . Sprite = BlipSprite . RaceBike ;
156
- loadMenuItem . Enabled = false ;
157
- regroupMenuItem . Enabled = true ;
158
- deleteMenuItem . Enabled = true ;
159
- }
160
- }
161
- else if ( item == regroupMenuItem && regroupMenuItem . Enabled )
162
- RegroupGhosts ( ) ;
163
- else if ( item == deleteMenuItem && deleteMenuItem . Enabled )
146
+ Enabled = true
147
+ } ;
148
+ mainMenu . Add ( loadMenuItem ) ;
149
+ loadMenuItem . Activated += ( sender , itemArgs ) =>
150
+ {
151
+ LoadGhosts ( ) ;
152
+ if ( ghosts . Count > 0 )
164
153
{
165
- DeleteGhosts ( ) ;
166
- loadMenuItem . Enabled = true ;
167
- regroupMenuItem . Enabled = false ;
168
- deleteMenuItem . Enabled = false ;
154
+ start = World . CreateBlip ( Game . Player . Character . Position ) ;
155
+ start . Sprite = BlipSprite . RaceBike ;
156
+ loadMenuItem . Enabled = false ;
157
+ regroupMenuItem . Enabled = true ;
158
+ deleteMenuItem . Enabled = true ;
169
159
}
170
160
mainMenu . Visible = false ;
171
161
} ;
172
- menuPool . RefreshIndex ( ) ;
173
- Tick += ( o , e ) => menuPool . ProcessMenus ( ) ;
162
+ regroupMenuItem = new NativeItem ( "Regroup" , "Regroup ghosts" )
163
+ {
164
+ Enabled = false
165
+ } ;
166
+ mainMenu . Add ( regroupMenuItem ) ;
167
+ regroupMenuItem . Activated += ( sender , itemArgs ) =>
168
+ {
169
+ RegroupGhosts ( ) ;
170
+ mainMenu . Visible = false ;
171
+ } ;
172
+ deleteMenuItem = new NativeItem ( "Delete" , "Delete ghosts" )
173
+ {
174
+ Enabled = false
175
+ } ;
176
+ mainMenu . Add ( deleteMenuItem ) ;
177
+ deleteMenuItem . Activated += ( sender , itemArgs ) =>
178
+ {
179
+ DeleteGhosts ( ) ;
180
+ loadMenuItem . Enabled = true ;
181
+ regroupMenuItem . Enabled = false ;
182
+ deleteMenuItem . Enabled = false ;
183
+ mainMenu . Visible = false ;
184
+ } ;
185
+ menuPool . RefreshAll ( ) ;
186
+ Tick += ( o , e ) => menuPool . Process ( ) ;
174
187
KeyDown += ( o , e ) =>
175
188
{
176
189
if ( e . KeyCode == menuKey )
@@ -181,24 +194,24 @@ private void CreateMenu()
181
194
182
195
public class Ghost
183
196
{
184
- private List < GeoPoint > points ;
185
- private Vehicle vehicle ;
197
+ private readonly List < GeoPoint > points ;
198
+ private readonly Vehicle vehicle ;
186
199
public Ped ped ;
187
200
public TextElement date ;
188
- private Blip blip ;
201
+ private readonly Blip blip ;
189
202
private int index ;
190
203
191
- private VehicleDrivingFlags customDrivingStyle = VehicleDrivingFlags . AllowGoingWrongWay |
192
- VehicleDrivingFlags . AllowMedianCrossing |
193
- VehicleDrivingFlags . AvoidEmptyVehicles |
194
- VehicleDrivingFlags . AvoidObjects |
195
- VehicleDrivingFlags . AvoidPeds |
196
- VehicleDrivingFlags . AvoidVehicles |
197
- VehicleDrivingFlags . IgnorePathFinding ;
204
+ private readonly VehicleDrivingFlags customDrivingStyle = VehicleDrivingFlags . AllowGoingWrongWay |
205
+ VehicleDrivingFlags . AllowMedianCrossing |
206
+ VehicleDrivingFlags . AvoidEmptyVehicles |
207
+ VehicleDrivingFlags . AvoidObjects |
208
+ VehicleDrivingFlags . AvoidPeds |
209
+ VehicleDrivingFlags . AvoidVehicles |
210
+ VehicleDrivingFlags . IgnorePathFinding ;
198
211
199
- private string [ ] availableBicycles = { "BMX" , "CRUISER" , "FIXTER" , "SCORCHER" , "TRIBIKE" , "TRIBIKE2" , "TRIBIKE3" } ;
212
+ private readonly string [ ] availableBicycles = { "BMX" , "CRUISER" , "FIXTER" , "SCORCHER" , "TRIBIKE" , "TRIBIKE2" , "TRIBIKE3" } ;
200
213
201
- private string [ ] availableCyclists = { "a_m_y_cyclist_01" , "a_m_y_roadcyc_01" } ;
214
+ private readonly string [ ] availableCyclists = { "a_m_y_cyclist_01" , "a_m_y_roadcyc_01" } ;
202
215
203
216
public Ghost ( List < GeoPoint > pointList , string span )
204
217
{
0 commit comments