From 63034431c06398c215fcaf2e1aa29ec28294f121 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 1 Nov 2021 19:16:34 -0400 Subject: [PATCH] api: add ambient sound effect --- .../net/runelite/api/AmbientSoundEffect.java | 59 +++++++++++++++++++ .../main/java/net/runelite/api/Client.java | 6 ++ .../src/main/java/net/runelite/api/Deque.java | 36 +++++++++++ 3 files changed, 101 insertions(+) create mode 100644 runelite-api/src/main/java/net/runelite/api/AmbientSoundEffect.java create mode 100644 runelite-api/src/main/java/net/runelite/api/Deque.java diff --git a/runelite-api/src/main/java/net/runelite/api/AmbientSoundEffect.java b/runelite-api/src/main/java/net/runelite/api/AmbientSoundEffect.java new file mode 100644 index 0000000000..5c31c7b79c --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/AmbientSoundEffect.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2021, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.api; + +import net.runelite.api.coords.LocalPoint; + +/** + * An ambient sound effect. These are loaded only at scene load and are used to play ambient + * sound effects that are purely client side and not sent from the server. + */ +public interface AmbientSoundEffect +{ + /** + * The id of the sound effect + * @see SoundEffectID + * @return + */ + int getSoundEffectId(); + + /** + * The plane the sound effect is on + * @return + */ + int getPlane(); + + /** + * The min x/y position of the area this sound effect is at. + * @return + */ + LocalPoint getMinPosition(); + + /** + * The max x/y position of the area this sound effect is at + * @return + */ + LocalPoint getMaxPosition(); +} diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 1deb257e9b..4f38b13c0c 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1953,4 +1953,10 @@ public interface Client extends GameEngine ClanSettings getClanSettings(int clanId); void setUnlockedFps(boolean unlock); + + /** + * Gets the ambient sound effects + * @return + */ + Deque getAmbientSoundEffects(); } diff --git a/runelite-api/src/main/java/net/runelite/api/Deque.java b/runelite-api/src/main/java/net/runelite/api/Deque.java new file mode 100644 index 0000000000..482306b6de --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/Deque.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2021, Adam + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.api; + +/** + * A doubly linked list + */ +public interface Deque extends Iterable +{ + /** + * clear the deque + */ + void clear(); +}