File tree 1 file changed +12
-8
lines changed
1 file changed +12
-8
lines changed Original file line number Diff line number Diff line change 3
3
binoculars = {}
4
4
5
5
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
7
12
8
13
local creative_mode_cache = minetest .settings :get_bool (" creative_mode" )
9
14
@@ -13,14 +18,13 @@ local creative_mode_cache = minetest.settings:get_bool("creative_mode")
13
18
14
19
function binoculars .update_player_property (player )
15
20
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
17
22
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 })
24
28
end
25
29
end
26
30
You can’t perform that action at this time.
0 commit comments