Mineplex/GOD DAMN COSMETICS/gadget/gadgets/item/ItemPaintbrush.java
Daniel Waggner 38a20f98c2 Removed Files
These two directories contain code that was removed from the src and dependencies of the compiled files. They were removed due to being either a. unnecessary or b. a royal pain in my booty.
2021-05-23 18:13:37 -07:00

209 lines
5.7 KiB
Java

package mineplex.core.gadget.gadgets.item;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.LineFormat;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilGear;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilServer;
import mineplex.core.common.util.UtilText;
import mineplex.core.gadget.GadgetManager;
import mineplex.core.gadget.gadgets.Ammo;
import mineplex.core.gadget.types.GadgetType;
import mineplex.core.gadget.types.ItemGadget;
import mineplex.core.gadget.util.CostConstants;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
public class ItemPaintbrush extends ItemGadget
{
private NautHashMap<String, Byte> _brushColor = new NautHashMap<String, Byte>();
private NautHashMap<String, Location> _brushPrevious = new NautHashMap<String, Location>();
private NautHashMap<String, Location> _playerLocation = new NautHashMap<String, Location>();
public ItemPaintbrush(GadgetManager manager)
{
super(manager, "Paintbrush",
UtilText.splitLineToArray(C.cWhite + "Unleash your inner Bob Ross! Happy little trees!", LineFormat.LORE),
CostConstants.NO_LORE,
Material.WOOD_SWORD, (byte)0,
200, new Ammo("Paint", "100 Pixels", Material.INK_SACK, (byte)0, new String[] { C.cWhite + "100 Pixels worth of Paint!" }, 500, 100));
setHidden(true);
}
@Override
public void ApplyItem(Player player, boolean inform)
{
Manager.removeGadgetType(player, GadgetType.ITEM);
_active.add(player);
List<String> itemLore = new ArrayList<String>();
itemLore.addAll(Arrays.asList(getDescription()));
player.getInventory().setItem(Manager.getActiveItemSlot(), ItemStackFactory.Instance.CreateStack(getDisplayMaterial(), getDisplayData(), 1, getName()));
if (inform)
UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(getName()) + "."));
}
@Override
@EventHandler
public void Activate(PlayerInteractEvent event)
{
}
@Override
public void ActivateCustom(Player player)
{
}
@Override
public void enableCustom(Player player, boolean message)
{
ApplyItem(player, message);
_brushColor.put(player.getName(), (byte)15);
_playerLocation.put(player.getName(), player.getLocation());
}
@Override
public void disableCustom(Player player, boolean message)
{
_brushColor.remove(player.getName());
_brushPrevious.remove(player.getName());
_playerLocation.remove(player.getName());
RemoveItem(player, message);
}
@EventHandler
public void colorSelect(PlayerInteractEvent event)
{
if (!isActive(event.getPlayer()))
return;
Player player = event.getPlayer();
if (!UtilGear.isMat(player.getItemInHand(), Material.WOOD_SWORD))
return;
Block block = player.getTargetBlock((HashSet<Byte>)null, 100);
if (block == null || block.getType() != Material.STAINED_CLAY)
return;
_brushColor.put(player.getName(), block.getData());
player.playSound(player.getLocation(), Sound.ORB_PICKUP, 2f, 1f);
}
@EventHandler
public void disableDistance(UpdateEvent event)
{
if (event.getType() != UpdateType.SEC)
return;
for (Player player : UtilServer.getPlayers())
{
if (!getActive().contains(player))
continue;
Location loc = _playerLocation.get(player.getName());
if (loc == null || UtilMath.offset(player.getLocation(), loc) > 12)
{
disable(player);
}
}
}
@EventHandler
public void paint(UpdateEvent event)
{
if (event.getType() != UpdateType.TICK)
return;
for (Player player : getActive())
{
if (!UtilGear.isMat(player.getItemInHand(), Material.WOOD_SWORD))
continue;
if (!player.isBlocking())
{
_brushPrevious.remove(player.getName());
continue;
}
Block block = player.getTargetBlock((HashSet<Byte>)null, 100);
if (block == null || block.getType() != Material.WOOL)
continue;
//Color
Manager.getBlockRestore().add(block, 35, _brushColor.get(player.getName()), 30000);
//Join Dots
if (_brushPrevious.containsKey(player.getName()))
{
while (UtilMath.offset(_brushPrevious.get(player.getName()), block.getLocation().add(0.5, 0.5, 0.5)) > 0.5)
{
_brushPrevious.get(player.getName()).add(UtilAlg.getTrajectory(_brushPrevious.get(player.getName()), block.getLocation().add(0.5, 0.5, 0.5)).multiply(0.5));
Block fixBlock = _brushPrevious.get(player.getName()).getBlock();
if (fixBlock.getType() != Material.WOOL)
continue;
Manager.getBlockRestore().add(fixBlock, 35, _brushColor.get(player.getName()), 30000);
}
}
player.getWorld().playSound(player.getLocation(), Sound.FIZZ, 0.25f, 2f);
_brushPrevious.put(player.getName(), block.getLocation().add(0.5, 0.5, 0.5));
}
}
@EventHandler
public void enableInteract(PlayerInteractEntityEvent event)
{
if (isActive(event.getPlayer()))
return;
if (!(event.getRightClicked() instanceof Villager))
return;
Villager villager = (Villager)event.getRightClicked();
if (villager.getCustomName() != null && villager.getCustomName().contains("Bob Ross"))
{
enable(event.getPlayer());
}
}
}