@@ -108,7 +108,7 @@ public class LotContainer
108
108
0x475CC813 , //water balloon controller
109
109
0x2D583771 , //winter weather controller
110
110
0x7A78195C , //snowball controller
111
- 0x33AD8F84 , //face mask controller
111
+ 0x063F2ABE , //global accessory controller
112
112
0x04AB1D1F , //zombie spawner controller
113
113
0x0DF8592E , //mini sims
114
114
0x48F32C7B , //au game controller
@@ -202,13 +202,37 @@ public LotContainer(IDAFactory da, LotContext context, ILotHost host, IKernel ke
202
202
public void GenerateTerrain ( )
203
203
{
204
204
Terrain = new VMTSOSurroundingTerrain ( ) ;
205
+
205
206
var coords = MapCoordinates . Unpack ( LotPersist . location ) ;
206
207
var map = Realestate . GetMap ( ) ;
207
- for ( int y = 0 ; y < 3 ; y ++ )
208
+
209
+ if ( LotPersist . location >= 0x10200 && LotPersist . location < 0x20000 )
208
210
{
209
- for ( int x = 0 ; x < 3 ; x ++ )
211
+ // Special off-world property. Currently these are all islands.
212
+ for ( int y = 0 ; y < 3 ; y ++ )
213
+ {
214
+ for ( int x = 0 ; x < 3 ; x ++ )
215
+ {
216
+ var baseType = ( x == 1 && y == 1 ) ? Content . Model . TerrainType . SAND : Content . Model . TerrainType . WATER ;
217
+
218
+ Terrain . BlendN [ x , y ] = new Content . Model . TerrainBlend ( )
219
+ {
220
+ Base = baseType ,
221
+ Blend = baseType ,
222
+ AdjFlags = 0 ,
223
+ WaterFlags = 0
224
+ } ;
225
+ }
226
+ }
227
+ }
228
+ else
229
+ {
230
+ for ( int y = 0 ; y < 3 ; y ++ )
210
231
{
211
- Terrain . BlendN [ x , y ] = map . GetBlend ( ( coords . X - 1 ) + x , ( coords . Y - 1 ) + y ) ;
232
+ for ( int x = 0 ; x < 3 ; x ++ )
233
+ {
234
+ Terrain . BlendN [ x , y ] = map . GetBlend ( ( coords . X - 1 ) + x , ( coords . Y - 1 ) + y ) ;
235
+ }
212
236
}
213
237
}
214
238
@@ -440,7 +464,10 @@ private void ReturnOOWObjects()
440
464
{
441
465
//we can delete these without respecting slot rules because of how SLOTs work (deleting table under us will move us to OOW)
442
466
443
- var ents = Lot . Entities . Where ( x => x . Position == LotView . Model . LotTilePos . OUT_OF_WORLD && ! ValidOOWGUIDs . Contains ( x . Object . OBJ . GUID ) ) . ToList ( ) ;
467
+ var ents = Lot . Entities . Where ( x =>
468
+ x . Position == LotView . Model . LotTilePos . OUT_OF_WORLD &&
469
+ ( ! ( x is VMGameObject ) || ! ( ( VMGameObject ) x ) . Disabled . HasFlag ( VMGameObjectDisableFlags . Transient ) ) &&
470
+ ! ValidOOWGUIDs . Contains ( x . Object . OBJ . GUID ) ) . ToList ( ) ;
444
471
ents . AddRange ( Lot . Entities . Where ( x => x . MultitileGroup . Objects . Any ( y => InvalidGUIDs . Contains ( y . Object . OBJ . GUID ) ) ) ) ;
445
472
446
473
foreach ( var ent in ents )
@@ -752,6 +779,7 @@ public void ResetVM()
752
779
{
753
780
Tuning = Tuning
754
781
} ) ;
782
+ Lot . Tick ( ) ;
755
783
}
756
784
757
785
Lot . Context . UpdateTSOBuildableArea ( ) ;
0 commit comments