项目作者: leomaurodesenv

项目描述 :
A package to reading courses (*.cdt) - Super Mario Maker
高级语言: JavaScript
项目地址: git://github.com/leomaurodesenv/smm-course-viewer.git
创建时间: 2019-01-25T11:52:22Z
项目社区:https://github.com/leomaurodesenv/smm-course-viewer

开源协议:GNU General Public License v3.0

下载


smm-course-viewer

GPLv3 license
npm
JsClasses
GitHub
Codacy Badge

Simple viewer for level files from Super Mario Maker (Online). Based on MarioUnmaker and PointlessMaker.
This package has two main features:

  1. SmmCourseViewer: Interpret/extract course data from .cdt files.
  2. Draw: Draw the course in a HTML Canvas element.

The code is developed in Vanilla JS, but with extension to Node.js (Code Documentation).
Explore the monsters and objects of your Super Mario Maker courses, see (Data Format) for more details.


Summary


Installation

  1. Download or git clone.

    • git clone https://github.com/leomaurodesenv/smm-course-viewer.git
  2. Download the images /layout/draw/monster/ and /layout/draw/titleset/

  3. Open the /index.html in a web browser.

  4. Load Example or Browse… to a *.cdt file.

To use the Node.js:

  1. npm install --save smm-course-viewer

Node.js Example

Example: How to read courses files.
Run this example nodejs test/test.js.

  1. /* Include */
  2. const smmCourseViewer = require('smm-course-viewer');
  3. // ## Try interpret a course file
  4. smmCourseViewer.read('path/course_data.cdt', function(err, course, objects) {
  5. if(!err) {
  6. console.log(course)
  7. console.log(objects);
  8. }
  9. });

Object Structure

Accessing by a web browser:

  1. After Load Example or Browse for a file, the object is created.
  2. Open the web console, usually Ctrl+Shift+k or F12, and type smmCourseViewer.
  1. course:
  2. \_ name: string
  3. \_ mode: ['M1', 'M3', 'MW', 'WU']
  4. \_ timeLimit: number
  5. \_ scroll: [0, 1, 2, 3]
  6. \_ scrollName: ['none', 'slow', 'medium', 'fast']
  7. \_ theme: [0, 1, 2, 3, 4, 5]
  8. \_ themeName: ['overworld', 'underground', 'castle',
  9. 'airship', 'water', 'ghostHouse']
  10. \_ year: number (creation)
  11. \_ month: number (creation)
  12. \_ day: number (creation)
  13. \_ hour: number (creation)
  14. \_ minute: number (creation)
  15. \_ ​​width: number
  16. \_ ​​widthBlock: number of blocks
  17. \_ heightBlock: number of blocks
  18. \_ objectCount: number
  19. \_ checksum: number (file check)
  20. \_ version: number
  21. \_ flags: (unknown)
  22. \_ hexMiiData: (unknown)
  23. objects:
  24. \_ Array[CourseObject]
  1. CourseObject:
  2. \_ name: string
  3. \_ x: X-axis
  4. \_ y: Y-axis
  5. \_ z: Z-index
  6. \_ height: number
  7. \_ width: number
  8. \_ size: number (only monsters)
  9. \_ ​​wing: boolean (only monsters)
  10. \_ ​​type: number (monster ID)
  11. \_ subType: number (sub ID)
  12. \_ ​​​flags: number (under discovery)
  13. \_ ​​​extendedData: number
  14. \_ effect: number (unknown)
  15. \_ transform: number (unknown)
  16. \_ ​​​childFlags: number (under discovery)
  17. ​​​ \_ ​​​childTransform: number (unknown)
  18. \_ ​​​childType: number (coupled monster)
  19. \_ linkId: number (coupled monster ~father)

Also look ~

Any suggestions or doubts, please open an “issue”.
If you want to contribute, make a “pull request”.