More changes and fixes.
This commit is contained in:
parent
528a7435e7
commit
dfd5a63b78
@ -355,6 +355,8 @@ public class SpeedBuilder extends SoloGame
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Manager.getCosmeticManager().setHideParticles(true);
|
Manager.getCosmeticManager().setHideParticles(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,6 +375,8 @@ public class SpeedBuilder extends SoloGame
|
|||||||
|
|
||||||
_currentBuild = UtilAlg.Random(_buildData);
|
_currentBuild = UtilAlg.Random(_buildData);
|
||||||
|
|
||||||
|
HashSet<Location> usedBuildLocs = new HashSet<Location>();
|
||||||
|
|
||||||
for (Player player : GetPlayers(true))
|
for (Player player : GetPlayers(true))
|
||||||
{
|
{
|
||||||
Location buildLoc = UtilAlg.findClosest(player.getLocation(), WorldData.GetDataLocs("YELLOW"));
|
Location buildLoc = UtilAlg.findClosest(player.getLocation(), WorldData.GetDataLocs("YELLOW"));
|
||||||
@ -381,9 +385,24 @@ public class SpeedBuilder extends SoloGame
|
|||||||
_buildRecreations.put(player, new RecreationData(this, player, buildLoc, spawnLoc));
|
_buildRecreations.put(player, new RecreationData(this, player, buildLoc, spawnLoc));
|
||||||
|
|
||||||
_buildRecreations.get(player).pasteBuildData(_currentBuild);
|
_buildRecreations.get(player).pasteBuildData(_currentBuild);
|
||||||
|
|
||||||
|
usedBuildLocs.add(buildLoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
Announce(F.main("Build", "You will recreate this build."));
|
for (Location loc : WorldData.GetDataLocs("YELLOW"))
|
||||||
|
{
|
||||||
|
if (!usedBuildLocs.contains(loc))
|
||||||
|
{
|
||||||
|
HashSet<Block> blocks = UtilBlock.findConnectedBlocks(loc.getBlock(), loc.getBlock(), null, 2000, 8);
|
||||||
|
|
||||||
|
Manager.GetExplosion().BlockExplosion(blocks, loc, false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Player player : GetTeamList().get(0).GetPlayers(true))
|
||||||
|
{
|
||||||
|
UtilPlayer.message(player, F.main("Build", "Recreate the build shown."));
|
||||||
|
}
|
||||||
|
|
||||||
setSpeedBuilderState(SpeedBuilderState.VIEWING);
|
setSpeedBuilderState(SpeedBuilderState.VIEWING);
|
||||||
}
|
}
|
||||||
@ -727,6 +746,8 @@ public class SpeedBuilder extends SoloGame
|
|||||||
|
|
||||||
for (RecreationData recreation : _buildRecreations.values())
|
for (RecreationData recreation : _buildRecreations.values())
|
||||||
{
|
{
|
||||||
|
recreation.Player.teleport(recreation.PlayerSpawn);
|
||||||
|
|
||||||
recreation.pasteBuildData(_currentBuild);
|
recreation.pasteBuildData(_currentBuild);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -787,7 +808,7 @@ public class SpeedBuilder extends SoloGame
|
|||||||
//Eliminate in order This also means that the empty builds are eliminated first
|
//Eliminate in order This also means that the empty builds are eliminated first
|
||||||
final RecreationData eliminating = _toEliminate.get(0);
|
final RecreationData eliminating = _toEliminate.get(0);
|
||||||
|
|
||||||
judgeTargetLocation(eliminating.getMidpoint());
|
judgeTargetLocation(eliminating.OriginalBuildLocation.clone().subtract(0, 1.7, 0));
|
||||||
|
|
||||||
UtilTextMiddle.display("", C.cRed + eliminating.Player.getName() + C.cGreen + " was eliminated!", 0, 30, 10);
|
UtilTextMiddle.display("", C.cRed + eliminating.Player.getName() + C.cGreen + " was eliminated!", 0, 30, 10);
|
||||||
|
|
||||||
@ -933,6 +954,9 @@ public class SpeedBuilder extends SoloGame
|
|||||||
if (!_buildRecreations.get(event.getPlayer()).inBuildArea(event.getClickedBlock()))
|
if (!_buildRecreations.get(event.getPlayer()).inBuildArea(event.getClickedBlock()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (event.getClickedBlock().getType() == Material.AIR)
|
||||||
|
return;
|
||||||
|
|
||||||
_buildRecreations.get(event.getPlayer()).addToDemolition(event.getClickedBlock());
|
_buildRecreations.get(event.getPlayer()).addToDemolition(event.getClickedBlock());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1000,7 +1024,26 @@ public class SpeedBuilder extends SoloGame
|
|||||||
UtilPlayer.sendPacket(player, packetLook, packetRot);
|
UtilPlayer.sendPacket(player, packetLook, packetRot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void specNightVision(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (!InProgress())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getType() != UpdateType.SEC)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
{
|
||||||
|
if (UtilPlayer.isSpectator(player) || (GetTeamList().size() > 1 && GetTeamList().get(1).HasPlayer(player)))
|
||||||
|
{
|
||||||
|
Manager.GetCondition().Factory().NightVision("Spectator Night Vision", player, null, Integer.MAX_VALUE, 0, false, false, true);
|
||||||
|
Manager.GetCondition().Factory().Breath("Spectator Water Vision", player, null, Integer.MAX_VALUE, 0, false, false, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// @EventHandler
|
// @EventHandler
|
||||||
// public void stopJudgeUnspec(UpdateEvent event)
|
// public void stopJudgeUnspec(UpdateEvent event)
|
||||||
// {
|
// {
|
||||||
|
@ -118,6 +118,13 @@ public class DemolitionData
|
|||||||
if (block.getType() == Material.AIR)
|
if (block.getType() == Material.AIR)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
//Ignore top double plant blocks
|
||||||
|
if (block.getType() == Material.DOUBLE_PLANT)
|
||||||
|
{
|
||||||
|
if (block.getData() > 7)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (ItemStack itemStack : UtilBlock.blockToInventoryItemStacks(block))
|
for (ItemStack itemStack : UtilBlock.blockToInventoryItemStacks(block))
|
||||||
{
|
{
|
||||||
Item item = block.getWorld().dropItem(block.getLocation().add(0.5, 0.5, 0.5), itemStack);
|
Item item = block.getWorld().dropItem(block.getLocation().add(0.5, 0.5, 0.5), itemStack);
|
||||||
@ -146,10 +153,11 @@ public class DemolitionData
|
|||||||
}
|
}
|
||||||
else if (block.getType() == Material.DOUBLE_PLANT)
|
else if (block.getType() == Material.DOUBLE_PLANT)
|
||||||
{
|
{
|
||||||
if (block.getData() > 7)
|
//The top block does not carry the correct data
|
||||||
MapUtil.QuickChangeBlockAt(block.getRelative(BlockFace.DOWN).getLocation(), Material.AIR);
|
if (block.getData() <= 7)
|
||||||
else
|
|
||||||
MapUtil.QuickChangeBlockAt(block.getRelative(BlockFace.UP).getLocation(), Material.AIR);
|
MapUtil.QuickChangeBlockAt(block.getRelative(BlockFace.UP).getLocation(), Material.AIR);
|
||||||
|
else
|
||||||
|
MapUtil.QuickChangeBlockAt(block.getLocation(), Material.AIR);
|
||||||
}
|
}
|
||||||
|
|
||||||
MapUtil.QuickChangeBlockAt(block.getLocation(), Material.AIR);
|
MapUtil.QuickChangeBlockAt(block.getLocation(), Material.AIR);
|
||||||
|
@ -168,6 +168,13 @@ public class RecreationData
|
|||||||
if (block.getType() == Material.AIR)
|
if (block.getType() == Material.AIR)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
//Ignore top double plant blocks
|
||||||
|
if (block.getType() == Material.DOUBLE_PLANT)
|
||||||
|
{
|
||||||
|
if (block.getData() > 7)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (ItemStack itemStack : UtilBlock.blockToInventoryItemStacks(block))
|
for (ItemStack itemStack : UtilBlock.blockToInventoryItemStacks(block))
|
||||||
{
|
{
|
||||||
Item item = block.getWorld().dropItem(getMidpoint(), itemStack);
|
Item item = block.getWorld().dropItem(getMidpoint(), itemStack);
|
||||||
@ -196,10 +203,11 @@ public class RecreationData
|
|||||||
}
|
}
|
||||||
else if (block.getType() == Material.DOUBLE_PLANT)
|
else if (block.getType() == Material.DOUBLE_PLANT)
|
||||||
{
|
{
|
||||||
if (block.getData() > 7)
|
//The top block does not carry the correct data
|
||||||
MapUtil.QuickChangeBlockAt(block.getRelative(BlockFace.DOWN).getLocation(), Material.AIR);
|
if (block.getData() <= 7)
|
||||||
else
|
|
||||||
MapUtil.QuickChangeBlockAt(block.getRelative(BlockFace.UP).getLocation(), Material.AIR);
|
MapUtil.QuickChangeBlockAt(block.getRelative(BlockFace.UP).getLocation(), Material.AIR);
|
||||||
|
else
|
||||||
|
MapUtil.QuickChangeBlockAt(block.getLocation(), Material.AIR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user