tModLoader Emitters - Placeable and adjustable dust, gore, sound, and sprite (hologram) devices

hamstar

Terrarian



Note: Requires Mod Helpers


Holograms UI in action:


Applied experimentation (skulls!):


Also includes wiring support:

Allows placing devices that can be configured to emit any type of particle ("dust"), "gore", or sound effect. Rate, volume, size, direction, color, type, etc. can all be configured per emitter.

NEW (v1.2): Now featuring holograms! Use these to draw game sprites in any size, color, orientation, or type. Holograms may be animated, adapt to ambient light, or feature cool special effects.


Source code available.



Credits:
  • Chloe - Sound emitter, hologram code contribution


Installation

Requires tModLoader. Copy the above .tmod file to your 'Documents/My Games/Terraria/ModLoader/Mods' folder to play.


Emitters.png


 
Last edited:
v2.1.0.1
  • Fixed scale issue with holograms at varying zoom levels
v2.1.0
  • Imported @chloenaut's gores code
  • Added GoreDefinition (an EntityDefinition)
  • Reverted StackableModConfig
  • Fixed hologram mode options to load correctly via item option button
  • Tweaked hologram sprite preview to not be blocked by mouse
  • Renamed max range settings for clarity
  • Fixed hologram mode changes not correctly updating type ranges
  • Fixed holograms using an invalid initial type value
  • Fixed large offscreen holograms cutting off prematurely
v2.0.0.5
  • Fixed default emitter and hologram color/alpha being 0
v2.0.0.4
  • Added backwards compatibility for v1.2 holograms (OldHologramDefinition)
  • Contextualized IBaseEmitterItem with it's definition type
  • Added BaseEmitterDefinition.CreateOrGetDefForItem(Item)
  • Tweaked some information tip texts
  • Fixed hologram UI fields not being set with new item selects
v2.0.0.3
  • Removed outdated/incorrect tooltip for accessing item settings
  • Set settings button to draw faintly when not hovered
v2.0.0.2
  • Added failsafes for hologram loading from older version (1.2.0.1)
  • Tweaked def outputs
  • Restored removed def fields as forwarding properties (1.2.0.1 compat)
  • Fixed hologram preview zoom
  • Streamlined zoom code (UIZoomHelpers)
v2.0.0.1
  • Fixed issue that might interrupt item auto use with hotbar emitters
v2.0.0
  • Fixed hologram world MP sync
  • Added EditorButton class
  • Set emitter/hologram items to each be IBaseEmitterItem
  • Set wire mode (in and of itself) to not permit in-world emitter/hologram interaction
  • Implemented context button to access item settings
  • Disabled right-click functionality for inventory emitters/holograms
  • Added DebugModNetInfo setting
  • Updated mod description
  • Fixed world sync of emitters/holograms
  • Fixed hologram copy contructor missing frame
  • Removed emitter/hologram in-world left-click toggling
  • Added in-world tooltips for emitter/hologram tiles
  • Restructured draw code files for holograms
  • Refactored def classes ToStrings
  • Updated to v2.0 due to compat breaking changes
  • Renamed emitter's Alpha to Transparency
  • Corrected zoom of emitter/hologram previews
  • Fixed shader timer range adjusting per shader mode
  • Restructured dialog code files to separate item/def IO
  • Fixed dialog positioning issues
  • Combined alpha settings into hologram item tooltip for colors
  • Split off IO code files from def classes
  • Split save/load and tooltip into new item code files (and added tweaks/fixes)
  • Imported Chloe's shader tab code w/ corrections/tweaks
  • Improved/fixed scanlines FX
  • Refactored defs to split off 'Animation's into new files
  • Fixed CRT time scale slider
  • Added emitter/hologram recipe config settings
  • Imported Chloe's UI hologram modes (NPC, Item, Projectile) and UI tabs code
  • Refactored world load code
  • Set emitter definitions to use a base class
  • Refactored HologramDefinition to include Mode
  • Added hologram dialog tab containers (WIP)
  • Assorted refactoring everywhere
v1.2.0.1
  • Fixed hologram CRT zoom issue
v1.2.0
  • Imported Chloe's code for holograms
  • Changed HologramDefinition to internally use NPCDefinition
  • Added HologramMinimumRangeBeforeProject setting
  • Assorted fixes and tweaks to dialog inputs
  • Refactored definition classes to better organize code
  • Added hologram frame animation controls
  • Updated UISlider to MH 5.7.2
  • Refactored some emitter/hologram animation/timer code
  • Fixed hologram world saving
  • Added DebugModeInfo setting
  • Added hologram sprites
  • Fixed emitter/hologram wiring (via. IL)
  • Imported Chloe's code for hologram scanline effect
  • Cleaned up code
  • Revised hologram shader to use scan lines and waves
  • Set wire mode to also view emitters/holograms
v1.1.0.1
  • Updated to MH v5.7.1
  • Removed some redundant sound sample playing for dialog
  • Implemented dynamic sound type style ranges
  • Resized sound emitter dialog
  • Fixed sound emitter loading
  • Organized emitter definitions into new folder
  • Sound emitter sprite
  • Assorted code cleanup
  • Added sound emitter recipe
  • Added SoundEmitterMinimumRangeBeforeEmit setting
  • Restructured world emitters code files
  • Assorted tidying to world emitter code
  • Deferred to MH UISlider
  • Merged Chloe's SoundEmitter code
v1.0.1.1
  • Added mod icon
  • Implemented emitter removal for MP
v1.0.1
  • Fixed emitter pseudo-tiles not scaling with game zoom
  • Added setting to restrict emitter distance
  • Reset emitters on world load (ModWorld.Initialize)
  • Fixed UISliders not handling arrow clicks well
v1.0.0.2
  • Fixed dust and gore excess max value ranges
  • Attempted to lock item use while UI active (untested)
v1.0.0.1
  • Added homepage link.
 

Attachments

  • Emitters v1.0.0.1.zip
    59.1 KB · Views: 194
  • Emitters v1.0.0.2.zip
    79.9 KB · Views: 197
  • Emitters v1.0.1.zip
    81.5 KB · Views: 185
  • Emitters v1.0.1.1.zip
    86.3 KB · Views: 195
  • Emitters v1.1.0.1.zip
    96 KB · Views: 174
  • Emitters v1.2.0.zip
    145.9 KB · Views: 188
  • Emitters v1.2.0.1.zip
    145.8 KB · Views: 183
  • Emitters v2.0.0.zip
    182 KB · Views: 163
  • Emitters v2.0.0.1.zip
    182.5 KB · Views: 174
  • Emitters v2.0.0.2.zip
    186.8 KB · Views: 189
  • Emitters v2.0.0.3.zip
    186.5 KB · Views: 185
  • Emitters v2.0.0.4.zip
    193.4 KB · Views: 187
  • Emitters v2.0.0.5.zip
    194.4 KB · Views: 178
  • Emitters v2.1.0.zip
    202.3 KB · Views: 172
  • Emitters v2.1.0.1.zip
    202.2 KB · Views: 222
Last edited:
Modder's Toolbox but now with gores and you can place them in your world lol
nicely done thou Hamstar, will help with debugging some things for sure!
I'm guessing this is for something later down the road isn't it? Like alot of these mods you've been making of late
 
Modder's Toolbox but now with gores and you can place them in your world lol
nicely done thou Hamstar, will help with debugging some things for sure!
I'm guessing this is for something later down the road isn't it? Like alot of these mods you've been making of late
Oddly enough, this mod exists simply because I thought it would be cool, and I said I would make it.

I might add sound and "hologram" emitters, by the way.
 
make it to where we can control the RGB by typing it or selecting the RGB number so making the color black and white is easier
 
make it to where we can control the RGB by typing it or selecting the RGB number so making the color black and white is easier
The RGB hue slider uses a percent value (0 to 1), so you can sorta type it in (I built sliders to have that functionality). The Intensity value controls black or white.
 
Last edited:
Mod help request: Completing major features


This mod is currently in need of help with finishing remaining major features:
  1. Sound emitters: Placeable emitters like the existing dust/gore emitters, but only for sounds. Includes settings for volume, pitch, loop, loop delay variance, etc.
  2. Hologram devices: Placeable devices that can draw any arbitrary game sprite. Includes settings for scale, color, frame, animation, direction, rotation, etc.
  3. Tile hologram devices (optional): Similar to the above, but for fake terrain/tiles. May be handy for making tile foregrounds, if draw order controls can be implemented.
  4. Modded dust/gore support: The internal design only works with dust/gore id numbers, which is not suitable for modded use. I need to refactor the design to use class names (or some other unique identifier) instead.

Scope: Contributors will, obviously, need to be adept tML C# programmers, and know how to PR to existing mod projects (I made a rudimentary guide here: tModLoader - Mod Helpers). Creativity, good communication ability, and patience with trial and error will also be needed. Expect a week of work, in the best case. Realistically more like a month.


Current Progress: Besides the above missing features, the mod is currently released (see links), but may need a bit more MP testing in its current form.


Team: The project works on a contributory basis, though I'm technically the leader. I'll handle all PR merges and needed edits. Simply pick a feature from the above list, and start implementing it. If needed, I will help with setting up any UIs, defining config settings, Mod Helpers use, or troubleshooting.


Links:
  1. Mod homepage (here): tModLoader - Emitters - Placeable and configurable particle ("dust") and gore emitter devices
  2. Terraria Sound Suite (for reference): Terraria Sound Suite - Customize all ingame sounds (and more)
  3. Basic PR guide (for reference): tModLoader - Mod Helpers #modders
 
Last edited:
I should mention v2 is now released, featuring craftable holograms now able to display NPCs, items and projectiles, and with shader settings! Also a billion other changes and fixes.
 
Back
Top Bottom