Merge branch 'trunk' of github.com:lrre-foss/rnr into trunk
|
|
@ -2,6 +2,69 @@ name: Build
|
|||
on: [ push ]
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
strategy:
|
||||
matrix:
|
||||
configuration: [ Release, Debug ]
|
||||
|
||||
name: Linux
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install required packages
|
||||
uses: awalsh128/cache-apt-pkgs-action@latest
|
||||
with:
|
||||
version: 5.0
|
||||
packages: >-
|
||||
build-essential
|
||||
cmake
|
||||
ninja-build
|
||||
libboost-all-dev
|
||||
libogre-1.12-dev
|
||||
libpugixml-dev
|
||||
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: 6.*
|
||||
cache: true
|
||||
|
||||
- name: Generate Ninja build files
|
||||
run: cmake -G Ninja -B build -DCI=ON -DCMAKE_BUILD_TYPE=${{ matrix.configuration == 'Release' && 'MinSizeRel' || matrix.configuration }} .
|
||||
|
||||
- name: Run Ninja build
|
||||
run: ninja -C build
|
||||
|
||||
# ouch - unless and until we start using CMake's install command, these next few steps are a necessary evil
|
||||
- name: Organize binaries
|
||||
run: mkdir build/dist && find build -perm /a+x -exec mv {} build/dist \;
|
||||
|
||||
- name: Add RNR resources
|
||||
run: cp -R Content/RNR build/dist/content && cp LICENSE build/dist
|
||||
|
||||
- name: Add OGRE plugins
|
||||
run: cp -R build/plugins build/dist && cp Content/linux_plugins.cfg build/dist/plugins.cfg
|
||||
|
||||
- name: Add OGRE shaders
|
||||
run: cp -R build/shaders build/dist
|
||||
|
||||
- name: Set output variables
|
||||
id: vars
|
||||
run: |
|
||||
echo "configuration=${{ matrix.configuration }}" | awk '{print tolower($0)}' >> $GITHUB_OUTPUT
|
||||
echo "hash=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: rnr-${{ steps.vars.outputs.hash }}-linux_x64-${{ steps.vars.outputs.configuration }}
|
||||
path: build/dist
|
||||
|
||||
windows:
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
@ -17,13 +80,13 @@ jobs:
|
|||
shell: msys2 {0}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
name: Clone repository
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- uses: msys2/setup-msys2@v2
|
||||
name: Set up MSYS2 and install required packages
|
||||
|
||||
- name: Set up MSYS2 and install required packages
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: ${{ matrix.sys }}
|
||||
install: >-
|
||||
|
|
@ -58,7 +121,7 @@ jobs:
|
|||
run: mkdir build/dist/shaders && cp -R /${{ matrix.sys }}/share/OGRE/Media/Main/* build/dist/shaders && cp -R /${{ matrix.sys }}/share/OGRE/Media/RTShaderLib/* build/dist/shaders
|
||||
|
||||
- name: Add additional runtime dependencies
|
||||
run: ldd build/dist/*.exe | grep "=> /" | awk '{print $3}' | grep "clang64" | xargs -I '{}' cp -v '{}' build/dist
|
||||
run: ldd build/dist/*.exe | grep "=> /" | awk '{print $3}' | grep "${{ matrix.sys }}" | xargs -I '{}' cp -v '{}' build/dist
|
||||
|
||||
- name: Set output variables
|
||||
id: vars
|
||||
|
|
@ -70,4 +133,4 @@ jobs:
|
|||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: rnr-${{ steps.vars.outputs.hash }}-win_x64-${{ steps.vars.outputs.configuration }}
|
||||
path: build/dist
|
||||
path: build/dist
|
||||
|
|
@ -20,7 +20,7 @@ find_package(pugixml REQUIRED)
|
|||
add_subdirectory(Projects)
|
||||
|
||||
if(CI AND UNIX)
|
||||
file(COPY ${OGRE_MEDIA_DIR}/Main/ DESTINATION ${CMAKE_BINARY_DIR}/shaders)
|
||||
file(COPY ${OGRE_MEDIA_DIR}/ShadowVolume/ DESTINATION ${CMAKE_BINARY_DIR}/shaders)
|
||||
file(COPY ${OGRE_MEDIA_DIR}/RTShaderLib/ DESTINATION ${CMAKE_BINARY_DIR}/shaders)
|
||||
file(COPY ${OGRE_PLUGIN_DIR}/ DESTINATION ${CMAKE_BINARY_DIR}/plugins)
|
||||
endif()
|
||||
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 6.4 KiB |
|
|
@ -67,5 +67,5 @@ add_library(Engine STATIC
|
|||
Source/Rendering/Adorn.cpp
|
||||
)
|
||||
|
||||
target_include_directories(Engine PUBLIC ${BOOST_INCLUDE_DIRS} Header/)
|
||||
target_link_libraries(Engine PUBLIC ${BOOST_LIBRARIES} pugixml OgreBites Luau.Analysis Luau.Ast Luau.Compiler Luau.VM)
|
||||
target_include_directories(Engine PUBLIC ${Boost_INCLUDE_DIRS} Header/)
|
||||
target_link_libraries(Engine PUBLIC ${Boost_LIBRARIES} pugixml OgreBites Luau.Analysis Luau.Ast Luau.Compiler Luau.VM)
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <cstddef>
|
||||
|
||||
#include <OGRE/Ogre.h>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <cstddef>
|
||||
|
||||
namespace RNR
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
#include <App/CoordinateFrame.hpp>
|
||||
#include <App/BrickColor.hpp>
|
||||
#include <Helpers/Strings.hpp>
|
||||
#include <format>
|
||||
|
||||
namespace RNR
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# RNR
|
||||
[](https://github.com/lrre-foss/rnr/actions)
|
||||
[](hhttps://discord.gg/2tj4TREby3)
|
||||
[](https://github.com/lrre-foss/RNR/stargazers)
|
||||
[Discord](https://discord.gg/89WagAUr)
|
||||
|
||||
RNR (**R**NR's **N**ot **R**oblox) is a project that aims to recreate the look and feel of classic Roblox with new features while remaining partially compatible with clients from that era. It is built upon an engine that closely resembles Roblox's own at the time, referencing disassemblies of legacy client binaries.
|
||||
RNR (**R**NR's **N**ot **R**oblox) is a project that aims to recreate the look and feel of classic Roblox with new features while remaining fully compatible with clients from that era. It is built upon an engine that closely resembles Roblox's own at the time, referencing disassemblies of legacy client binaries.
|
||||
|
||||
Interested in contributing? [Feel free to make a pull request!](https://github.com/lrre-foss/RNR/pulls)
|
||||
|
||||
|
|
@ -13,6 +13,7 @@ There are several goals that RNR seeks to accomplish, them being;
|
|||
- Easy-to-use (simple CLI options to launch and host games, as well as a level editor with a modern UI)
|
||||
- Fully compatible with Roblox versions up to 0.3.744.0 (dated April 2008) in areas such as hosting, joining, levels, etc.
|
||||
- Incorporates all the various facets of the Roblox engine, plus a little bit extra (e.g. a network replication whitelist, fancy shader support, etc.)
|
||||
- Made using clean-room reverse engineering
|
||||
- Uses Roblox's [Luau](https://luau-lang.org/) as its scripting language while remaining fully compatible with classic Roblox scripts written using Lua 5.1
|
||||
- As free and open-source as possible (with client code licensed under the GPL and the engine itself being released into the public domain, void of any copyright)
|
||||
- Patching all the security vulnerabilities and fixing bugs/inefficiencies that legacy Roblox clients had
|
||||
|
|
|
|||