@@ -51,23 +51,24 @@ public MapEntity(Level level, long mapId = EntityManager.EntityIdUndefined) : ba
5151 EntityId = level . EntityManager . AddEntity ( this ) + 0xFFFF ;
5252 }
5353
54- //ImageProvider = new MapImageProvider();
55- ImageProvider = new RandomColorMapImageProvider ( ) ;
54+ ImageProvider = new MapImageProvider ( ) ;
5655
57- var mapInfo = new MapInfo
56+ if ( MapInfo == null )
5857 {
59- MapId = EntityId ,
60- UpdateType = 0 ,
61- Scale = 0 ,
62- X = 0 ,
63- Z = 0 ,
64- Col = 128 ,
65- Row = 128 ,
66- XOffset = 0 ,
67- ZOffset = 0
68- } ;
69-
70- MapInfo = mapInfo ;
58+ var mapInfo = new MapInfo
59+ {
60+ MapId = EntityId ,
61+ UpdateType = 0 ,
62+ Scale = 0 ,
63+ X = 0 ,
64+ Z = 0 ,
65+ Col = 128 ,
66+ Row = 128 ,
67+ XOffset = 0 ,
68+ ZOffset = 0
69+ } ;
70+ MapInfo = mapInfo ;
71+ }
7172 }
7273
7374 public override void SpawnToPlayers ( Player [ ] players )
@@ -82,57 +83,29 @@ public override void DespawnFromPlayers(Player[] players)
8283
8384 public override void OnTick ( Entity [ ] entities )
8485 {
85- // if (Level.TickTime % 2 != 0) return;
86+ if ( Level . TickTime % 2 != 0 ) return ;
8687
87- // if no image provider, do nothing
8888 if ( ImageProvider == null ) return ;
8989
90- MapInfo . Decorators = new MapDecorator [ 0 ] ;
91- //MapInfo.Decorators = new MapDecorator[1];
92- //for (int i = 0; i < MapInfo.Decorators.Length; i++)
93- //{
94- // var decorator = new MapDecorator
95- // {
96- // Rotation = (byte) (Level.TickTime % 16),
97- // Icon = (byte) 1,
98- // X = (byte) (Level.TickTime % 255),
99- // Z = (byte) (Level.TickTime % 255),
100- // Label = "",
101- // Color = BitConverter.ToUInt32(new byte[] {0xff, 0xff, 0xff, 0xff}, 0),
102- // };
103-
104- // MapInfo.Decorators[i] = decorator;
105- //}
106-
107- var data = ImageProvider . GetData ( MapInfo , false ) ;
108- if ( data != null )
90+ if ( MapInfo . Decorators == null )
10991 {
110- MapInfo . Data = data ;
111-
112- MapInfo . UpdateType = initialized ? ( byte ) 2 : ( byte ) 8 ;
113-
114- var mapInfo = ( MapInfo ) MapInfo . Clone ( ) ;
115-
116- var msg = McpeClientboundMapItemData . CreateObject ( ) ;
117- msg . mapinfo = mapInfo ;
118- Level . RelayBroadcast ( msg ) ;
119- initialized = true ;
120- return ;
92+ MapInfo . Decorators = new MapDecorator [ 0 ] ;
12193 }
12294
123- var packet = ImageProvider . GetClientboundMapItemData ( MapInfo ) ;
124- if ( packet != null )
95+ if ( MapInfo . Data == null )
12596 {
126- Level . RelayBroadcast ( packet ) ;
127-
128- return ;
97+ MapInfo . Data = ImageProvider . GetData ( MapInfo , false ) ;
12998 }
99+
100+ MapInfo . UpdateType = initialized ? ( byte ) 2 : ( byte ) 8 ;
130101
131- var batchPacket = ImageProvider . GetBatch ( MapInfo , false ) ;
132- if ( batchPacket != null )
133- {
134- Level . RelayBroadcast ( batchPacket ) ;
135- }
102+ var mapInfo = ( MapInfo ) MapInfo . Clone ( ) ;
103+
104+ var msg = McpeClientboundMapItemData . CreateObject ( ) ;
105+ msg . mapinfo = mapInfo ;
106+ Level . RelayBroadcast ( msg ) ;
107+ initialized = true ;
108+ return ;
136109 }
137110
138111 public virtual void AddToMapListeners ( Player player , long mapId )
0 commit comments