Spaces:
Running
Running
File size: 2,070 Bytes
6bcb42f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
import bindAll from 'lodash.bindall';
import PropTypes from 'prop-types';
import React from 'react';
import {defineMessages, injectIntl, intlShape} from 'react-intl';
import VM from 'scratch-vm';
import {getBackdropLibrary} from '../lib/libraries/tw-async-libraries';
import backdropTags from '../lib/libraries/backdrop-tags';
import LibraryComponent from '../components/library/library.jsx';
const messages = defineMessages({
libraryTitle: {
defaultMessage: 'Choose a Backdrop',
description: 'Heading for the backdrop library',
id: 'gui.costumeLibrary.chooseABackdrop'
}
});
class BackdropLibrary extends React.Component {
constructor (props) {
super(props);
bindAll(this, [
'handleItemSelect'
]);
}
handleItemSelect (item) {
const vmBackdrop = {
name: item.name,
rotationCenterX: item.rotationCenterX,
rotationCenterY: item.rotationCenterY,
bitmapResolution: item.bitmapResolution,
skinId: null
};
if (item.fromPenguinModLibrary) {
vmBackdrop.fromPenguinModLibrary = true;
vmBackdrop.libraryId = item.libraryFilePage;
vmBackdrop.dataFormat = item.dataFormat;
}
// Do not switch to stage, just add the backdrop
this.props.vm.addBackdrop(item.md5ext, vmBackdrop);
}
render () {
return (
<LibraryComponent
data={getBackdropLibrary()}
id="backdropLibrary"
actor="CostumeLibrary"
header={"Backdrops"}
tags={backdropTags}
title={this.props.intl.formatMessage(messages.libraryTitle)}
onItemSelected={this.handleItemSelect}
onRequestClose={this.props.onRequestClose}
/>
);
}
}
BackdropLibrary.propTypes = {
intl: intlShape.isRequired,
onRequestClose: PropTypes.func,
vm: PropTypes.instanceOf(VM).isRequired
};
export default injectIntl(BackdropLibrary);
|