mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-15 11:00:17 -07:00
Fixed an issue where lighting a lantern (or other light source) inside a dark area wouldn't be recognised
This commit is contained in:
parent
a753db5ed7
commit
31ecd20911
1 changed files with 22 additions and 1 deletions
|
|
@ -1,5 +1,8 @@
|
|||
package core.game.world.map.zone.impl;
|
||||
|
||||
import api.LoginListener;
|
||||
import api.events.EventHook;
|
||||
import api.events.UsedWithEvent;
|
||||
import core.game.component.Component;
|
||||
import core.game.content.global.LightSource;
|
||||
import core.game.interaction.Option;
|
||||
|
|
@ -13,14 +16,20 @@ import core.game.system.task.Pulse;
|
|||
import core.game.world.map.zone.MapZone;
|
||||
import core.game.world.map.zone.RegionZone;
|
||||
import core.game.world.map.zone.ZoneBorders;
|
||||
import kotlin.Unit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import rs09.game.Event;
|
||||
import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks;
|
||||
import rs09.game.world.GameWorld;
|
||||
|
||||
import static api.ContentAPIKt.getItemName;
|
||||
import static api.ContentAPIKt.runTask;
|
||||
|
||||
/**
|
||||
* Handles a dark area.
|
||||
* @author Emperor
|
||||
*/
|
||||
public final class DarkZone extends MapZone {
|
||||
public final class DarkZone extends MapZone implements EventHook<UsedWithEvent>{
|
||||
|
||||
/**
|
||||
* The darkness overlay.
|
||||
|
|
@ -128,6 +137,7 @@ public final class DarkZone extends MapZone {
|
|||
player.getInterfaceManager().openOverlay(new Component(source.getInterfaceId()));
|
||||
}
|
||||
}
|
||||
e.hook(Event.getUsedWith(), this);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -136,6 +146,7 @@ public final class DarkZone extends MapZone {
|
|||
if (e instanceof Player) {
|
||||
((Player) e).getInterfaceManager().closeOverlay();
|
||||
}
|
||||
e.unhook(this);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -187,4 +198,14 @@ public final class DarkZone extends MapZone {
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(@NotNull Entity entity, @NotNull UsedWithEvent event) {
|
||||
boolean isTinderbox = getItemName(event.getUsed()).equals("Tinderbox") || getItemName(event.getWith()).equals("Tinderbox");
|
||||
|
||||
if (isTinderbox && entity instanceof Player) runTask(entity, 2, () -> {
|
||||
checkDarkArea(entity.asPlayer());
|
||||
return Unit.INSTANCE;
|
||||
});
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue