Compare commits

...

13 Commits

Author SHA1 Message Date
Lucien Greathouse
62bb5a28aa v0.5.0-alpha.13 2019-08-02 15:05:58 -07:00
Lucien Greathouse
f768b200d2 Nudge README, hopefully to fix Travis too 2019-08-01 18:07:38 -07:00
Lucien Greathouse
a5b6db74e5 Bump minimum Rust version to 1.34.0 2019-08-01 17:57:13 -07:00
Lucien Greathouse
cbe4467a22 Upgrade dependencies and add SpawnLocation test case 2019-08-01 17:53:29 -07:00
Lucien Greathouse
8417d18eec Upgrade to latest rbx_dom_lua 2019-08-01 17:53:15 -07:00
Lucien Greathouse
93ae8187cd Update CHANGELOG 2019-08-01 16:11:21 -07:00
nukropina
972338d86a Corrected folder name. (#220)
* Corrected folder name.

* Update docs/guide/new-game.md

Co-Authored-By: Lucien Greathouse <me@lpghatguy.com>
2019-07-31 13:18:24 -07:00
Lucien Greathouse
a4a6e3b8f6 Fix serve help message. Fixes #219. 2019-07-31 12:54:46 -07:00
Gskartwii
d788dd3042 Fix broken link in existing-game.md (#218) 2019-07-17 14:30:15 -07:00
Lucien Greathouse
974760f020 Fix installation link from new game guide 2019-07-15 16:34:42 -07:00
Lucien Greathouse
65569c4a60 Update dependencies 2019-07-12 18:21:48 -07:00
Lucien Greathouse
39da45f0bd Fix broken logo 2019-07-08 18:34:26 -07:00
Lucien Greathouse
dc7c27e619 Remove old crusty docs 2019-07-03 14:39:25 -07:00
19 changed files with 670 additions and 324 deletions

3
.gitignore vendored
View File

@@ -1,8 +1,7 @@
/site
/target
/scratch-project
**/*.rs.bk
/server/failed-snapshots/
**/*.rs.bk
/*.rbxm
/*.rbxmx
/*.rbxl

View File

@@ -30,7 +30,7 @@ matrix:
# - luacov-coveralls -e $TRAVIS_BUILD_DIR/lua_install
- language: rust
rust: 1.32.0
rust: 1.34.0
cache: cargo
script:

View File

@@ -1,5 +1,12 @@
# Rojo Changelog
## Unreleased Changes
## [0.5.0 Alpha 13](https://github.com/rojo-rbx/rojo/releases/tag/v0.5.0-alpha.13) (August 2, 2019)
* Bumped minimum Rust version to 1.34.0.
* Fixed default port documentation in `rojo serve --help` ([#219](https://github.com/rojo-rbx/rojo/issues/219))
* Fixed BrickColor support by upgrading Roblox-related dependencies
## [0.5.0 Alpha 12](https://github.com/rojo-rbx/rojo/releases/tag/v0.5.0-alpha.12) (July 2, 2019)
* Added `.meta.json` files
* `init.meta.json` files replace `init.model.json` files from Rojo 0.4.x ([#183](https://github.com/rojo-rbx/rojo/pull/183))

579
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
<div align="center">
<a href="https://rojo.space">
<img src="assets/rojo-logo.png" alt="Rojo" height="217" />
<img src="assets/logo-512.png" alt="Rojo" height="217" />
</a>
</div>
@@ -50,7 +50,7 @@ If you find any mistakes, feel free to make changes in the [docs](https://github
## Contributing
Pull requests are welcome!
Rojo supports Rust 1.32 and newer.
Rojo supports Rust 1.34.0 and newer. The minimum supported version of Rust is based on the latest versions of the dependencies that Rojo has.
## License
Rojo is available under the terms of the Mozilla Public License, Version 2.0. See [LICENSE.txt](LICENSE.txt) for details.

BIN
assets/logo-512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -2,10 +2,10 @@
## Summary
* Tools to port existing games are in progress!
* [rbxlx-to-rojo](https://github.com/rojo/rbxlx-to-rojo)
* [rbxlx-to-rojo](https://github.com/rojo-rbx/rbxlx-to-rojo)
* `rojo export` ([issue #208](https://github.com/rojo-rbx/rojo/issues/208))
* Can port as much or as little of your game as you like
* Rojo can manage just a slice of your game!
* Some Roblox idioms aren't very well supported
* Redundant copies of scripts don't work well with files
* Having only a couple places with scripts simplifies your project dramatically!
* Having only a couple places with scripts simplifies your project dramatically!

View File

@@ -29,7 +29,7 @@ If you have Rust installed, the easiest way to get Rojo is with Cargo!
To install the latest 0.5.0 alpha, use:
```sh
cargo install rojo --version 0.5.0-alpha.12
cargo install rojo --version 0.5.0-alpha.13
```
## Installing the Plugin

View File

@@ -41,7 +41,7 @@ All we have to do is call `rojo build`:
rojo build -o MyNewProject.rbxlx
```
If you open `MyNewProject.rbxlx` in Roblox Studio now, you should see a `Folder` containing a `ModuleScript` under `ReplicatedStorage`!
If you open `MyNewProject.rbxlx` in Roblox Studio now, you should see a `Folder` named "Source" containing a `ModuleScript` under `ReplicatedStorage`.
!!! info
To generate a binary place file instead, use `rbxl`. Note that support for binary model/place files (`rbxm` and `rbxl`) is very limited in Rojo presently.
@@ -49,7 +49,7 @@ If you open `MyNewProject.rbxlx` in Roblox Studio now, you should see a `Folder`
## Live-Syncing into Studio
Building a place file is great for starting to work on a game, but for active iteration, you'll want something faster.
In Roblox Studio, make sure the Rojo plugin is installed. If you need it, check out [the installation guide](installation) to learn how to install it.
In Roblox Studio, make sure the Rojo plugin is installed. If you need it, check out [the installation guide](../installation) to learn how to install it.
To expose your project to the plugin, you'll need to start a new **live sync session** from the command line:
@@ -87,4 +87,4 @@ Generating and publishing your game is as simple as:
rojo upload --asset_id [PLACE ID] --cookie "[SECURITY COOKIE]"
```
An example project is available on GitHub that deploys to Roblox.com from GitHub and Travis-CI automatically: [https://github.com/LPGhatguy/roads](https://github.com/LPGhatguy/roads)
An example project is available on GitHub that deploys to Roblox.com from GitHub and Travis-CI automatically: [https://github.com/LPGhatguy/roads](https://github.com/LPGhatguy/roads)

View File

@@ -1,5 +0,0 @@
# Rojo Plugin
This is the source to the Rojo Roblox Studio plugin.
Documentation is WIP.

View File

@@ -1,6 +1,6 @@
return {
codename = "Epiphany",
version = {0, 5, 0, "-alpha.12"},
version = {0, 5, 0, "-alpha.13"},
expectedServerVersionString = "0.5.0 or newer",
protocolVersion = 2,
defaultHost = "localhost",

View File

@@ -1,6 +1,6 @@
[package]
name = "rojo"
version = "0.5.0-alpha.12"
version = "0.5.0-alpha.13"
authors = ["Lucien Greathouse <me@lpghatguy.com>"]
description = "Enables professional-grade development tools for Roblox developers"
license = "MIT"
@@ -30,8 +30,8 @@ log = "0.4"
maplit = "1.0.1"
notify = "4.0"
rbx_binary = "0.4.1"
rbx_dom_weak = "1.8.0"
rbx_xml = "0.10.0"
rbx_dom_weak = "1.9.0"
rbx_xml = "0.11.0"
rbx_reflection = "3.1.388"
regex = "1.0"
reqwest = "0.9.5"

View File

@@ -1,4 +0,0 @@
# Rojo Server
This is the source to the Rojo server.
Documentation is WIP.

View File

@@ -43,7 +43,7 @@ fn main() {
(@subcommand serve =>
(about: "Serves the project's files for use with the Rojo Studio plugin.")
(@arg PROJECT: "Path to the project to serve. Defaults to the current directory.")
(@arg port: --port +takes_value "The port to listen on. Defaults to 8000.")
(@arg port: --port +takes_value "The port to listen on. Defaults to 34872.")
)
(@subcommand build =>

View File

@@ -43,6 +43,15 @@ fn multi_partition_game() {
tree_step("with_moved_dir", &live_session, &source_path);
}
#[test]
fn spawn_location() {
let _ = env_logger::try_init();
let source_path = project_path("spawn_location");
let (_dir, live_session) = start_session(&source_path);
tree_step("initial", &live_session, &source_path);
}
/// Find the path to the given test project relative to the manifest.
fn project_path(name: &str) -> PathBuf {
let mut path = Path::new(env!("CARGO_MANIFEST_DIR")).join("../test-projects");

View File

@@ -0,0 +1,6 @@
{
"name": "spawn_location",
"tree": {
"$path": "src"
}
}

View File

@@ -0,0 +1,266 @@
{
"instances": {
"21406306-61c7-45f6-9e3e-50cd6b609214": {
"Name": "spawn_location",
"ClassName": "Folder",
"Properties": {},
"Id": "21406306-61c7-45f6-9e3e-50cd6b609214",
"Children": [
"da5dd362-4eb6-488a-984b-c96327927a70"
],
"Parent": null
},
"da5dd362-4eb6-488a-984b-c96327927a70": {
"Name": "spawn",
"ClassName": "SpawnLocation",
"Properties": {
"Size": {
"Type": "Vector3",
"Value": [
12.0,
1.0,
12.0
]
},
"Massless": {
"Type": "Bool",
"Value": false
},
"LeftSurface": {
"Type": "Enum",
"Value": 0
},
"Color": {
"Type": "Color3",
"Value": [
0.6392157,
0.63529414,
0.64705884
]
},
"RightSurfaceInput": {
"Type": "Enum",
"Value": 0
},
"Neutral": {
"Type": "Bool",
"Value": true
},
"Locked": {
"Type": "Bool",
"Value": false
},
"Anchored": {
"Type": "Bool",
"Value": true
},
"CanCollide": {
"Type": "Bool",
"Value": true
},
"FrontSurfaceInput": {
"Type": "Enum",
"Value": 0
},
"LeftSurfaceInput": {
"Type": "Enum",
"Value": 0
},
"RightSurface": {
"Type": "Enum",
"Value": 0
},
"FrontSurface": {
"Type": "Enum",
"Value": 0
},
"TopSurfaceInput": {
"Type": "Enum",
"Value": 0
},
"CastShadow": {
"Type": "Bool",
"Value": true
},
"BottomSurface": {
"Type": "Enum",
"Value": 0
},
"Duration": {
"Type": "Int32",
"Value": 10
},
"Velocity": {
"Type": "Vector3",
"Value": [
0.0,
0.0,
0.0
]
},
"BottomSurfaceInput": {
"Type": "Enum",
"Value": 0
},
"TopSurface": {
"Type": "Enum",
"Value": 0
},
"CFrame": {
"Type": "CFrame",
"Value": [
-6.0,
0.500001,
-11.0,
1.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
1.0
]
},
"TeamColor": {
"Type": "BrickColor",
"Value": 194
},
"RotVelocity": {
"Type": "Vector3",
"Value": [
0.0,
0.0,
0.0
]
},
"Reflectance": {
"Type": "Float32",
"Value": 0.0
},
"AllowTeamChangeOnTouch": {
"Type": "Bool",
"Value": false
},
"RightParamA": {
"Type": "Float32",
"Value": -0.5
},
"LeftParamA": {
"Type": "Float32",
"Value": -0.5
},
"Tags": {
"Type": "BinaryString",
"Value": ""
},
"Transparency": {
"Type": "Float32",
"Value": 0.0
},
"Shape": {
"Type": "Enum",
"Value": 1
},
"FrontParamA": {
"Type": "Float32",
"Value": -0.5
},
"RootPriority": {
"Type": "Int32",
"Value": 0
},
"FrontParamB": {
"Type": "Float32",
"Value": 0.5
},
"FormFactor": {
"Type": "Enum",
"Value": 1
},
"BottomParamB": {
"Type": "Float32",
"Value": 0.5
},
"BackSurface": {
"Type": "Enum",
"Value": 0
},
"BottomParamA": {
"Type": "Float32",
"Value": -0.5
},
"Enabled": {
"Type": "Bool",
"Value": true
},
"BackParamB": {
"Type": "Float32",
"Value": 0.5
},
"BackParamA": {
"Type": "Float32",
"Value": -0.5
},
"LeftParamB": {
"Type": "Float32",
"Value": 0.5
},
"TopParamA": {
"Type": "Float32",
"Value": -0.5
},
"RightParamB": {
"Type": "Float32",
"Value": 0.5
},
"CollisionGroupId": {
"Type": "Int32",
"Value": 0
},
"BackSurfaceInput": {
"Type": "Enum",
"Value": 0
},
"CustomPhysicalProperties": {
"Type": "PhysicalProperties",
"Value": null
},
"TopParamB": {
"Type": "Float32",
"Value": 0.5
},
"Material": {
"Type": "Enum",
"Value": 256
}
},
"Id": "da5dd362-4eb6-488a-984b-c96327927a70",
"Children": [],
"Parent": "21406306-61c7-45f6-9e3e-50cd6b609214"
}
},
"root_id": "21406306-61c7-45f6-9e3e-50cd6b609214",
"metadata": {
"da5dd362-4eb6-488a-984b-c96327927a70": {
"ignore_unknown_instances": false,
"source_path": "src/spawn.rbxmx",
"project_definition": null
},
"21406306-61c7-45f6-9e3e-50cd6b609214": {
"ignore_unknown_instances": false,
"source_path": "src",
"project_definition": [
"spawn_location",
{
"class_name": null,
"children": {},
"properties": {},
"ignore_unknown_instances": null,
"path": "src"
}
]
}
}
}

View File

@@ -0,0 +1,85 @@
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
<Meta name="ExplicitAutoJoints">true</Meta>
<External>null</External>
<External>nil</External>
<Item class="SpawnLocation" referent="RBX8927A074BA5942B696D00BDFD02B5365">
<Properties>
<bool name="AllowTeamChangeOnTouch">false</bool>
<bool name="Anchored">true</bool>
<float name="BackParamA">-0.5</float>
<float name="BackParamB">0.5</float>
<token name="BackSurface">0</token>
<token name="BackSurfaceInput">0</token>
<float name="BottomParamA">-0.5</float>
<float name="BottomParamB">0.5</float>
<token name="BottomSurface">0</token>
<token name="BottomSurfaceInput">0</token>
<CoordinateFrame name="CFrame">
<X>-6</X>
<Y>0.500001013</Y>
<Z>-11</Z>
<R00>1</R00>
<R01>0</R01>
<R02>0</R02>
<R10>0</R10>
<R11>1</R11>
<R12>0</R12>
<R20>0</R20>
<R21>0</R21>
<R22>1</R22>
</CoordinateFrame>
<bool name="CanCollide">true</bool>
<bool name="CastShadow">true</bool>
<int name="CollisionGroupId">0</int>
<Color3uint8 name="Color3uint8">4288914085</Color3uint8>
<PhysicalProperties name="CustomPhysicalProperties">
<CustomPhysics>false</CustomPhysics>
</PhysicalProperties>
<int name="Duration">10</int>
<bool name="Enabled">true</bool>
<float name="FrontParamA">-0.5</float>
<float name="FrontParamB">0.5</float>
<token name="FrontSurface">0</token>
<token name="FrontSurfaceInput">0</token>
<float name="LeftParamA">-0.5</float>
<float name="LeftParamB">0.5</float>
<token name="LeftSurface">0</token>
<token name="LeftSurfaceInput">0</token>
<bool name="Locked">false</bool>
<bool name="Massless">false</bool>
<token name="Material">256</token>
<string name="Name">SpawnLocation</string>
<bool name="Neutral">true</bool>
<float name="Reflectance">0</float>
<float name="RightParamA">-0.5</float>
<float name="RightParamB">0.5</float>
<token name="RightSurface">0</token>
<token name="RightSurfaceInput">0</token>
<int name="RootPriority">0</int>
<Vector3 name="RotVelocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<BinaryString name="Tags"></BinaryString>
<int name="TeamColor">194</int>
<float name="TopParamA">-0.5</float>
<float name="TopParamB">0.5</float>
<token name="TopSurface">0</token>
<token name="TopSurfaceInput">0</token>
<float name="Transparency">0</float>
<Vector3 name="Velocity">
<X>0</X>
<Y>0</Y>
<Z>0</Z>
</Vector3>
<token name="formFactorRaw">1</token>
<token name="shape">1</token>
<Vector3 name="size">
<X>12</X>
<Y>1</Y>
<Z>12</Z>
</Vector3>
</Properties>
</Item>
</roblox>