5f3eaddb70
LoadoutBuilder::build_loadout is a function which has four parameters and 3 of them are Option<>, and although fourth (body) isn't Option<>, it's optional too because it is used only in some combinations of another arguments. Because these combinations produces quirky code flow, it will be better to split it to different methods. So we did following changes to remove it and rewrite code that was using it to use better methods. * Introduce LoadoutPreset as new LoadoutConfig, currently it's only used in Summon ability, because SummonInfo uses Copy and we can't specify String for specifying asset path for loadout. Everything else is rewritten to use asset path to create loadouts. * More builder methods for LoadoutBuilder. Namely: - from_default which is used in server/src/cmd.rs in "/spawn" command. - with_default_equipment, with_default_maintool to use default loadout for specific body - with_preset to use LoadoutPreset * Add new make_loadout field with `fn (loadout_builder, trading_info) -> loadout_builder` to EntityInfo which allows to lazily construct loadout without modifying LoadoutBuilder code * Fix Merchants not having trade site We had heuristic that if something has Merchant LoadoutConfig - it's merchant, which can be false, especially if we create Merchant loadout lazily As side note, we do same check for Guards and it fails too. Too fix it, we introduce new agent::Mark, which explicitly specifies kind of agent for entity * `LoadoutBuilder::build_loadout` was written in a such way that depending on main_tool you will have different loadout. Turns out it was this way only for Adlets though and this behaviour is reproduced by specifying different loadouts directly in world code. |
||
---|---|---|
.cargo | ||
.github/workflows | ||
.gitlab | ||
assets | ||
client | ||
common | ||
network | ||
nix | ||
plugin | ||
server | ||
server-cli | ||
voxygen | ||
world | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
.mailmap | ||
.rustfmt.toml | ||
.tokeignore | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md | ||
rust-toolchain |
Welcome To Veloren!
Veloren is a multiplayer voxel RPG written in Rust. Veloren takes inspiration from games such as Cube World, Minecraft and Dwarf Fortress. The game is currently under heavy development, but is playable.
Development
Currently the communication of contributors happens mainly on our official Discord server. You can join it to keep up with the development, talk to us or contribute something yourself. Anyone who shows genuine effort to help is welcome in our team. You don't have to know how to program to contribute!
Useful Links
Sign Up - Here you can create an online account for Veloren. This will be needed to play on auth-enabled servers, including the official server.
The Book - A collection of all important information relating to Veloren. It includes information on how to compile Veloren and how to contribute.
Future Plans - Go here for information about Veloren's development roadmap and what we're currently working on.
Official social media and websites
Get Veloren
We provide 64-bit builds for Linux, Mac, and Windows, which can be downloaded on the official website: https://www.veloren.net
Due to rapid development stable versions become outdated fast and might be incompatible with the public server.
If you want to compile Veloren yourself, follow the instructions in our Book.
F.A.Q.
Q: How is this game licensed?
A: It's free to play, modify and distribute. Forever. Since it is a community project, we decided to license it under the GNU GPL 3.0 license which means it will always stay free and open source.
Q: What platforms are supported?
A: Veloren can run on Windows, Linux and Mac OS on all architectures (although x86_64 is our main focus). It's probably possible to compile Veloren on/for BSD, Fuchsia and others as well.
Q: Do you accept donations?
A: You can support the project on our OpenCollective Page.
Credit
Many thanks to everyone that has contributed to Veloren's development, provided ideas, crafted art, composed music, hunted bugs, created tools and supported the project.