199 lines
4.5 KiB
Markdown
199 lines
4.5 KiB
Markdown
# RCBOWS
|
|
|
|
## function rcbows.register_arrow(name, def)
|
|
Example:
|
|
```
|
|
rcbows.register_arrow("farbows:e_arrow", {
|
|
damage = 5,
|
|
inventory_arrow = {
|
|
name = "farbows:inv_arrow",
|
|
description = S("Arrow"),
|
|
inventory_image = "farbows_arrow.png",
|
|
stack_max = 64, --optional, 99 by default
|
|
}
|
|
sounds = {
|
|
max_hear_distance = 10,
|
|
gain = 0.4,
|
|
},
|
|
})
|
|
```
|
|
## function rcbows.register_bow(name, def)
|
|
Example:
|
|
```
|
|
rcbows.register_bow("farbows:bow_wood", {
|
|
description = S("Wooden Bow"),
|
|
image = "farbows_bow_wood.png",
|
|
strength = 30,
|
|
uses = 150,
|
|
charge_time = 0.5,
|
|
recipe = {
|
|
{"", "group:wood", "farming:string"},
|
|
{"group:wood", "", "farming:string"},
|
|
{"", "group:wood", "farming:string"},
|
|
},
|
|
base_texture = "farbows_base_bow_wood.png",
|
|
overlay_empty = "farbows_overlay_empty.png",
|
|
overlay_charged = "farbows_overlay_charged.png",
|
|
arrows = "farbows:e_arrow",
|
|
sounds = {
|
|
max_hear_distance = 10,
|
|
gain = 0.4,
|
|
}
|
|
})
|
|
```
|
|
|
|
### Arrows
|
|
|
|
You can define "arrows" as a single arrow (string) or a table of arrows.
|
|
|
|
In this case the order matters. The first ones have preference over the last ones when charging the bow.
|
|
|
|
I.e:
|
|
```
|
|
arrows = {"farbows:e_arrow", ""farbows:ice_arrow""},
|
|
```
|
|
|
|
### Viewfinder
|
|
|
|
You can define a viewfinder for a bow. This produces a zoom effect.
|
|
|
|
```
|
|
viewfinder = {
|
|
zoom = 15, --level of zoom; by default 15.
|
|
texture = "" --optional
|
|
}
|
|
```
|
|
|
|
- When the bow charged, toogle the viewfinder with the secondary use (right-click).
|
|
- You can define an optional texture to being showed. If you define texture as empty (""), you get the default rcbows viewfinder texture.
|
|
|
|
## Audio
|
|
|
|
1. If you define ``sounds={}``, you get the default sounds.
|
|
|
|
For no sound at all do not declare 'sounds'.
|
|
|
|
Also you can set the sound parameters 'max_hear_distance' and 'gain'.
|
|
|
|
In example:
|
|
```
|
|
sounds = {
|
|
max_hear_distance = 10,
|
|
gain = 0.4,
|
|
}
|
|
```
|
|
|
|
2. You also can define your own soundfiles.
|
|
|
|
You can set "soundfile_draw_bow" and/or "soundfile_fire_arrow" for bows, and "soundfile_hit_arrow" for arrows.
|
|
|
|
In example for a Bow:
|
|
```
|
|
sounds = {
|
|
soundfile_draw_bow = "my_draw_bow"
|
|
soundfile_fire_arrow = "my_fire_arrow"
|
|
max_hear_distance = 5,
|
|
--set the gain by default (0.5)
|
|
}
|
|
```
|
|
|
|
In example for a Arrow:
|
|
```
|
|
sounds = {
|
|
soundfile_hit_arrow = "my_hit_arrow"
|
|
max_hear_distance = 5,
|
|
--set the gain by default (0.5)
|
|
}
|
|
```
|
|
|
|
## Drop
|
|
|
|
By default the arrow drops the inventory_arrow when reachs a solid node.
|
|
|
|
If you want to define another item to drop, define it with 'drop':
|
|
```
|
|
rcbows.register_arrow("farbows:e_arrow", {
|
|
damage = 5,
|
|
inventory_arrow = {
|
|
name = "farbows:inv_arrow",
|
|
description = S("Arrow"),
|
|
inventory_image = "farbows_arrow.png",
|
|
}
|
|
drop = "farbows_drop_arrow"
|
|
})
|
|
```
|
|
|
|
If you want not any drop at all, add:
|
|
```
|
|
drop = "",
|
|
```
|
|
|
|
## Arrow Effects
|
|
You can define some arrow effects
|
|
### replace_node
|
|
Replace the hit node for this one.
|
|
### trail_particle
|
|
Particle texture to create an arrow trail.
|
|
|
|
It can be a string with "texture" only, or a table for animated textures: {texture = "texture", animation = "animation"}.
|
|
### explosion
|
|
It requires "tnt" or "explosion" mods as an optional dependency.
|
|
|
|
It is a table in where to define:
|
|
- mod = "tnt" or "explosions",
|
|
- radius
|
|
- damage = It is "damage_radius" for the "tnt" mod or "strength" for "explosions"
|
|
|
|
|
|
In example:
|
|
```
|
|
rcbows.register_arrow("farbows:fire_arrow", {
|
|
damage = 7,
|
|
inventory_arrow = {
|
|
name = "farbows:inv_fire_arrow",
|
|
description = S("Fire Arrow"),
|
|
inventory_image = "farbows_arrow_fire.png",
|
|
},
|
|
drop = "farbows:inv_arrow",
|
|
effects = {
|
|
replace_node = "fire:basic_flame",
|
|
trail_particle = "farbows_particle_fire.png",
|
|
explosion = {
|
|
mod = "tnt",
|
|
radius= 10,
|
|
damage = 1,
|
|
}
|
|
}
|
|
})
|
|
```
|
|
### water
|
|
An effect that extinguishes the flames.
|
|
|
|
It requires "fire" mod as an optional dependency.
|
|
|
|
It is a table in where to define:
|
|
- flame_node = The name of the flame node to extinguish
|
|
- radius
|
|
- particles = A water particles effect [optional]
|
|
|
|
```
|
|
rcbows.register_arrow("farbows:water_arrow", {
|
|
projectile_texture = "farbows_water_arrow",
|
|
damage = 2,
|
|
inventory_arrow = {
|
|
name = "farbows:inv_water_arrow",
|
|
description = S("Water Arrow"),
|
|
inventory_image = "farbows_arrow_water.png",
|
|
},
|
|
drop = "bucket:bucket_empty",
|
|
effects = {
|
|
trail_particle = "default_water.png",
|
|
water = {
|
|
radius = 5,
|
|
flame_node = "fire:basic_flame",
|
|
particles = true,
|
|
},
|
|
}
|
|
})
|
|
```
|