#Regolith Add-on Compiler 1.0.0!

1 messages · Page 1 of 1 (latest)

vivid temple
#

Regolith is an 'Add-on Compiler' for Bedrock, developed by Bedrock OSS (the same community behind; Bedrock Wiki, Json Monster, FAQBot, and more!).

With Regolith, you get three main benifits;

  • Store your addons outside of com.mojang, using the same project structure as bridge
  • Extend the Add-on syntax by 'filtering' your add-on, using your favorite programming language (Python, Node, Java, and more!)
  • Interpolability with a large number of existing tools

We've recently released our 1.0.0 relase! We're very excited for you to try it out:
https://bedrock-oss.github.io/regolith/

A flexible and language-agnostic addon-compiler for the Bedrock Edition of Minecraft.

tardy oak
#

I'm still floating about this project

vivid temple
#

Essentially, regolith is for people who want to combine Add-ons + programming.

tardy oak
#

hm

vivid temple
#

Back in the old days, everyone was writing their own tools for this. Like, maybe I had a tool for generating blocks, and another person had a tool for automatically giving their entities a name inside of the .lang files.

#

The idea behind Regolith is that all of these tools can be compatible with each other.

#

So: If you're a programmer, it's a tool you can use to write custom logic to help you make addons.

#

If you're NOT a programmer, you can use the existing set of tools from other creators (I think we have over 50 by now).

#

--

My favorite example is the 'Name Ninja' filter, which gives your entities/blocks/items an automatic name.

tardy oak
#

if I want to make a table that creates custom tools based on the item will it compile and create the combined files or will it export the combined files already?

vivid temple
#

So if you have an entity called hero:wooly_bison, Name Ninja will read this, and ensure that your entity is called 'Wooly Bison' in game -no need to touch the lang files.

#

As you add more entities, it automatically updates the lang codes to always be up to date.

vivid temple
#

So in your example, you would only ever see the 'table' of items to create -not the actual json.

#

Essentially you can extend the addon syntax; from your perspective it's now possible to create items using this 'table' format you created.

tardy oak
#

hm

vivid temple
#

Another example; It's possible to use blockbench models directly inside of your addon, if you use the blockbench filter.

#

So instead of exporting the json, you can just put wool_mammoth.bbmodel directly in your models folder. Regolith will export it for you, every time you want to test your addon.

tardy oak
vivid temple
#

Just to clarify a point, so I can talk about it freely;

#

The name we use for 'Regolith Tools' is 'filter'

#

This is because we're sorta 'filtering' out the custom syntax and replacing it with normal addon syntax.

#

--

With that out of the way; yes, there are some really complex filters for Regolith. There are also some tools similiar to regolith, but that are not quite compatible.

#

I'm aware of at least one C# library, and 2-3 others but I cannot remember the names.

#

The community doesn't tend to like this mega-complex filters too much though, since most people know how to write json, not C++, you know?

vivid temple
#

This is a nice example filter of a popular style of regolith filter.

#

You can read the readme, and get an understanding of what the filter offers.

tardy oak
#

a doubt about the filters using them i can create new creation templates example i will create a filter that creates a furnace in the block having a "type": "furnace" in the description and is it possible to make it create a furnace api?

vivid temple
#

Filters in regolith execute logic while the addon is being moved to com.mojang folder.

#

It's possible to use it to quickly generate a furnace template to edit, but it's not the main purpose.

#

Not sure if that makes any sense.

tardy oak
#

very confusing but later if I'm interested in using it I'll see if I learn

vivid temple
#

Then add a simple filter like 'Name Ninja', or something else that's straight forward.

#

If the concept still sounds cool, you can try some of the more complex filters, or write your own 🙂

tardy oak
#

a doubt about the transfer to the com.mojang path well i use the bedrock launcher would it be possible for him to export the addon in the desired path? type define the "com.mojang" folder of the launcher

vivid temple
tardy oak
#

uh

#

cool

vivid temple
#

It can export to; com.mojang, preview com.mojang, or you can tell the path exactly.

#

So it would be possible to compile to your Desktop if you wanted (for whatever reason).

#

It can also export to a particular world btw, I think.

tardy oak
#

interesting

#

I'll take a look

vivid temple
#

If you get stuck, feel free to tag me. I will try to respond.

violet epoch
#

Hi SirLich... diving in.

This is initially what I want to try it for. I have this template for "tiles". You can add and remove 1/16 layers until you glue it. So permutation heavy. The geo and destroy times switch out.

The parameters are the minecraft block and a total destroy time. The destroy time will be divided by 16 and used in the permutations. So a block 2 tiles thick is 2 * (dt/16),etc. I think everything else is consistent (would need to look back at the MSSQL SPs I did to do this for me, but not a convenient way) It may need a sound entry in blocks.json. Oh, another parm may be the flammable...

Anyways... is this something Regolith can handle creating... the actual block bp files with the correct destroy times in the permutation, the flammable in components and perhaps an entry in the blocks.json for the sound part???

Meanwhile, I will download and look at...

vivid temple
#

There would also be an existing library you could likely use to make it happen called 'Json Templating Engine'.

#

So Regolith + Json Templating Engine (filter)

#

If that doesn't work or it's too complex, there is a filter for treating json files sort of like python dictionaries, so you can embed python statements directly into the json to evaluate them.

#

If that doesn't work... well then maybe you need to write your own filter 😛

#

In fact the first one I mentioned (JTE) would almost DEFINITELY be the right use-case for this.

#

Let's continue in OSS though, since there is a JTE bot which can evaluate expressions in discord.