Current Version: [0.5] Project_Logic strives to add more functionality to the wiring side of Terraria. This includes extra wires, Noteblocks, Delayers, Pistons, Radio links, enemy spawn controllers/disablers, and many more small but useful devices. This mod is currently only available through the tModLoader Mod Browser. 0.5 -Major internal overhaul on the wiring and pulse systems. It's better than vanilla... I mean, it was already, but now it is even better. Items Basic Wire Component The base for all wire components. Bought from the mechanic. The Grand Master Design A upgraded version of the vanilla Grand Design. This one can be used to place all 8 mod wire colors and the actuators. More things will be added later. You can also toggle placement settings using the number keys but only while the right click menu is open. This is crafted from a vanilla Grand Design and 100 Basic Wire Components at a Tinkerer's Workbench. Tiles Noteblock A customizable sound tile. Plays it's sound when activated by wire. Right click to go up by one semitone. Shift right click to go up an octave. Control right click to change track/play-style (Indev) Hit with a hammer to go down one semitone. Craftable from Basic Wire Components when standing by any Music Box and Tinkerer's Workbench. Sounds MC Pling Harp Bass Kick Snare HiHat NES Lead Bass OoT Harp Oboe Ocarina Tambourine Snare Delayer After being hit by a wire, it will count down. Once it hits zero, it activates all wires surrounding it except for the direction opposite of where it's pointing. Available tick delays are for value of 2^x up to 128 ticks. Right click to change facing direction. Placing one by another one will automatically change it to the direction of the one it's touching. Craftable from Basic Wire Components when standing by any Timer and a Tinkerer's Workbench. Radio Link An efficient way to transmit wire signals over a long distance and to multiple sources. Right click to toggle between Transmit, Receiver, and Bidirectional modes. Transmitters send to all wires of the same color on all receivers in the world. As such, you can have one transmitter send it to multiple places depending on what wire is activated, or you could have multiple transmitters with different wire colors all being received at one receiver and still manage to keep all the signals separate. Currently only supports the 8 mod wires. Craftable from Basic Wire Components. Piston Pistons are able to push and pull tiles in any direction. These are not quite the same as the ones in Minecraft. Right click it to change direction. Extends/Contracts when activated by wire. Different pistons extend different amounts. Copper/tin has a range of 1 tile, lead/iron has 2, silver/tungsten is 3, and gold/platinum is 4. Each piston can only push/pull 10 times it's range in tiles. For example, a copper piston can push and pull a max of 10 tiles and a silver piston can push and pull a max of 30. When it comes to pulling tiles, they will pull all tiles in a straight line in front of the piston arm up to their max. Pistons cannot move tiles with actuators on them. I figured this was a good way to restrict their range without having to use specific tiles. Due to the fact that they can break multi-tiles as well as change tiles that you should not be able to, These are currently unobtainable legitimately (If you want to mess around with them, just grab some via Cheat Sheet). Spawn Controller WARNING: May contain slight traces of cheating! Right click or activate with a wire to toggle enemy NPC spawns on and off. There are a few event spawns that this does not toggle like from the Raining Slime event. Working on it. Crafted with 100 Souls of Light, Night, Flight, Sight, Might, Fright, and 1000 Basic Wire Components. Interchange Activates all wires on the tile that aren't the color that activated it. (Currently Unobtainable) Planned Features -Allow for custom noteblock support so other mods can add there own note sounds -Rework Terraria.Wiring to become more mod-friendly (then probably move this to a core mod) -Special inventory slots for wire components (similar to ammo slots) Planned Fixes -Make wire's fully multiplayer compatible -Make SpawnController multiplayer compatible -Make wire render correctly when upside-down Possible Additions This is a list of things that I have considered adding but decided not to or at least not now. This is mostly because they would either require new subsystems to be added, or because they would only have one use. If you see something on this list that you would like to see added, leave a comment and tell me what as well as let me know what uses it would have. -Counter blocks (count wires hits and stackable) -Team tiles which only that team can interact with. This includes pressure plates, levers, blocks(only minable by that team), and possibly even zones (this one would probably wind up being moved to another mod instead) -Diagonal wires(Unlikely) -Sub-tile wiring(Unlikely) -Pipes (There are already pumps) -Ropes, pulleys, and moving platforms -Turrets Credits GabeHasWon: RadioLink sprites Version History Beta Release 0.5 -Major internal overhaul on the wiring and pulse systems. 0.4.7.10-13 -Updated to tML 0.10.1 -Added Collector (indev) -Updated to new tML version -Unloads static fields now -Fixed reloading bug 0.4.7.6-9 -Added proper lighting to Noteblocks and Delayers -Fixed small offset when mouse was over builder icons -Fixed compatibility issues for tML 0.9.2.2 0.4.7.0-5 -Fixed major ModWire freazing bug -Updated to tML v0.9.1 -Fixed Grand Master Design bug 0.4.7.0 -Updated to tML v0.9 0.4.6.6-10 -Added the remaining pistons. Credits to GabeHasWon for the sprites. -Added extra check in ModWiring to improve efficiency on ModTile HitWire methods -Made Spawn Controller multiplayer compatible -Grand Master Design now lets you toggle placement settings using the number keys but only while the right click menu is open. 0.4.6.5 -Added Pistons (only obtainable via cheat sheet atm because they are still indev) -Changed ModWiring to use Wiring.blockPlayerTeleportationForOneIteration 0.4.6.4 -Made Note file no longer an extension of ModSound (it never really needed it) -Fixed RadioLink's check method -Fixed RadioLink bugs causing saving issues 0.4.6.1-3 -Added proper sprites for the radio link -Integrated WireDisplay, WiresUI, and WireHologram to render via new interface layer system -Added a homepage -Finished testing bidirectional mode on Radio Link and added it back into the mod -10 tick delayer, because I'm lazy -Made the wire display toggle correctly 0.4.6.0 -Changed file format to a more primitive yet, more versatile design. This should fix any bugs caused from conflicts with Alternate Dimensions and other mods that change the world size. Alpha Release 0.4.5.1-9 -ADDED IN ERROR CATCH IN LOADING METHOD JUST IN CASE -Fixed a loading bug where it would cause a queue size overflow (OutOfMemoryException) on large worlds when no wires are present -Quick fix for Basic Wire Component in mechanic's shop inventory -Fixed spawn controller's recipe 0.4.5 -Added proper implementation to items -ModWireKite(Grand Master Design) now craftable from normal Grand Design -Basic Wire Components can be bought from Mechanic -Delayers, Noteblocks, and Radio Links are now craftable from Basic Wire Components -Redisgned WiresUI to be more flexible 0.4.4.5 -Updated to tML version 0.8.3.3 0.4.4.1-4 -Fixed bugs with everything that activate wires -Quick fix for the grand master design UI 0.4.4 -Replaced PlacementTester with the Grand Master Design -Noteblocks, Spawn Controllers, and Radio Links are no longer solid but can still float freely (similar to the wire pipes) -Added radio point double check code -Changed save code for wiring again but with backwards compatibility...for now 0.4.3.1-2 -OH CRAP! MEMORY FIX!!! -OH CRAP! RECEIVER BUG!!! 0.4.3 -Added RadioLink(Transmitter and Receivers for wire signals that are color specific) 0.4.2.1-2 -Vanilla wire compatibility patch and quick fix for patch 0.4.2 -Added black wire (Now I need to add a new gem for it ) -Major file format change and rename file prefixed in case the wiring system is later moved to a separate core mod (WireCore) -Wires are now fully compatible with vanilla devices 0.4.1 -Added purple, orange, and white wires (one color for each gem) -New wires are now saved with the world! 0.4.0.1-2 -Fixed problem where delayers would not activate vanilla wires -Removed unfinished RadioLink 0.4 -Fixed the fix for the NES Lead and Bass sounds -Made delayer visually multiplayer compatible (they already worked but now you can see it) -Made noteblocks multiplayer compatable -Making noteblocks multiplayer compatable broke singleplayer functionality so I disabled multipler compatablity in noteblocks for now -Finished main rework of Terraria's wiring -Reworked DrawWires() -Added PlacementTester to place new style of wires 0.3.2.1 -Removed old files -Improved registry's efficiency -Pulses now save and load -Fixed NES Lead and Bass sounds not playing -Began reworking Terraria's wiring system 0.3.2 -Reworked delayers to incorporate registry -Implemented DataGrid into Delayers -Added dynamic drawing code to delayers 0.3.1.1 -Added tool-tip to SpawnController -Swapped two bytes in noteblocks, should only effect track noteblocks -Fixed a bug that only appears for some people who downloaded the mod (I think) 0.3.1 -Renamed DataTiles to DataGrid -Implemented DataGrid into Noteblock -Removed recipe from Ambimultiplexer -Added test recipe to SpawnController 0.3.0.1 -Added "Todo List" to log and moved the non-features from the "Planned Features" list -Quick patch 0.3 <Registry> -Added component registry -Added noteblock sound registry -Added delayer registry -Renamed LogicWiring to DataTiles[Still needs testing and better file size management] <Noteblocks> -Increased NES_Lead and NES_Bass pitch range to 37 -Complete rework of noteblocks to incorporate registry -Noteblocks now have dynamic drawing code -Added OoT noteblocks <Delayers> -Added 3 and 6 tick Delayers V0.2.1 -Added two NES themed noteblocks: Lead and Bass (both 25 note range for now) -Removed old code, organized a little, basic post-release quick patch V0.2 -Complete rework of delayers. Now able to function when off screen and pause when game does <Items> -Delayer(12 tick) <Tiles> -Delayer(12 tick) -Fixed time delay for delayers *WireTile(LogicWiring support)[Skeleton code] <World> *TileManager[Experimental] *LogicWiring[Needs to be tested] <Known Bugs> -The state of wire pulse does not load Pre-Release V0.1.1.2 -Fixed tabs in log file, really this time <Items> -Changed Delayer's names to exclude "tick" until their timing is corrected <Tiles> -Fixed bug where delayers where asynchronous for different directions V0.1.1.1 -Fixed tabs in log file V0.1.1 -Began logging changes <Tiles> -Added pitch limiter to Noteblocks <Items> -Added tooltips V0.1.0.1 -Added description V0.1 <Items> *Noteblock[Code Done] *Delayer[Code Done] *Interchange[Code Done] *Ambimultiplexer[Code Done] *SpawnController[Done] *RadioLink[Skeleton code] <Tiles> *Noteblock[Needs sound specific pitch limiter] *Delayer[Implemented but needs fixing] *Interchange[Done] *Ambimultiplexe[Skeleton code] *SpawnController[Done] <Sounds> *PlingNB(37)[Done] *HarpNB(37)[Done] *BassNB(37)[Done] *DrumBassNB(25)[Done] *DrumSnareNB(25)[Done] *DrumHatNB(25)[Done] <NPCs> *SpawnController[Done] <World> *SpawnController[Done] Contact You can contact me either through the forums or, if you use Discord, you can find me on both the official tModLoader Discord server as well as the official unofficial Terraria Discord server.