July 15 - Everything changed when the tile rendering system attacked

Discussion in 'Dev Blog' started by kyren, Jul 15, 2014.

  1. BrakSampson

    BrakSampson Big Damn Hero

    Wow. A 30% decrease in cpu usage is pretty impressive. I've never had many performance issues with SB with my system, other than frame drops from time to time in busier areas. But for folks that experience a lot of lag, this could really help out.
     
  2. Brassqund

    Brassqund Hard-To-Destroy Reptile

    A optimization of the code?
    Good news!
    I know we can't judge from the nightly but the last time I had play one I was more laggy then before...
    so, that's a good news!

    Keep working hard.
    We all wait impatiently the next patch.
     
  3. vimio

    vimio Big Damn Hero

    when will the new rendering system get pushed into the "nightly" build?
     
  4. Tana64

    Tana64 Sandwich Man

    Sounds brilliant! My favourite kind of updates are performance improvements. And, uh, new vegetables.

    Keep up the good work, guys; I'm really looking forward to playing this on completion - so much has changed since I last played a few months ago; the changes are going to hit me like a brick wall.
     
  5. Percival

    Percival Phantasmal Quasar

    Hopefully this means I can get within a mile of an Apex facility without lagging to absolute hell.
     
  6. Streiben

    Streiben Void-Bound Voyager

    Cake for you, human being!
    I tell my horseprincess about your success.
     
  7. Rainbow Dash

    Rainbow Dash Oxygen Tank

    i hope this means towns and buildings dont lag like crasy anymore =D
     
  8. Reade

    Reade Void-Bound Voyager

    As a builder, I'm more hyped for this than a good deal of the other changes.

    That's not to say I'm not hyped for the other stuff, like outposts and big birds and such, but, still. Finally, I might probably be able to use lots of cool looking things without those cool looking things causing my framerate to drop to a crawl! Even better, it sounds like it's happening far earlier than I thought it would! So, yay! And stuff!
     
  9. Yamishi

    Yamishi Void-Bound Voyager

    Yeah, I used to experience quite a bit of lag myself, even on a really good computer. Not sure if the BF ever really did though, I never really paid attention to his screen, too busy paying attention to mine. :p
    This is awesome though, keep up the great work guys! :catface:
     
  10. DoctorShaggy

    DoctorShaggy Void-Bound Voyager

    "i see you, Jake Sully"

    Oh wait, wrong Avatar.
     
    PabloM likes this.
  11. Bughunter

    Bughunter Spaceman Spiff

    Yay! I can actually play starbound on my laptop without it overheating to a pile of slag(should prolly get a new fan for it :V)! I hate having to play on the desktop, as I still find their keyboards clunky.

    When does this update actually come out?
     
  12. Yamishi

    Yamishi Void-Bound Voyager

    @Bughunter:


    Edit: So hopefully they'll have it up soon. :3

    Edit again: Somehow that ended up in quotes. D:
     
    Last edited: Jul 16, 2014
  13. weirdee

    weirdee Big Damn Hero

    Does this fix the whole "can't place objects in both foreground and background in the same visual location" issue or is that something that will curse us forever?
     
  14. R_C_A^

    R_C_A^ Pangalactic Porcupine

    ohhhhhh, happy happy happy <3
     
  15. The | Suit

    The | Suit Agent S. Forum Moderator

    Sounds like a solid optimization feature
     
  16. The Thing

    The Thing Existential Complex

    When the Tile Rendering System attacked, Kyren struck back, squashed it and got it back in line. :up:
     
  17. Ado

    Ado Hard-To-Destroy Reptile

    Great news!I was waiting for optimization this whole time.I hope you patch it up and release the update soon.:up:
     
  18. Kawa

    Kawa Tiy's Beard

    Today's diffs! I would've generated and posted these earlier but my internet was being ass and prevented me from downloading the update.
    Code:
    FILES
    -----
    celestial\system\terrestrial\dynamics\outpost\0.png
    celestial\system\terrestrial\dynamics\outpost\1.png
    celestial\system\terrestrial\dynamics\outpost\2.png
    interface\ai\ai.config
    monsters\capturepod.lua
    monsters\flocking.lua
    monsters\boss\missile\behavior.lua
    monsters\boss\penguinminiufo\behavior.lua
    monsters\boss\penguinufo\behavior.lua
    monsters\flying\wanderstate.lua
    monsters\ground\groundmonster.lua
    monsters\ground\herdfleestate.lua
    monsters\ground\socializestate.lua
    monsters\ground\largequadruped\largequadruped.monstertype
    monsters\ground\smallbiped\smallbiped.monstertype
    monsters\ground\smallquadruped\smallquadruped.monstertype
    monsters\swimming\investigatestate.lua
    monsters\unique\heckblob\behavior.lua
    monsters\unique\po\behavior.lua
    monsters\unique\repairbot\behavior.lua
    monsters\unique\tentaclecomet\behavior.lua
    npcs\chatstate.lua
    npcs\fleestate.lua
    npcs\main.lua
    npcs\meleeattackstate.lua
    npcs\rangedattackstate.lua
    npcs\wanderstate.lua
    npcs\workstate.lua
    npcs\guard\houndstate.lua
    objects\apex\securitycamera\securitycamera.lua
    objects\apex\turret\turret.lua
    objects\floran\floranlight\floranlight.object
    objects\floran\floranlight\floranlightback1.frames
    objects\floran\floranlight\floranlightback2.frames
    objects\floran\floranlight\floranlightceiling1.frames
    objects\floran\floranlight\floranlightceiling2.frames
    objects\floran\floranlight\floranlightleft1.frames
    objects\floran\floranlight\floranlightleft2.frames
    objects\floran\floranlight\floranlightright1.frames
    objects\floran\floranlight\floranlightright2.frames
    objects\generic\fluorescentlight\fluorescentlight.frames
    objects\generic\fluorescentlight\fluorescentlight.object
    objects\generic\fluorescentlight\fluorescentlight.png
    objects\generic\fluorescentlight\fluorescentlightbottom.frames
    objects\generic\fluorescentlight\fluorescentlightleft.frames
    objects\generic\fluorescentlight\fluorescentlightright.frames
    objects\generic\fluorescentlight\fluorescentlighttop.frames
    [NEW] objects\human\miningchest\miningchest.png
    [NEW] objects\human\miningchest\miningchesticon.png
    objects\human\miningcrusher\miningcrushericon.png
    objects\ship\apexshiplight\apexshiplight.frames
    objects\ship\apexshiplight\apexshiplight.object
    objects\wired\landmine\landmine.lua
    objects\wired\standingturret\standingturret.lua
    scripts\entityproxy.lua
    
    DIFFS
    -----
    interface\ai\ai.config
    224c224
    <            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the planet below.",
    ---
    >            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the core of the planet below.",
    231c231
    <            "text" : "We've repaired the ships thrusters. Travel within this system is now available. Next we need to fix the ship's FTL drive.",
    ---
    >            "text" : "We've repaired the ships thrusters. Travel within this system is now available, did you investigate that gate yet? Next we need to fix the ship's FTL drive.",
    251c251
    <            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the planet below.",
    ---
    >            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the core of the planet below.",
    258c258
    <            "text" : "We've repaired the ships thrusters. Travel within this system is now available. Next we need to fix the ship's FTL drive.",
    ---
    >            "text" : "We've repaired the ships thrusters. Travel within this system is now available, did you investigate that gate yet? Next we need to fix the ship's FTL drive.",
    278c278
    <            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the planet below.",
    ---
    >            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the core of the planet below.",
    285c285
    <            "text" : "We've repaired the ships thrusters. Travel within this system is now available. Next we need to fix the ship's FTL drive.",
    ---
    >            "text" : "We've repaired the ships thrusters. Travel within this system is now available, did you investigate that gate yet? Next we need to fix the ship's FTL drive.",
    305c305
    <            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the planet below.",
    ---
    >            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the core of the planet below.",
    312c312
    <            "text" : "We've repaired the ships thrusters. Travel within this system is now available. Next we need to fix the ship's FTL drive.",
    ---
    >            "text" : "We've repaired the ships thrusters. Travel within this system is now available, did you investigate that gate yet? Next we need to fix the ship's FTL drive.",
    332c332
    <            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the planet below.",
    ---
    >            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the core of the planet below.",
    339c339
    <            "text" : "We've repaired the ships thrusters. Travel within this system is now available. Next we need to fix the ship's FTL drive.",
    ---
    >            "text" : "We've repaired the ships thrusters. Travel within this system is now available, did you investigate that gate yet? Next we need to fix the ship's FTL drive.",
    359c359
    <            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the planet below.",
    ---
    >            "text" : "The thrusters and FTL drive are offline. I can repair the thrusters with the ships auto repair module but I'll need pixels and core fragments from the core of the planet below.",
    366c366
    <            "text" : "We've repaired the ships thrusters. Travel within this system is now available. Next we need to fix the ship's FTL drive.",
    ---
    >            "text" : "We've repaired the ships thrusters. Travel within this system is now available, did you investigate that gate yet? Next we need to fix the ship's FTL drive.",
    
    monsters\capturepod.lua
    131c131
    <    local playerIds = world.playerQuery(entity.position(), 50)
    ---
    >    local playerIds = world.entityQuery(entity.position(), 50, {includedTypes={"player"}})
    
    monsters\flocking.lua
    23c23
    <  for i, entityId in ipairs(world.monsterQuery(flockRegionMin, flockRegionMax)) do
    ---
    >  for i, entityId in ipairs(world.entityQuery(flockRegionMin, flockRegionMax, {includedTypes={"monster"}})) do
    
    monsters\boss\missile\behavior.lua
    19c19
    <  local nearbyPlayers = world.playerQuery(entity.position(), 50)
    ---
    >  local nearbyPlayers = world.entityQuery(entity.position(), 50, {includedTypes={"player"}})
    
    monsters\boss\penguinminiufo\behavior.lua
    53c53
    <  for i, entityId in ipairs(world.monsterQuery(regionMin, regionMax, { callScript = "isPenguinMaster" })) do
    ---
    >  for i, entityId in ipairs(world.entityQuery(regionMin, regionMax, { callScript = "isPenguinMaster", includedTypes = {"monster"} })) do
    
    monsters\boss\penguinufo\behavior.lua
    99c99
    <  return world.monsterQuery(min, max, { callScript = "isPenguinReinforcement" })
    ---
    >  return world.entityQuery(min, max, { callScript = "isPenguinReinforcement", includedTypes = {"monster"} })
    
    monsters\flying\wanderstate.lua
    77c77
    <  local entityIds = world.monsterQuery(entity.position(), 3.0, { callScript = "isFlyer" })
    ---
    >  local entityIds = world.entityQuery(entity.position(), 3.0, { callScript = "isFlyer", includedTypes = {"monster"} })
    
    monsters\ground\groundmonster.lua
    201c201
    <    world.monsterQuery(
    ---
    >    world.entityQuery(
    204a205
    >        includedTypes = {"monster"},
    206d206
    <        inSightOf = entityId,
    380c380
    <  local entityIds = world.monsterQuery(self.position, 0.5, { withoutEntityId = entity.id(), order = "nearest" })
    ---
    >  local entityIds = world.entityQuery(self.position, 0.5, { includedTypes = {"monster"}, withoutEntityId = entity.id(), order = "nearest" })
    
    monsters\ground\herdfleestate.lua
    42c42,43
    <    local familyMemberEntityIds = world.monsterQuery(self.position, herdFleeState.notificationRadius, {
    ---
    >    local familyMemberEntityIds = world.entityQuery(self.position, herdFleeState.notificationRadius, {
    >      includedTypes = {"monster"},
    44d44
    <      inSightOf = entityId,
    
    monsters\ground\socializestate.lua
    95c95
    <  local entityIds = world.monsterQuery(min, max, { withoutEntityId = entity.id(), callScript = "canSocialize" })
    ---
    >  local entityIds = world.entityQuery(min, max, { includedTypes = {"monster"}, withoutEntityId = entity.id(), callScript = "canSocialize" })
    
    monsters\ground\largequadruped\largequadruped.monstertype
    23,24d22
    <      "/monsters/ground/grazeState.lua",
    <      "/monsters/ground/herdFleeState.lua",
    
    monsters\ground\smallbiped\smallbiped.monstertype
    109,120d108
    <      },
    <      {
    <        "baseSkills" : [ "pounceAttack" ],
    <        "specialSkills" : [  ]
    <      },
    <      {
    <        "baseSkills" : [ "meleeAttack" ],
    <        "specialSkills" : [  ]
    <      },
    <      {
    <        "baseSkills" : [ "meleeAttack" ],
    <        "specialSkills" : [  ]
    
    monsters\ground\smallquadruped\smallquadruped.monstertype
    25,26d24
    <      "/monsters/ground/grazeState.lua",
    <      "/monsters/ground/herdFleeState.lua",
    112,123d109
    <        "baseSkills" : [ "rushAttack" ],
    <        "specialSkills" : [  ]
    <      },
    <      {
    <        "baseSkills" : [ "pounceAttack" ],
    <        "specialSkills" : [  ]
    <      },
    <      {
    <        "baseSkills" : [ "meleeAttack" ],
    <        "specialSkills" : [  ]
    <      },
    <      {
    125c111
    <        "specialSkills" : [  ]
    ---
    >        "specialSkills" : [ "chargeAttack" ]
    
    monsters\swimming\investigatestate.lua
    4,10c4,12
    <  local targetIds = world.itemDropQuery(entity.position(), entity.configParameter("investigateTriggerDistance"), { inSightOf = entity.id(), order = "nearest" })
    <  if #targetIds > 0 then
    <    return {
    <      target = targetIds[1],
    <      maxDistance = entity.randomizeParameterRange("investigateLoseInterestRange"),
    <      timer = entity.randomizeParameterRange("investigateTimeRange")
    <    }
    ---
    >  local targetIds = world.entityQuery(entity.position(), entity.configParameter("investigateTriggerDistance"), { includedTypes = {"itemDrop"}, inSightOf = entity.id(), order = "nearest" })
    >  for k,targetId in pairs(targetIds) do
    >    if entity.entityInSight(targetId) then
    >      return {
    >        target = targetId,
    >        maxDistance = entity.randomizeParameterRange("investigateLoseInterestRange"),
    >        timer = entity.randomizeParameterRange("investigateTimeRange")
    >      }
    >    end
    
    monsters\unique\heckblob\behavior.lua
    170c170
    <    local playerIds = world.playerQuery(entity.position(), 50)
    ---
    >    local playerIds = world.entityQuery(entity.position(), 50, {includedTypes = {"player"}})
    
    monsters\unique\po\behavior.lua
    192c192
    <    local playerIds = world.playerQuery(entity.position(), 50)
    ---
    >    local playerIds = world.entityQuery(entity.position(), 50, {includedTypes = {"player"}})
    
    monsters\unique\repairbot\behavior.lua
    147c147
    <  local entityIds = world.monsterQuery(entity.position(), entity.configParameter("repairResponseMaxDistance"))
    ---
    >  local entityIds = world.entityQuery(entity.position(), entity.configParameter("repairResponseMaxDistance"), {includedTypes = {"monster"}})
    
    monsters\unique\tentaclecomet\behavior.lua
    84c84
    <    notAnObject = true,
    ---
    >    includedTypes = {"creature"},
    
    npcs\chatstate.lua
    5c5
    <  local chatTargetIds = world.npcLineQuery(startPoint, endPoint)
    ---
    >  local chatTargetIds = world.entityLineQuery(startPoint, endPoint, {includedTypes = {"npc"}})
    
    npcs\fleestate.lua
    82c82
    <        local attackerIds = world.npcQuery(entity.position(), 25.0, { callScript = "isAttacking" })
    ---
    >        local attackerIds = world.entityQuery(entity.position(), 25.0, { includedTypes = {"npc"}, callScript = "isAttacking" })
    
    npcs\main.lua
    204c204
    <  local attackerIds = world.npcQuery(position, radius, { callScript = "attackTargetId", callScriptResult = targetId })
    ---
    >  local attackerIds = world.entityQuery(position, radius, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = targetId })
    271,272c271,274
    <  for _, entityId in pairs(world.npcQuery(entity.position(), radius, { inSightOf = selfId, withoutEntityId = selfId })) do
    <    notification.handled = world.callScriptedEntity(entityId, "receiveNotification", notification) or notification.handled
    ---
    >  for _, entityId in pairs(world.entityQuery(entity.position(), radius, { includedTypes = {"npc"}, withoutEntityId = selfId })) do
    >    if entity.entityInSight(entityId) then
    >      notification.handled = world.callScriptedEntity(entityId, "receiveNotification", notification) or notification.handled
    >    end
    371c373
    <  local playerIds = world.playerQuery(entity.position(), self.noticePlayersRadius, { inSightOf = entity.id() })
    ---
    >  local playerIds = world.entityQuery(entity.position(), self.noticePlayersRadius, { includedTypes = {"player"} })
    373,382c375,386
    <    if storage.noticedPlayerIds[playerId] == nil then
    <      if not changedState then
    <        changedState = self.state.pickState({ noticedPlayerId = playerId })
    <
    <        if not changedState and shouldAttackOnSight(playerId) then
    <          changedState = attack(playerId)
    <        end
    <
    <        if changedState then
    <          storage.noticedPlayerIds[playerId] = time + self.forgetPlayerTime
    ---
    >    if entity.entityInSight(playerId) then
    >      if storage.noticedPlayerIds[playerId] == nil then
    >        if not changedState then
    >          changedState = self.state.pickState({ noticedPlayerId = playerId })
    >
    >          if not changedState and shouldAttackOnSight(playerId) then
    >            changedState = attack(playerId)
    >          end
    >
    >          if changedState then
    >            storage.noticedPlayerIds[playerId] = time + self.forgetPlayerTime
    >          end
    383a388,389
    >      else
    >        storage.noticedPlayerIds[playerId] = time + self.forgetPlayerTime
    385,386d390
    <    else
    <      storage.noticedPlayerIds[playerId] = time + self.forgetPlayerTime
    504c508
    <  local closedDoorIds = world.objectLineQuery(position, { position[1] + util.clamp(delta[1], -2, 2), position[2] }, { callScript = "hasCapability", callScriptArgs = { "closedDoor" } })
    ---
    >  local closedDoorIds = world.entityLineQuery(position, { position[1] + util.clamp(delta[1], -2, 2), position[2] }, { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "closedDoor" } })
    
    npcs\meleeattackstate.lua
    196c196
    <  local npcIds = world.npcLineQuery(stateData.targetPosition, position, { callScript = "attackTargetId", callScriptResult = stateData.targetId })
    ---
    >  local npcIds = world.entityLineQuery(stateData.targetPosition, position, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = stateData.targetId })
    230c230
    <  local npcIds = world.npcLineQuery(stateData.targetPosition, otherSidePosition, { callScript = "attackTargetId", callScriptResult = stateData.targetId })
    ---
    >  local npcIds = world.entityLineQuery(stateData.targetPosition, otherSidePosition, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = stateData.targetId })
    
    npcs\rangedattackstate.lua
    158c158
    <  local entityIds = world.npcLineQuery(position, stateData.targetPosition, { callScript = "attackTargetId", callScriptResult = stateData.targetId })
    ---
    >  local entityIds = world.entityLineQuery(position, stateData.targetPosition, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = stateData.targetId })
    
    npcs\wanderstate.lua
    57c57
    <        local doorIds = world.objectLineQuery(position, lookaheadPosition, { callScript = "hasCapability", callScriptArgs = { "door" } })
    ---
    >        local doorIds = world.entityLineQuery(position, lookaheadPosition, { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "door" } })
    147c147,148
    <  local doorIds = world.objectQuery(basePosition, entity.configParameter("wander.indoorSearchRadius", wanderState.defaultIndoorSearchRadius), {
    ---
    >  local doorIds = world.entityQuery(basePosition, entity.configParameter("wander.indoorSearchRadius", wanderState.defaultIndoorSearchRadius), {
    >    includedTypes = {"object"},
    172c173,174
    <  local entityIds = world.objectQuery(position, entity.configParameter("wander.indoorSearchRadius", wanderState.defaultIndoorSearchRadius), {
    ---
    >  local entityIds = world.entityQuery(position, entity.configParameter("wander.indoorSearchRadius", wanderState.defaultIndoorSearchRadius), {
    >    includedTypes = {"object"},
    
    npcs\workstate.lua
    123c123
    <    local objectIds = world.objectQuery(position, entity.configParameter("work.searchDistance"), { name = "anvil" })
    ---
    >    local objectIds = world.entityQuery(position, entity.configParameter("work.searchDistance"), { includedTypes = {"object"}, name = "anvil" })
    
    npcs\guard\houndstate.lua
    17,18c17,18
    <  local hounderIds = world.npcQuery(targetPosition, houndState.hounderCheckRadius, {
    <    callScript = "stateName", callScriptResult = "houndState"
    ---
    >  local hounderIds = world.entityQuery(targetPosition, houndState.hounderCheckRadius, {
    >    includedTypes = {"npc"}, callScript = "stateName", callScriptResult = "houndState"
    
    objects\apex\securitycamera\securitycamera.lua
    133c133
    <  local entityIds = world.entityLineQuery(startPosition, endPosition, { validTargetOf = selfId })
    ---
    >  local entityIds = world.entityLineQuery(startPosition, endPosition, { includedTypes = {"creature"}, withoutEntityId = selfId })
    135c135
    <    if entityId ~= selfId then
    ---
    >    if entity.isValidTarget(entityId) then
    189c189
    <  local entityIds = world.entityLineQuery(startPosition, endPosition)
    ---
    >  local entityIds = world.entityLineQuery(startPosition, endPosition, {includedTypes = {"creature"}})
    
    objects\apex\turret\turret.lua
    147c147
    <  local entityIds = world.entityLineQuery(startPosition, endPosition, { validTargetOf = selfId })
    ---
    >  local entityIds = world.entityLineQuery(startPosition, endPosition, { includedTypes = {"creature"}, withoutEntityId = selfId })
    223c223
    <  local entityIds = world.entityLineQuery(startPosition, endPosition)
    ---
    >  local entityIds = world.entityLineQuery(startPosition, endPosition, {includedTypes = {"creature"}})
    
    objects\floran\floranlight\floranlight.object
    22c22
    <      "imageLayers" : [ { "image" : "floranlightback1.png:<color>.<frame>", "fullbright" : true }, { "image" : "floranlightback2.png:<color>.<frame>" } ],
    ---
    >      "image" : "floranlightback1.png:<color>.<frame>",
    29c29,35
    <      "anchors" : [ "background" ]
    ---
    >      "anchors" : [ "background" ],
    >    
    >      "animationParts" : {
    >        "bg" : "floranlightback1.png",
    >        "fg" : "floranlightback2.png"
    >      },
    >      "animationPosition" : [-8, 0]
    32c38
    <      "imageLayers" : [ { "image" : "floranlightback1.png:<color>.<frame>", "fullbright" : true }, { "image" : "floranlightback2.png:<color>.<frame>" } ],
    ---
    >      "image" : "floranlightback1.png:<color>.<frame>",
    38c44,50
    <      "anchors" : [ "background" ]
    ---
    >      "anchors" : [ "background" ],
    >    
    >      "animationParts" : {
    >        "bg" : "floranlightback1.png",
    >        "fg" : "floranlightback2.png"
    >      },
    >      "animationPosition" : [0, 0]
    41c53
    <      "imageLayers" : [ { "image" : "floranlightceiling1.png:<color>.<frame>", "fullbright" : true }, { "image" : "floranlightceiling2.png:<color>.<frame>" } ],
    ---
    >      "image" : "floranlightceiling1.png:<color>.<frame>",
    48c60,66
    <      "anchors" : [ "top" ]
    ---
    >      "anchors" : [ "top" ],
    >    
    >      "animationParts" : {
    >        "bg" : "floranlightceiling1.png",
    >        "fg" : "floranlightceiling2.png"
    >      },
    >      "animationPosition" : [-8, 0]
    51c69
    <      "imageLayers" : [ { "image" : "floranlightceiling1.png:<color>.<frame>", "fullbright" : true }, { "image" : "floranlightceiling2.png:<color>.<frame>" } ],
    ---
    >      "image" : "floranlightceiling1.png:<color>.<frame>",
    57c75,81
    <      "anchors" : [ "top" ]
    ---
    >      "anchors" : [ "top" ],
    >    
    >      "animationParts" : {
    >        "bg" : "floranlightceiling1.png",
    >        "fg" : "floranlightceiling2.png"
    >      },
    >      "animationPosition" : [0, 0]
    60c84
    <      "imageLayers" : [ { "image" : "floranlightleft1.png:<color>.<frame>", "fullbright" : true }, { "image" : "floranlightleft2.png:<color>.<frame>" } ],
    ---
    >      "image" : "floranlightleft1.png:<color>.<frame>",
    66c90,96
    <      "anchors" : [ "left" ]
    ---
    >      "anchors" : [ "left" ],
    >    
    >      "animationParts" : {
    >        "bg" : "floranlightright1.png",
    >        "fg" : "floranlightright2.png"
    >      },
    >      "animationPosition" : [0, 0]
    69c99
    <      "imageLayers" : [ { "image" : "floranlightright1.png:<color>.<frame>", "fullbright" : true }, { "image" : "floranlightright2.png:<color>.<frame>" } ],
    ---
    >      "image" : "floranlightright1.png:<color>.<frame>",
    71,72c101
    <      "frames" : 1,
    <      "animationCycle" : 0.3,
    ---
    >    
    75c104,110
    <      "anchors" : [ "right" ]
    ---
    >      "anchors" : [ "right" ],
    >    
    >      "animationParts" : {
    >        "bg" : "floranlightright1.png",
    >        "fg" : "floranlightright2.png"
    >      },
    >      "animationPosition" : [0, 0]
    77c112,121
    <  ]
    ---
    >  ],
    >
    >  "animation" : "/objects/wired/light/lighttogglebgfullbright.animation",
    >
    >  "scripts" : [ "/objects/wired/light/light.lua" ],
    >  "scriptDelta" : 60,
    >
    >  "inboundNodes" : [ [0, 0] ],
    >
    >  "interactive" : false
    
    objects\floran\floranlight\floranlightback1.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\floran\floranlight\floranlightback2.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\floran\floranlight\floranlightceiling1.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\floran\floranlight\floranlightceiling2.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\floran\floranlight\floranlightleft1.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\floran\floranlight\floranlightleft2.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\floran\floranlight\floranlightright1.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\floran\floranlight\floranlightright2.frames
    7c7
    <      [ "default.0", "default.off" ]
    ---
    >      [ "default.1", "default.off" ]
    12c12,13
    <    "default.default" : "default.0"
    ---
    >    "default.default" : "default.off",
    >    "default.on" : "default.1"
    
    objects\generic\fluorescentlight\fluorescentlight.frames
    7,15c7,15
    <      [ "default.0", "default.off" ],
    <      [ "red.0", "red.off" ],
    <      [ "blue.0", "blue.off" ],
    <      [ "green.0", "green.off" ],
    <      [ "yellow.0", "yellow.off" ],
    <      [ "orange.0", "orange.off" ],
    <      [ "pink.0", "pink.off" ],
    <      [ "black.0", "black.off" ],
    <      [ "white.0", "white.off" ]
    ---
    >      [ "default.on", "default.off" ],
    >      [ "red.on", "red.off" ],
    >      [ "blue.on", "blue.off" ],
    >      [ "green.on", "green.off" ],
    >      [ "yellow.on", "yellow.off" ],
    >      [ "orange.on", "orange.off" ],
    >      [ "pink.on", "pink.off" ],
    >      [ "black.on", "black.off" ],
    >      [ "white.on", "white.off" ]
    20,28c20,28
    <    "default.default" : "default.off",
    <    "red.default" : "red.off",
    <    "blue.default" : "blue.off",
    <    "green.default" : "green.off",
    <    "yellow.default" : "yellow.off",
    <    "orange.default" : "orange.off",
    <    "pink.default" : "pink.off",
    <    "black.default" : "black.off",
    <    "white.default" : "white.off"
    ---
    >    "default.default" : "default.on",
    >    "red.default" : "red.on",
    >    "blue.default" : "blue.on",
    >    "green.default" : "green.on",
    >    "yellow.default" : "yellow.on",
    >    "orange.default" : "orange.on",
    >    "pink.default" : "pink.on",
    >    "black.default" : "black.on",
    >    "white.default" : "white.on"
    
    objects\generic\fluorescentlight\fluorescentlight.object
    20a21
    >  "fullbright" : true,
    27,28c28,33
    <      "frames" : 1,
    <      "animationCycle" : 0.3,
    ---
    >    
    >      "animationParts" : {
    >        "light" : "fluorescentlighttop.png"
    >      },
    >      "animationPosition" : [-8, 4],
    >      "direction" : "right",
    32d36
    <
    38,39c42,47
    <      "frames" : 1,
    <      "animationCycle" : 0.3,
    ---
    >    
    >      "animationParts" : {
    >        "light" : "fluorescentlightbottom.png"
    >      },
    >      "animationPosition" : [-8, 0],
    >      "direction" : "right",
    43d50
    <
    49,51c56,62
    <      "frames" : 1,
    <      "animationCycle" : 0.3,
    <
    ---
    >    
    >      "animationParts" : {
    >        "light" : "fluorescentlightleft.png"
    >      },
    >      "animationPosition" : [0, -8],
    >      "direction" : "right",
    >    
    54a66,93
    >  
    >    {
    >      "image" : "fluorescentlightleft.png:<color>.<frame>",
    >      "imagePosition" : [0, -8],
    >    
    >      "animationParts" : {
    >        "light" : "fluorescentlightright.png"
    >      },
    >      "animationPosition" : [-4, -8],
    >      "direction" : "left",
    >    
    >      "spaceScan" : 0.1,
    >      "anchors" : [ "left" ]
    >    },
    >  
    >    {
    >      "image" : "fluorescentlightright.png:<color>.<frame>",
    >      "imagePosition" : [4, -8],
    >    
    >      "animationParts" : {
    >        "light" : "fluorescentlightleft.png"
    >      },
    >      "animationPosition" : [0, -8],
    >      "direction" : "left",
    >
    >      "spaceScan" : 0.1,
    >      "anchors" : [ "right" ]
    >    },
    59,60c98,103
    <      "frames" : 1,
    <      "animationCycle" : 0.3,
    ---
    >    
    >      "animationParts" : {
    >        "light" : "fluorescentlightright.png"
    >      },
    >      "animationPosition" : [4, -8],
    >      "direction" : "right",
    65c108
    <
    ---
    >  
    68,70c111,117
    <      "imagePosition" : [-8, 4],
    <      "frames" : 1,
    <      "animationCycle" : 0.3,
    ---
    >      "imagePosition" : [-8, 1],
    >    
    >      "animationParts" : {
    >        "light" : "fluorescentlight.png"
    >      },
    >      "animationPosition" : [-8, 1],
    >      "direction" : "right",
    74d120
    <
    78c124,133
    <  "soundEffect" : "/sfx/objects/fluorescent_light_quiet.wav"
    ---
    >  "soundEffect" : "/sfx/objects/fluorescent_light_quiet.wav",
    >
    >  "animation" : "/objects/wired/light/lighttoggle.animation",
    >
    >  "scripts" : [ "/objects/wired/light/light.lua" ],
    >  "scriptDelta" : 60,
    >
    >  "interactive" : false,
    >
    >  "inboundNodes" : [ [0, 0] ]
    
    objects\generic\fluorescentlight\fluorescentlightbottom.frames
    7,15c7,15
    <      [ "default.0", "default.off" ],
    <      [ "red.0", "red.off" ],
    <      [ "blue.0", "blue.off" ],
    <      [ "green.0", "green.off" ],
    <      [ "yellow.0", "yellow.off" ],
    <      [ "orange.0", "orange.off" ],
    <      [ "pink.0", "pink.off" ],
    <      [ "black.0", "black.off" ],
    <      [ "white.0", "white.off" ]
    ---
    >      [ "default.on", "default.off" ],
    >      [ "red.on", "red.off" ],
    >      [ "blue.on", "blue.off" ],
    >      [ "green.on", "green.off" ],
    >      [ "yellow.on", "yellow.off" ],
    >      [ "orange.on", "orange.off" ],
    >      [ "pink.on", "pink.off" ],
    >      [ "black.on", "black.off" ],
    >      [ "white.on", "white.off" ]
    20,28c20,28
    <    "default.default" : "default.off",
    <    "red.default" : "red.off",
    <    "blue.default" : "blue.off",
    <    "green.default" : "green.off",
    <    "yellow.default" : "yellow.off",
    <    "orange.default" : "orange.off",
    <    "pink.default" : "pink.off",
    <    "black.default" : "black.off",
    <    "white.default" : "white.off"
    ---
    >    "default.default" : "default.on",
    >    "red.default" : "red.on",
    >    "blue.default" : "blue.on",
    >    "green.default" : "green.on",
    >    "yellow.default" : "yellow.on",
    >    "orange.default" : "orange.on",
    >    "pink.default" : "pink.on",
    >    "black.default" : "black.on",
    >    "white.default" : "white.on"
    
    objects\generic\fluorescentlight\fluorescentlightleft.frames
    7,15c7,15
    <      [ "default.0", "default.off" ],
    <      [ "red.0", "red.off" ],
    <      [ "blue.0", "blue.off" ],
    <      [ "green.0", "green.off" ],
    <      [ "yellow.0", "yellow.off" ],
    <      [ "orange.0", "orange.off" ],
    <      [ "pink.0", "pink.off" ],
    <      [ "black.0", "black.off" ],
    <      [ "white.0", "white.off" ]
    ---
    >      [ "default.on", "default.off" ],
    >      [ "red.on", "red.off" ],
    >      [ "blue.on", "blue.off" ],
    >      [ "green.on", "green.off" ],
    >      [ "yellow.on", "yellow.off" ],
    >      [ "orange.on", "orange.off" ],
    >      [ "pink.on", "pink.off" ],
    >      [ "black.on", "black.off" ],
    >      [ "white.on", "white.off" ]
    20,28c20,28
    <    "default.default" : "default.off",
    <    "red.default" : "red.off",
    <    "blue.default" : "blue.off",
    <    "green.default" : "green.off",
    <    "yellow.default" : "yellow.off",
    <    "orange.default" : "orange.off",
    <    "pink.default" : "pink.off",
    <    "black.default" : "black.off",
    <    "white.default" : "white.off"
    ---
    >    "default.default" : "default.on",
    >    "red.default" : "red.on",
    >    "blue.default" : "blue.on",
    >    "green.default" : "green.on",
    >    "yellow.default" : "yellow.on",
    >    "orange.default" : "orange.on",
    >    "pink.default" : "pink.on",
    >    "black.default" : "black.on",
    >    "white.default" : "white.on"
    
    objects\generic\fluorescentlight\fluorescentlightright.frames
    7,15c7,15
    <      [ "default.0", "default.off" ],
    <      [ "red.0", "red.off" ],
    <      [ "blue.0", "blue.off" ],
    <      [ "green.0", "green.off" ],
    <      [ "yellow.0", "yellow.off" ],
    <      [ "orange.0", "orange.off" ],
    <      [ "pink.0", "pink.off" ],
    <      [ "black.0", "black.off" ],
    <      [ "white.0", "white.off" ]
    ---
    >      [ "default.on", "default.off" ],
    >      [ "red.on", "red.off" ],
    >      [ "blue.on", "blue.off" ],
    >      [ "green.on", "green.off" ],
    >      [ "yellow.on", "yellow.off" ],
    >      [ "orange.on", "orange.off" ],
    >      [ "pink.on", "pink.off" ],
    >      [ "black.on", "black.off" ],
    >      [ "white.on", "white.off" ]
    20,28c20,28
    <    "default.default" : "default.off",
    <    "red.default" : "red.off",
    <    "blue.default" : "blue.off",
    <    "green.default" : "green.off",
    <    "yellow.default" : "yellow.off",
    <    "orange.default" : "orange.off",
    <    "pink.default" : "pink.off",
    <    "black.default" : "black.off",
    <    "white.default" : "white.off"
    ---
    >    "default.default" : "default.on",
    >    "red.default" : "red.on",
    >    "blue.default" : "blue.on",
    >    "green.default" : "green.on",
    >    "yellow.default" : "yellow.on",
    >    "orange.default" : "orange.on",
    >    "pink.default" : "pink.on",
    >    "black.default" : "black.on",
    >    "white.default" : "white.on"
    
    objects\generic\fluorescentlight\fluorescentlighttop.frames
    7,15c7,15
    <      [ "default.0", "default.off" ],
    <      [ "red.0", "red.off" ],
    <      [ "blue.0", "blue.off" ],
    <      [ "green.0", "green.off" ],
    <      [ "yellow.0", "yellow.off" ],
    <      [ "orange.0", "orange.off" ],
    <      [ "pink.0", "pink.off" ],
    <      [ "black.0", "black.off" ],
    <      [ "white.0", "white.off" ]
    ---
    >      [ "default.on", "default.off" ],
    >      [ "red.on", "red.off" ],
    >      [ "blue.on", "blue.off" ],
    >      [ "green.on", "green.off" ],
    >      [ "yellow.on", "yellow.off" ],
    >      [ "orange.on", "orange.off" ],
    >      [ "pink.on", "pink.off" ],
    >      [ "black.on", "black.off" ],
    >      [ "white.on", "white.off" ]
    20,28c20,28
    <    "default.default" : "default.off",
    <    "red.default" : "red.off",
    <    "blue.default" : "blue.off",
    <    "green.default" : "green.off",
    <    "yellow.default" : "yellow.off",
    <    "orange.default" : "orange.off",
    <    "pink.default" : "pink.off",
    <    "black.default" : "black.off",
    <    "white.default" : "white.off"
    ---
    >    "default.default" : "default.on",
    >    "red.default" : "red.on",
    >    "blue.default" : "blue.on",
    >    "green.default" : "green.on",
    >    "yellow.default" : "yellow.on",
    >    "orange.default" : "orange.on",
    >    "pink.default" : "pink.on",
    >    "black.default" : "black.on",
    >    "white.default" : "white.on"
    
    objects\ship\apexshiplight\apexshiplight.frames
    2d1
    <
    6c5,7
    <    "names" : [ [ "0", "off" ] ]
    ---
    >    "names" : [
    >      [ "default.on", "default.off" ]
    >    ]
    10c11
    <    "default" : "off"
    ---
    >    "default.default" : "default.on"
    12d12
    <
    
    objects\ship\apexshiplight\apexshiplight.object
    24,25c24,25
    <    {
    <      "image" : "apexshiplight.png:<frame>",
    ---
    >    {
    >      "image" : "apexshiplight.png:<color>.<frame>",
    27c27,33
    <      "animationCycle" : 0.5,
    ---
    >    
    >      "animationParts" : {
    >        "light" : "apexshiplight.png"
    >      },
    >      "animationPosition" : [-8, 0],
    >    
    >      "direction" : "right",
    33c39,51
    <  ]
    ---
    >  ],
    >
    >  "soundEffect" : "/sfx/objects/fluorescent_light_quiet.wav",
    >
    >  "animation" : "/objects/wired/light/lighttoggle.animation",
    >
    >  "scripts" : [ "/objects/wired/light/light.lua" ],
    >  "scriptDelta" : 60,
    >
    >  "interactive" : false,
    >
    >  "inboundNodes" : [ [0, 0] ]
    >
    
    objects\wired\landmine\landmine.lua
    32c32
    <    local entityIds = world.entityQuery(entity.position(), radius, { creature = true })
    ---
    >    local entityIds = world.entityQuery(entity.position(), radius, { includedTypes = {"creature"} })
    
    objects\wired\standingturret\standingturret.lua
    167,169c167,169
    <  --Gets all valid targets + all monsters
    <  local validTargetIds = world.entityQuery(getBasePosition(), self.targetRange, { validTargetOf = entity.id() })
    <  local monsterIds = world.monsterQuery(getBasePosition(), self.targetRange, { notAnObject = true })
    ---
    >  --Gets all valid npc targets + all monsters
    >  local npcIds = world.entityQuery(getBasePosition(), self.targetRange, { includedTypes = {"npc"} })
    >  local monsterIds = world.entityQuery(getBasePosition(), self.targetRange, { includedTypes = {"monster"} })
    171,172c171,174
    <  for key,validTargetId in ipairs(validTargetIds) do
    <    monsterIds[#monsterIds+1] = validTargetId
    ---
    >  for i,npcId in ipairs(npcIds) do
    >    if entity.isValidTarget(npcId) then
    >      monsterIds[#monsterIds+1] = npcId
    >    end
    
    scripts\entityproxy.lua
    5c5
    < --    local npcIds = world.npcQuery(entity.position(), 100)
    ---
    > --    local npcIds = world.entityQuery(entity.position(), 100, {includedTypes = {"npc"}})
    Something about that quest line looks off to me... ah! "Travel within this system is now available; did you investigate that gate yet?" At least, according to Word. ;)
     
  19. Philippe Houle

    Philippe Houle Void-Bound Voyager

    Starbound...
    RE-doing, RE-coding, RE-imagining.

    To be release after the BIG CRUNCH...
     
  20. Unclever title

    Unclever title Cosmic Narwhal

    Great news! Now when I get and use the bubble boost tech I should be able to fly around planets quickly and with less (maybe even none) unloaded chunks of blocks appearing invisibly in front of me.
     

Share This Page