pub struct ResourceLocation {
pub is_tag: bool,
pub namespace: Option<String>,
pub paths: NonEmpty<String>,
}Fields§
§is_tag: bool§namespace: Option<String>§paths: NonEmpty<String>Implementations§
Source§impl ResourceLocation
impl ResourceLocation
pub fn new<T: ToString>( is_tag: bool, namespace: Option<T>, paths: NonEmpty<T>, ) -> Self
pub fn new_namespace_paths<T: ToString>( namespace: T, paths: NonEmpty<T>, ) -> Self
Sourcepub fn new_namespace_path<T: ToString>(namespace: T, path: T) -> Self
pub fn new_namespace_path<T: ToString>(namespace: T, path: T) -> Self
Examples found in repository?
examples/datapack.rs (lines 48-51)
7fn main() {
8 use std::collections::BTreeMap;
9 use std::path::Path;
10
11 let pack_meta = PackMCMeta {
12 pack: Pack {
13 description: serde_json::json!("A datapack written with Rust!"),
14 pack_format: Some(15),
15 supported_formats: Some(Format::Array(15, 20)),
16 min_format: None,
17 max_format: None,
18 },
19 features: None,
20 filter: None,
21 overlays: None,
22 language: None,
23 };
24
25 let mut my_namespace = Namespace::default();
26
27 my_namespace.functions.push(FilePathNode::File(
28 "main".to_string(),
29 "say Datapack loaded!".to_string(),
30 ));
31
32 my_namespace.functions.push(FilePathNode::Directory(
33 "utils".to_string(),
34 vec![FilePathNode::File(
35 "teleport".to_string(),
36 "tp @s ~ ~10 ~".to_string(),
37 )],
38 ));
39
40 let mut block_tags = BTreeMap::new();
41 block_tags.insert(
42 TagType::Block,
43 vec![FilePathNode::File(
44 "cool_blocks".to_string(),
45 Tag {
46 replace: Some(false),
47 values: vec![
48 TagValue::ResourceLocation(ResourceLocation::new_namespace_path(
49 "minecraft",
50 "diamond_block",
51 )),
52 TagValue::ResourceLocation(ResourceLocation::new_namespace_path(
53 "minecraft",
54 "emerald_block",
55 )),
56 ],
57 },
58 )],
59 );
60 my_namespace.tags = block_tags;
61
62 let mut namespaces = BTreeMap::new();
63 namespaces.insert("mydp".to_string(), my_namespace);
64
65 let my_datapack = Datapack {
66 pack: pack_meta,
67 namespaces,
68 };
69
70 let output_path = Path::new("my_awesome_datapack");
71 if let Err(e) = my_datapack.write(output_path) {
72 eprintln!("Failed to write datapack: {}", e);
73 }
74}pub fn new_paths<T: ToString>(paths: NonEmpty<T>) -> Self
pub fn new_path<T: ToString>(path: T) -> Self
pub fn paths_string(&self) -> String
Trait Implementations§
Source§impl Clone for ResourceLocation
impl Clone for ResourceLocation
Source§fn clone(&self) -> ResourceLocation
fn clone(&self) -> ResourceLocation
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ResourceLocation
impl Debug for ResourceLocation
Source§impl<'de> Deserialize<'de> for ResourceLocation
impl<'de> Deserialize<'de> for ResourceLocation
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for ResourceLocation
impl Display for ResourceLocation
Source§impl FromStr for ResourceLocation
impl FromStr for ResourceLocation
Source§impl HasMacro for ResourceLocation
impl HasMacro for ResourceLocation
Source§impl Hash for ResourceLocation
impl Hash for ResourceLocation
Source§impl Ord for ResourceLocation
impl Ord for ResourceLocation
Source§fn cmp(&self, other: &ResourceLocation) -> Ordering
fn cmp(&self, other: &ResourceLocation) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for ResourceLocation
impl PartialEq for ResourceLocation
Source§impl PartialOrd for ResourceLocation
impl PartialOrd for ResourceLocation
Source§impl Serialize for ResourceLocation
impl Serialize for ResourceLocation
impl Eq for ResourceLocation
impl StructuralPartialEq for ResourceLocation
Auto Trait Implementations§
impl Freeze for ResourceLocation
impl RefUnwindSafe for ResourceLocation
impl Send for ResourceLocation
impl Sync for ResourceLocation
impl Unpin for ResourceLocation
impl UnwindSafe for ResourceLocation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more