mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-16 11:30: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;
|
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.component.Component;
|
||||||
import core.game.content.global.LightSource;
|
import core.game.content.global.LightSource;
|
||||||
import core.game.interaction.Option;
|
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.MapZone;
|
||||||
import core.game.world.map.zone.RegionZone;
|
import core.game.world.map.zone.RegionZone;
|
||||||
import core.game.world.map.zone.ZoneBorders;
|
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.node.entity.skill.skillcapeperks.SkillcapePerks;
|
||||||
import rs09.game.world.GameWorld;
|
import rs09.game.world.GameWorld;
|
||||||
|
|
||||||
|
import static api.ContentAPIKt.getItemName;
|
||||||
|
import static api.ContentAPIKt.runTask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles a dark area.
|
* Handles a dark area.
|
||||||
* @author Emperor
|
* @author Emperor
|
||||||
*/
|
*/
|
||||||
public final class DarkZone extends MapZone {
|
public final class DarkZone extends MapZone implements EventHook<UsedWithEvent>{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The darkness overlay.
|
* The darkness overlay.
|
||||||
|
|
@ -128,6 +137,7 @@ public final class DarkZone extends MapZone {
|
||||||
player.getInterfaceManager().openOverlay(new Component(source.getInterfaceId()));
|
player.getInterfaceManager().openOverlay(new Component(source.getInterfaceId()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
e.hook(Event.getUsedWith(), this);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -136,6 +146,7 @@ public final class DarkZone extends MapZone {
|
||||||
if (e instanceof Player) {
|
if (e instanceof Player) {
|
||||||
((Player) e).getInterfaceManager().closeOverlay();
|
((Player) e).getInterfaceManager().closeOverlay();
|
||||||
}
|
}
|
||||||
|
e.unhook(this);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -187,4 +198,14 @@ public final class DarkZone extends MapZone {
|
||||||
}
|
}
|
||||||
return false;
|
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