Make range of tools configureable
parent
d19c8b815d
commit
cba90d4441
|
@ -1868,6 +1868,7 @@ Item definition (register_node, register_craftitem, register_tool)
|
||||||
wield_image = "",
|
wield_image = "",
|
||||||
wield_scale = {x=1,y=1,z=1},
|
wield_scale = {x=1,y=1,z=1},
|
||||||
stack_max = 99,
|
stack_max = 99,
|
||||||
|
range = 4.0,
|
||||||
liquids_pointable = false,
|
liquids_pointable = false,
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 1.0,
|
full_punch_interval = 1.0,
|
||||||
|
|
|
@ -2488,7 +2488,12 @@ void the_game(
|
||||||
|
|
||||||
//u32 t1 = device->getTimer()->getRealTime();
|
//u32 t1 = device->getTimer()->getRealTime();
|
||||||
|
|
||||||
f32 d = 4; // max. distance
|
f32 d = playeritem_def.range; // max. distance
|
||||||
|
f32 d_hand = itemdef->get("").range;
|
||||||
|
if(d < 0 && d_hand >= 0)
|
||||||
|
d = d_hand;
|
||||||
|
else if(d < 0)
|
||||||
|
d = 4.0;
|
||||||
core::line3d<f32> shootline(camera_position,
|
core::line3d<f32> shootline(camera_position,
|
||||||
camera_position + camera_direction * BS * (d+1));
|
camera_position + camera_direction * BS * (d+1));
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,7 @@ ItemDefinition& ItemDefinition::operator=(const ItemDefinition &def)
|
||||||
groups = def.groups;
|
groups = def.groups;
|
||||||
node_placement_prediction = def.node_placement_prediction;
|
node_placement_prediction = def.node_placement_prediction;
|
||||||
sound_place = def.sound_place;
|
sound_place = def.sound_place;
|
||||||
|
range = def.range;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,6 +110,7 @@ void ItemDefinition::reset()
|
||||||
}
|
}
|
||||||
groups.clear();
|
groups.clear();
|
||||||
sound_place = SimpleSoundSpec();
|
sound_place = SimpleSoundSpec();
|
||||||
|
range = -1;
|
||||||
|
|
||||||
node_placement_prediction = "";
|
node_placement_prediction = "";
|
||||||
}
|
}
|
||||||
|
@ -146,6 +148,7 @@ void ItemDefinition::serialize(std::ostream &os, u16 protocol_version) const
|
||||||
//serializeSimpleSoundSpec(sound_place, os);
|
//serializeSimpleSoundSpec(sound_place, os);
|
||||||
os<<serializeString(sound_place.name);
|
os<<serializeString(sound_place.name);
|
||||||
writeF1000(os, sound_place.gain);
|
writeF1000(os, sound_place.gain);
|
||||||
|
writeF1000(os, range);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +201,7 @@ void ItemDefinition::deSerialize(std::istream &is)
|
||||||
// If you add anything here, insert it primarily inside the try-catch
|
// If you add anything here, insert it primarily inside the try-catch
|
||||||
// block to not need to increase the version.
|
// block to not need to increase the version.
|
||||||
try{
|
try{
|
||||||
|
range = readF1000(is);
|
||||||
}catch(SerializationError &e) {};
|
}catch(SerializationError &e) {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@ struct ItemDefinition
|
||||||
ToolCapabilities *tool_capabilities;
|
ToolCapabilities *tool_capabilities;
|
||||||
ItemGroupList groups;
|
ItemGroupList groups;
|
||||||
SimpleSoundSpec sound_place;
|
SimpleSoundSpec sound_place;
|
||||||
|
f32 range;
|
||||||
|
|
||||||
// Client shall immediately place this node when player places the item.
|
// Client shall immediately place this node when player places the item.
|
||||||
// Server will update the precise end result a moment later.
|
// Server will update the precise end result a moment later.
|
||||||
|
|
|
@ -100,6 +100,8 @@ ItemDefinition read_item_definition(lua_State* L,int index,
|
||||||
}
|
}
|
||||||
lua_pop(L, 1);
|
lua_pop(L, 1);
|
||||||
|
|
||||||
|
def.range = getfloatfield_default(L, index, "range", def.range);
|
||||||
|
|
||||||
// Client shall immediately place this node when player places the item.
|
// Client shall immediately place this node when player places the item.
|
||||||
// Server will update the precise end result a moment later.
|
// Server will update the precise end result a moment later.
|
||||||
// "" = no prediction
|
// "" = no prediction
|
||||||
|
|
Loading…
Reference in New Issue