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; + } } }