private void onMouseClicked(Player player, Mouse button, boolean pressed, int x, int y) {
    PlayerClickEvent event =
        Spout.getEventManager()
            .callEvent(new PlayerClickEvent(player, button, pressed, new IntVector2(x, y)));
    if (event.isCancelled()) {
      return;
    }

    if (Spout.debugMode()) {
      Spout.log("Mouse clicked at {" + x + "," + y + "} was " + (pressed ? "pressed" : "released"));
    }

    Screen s = getInputScreen();
    if (s != null) {
      Widget w = s.getWidgetAt(x, y);
      if (w != null) {
        Widget fw = s.getFocusedWidget();
        if (fw != null && !fw.equals(w)) {
          s.setFocus(w, FocusReason.CLICKED);
        }
        w.onClicked(event);
      }
    }

    executeBindings(getMouseBindingsFor(button), player, pressed);
  }
  private void onKeyPressed(Player player, Keyboard key, boolean pressed, char ch) {
    final PlayerKeyEvent event =
        Spout.getEventManager().callEvent(new PlayerKeyEvent(player, key, pressed, ch));
    if (event.isCancelled()) {
      return;
    }

    if (Spout.debugMode()) {
      Spout.log("Key " + key + " was " + (pressed ? "pressed" : "released"));
    }

    // SHIFT + TAB changes the focus index
    Screen in = getInputScreen();
    if (key == FOCUS_KEY && pressed) {
      if (in != null) {
        if (org.lwjgl.input.Keyboard.isKeyDown(Keyboard.KEY_LSHIFT.getId())
            || org.lwjgl.input.Keyboard.isKeyDown(Keyboard.KEY_RSHIFT.getId())) {
          in.previousFocus(FocusReason.KEYBOARD_TAB);
        } else {
          in.nextFocus(FocusReason.KEYBOARD_TAB);
        }
      }
    }

    // send event to the focused widget
    if (in != null) {
      Widget w = in.getFocusedWidget();
      if (w != null) {
        w.onKey(event);
      }
    }

    executeBindings(getKeyBindingsFor(key), player, pressed);
  }
 /**
  * Sets the amount of ticks the entity has been on fire.
  *
  * @param fireTicks the new amount of ticks the entity has been on fire for.
  */
 public void setFireTicks(int fireTicks) {
   if (fireTicks > 0) {
     EntityCombustEvent event =
         Spout.getEventManager()
             .callEvent(new EntityCombustEvent(getParent().getParent(), fireTicks));
     fireTicks = event.getDuration();
   }
   this.fireTicks = fireTicks;
 }
Exemple #4
0
 /**
  * Checks whether a certain slot can be set to the item specified<br>
  * Fires the {@link InventoryCanSetEvent}
  *
  * @param inventory of the slot
  * @param index of the slot
  * @param item to set to
  * @return True if the slot can be set to the item, False if not
  */
 protected boolean canSet(Inventory inventory, int index, ItemStack item) {
   final boolean canSet = inventory.canSet(index, item);
   InventoryCanSetEvent event =
       Spout.getEventManager()
           .callEvent(
               new InventoryCanSetEvent(
                   inventory, new PlayerCause(getPlayer()), index, item, !canSet));
   return !event.isCancelled();
 }
Exemple #5
0
 @Override
 public void updateWeather(Weather oldWeather, Weather newWeather) {
   WeatherChangeEvent event =
       Spout.getEventManager().callEvent(new WeatherChangeEvent(this, oldWeather, newWeather));
   if (event.isCancelled()) {
     return;
   }
   this.getWorld().getDataMap().put(VanillaData.WEATHER, newWeather);
   for (Player player : this.getWorld().getPlayers()) {
     player.getNetworkSynchronizer().callProtocolEvent(event);
   }
 }
 @Override
 public void setController(Controller controller, Source source) {
   EntityControllerChangeEvent event =
       Spout.getEventManager()
           .callEvent(new EntityControllerChangeEvent(this, source, controller));
   Controller newController = event.getNewController();
   controllerLive.set(controller);
   if (newController != null) {
     controller.attachToEntity(this);
     if (controller instanceof PlayerController) {
       setObserver(true);
     }
     controller.onAttached();
   }
 }
Exemple #7
0
  @Override
  public void updateWeather(Weather oldWeather, Weather newWeather) {
    org.spout.vanilla.event.world.WeatherChangeEvent event =
        Spout.getEventManager()
            .callEvent(
                new org.spout.vanilla.event.world.WeatherChangeEvent(this, oldWeather, newWeather));
    if (event.isCancelled()) {
      return;
    }
    this.getWorld().getDataMap().put(Data.WEATHER, newWeather);

    byte reason =
        (newWeather.equals(Weather.RAIN) || newWeather.equals(Weather.THUNDERSTORM))
            ? ChangeGameStateMessage.BEGIN_RAINING
            : ChangeGameStateMessage.END_RAINING;
    broadcastMessage(new ChangeGameStateMessage(reason));
  }
 @Override
 public void onInteractBy(Entity entity, Block block, Action type, BlockFace clickedFace) {
   EntityInteractBlockEvent event;
   if (entity instanceof Player) {
     event =
         new PlayerInteractBlockEvent(
             (Player) entity, block, block.getPosition(), clickedFace, type);
   } else {
     event = new EntityInteractBlockEvent(entity, block, block.getPosition(), clickedFace);
   }
   if (Spout.getEventManager().callEvent(event).isCancelled()) {
     return;
   }
   super.onInteract(entity, block, type, clickedFace);
   for (Class<? extends BlockComponent> c : getComponents()) {
     BlockComponent get = block.get(c);
     if (get != null) {
       get.onInteract(event);
     }
   }
 }
Exemple #9
0
 @Override
 public String[] getGroups(World world) {
   PermissionGroupsEvent event =
       Spout.getEventManager().callEvent(new PermissionGroupsEvent(world, this));
   return event.getGroups();
 }
Exemple #10
0
 @Override
 public boolean hasPermission(World world, String node) {
   PermissionNodeEvent event =
       Spout.getEventManager().callEvent(new PermissionNodeEvent(world, this, node));
   return event.getResult().getResult();
 }