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

RELEASED Hull Plating Blocks & More 35.0 (Concrete Tileset)

Blocks that resemble parts from ship backgrounds, plus some other odds and ends.

  1. simulatoralive

    simulatoralive Existential Complex

    And...you obviously don't read my posts. At all. The mod does not need it's own crafting table. Period.

    That is the one thing, aside from open-ness to modification, I have asked of those that continue this mod: no custom crafting table. Again, it is not needed. If that's what you want, go discuss it in another thread.
     
  2. SivCorp

    SivCorp Parsec Taste Tester

    I'm talking for 1.0. The crafting tables are changing extensively for release. So to maintain compatibility, these parts will need to be put into one of those rafting tables. I'm not saying it's own, individual crafting table... Sorry for the confusion, I didn't word that correctly. It will need to be worked into the upgrade system that the release will have.

    Will also need to streamline the crafting process. Would you want to share your thoughts on how to do that, or are you truly abandoning the mod? Seems like you still want a say in what is going on with it.... So I figured we can work together if you don't want to let it go. Or is it truly abandoned and open?
     
  3. simulatoralive

    simulatoralive Existential Complex

    I'm here to offer advice, for the most part. I want no active role. I just don't want to see my mod turned into an alien addition to the game, is all, especially after so many people basically harassed me about the crafting station thing.

    As for streamlining the crafting process, could you be more specific? I had always intended to move many of the recipes around, for the sake of re-balancing them, based on logic. Basically, simple stuff can be done with a crafting table. Metals on the anvils. Plastic and carbon fiber require the robotic crafting table, most gelatin on the kitchen station, etc. Much of that has already been done, but I know there were some recipes that were on the wrong crafting station, mostly because I was being lazy. I hated screwing with moving recipes, to be honest and it seemed to really tick-off end users. I was in it for the pixel art.

    I'm not modding Starbound anymore, but I am working on a project similar to this mod, but on a much grander scale. I'm actually building an open source block-based game similar to Starbound and Terraria. Ever since I played Terraria I've wanted to build something similar. Right now it's little-more than a tile-displaying engine, but it's got blocks with overlapping edges, like Starbound's. I'm taking what I've learned about modding, along with an eye to the common complaints about Starbound's limits and trying to make something even easier to mod. I'm definitely avoiding the things that frustrated me about Starbound (up to 4 or 5 text files for each block, depending on circumstances). My main goal with blocks is to put all of their data in one data structure, at least for the sake of input. My XML data format is also more flexible and precise (data type-wise) than JSON (which, honestly, drives me nuts).

    You might be able to convince me to cough up some new pixel art from time to time. Though I'm working at a higher resolution than Starbound handles and I'm using a somewhat different tile template for the "classic" blocks. It wouldn't take too much work to make them fit, however. I might do even that part of the work if I don't have to write any JSON files or do any of the testing...

    Edit: As for open-ness? This mod has always been open to modification by others. Do what you want with it. That has always been the case. But if people are going to insist on crapping on my original vision for this mod, they can do so in another thread. That should just come down to basic politeness.
     
    Last edited: May 12, 2016
    Hatsya Souji likes this.
  4. SivCorp

    SivCorp Parsec Taste Tester

    Cool. Like I said, sorry, wasn't trying to be impolite.

    I like all the blocks and stuff... but the only problem I have is the rocket boosters only go one way. They don't snap to other directions. All my ships face right, cause I can only put rockets to the right.

    See?

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    They all have to face the same way, and with rockets going the same way. I'm not sure what needs done in order to get them to be turnable... new sprites facing other directions maybe?
     
    Jackie2581 likes this.
  5. simulatoralive

    simulatoralive Existential Complex

    Hrm. I'd forgotten about that. It was on my to-do list. Making new sprites is one approach, but as I recall from looking at other objects, it shouldn't be necessary.

    My suggestion would be to look at an object that does flip one way and another. Some have two (or more) sprites, while others don't. Find one that doesn't and modify the files for the boosters to match. I never quite got it to work. Perhaps you'll have better luck.

    Honestly, objects were something I did almost entirely as copy and paste with art replacement. I didn't truly understand how their sprites worked and what I did was largely guess-work. Getting the boosters to be solid objects you can stand on, while the flame isn't solid took me quite a bit of work to get right.
     
    SivCorp likes this.
  6. simulatoralive

    simulatoralive Existential Complex

    Just remembered another thing I'd planned to do with this mod. At one point in the past, there was a name collision with a block that was added to Starbound after I made my mod. It seriously messed with a couple of other mods and their interoperability with this one.

    The mistake was mine, largely from inexperience with modding and I hadn't originally planned for the mod to get so big.

    I wish I'd tacked "hullplating." onto the internal name of every single block, item and object in the mod. It would have made such bugs impossible. It's a game-breaking change, however, so I was going to wait until the Starbound devs did something nasty to break compatibility with my mod again, like for example the shift to 1.0 with the completely new set of crafting stations.

    BTW, SivCorp, I love what you did with my columns in your ships. Just about every time I see someone's creation using my mod, I see some awesome use of a block I never considered. For example, the columns look good anchoring a door in place. It's nice seeing the heat sinks used, too. I always wondered if anyone would find a good use for them...

    Edit: I just found my old to-do list buried under some DVDs on my desk. I think I'll type up some of the more interesting ideas soon.
     
    Last edited: May 13, 2016
    SivCorp likes this.
  7. SivCorp

    SivCorp Parsec Taste Tester

    Sweet! I look forward to seeing more of the vision. Hopefully it included powered items and power cores ;)

    I think I figured out what needs done to get the engines to be swappable. It will require the sprites to be mirrored, it appears. But it all looks simple enough. I'll start working on that when I get some free time.


    On another note, have you found a way for blocks to do a true 45 degree slope when they are put together in a stair step pattern? You see in my ships above I had to use platforms to get the look, but would prefer a hull plate that can snap to a slope sprite when stepped. I just don't know how it would work, if at all. I've seen some mods, like the last ship I posted, have some blocks have some partial blending between them, but none with a true slope look :(
     
  8. simulatoralive

    simulatoralive Existential Complex

    SivCorp: There's already a sloped/angled glass block in the mod. You can take a look at that. Problem is it's always got a 45 degree slope. To get it to automatically adjust the slope as needed would require a new block template.

    Okay, here's my to-do list:
    • Move Racial Recpies (I think I meant to the Anvils)
    • Wacky Tileset Engines
    • Placeable Vanilla Ships
    • Construction Blocks (Tileset)
      • Yellow metal, like construction equipment, since yellow is very un-represented in the mod
    • Glowing, night-time variants of Durasteel, Violium, Aegisalt, Rubium (ant their higher-tier counterparts)
      • The violium would have been a dark gray/black tiles, with bright//glowing purple lines
      • Each would have been a light source
    • Decorative ship objects
      • Derived from ship backgrounds
      • Novakid train lights
      • Guns /from/for all ships
      • The huge Glitch Gear
      • Avian pyramid caps and gems/power crystals
      • Avian engine shaft extender
    • Modify Ship Engine Block for slants
      • To make it more like my Angled Glass
    • Ship Damage Objects
      • Derived from the Tier 0 vanilla ships
      • Basically, these would be objects you slap over existing blocks to make them look damaged
    • Ship-Themed Furniture
      • Wall-mounted beds, especially
        • I was planning to do this one almost entirely using a transparent darkened region shadowing trick, to add an alcove to a wall, with a bed in it
      • Modify each ship's captain's chair into a regular chair, but make it look different somehow
    • Someone requested a 1 tile wide ship door
      • So, I was looking into it, but not having much success
    • Secret doors to match each tileset
    • Decorative material modifiers for each ore
      • I think I got this one partially done, but not enough to cross it off
    • Decorative Flowers/Flower Pots (Spring-style)
      • I'm not sure anymore what I meant by this
    • Wall Border Material Modifiers
      • Especially with greek and egyptian themes, possiby with avian hieroglyphs
      • Another instance where I would use transparent shadows to achieve the desired look over nearly any block
    • Damage/Rust/Frost/Corrosion Material Modifiers
      • I was in the process of implementing these
      • I know the frost is done, can't remember if any of the others were finished to my satisfaction
    • More Material Modifiers for Pipes
      • Similar to the Brass Pipe modifier
      • Was going to give each tileset this kind of pipe
    • Huge, Hangar-Style Door
      • Not just big, but really, really big
      • I think this was another request
    • Bronze Tileset
      • This was going to be made from copper and pixels (probably 2-3 per block), since tin does't exist in-game, at least that I'm aware of
    • Combine Material Modifiers tools into just a few tools
      • using shift + a mouse button click to rotate a pallete of tools
      • I had some art work for a set of visual tool-switching cursors ready for this, I think, at least for the spray paint tool
        • Basically, the cursor was going to visually indicate the active tool, along with what you'd get for clicking either left or right
    • Reversible Engines
    • Ancient Tileset
    • Ice Tileset
      • This was going to work similar to the stone tileset, only using ice as the texture
    • Storage Lockers
      • Music
      • Tomb Bricks
      • Temple Bricks
      • Metal Bars (The block itself)
      • Pile of Books?
      • Giant Flower Locker
      • Lunar Base
      • More Biomes
    • Perfectly Generic Plating (Tileset)
    • Giant Flower Tileset
    • Scroll Blocks
      • Like a huge, unrolled scroll, so letters could be put on it
    • Regular furniture for the Wacky blocks
    • Regular furniture for Precious Metals
      • These would have been plated wood furniture

    And, just in case I never made a release with the file in it, here's my spray paint, tool-switching cursor file (the appropriate Lua script never got written):
    spraypaintcursors.png

    The X and the No symbol were going to be used for out-of-range and invalid targets, respectively.

    The center paint splotch indicates which paint is active and the left and right ones tell you what you'll get when you shift-click.

    Whew. I think that's everything. Can't believe I spent 45 minutes writing this post!
     
    Last edited: May 14, 2016
    SivCorp likes this.
  9. SivCorp

    SivCorp Parsec Taste Tester

    I was also looking at adding the different ship parts and cannons. Hopefully I can figure out this annoying coding crap. I got the engine to reverse by two different methods, but both don't line up correctly. :(
     
  10. simulatoralive

    simulatoralive Existential Complex

    Yeah. It's not as simple as it should be. That's the reason I hadn't done it yet. And you'll probably have to re-do the thing that tells Starbound which tiles are solid or empty...
     
  11. simulatoralive

    simulatoralive Existential Complex

    Been looking at my files. Discovered a partially finished "activetrimmultitool.lua" file.

    Just glancing at the thing, I can see it's very much not finished. The bit after "if shiftHeld then" should have some code related to switching tools and I don't see anything to handle the cursor switching, just yet.

    You'll also see a number of "FIX ME" comments that should illuminate other issues. I remember I'd been working on a way to determine if a block was a tumbling block (like sand), because these can't have material modifiers. I was also looking for a way to determine if a block was a platform, which also can't take modifiers. The goal was to have the invalid target cursor appear when hovering over these.

    Basically, what this file does have is a useful skeleton on which to build.

    I just figured someone might find this useful:
    Code:
    require "/scripts/vec2.lua"
    require "/scripts/util.lua"
    
    -- Read some variables from the item file and set an initial stance
    function init()
        self.seeds = item.instanceValue("seed", {"hullrivetsmall"})
        self.rangeLimit = item.instanceValue("rangeLimit", 15)
        self.sfx = item.instanceValue("toolSound", "drill")
        self.stances = item.instanceValue("stances")
        self.fireOffset = item.instanceValue("fireOffset", {0,0})
        self.seedIndex = 1
        setStance("idle")
    end
    
    function update(dt, fireMode, shiftHeld)
        -- Get block position pointed at
        local pos = activeItem.ownerAimPosition()
    
        if shiftHeld then
         
        else
            -- Place the mod if possible, playing a sound as we do so
            if fireMode == "primary" then
                fire(true, pos)
            elseif fireMode == "alt" then
                fire(false, pos)
            end
        end
        -- Point the tool in the player's hands at the target point
        updateAim(self.stance.allowRotate, self.stance.allowFlip)
    end
    
    -- Place the mod if possible, playing a sound as we do so
    function fire(isForeground, position)
        if canPlaceMod(isForeground, position) then
            -- Calculate range and determine if we're close enough
            local playerPosition = mcontroller.position()
            local inRange = (vecDist(playerPosition, position) <= self.rangeLimit)
            -- Place the mod only if we're close enough
            if (inRange) then
                if isForeground then
                    world.placeMod(position,"foreground",self.seeds[index],0,false)
                else
                    world.placeMod(position,"background",self.seeds[index],0,false)
                end
                animator.playSound(self.sfx)
    
                --FIX ME: Item consumption code would go here
                -- First I have to eliminate more bad targets
            end
        end
    end
    
    -- Thanks for this one Zoomah
    -- Calculates the distance from point a to point b (both should be vectors)
    function vecDist(a, b)
       return math.sqrt((a[1] - b[1])^2 + (a[2] - b[2])^2)
    end
    
    -- Returns true if we can place a material modifier on the the specified block
    --  Still needs some work to remove some invalid targets; will probably have to use a black-list
    --   for falling blocks
    function canPlaceMod(isForeground, position)
        --FIX ME: Add a check for tumbling blocks and platforms
        if isForeground then
            if not world.material(position,"foreground") then
                return false
            else
                return not world.mod(position,"foreground")
            end
        else
            if not world.material(position,"background") then
                return false
            else
                return not world.mod(position,"background")
            end
        end
    end
    
    -- Returns true if the specified block has a material modifier on it
    function hasMod(isForeground, position)
        if isForeground then
            return world.mod(position,"foreground") ~= nil
        else
            return world.mod(position,"background") ~= nil
        end
    end
    
    function previousTool()
        if index <= 1 then
            index = #self.seeds
        else
            index = index - 1
        end
        animator.playSound("switchtool")
    end
    
    function nextTool()
        if index >= #self.seeds then
            index = 1
        else
            index = index + 1
        end
        animator.playSound("switchtool")
    end
    
    ---------------------------------------------------
    -- Copied from /items/active/grapple/grapple.lua --
    -- Modified very slightly                        --
    ---------------------------------------------------
    function setStance(stanceName)
      self.stanceName = stanceName
      self.stance = self.stances[stanceName]
      self.stanceTimer = self.stance.duration or 0
      animator.setAnimationState("weapon", stanceName == "active" and "empty" or "tool")
      animator.rotateGroup("weapon", util.toRadians(self.stance.weaponRotation))
      updateAim(self.stance.allowRotate, self.stance.allowFlip)
    end
    
    -- Point the tool in the player's hands at the target point
    function updateAim(allowRotate, allowFlip)
      local aimAngle, aimDirection = table.unpack(activeItem.aimAngleAndDirection(self.fireOffset[2], activeItem.ownerAimPosition()))
    
      if allowRotate then
        self.aimAngle = aimAngle
      end
      aimAngle = (self.aimAngle or 0) + util.toRadians(self.stance.armRotation)
      activeItem.setArmAngle(aimAngle)
    
      if allowFlip then
        self.aimDirection = aimDirection
      end
      activeItem.setFacingDirection((self.aimDirection or 0))
    end
     
  12. NorthenFreeze

    NorthenFreeze Space Hobo

    First off, great mod! Really lets you play with the world in a more lose and creative way.

    I was wondering if I could use some assets of the mod to make a retex set? Not changing exiting stuff, but making new stuff with the blockcode and some of the tiles as base?

    If not, no problem, I wont even post any pictures of what I do. If it is at all possible though I would love to have some feedback on how stuff works. Drawing I can somewhat do, coding I can not...

    Thanks again for this great mod!
     
  13. simulatoralive

    simulatoralive Existential Complex

    Of course. You're welcome to re-use anything I've built. Everyone is, since I've placed no restrictions on the re-use of this mod. However, I have a few suggestions, if I'm understanding you correctly.

    First off, if you're adding anything new to the game, add some kind of prefix to the file names and internal names of everything you add to the game. This is something I wish I'd done and it caused me a fair amount of trouble along the way, because I didn't. For example, instead of Copper Hull Plating having the internal name of "coppershiphull" I should have used "hullplating.coppershiphull". This will prevent collisions with other mod's resources and/or the Starbound Devs adding something with the same name (this happened to one of my platform tiles).

    Second, again for adding new blocks, visit this web page and pick out an unused range of material IDs and add your blocks in that range. There's a link to a similar page for liquids.

    As for "coding", unless you get into working with Lua scripts on Items and Objects, or making a new block template (which I would not suggest doing; it's hardly worth the effort, because Starbound's file format for this is pure crap), there's really no programming involved. Just find a file for a block/item/object that's close to what you want to do, copy/paste it to the filename you need and then edit it to suit your needs. It's quite easy.

    Finally, for the sake of those that come after, you're better off leaving few or no restrictions on how your mod and it's resources are used. If you need a license of some kind, I'd suggest a Creative Commons license. If you leave the re-use rights restricted, when you lose interest and the game changes incompatibly, there will be no one to fix it (since no one is allowed to), which means your mod will simply never be used again. For the example of this mod, I'm done working on it, but I know there are a few others that seem willing to fix the mod when the next update to the game happens. If I'd been restrictive about the re-use rights, this would not be possible and this mod would die.

    These are, of course, all just suggestions. You're not required to follow my advice, but some of it will save you (or others) some headaches.
     
  14. NorthenFreeze

    NorthenFreeze Space Hobo

    Thank you for the quick response! I have a lot of respect for your work, and would not like to appear to disregard your great mod by using assets without clearing it.
    Had not thought about the prefix problem, great idea! Already picked a MatID range that was not in use, so hopefully it wont be a problem.

    Figured I would leave the restrictions the same as yours, I only started thinking about this by looking at your work. More the merrier.

    Here is the some of the stuff i have started on if it is of any interest:
    [​IMG]

    [​IMG]
     
  15. NorthenFreeze

    NorthenFreeze Space Hobo

    Started the work with Rusted tiles, and tried to rework the oxidizer tool:
    [​IMG]

    Put them, and reworked experimental hulls in an offshore platform as en example in use:
    [​IMG]
     
  16. simulatoralive

    simulatoralive Existential Complex

    I like what you're doing with the oxidizer. You've managed to at least capture grunge, if not actual rust.

    That was something I never quite got looking the way I wanted. I'm not a great artist, but I do excel at re-purposing existing art. The oxidizer material modifier art was something I made from scratch and it just didn't turn out right.

    It's also gratifying to see the concrete tileset being used. I like your floating base. It looks kind of like an oil rig.
     
  17. NorthenFreeze

    NorthenFreeze Space Hobo

    Yeah, I am thinking of making it more transparent and lighter, but keeping the old one for rough girt. Working on dented versions, three of them, bullets, dents and cuts.

    Thanks, whipped it up today to show the basic rust and some of the new blocks. And I love the concrete, really! I think there must have been poured the equivalent dozens of Hoverdams and Three Gorges in my universe!
    It is so perfect and versatile for any job!
    [​IMG]

    My last set of universes crashed last week, messed up an import test. Figured out how to do screenshots the next day...

    Have a lot more screenshots, but those are using remixed assets i dont have permission for yet.

    Tough it has been a strange learning process. Took me two days to fix this animated lamp into the game...
    [​IMG]

    Working through some of the metal and ore hulls to be more metallic and added alot of pipe, because pipes. Creating them separate form the originals.
    Also made a vent tool, planning to make two of them, one for metallic and one for painted. Only brass, dark and red now. Rework of the spring tool.
    [​IMG]
     
  18. NorthenFreeze

    NorthenFreeze Space Hobo

    Made some UAC crates of the cardboard hulls, thinking one wall and one front, so you can make giant cardboard boxes. Also made them dirty. Maybe make a dirty tool to? Any thought and inputs are very welcome, just feeling out the potentials at the moment.

    [​IMG]
     
  19. NorthenFreeze

    NorthenFreeze Space Hobo

    Was wondering if you could help me with a small problem, with illumination? Tried to copy the ("radiantLight" : [0, 110, 220]) info into a column, from the cyangem matdata. Crashes Starbound everytime. It is identical in structure to the corefragment column file, but no go unless I take out the line. Am I missing something?

    Made some more cardboard and cargo stuff, pluss sloped concrete.
    [​IMG]

    [​IMG]

    [​IMG]

    Also, I thought that the new materials would be incorporated into the craftingsystem the same way you had. I liked the organic incorporation of developing your tech to get the stuff. The exception will be the DOOM stuff I am trying to build, it will be separate set of crafting stations. I dislike having to scroll through vast menus when I forget somethings name. Really liked that about your hull mod, easy to find if you remember where it was made :)

    [​IMG]

    Nevermind, figured it out! If i copy the gemblocks/trims and change all the values, they work with lights! And not CTD. Weird, they are identical to the new files I made, but there must be a comma or something in the wrong place.

    Was wondering how the tiletrimtools work? Cant make new ones for the trim, only the equivalent of the springflowers and rivettools.
    [​IMG]
    Figured out the RGB system for the radiant though.

    Also tried to rework one set of tiles into tracks for vehicles.
    [​IMG]

    [​IMG]

    Little wonky, but i might get them right after some variants have been added.
     
    Last edited: Jun 7, 2016
  20. simulatoralive

    simulatoralive Existential Complex

    Wow. Looks like someone (NorthernFreeze) has stepped up to continue where I left off. I like your art!

    Having looked again at the file items/tools/trim/racial/apextrimtool.activeitem, you should just need to change the "seed" line to a new material modifier to get it to place something different. I was also giving each tool a unique look. You'll of course want to change the "itemName" line as well, or the item will replace the item you copied it from, but you probably already knew that.

    If you want to change the sound it makes, you can look at items/tools/trim/trimtool.animation, which has a list of available sounds. You can change the "ToolSound" line in the item file to any of the options from the animation file.

    As for how it works, it uses a lua script to do all the real work. Did you need anything more specific than that?
     

Share This Page