Added play and stop methods to jukebox driver. Closes #862.

This commit is contained in:
Florian Nücke 2015-01-28 23:27:38 +01:00
parent 78d6ea15d2
commit 2f9779cb76

View File

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