private SmashBlock CreateSmashBlock(XElement node) { SmashBlock newSmashBlock; if (Data.Profile.PlayingRaceMode) { newSmashBlock = new RaceModePowerUpSmashBlock(); ((RaceModePowerUpSmashBlock)newSmashBlock).TickCallback = _registerTimerTick; ((RaceModePowerUpSmashBlock)newSmashBlock).RegenerationParticleEffect = _smashBlockRegenerationCallback; } else { newSmashBlock = new SurvivalModeItemSmashBlock(); } newSmashBlock.WorldPosition = new Vector2((float)node.Attribute("x"), (float)node.Attribute("y")); newSmashBlock.SmashCallback = _smashBlockCallback; foreach (XElement el in node.Elements("contains-item")) { Data.SmashBlockItemData item = CreateSmashBlockItem(el, newSmashBlock.WorldPosition); if (item != null) { newSmashBlock.Contents.Add(item); } } return(newSmashBlock); }
private SmashBlock CreateSmashBlock(XElement node) { SmashBlock newSmashBlock; if (Data.Profile.PlayingRaceMode) { newSmashBlock = new RaceModePowerUpSmashBlock(); ((RaceModePowerUpSmashBlock)newSmashBlock).TickCallback = _registerTimerTick; ((RaceModePowerUpSmashBlock)newSmashBlock).RegenerationParticleEffect = _smashBlockRegenerationCallback; } else { newSmashBlock = new SurvivalModeItemSmashBlock(); } newSmashBlock.WorldPosition = new Vector2((float)node.Attribute("x"), (float)node.Attribute("y")); newSmashBlock.SmashCallback = _smashBlockCallback; foreach (XElement el in node.Elements("contains-item")) { Data.SmashBlockItemData item = CreateSmashBlockItem(el, newSmashBlock.WorldPosition); if (item != null) { newSmashBlock.Contents.Add(item); } } return newSmashBlock; }