1. For issues you find with the Switch and Console releases, please follow this link and give as much detail as possible. This is the speediest way to get info to Pipeworks and get a hotfix in the works.
    Dismiss Notice

tModLoader Project_Logic

Discussion in 'Released' started by Rartrin, Oct 2, 2016.

  1. Rartrin

    Rartrin Terrarian

    Project_Logic Logo.png
    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.

    -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.





    WireComponentBasic.png
    The base for all wire components.
    Bought from the mechanic.
    ModWireKite.png
    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.

    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.
    Pling
    Harp
    Bass
    Kick
    Snare
    HiHat
    Lead
    Bass
    Harp
    Oboe
    Ocarina
    Tambourine
    Snare
    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.
    RadioLink.png
    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.
    PistonCopper.png PistonTin.png PistonIron.png PistonLead.png PistonSilver.png PistonTungsten.png PistonGold.png PistonPlatinum.png
    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).
    SpawnController.png
    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.
    Activates all wires on the tile that aren't the color that activated it.
    (Currently Unobtainable)

    -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)

    -Make wire's fully multiplayer compatible
    -Make SpawnController multiplayer compatible
    -Make wire render correctly when upside-down

    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

    GabeHasWon: RadioLink sprites

    -Major internal overhaul on the wiring and pulse systems.
    -Updated to tML 0.10.1
    -Added Collector (indev)
    -Updated to new tML version
    -Unloads static fields now
    -Fixed reloading bug
    -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
    -Fixed major ModWire freazing bug
    -Updated to tML v0.9.1
    -Fixed Grand Master Design bug
    -Updated to tML v0.9
    -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.
    -Added Pistons (only obtainable via cheat sheet atm because they are still indev)
    -Changed ModWiring to use Wiring.blockPlayerTeleportationForOneIteration
    -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
    -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
    -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.
    -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
    -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
    -Updated to tML version 0.8.3.3
    -Fixed bugs with everything that activate wires
    -Quick fix for the grand master design UI
    -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
    -OH CRAP! MEMORY FIX!!!
    -OH CRAP! RECEIVER BUG!!!
    -Added RadioLink(Transmitter and Receivers for wire signals that are color specific)
    -Vanilla wire compatibility patch and quick fix for patch
    -Added black wire (Now I need to add a new gem for it :p)
    -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
    -Added purple, orange, and white wires (one color for each gem)
    -New wires are now saved with the world!
    -Fixed problem where delayers would not activate vanilla wires
    -Removed unfinished RadioLink :p
    -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
    -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
    -Reworked delayers to incorporate registry
    -Implemented DataGrid into Delayers
    -Added dynamic drawing code to delayers
    -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)
    -Renamed DataTiles to DataGrid
    -Implemented DataGrid into Noteblock
    -Removed recipe from Ambimultiplexer
    -Added test recipe to SpawnController
    -Added "Todo List" to log and moved the non-features from the "Planned Features" list
    -Quick patch
    <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
    -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
    -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
    -Fixed tabs in log file, really this time :p
    <Items>
    -Changed Delayer's names to exclude "tick" until their timing is corrected
    <Tiles>
    -Fixed bug where delayers where asynchronous for different directions
    -Fixed tabs in log file :p
    -Began logging changes
    <Tiles>
    -Added pitch limiter to Noteblocks
    <Items>
    -Added tooltips
    -Added description
    <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]

    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.
     
    Last edited: May 18, 2018
  2. Rartrin

    Rartrin Terrarian

    Feel free to post any ideas for things you would like to see added or, if you paranoid about people stealing your ideas, private message me them either via this forum or on discord, my username is Rartrin.
     
  3. Grim 2

    Grim 2 Terrarian

    Maybe like a mini telpeporter that could act like a waypoint device with a recipe like 50 basic componets 1 magic/ice mirror at a teleporter or something i say this because i have seen only 1 mod with a waypoint and i dont like it ps good luck on the modding
     
  4. Cheezegami

    Cheezegami Pixel Pirate

    Noteblocks, pistons and other crazy mechanics?
    Do sign me in.
    As far as extra mechanics go, maybe dispensers (inventory space that shoots out items or projectiles).
     
    dr.walrus likes this.
  5. HallowKingJerrold

    HallowKingJerrold Spazmatism

    May I suggest an few new ideas?

    Turrets - Any Gun, modded as well + 20 Basic Wire Components
    (Wired Device) An wire-activated turret that, when activated, will fire at targets with damage, fire rate, and effects equal of the gun used to make the Turret. Perfect for farming items. Can be modified for trolling purposes.

    Laser Gate/Floor - 30 Lenses + 5 of any gem (for color) + 100 Basic Wire Components + 2 Wire Blocks
    (Wired Device) An pair of blocks designed to deal damage to any who come across the lasers. Must be within the same Latitude/Longitude and connected to be turned on. Can be turned on or off.

    Side Block Connector - 50 Honey Blocks + 1 Wire Block +50 Basic Wire Components
    (Accessory) Allows placement of wired devices to be placed on the sides or bottom of blocks
     
    Fury likes this.
  6. Fury

    Fury Lunatic Cultist

    I just want to report that the latest version of tModLoader (0.9.2.2) seems to have broken delayers. The noteblock/delayer creations in my world stopped working (I immediately reverted back to 0.9.2.1 :p)
     
    dr.walrus likes this.
  7. Caseratis

    Caseratis Terrarian

    This looks absolutely amazing
     
  8. Rartrin

    Rartrin Terrarian

    Thanks for bringing this to my attention. Project_Logic will be updated as soon as the mod browser is back online.
     
    Fury likes this.
  9. 奶子

    奶子 Terrarian

    i change this mods something,then made these
    http://www.bilibili.com/video/av8123339/
    http://www.bilibili.com/video/av8573700/
    i used to put in utb,but not hot,and i still hope u can like this
    now i am thinking of fix some trouble in this but the mod has so many bug(or anything?)like the wire not same as normal wire,i cant use mod wire in many normal-wire-block (or something ),and piston has so many bug that i cant say,so i cant use it in the video (as u see i dont use them),if the piston block can be not stick other blocks when it go back,it will more helpfull(or u can made it like mc,two blocks,one can stick,one not)
    i reaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaly want u fix this,and realy want this mod can be better and join in Terraria1.3.5(now tml 0.9.2.3)
    and be betttttttttttttttttttttttttttttttttttttttttttttttttttter!
    hope u like my video, im a chniese ,my English's not good,if u do not understand something,just reply me!
    last one!hope u like it!
     
    Fury likes this.
  10. dr.walrus

    dr.walrus Terrarian

    wow been messing around some of the stuff is so cool!!
     
  11. peashooterman3

    peashooterman3 Terrarian

    noteblocks in terraria?
    thats an 11/10 for me right there if i do say so myself
    finally i dont have to get a better graphics card to play noteblock music
     
    Fury likes this.
  12. peashooterman3

    peashooterman3 Terrarian

    oh hey fury didnt know you took a look at this
     
  13. Moon_Man

    Moon_Man Terrarian

    is this available for 10.0.2?
     
  14. zekrom_vale

    zekrom_vale Terrarian

    Wow! I broke the switches and wiring tool after removing a lot of dart traps. I had to restart Terraria and reinstall the mod to get it to work. But that is not my biggest issue, the wires do not work with most activation blocks, timers, presser plates, and tracks. On top of that delayers can produce a feed back loop, don't accidentally do this with the zero one. Next a piston pushing up an extending piston crashes the game.

    This is a suggestion, but can you add the original colors to the wiring tool?
     
  15. zekrom_vale

    zekrom_vale Terrarian

    Sometimes I sound out when loading tModLoader, it breaks switches and your wiring system (Full tModLoader restart required). Next, the radios deactivate once leaving the game and must load the aria to make it work. Pistons do not push horizontally, only vertically.

    Recommended items/ blocks
    • P2P (Compresses wires to one with a P2P tunnel)
    • Item conduits (A special wire that can go through blocks)
    • Conveyor belts that move mobs
    • Normal wire behavior (Not XOR, possibly 15 level and 0)
    • Non sticky pistons
    • Diode (One way only)
    • Radio frequencies
    • Ability to place wire in a zigzag (instead of diagonally)
    • Allow wires to fire cannons
    • Handheld transmitter
    • Reverse lamp (Allowing multiple inputs on the gate and output(s) on the lamps)
    • Lock (Prevents signals from passing through while receiving one)
     
  16. zekrom_vale

    zekrom_vale Terrarian

    I found out how to work with delayers, to prevent repetition, the receiving wires must not connect to the block AND be 90deg from the arrow. delay2.PNG
    Input red, Output blue or yellow, Invalid output green
     

    Attached Files:

  17. JoeJoeTV

    JoeJoeTV Skeletron Prime

    Is this mod still getting updated?
     
  18. Rartrin

    Rartrin Terrarian

    Yes. After taking a little break, I am returning to the mod. So far, I've already rewritten most of my wiring code to be a lot more modular and efficient. My goal now is to have a lot smoother integration with the vanilla. Some tiles in the past were not compatible will my mod wires. Delayers will be changing some, they will now be able to activate the wire in front of them. I also made them so that plugging a delayer into itself shouldn't cause problems with it duplicating the pulse, in other word, if you plug a delayer into itself now, it will loop at the proper interval and not crash/cause a bunch of noise. Eventually, I plan to make a new style of delayer. I still have some things to get nailed done on it before I make any promises about it's functionality. Similarly, I would like to, in the future, add a new noteblock system, one with a GUI and such that would be able to have different sound/pitches depending on what wires hit it. This is also still in the planning phase. The update I've been working on is going to be mostly patching bugs and improving performance, but will path the way for bigger things to come.
     
  19. JoeJoeTV

    JoeJoeTV Skeletron Prime

    That's good to hear. Just one question: will you make the mod multiplayer compatible?
     
  20. Rartrin

    Rartrin Terrarian

    Eventually, I do plan to. In theory of all of the tile's wire-hit actions already should be multiplayer compatible. The Grand Master Design, the delayers, and the noteblock's sounds are the main thing I will need to fix though.
    Oh, that reminds me, I would like to get some original sounds to use for noteblocks, rather then just reusing the minecraft ones (they were originally only meant to be for testing but I couldn't find any better ones so I kept them). If anyone would like assist in making some original sounds to use for them, please contact me. You can contact me here (I check in every couple of days) or, if you use Discord, I'm mostly online there, you can find me on both the official tModLoader Discord server as well as the official unofficial Terraria Discord server.