1. Please be advised of a few specific rules and guidelines for this section.

RELEASED Wired Teleporters (v0.1a) 2016-09-14

Wired Teleporter for local instant teleportation

  1. cybersam

    cybersam Subatomic Cosmonaut

    cybersam submitted a new mod:

    Wired Teleporters (v0.1a) - Wired Teleporter for local instant teleportation

    Read more about this mod...
     
  2. mastercookie

    mastercookie Existential Complex

    as far as i know they built all the rooms underneath the houses (in the video)
     
  3. cybersam

    cybersam Subatomic Cosmonaut

    then this time it will be a bit better xD

    just need to add the doors made by @Merawolf so we have some theme styles ^_^
    till i get to add the things he wanted to add
    that is... i'm still thinking on how to make it a bit customizable... so the teleporter wouldn't require a powered wire to work
     
    mastercookie likes this.
  4. bk3k

    bk3k Oxygen Tank

    Sweet. I was thinking about doing something like this, but putting them on "channels" so you don't have to run a wire. There used to be a teleporter mods but got discontinued once vanilla teleporters came out.

    Also I need to pump out that spawn point adjuster active item I was gonna make. And other stuff like that.
     
  5. TenkoKuugen

    TenkoKuugen Scruffy Nerf-Herder

    This is probably not the best place to ask but how do I connect 2 teleporters that are pretty far (2-3 screens worth or more at zoom 2) away? The wire connecting just drops if you go too far from the original node.
     
  6. cybersam

    cybersam Subatomic Cosmonaut

    @TenkoKuugen
    you could try out the extra zoom mod...
    wher you can zoom out even more...

    though not sure how the engines wire limitation works...

    as it currently is... you could create a teleportation network that go in one direction all the way around a planet... thoguh that would mean you will have to keep teleporting until you reached your destination... xD

    hmm...
    now that i think about it...
    i might be able to get this to work with wiregates to act as relays...
    though it would probably be best if i added my own gate for this...

    also for a later version i might add an interface where you could choose your destination in a network of teleporters
    but that might take a bit more time to work it out

    @bk3k
    channels ?!..
    what do you mean ?!... that sounds interesting if it works how i think it would... ^_^'
    that would result in not needing for wiringgates
     
  7. bk3k

    bk3k Oxygen Tank

    @TenkoKuugen
    Discussion tabs are the PERFECT place to ask. It is the people asking questions in reviews that are doing it wrong. Reviews are for... reviewing so your fellow players know if the mod is worth their time.

    The distance you can wire is pretty limited for a single run. I suppose with the current implementation scheme, he'd need want to code it to follow the nodes until it found a teleporter. I haven't looked at his code yet. But an example of this could be found in the Base in a Box mod. Or Pilch's FCS(which shares much of the same code). That way you could wire from one thing to another to another until you linked them. I'm only assuming that doesn't work this way at the point I write this.

    @cybersam
    The stuff like how to switch "channels," position offset to accommodate for actual teleporter shape, etc I leave to you. And if you are gonna do that, you would need some way to make sure players can tell what channel it is set too(if paired). Something like a numeric display and light attached? Specially made paired terminal?

    I was only in the "I'll do it later" phase til now.


    I haven't tested it, etc. Nor have I made a teleporter for it. So I'm not really started except for what I'm about to paste. If you find it useful, run with it, use it as a reference, whatever.


    Code:
    init()
      message.setHandler("disconnect", function() disconnect(true) end)
      message.setHandler("connect", function(id) connect(true, id) end)
      storage.connectedPos = storage.connectedPos or {}
      storage.connectedID = storage.connectedID or false
      self.searchCooldown = 0
    
      --whatever code you have now
      --
      --
      --
      --
    
    end
    
    
    
    function update(args)
      --whatever code you have now
      --
      --
      --
      --
    
      if self.searchCooldown > 0 then
        self.searchCooldown = self.searchCooldown - arg.dt
      elseif not (storage.connectedID) then
        storage.connectedID = findMatchingTeleporters()
        if storage.connectedID then
          connect(false)
        else
          self.searchCooldown = 10 + math.random(-2, 5)
          --prevent spamming world.entityQuery()
      else
        doTeleporterStuff()
          --I'll leave that to you
      end
    end
    
    
    function findMatchingTeleporters()
      local myCapability = "teleporter_channel_" .. tostring(storage.teleporterChannel)
     
      local matchedTeleporters = world.entityQuery( {0, 0}, 9999, {
        includedTypes = {"object"},
        callScript = "hasCapability",
        callScriptArgs = { myCapability }
        })
     
    
      if (#matchedTeleporters == 1) then
        --would need 1, but more than 1 would create a problem of which to send to so it disqualifies.
        return matchedTeleporters[1]
      else
        return false
      end
    end
    
    
    function hasCapability(capability)
      local myCapability = "teleporter_channel_" .. tostring(storage.teleporterChannel)
      if capability == myCapability then
        return true
      else
        return false
      end
    end
    
    
    function die()
      disconnect(false)
    end
    
    
    function disconnect(external)
     
      if not external then
        world.callScriptedEntity(storage.connectedID, "disconnect")
      end
    
      storage.connectedID = false
    end
    
    
    function connect(external, id)
      if not external then
        world.callScriptedEntity(storage.connectedID, "connect", entity.id())
      else
        storage.connectedID = id
      end
    
      storage.connectedPos = world.entityPosition(storage.connectedID)
    end
    That's a very basic implementation. I could/should put together a more sophisticated solution. Also on my drawing board is an object-to-object communication package. Something to easily (and intuitively) enable cross-object collaboration in more advanced ways than presently viable. Common communication protocols, commands, data structures, capability query, state query, etc. That way objects I make can work well together with objects other people have made. Enough about that.

    As for your mod - even if you do the channels - you might keep the nodes because that is probably an easy way to switch between teleporter menu mode and instant mode. I hadn't thought to do that - but was just gonna have instant-teleporters for getting around my large shipyard. So that's actually better than what I was gonna do. But with "channel" pairing you wouldn't need to connect them to each other via wire. Maybe to a terminal if you go that route.

    As for GUI, I haven't played around with that yet. I believe there is a resource you could search for within the mods here "Penguin GUI" was the name if I remember correctly. I haven't played with it... yet. Another thing on my "to do later" list.
     
  8. Merawolf

    Merawolf Scruffy Nerf-Herder

    hmm, it's not working. I installed mod, bought two teleports and teleported to the planet. After that I installed those teleports and connected them with wires, tried to interact and nothing happened, connected in a different way and nothing happened again, but after disconnection each of them worked independently as vanilla teleport
     
  9. cybersam

    cybersam Subatomic Cosmonaut

    @bk3k
    well my current code is quite simple and only works with directly connected teleporters...

    your code looks quite impressive ^_^
    as for the interface...
    hmm... i think the terminal aproach would be better...
    so the terminal would only have 1 input node that takes the terminals input to change the channels and or de-/activate the teleporter

    as for the gui...
    not sure about that pengui gui...
    hmm... i'll look in to that penguin gui...
    though i might just use the vanilla gui options as i'm using it for my colony manager

    @Merawolf
    hmm... it seems like there is a conflict with other mods...
    wierd...
    need to find out which mod is causing this...
    what mods did you install ?!... so i can through them and see how i can fix this...
     
  10. TenkoKuugen

    TenkoKuugen Scruffy Nerf-Herder

    It would be great if just using a latch would work. You know, those blue panel wire things. I doubt it does, though.
     
  11. cybersam

    cybersam Subatomic Cosmonaut

    those are what i meant by "gates" in my earlier post...
    and no currently they won't help...

    i will try to add bk3k's code and get it to work for the next update... that way it would work on greater distances without wiring it to another teleporter
    just have to figure out something to get it to change the "channel" without the gui... till i find the time to create the gui for it ^_^'
     
  12. cybersam

    cybersam Subatomic Cosmonaut

    for some progress...
    i've been playing around with the code provided by bk3k

    its still very buggy... and for some reasons it resets the connection... (as you can see in the animation)
    but here is a small video as gif animation to show a wip version on how it would work for the next update...
    the gate that is shown here is a custom one that just allow for changing channels between 1 and 5...
    it a copy of the countdown gate but without the counting down stuff and with custom functions ^_^'''
    oh yea... the gif file is a bit big... as the animation is long for a gif animation... maybe next time i'll do a propper video... xD

    [​IMG]
    (as a side note... i reset the universe and created a new char so no other mod will cause any problems during the development process)
     
  13. mastercookie

    mastercookie Existential Complex

    i think vanilla missions have very long wires. any ideas how they do this?
     
  14. TenkoKuugen

    TenkoKuugen Scruffy Nerf-Herder

    They most likely use a map editor or creation kit of some sort. Mod made missions have these super long wires too but it is basically only possible to use it like that for pre-made maps
     
  15. Merawolf

    Merawolf Scruffy Nerf-Herder

  16. TenkoKuugen

    TenkoKuugen Scruffy Nerf-Herder

    I noticed my hitbox was gone, I took no more damage from anything and energy would no longer recover and tracked it down to this mod (god knows why)
    Here is my log with (starbound.log) and my log without this mod (starbound1.log, had to rename because forum)
    It is pretty obvious something is going very wrong with this mod
     

    Attached Files:

  17. cybersam

    cybersam Subatomic Cosmonaut

    as tenko said... those were probably not made with the ingame tools ^_^'''

    uh... thats quite a large list.... xD
    well i'll have to try some out it see which is causing the conflict ^_^'


    aehm... the errors you have in the log files don't have anytrhing to do with this mod...
    hmm... need to check this out a bit more... though... could be that because i'm overwriting the player_primary scripts init function... to add a message handler...
    and another mod that was loaded before mine is doing the same thing for status stuff or something...
     
  18. TenkoKuugen

    TenkoKuugen Scruffy Nerf-Herder

    That would be it then
    So at least we already tracked it down what function is doing it and that two mods cannot exist at the same time that both do this.
    You can see what mods I load in my log. Given the sheer size of frackin universe, it could be that. I honestly have no idea though.
     
  19. cybersam

    cybersam Subatomic Cosmonaut

    yea... i'm already looking for another way to hook up to the player... ^_^'''
    otherwise i cna't really teleport the player... -.-
     
  20. TenkoKuugen

    TenkoKuugen Scruffy Nerf-Herder

    It would double the size of the mod but if it IS FU that does this, you can offer a FU-compatible version in the same package that has the FU file but edited with your code.
     

Share This Page