1package com.osroyale.content.skill.impl.hunter.birdhouse.action;
3import com.osroyale.content.skill.impl.hunter.birdhouse.BirdhouseData;
4import com.osroyale.content.skill.impl.hunter.birdhouse.PlayerBirdHouseData;
5import com.osroyale.game.action.Action;
6import com.osroyale.game.action.policy.WalkablePolicy;
7import com.osroyale.game.world.entity.mob.player.Player;
8import com.osroyale.game.world.entity.mob.player.persist.PlayerSerializer;
9import com.osroyale.game.world.items.Item;
10import com.osroyale.game.world.object.CustomGameObject;
11import com.osroyale.game.world.object.GameObject;
12import com.osroyale.net.packet.out.SendAddObject;
14public class PlaceBirdhouse
extends Action<Player> {
16 private BirdhouseData birdhouseData;
17 private GameObject gameObject;
18 public PlaceBirdhouse(Player player, BirdhouseData birdhouseData, GameObject gameObject) {
20 this.birdhouseData = birdhouseData;
21 this.gameObject = gameObject;
31 return "Place birdhouse";
36 getMob().inventory.remove(
new Item(birdhouseData.birdHouseId));
37 getMob().inventory.refresh();
38 getMob().birdHouseData.add(
new PlayerBirdHouseData(birdhouseData, gameObject.getId(), gameObject.getPosition(), gameObject.getDirection().getId(), gameObject.getObjectType().getId()));
39 getMob().send(
new SendAddObject(
new CustomGameObject(birdhouseData.objectData[0], gameObject.getPosition(), gameObject.getDirection(), gameObject.getObjectType())));
40 PlayerSerializer.save(
getMob());
41 getMob().action.getCurrentAction().cancel();
abstract String getName()
abstract WalkablePolicy getWalkablePolicy()