Skip to content
This repository has been archived by the owner on Nov 4, 2023. It is now read-only.

LotsOfPixelsStudios/TimoliaCreative.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TranClate

A Kotlin library that wraps the whole development process of a Minecraft Bedrock Project and thus provides a streamlined development experience with

  • Autocompletion
  • Integrated Documentation
  • A debugger that already works in the IDE and gives usefully feedback
  • Prevent invalid Code
  • The usage of Kotlin as a Tool to minimize Code duplications

Concept

The whole concept of TranClate is a Kotlin DSL it's intention is to let the developer only write compilable code, in our case we want to make sure a developer can only write code that is within the limits of Minecraft. Another goal is to automate everything that can be automated.

addon({
    projectName = "Project Name"
    projectShort = "pn"
    description = "by Timolia Creative"
    packIcon = getResource("general/pack.png")
    world = getResource("world/$worldName")
    version = arrayListOf(1, 0, 0)
}) {
    entity {
        name("id", "Name of The Entity")
        behaviour {
            components {
                damageSensor {
                    trigger {
                        cause = DamageType.ALL
                        dealsDamage = false
                    }
                }
            }
        }
        resource {
            components {
                spawnEgg {
                    eggByColor(Color.RED, Color.BLACK)
                }
            }
        }
    }
}

TranClate is also designed to be extended through plugins/libraries. This is encouraged through the design desiccation to add/apply data to objects from anywhere.

Example:

//applied by the user
val sampleEntity = entity {
    name("myEntity")
    behaviour {
        components {
            physics()
        }
    }
}

//applied by the plugin
sampleEntity.behaviour {
    components {
        pushable()
    }
}

Instead of overwriting the physics() component, the second call will apply the pushable() components.

With this design plugins/libraries can easily modify predetermined objects like the player entity without worrying to overwrite code of the developer that is using the plugin/library.

About

Wiki for TranClate

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published