This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
joshmanisdabomb's profile picture

Passion 0.5 - A Löve2D Styled Engine

Started by joshmanisdabomb, 27 September 2013 - 09:05 AM
joshmanisdabomb #1
Posted 27 September 2013 - 11:05 AM

Passion v0.5

So a couple of people have been creating Löve2D styled engines in ComputerCraft recently, so I thought I'd throw in what I've been working on for a couple of months now. Passion.

Passion is mainly useful for drawing graphics, but also has the ability to:
  • Manage files in a local area.
  • Track mouse and keyboard.
  • Find peripherals. (Upcoming)
  • Play sound via command blocks. (Upcoming)
  • Keep track of frames passed with timers.
  • And more to come…
Remember, Passion is still in it's early stages. Feel free to give suggestions, criticisms and report bugs. Feedback is really appreciated.

Features:
SpoilerThis is nowhere near complete but a documentation for every Passion function and callback, plus a list of upcoming features and changes can be found here.

Installation:
SpoilerPastebin Link:

pastebin get RPczfZA8 passion

Passion does not need any dependencies nor does it need to drop any extra files to the computer. Just download once and run!

Note: Passion is ONLY for advanced computers, and is made to be run in the terminal. Passion has not even been tested on monitors yet, but support for monitors will be added in the future.

Running & Using Passion Files:
Spoiler

passion <directory>
The directory must contain the file "main". If it does, the Passion file will be run. Simple as that.

Most of how the Passion file works is up to the creator, but by pressing Ctrl you will pause any Passion file at any time and bring up the Passion menu.

The menu shows the version of Passion currently running and the directory that is currently running. It also has two options, unpausing and quitting. More options may be added, such as screenshots.

Making Passion Files:
SpoilerPassion files are really simple to make. Make a directory specifically for the file and create a file inside called "main". This is the first file Passion will read. The "main" file can manipulate other files and images in the same directory.


function passion.config(config)
-- Runs once at startup, this is where you can change technical things like stating an FPS cap or the version of Passion the file was created for.
function passion.load(config)
-- Runs once at startup, this is where you initialize variables, load files and images, etc.
function passion.update(config)
-- Runs every frame, this is where variables should be changed and mouse and keyboard functions should be used.
function passion.draw(config)
-- Runs every frame AFTER passion.update, this is the only function where graphics functions will run.

Screenshots:
Spoiler
  • Passion Logo:
  • Pause Menu
  • Some graphics functions.

Videos:
SpoilerTrailer and tutorial coming soon…
joshmanisdabomb #2
Posted 27 September 2013 - 02:48 PM
I'm getting OCD looking at that logo… MUST… Be… CENTERED…
Either way: Good job on making yet another engine based off of Love2D, however, it'd probably really boost your views if you included a demo game along with it. Hope there is one when you get to full-version (1.0.0)!

Suggestion for testing purposes: When simply running "passion" with no directory specified, could you display the logo and leave a message like "You need to specify a directory" under the logo centered? :D/> that'd be cool if it did, or have it simply run a demo game like Love2D does

Odd. The logo looked centered to me, until I just now measured it and found that it wasn't. I'll get that fixed, but it'll be more difficult than usual since I didn't actually make the function that gets the width and height of images.
And yeah, I do plan on making it so when Passion is run with no directory argument it shows you a couple of demos and games.
Thank you for the feedback! :)/>
joshmanisdabomb #3
Posted 27 September 2013 - 06:28 PM
Bug Report for You!

Bug Description: Can not exit pause menu nor can interact with it!
How to Reproduce: Press CTRL during any game

Work Around: CTRL+R'ing out of the program (Or CTRL+T if preferred)
Additional Note: The testing was done in CCDesk

I have no clue on how to use CCDesk. :(/> As soon as I learn how, I'll see what I can do.
joshmanisdabomb #4
Posted 27 September 2013 - 08:18 PM
Basic Usage of CCDesk:
  • Start a new session
  • Computer -> Create Computer (pick your preferences)
  • Computer -> Link Computer (put in the ID of the computer you just created)
  • Start typing in the computer and you're set
Other than that, really it probably isn't a CCDesk only thing, so can you test it in like SP (the pause menu)?
Was it working while you were testing it? I might be doing something wrong if it was.

It was definitely working. Ctrl to pause, click [Unpause] to unpause and [Close] to quit.
Tested in CCDesk, the pause menu does indeed work.
joshmanisdabomb #5
Posted 27 September 2013 - 08:25 PM
I just did some testing in CCDesk and it appears it may be a CCDesk only issue.
I'm going to have to contact Allochie about it and see what he thinks though, (I couldn't perform any clicking in several OSes and this program)

Sorry if I caused any confusion xD

It's fine mate. The pause menu works for me both in CCDesk and in Minecraft. I'm not sure what's up, I'm worried now. :P/>
joshmanisdabomb #6
Posted 27 September 2013 - 08:37 PM
I just did some testing in CCDesk and it appears it may be a CCDesk only issue.
I'm going to have to contact Allochie about it and see what he thinks though, (I couldn't perform any clicking in several OSes and this program)

Sorry if I caused any confusion xD

It's fine mate. The pause menu works for me both in CCDesk and in Minecraft. I'm not sure what's up, I'm worried now. :P/>

I'm talking with Allochie, my computers throwing fits over CCDesk, I'll try testing in Minecraft.
Thanks for the quick replies!

You too, and thanks for going out of your way to help out. :)/>
joshmanisdabomb #7
Posted 27 September 2013 - 09:04 PM
In the end I did nothing but slow you down and have a bit of a conversation I guess!
Oh well, :)/> At least now I know you a bit better.

+1 For you

I don't mind, it's not anybody else is going to find this and talk about it. :P/> Haha.
Ugh…
willwac #8
Posted 28 September 2013 - 10:00 PM
Aww, I'll talk about it!
joshmanisdabomb #9
Posted 30 September 2013 - 03:05 AM
Aww, I'll talk about it!
Go on then… :P/>
Zudo #10
Posted 30 September 2013 - 02:36 PM
This is cool… cool… yeah, I like it, but add some features to make it unique :)/>
joshmanisdabomb #11
Posted 30 September 2013 - 05:19 PM
This is cool… cool… yeah, I like it, but add some features to make it unique :)/>

I hope that sound with command blocks is really going to be a sort of edge, because I haven't seen any program that's actually used command blocks for sound yet.