bevy_clay_tiles/
lib.rs

1 
2 
3use crate::tile_types_config::ClayTilesTypesConfigResource;
4use crate::tile_types_config::ClayTilesConfigResource;
5use crate::tile_types_config::TileTypeConfig;
6use bevy::platform::collections::hash_map::HashMap;
7//use bevy_material_tool::BevyMaterialToolPlugin;
8use crate::tile_types_config::TileTypesConfig;
9//use crate::tiles_texturing::ClayTilesTypesConfigResource;
10use crate::modify_tiles::modify_tiles_plugin;
11//use transform_gizmo_bevy::TransformGizmoPlugin; 
12
13use bevy::asset::{AssetPath, LoadState};
14use crate::tiles_config::ClayTilesConfig;
15//use crate::tiles_texturing::ClayTilesTexturingResource;
16// use bevy_mod_raycast::prelude::CursorRayPlugin;
17use crate::tile_edit::tile_edit_plugin;
18
19use crate::clay_tile_block::clay_tile_block_plugin;
20 
21use crate::tile_material::TileMaterialExtension;
22use crate::tile_material::TILE_SHADER_HANDLE;
23//use crate::tile_edit::tile_edit_plugin; 
24use bevy::{asset::load_internal_asset, prelude::*};
25 
26
27 
28 //pub mod tiles_texturing;
29 
30 pub mod clay_tile_block; 
31 pub mod tile_material;
32 pub mod tiles_config;
33 pub mod tile_types_config;
34 pub mod tile_edit;
35 pub mod pre_mesh;
36 pub mod clay_tile;
37 pub mod modify_tiles;
38 
39
40pub struct BevyClayTilesPlugin {
41    pub config: ClayTilesConfig
42}
43 
44impl Plugin for BevyClayTilesPlugin {
45    fn build(&self, app: &mut App) {
46
47        //app.init_resource::<ClayTilesTexturingResource>();
48        app.insert_resource(ClayTilesTypesConfigResource::new( 
49            &TileTypesConfig::load_from_file(
50              &format!("assets/{}",AssetPath::from_path( self.config.get_tile_types_config_path() ).path().to_str().unwrap() )  
51            ).unwrap()
52        
53            )  ); 
54        app.insert_resource(ClayTilesConfigResource(self.config.clone())) ;
55        //app.init_resource::<ClayTilesConfigResource>();
56
57        load_internal_asset!(
58            app,
59            TILE_SHADER_HANDLE,
60            "shaders/tile.wgsl",
61            Shader::from_wgsl
62        );
63        app.add_plugins(MaterialPlugin::<TileMaterialExtension>::default());
64
65        
66           /* 
67       if !app.is_plugin_added::<CursorRayPlugin>() {
68             app.add_plugins(CursorRayPlugin);
69        }
70
71         if !app.is_plugin_added::<TransformGizmoPlugin>(){
72            
73            app.add_plugins(TransformGizmoPlugin);
74        }*/
75
76        app
77        .add_plugins(clay_tile_block_plugin)        
78        .add_plugins(tile_edit_plugin)
79        .add_plugins(modify_tiles_plugin)
80     //   .add_plugins(tiles_texturing::tiles_texturing_plugin)
81
82
83        
84
85
86        ; 
87
88        
89    }
90}
91
92
93