Giter Club home page Giter Club logo

se-utilities's Introduction

SE-Utilities

A number of utilities and libraries for SpaceEngineers in-game scripts. This is primarily for my own use, though anyone is free to use this (and contribute of you like) The PID controller is a straight copy from the MDK wiki, original code by Whiplash141. I will probably write my own in the near future.

Current Projects:

The current project is a library for working with sprites, intended to make life a lot easier when using textures that are comprised of multiple sprites. It will also allow displaying text in SE's Fräulein font, wich would allow for example to rotate said text. Lastly, a menu infrastructure with automatisch variable subsitution a la sprintf is planned

se-utilities's People

Contributors

adriandewinter avatar

Watchers

 avatar

se-utilities's Issues

Add SE "Fräulein" font as textures

Normal Text sprites can n ot be rotated, adding the entire font together with some helper functions that turn strings into sprites would allow rotating and resizing text more easliy

  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • X
  • Y
  • Z
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • -
  • '
  • .
  • ,

Simplified sprite drawing

Drawing sprites requires a number of steps. Simplify those int a single function call, taking in the block to draw on, the index of the draw surface and the sprite object and position/scale

Optional: replace the index with something like an enum, and knowledge of what sufaces are available on all block types

Add color mapping

Allow texture class to keep track of and update colour of its sprites, by classifying them into categories.

E.g. bind sprites that server as cutouts and should be transparent to the background to the LCD background colour.
Either allow a primary, secondary etc colour on all textures, or have specific textures inherit from texture and extend it with their named colour members

Default sprites

Decide on and implement a way to have some composed defautl sprites available as part of the library, both to use ins scripts and for demonstration purposes

  • Decide between a: a name space for the the sprites to live in or b) something liek a static class containing all the sprites as static members
  • Implement that
  • Create and add some sprites

Sprite data structure

Data structures are needed for both single sprites as well als drawable scenes

  • a sprite has several textures (MySprite objects)
  • a scene consists of several sprites and a reference to the surface it is being drawn on

Ability to create menus

A menu is a set of sprites, containing space for text and data to be written out
A menu should contain format strings and hold references to the data it is asked to display, updating as the data changes

  • come up with a specificitaion for menus
  • implement facilities to transparently keep menus updated
  • (optional) Automatically adjust menus to screen sizes

Consider seperate scaling for text and texture sprites

Giving the Texture class the ability to distinguish between text and texture sprites would allow for separate scaling inputs to the class, somewaht mitigation the games limitation in using "ScalingOrRotation" as a single, combined value

Store sprites

Add the option to load sprites from a text representation, primarily from a blocks custom data section.

  • specify custom data format for sprites
  • implement function to load and draw those sprites
  • implement a function to load and draw on all blocks in a list
  • add function to save a sprite configuration to a blocks custom data section

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.