Struct veloren_world::site2::Site

source ·
pub struct Site {
    pub origin: Vec2<i32>,
    name: String,
    pub tiles: TileGrid,
    pub plots: Store<Plot>,
    pub plazas: Vec<Id<Plot>>,
    pub roads: Vec<Id<Plot>>,
}

Fields§

§origin: Vec2<i32>§name: String§tiles: TileGrid§plots: Store<Plot>§plazas: Vec<Id<Plot>>§roads: Vec<Id<Plot>>

Implementations§

source§

impl Site

source

pub fn radius(&self) -> f32

source

pub fn spawn_rules(&self, wpos: Vec2<i32>) -> SpawnRules

source

pub fn bounds(&self) -> Aabr<i32>

source

pub fn plot(&self, id: Id<Plot>) -> &Plot

source

pub fn plots(&self) -> impl ExactSizeIterator<Item = &Plot> + '_

source

pub fn plazas(&self) -> impl ExactSizeIterator<Item = Id<Plot>> + '_

source

pub fn create_plot(&mut self, plot: Plot) -> Id<Plot>

source

pub fn blit_aabr(&mut self, aabr: Aabr<i32>, tile: Tile)

source

pub fn create_road( &mut self, land: &Land<'_>, rng: &mut impl Rng, a: Vec2<i32>, b: Vec2<i32>, w: u16, ) -> Option<Id<Plot>>

source

pub fn find_aabr( &mut self, search_pos: Vec2<i32>, area_range: Range<u32>, min_dims: Extent2<u32>, ) -> Option<(Aabr<i32>, Vec2<i32>, Vec2<i32>)>

source

pub fn find_roadside_aabr( &mut self, rng: &mut impl Rng, area_range: Range<u32>, min_dims: Extent2<u32>, ) -> Option<(Aabr<i32>, Vec2<i32>, Vec2<i32>)>

source

pub fn find_rural_aabr( &mut self, rng: &mut impl Rng, area_range: Range<u32>, min_dims: Extent2<u32>, ) -> Option<(Aabr<i32>, Vec2<i32>, Vec2<i32>)>

source

pub fn make_plaza_at( &mut self, land: &Land<'_>, pos: &Vec2<i32>, radius: i32, rng: &mut impl Rng, ) -> Option<Id<Plot>>

source

pub fn make_plaza( &mut self, land: &Land<'_>, rng: &mut impl Rng, generator_stats: &mut SitesGenMeta, site_name: &String, ) -> Option<Id<Plot>>

source

pub fn demarcate_obstacles(&mut self, land: &Land<'_>)

source

pub fn make_initial_plaza( &mut self, land: &Land<'_>, rng: &mut impl Rng, plaza_radius: u32, search_inner_radius: u32, search_width: u32, generator_stats: &mut SitesGenMeta, site_name: &String, ) -> Option<Id<Plot>>

The find_roadside_aabr function wants to have an existing plaza or road. This function is used to find a suitable location for the first plaza in a town, which has the side-effect of creating at least one road. This function is more expensive than the make_plaza function but fails to find a plaza location only if there are no suitable locations within the entire search radius.

It works by exhaustively finding all tiles within a ring pattern around the town center where the tile and all surrounding tiles to the plaza radius are not hazards or roads. It then chooses the tile with the minimum distance from the town center as the plaza location. See the comments in common/src/spiral.rs for more information on the spiral ring pattern.

demarcate_obstacles() should be called before this function to mark the obstacles and roads. (Cliff Towns are an exception).

source

pub fn make_initial_plaza_default( &mut self, land: &Land<'_>, rng: &mut impl Rng, generator_stats: &mut SitesGenMeta, site_name: &String, ) -> Option<Id<Plot>>

This is make_initial_plaza with default options/parameters. This calls make_initial_plaza with the default parameters for the plaza_radius and search_inner_radius. The plaza_radius will be in the range 1-3, and the search_inner_radius will be 7 + plaza_radius. The search_width will be PLAZA_MAX_SEARCH_RADIUS - search_inner_radius. The search_inner_radius is approximately the same distance from the center of town as for the original make_plaza function, so this function will place the initial plaza and roads near where the original make_plaza function would place them in the case where the site is clear of hazards.

This default plaza generation function is used for generating cities, cliff towns, savannah towns, and coastal towns. The other town types (terracotta, myrmidon, desert city) have a central feature so they use specific plaza generation parameters and call the make_initial_plaza function directly.

demarcate_obstacles() should be called before this function to mark the obstacles and roads.

source

pub fn name(&self) -> &str

source

pub fn generate_mine( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_citadel( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_gnarling( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_adlet( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, index: IndexRef<'_>, ) -> Self

source

pub fn generate_terracotta( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, generator_stats: &mut SitesGenMeta, ) -> Self

source

pub fn generate_myrmidon( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, generator_stats: &mut SitesGenMeta, ) -> Self

source

pub fn generate_giant_tree( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_city( land: &Land<'_>, index: IndexRef<'_>, rng: &mut impl Rng, origin: Vec2<i32>, size: f32, calendar: Option<&Calendar>, generator_stats: &mut SitesGenMeta, ) -> Self

source

pub fn generate_glider_course( land: &Land<'_>, _index: IndexRef<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_cliff_town( land: &Land<'_>, index: IndexRef<'_>, rng: &mut impl Rng, origin: Vec2<i32>, generator_stats: &mut SitesGenMeta, ) -> Self

source

pub fn generate_savannah_town( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, generator_stats: &mut SitesGenMeta, ) -> Self

source

pub fn generate_coastal_town( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, generator_stats: &mut SitesGenMeta, ) -> Self

source

pub fn generate_desert_city( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, generator_stats: &mut SitesGenMeta, ) -> Self

source

pub fn generate_farm( is_desert: bool, rng: &mut impl Rng, site: &mut Site, land: &Land<'_>, ) -> bool

source

pub fn generate_haniwa( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_chapel_site( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_pirate_hideout( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_jungle_ruin( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_rock_circle( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_troll_cave( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_camp( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_cultist( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_sahagin( land: &Land<'_>, index: IndexRef<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_vampire_castle( land: &Land<'_>, rng: &mut impl Rng, origin: Vec2<i32>, ) -> Self

source

pub fn generate_bridge( land: &Land<'_>, index: IndexRef<'_>, rng: &mut impl Rng, start: Vec2<i32>, end: Vec2<i32>, ) -> Self

source

pub fn wpos_tile_pos(&self, wpos2d: Vec2<i32>) -> Vec2<i32>

source

pub fn wpos_tile(&self, wpos2d: Vec2<i32>) -> &Tile

source

pub fn tile_wpos(&self, tile: Vec2<i32>) -> Vec2<i32>

source

pub fn tile_center_wpos(&self, tile: Vec2<i32>) -> Vec2<i32>

source

pub fn render_tile( &self, canvas: &mut Canvas<'_>, dynamic_rng: &mut impl Rng, tpos: Vec2<i32>, )

source

pub fn render(&self, canvas: &mut Canvas<'_>, dynamic_rng: &mut impl Rng)

source

pub fn apply_supplement( &self, dynamic_rng: &mut impl Rng, wpos2d: Vec2<i32>, supplement: &mut ChunkSupplement, )

Trait Implementations§

source§

impl Default for Site

source§

fn default() -> Site

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Site

§

impl RefUnwindSafe for Site

§

impl Send for Site

§

impl Sync for Site

§

impl Unpin for Site

§

impl UnwindSafe for Site

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

source§

fn lossy_into(self) -> Dst

Performs the conversion.
source§

impl<T> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
§

impl<Context> SubContext<Context> for Context

§

fn sub_context(self) -> Context

§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
§

impl<T> TryDefault for T
where T: Default,

§

fn try_default() -> Result<T, String>

Tries to create the default.
§

fn unwrap_default() -> Self

Calls try_default and panics on an error case.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> Event for T
where T: Send + Sync + 'static,

§

impl<T> Resource for T
where T: Any + Send + Sync,

§

impl<T> Storable for T
where T: Send + Sync + 'static,