ID:36330
 
BigAtom looks like a big scary library. A quick peek at the source code could be more terrifying to a budding game designer than anything else they see this Halloween season. Well, save your screaming and whimpering for the local haunted house. I'm here to show you how to use BigAtom in the most effortless way possible.

The simplest BigAtom is purely graphical. No special targeting considerations, no part by part density, just plug in an arbitrarily sized icon and let BigAtom work its magic. If you want to learn about all the bells and whistles, go read "Go BIG in Existing Games" or one of my future "advanced" articles on the library. This one is all about simplicity.

It's so simple that you'll be playing with oversized icons in three (or four) short steps:

Step 1: Include the library.

Place a Check on BigAtom If you haven't already, download BigAtom fromhttp://developer.byond.com/hub/Shadowdarke/BigAtom. Open your project in Dream Maker, or if your project is already open, click the Refresh button under the File tree so Dream Maker will find the new library. Next open up the "lib" folder in the File tree, find "BigAtom" and put a check in the box next to it. Now BigAtom is part of your project.

Step 2: Change the default BigAtom mode.

The default settings of BigAtom stress flexibility over simplicity. All we have to disable the default bigatom_mode and tell it to use the simple mode. Place this line of code in your project:
atom/movable/bigatom_mode = BIGATOM_PARTS_NONE // simplest overlay mode

Step 3: Put in multi-tile icons.

Place some multi-tile icons in your code, compile, and the library automatically displays the full sized multi-tile icons on for atoms. That's all there is to it! Examples:
mob
icon='tall_32x64.dmi'
dragon
icon = 'dragon_224x224.dmi'
obj/spacecraft/icon = 'spaceship_96x96.dmi'

Step 4: What about run-time icon changes?

I thought you wanted to keep this simple. Well, if you must complicate things with your fancy run-time graphic antics, I'll tell you how to make BigAtom handle it properly. Whenever you change the icon or icon state of a movable atom, just call that atom's bigatom_Icon() proc. This proc redoes the display to match the atom's current icon and icon state.

Examples:

mob
verb
shapeshift()
// take the appearance of the mighty 96x128 pixel weresheep
icon='weresheep_96x128.dmi'
bigatom_Icon()
toad_spell(mob/M in oview())
// turn the target into a toad
M.icon = 'toad_32x32.dmi'
M.bigatom_Icon()

A couple things you should know

With simplicity come limitations:
  • Overlay mode BigAtoms can not be larger than 7 tiles by 7 tiles (224 pixels by 224 pixels).
  • If the atom is dense, the only dense part will be at or near the center of the BigAtom.
  • Flick() does not work properly on Overlay mode BigAtoms as of BYOND build 410.975. (I've asked for changes that will correct this issue, so hopefully it won't be a problem for long.)
These minor limitations are easily overcome using the full might of the BigAtom library, but that's beyond the scope of this article. Check out other BigAtom articles or leave a post on my library forum if you want more from your BigAtoms.