@yannichock/react-minecraft-skin-viewer
Version:
Minecraft skin viewer for ReactJS
89 lines (80 loc) • 2.2 kB
JavaScript
function _interopNamespace(e) {
if (e && e.__esModule) { return e; } else {
var n = {};
if (e) {
Object.keys(e).forEach(function (k) {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () {
return e[k];
}
});
});
}
n['default'] = e;
return n;
}
}
var React;
var SkinViewer;
new Promise(function (resolve) { resolve(_interopNamespace(require('react'))); }).then(function (DReact) {
React = DReact;
});
new Promise(function (resolve) { resolve(_interopNamespace(require('skinview3d'))); }).then(function (DSkinViewer) {
SkinViewer = DSkinViewer;
});
var defaultProps = {
walk: false,
control: true,
rotate: false
};
var MinecraftSkinViewer = function MinecraftSkinViewer(_ref) {
var skin = _ref.skin,
width = _ref.width,
height = _ref.height,
walk = _ref.walk,
rotate = _ref.rotate,
control = _ref.control,
zoom = _ref.zoom,
background = _ref.background;
var canvas = React.useRef(null);
React.useLayoutEffect(function () {
var skinViewer = new SkinViewer({
skin: skin,
width: width,
height: height,
canvas: canvas.current
});
var viewerControl;
if (background === 'transparent') {
skinViewer.renderer.setClearColor(0xffffff, 0);
} else {
skinViewer.background = background;
}
if (control) {
viewerControl = createOrbitControls(skinViewer);
viewerControl.enablePan = false;
viewerControl.enableZoom = zoom;
viewerControl.enableRotate = true;
}
if (walk) {
skinViewer.animations.add(WalkingAnimation);
}
if (rotate) {
skinViewer.animations.add(RotatingAnimation);
}
return function () {
if (control) {
viewerControl.dispose();
}
skinViewer.dispose();
};
}, [skin, width, height, control, walk, background]);
return React.createElement("canvas", {
ref: canvas
});
};
MinecraftSkinViewer.defaultProps = defaultProps;
exports.MinecraftSkinViewer = MinecraftSkinViewer;
//# sourceMappingURL=index.js.map