diff --git a/classes/Gun.lua b/classes/Gun.lua index 566ca5b..abf4668 100644 --- a/classes/Gun.lua +++ b/classes/Gun.lua @@ -24,7 +24,7 @@ local Vec = vector -- -- *Please note:* there are likey undocumented fields that are used in internal functions. If you find one, please make an issue on Github. -- --- @class gun +-- @class Gun -- @display gun -- @compact -- @field properties @{lvl1_fields.properties|properties} which define the vast majority of gun attributes and may change accross instances diff --git a/docs/class/Gun.html b/docs/class/Gun.html index b57bfdf..fecf291 100644 --- a/docs/class/Gun.html +++ b/docs/class/Gun.html @@ -3,7 +3,7 @@ - gun - Guns4d + Gun - Guns4d @@ -24,42 +24,6 @@
-
-
Contents
- -
Manual
-
-

Class gun - -

-
-

class fields

-

Defining a gun:

-

method documentation coming soon (or never...)

-

The appearance and handling of guns by default are defined by two table fields: their consts and their properties. -properties define nearly everything, from how a gun handles to how it looks, what model it uses, etc. -while consts define attributes that should never change, like bones within the gun, framerates, -wether the gun is allowed to have certain attributes at all. The other fields of the class define tracking variables or other important things for the internal workings.

-

There are essentially only 3 fields you must define to register a gun: itemstring, name, and properties. -To hold the gun, the item defined in itemstring must actually exist, it will not automatically register. To have a functional gun however, more will need to be changed in terms of properties. -it's reccomended that you take a look at existing mods (like guns4d_pack_1) for guidance

-

Guns4d uses a class system for most moving parts- including the gun. New guns therefore are created with the :inherit(def) method, -where def is the definition of your new gun- or rather the changed parts of it. So to make a new gun you can run Guns4d.gun:inherit() -or you can do the same thing with a seperate class of weapons. Set name to "__template" for template classes of guns.

-

for properties: for tables where you wish to delete the parent class's fields altogether (since inheritence prevents this) you can set the field "__replace_old_table=true" -additionally

-

Please note: there are likey undocumented fields that are used in internal functions. If you find one, please make an issue on Github.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
properties

properties which define the vast majority of gun attributes and may change accross instances

-
consts

constants which define gun attributes and should not be changed in an instance of the gun

-
offsets

runtime storage of offsets generated by recoil sway wag or any other element.

-
name

string the name of the gun. Set to __template for guns which have no instances and serve as a template. It is safe to set name to the same as gun.itemstring

-
itemstring

string the itemstring of the gun- i.e. "guns4d_pack_1:m4". Set to "" for __template guns.

-
itemstack

ItemStack the gun itemstack. Remember to player:set_wielded_item(self.itemstack) when making meta or itemstack changes.

-
player

ObjRef the operator of the weapon. This may at some point be deprecated when I start to implement AI/mob usage

-
meta

MetaDataRef itemstack meta

-
id

string the ID of the gun used for tracking of it's inventory

-
gun_entity

ObjRef the gun entity

-
_registered

list of registered guns, DO NOT MODIFY I really need a metatable for this class...

-
bolt_charged

bool is the bolt charged

-
particle_spawners

table list of particle spawner handles (generated by firing)

-
current_firemode

int the active index of the firemode from firemodes

-
walking_tick

float walking time used to generate the figure 8 for wag

-
time_since_last_fire

float

-
time_since_creation

float

-
rechamber_time

float time left for the chamber to cycle (for firerates)

-
burst_queue

int number of rounds left that need to be fired after a burst fire

-
muzzle_flash

function

-
gun_translation

vec3 translation of the gun relative to the "gun" bone or the player axial rotation.

-
property_modifiers

table indexed list of functions which are called when the gun's properties need to be built. This is used for things like attachments, etc.

-
attached_objects

table a list of ObjRefs that are attached to the gun as a result of attached_objects

-
subclass_instances

table list of subclass instances (i.e. Sprite_scope)

-
animation_rotation

vector containing the rotation offset from the current frame, this will be factored into the gun's direction if {@consts.ANIMATIONS_OFFSET_AIM}=true

-
animation_translation

vector containing the translational/positional offset from the current frame

-
total_offsets

all offsets from gun.offset of a type added together gun in the same format as a an offset (that is, five vectors, gun_axial, player_axial, etc.). Note that if -offsets are changed after update, this will not be updated automatically until the next update. update_rotations() must be called to do so.

-
velocities

velocities in the format of offsets, but only containing angular (gun_axial and player_axial) offsets.

-
-
-
-
-
-

properties - - -

-
-

the table containing every attribute of the gun.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
hip

table hipfire properties

-
ads

table aiming ("aiming down sights") properties

-
firemodes

table list of firemodes

-
recoil

table defines the guns recoil

-
sway

table defines the guns idle sway

-
wag

table defines the movement of the gun while walking

-
charging

table defines how rounds are chambered into the gun

-
ammo

table defines what ammo the gun uses

-
visuals

table defines visual attributes of the gun

-
sounds

table defines sounds to be used by functions of the gun

-
inventory

table inventory related attributes

-
initial_vertical_rotation

float starting vertical rotation of the gun

-
breathing_scale

float=.5 max angular deviation (vertical) from breathing

-
flash_offset

vector the offset from the center of the muzzle flash. Used by fire()

-
firerateRPM

int=600 The number of rounds (cartidges) this gun can throw per minute. Used by update(), fire() and default controls

-
reload

an ordered list of reloading states used by default_controls.

-

the default reload states for a magazine operated weapon, copied from the m4.

-
Example
-
{action="charge", time=.5, anim="charge", sounds={sound="ar_charge", delay = .2}},
-{action="unload_mag", time=.25, anim="unload", sounds = {sound="ar_mag_unload"}},
-{action="store", time=.5, anim="store", sounds = {sound="ar_mag_store"}},
-{action="load", time=.5, anim="load", sounds = {sound="ar_mag_load", delay = .25}},
-{action="charge", time=.5, anim="charge", sounds={sound="ar_charge", delay = .2}}
-
-
model_bounding_box

table (optional) a table {x1,y1,z1, x2,y2,z2} specifying the bounding box of the model. The first 3 (x1,y1,z1) are the lower of their counterparts. This is autogenerated from the model when not present, reccomended that you leave nil.

-
infinite_inventory_overlay

string overlay on the item to use when infinite ammo is on

-
burst

int=3 how many rounds in burst using when firemode is at "burst"

-
pc_control_actions

table containing a list of actions for PC users passed to Control_handler

-
touch_control_actions

table containing a list of actions for touch screen users passed to Control_handler

-
-
-
-
-
-

properties.inventory - - -

-
-
See also properties
- -
- - - - - - - - - - - - - - - - - - - - - -
render_size

the size in meters to render the gun in it's inventory opened with /guns4d_inv

-
render_image

the image of the gun in it's inventory opened with /guns4d_inv

-
firemode_inventory_overlays

table of firemodes and their overlays in the player's inventory when the gun is on that firemode

-
inventory_image_magless

string (optional) inventory image for when the gun has no magazine

-
inventory_image

string inventory image for when the gun is loaded. This is added automatically during construction as the item's wield image.

-
-
-
-
-
-

properties.subclasses - - -

-
-
See also properties
- -
- - - - - - - - - - - - - - - - - -
ammo_handler

Ammo_handler the class (based on) ammo_handler to create an instance of and use. Default is Guns4d.ammo_handler

-
part_handler

part_handler Part_handler class to use. Default is Guns4d.part_handler

-
sprite_scope

Sprite_scope sprite scope class to use. Nil by default, inherit Sprite_scope for class (documentation needed, reccomended contact for help if working with it)

-
crosshair

Dynamic_crosshair crosshair class to use. Nil by default, set to Guns4d.Dynamic_crosshair for a generic circular expanding reticle.

-
-
-
-
-
-

properties.ads - - -

-
-
See also properties
- -
- - - - - - - - - - - - - -
offset

vector the offset of the gun relative to the eye's position at hip.

-
horizontal_offset

float the horizontal offset of the eye when aiming

-
aim_time

the time it takes to go into full aim

-
-
-
-
-
-

properties.hip - - -

-
-
See also properties
- -
- - - - - - - - - - - - - - - - - -
offset

vector the offset of the gun (relative to the right arm's default position) at hip.

-
axis_rotation_ratio

the ratio that the look rotation is expressed through player_axial (rotated around the viewport) rotation as opposed to gun_axial (rotating the entity).

-
sway_vel_mul

sway speed multiplier while at hip

-
sway_angle_mul

sway angle multiplier while at hip

-
-
-
-
-
-

properties.firemodes - - -

-
-

list containing the firemodes of the gun. Default only contains "single". Strings allowed by default: -

See also properties
- -
- - - - - - - - - - -
"single"
"burst"
"auto"
-
-
-
-
-

properties.recoil - - -

-
-

IMPORTANT: expects fields to be tables containing a "gun_axial" and "player_axial" field. -

See also properties
-
Example
-
property = {
-    gun_axial = type
-    player_axial = type
-}
---using a vector...
-property = {
-    gun_axial={x=float, y=float},
-    player_axial={x=float, y=float}
-}`
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
velocity_correction_factor

float TL:DR higher decreases recoil at expense of smoothness. 1/value is the deviation of a normalized bell curve, where x is the time since firing. -this means that increasing it decreases the time it takes for the angular velocity to fully "decay".

-
target_correction_factor

float Correction of recoil offset per second is calculated as such: target_correction_factor[axis]*time_since_fire*recoil[axis]

-
target_correction_max_rate

float The maximum rate per second of recoil offset as determined with gun.properties.recoil.target_correction_factor

-
angular_velocity_max

float caps the recoil velocity that can stack up from shots.

-
angular_velocity

vector {x=float, y=float}, defines the initial angular velocity produced by firing the gun

-
bias

vector {x=float, y=float}, ranges -1 to 1. Defines the probability of the recoil being positive or negative for any given axis.

-
hipfire_multiplier

float angular velocity multiplier when firing from the hip

-
-
-
-
-
-

properties.sway - - -

-
-

IMPORTANT: expects fields to be tables containing a "gun_axial" and "player_axial" field. In the same format as gun.properties.recoil -

See also properties
- -
- - - - - - - - - - - - - - - - - -
max_angle

float maximum angle of the sway

-
angular_velocity

float angular velocity the sway

-
hipfire_angle_multiplier

float maximum angle multiplier while the gun is at the hip

-
hipfire_velocity_multiplier

float velocity multiplier while the gun is at the hip

-
-
-
-
-
-

properties.wag - - -

-
-
See also properties
- -
- - - - - - - - - - - - - -
cycle_speed

float=1.6 the cycle speed multiplier

-
decay_speed

float=1 decay factor when walking has stopped and offset remains.

-
offset

table containing angular deviation while walking in the same format as an offset vector. Acts as a multiplier on the figure-8 generated while walking.

-
-
-
-
-
-

properties.charging - - -

-
-
See also properties
- -
- - - - - - - - - - - - - - - - - - - - - -
require_draw_on_swap

bool defines wether the draw animation is played on swap (when loaded). Default true.

-
bolt_charge_mode

string "none" bolt will never need to be charged after reload, "catch" when fired to empty bolt will not need to be charged after reload, "no_catch" bolt will always need to be charged after reload.

-
draw_time

float the time it takes to swap to the gun

-
draw_animation

string name of the animation to play from visuals.animations. Default "draw"

-
draw_sound

string name of the sound to play from sounds. Default "draw"

-
-
-
-
-
-

properties.ammo - - -

-
-
See also properties
- -
- - - - - - - - - - - - - - - - - -
magazine_only

bool wether the gun only uses a magazine or accepts raw ammunition too.

-
accepted_bullets

table a list of accepted bullet itemstrings

-
accepted_magazines

table a list of accepted magazine itemstrings

-
initial_mag

string the mag the gun starts with. Set to "empty" for no mag, otherwise it defaults to accepted_magazines[1] (if present)

-
-
-
-
-
-

properties.visuals - - -

-
-
See also properties
- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
mesh

name of mesh to display. Currently only supports b3d

-
textures

list of textures to use.

-
scale

scale multiplier. Default 1

-
attached_objects

objects that are attached to the gun. This is especially useful for attachments

-
Example
-
my_object = {
-    textures = {"blank.png"},
-    visual_size = {x=1,y=1,z=1},
-    offset = {x=0,y=0,z=0},
-    bone = "main",
-    backface_culling = false,
-    glow = 0
-}
-
-
backface_culling

toggles backface culling. Default true

-
animations

a table of animations. Indexes define the name of the animation to be refrenced by other functions of the gun. -should be in the format {x=integer,y=integer}

-
Example
-
animations = {
-    empty = {x=0,y=0}
-    loaded = {x=1,y=1}
-    fire = {x=10,y=20}
-    draw = {x=24,y=30} --DEFAULT of charging.draw_animation.
-}
-
-

There are other animations which are variable which are not listed here, these are usually defined by properties such as: -reload, draw_animation

-
-
-
-
-
-

properties.sounds - - -

-
-

other fields are defined by other properties such as properties.charging.draw_sound and properties.reload -

See also properties
-
See also soundspec
- -
- - - - - -
fire

sound player when firing the weapon

-
-
-
-
-
-

offsets - - -

-
-

a list of tables each containing offset vectors These are required for automatic initialization of offsets. -note rotations are in degrees, and translations are in meters.

-
Example
-
recoil = {
-    gun_axial = {x=0, y=0}, --rotation of the gun around it's origin.
-    player_axial = {x=0, y=0}, --rotation of the gun around the bone it's attached to
-    --translations of gun
-    player_trans = {x=0, y=0, z=0}, --translation of the bone the gun is attached to
-    eye_trans = {x=0, y=0, z=0}, --trnaslation of the player's look
-    gun_tran = {x=0, y=0, z=0}s  --translation of the gun relative to the bone it's attachted to.
-}
-
- -
- - - - - - - - - - - - - - - - -
recoil
sway
walking
breathing
look
-
-
-
-
-

consts - - -

-
-

These are variables that are constant across the class and should usually not ever be changed by instnaces

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KEYFRAME_SAMPLE_PRECISION

frequency of keyframe samples for animation offsets and

-
DEFAULT_MAX_HEAR_DISTANCE

default max hear distance when not specified

-
DEFAULT_FPS

fps=60 animation fps i.e. during firing when no length is specified

-
HAS_RECOIL

bool

-
HAS_BREATHING

bool

-
HAS_SWAY

bool

-
HAS_WAG

bool

-
HAS_GUN_AXIAL_OFFSETS

bool wether the gun rotates on it's own axis instead of the player's view (i.e. ironsight misalignments)

-
ANIMATIONS_OFFSET_AIM

wether animations create an offset

-
LOOP_IDLE_ANIM

whether the idle animation changes or not

-
THIRD_PERSON_GAIN_MULTIPLIER

general gain multiplier for third persons when hearing sounds

-
ROOT_BONE

the root bone of the gun (for animation offsets)

-
MAG_BONE

string="magazine",the bone of the magazine in the gun (for dropping mags)

-
ARM_RIGHT_BONE

string="right_aimpoint", the bone which the right arm aims at to

-
ARM_LEFT_BONE

string="left_aimpoint", the bone which the left arm aims at to

-
VERSION

table version of 4dguns this gun is made for. If left empty it will be assumed it is before 1.3.

-
-
-
-
diff --git a/docs/class/player_model_handler.html b/docs/class/player_model_handler.html index b3ec12b..9dc21ae 100644 --- a/docs/class/player_model_handler.html +++ b/docs/class/player_model_handler.html @@ -16,7 +16,7 @@
-
Previous
+
Previous
Next
@@ -41,7 +41,7 @@
Classes
@@ -53,6 +53,7 @@
  • Bullet_hole
  • Control_handler
  • Gun-methods
  • +
  • Gun
  • diff --git a/docs/index.html b/docs/index.html index cce4631..8a565e0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,7 +16,7 @@
    -
    Next
    +
    Next
    diff --git a/docs/index.js b/docs/index.js index 9ccb3f9..014d889 100644 --- a/docs/index.js +++ b/docs/index.js @@ -1,5 +1,5 @@ var docs = [ -{path:"class/gun.html", type:"class", title:"gun", text:"class fields Defining a gun: *method documentation coming soon (or never...) The appearance and handling of guns by default are defined by two table fields: their consts and their properties. properties define nearly everything, from how a gun handles to how it looks, what model it uses, etc. while consts define attributes that should never change, like bones within the gun, framerates, wether the gun is allowed to have certain attributes at all. The other fields of the class define tracking variables or other important things for the internal workings. There are essentially only 3 fields you must define to register a gun: itemstring, name, and properties. To hold the gun, the item defined in itemstring must actually exist, it will not automatically register. To have a functional gun however, more will need to be changed in terms of properties. it's reccomended that you take a look at existing mods (like guns4d_pack_1) for guidance Guns4d uses a class system for most moving parts- including the gun. New guns therefore are created with the :inherit(def) method, where def is the definition of your new gun- or rather the changed parts of it. So to make a new gun you can run Guns4d.gun:inherit() or you can do the same thing with a seperate class of weapons. Set name to \"__template\" for template classes of guns. for properties: for tables where you wish to delete the parent class's fields altogether (since inheritence prevents this) you can set the field \"__replace_old_table=true\" additionally Please note:* there are likey undocumented fields that are used in internal functions. If you find one, please make an issue on Github."}, +{path:"module/Gun.html", type:"class", title:"gun", text:"class fields Defining a gun: *method documentation coming soon (or never...) The appearance and handling of guns by default are defined by two table fields: their consts and their properties. properties define nearly everything, from how a gun handles to how it looks, what model it uses, etc. while consts define attributes that should never change, like bones within the gun, framerates, wether the gun is allowed to have certain attributes at all. The other fields of the class define tracking variables or other important things for the internal workings. There are essentially only 3 fields you must define to register a gun: itemstring, name, and properties. To hold the gun, the item defined in itemstring must actually exist, it will not automatically register. To have a functional gun however, more will need to be changed in terms of properties. it's reccomended that you take a look at existing mods (like guns4d_pack_1) for guidance Guns4d uses a class system for most moving parts- including the gun. New guns therefore are created with the :inherit(def) method, where def is the definition of your new gun- or rather the changed parts of it. So to make a new gun you can run Guns4d.gun:inherit() or you can do the same thing with a seperate class of weapons. Set name to \"__template\" for template classes of guns. for properties: for tables where you wish to delete the parent class's fields altogether (since inheritence prevents this) you can set the field \"__replace_old_table=true\" additionally Please note:* there are likey undocumented fields that are used in internal functions. If you find one, please make an issue on Github."}, {path:"class/player_model_handler.html", type:"class", title:"Player_model_handler.player_model_handler", text:"player_model_handler defining the player model when holding a gun each player model should have a \"gun holding equivelant\". There are numerous reasons for this first and foremost is that because Minetest is a [redacted mindless insults]. because of this you cannot unset bone offsets and return to normal animations. Bone offsets are needed for the arms to aim at the gun there's no simple way around this fact. Since every model is different custom behavior has to be defined for most."}, {path:"module/misc_helpers.html", type:"module", title:"misc_helpers", text:""}, {path:"module/play_sound.html", type:"module", title:"play_sound", text:"implements tools for quickly playing audio."}, @@ -15,125 +15,125 @@ var docs = [ {path:"module/play_sound.html#guns4d_soundspec.attenuation_rate", type:"field", title:"guns4d_soundspec.attenuation_rate", text:"float the rate of dropoff for a sound. I figure this is a bit more intuitive then jacking the gain up super high for every sound... Set the default in config."}, {path:"module/play_sound.html#guns4d_soundspec.split_audio_by_perspective", type:"field", title:"guns4d_soundspec.split_audio_by_perspective", text:"bool [GUN CLASS SPECIFIC] tells the gun wether to split into third and first person (positionless) audio and adjust gain."}, {path:"module/play_sound.html#guns4d_soundspec.third_person_gain_multiplier", type:"field", title:"guns4d_soundspec.third_person_gain_multiplier", text:"float [GUN CLASS SPECIFIC] replaces the constant/config value \"third_person_gain_multiplier/THIRD_PERSON_GAIN_MULTIPLIER\"."}, -{path:"class/gun.html#gun.properties", type:"field", title:"gun.properties", text:"properties which define the vast majority of gun attributes and may change accross instances"}, -{path:"class/gun.html#gun.consts", type:"field", title:"gun.consts", text:"constants which define gun attributes and should not be changed in an instance of the gun"}, -{path:"class/gun.html#gun.offsets", type:"field", title:"gun.offsets", text:"runtime storage of offsets generated by recoil sway wag or any other element."}, -{path:"class/gun.html#gun.name", type:"field", title:"gun.name", text:"string the name of the gun. Set to __template for guns which have no instances and serve as a template. It is safe to set name to the same as gun.itemstring"}, -{path:"class/gun.html#gun.itemstring", type:"field", title:"gun.itemstring", text:"string the itemstring of the gun- i.e. \"guns4d_pack_1:m4\". Set to \"\" for __template guns."}, -{path:"class/gun.html#gun.itemstack", type:"field", title:"gun.itemstack", text:"ItemStack the gun itemstack. Remember to player:set_wielded_item(self.itemstack) when making meta or itemstack changes."}, -{path:"class/gun.html#gun.player", type:"field", title:"gun.player", text:"ObjRef the operator of the weapon. This may at some point be deprecated when I start to implement AI/mob usage"}, -{path:"class/gun.html#gun.meta", type:"field", title:"gun.meta", text:"MetaDataRef itemstack meta"}, -{path:"class/gun.html#gun.id", type:"field", title:"gun.id", text:"string the ID of the gun used for tracking of it's inventory"}, -{path:"class/gun.html#gun.gun_entity", type:"field", title:"gun.gun_entity", text:"ObjRef the gun entity"}, -{path:"class/gun.html#gun._registered", type:"field", title:"gun._registered", text:"list of registered guns, *DO NOT MODIFY* I really need a metatable for this class..."}, -{path:"class/gun.html#gun.bolt_charged", type:"field", title:"gun.bolt_charged", text:"bool is the bolt charged"}, -{path:"class/gun.html#gun.particle_spawners", type:"field", title:"gun.particle_spawners", text:"table list of particle spawner handles (generated by firing)"}, -{path:"class/gun.html#gun.current_firemode", type:"field", title:"gun.current_firemode", text:"int the active index of the firemode from firemodes"}, -{path:"class/gun.html#gun.walking_tick", type:"field", title:"gun.walking_tick", text:"float walking time used to generate the figure 8 for wag"}, -{path:"class/gun.html#gun.time_since_last_fire", type:"field", title:"gun.time_since_last_fire", text:"float"}, -{path:"class/gun.html#gun.time_since_creation", type:"field", title:"gun.time_since_creation", text:"float"}, -{path:"class/gun.html#gun.rechamber_time", type:"field", title:"gun.rechamber_time", text:"float time left for the chamber to cycle (for firerates)"}, -{path:"class/gun.html#gun.burst_queue", type:"field", title:"gun.burst_queue", text:"int number of rounds left that need to be fired after a burst fire"}, -{path:"class/gun.html#gun.muzzle_flash", type:"field", title:"gun.muzzle_flash", text:"function"}, -{path:"class/gun.html#gun.gun_translation", type:"field", title:"gun.gun_translation", text:"vec3 translation of the gun relative to the \"gun\" bone or the player axial rotation."}, -{path:"class/gun.html#gun.property_modifiers", type:"field", title:"gun.property_modifiers", text:"table indexed list of functions which are called when the gun's properties need to be built. This is used for things like attachments, etc."}, -{path:"class/gun.html#gun.attached_objects", type:"field", title:"gun.attached_objects", text:"table a list of ObjRefs that are attached to the gun as a result of attached_objects"}, -{path:"class/gun.html#gun.subclass_instances", type:"field", title:"gun.subclass_instances", text:"table list of subclass instances (i.e. Sprite_scope)"}, -{path:"class/gun.html#lvl1_fields.properties.hip", type:"field", title:"lvl1_fields.properties.hip", text:"table hipfire properties"}, -{path:"class/gun.html#lvl1_fields.properties.ads", type:"field", title:"lvl1_fields.properties.ads", text:"table aiming (\"aiming down sights\") properties"}, -{path:"class/gun.html#lvl1_fields.properties.firemodes", type:"field", title:"lvl1_fields.properties.firemodes", text:"table list of firemodes"}, -{path:"class/gun.html#lvl1_fields.properties.recoil", type:"field", title:"lvl1_fields.properties.recoil", text:"table defines the guns recoil"}, -{path:"class/gun.html#lvl1_fields.properties.sway", type:"field", title:"lvl1_fields.properties.sway", text:"table defines the guns idle sway"}, -{path:"class/gun.html#lvl1_fields.properties.wag", type:"field", title:"lvl1_fields.properties.wag", text:"table defines the movement of the gun while walking"}, -{path:"class/gun.html#lvl1_fields.properties.charging", type:"field", title:"lvl1_fields.properties.charging", text:"table defines how rounds are chambered into the gun"}, -{path:"class/gun.html#lvl1_fields.properties.ammo", type:"field", title:"lvl1_fields.properties.ammo", text:"table defines what ammo the gun uses"}, -{path:"class/gun.html#lvl1_fields.properties.visuals", type:"field", title:"lvl1_fields.properties.visuals", text:"table defines visual attributes of the gun"}, -{path:"class/gun.html#lvl1_fields.properties.sounds", type:"field", title:"lvl1_fields.properties.sounds", text:"table defines sounds to be used by functions of the gun"}, -{path:"class/gun.html#lvl1_fields.properties.inventory", type:"field", title:"lvl1_fields.properties.inventory", text:"table inventory related attributes"}, -{path:"class/gun.html#lvl1_fields.properties.initial_vertical_rotation", type:"field", title:"lvl1_fields.properties.initial_vertical_rotation", text:"float starting vertical rotation of the gun"}, -{path:"class/gun.html#lvl1_fields.properties.breathing_scale", type:"field", title:"lvl1_fields.properties.breathing_scale", text:"float=.5 max angular deviation (vertical) from breathing"}, -{path:"class/gun.html#lvl1_fields.properties.flash_offset", type:"field", title:"lvl1_fields.properties.flash_offset", text:"vector the offset from the center of the muzzle flash. Used by fire()"}, -{path:"class/gun.html#lvl1_fields.properties.firerateRPM", type:"field", title:"lvl1_fields.properties.firerateRPM", text:"int=600 The number of rounds (cartidges) this gun can throw per minute. Used by update(), fire() and default controls"}, -{path:"class/gun.html#lvl1_fields.properties.reload", type:"field", title:"lvl1_fields.properties.reload", text:"an ordered list of reloading states used by default_controls. the default reload states for a magazine operated weapon, copied from the m4. Example"}, -{path:"class/gun.html#lvl1_fields.properties.model_bounding_box", type:"field", title:"lvl1_fields.properties.model_bounding_box", text:"table (optional) a table {x1,y1,z1, x2,y2,z2} specifying the bounding box of the model. The first 3 (x1,y1,z1) are the lower of their counterparts. This is autogenerated from the model when not present, reccomended that you leave nil."}, -{path:"class/gun.html#lvl1_fields.properties.infinite_inventory_overlay", type:"field", title:"lvl1_fields.properties.infinite_inventory_overlay", text:"string overlay on the item to use when infinite ammo is on"}, -{path:"class/gun.html#lvl1_fields.properties.burst", type:"field", title:"lvl1_fields.properties.burst", text:"int=3 how many rounds in burst using when firemode is at \"burst\""}, -{path:"class/gun.html#lvl1_fields.properties.pc_control_actions", type:"field", title:"lvl1_fields.properties.pc_control_actions", text:"table containing a list of actions for PC users passed to Control_handler"}, -{path:"class/gun.html#lvl1_fields.properties.touch_control_actions", type:"field", title:"lvl1_fields.properties.touch_control_actions", text:"table containing a list of actions for touch screen users passed to Control_handler"}, -{path:"class/gun.html#gun.properties.inventory.render_size", type:"field", title:"gun.properties.inventory.render_size", text:"the size in meters to render the gun in it's inventory opened with /guns4d_inv"}, -{path:"class/gun.html#gun.properties.inventory.render_image", type:"field", title:"gun.properties.inventory.render_image", text:"the image of the gun in it's inventory opened with /guns4d_inv"}, -{path:"class/gun.html#gun.properties.inventory.firemode_inventory_overlays", type:"field", title:"gun.properties.inventory.firemode_inventory_overlays", text:"table of firemodes and their overlays in the player's inventory when the gun is on that firemode"}, -{path:"class/gun.html#gun.properties.inventory.inventory_image_magless", type:"field", title:"gun.properties.inventory.inventory_image_magless", text:"string (optional) inventory image for when the gun has no magazine"}, -{path:"class/gun.html#gun.properties.inventory.inventory_image", type:"field", title:"gun.properties.inventory.inventory_image", text:"string inventory image for when the gun is loaded. This is added automatically during construction as the item's wield image."}, -{path:"class/gun.html#gun.properties.subclsses.ammo_handler", type:"field", title:"gun.properties.subclsses.ammo_handler", text:"Ammo_handler the class (based on) ammo_handler to create an instance of and use. Default is Guns4d.ammo_handler"}, -{path:"class/gun.html#gun.properties.subclsses.part_handler", type:"field", title:"gun.properties.subclsses.part_handler", text:"part_handler Part_handler class to use. Default is Guns4d.part_handler"}, -{path:"class/gun.html#gun.properties.subclsses.sprite_scope", type:"field", title:"gun.properties.subclsses.sprite_scope", text:"Sprite_scope sprite scope class to use. Nil by default, inherit Sprite_scope for class (*documentation needed, reccomended contact for help if working with it*)"}, -{path:"class/gun.html#gun.properties.subclsses.crosshair", type:"field", title:"gun.properties.subclsses.crosshair", text:"Dynamic_crosshair crosshair class to use. Nil by default, set to Guns4d.Dynamic_crosshair for a generic circular expanding reticle."}, -{path:"class/gun.html#gun.properties.ads.offset", type:"field", title:"gun.properties.ads.offset", text:"vector the offset of the gun relative to the eye's position at hip."}, -{path:"class/gun.html#gun.properties.ads.horizontal_offset", type:"field", title:"gun.properties.ads.horizontal_offset", text:"float the horizontal offset of the eye when aiming"}, -{path:"class/gun.html#gun.properties.ads.aim_time", type:"field", title:"gun.properties.ads.aim_time", text:"the time it takes to go into full aim"}, -{path:"class/gun.html#gun.properties.hip.offset", type:"field", title:"gun.properties.hip.offset", text:"vector the offset of the gun (relative to the right arm's default position) at hip."}, -{path:"class/gun.html#gun.properties.hip.axis_rotation_ratio", type:"field", title:"gun.properties.hip.axis_rotation_ratio", text:"the ratio that the look rotation is expressed through player_axial (rotated around the viewport) rotation as opposed to gun_axial (rotating the entity)."}, -{path:"class/gun.html#gun.properties.hip.sway_vel_mul", type:"field", title:"gun.properties.hip.sway_vel_mul", text:"sway speed multiplier while at hip"}, -{path:"class/gun.html#gun.properties.hip.sway_angle_mul", type:"field", title:"gun.properties.hip.sway_angle_mul", text:"sway angle multiplier while at hip"}, -{path:"class/gun.html#gun.properties.firemodes."single"", type:"field", title:"gun.properties.firemodes.\"single\"", text:""}, -{path:"class/gun.html#gun.properties.firemodes."burst"", type:"field", title:"gun.properties.firemodes.\"burst\"", text:""}, -{path:"class/gun.html#gun.properties.firemodes."auto"", type:"field", title:"gun.properties.firemodes.\"auto\"", text:""}, -{path:"class/gun.html#gun.properties.recoil.velocity_correction_factor", type:"field", title:"gun.properties.recoil.velocity_correction_factor", text:"float TL:DR higher decreases recoil at expense of smoothness. 1/value is the deviation of a normalized bell curve, where x is the time since firing. this means that increasing it decreases the time it takes for the angular velocity to fully \"decay\"."}, -{path:"class/gun.html#gun.properties.recoil.target_correction_factor", type:"field", title:"gun.properties.recoil.target_correction_factor", text:"float Correction of recoil offset per second is calculated as such: target_correction_factor[axis]time_since_firerecoil[axis]"}, -{path:"class/gun.html#gun.properties.recoil.target_correction_max_rate", type:"field", title:"gun.properties.recoil.target_correction_max_rate", text:"float The maximum rate per second of recoil offset as determined with target_correction_factor"}, -{path:"class/gun.html#gun.properties.recoil.angular_velocity_max", type:"field", title:"gun.properties.recoil.angular_velocity_max", text:"float caps the recoil velocity that can stack up from shots."}, -{path:"class/gun.html#gun.properties.recoil.angular_velocity", type:"field", title:"gun.properties.recoil.angular_velocity", text:"vector {x=float, y=float}, defines the initial angular velocity produced by firing the gun"}, -{path:"class/gun.html#gun.properties.recoil.bias", type:"field", title:"gun.properties.recoil.bias", text:"vector {x=float, y=float}, ranges -1 to 1. Defines the probability of the recoil being positive or negative for any given axis."}, -{path:"class/gun.html#gun.properties.recoil.hipfire_multiplier", type:"field", title:"gun.properties.recoil.hipfire_multiplier", text:"float angular velocity multiplier when firing from the hip"}, -{path:"class/gun.html#gun.properties.sway.max_angle", type:"field", title:"gun.properties.sway.max_angle", text:"float maximum angle of the sway"}, -{path:"class/gun.html#gun.properties.sway.angular_velocity", type:"field", title:"gun.properties.sway.angular_velocity", text:"float angular velocity the sway"}, -{path:"class/gun.html#gun.properties.sway.hipfire_angle_multiplier", type:"field", title:"gun.properties.sway.hipfire_angle_multiplier", text:"float maximum angle multiplier while the gun is at the hip"}, -{path:"class/gun.html#gun.properties.sway.hipfire_velocity_multiplier", type:"field", title:"gun.properties.sway.hipfire_velocity_multiplier", text:"float velocity multiplier while the gun is at the hip"}, -{path:"class/gun.html#gun.properties.wag.cycle_speed", type:"field", title:"gun.properties.wag.cycle_speed", text:"float=1.6 the cycle speed multiplier"}, -{path:"class/gun.html#gun.properties.wag.decay_speed", type:"field", title:"gun.properties.wag.decay_speed", text:"float=1 decay factor when walking has stopped and offset remains."}, -{path:"class/gun.html#gun.properties.wag.offset", type:"field", title:"gun.properties.wag.offset", text:"table containing angular deviation while walking in the same format as an offset vector. Acts as a multiplier on the figure-8 generated while walking."}, -{path:"class/gun.html#gun.properties.charging.require_draw_on_swap", type:"field", title:"gun.properties.charging.require_draw_on_swap", text:"bool defines wether the draw animation is played on swap (when loaded). Default true."}, -{path:"class/gun.html#gun.properties.charging.bolt_charge_mode", type:"field", title:"gun.properties.charging.bolt_charge_mode", text:"string \"none\" bolt will never need to be charged after reload, \"catch\" when fired to empty bolt will not need to be charged after reload, \"no_catch\" bolt will always need to be charged after reload."}, -{path:"class/gun.html#gun.properties.charging.draw_time", type:"field", title:"gun.properties.charging.draw_time", text:"float the time it takes to swap to the gun"}, -{path:"class/gun.html#gun.properties.charging.draw_animation", type:"field", title:"gun.properties.charging.draw_animation", text:"string name of the animation to play from visuals.animations. Default \"draw\""}, -{path:"class/gun.html#gun.properties.charging.draw_sound", type:"field", title:"gun.properties.charging.draw_sound", text:"string name of the sound to play from sounds. Default \"draw\""}, -{path:"class/gun.html#gun.properties.ammo.magazine_only", type:"field", title:"gun.properties.ammo.magazine_only", text:"bool wether the gun only uses a magazine or accepts raw ammunition too."}, -{path:"class/gun.html#gun.properties.ammo.accepted_bullets", type:"field", title:"gun.properties.ammo.accepted_bullets", text:"table a list of accepted bullet itemstrings"}, -{path:"class/gun.html#gun.properties.ammo.accepted_magazines", type:"field", title:"gun.properties.ammo.accepted_magazines", text:"table a list of accepted magazine itemstrings"}, -{path:"class/gun.html#gun.properties.ammo.initial_mag", type:"field", title:"gun.properties.ammo.initial_mag", text:"string the mag the gun starts with. Set to \"empty\" for no mag, otherwise it defaults to accepted_magazines[1] (if present)"}, -{path:"class/gun.html#gun.properties.visuals.mesh", type:"field", title:"gun.properties.visuals.mesh", text:"name of mesh to display. Currently only supports b3d"}, -{path:"class/gun.html#gun.properties.visuals.textures", type:"field", title:"gun.properties.visuals.textures", text:"list of textures to use."}, -{path:"class/gun.html#gun.properties.visuals.scale", type:"field", title:"gun.properties.visuals.scale", text:"scale multiplier. Default 1"}, -{path:"class/gun.html#gun.properties.visuals.attached_objects", type:"field", title:"gun.properties.visuals.attached_objects", text:"objects that are attached to the gun. This is especially useful for attachments Example"}, -{path:"class/gun.html#gun.properties.visuals.backface_culling", type:"field", title:"gun.properties.visuals.backface_culling", text:"toggles backface culling. Default true"}, -{path:"class/gun.html#gun.properties.visuals.animations", type:"field", title:"gun.properties.visuals.animations", text:"a table of animations. Indexes define the name of the animation to be refrenced by other functions of the gun. should be in the format {x=integer,y=integer} Example There are other animations which are variable which are not listed here, these are usually defined by properties such as: draw_animation"}, -{path:"class/gun.html#gun.properties.sounds.fire", type:"field", title:"gun.properties.sounds.fire", text:"sound player when firing the weapon"}, -{path:"class/gun.html#gun.animation_rotation", type:"field", title:"gun.animation_rotation", text:"vector containing the rotation offset from the current frame, this will be factored into the gun's direction if {@consts.ANIMATIONS_OFFSET_AIM}=true"}, -{path:"class/gun.html#gun.animation_translation", type:"field", title:"gun.animation_translation", text:"vector containing the translational/positional offset from the current frame"}, -{path:"class/gun.html#gun.total_offsets", type:"field", title:"gun.total_offsets", text:"all offsets from gun.offset of a type added together gun in the same format as a an offset (that is, five vectors, gun_axial, player_axial, etc.). Note that if offsets are changed after update, this will not be updated automatically until the next update. update_rotations() must be called to do so."}, -{path:"class/gun.html#gun.velocities", type:"field", title:"gun.velocities", text:"velocities in the format of offsets, but only containing angular (gun_axial and player_axial) offsets."}, -{path:"class/gun.html#lvl1_fields.offsets.recoil", type:"field", title:"lvl1_fields.offsets.recoil", text:""}, -{path:"class/gun.html#lvl1_fields.offsets.sway", type:"field", title:"lvl1_fields.offsets.sway", text:""}, -{path:"class/gun.html#lvl1_fields.offsets.walking", type:"field", title:"lvl1_fields.offsets.walking", text:""}, -{path:"class/gun.html#lvl1_fields.offsets.breathing", type:"field", title:"lvl1_fields.offsets.breathing", text:""}, -{path:"class/gun.html#lvl1_fields.offsets.look", type:"field", title:"lvl1_fields.offsets.look", text:""}, -{path:"class/gun.html#lvl1_fields.consts.KEYFRAME_SAMPLE_PRECISION", type:"field", title:"lvl1_fields.consts.KEYFRAME_SAMPLE_PRECISION", text:"frequency of keyframe samples for animation offsets and"}, -{path:"class/gun.html#lvl1_fields.consts.DEFAULT_MAX_HEAR_DISTANCE", type:"field", title:"lvl1_fields.consts.DEFAULT_MAX_HEAR_DISTANCE", text:"default max hear distance when not specified"}, -{path:"class/gun.html#lvl1_fields.consts.DEFAULT_FPS", type:"field", title:"lvl1_fields.consts.DEFAULT_FPS", text:"fps=60 animation fps i.e. during firing when no length is specified"}, -{path:"class/gun.html#lvl1_fields.consts.HAS_RECOIL", type:"field", title:"lvl1_fields.consts.HAS_RECOIL", text:"bool"}, -{path:"class/gun.html#lvl1_fields.consts.HAS_BREATHING", type:"field", title:"lvl1_fields.consts.HAS_BREATHING", text:"bool"}, -{path:"class/gun.html#lvl1_fields.consts.HAS_SWAY", type:"field", title:"lvl1_fields.consts.HAS_SWAY", text:"bool"}, -{path:"class/gun.html#lvl1_fields.consts.HAS_WAG", type:"field", title:"lvl1_fields.consts.HAS_WAG", text:"bool"}, -{path:"class/gun.html#lvl1_fields.consts.HAS_GUN_AXIAL_OFFSETS", type:"field", title:"lvl1_fields.consts.HAS_GUN_AXIAL_OFFSETS", text:"bool wether the gun rotates on it's own axis instead of the player's view (i.e. ironsight misalignments)"}, -{path:"class/gun.html#lvl1_fields.consts.ANIMATIONS_OFFSET_AIM", type:"field", title:"lvl1_fields.consts.ANIMATIONS_OFFSET_AIM", text:"wether animations create an offset"}, -{path:"class/gun.html#lvl1_fields.consts.LOOP_IDLE_ANIM", type:"field", title:"lvl1_fields.consts.LOOP_IDLE_ANIM", text:"whether the idle animation changes or not"}, -{path:"class/gun.html#lvl1_fields.consts.THIRD_PERSON_GAIN_MULTIPLIER", type:"field", title:"lvl1_fields.consts.THIRD_PERSON_GAIN_MULTIPLIER", text:"general gain multiplier for third persons when hearing sounds"}, -{path:"class/gun.html#lvl1_fields.consts.ROOT_BONE", type:"field", title:"lvl1_fields.consts.ROOT_BONE", text:"the root bone of the gun (for animation offsets)"}, -{path:"class/gun.html#lvl1_fields.consts.MAG_BONE", type:"field", title:"lvl1_fields.consts.MAG_BONE", text:"string=\"magazine\",the bone of the magazine in the gun (for dropping mags)"}, -{path:"class/gun.html#lvl1_fields.consts.ARM_RIGHT_BONE", type:"field", title:"lvl1_fields.consts.ARM_RIGHT_BONE", text:"string=\"right_aimpoint\", the bone which the right arm aims at to"}, -{path:"class/gun.html#lvl1_fields.consts.ARM_LEFT_BONE", type:"field", title:"lvl1_fields.consts.ARM_LEFT_BONE", text:"string=\"left_aimpoint\", the bone which the left arm aims at to"}, -{path:"class/gun.html#lvl1_fields.consts.VERSION", type:"field", title:"lvl1_fields.consts.VERSION", text:"table version of 4dguns this gun is made for. If left empty it will be assumed it is before 1.3."}, +{path:"module/Gun.html#Gun.properties", type:"field", title:"Gun.properties", text:"properties which define the vast majority of gun attributes and may change accross instances"}, +{path:"module/Gun.html#Gun.consts", type:"field", title:"Gun.consts", text:"constants which define gun attributes and should not be changed in an instance of the gun"}, +{path:"module/Gun.html#Gun.offsets", type:"field", title:"Gun.offsets", text:"runtime storage of offsets generated by recoil sway wag or any other element."}, +{path:"module/Gun.html#Gun.name", type:"field", title:"Gun.name", text:"string the name of the gun. Set to __template for guns which have no instances and serve as a template. It is safe to set name to the same as gun.itemstring"}, +{path:"module/Gun.html#Gun.itemstring", type:"field", title:"Gun.itemstring", text:"string the itemstring of the gun- i.e. \"guns4d_pack_1:m4\". Set to \"\" for __template guns."}, +{path:"module/Gun.html#Gun.itemstack", type:"field", title:"Gun.itemstack", text:"ItemStack the gun itemstack. Remember to player:set_wielded_item(self.itemstack) when making meta or itemstack changes."}, +{path:"module/Gun.html#Gun.player", type:"field", title:"Gun.player", text:"ObjRef the operator of the weapon. This may at some point be deprecated when I start to implement AI/mob usage"}, +{path:"module/Gun.html#Gun.meta", type:"field", title:"Gun.meta", text:"MetaDataRef itemstack meta"}, +{path:"module/Gun.html#Gun.id", type:"field", title:"Gun.id", text:"string the ID of the gun used for tracking of it's inventory"}, +{path:"module/Gun.html#Gun.gun_entity", type:"field", title:"Gun.gun_entity", text:"ObjRef the gun entity"}, +{path:"module/Gun.html#Gun._registered", type:"field", title:"Gun._registered", text:"list of registered guns, *DO NOT MODIFY* I really need a metatable for this class..."}, +{path:"module/Gun.html#Gun.bolt_charged", type:"field", title:"Gun.bolt_charged", text:"bool is the bolt charged"}, +{path:"module/Gun.html#Gun.particle_spawners", type:"field", title:"Gun.particle_spawners", text:"table list of particle spawner handles (generated by firing)"}, +{path:"module/Gun.html#Gun.current_firemode", type:"field", title:"Gun.current_firemode", text:"int the active index of the firemode from firemodes"}, +{path:"module/Gun.html#Gun.walking_tick", type:"field", title:"Gun.walking_tick", text:"float walking time used to generate the figure 8 for wag"}, +{path:"module/Gun.html#Gun.time_since_last_fire", type:"field", title:"Gun.time_since_last_fire", text:"float"}, +{path:"module/Gun.html#Gun.time_since_creation", type:"field", title:"Gun.time_since_creation", text:"float"}, +{path:"module/Gun.html#Gun.rechamber_time", type:"field", title:"Gun.rechamber_time", text:"float time left for the chamber to cycle (for firerates)"}, +{path:"module/Gun.html#Gun.burst_queue", type:"field", title:"Gun.burst_queue", text:"int number of rounds left that need to be fired after a burst fire"}, +{path:"module/Gun.html#Gun.muzzle_flash", type:"field", title:"Gun.muzzle_flash", text:"function"}, +{path:"module/Gun.html#Gun.gun_translation", type:"field", title:"Gun.gun_translation", text:"vec3 translation of the gun relative to the \"gun\" bone or the player axial rotation."}, +{path:"module/Gun.html#Gun.property_modifiers", type:"field", title:"Gun.property_modifiers", text:"table indexed list of functions which are called when the gun's properties need to be built. This is used for things like attachments, etc."}, +{path:"module/Gun.html#Gun.attached_objects", type:"field", title:"Gun.attached_objects", text:"table a list of ObjRefs that are attached to the gun as a result of attached_objects"}, +{path:"module/Gun.html#Gun.subclass_instances", type:"field", title:"Gun.subclass_instances", text:"table list of subclass instances (i.e. Sprite_scope)"}, +{path:"module/Gun.html#lvl1_fields.properties.hip", type:"field", title:"lvl1_fields.properties.hip", text:"table hipfire properties"}, +{path:"module/Gun.html#lvl1_fields.properties.ads", type:"field", title:"lvl1_fields.properties.ads", text:"table aiming (\"aiming down sights\") properties"}, +{path:"module/Gun.html#lvl1_fields.properties.firemodes", type:"field", title:"lvl1_fields.properties.firemodes", text:"table list of firemodes"}, +{path:"module/Gun.html#lvl1_fields.properties.recoil", type:"field", title:"lvl1_fields.properties.recoil", text:"table defines the guns recoil"}, +{path:"module/Gun.html#lvl1_fields.properties.sway", type:"field", title:"lvl1_fields.properties.sway", text:"table defines the guns idle sway"}, +{path:"module/Gun.html#lvl1_fields.properties.wag", type:"field", title:"lvl1_fields.properties.wag", text:"table defines the movement of the gun while walking"}, +{path:"module/Gun.html#lvl1_fields.properties.charging", type:"field", title:"lvl1_fields.properties.charging", text:"table defines how rounds are chambered into the gun"}, +{path:"module/Gun.html#lvl1_fields.properties.ammo", type:"field", title:"lvl1_fields.properties.ammo", text:"table defines what ammo the gun uses"}, +{path:"module/Gun.html#lvl1_fields.properties.visuals", type:"field", title:"lvl1_fields.properties.visuals", text:"table defines visual attributes of the gun"}, +{path:"module/Gun.html#lvl1_fields.properties.sounds", type:"field", title:"lvl1_fields.properties.sounds", text:"table defines sounds to be used by functions of the gun"}, +{path:"module/Gun.html#lvl1_fields.properties.inventory", type:"field", title:"lvl1_fields.properties.inventory", text:"table inventory related attributes"}, +{path:"module/Gun.html#lvl1_fields.properties.initial_vertical_rotation", type:"field", title:"lvl1_fields.properties.initial_vertical_rotation", text:"float starting vertical rotation of the gun"}, +{path:"module/Gun.html#lvl1_fields.properties.breathing_scale", type:"field", title:"lvl1_fields.properties.breathing_scale", text:"float=.5 max angular deviation (vertical) from breathing"}, +{path:"module/Gun.html#lvl1_fields.properties.flash_offset", type:"field", title:"lvl1_fields.properties.flash_offset", text:"vector the offset from the center of the muzzle flash. Used by fire()"}, +{path:"module/Gun.html#lvl1_fields.properties.firerateRPM", type:"field", title:"lvl1_fields.properties.firerateRPM", text:"int=600 The number of rounds (cartidges) this gun can throw per minute. Used by update(), fire() and default controls"}, +{path:"module/Gun.html#lvl1_fields.properties.reload", type:"field", title:"lvl1_fields.properties.reload", text:"an ordered list of reloading states used by default_controls. the default reload states for a magazine operated weapon, copied from the m4. Example"}, +{path:"module/Gun.html#lvl1_fields.properties.model_bounding_box", type:"field", title:"lvl1_fields.properties.model_bounding_box", text:"table (optional) a table {x1,y1,z1, x2,y2,z2} specifying the bounding box of the model. The first 3 (x1,y1,z1) are the lower of their counterparts. This is autogenerated from the model when not present, reccomended that you leave nil."}, +{path:"module/Gun.html#lvl1_fields.properties.infinite_inventory_overlay", type:"field", title:"lvl1_fields.properties.infinite_inventory_overlay", text:"string overlay on the item to use when infinite ammo is on"}, +{path:"module/Gun.html#lvl1_fields.properties.burst", type:"field", title:"lvl1_fields.properties.burst", text:"int=3 how many rounds in burst using when firemode is at \"burst\""}, +{path:"module/Gun.html#lvl1_fields.properties.pc_control_actions", type:"field", title:"lvl1_fields.properties.pc_control_actions", text:"table containing a list of actions for PC users passed to Control_handler"}, +{path:"module/Gun.html#lvl1_fields.properties.touch_control_actions", type:"field", title:"lvl1_fields.properties.touch_control_actions", text:"table containing a list of actions for touch screen users passed to Control_handler"}, +{path:"module/Gun.html#gun.properties.inventory.render_size", type:"field", title:"gun.properties.inventory.render_size", text:"the size in meters to render the gun in it's inventory opened with /guns4d_inv"}, +{path:"module/Gun.html#gun.properties.inventory.render_image", type:"field", title:"gun.properties.inventory.render_image", text:"the image of the gun in it's inventory opened with /guns4d_inv"}, +{path:"module/Gun.html#gun.properties.inventory.firemode_inventory_overlays", type:"field", title:"gun.properties.inventory.firemode_inventory_overlays", text:"table of firemodes and their overlays in the player's inventory when the gun is on that firemode"}, +{path:"module/Gun.html#gun.properties.inventory.inventory_image_magless", type:"field", title:"gun.properties.inventory.inventory_image_magless", text:"string (optional) inventory image for when the gun has no magazine"}, +{path:"module/Gun.html#gun.properties.inventory.inventory_image", type:"field", title:"gun.properties.inventory.inventory_image", text:"string inventory image for when the gun is loaded. This is added automatically during construction as the item's wield image."}, +{path:"module/Gun.html#gun.properties.subclsses.ammo_handler", type:"field", title:"gun.properties.subclsses.ammo_handler", text:"Ammo_handler the class (based on) ammo_handler to create an instance of and use. Default is Guns4d.ammo_handler"}, +{path:"module/Gun.html#gun.properties.subclsses.part_handler", type:"field", title:"gun.properties.subclsses.part_handler", text:"part_handler Part_handler class to use. Default is Guns4d.part_handler"}, +{path:"module/Gun.html#gun.properties.subclsses.sprite_scope", type:"field", title:"gun.properties.subclsses.sprite_scope", text:"Sprite_scope sprite scope class to use. Nil by default, inherit Sprite_scope for class (*documentation needed, reccomended contact for help if working with it*)"}, +{path:"module/Gun.html#gun.properties.subclsses.crosshair", type:"field", title:"gun.properties.subclsses.crosshair", text:"Dynamic_crosshair crosshair class to use. Nil by default, set to Guns4d.Dynamic_crosshair for a generic circular expanding reticle."}, +{path:"module/Gun.html#gun.properties.ads.offset", type:"field", title:"gun.properties.ads.offset", text:"vector the offset of the gun relative to the eye's position at hip."}, +{path:"module/Gun.html#gun.properties.ads.horizontal_offset", type:"field", title:"gun.properties.ads.horizontal_offset", text:"float the horizontal offset of the eye when aiming"}, +{path:"module/Gun.html#gun.properties.ads.aim_time", type:"field", title:"gun.properties.ads.aim_time", text:"the time it takes to go into full aim"}, +{path:"module/Gun.html#gun.properties.hip.offset", type:"field", title:"gun.properties.hip.offset", text:"vector the offset of the gun (relative to the right arm's default position) at hip."}, +{path:"module/Gun.html#gun.properties.hip.axis_rotation_ratio", type:"field", title:"gun.properties.hip.axis_rotation_ratio", text:"the ratio that the look rotation is expressed through player_axial (rotated around the viewport) rotation as opposed to gun_axial (rotating the entity)."}, +{path:"module/Gun.html#gun.properties.hip.sway_vel_mul", type:"field", title:"gun.properties.hip.sway_vel_mul", text:"sway speed multiplier while at hip"}, +{path:"module/Gun.html#gun.properties.hip.sway_angle_mul", type:"field", title:"gun.properties.hip.sway_angle_mul", text:"sway angle multiplier while at hip"}, +{path:"module/Gun.html#gun.properties.firemodes."single"", type:"field", title:"gun.properties.firemodes.\"single\"", text:""}, +{path:"module/Gun.html#gun.properties.firemodes."burst"", type:"field", title:"gun.properties.firemodes.\"burst\"", text:""}, +{path:"module/Gun.html#gun.properties.firemodes."auto"", type:"field", title:"gun.properties.firemodes.\"auto\"", text:""}, +{path:"module/Gun.html#gun.properties.recoil.velocity_correction_factor", type:"field", title:"gun.properties.recoil.velocity_correction_factor", text:"float TL:DR higher decreases recoil at expense of smoothness. 1/value is the deviation of a normalized bell curve, where x is the time since firing. this means that increasing it decreases the time it takes for the angular velocity to fully \"decay\"."}, +{path:"module/Gun.html#gun.properties.recoil.target_correction_factor", type:"field", title:"gun.properties.recoil.target_correction_factor", text:"float Correction of recoil offset per second is calculated as such: target_correction_factor[axis]time_since_firerecoil[axis]"}, +{path:"module/Gun.html#gun.properties.recoil.target_correction_max_rate", type:"field", title:"gun.properties.recoil.target_correction_max_rate", text:"float The maximum rate per second of recoil offset as determined with target_correction_factor"}, +{path:"module/Gun.html#gun.properties.recoil.angular_velocity_max", type:"field", title:"gun.properties.recoil.angular_velocity_max", text:"float caps the recoil velocity that can stack up from shots."}, +{path:"module/Gun.html#gun.properties.recoil.angular_velocity", type:"field", title:"gun.properties.recoil.angular_velocity", text:"vector {x=float, y=float}, defines the initial angular velocity produced by firing the gun"}, +{path:"module/Gun.html#gun.properties.recoil.bias", type:"field", title:"gun.properties.recoil.bias", text:"vector {x=float, y=float}, ranges -1 to 1. Defines the probability of the recoil being positive or negative for any given axis."}, +{path:"module/Gun.html#gun.properties.recoil.hipfire_multiplier", type:"field", title:"gun.properties.recoil.hipfire_multiplier", text:"float angular velocity multiplier when firing from the hip"}, +{path:"module/Gun.html#gun.properties.sway.max_angle", type:"field", title:"gun.properties.sway.max_angle", text:"float maximum angle of the sway"}, +{path:"module/Gun.html#gun.properties.sway.angular_velocity", type:"field", title:"gun.properties.sway.angular_velocity", text:"float angular velocity the sway"}, +{path:"module/Gun.html#gun.properties.sway.hipfire_angle_multiplier", type:"field", title:"gun.properties.sway.hipfire_angle_multiplier", text:"float maximum angle multiplier while the gun is at the hip"}, +{path:"module/Gun.html#gun.properties.sway.hipfire_velocity_multiplier", type:"field", title:"gun.properties.sway.hipfire_velocity_multiplier", text:"float velocity multiplier while the gun is at the hip"}, +{path:"module/Gun.html#gun.properties.wag.cycle_speed", type:"field", title:"gun.properties.wag.cycle_speed", text:"float=1.6 the cycle speed multiplier"}, +{path:"module/Gun.html#gun.properties.wag.decay_speed", type:"field", title:"gun.properties.wag.decay_speed", text:"float=1 decay factor when walking has stopped and offset remains."}, +{path:"module/Gun.html#gun.properties.wag.offset", type:"field", title:"gun.properties.wag.offset", text:"table containing angular deviation while walking in the same format as an offset vector. Acts as a multiplier on the figure-8 generated while walking."}, +{path:"module/Gun.html#gun.properties.charging.require_draw_on_swap", type:"field", title:"gun.properties.charging.require_draw_on_swap", text:"bool defines wether the draw animation is played on swap (when loaded). Default true."}, +{path:"module/Gun.html#gun.properties.charging.bolt_charge_mode", type:"field", title:"gun.properties.charging.bolt_charge_mode", text:"string \"none\" bolt will never need to be charged after reload, \"catch\" when fired to empty bolt will not need to be charged after reload, \"no_catch\" bolt will always need to be charged after reload."}, +{path:"module/Gun.html#gun.properties.charging.draw_time", type:"field", title:"gun.properties.charging.draw_time", text:"float the time it takes to swap to the gun"}, +{path:"module/Gun.html#gun.properties.charging.draw_animation", type:"field", title:"gun.properties.charging.draw_animation", text:"string name of the animation to play from visuals.animations. Default \"draw\""}, +{path:"module/Gun.html#gun.properties.charging.draw_sound", type:"field", title:"gun.properties.charging.draw_sound", text:"string name of the sound to play from sounds. Default \"draw\""}, +{path:"module/Gun.html#gun.properties.ammo.magazine_only", type:"field", title:"gun.properties.ammo.magazine_only", text:"bool wether the gun only uses a magazine or accepts raw ammunition too."}, +{path:"module/Gun.html#gun.properties.ammo.accepted_bullets", type:"field", title:"gun.properties.ammo.accepted_bullets", text:"table a list of accepted bullet itemstrings"}, +{path:"module/Gun.html#gun.properties.ammo.accepted_magazines", type:"field", title:"gun.properties.ammo.accepted_magazines", text:"table a list of accepted magazine itemstrings"}, +{path:"module/Gun.html#gun.properties.ammo.initial_mag", type:"field", title:"gun.properties.ammo.initial_mag", text:"string the mag the gun starts with. Set to \"empty\" for no mag, otherwise it defaults to accepted_magazines[1] (if present)"}, +{path:"module/Gun.html#gun.properties.visuals.mesh", type:"field", title:"gun.properties.visuals.mesh", text:"name of mesh to display. Currently only supports b3d"}, +{path:"module/Gun.html#gun.properties.visuals.textures", type:"field", title:"gun.properties.visuals.textures", text:"list of textures to use."}, +{path:"module/Gun.html#gun.properties.visuals.scale", type:"field", title:"gun.properties.visuals.scale", text:"scale multiplier. Default 1"}, +{path:"module/Gun.html#gun.properties.visuals.attached_objects", type:"field", title:"gun.properties.visuals.attached_objects", text:"objects that are attached to the gun. This is especially useful for attachments Example"}, +{path:"module/Gun.html#gun.properties.visuals.backface_culling", type:"field", title:"gun.properties.visuals.backface_culling", text:"toggles backface culling. Default true"}, +{path:"module/Gun.html#gun.properties.visuals.animations", type:"field", title:"gun.properties.visuals.animations", text:"a table of animations. Indexes define the name of the animation to be refrenced by other functions of the gun. should be in the format {x=integer,y=integer} Example There are other animations which are variable which are not listed here, these are usually defined by properties such as: draw_animation"}, +{path:"module/Gun.html#gun.properties.sounds.fire", type:"field", title:"gun.properties.sounds.fire", text:"sound player when firing the weapon"}, +{path:"module/Gun.html#Gun.animation_rotation", type:"field", title:"Gun.animation_rotation", text:"vector containing the rotation offset from the current frame, this will be factored into the gun's direction if {@consts.ANIMATIONS_OFFSET_AIM}=true"}, +{path:"module/Gun.html#Gun.animation_translation", type:"field", title:"Gun.animation_translation", text:"vector containing the translational/positional offset from the current frame"}, +{path:"module/Gun.html#Gun.total_offsets", type:"field", title:"Gun.total_offsets", text:"all offsets from gun.offset of a type added together gun in the same format as a an offset (that is, five vectors, gun_axial, player_axial, etc.). Note that if offsets are changed after update, this will not be updated automatically until the next update. update_rotations() must be called to do so."}, +{path:"module/Gun.html#Gun.velocities", type:"field", title:"Gun.velocities", text:"velocities in the format of offsets, but only containing angular (gun_axial and player_axial) offsets."}, +{path:"module/Gun.html#lvl1_fields.offsets.recoil", type:"field", title:"lvl1_fields.offsets.recoil", text:""}, +{path:"module/Gun.html#lvl1_fields.offsets.sway", type:"field", title:"lvl1_fields.offsets.sway", text:""}, +{path:"module/Gun.html#lvl1_fields.offsets.walking", type:"field", title:"lvl1_fields.offsets.walking", text:""}, +{path:"module/Gun.html#lvl1_fields.offsets.breathing", type:"field", title:"lvl1_fields.offsets.breathing", text:""}, +{path:"module/Gun.html#lvl1_fields.offsets.look", type:"field", title:"lvl1_fields.offsets.look", text:""}, +{path:"module/Gun.html#lvl1_fields.consts.KEYFRAME_SAMPLE_PRECISION", type:"field", title:"lvl1_fields.consts.KEYFRAME_SAMPLE_PRECISION", text:"frequency of keyframe samples for animation offsets and"}, +{path:"module/Gun.html#lvl1_fields.consts.DEFAULT_MAX_HEAR_DISTANCE", type:"field", title:"lvl1_fields.consts.DEFAULT_MAX_HEAR_DISTANCE", text:"default max hear distance when not specified"}, +{path:"module/Gun.html#lvl1_fields.consts.DEFAULT_FPS", type:"field", title:"lvl1_fields.consts.DEFAULT_FPS", text:"fps=60 animation fps i.e. during firing when no length is specified"}, +{path:"module/Gun.html#lvl1_fields.consts.HAS_RECOIL", type:"field", title:"lvl1_fields.consts.HAS_RECOIL", text:"bool"}, +{path:"module/Gun.html#lvl1_fields.consts.HAS_BREATHING", type:"field", title:"lvl1_fields.consts.HAS_BREATHING", text:"bool"}, +{path:"module/Gun.html#lvl1_fields.consts.HAS_SWAY", type:"field", title:"lvl1_fields.consts.HAS_SWAY", text:"bool"}, +{path:"module/Gun.html#lvl1_fields.consts.HAS_WAG", type:"field", title:"lvl1_fields.consts.HAS_WAG", text:"bool"}, +{path:"module/Gun.html#lvl1_fields.consts.HAS_GUN_AXIAL_OFFSETS", type:"field", title:"lvl1_fields.consts.HAS_GUN_AXIAL_OFFSETS", text:"bool wether the gun rotates on it's own axis instead of the player's view (i.e. ironsight misalignments)"}, +{path:"module/Gun.html#lvl1_fields.consts.ANIMATIONS_OFFSET_AIM", type:"field", title:"lvl1_fields.consts.ANIMATIONS_OFFSET_AIM", text:"wether animations create an offset"}, +{path:"module/Gun.html#lvl1_fields.consts.LOOP_IDLE_ANIM", type:"field", title:"lvl1_fields.consts.LOOP_IDLE_ANIM", text:"whether the idle animation changes or not"}, +{path:"module/Gun.html#lvl1_fields.consts.THIRD_PERSON_GAIN_MULTIPLIER", type:"field", title:"lvl1_fields.consts.THIRD_PERSON_GAIN_MULTIPLIER", text:"general gain multiplier for third persons when hearing sounds"}, +{path:"module/Gun.html#lvl1_fields.consts.ROOT_BONE", type:"field", title:"lvl1_fields.consts.ROOT_BONE", text:"the root bone of the gun (for animation offsets)"}, +{path:"module/Gun.html#lvl1_fields.consts.MAG_BONE", type:"field", title:"lvl1_fields.consts.MAG_BONE", text:"string=\"magazine\",the bone of the magazine in the gun (for dropping mags)"}, +{path:"module/Gun.html#lvl1_fields.consts.ARM_RIGHT_BONE", type:"field", title:"lvl1_fields.consts.ARM_RIGHT_BONE", text:"string=\"right_aimpoint\", the bone which the right arm aims at to"}, +{path:"module/Gun.html#lvl1_fields.consts.ARM_LEFT_BONE", type:"field", title:"lvl1_fields.consts.ARM_LEFT_BONE", text:"string=\"left_aimpoint\", the bone which the left arm aims at to"}, +{path:"module/Gun.html#lvl1_fields.consts.VERSION", type:"field", title:"lvl1_fields.consts.VERSION", text:"table version of 4dguns this gun is made for. If left empty it will be assumed it is before 1.3."}, {path:"class/player_model_handler.html#fields.offsets", type:"field", title:"fields.offsets", text:"fields.offsets"}, {path:"module/misc_helpers.html#Guns4d.math.weighted_randoms", type:"function", title:"Guns4d.math.weighted_randoms", text:"picks a random index, with odds based on it's value. Returns the index of the selected."}, {path:"module/play_sound.html#Guns4d.play_sounds", type:"function", title:"Guns4d.play_sounds", text:"allows you to play one or more sounds with more complex features, so sounds can be easily coded for guns without the need for functions. WARNING: this function modifies the tables passed to it, use Guns4d.table.shallow_copy() or table.copy for inputted soundspecs Example"}, diff --git a/docs/manual/changelog.html b/docs/manual/changelog.html index c4331e0..4a14d16 100644 --- a/docs/manual/changelog.html +++ b/docs/manual/changelog.html @@ -16,7 +16,7 @@
    -
    Next
    +
    Next
    diff --git a/docs/module/Bullet_hole.html b/docs/module/Bullet_hole.html index 5a4f543..199ae35 100644 --- a/docs/module/Bullet_hole.html +++ b/docs/module/Bullet_hole.html @@ -39,7 +39,7 @@
    Classes
    @@ -51,6 +51,7 @@
  • Bullet_hole
  • Control_handler
  • Gun-methods
  • +
  • Gun
  • diff --git a/docs/module/Control_handler.html b/docs/module/Control_handler.html index dd80e0d..ddaf3d6 100644 --- a/docs/module/Control_handler.html +++ b/docs/module/Control_handler.html @@ -39,7 +39,7 @@
    Classes
    @@ -51,6 +51,7 @@
  • Bullet_hole
  • Control_handler
  • Gun-methods
  • +
  • Gun
  • diff --git a/docs/module/Gun-methods.html b/docs/module/Gun-methods.html index 5c78fbe..ec6410e 100644 --- a/docs/module/Gun-methods.html +++ b/docs/module/Gun-methods.html @@ -39,7 +39,7 @@
    Classes
    @@ -51,6 +51,7 @@
  • Bullet_hole
  • Control_handler
  • Gun-methods
  • +
  • Gun
  • diff --git a/docs/module/Gun.html b/docs/module/Gun.html index fe03d8a..b753800 100644 --- a/docs/module/Gun.html +++ b/docs/module/Gun.html @@ -3,7 +3,7 @@ - gun - Guns4d + Gun - Guns4d @@ -27,7 +27,7 @@
    Contents
    -

    Module gun - +

    Module Gun +

    -

    module

    - -
    -

    Synopsis

    -
    Attributes
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    properties

    properties which define the vast majority of gun attributes and may change accross instances

    -
    consts

    constants which define gun attributes and should not be changed in an instance of the gun

    -
    offsets

    runtime storage of offsets generated by recoil sway wag or any other element

    -
    name

    string the name of the gun

    -
    itemstring

    string the itemstring of the gun- i.e. "guns4d_pack_1:m4"

    -
    itemstack

    ItemStack the gun itemstack

    -
    player

    ObjRef the operator of the weapon

    -
    meta

    MetaDataRef itemstack meta

    -
    id

    string the ID of the gun used for tracking of it's inventory

    -
    gun_entity

    ObjRef the gun entity

    -
    _registered

    list of registered guns, DO NOT MODIFY I really need a metatable for this class

    -
    bolt_charged

    bool is the bolt charged

    -
    particle_spawners

    table list of particle spawner handles (generated by firing)

    -
    current_firemode

    int the active index of the firemode from firemodes

    -
    walking_tick

    float walking time used to generate the figure 8 for wag

    -
    time_since_last_fire

    float

    -
    time_since_creation

    float

    -
    rechamber_time

    float time left for the chamber to cycle (for firerates)

    -
    burst_queue

    int number of rounds left that need to be fired after a burst fire

    -
    muzzle_flash

    function

    -
    gun_translation

    vec3 translation of the gun relative to the "gun" bone or the player axial rotation

    -
    property_modifiers

    table indexed list of functions which are called when the gun's properties need to be built

    -
    attached_objects

    table a list of ObjRefs that are attached to the gun as a result of attached_objects

    -
    subclass_instances

    table list of subclass instances (i.e. Sprite_scope)

    -
    animation_rotation

    vector containing the rotation offset from the current frame, this will be factored into the gun's direction if {@consts.ANIMATIONS_OFFSET_AIM}=true

    -
    animation_translation

    vector containing the translational/positional offset from the current frame

    -
    total_offsets

    all offsets from gun.offset of a type added together gun in the same format as a an offset (that is, five vectors, gun_axial, player_axial, etc.)

    -
    velocities

    velocities in the format of offsets, but only containing angular (gun_axial and player_axial) offsets

    -
    -
    -
    -
    -gun.properties - -
    -
    -

    properties which define the vast majority of gun attributes and may change accross instances

    - -
    -
    -gun.consts - -
    -
    -

    constants which define gun attributes and should not be changed in an instance of the gun

    - -
    -
    -gun.offsets - -
    -
    -

    runtime storage of offsets generated by recoil sway wag or any other element.

    - -
    -
    -gun.name - -
    -
    -

    string the name of the gun. Set to __template for guns which have no instances and serve as a template. It is safe to set name to the same as gun.itemstring

    - -
    -
    -gun.itemstring - -
    -
    -

    string the itemstring of the gun- i.e. "guns4d_pack_1:m4". Set to "" for __template guns.

    - -
    -
    -gun.itemstack - -
    -
    -

    ItemStack the gun itemstack. Remember to player:set_wielded_item(self.itemstack) when making meta or itemstack changes.

    - -
    -
    -gun.player - -
    -
    -

    ObjRef the operator of the weapon. This may at some point be deprecated when I start to implement AI/mob usage

    - -
    -
    -gun.meta - -
    -
    -

    MetaDataRef itemstack meta

    - -
    -
    -gun.id - -
    -
    -

    string the ID of the gun used for tracking of it's inventory

    - -
    -
    -gun.gun_entity - -
    -
    -

    ObjRef the gun entity

    - -
    -
    -gun._registered - -
    -
    -

    list of registered guns, DO NOT MODIFY I really need a metatable for this class...

    - -
    -
    -gun.bolt_charged - -
    -
    -

    bool is the bolt charged

    - -
    -
    -gun.particle_spawners - -
    -
    -

    table list of particle spawner handles (generated by firing)

    - -
    -
    -gun.current_firemode - -
    -
    -

    int the active index of the firemode from firemodes

    - -
    -
    -gun.walking_tick - -
    -
    -

    float walking time used to generate the figure 8 for wag

    - -
    -
    -gun.time_since_last_fire - -
    -
    -

    float

    - -
    -
    -gun.time_since_creation - -
    -
    -

    float

    - -
    -
    -gun.rechamber_time - -
    -
    -

    float time left for the chamber to cycle (for firerates)

    - -
    -
    -gun.burst_queue - -
    -
    -

    int number of rounds left that need to be fired after a burst fire

    - -
    -
    -gun.muzzle_flash - -
    -
    -

    function

    - -
    -
    -gun.gun_translation - -
    -
    -

    vec3 translation of the gun relative to the "gun" bone or the player axial rotation.

    - -
    -
    -gun.property_modifiers - -
    -
    -

    table indexed list of functions which are called when the gun's properties need to be built. This is used for things like attachments, etc.

    - -
    -
    -gun.attached_objects - -
    -
    -

    table a list of ObjRefs that are attached to the gun as a result of attached_objects

    - -
    -
    -gun.subclass_instances - -
    -
    -

    table list of subclass instances (i.e. Sprite_scope)

    - -
    -
    -gun.animation_rotation - -
    -
    -

    vector containing the rotation offset from the current frame, this will be factored into the gun's direction if {@consts.ANIMATIONS_OFFSET_AIM}=true

    - -
    -
    -gun.animation_translation - -
    -
    -

    vector containing the translational/positional offset from the current frame

    - -
    -
    -gun.total_offsets - -
    -
    -

    all offsets from gun.offset of a type added together gun in the same format as a an offset (that is, five vectors, gun_axial, player_axial, etc.). Note that if -offsets are changed after update, this will not be updated automatically until the next update. update_rotations() must be called to do so.

    - -
    -
    -gun.velocities - -
    -
    -

    velocities in the format of offsets, but only containing angular (gun_axial and player_axial) offsets.

    - -
    -
    @@ -480,57 +105,57 @@ offsets are changed after update, this will not be updated automatically until t - - - - - - - - - - - @@ -601,7 +226,7 @@ offsets are changed after update, this will not be updated automatically until t
    -
    See also properties
    +
    See also properties
    hip

    table hipfire properties

    +

    table hipfire properties

    ads

    table aiming ("aiming down sights") properties

    +

    table aiming ("aiming down sights") properties

    firemodes

    table list of firemodes

    +

    table list of firemodes

    recoil

    table defines the guns recoil

    +

    table defines the guns recoil

    sway

    table defines the guns idle sway

    +

    table defines the guns idle sway

    wag

    table defines the movement of the gun while walking

    +

    table defines the movement of the gun while walking

    charging

    table defines how rounds are chambered into the gun

    +

    table defines how rounds are chambered into the gun

    ammo

    table defines what ammo the gun uses

    +

    table defines what ammo the gun uses

    visuals

    table defines visual attributes of the gun

    +

    table defines visual attributes of the gun

    sounds

    table defines sounds to be used by functions of the gun

    +

    table defines sounds to be used by functions of the gun

    inventory

    table inventory related attributes

    +

    table inventory related attributes

    @@ -640,7 +265,7 @@ offsets are changed after update, this will not be updated automatically until t
    -
    See also properties
    +
    See also properties
    @@ -651,7 +276,7 @@ offsets are changed after update, this will not be updated automatically until t - @@ -674,7 +299,7 @@ offsets are changed after update, this will not be updated automatically until t
    -
    See also properties
    +
    See also properties
    part_handler

    part_handler Part_handler class to use. Default is Guns4d.part_handler

    +

    part_handler Part_handler class to use. Default is Guns4d.part_handler

    @@ -703,7 +328,7 @@ offsets are changed after update, this will not be updated automatically until t
    -
    See also properties
    +
    See also properties
    @@ -738,7 +363,7 @@ offsets are changed after update, this will not be updated automatically until t

    list containing the firemodes of the gun. Default only contains "single". Strings allowed by default: -

    See also properties
    +
    See also properties
    @@ -762,7 +387,7 @@ offsets are changed after update, this will not be updated automatically until t

    IMPORTANT: expects fields to be tables containing a "gun_axial" and "player_axial" field. -

    See also properties
    +
    See also properties
    Example
    property = {
         gun_axial = type
    @@ -790,7 +415,7 @@ this means that increasing it decreases the time it takes for the angular veloci
     
     
    - @@ -823,8 +448,8 @@ this means that increasing it decreases the time it takes for the angular veloci
    -

    IMPORTANT: expects fields to be tables containing a "gun_axial" and "player_axial" field. In the same format as gun.properties.recoil -

    See also properties
    +

    IMPORTANT: expects fields to be tables containing a "gun_axial" and "player_axial" field. In the same format as gun.properties.recoil +

    See also properties
    target_correction_max_rate

    float The maximum rate per second of recoil offset as determined with gun.properties.recoil.target_correction_factor

    +

    float The maximum rate per second of recoil offset as determined with gun.properties.recoil.target_correction_factor

    @@ -858,7 +483,7 @@ this means that increasing it decreases the time it takes for the angular veloci
    -
    See also properties
    +
    See also properties
    @@ -874,7 +499,7 @@ this means that increasing it decreases the time it takes for the angular veloci -
    offset

    table containing angular deviation while walking in the same format as an offset vector. Acts as a multiplier on the figure-8 generated while walking.

    +

    table containing angular deviation while walking in the same format as an offset vector. Acts as a multiplier on the figure-8 generated while walking.

    @@ -887,7 +512,7 @@ this means that increasing it decreases the time it takes for the angular veloci
    -
    See also properties
    +
    See also properties
    @@ -908,12 +533,12 @@ this means that increasing it decreases the time it takes for the angular veloci - -
    draw_animation

    string name of the animation to play from visuals.animations. Default "draw"

    +

    string name of the animation to play from visuals.animations. Default "draw"

    draw_sound

    string name of the sound to play from sounds. Default "draw"

    +

    string name of the sound to play from sounds. Default "draw"

    @@ -926,7 +551,7 @@ this means that increasing it decreases the time it takes for the angular veloci
    -
    See also properties
    +
    See also properties
    @@ -960,7 +585,7 @@ this means that increasing it decreases the time it takes for the angular veloci
    -
    See also properties
    +
    See also properties
    @@ -1012,7 +637,7 @@ should be in the format {x=integer,y=integer}

    }

    There are other animations which are variable which are not listed here, these are usually defined by properties such as: -reload, draw_animation

    +reload, draw_animation

    @@ -1025,8 +650,8 @@ reload, draw
    -

    other fields are defined by other properties such as properties.charging.draw_sound and properties.reload -

    See also properties
    +

    other fields are defined by other properties such as properties.charging.draw_sound and properties.reload +

    See also properties
    See also soundspec
    diff --git a/docs/module/misc_helpers.html b/docs/module/misc_helpers.html index b8cc67a..db0200e 100644 --- a/docs/module/misc_helpers.html +++ b/docs/module/misc_helpers.html @@ -45,7 +45,7 @@ @@ -57,6 +57,7 @@
  • Bullet_hole
  • Control_handler
  • Gun-methods
  • +
  • Gun
  • diff --git a/docs/module/play_sound.html b/docs/module/play_sound.html index d958825..4103e4d 100644 --- a/docs/module/play_sound.html +++ b/docs/module/play_sound.html @@ -41,7 +41,7 @@ @@ -53,6 +53,7 @@
  • Bullet_hole
  • Control_handler
  • Gun-methods
  • +
  • Gun
  • diff --git a/docs/search.html b/docs/search.html index 67b9de1..c5b7ae3 100644 --- a/docs/search.html +++ b/docs/search.html @@ -16,7 +16,7 @@
    diff --git a/generate_docs/luadox/run.bat b/generate_docs/luadox/run.bat index 82ef7b7..7078be7 100644 --- a/generate_docs/luadox/run.bat +++ b/generate_docs/luadox/run.bat @@ -1,4 +1,3 @@ ::literally just so I dont have to open powershell every time. ::python 3.8+ required. -@echo off python ./luadox -c ./luadox.conf \ No newline at end of file