Jump to content

Don't Starve Mod Tools Github Repo


Cheerio

Recommended Posts

  • Developer

This Github project contains the Don't Starve Mod Tools package for PC, Mac and Linux as well as the source for the proprietary asset pipeline tools.  Please feel free to fork it and submit your changes through pull requests.  Approved changes will get pushed to the Steam Workshop.  Let me know if you have any questions :).

 

https://github.com/kleientertainment/ds_mod_tools

Link to comment
Share on other sites

@Cheerio

One question I have is about the organization of code. I get that the primary directory subdivision is meant to reflect the current separation of code bases for the three different OSes. But isn't the intended goal with this move to achieve a single, cross-platform code base? Should I work under the Linux subtree for now and only later worry about the restructuring of code layout/building?

Link to comment
Share on other sites

  • Developer

@Cheerio

One question I have is about the organization of code. I get that the primary directory subdivision is meant to reflect the current separation of code bases for the three different OSes. But isn't the intended goal with this move to achieve a single, cross-platform code base? Should I work under the Linux subtree for now and only later worry about the restructuring of code layout/building?

Yeah the idea is that there would be the three os subtrees and one new subtree called 'source'.  If you want you can take the code and move it and set yourself up a make system to build the tools and submit a pull request for me to incorporate the change in the main branch.

Link to comment
Share on other sites

Yeah the idea is that there would be the three os subtrees and one new subtree called 'source'.  If you want you can take the code and move it and set yourself up a make system to build the tools and submit a pull request for me to incorporate the change in the main branch.

I think matters of code reorganization are best left for you. You're the ones who will do the cross compilation, after all.

p.s.: How sneaky of you, using GNU Wget in the Windows tools. :razz:

Link to comment
Share on other sites

  • Developer

I think matters of code reorganization are best left for you. You're the ones who will do the cross compilation, after all.

p.s.: How sneaky of you, using GNU Wget in the Windows tools. :razz:

Sounds good.  I'll try and move it around sooner rather than later :).

Link to comment
Share on other sites

Do you feel the same way whenever I click the 'like' button?

 

...

...

...

 

:-)

No, not usually, but it depends on what you're liking. ;P

(by the way, had you noticed you seem to have the highest reputation score among Developers/Administrators? It's even higher than JoeW's :razz:)

Link to comment
Share on other sites

@Cheerio

About "add[ing] python to osx/linux", I'm not sure that's necessary. Python 2 comes preinstalled in Mac OS X, and it is standard in Linux (not every distro bundles it, but if not it's probably been installed already as a dependency, and otherwise fetching it is quite straightforward; bundling dependencies is not common in Linux, they are system-wide). Maybe for Mac it'd be useful to have it there, since some older versions of Mac OS X have older Python versions (such as 2.3), but for Linux it's quite ok to assume it's there and call it as "python2.7 <script>".

Link to comment
Share on other sites

  • Developer

@Cheerio

About "add[ing] python to osx/linux", I'm not sure that's necessary. Python 2 comes preinstalled in Mac OS X, and it is standard in Linux (not every distro bundles it, but if not it's probably been installed already as a dependency, and if not fetching it is quite straightforward). Maybe for Mac it'd be useful to have it there, since some older versions of Mac OS X have older Python versions (such as 2.3), but for Linux it's quite ok to assume it's there and call it as "python2.7 <script>".

We'll just need to fix the fact that some of the Klei scripts are installed in the site-packages folder.

Link to comment
Share on other sites

  • Developer

Autcompiler, scml and png are no longer dependant on any windows libraries as far as I can tell and all have premake projects setup for them.  I was working on textureconverter today which is the last bit and unfortunately I've come too the conclusion that it has way too many dependencies including some 3rd party code which I can't share so I won't be able to host it on github.  I'll just get it working on multiple platforms and post the binaries when they're done.

Link to comment
Share on other sites

Autcompiler, scml and png are no longer dependant on any windows libraries as far as I can tell and all have premake projects setup for them.  I was working on textureconverter today which is the last bit and unfortunately I've come too the conclusion that it has way too many dependencies including some 3rd party code which I can't share so I won't be able to host it on github.  I'll just get it working on multiple platforms and post the binaries when they're done.

If you'd like, you can bundle ktech with the Linux/Mac versions, relieving the need to port TextureConverter. But it's your call, of course.

Link to comment
Share on other sites

  • Developer

If you'd like, you can bundle ktech with the Linux/Mac versions, relieving the need to port TextureConverter. But it's your call, of course.

Hmm interesting,

 

For it to work, it'd have to support mipmapping, resizing and dxt1/dxt5/argb.

Link to comment
Share on other sites

Hmm interesting,

 

For it to work, it'd have to support mipmapping, resizing and dxt1/dxt5/argb.

It does. It also supports plain rgb (used by colour cubes). Resizing is done using either the Lanczos, Blackman, Hann, Hamming, Catrom, Bicubic or Box filters, the default being Lanczos (which is Lanczos3, i.e. 3-lobbed Lanczos).

Usage: ktech [OPTION]... <input-file> [output-path]Options for TEX input:    -Q,  --quality  <0-100>         Quality used when converting TEX to PNG/JPEG/etc. Higher values result         in less compression (and thus a bigger file size). Defaults to 100.    -i,  --info         Prints information for a given TEX file instead of converting it.Options for TEX output:    -c,  --compression  <dxt1|dxt3|dxt5|rgb|rgba>         Compression type for TEX creation. Defaults to dxt5.    -f,  --filter  <lanczos|blackman|hann|hamming|catrom|bicubic|box>         Resizing filter used for mipmap generation. Defaults to lanczos.    -t,  --type  <1d|2d|3d|cube>         Target texture type. Defaults to 2d.    --no-mipmaps         Don't generate mipmaps.Other options:    -v,  --verbose  (accepted multiple times)         Increases output verbosity.    -q,  --quiet         Disables text output. Overrides the verbosity value.    --version         Displays version information and exits.    -h,  --help         Displays usage information and exits.    --,  --ignore_rest         Ignores the rest of the labeled arguments following this flag.If input-file is a TEX image, it is converted to a non-TEX format (defaultingto PNG). Otherwise, it is converted to TEX. The format of input-file isinferred from its binary contents (its magic number).If output-path is not given, then it is taken as input-file stripped from itsdirectory part and with its extension replaced by `.png' (thus placing it inthe current directory). If output-path is a directory, this same rule applies,but the resulting file is placed in it instead. If output-path is given and isnot a directory, the format of the output file is inferred from its extension.

obs.: As it is now, resizing is just done within mipmap generation (with the primary mipmap having the original dimensions). I haven't added an option to fix the output size (such as TextureConverter's height option), but this would be quite straightforward. I just didn't see the use case for it, so far.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...