From 2f9779cb766c83679340384265b683e662691b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Wed, 28 Jan 2015 23:27:38 +0100 Subject: [PATCH] Added play and stop methods to jukebox driver. Closes #862. --- .../vanilla/DriverRecordPlayer.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/scala/li/cil/oc/integration/vanilla/DriverRecordPlayer.java b/src/main/scala/li/cil/oc/integration/vanilla/DriverRecordPlayer.java index f058ac891..5b7c1762a 100644 --- a/src/main/scala/li/cil/oc/integration/vanilla/DriverRecordPlayer.java +++ b/src/main/scala/li/cil/oc/integration/vanilla/DriverRecordPlayer.java @@ -11,6 +11,7 @@ import li.cil.oc.integration.ManagedTileEntityEnvironment; import net.minecraft.block.Block; import net.minecraft.block.BlockJukebox; import net.minecraft.init.Blocks; +import net.minecraft.item.Item; import net.minecraft.item.ItemRecord; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -56,5 +57,22 @@ public final class DriverRecordPlayer extends DriverTileEntity implements Enviro } return new Object[]{((ItemRecord) record.getItem()).getRecordNameLocal()}; } + + @Callback(doc = "function() -- Start playing the record currently in the jukebox.") + public Object[] play(final Context context, final Arguments args) { + final ItemStack record = tileEntity.func_145856_a(); + if (record == null || !(record.getItem() instanceof ItemRecord)) { + return null; + } + tileEntity.getWorldObj().playAuxSFXAtEntity(null, 1005, tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, Item.getIdFromItem(record.getItem())); + return new Object[]{true}; + } + + @Callback(doc = "function() -- Stop playing the record currently in the jukebox.") + public Object[] stop(final Context context, final Arguments args) { + tileEntity.getWorldObj().playAuxSFX(1005, tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord, 0); + tileEntity.getWorldObj().playRecord(null, tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); + return null; + } } }