File tree Expand file tree Collapse file tree 1 file changed +12
-8
lines changed
Expand file tree Collapse file tree 1 file changed +12
-8
lines changed Original file line number Diff line number Diff line change 33binoculars = {}
44
55
6- -- Cache creative mode setting
6+ -- Detect creative mod
7+
8+ local creative_mod = minetest .get_modpath (" creative" )
9+
10+
11+ -- Cache creative mode setting as fallback if creative mod not present
712
813local creative_mode_cache = minetest .settings :get_bool (" creative_mode" )
914
@@ -13,14 +18,13 @@ local creative_mode_cache = minetest.settings:get_bool("creative_mode")
1318
1419function binoculars .update_player_property (player )
1520 local creative_enabled =
16- (creative and creative .is_enabled_for (player :get_player_name ())) or
21+ (creative_mod and creative .is_enabled_for (player :get_player_name ())) or
1722 creative_mode_cache
18-
19- if creative_enabled or
20- player :get_inventory ():contains_item (" main" , " binoculars:binoculars" ) then
21- player :set_properties ({can_zoom = true })
22- else
23- player :set_properties ({can_zoom = false })
23+ -- Only set property if necessary to avoid player mesh reload
24+ local new_can_zoom = creative_enabled or player :get_inventory ():contains_item (
25+ " main" , " binoculars:binoculars" )
26+ if player :get_properties ().can_zoom ~= new_can_zoom then
27+ player :set_properties ({can_zoom = new_can_zoom })
2428 end
2529end
2630
You can’t perform that action at this time.
0 commit comments