/// <summary> /// /// </summary> /// <param name="player">The entity that triggered the event</param> /// <param name="block">The block that was broken</param> /// <param name="drops">The items that were gonna be dropped if the block broke</param> public BlockBreakEvent(MiNET.Entities.Entity player, MiNET.Blocks.Block block, List <Item> drops) : base(block, block.GetExperiencePoints()) { Source = player; Drops = drops; }
/// <summary> /// /// </summary> /// <param name="player">The player that started breaking the block.</param> /// <param name="block">The block that is to be destroyed</param> public BlockStartBreakEvent(MiNET.Entities.Entity player, MiNET.Blocks.Block block) : base(player, block, null) { }
public LevelPoolGame(xCoreGames core, xCoreInterface game, bool onlyread, bool parse) { Random rnd = new Random(); var timings = new Stopwatch(); timings.Start(); string basepath = Config.GetProperty("PluginDirectory", "Plugins") + "\\" + game.NameGame; for (int id = 1; id <= game.ArenaLoaded; id++) { if (Maps.Count == 0) { DirectoryInfo dirInfo = new DirectoryInfo(basepath); foreach (var dir in dirInfo.GetDirectories()) { var provider = new AnvilWorldProvider(basepath + "\\" + dir.Name); var cfg = File.ReadAllText(basepath + "\\" + dir.Name + "\\config.json"); JObject jobj = JObject.Parse(cfg); Maps.Add(dir.Name, new MapInfo(dir.Name, jobj)); Maps[dir.Name].ProviderCache = provider; Maps[dir.Name].ProviderCache.Initialize(); Maps[dir.Name].ProviderCache.PruneAir(); Maps[dir.Name].ProviderCache.MakeAirChunksAroundWorldToCompensateForBadRendering(); } } string map = Maps.Keys.ElementAt(rnd.Next(0, Maps.Keys.Count - 1)); Level levelkey = Levels.FirstOrDefault(l => l.LevelId.Equals(game.NameGame + id, StringComparison.InvariantCultureIgnoreCase)); if (levelkey == null) { AnvilWorldProvider provider; //provider = Maps[map].ProviderCache; //if (!Maps[map].ProviderBool) //{ if (onlyread) { provider = Maps[map].ProviderCache; } else { provider = Maps[map].ProviderCache.Clone() as AnvilWorldProvider; } //} var level = new xCoreLevel(provider, game.Context.Server.LevelManager.EntityManager, game, Maps[map], LevelCount); LevelCount++; level.Initialize(); SkyLightCalculations.Calculate(level); while (provider.LightSources.Count > 0) { var block = provider.LightSources.Dequeue(); block = level.GetBlock(block.Coordinates); BlockLightCalculations.Calculate(level, block); } if (parse) { int X = Maps[map].Center.X; int Z = Maps[map].Center.Z; List <BlockCoordinates> BE = new List <BlockCoordinates>(); if (Maps[map].CacheBlockEntites == null) { int startX = Math.Min(X - 256, X + 256); int endX = Math.Max(X - 256, X + 256); int startY = Math.Min(11, 129); int endY = Math.Max(11, 129); int startZ = Math.Min(Z - 256, Z + 256); int endZ = Math.Max(Z - 256, Z + 256); for (int x = startX; x <= endX; ++x) { for (int y = startY; y <= endY; ++y) { for (int z = startZ; z <= endZ; ++z) { var bc = new BlockCoordinates(x, y, z); BlockEntity blockentity; if ((blockentity = level.GetBlockEntity(bc)) != null) { if (blockentity is ChestBlockEntity) { if (!BE.Contains(blockentity.Coordinates)) { BE.Add(blockentity.Coordinates); } } else if (blockentity is Sign) { CleanSignText(((Sign)blockentity).GetCompound(), "Text1"); CleanSignText(((Sign)blockentity).GetCompound(), "Text2"); CleanSignText(((Sign)blockentity).GetCompound(), "Text3"); CleanSignText(((Sign)blockentity).GetCompound(), "Text4"); BE.Add(bc); } } } } } for (int x = startX; x <= endX; ++x) { for (int z = startZ; z <= endZ; ++z) { var bc = new BlockCoordinates(x, 127, z); MiNET.Blocks.Block b = level.GetBlock(bc); if (b.Id == 95) { level.SetAir(bc, false); } } } } if (Maps[map].CacheBlockEntites == null) { Maps[map].CacheBlockEntites = BE; } } game.Initialization(level); Levels.Add(level); } } Core = core; Game = game; OnlyRead = onlyread; timings.Stop(); Log.Info("Loaded " + Levels.Count + " arenas . Load time " + timings.ElapsedMilliseconds + " ms"); _tickerHighPrecisionTimer = new Timer(QueueTimer, null, 0, 1000); }
/// <summary> /// /// </summary> /// <param name="block">The block that released the XP</param> /// <param name="experience">The XP that is to be released</param> public BlockExpEvent(MiNET.Blocks.Block block, float experience) : base(block) { Experience = experience; }
public BlockEvent(MiNET.Blocks.Block block) { Block = block; }
/// <summary> /// /// </summary> /// <param name="player">The player that triggered the event</param> /// <param name="block">The block that the player was targetting</param> public BlockAbortBreakEvent(OpenPlayer player, MiNET.Blocks.Block block) : base(player, block) { }
/// <summary> /// /// </summary> /// <param name="player">The player that tried placing the block</param> /// <param name="block">The block the player was trying to place.</param> public BlockPlaceEvent(OpenPlayer player, MiNET.Blocks.Block block) : base(block) { Player = player; }