Compare commits

...

101 Commits

Author SHA1 Message Date
cora e80ce4b758 Merge pull request 'Fix mirrored doors placement rotation' (#2736) from fix_doors_direction into master
Reviewed-on: MineClone2/MineClone2#2736
2022-10-11 09:47:31 +00:00
cora 51e43f7efc Fix mirrored doors rotation 2022-10-11 11:46:08 +02:00
cora dc0ca59534 Merge pull request 'Add new breaking animation by FossFanatic' (#2744) from fossfan_breaking_anim into master
Reviewed-on: MineClone2/MineClone2#2744
Reviewed-by: Nicu <kneekoo@noreply.git.minetest.land>
2022-10-11 09:40:51 +00:00
FossFanatic e35e949833 Add breaking animation by FossFanatic 2022-10-11 11:40:15 +02:00
cora 0b0a48fd10 Merge pull request 'Change torch model, add soul fire flame particle texture' (#2750) from talamh/MineClone2:torch_remodel into master
Reviewed-on: MineClone2/MineClone2#2750
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-11 09:36:49 +00:00
cora 1b6df20c0c Merge pull request 'Adds some mob jockey support' (#2752) from mob_jockey into master
Reviewed-on: MineClone2/MineClone2#2752
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-11 09:30:29 +00:00
epCode 8930f9da45 fix skeleton wielditem 2022-10-10 13:54:51 -07:00
epCode aa2693795d Add Spider Jockey 2022-10-10 13:42:01 -07:00
talamh 23ec60fff0 Change torch model, add soul fire flame particle texture 2022-10-10 20:50:11 +01:00
cora fec0dae4ca Merge pull request 'Make mobs have smooth turning' (#2743) from smooth_mob_turn into master
Reviewed-on: MineClone2/MineClone2#2743
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-10 02:10:53 +00:00
epCode 8cd093afa9 adjust values 2022-10-09 18:43:41 -07:00
epCode 9cf5b2a9f6 make mobs rotate when punched 2022-10-09 18:40:41 -07:00
epCode 8a63e90e4a remove debug message 2022-10-09 18:26:20 -07:00
epCode a16e8f0403 remove all glitchy shaking 2022-10-09 17:41:50 -07:00
epCode 090c5b086a fix mobs shaking a lot 2022-10-09 17:29:28 -07:00
epCode c500dc98f9 fix only hostile mobs using smooth turning 2022-10-09 17:23:14 -07:00
epCode 4a086db4c5 get rid of unecessary "if true" statement 2022-10-10 00:09:06 +00:00
epCode ef980f2ea0 Make mobs have smooth turning 2022-10-10 00:09:06 +00:00
cora 0c21abf28a Merge pull request 'Change Achievements to Advancements, Part 1' (#2681) from advancement_mod_fixes into master
Reviewed-on: MineClone2/MineClone2#2681
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-09 23:27:38 +00:00
PrairieWind 78f1a81d1f Add Advancement Groups (Overworld, Nether, End, Adventure, Husbandry) 2022-10-10 01:10:49 +02:00
PrairieWind 0a33c5b5df Added Types of Advancements (Advancements, Goals, and Challenges) 2022-10-10 01:10:49 +02:00
PrairieWind f9f74d2af7 Changed Achievements to Advancements in player visible text. 2022-10-10 01:10:49 +02:00
cora d43494e3b7 Merge pull request 'Fix dumb mistake in creative crash fix' (#2742) from fix_creative_crash_5.6 into master
Reviewed-on: MineClone2/MineClone2#2742
2022-10-09 23:09:58 +00:00
cora 2a9d704293 Fix dumb mistake in creative crash fix 2022-10-10 01:07:11 +02:00
cora e294466029 Merge pull request 'Fix crash in 5.6 gm-creative digging' (#2734) from fix_creative_crash_5.6 into master
Reviewed-on: MineClone2/MineClone2#2734
2022-10-09 22:53:59 +00:00
cora a1919b572a Fix crash in 5.6 gm-creative digging 2022-10-10 00:52:55 +02:00
cora 24c03c2d32 Merge pull request 'Fix baby zombies being 1/4 vis_size' (#2737) from fix_baby_z_visszie into master
Reviewed-on: MineClone2/MineClone2#2737
2022-10-09 22:50:23 +00:00
cora 2fa2f7cbf9 Fix baby zombies being 1/4 vis_size 2022-10-10 00:49:01 +02:00
cora aea899a569 Merge pull request 'Check enable damage instead of creative mode when appropriate' (#2726) from enable_damage into master
Reviewed-on: MineClone2/MineClone2#2726
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-09 19:51:00 +00:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 36427d5aef Check enable damage instead of creative mode in some cases 2022-10-09 21:45:05 +02:00
cora 3e9cb597e6 Merge pull request 'mcl_title API: enable styling' (#2730) from title-API-fixes into master
Reviewed-on: MineClone2/MineClone2#2730
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-09 19:35:48 +00:00
cora ba6dfc7368 Merge pull request 'Enable mcl_title debug code, debug priv to chatcmds' (#2735) from title-API-fixes_enable-debug into title-API-fixes
Reviewed-on: MineClone2/MineClone2#2735
2022-10-09 19:33:36 +00:00
cora 52ac8ffd43 clarify debug nature of chatcommands 2022-10-09 21:31:23 +02:00
cora 3686d9a79d Enable mcl_title debug code, debug priv to chatcmds 2022-10-08 22:56:40 +02:00
AFCMS d71d1c4b82 mcl_title API: enable styling 2022-10-08 22:46:32 +02:00
cora 0c4edbc4ac Merge pull request 'Flower pot fixes' (#2731) from flowerpot-fixes into master
Reviewed-on: MineClone2/MineClone2#2731
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-08 20:43:19 +00:00
AFCMS 5719637ee7
Flower pot fixes
- More accurate selection and collision box
-  Remove check for `minetest.features.use_texture_alpha_string_modes`
- Use new vectors
- Add some basic type annotations to API functions
2022-10-08 18:31:07 +02:00
cora 3aaf0f3e29 Merge pull request 'Add api and following mobs as starers: cow, chicken, creeper, pig, sheep, skellys. spider, villager, villager_zombie, wolf' (#2716) from new_mobs_look_at_players into master
Reviewed-on: MineClone2/MineClone2#2716
Reviewed-by: cora <cora@noreply.git.minetest.land>
Reviewed-by: 𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 <mrrar@noreply.git.minetest.land>
2022-10-07 16:45:44 +00:00
epCode 3a34773671 (+)polar_bear_head_rotation 2022-10-07 02:45:02 +00:00
epCode 5a14f385a0 (+)zombie_pigman_head_rotation 2022-10-07 02:45:02 +00:00
epCode 029638029d (+)witherskeleton_head_rotation 2022-10-07 02:45:02 +00:00
epCode 1d06ac5774 (+)parrot_head_rotation 2022-10-07 02:45:02 +00:00
epCode 9a338a0eea (+)iron_golem_head_rotation 2022-10-07 02:45:02 +00:00
epCode 30c77a3517 (+)illager_head_rotation 2022-10-07 02:45:02 +00:00
epCode 25cceb58a9 (+)blaze_head_rotation 2022-10-07 02:45:02 +00:00
epCode 8b3087c1d3 (+)rabbit_head_rotation 2022-10-07 02:45:02 +00:00
epCode 690d97bc63 (+)zombie_head_rotation 2022-10-07 02:45:02 +00:00
epCode 683d973d9f (+)Llama_head_rotation 2022-10-07 02:45:02 +00:00
epCode 99350d4dc8 (+)ocelots_head_rotation 2022-10-07 02:45:02 +00:00
epCode bc0d5de1e2 make dogs not so curious 2022-10-07 02:45:02 +00:00
epCode 5f46f9649a Make mobs not always look at you+looks at own kind 2022-10-07 02:45:01 +00:00
epCode c72b1fb9db revert to Mr. Rar's models for fertile mobs. 2022-10-07 02:45:01 +00:00
cora 609f90dd0a Use conditional set_bone_position for mob head swivel 2022-10-07 02:45:01 +00:00
cora 68d04bc4e8 move set_conditionals from mcl_playerplus to mcl_util 2022-10-07 02:45:01 +00:00
epCode 1a6698abda Add api and following mobs as starers: cow, chicken, creeper, pig, sheep, skellys. spider, villager, villager_zombie, wolf 2022-10-07 02:45:01 +00:00
cora 8893241ae9 Merge pull request 'Pull sus_stews update' (#2709) from sus_stew_allium into master
Reviewed-on: MineClone2/MineClone2#2709
2022-10-07 00:22:54 +00:00
MysticTempest 3eb2125538 Add alliums with fire_resistance, and fix eating issue. 2022-10-07 02:20:26 +02:00
chmodsayshello a1bb8812b1 add cora to authors 2022-10-07 02:20:26 +02:00
cora 3b92a5b0d2 Merge pull request 'Fix offhand hud slot incorrect scaling with non 16x texture packs' (#2725) from talamh/MineClone2:offhand_hud into master
Reviewed-on: MineClone2/MineClone2#2725
2022-10-07 00:17:18 +00:00
talamh ecd1162c2d Fix offhand hud slot incorrect scaling with non 16x texture packs 2022-10-06 21:15:15 +01:00
cora 5b3b686452 Merge pull request 'Add donkey and mule inv' (#2691) from donkey_chest into master
Reviewed-on: MineClone2/MineClone2#2691
Reviewed-by: 𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 <mrrar@noreply.git.minetest.land>
2022-10-06 19:44:35 +00:00
cora b3c34bd081 unset item list when dropping inv 2022-10-06 21:43:30 +02:00
cora d202db00b7 Fix llama and donkey/mule drops 2022-10-06 21:43:30 +02:00
cora 8d8d49c87d Add mule, document api additions 2022-10-06 21:43:30 +02:00
cora 7cabdb1707 fix donkey chest texture 2022-10-06 21:43:30 +02:00
cora 9602b564c4 Add donkey inv 2022-10-06 21:43:30 +02:00
cora 8fbb545a70 Merge pull request 'Replace bed nodeboxes with meshes' (#2722) from talamh/MineClone2:bed_mesh into master
Reviewed-on: MineClone2/MineClone2#2722
2022-10-06 19:42:36 +00:00
cora bf74e75ee5 Merge pull request 'Fix mangrove leaves dropping themselves' (#2711) from mangrove_leaves into master
Reviewed-on: MineClone2/MineClone2#2711
Reviewed-by: 𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 <mrrar@noreply.git.minetest.land>
2022-10-06 18:42:35 +00:00
cora 5a977b5b76 Fix mangrove leaves dropping themselves 2022-10-06 20:40:16 +02:00
epCode 5507f62142 Merge pull request 'fix_spider_eyes_memory_fault+die' (#2721) from fix_spider_eyes_memory_fault+die into master
Reviewed-on: MineClone2/MineClone2#2721
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-06 17:45:29 +00:00
epCode 99cc6cf307 Remove Unecessary code in spider for eye removal. 2022-10-06 19:42:29 +02:00
epCode ba383091ad fix eyes staying when mob was killed 2022-10-06 19:42:29 +02:00
epCode b4f2cb61d3 Fix Spider Segmentation fault 2022-10-06 19:42:29 +02:00
cora 9107bfa62d Merge pull request 'Fix double despawn in staticdata/activate (and resulting segfault)' (#2723) from fix_double_despawn into master
Reviewed-on: MineClone2/MineClone2#2723
2022-10-06 17:38:40 +00:00
cora d570a2dda6 Fix double despawn in staticdata/activate 2022-10-06 19:15:14 +02:00
talamh b4859b8e7c Replace bed nodeboxes with meshes 2022-10-06 17:36:51 +01:00
cora 8f5bca7506 Merge pull request 'Add basic sculk' (#2668) from sculk into master
Reviewed-on: MineClone2/MineClone2#2668
Reviewed-by: Johannes Fritz <mrrar@noreply.git.minetest.land>
2022-10-05 22:32:34 +00:00
cora a9be0f1f9d dig sculk veins by water 2022-10-06 00:31:00 +02:00
cora 751b92c3d6 Update spread_to nodes for sculk 2022-10-06 00:31:00 +02:00
cora 6ecd7cfe4c comment out sensor/shrieker code
doesn't work well enough yet
2022-10-06 00:31:00 +02:00
cora 5f559867da Add sculk sounds by thunder1035 2022-10-06 00:31:00 +02:00
cora 7b1de473c3 Clean up mcl_sculk 2022-10-06 00:31:00 +02:00
cora 256d6bded7 Add sculk veins, generate shriekers and sensors 2022-10-06 00:31:00 +02:00
cora 6da1491f14 make xp.throw_xp return the orb objects 2022-10-06 00:31:00 +02:00
cora a6021e7601 Add sculk 2022-10-06 00:31:00 +02:00
cora a2ce3e8a49 Merge pull request 'Make enderman and spider's eyes glow' (#2712) from spider_ender_eyes_glow into master
Reviewed-on: MineClone2/MineClone2#2712
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-05 22:29:36 +00:00
epCode fb878f6814 make enderman's eyes Glow 2022-10-06 00:27:31 +02:00
epCode fcd9854e7c make spider eyes Glow 2022-10-06 00:27:31 +02:00
cora cab4915056 Merge pull request 'Optimize mobs textures and villagers badges messing up non-64px textures (clean version of #2703)' (#2713) from talamh_texture_fixes into master
Reviewed-on: MineClone2/MineClone2#2713
2022-10-05 22:23:27 +00:00
talamh fb5fd6b2e9 Fix villager badges messing up non-64px textures 2022-10-06 00:20:20 +02:00
talamh ad307aa445 Optimize mobs textures with trimage 2022-10-06 00:19:53 +02:00
cora ae61c7835d Merge pull request 'Give the arrows a far less laggy look with an attached particle spawner with critical shot.' (#2710) from Arrow_visual_preformance into master
Reviewed-on: MineClone2/MineClone2#2710
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-05 00:07:12 +00:00
epCode 7e03f86b84 Give the arrows a far less laggy look with an attached particle spawner with critical shot. 2022-10-04 16:46:47 -07:00
cora 60cfbe4bfe Merge pull request 'Mob Spawn Egg Texture Updates' (#2702) from spawn_egg_texture_updates into master
Reviewed-on: MineClone2/MineClone2#2702
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-04 09:39:58 +00:00
PrairieWind 361edc5728 Update forgotten blaze egg texture definition
Sorry, forgot to do this in the main commit, I was wondering why it was throwing errors
2022-10-03 12:01:04 -06:00
PrairieWind d8e2255d76 Added egg textures to register_egg function/api 2022-10-03 11:52:22 -06:00
PrairieWind f0d5080df7 Fixed Free the End advancement icon 2022-10-03 10:31:10 -06:00
PrairieWind aeaaa45026 Merge pull request 'Remove all spawn icons and replace with 2 greyscale images' (#2698) from talamh/MineClone2:master into master
Reviewed-on: MineClone2/MineClone2#2698
Reviewed-by: PrairieWind <prairie.astronomer1@gmail.com>
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-02 23:18:17 +00:00
talamh 147b81bb4f Remove all spawn icons and replace with 2 greyscale images 2022-10-02 16:50:43 +01:00
cora 4080c4ada4 Merge pull request 'Revert llama chest model' (#2695) from llama_model into master
Reviewed-on: MineClone2/MineClone2#2695
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-10-01 21:50:29 +00:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 ac62124708 Revert llama chest model 2022-10-01 11:24:02 -05:00
383 changed files with 2057 additions and 588 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

View File

@ -610,3 +610,95 @@ function mcl_util.get_pointed_thing(player, liquid)
end
end
end
-- This following part is 2 wrapper functions + helpers for
-- object:set_bones
-- and player:set_properties preventing them from being resent on
-- every globalstep when they have not changed.
local function roundN(n, d)
if type(n) ~= "number" then return n end
local m = 10^d
return math.floor(n * m + 0.5) / m
end
local function close_enough(a,b)
local rt=true
if type(a) == "table" and type(b) == "table" then
for k,v in pairs(a) do
if roundN(v,2) ~= roundN(b[k],2) then
rt=false
break
end
end
else
rt = roundN(a,2) == roundN(b,2)
end
return rt
end
local function props_changed(props,oldprops)
local changed=false
local p={}
for k,v in pairs(props) do
if not close_enough(v,oldprops[k]) then
p[k]=v
changed=true
end
end
return changed,p
end
--tests for roundN
local test_round1=15
local test_round2=15.00199999999
local test_round3=15.00111111
local test_round4=15.00999999
assert(roundN(test_round1,2)==roundN(test_round1,2))
assert(roundN(test_round1,2)==roundN(test_round2,2))
assert(roundN(test_round1,2)==roundN(test_round3,2))
assert(roundN(test_round1,2)~=roundN(test_round4,2))
-- tests for close_enough
local test_cb = {-0.35,0,-0.35,0.35,0.8,0.35} --collisionboxes
local test_cb_close = {-0.351213,0,-0.35,0.35,0.8,0.351212}
local test_cb_diff = {-0.35,0,-1.35,0.35,0.8,0.35}
local test_eh = 1.65 --eye height
local test_eh_close = 1.65123123
local test_eh_diff = 1.35
local test_nt = { r = 225, b = 225, a = 225, g = 225 } --nametag
local test_nt_diff = { r = 225, b = 225, a = 0, g = 225 }
assert(close_enough(test_cb,test_cb_close))
assert(not close_enough(test_cb,test_cb_diff))
assert(close_enough(test_eh,test_eh_close))
assert(not close_enough(test_eh,test_eh_diff))
assert(not close_enough(test_nt,test_nt_diff)) --no floats involved here
--tests for properties_changed
local test_properties_set1={collisionbox = {-0.35,0,-0.35,0.35,0.8,0.35}, eye_height = 0.65, nametag_color = { r = 225, b = 225, a = 225, g = 225 }}
local test_properties_set2={collisionbox = {-0.35,0,-0.35,0.35,0.8,0.35}, eye_height = 1.35, nametag_color = { r = 225, b = 225, a = 225, g = 225 }}
local test_p1,_=props_changed(test_properties_set1,test_properties_set1)
local test_p2,_=props_changed(test_properties_set1,test_properties_set2)
assert(not test_p1)
assert(test_p2)
function mcl_util.set_properties(obj,props)
local changed,p=props_changed(props,obj:get_properties())
if changed then
obj:set_properties(p)
end
end
function mcl_util.set_bone_position(obj,b,p,r) --bone,position,rotation
local oldp,oldr=obj:get_bone_position(b)
if vector.equals(vector.round(oldp),vector.round(p)) and vector.equals(vector.round(oldr),vector.round(r)) then
return
end
obj:set_bone_position(b,p,r)
end

View File

@ -1,3 +1,5 @@
local enable_damage = minetest.settings:get_bool("enable_damage")
function mcl_burning.get_storage(obj)
return obj:is_player() and mcl_burning.storage[obj] or obj:get_luaentity()
end
@ -77,7 +79,7 @@ end
-- The effective burn duration is modified by obj's armor protection.
-- If obj was already burning, its burn duration is updated if the current
-- duration is less than burn_time.
-- If obj is dead, fireproof or a creative player, this function does nothing.
-- If obj is dead, fireproof or enable_damage is disabled, this function does nothing.
--
function mcl_burning.set_on_fire(obj, burn_time)
if obj:get_hp() < 0 then
@ -89,8 +91,9 @@ function mcl_burning.set_on_fire(obj, burn_time)
return
end
if obj:is_player() and minetest.is_creative_enabled(obj:get_player_name()) then
if obj:is_player() and not enable_damage then
burn_time = 0
return
else
local max_fire_prot_lvl = 0
local inv = mcl_util.get_inventory(obj)

View File

@ -5,7 +5,9 @@ Inventories for your entities. It's simple. Depend on mcl_entity_invs and regist
* mcl_entity_invs.register_inv("entity:name","Title shown in formspec",inventory_size,disable_on_righclick)
*If disable_on_righclick is true other mods can handle when to show the inventory themselves
* The inventory size can be set dynamically by initializing it with an explicit nil
* mcl_entity_invs.show_inv_form(entity,clicker,"Title shown in formspec")
* mcl_entity_invs.show_inv_form(entity,clicker,[formspec text])
* formspec_text is an additional text that is put after the title
It works by setting up a detached inventory per entity which is accessed by an id/hash generated from the entities position at creation, the progressed gametime at creation and a random salt.

View File

@ -46,11 +46,12 @@ local function save_inv(ent)
end
end
function mcl_entity_invs.show_inv_form(ent,player,show_name)
function mcl_entity_invs.show_inv_form(ent,player,text)
if not ent._inv_id then return end
if not open_invs[ent] then
open_invs[ent] = 0
end
text = text or ""
ent._inv = load_inv(ent,ent._inv_size)
open_invs[ent] = open_invs[ent] + 1
local playername = player:get_player_name()
@ -59,7 +60,7 @@ function mcl_entity_invs.show_inv_form(ent,player,show_name)
local spacing = (9 - cols) / 2
local formspec = "size[9,8.75]"
.. "label[0,0;" .. minetest.formspec_escape(
minetest.colorize("#313131", show_name)) .. "]"
minetest.colorize("#313131", ent._inv_title .. " ".. text)) .. "]"
.. "list[detached:"..ent._inv_id..";main;"..spacing..",0.5;"..cols..","..rows..";]"
.. mcl_formspec.get_itemslot_bg(spacing,0.5,cols,rows)
.. "label[0,4.0;" .. minetest.formspec_escape(
@ -80,6 +81,7 @@ local function drop_inv(ent)
local p = vector.add(pos,vector.new(math.random() - 0.5, math.random()-0.5, math.random()-0.5))
minetest.add_item(p,it)
end
ent._items = nil
end
local function on_remove(self,killer,oldf)
@ -103,6 +105,7 @@ end)
function mcl_entity_invs.register_inv(entity_name,show_name,size,no_on_righclick)
assert(minetest.registered_entities[entity_name],"mcl_entity_invs.register_inv called with invalid entity: "..tostring(entity_name))
minetest.registered_entities[entity_name]._inv_size = size
minetest.registered_entities[entity_name]._inv_title = show_name
local old_oa = minetest.registered_entities[entity_name].on_activate
minetest.registered_entities[entity_name].on_activate = function(self,staticdata,dtime_s)

View File

@ -16,6 +16,29 @@ local CRAMMING_DAMAGE = 3
-- Localize
local S = minetest.get_translator("mcl_mobs")
local function shortest_term_of_yaw_rotatoin(self, rot_origin, rot_target, nums)
if not rot_origin or not rot_target then
return
end
rot_origin = math.deg(rot_origin)
rot_target = math.deg(rot_target)
if math.abs(rot_target - rot_origin) < 180 then
return rot_target - rot_origin
else
if (rot_target - rot_origin) > 0 then
return 360-(rot_target - rot_origin)
else
return (rot_target - rot_origin)+360
end
end
end
-- Invisibility mod check
mcl_mobs.invis = {}
@ -61,6 +84,13 @@ if minetest.settings:get_bool("only_peaceful_mobs", false) then
end)
end
local function dir_to_pitch(dir)
--local dir2 = vector.normalize(dir)
local xz = math.abs(dir.x) + math.abs(dir.z)
return -math.atan2(-dir.y, xz)
end
-- pathfinding settings
local enable_pathfinding = true
local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching
@ -302,25 +332,57 @@ local function update_roll(self)
end
-- set and return valid yaw
local set_yaw = function(self, yaw, delay, dtime)
if self.noyaw then return end
if true then
self.object:set_yaw(yaw)
return yaw
if self._kb_turn then
self._turn_to = yaw
end
--clamp our yaw to a 360 range
if math.deg(self.object:get_yaw()) > 360 then
self.object:set_yaw(math.rad(10))
elseif math.deg(self.object:get_yaw()) < 0 then
self.object:set_yaw(math.rad(350))
end
if not yaw or yaw ~= yaw then
yaw = 0
--calculate the shortest way to turn to find our target
local target_shortest_path = shortest_term_of_yaw_rotatoin(self, self.object:get_yaw(), yaw, true)
--turn in the shortest path possible toward our target. if we are attacking, don't dance.
if math.abs(target_shortest_path) > 100 and (self.attack and self.attack:get_pos() or self.following and self.following:get_pos()) then
if self.following then
target_shortest_path = shortest_term_of_yaw_rotatoin(self, self.object:get_yaw(), minetest.dir_to_yaw(vector.direction(self.object:get_pos(), self.following:get_pos())), true)
else
target_shortest_path = shortest_term_of_yaw_rotatoin(self, self.object:get_yaw(), minetest.dir_to_yaw(vector.direction(self.object:get_pos(), self.attack:get_pos())), true)
end
end
local ddtime = 0.05 --set_tick_rate
if dtime then
ddtime = dtime
end
if math.abs(target_shortest_path) > 280*ddtime then
if target_shortest_path > 0 then
self.object:set_yaw(self.object:get_yaw()+3.6*ddtime)
else
self.object:set_yaw(self.object:get_yaw()-3.6*ddtime)
end
end
delay = delay or 0
yaw = self.object:get_yaw()
if delay == 0 then
if self.shaking and dtime then
yaw = yaw + (random() * 2 - 1) * 5 * dtime
end
self.object:set_yaw(yaw)
update_roll(self)
return yaw
end
@ -405,6 +467,10 @@ local set_animation = function(self, anim, fixed_frame)
return
end
if self.jockey then
anim = "jockey"
end
if flight_check(self) and self.fly and anim == "walk" then anim = "fly" end
self._current_animation = self._current_animation or ""
@ -1459,7 +1525,7 @@ local breed = function(self)
z = 0
})
end
self.animation = nil
local anim = self._current_animation
self._current_animation = nil -- Mobs Redo does nothing otherwise
@ -1903,7 +1969,6 @@ end
-- find someone to attack
local monster_attack = function(self)
if not damage_enabled
or minetest.is_creative_enabled("")
or self.passive ~= false
or self.state == "attack"
or day_docile(self) then
@ -3305,6 +3370,13 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
elseif luaentity and luaentity._knockback then
kb = kb + luaentity._knockback
end
--self._kb_turn = false
self._turn_to=self.object:get_yaw()+0.85
minetest.after(0.2, function()
if self and self.object then
self._kb_turn = true
end
end)
self.object:set_velocity({
x = dir.x * kb,
@ -3391,6 +3463,11 @@ end
local mob_detach_child = function(self, child)
if self.detach_child then
if self.detach_child(self, child) then
return
end
end
if self.driver == child then
self.driver = nil
end
@ -3408,10 +3485,8 @@ local mob_staticdata = function(self)
and ((not self.nametag) or (self.nametag == ""))
and self.lifetimer <= 20 then
if spawn_logging then
minetest.log("action", "[mcl_mobs] Mob "..tostring(self.name).." despawns in mob_staticdata at "..minetest.pos_to_string(self.object:get_pos()))
minetest.log("action", "[mcl_mobs] Mob "..tostring(self.name).." despawns in mob_staticdata at "..minetest.pos_to_string(vector.round(self.object:get_pos())))
end
mcl_burning.extinguish(self.object)
self.object:remove()
return "remove"-- nil
end
@ -3441,21 +3516,19 @@ end
-- activate mob and reload settings
local mob_activate = function(self, staticdata, def, dtime)
if not self.object:get_pos() or staticdata == "remove" then
mcl_burning.extinguish(self.object)
self.object:remove()
return
end
-- remove monsters in peaceful mode
if self.type == "monster"
and minetest.settings:get_bool("only_peaceful_mobs", false) then
mcl_burning.extinguish(self.object)
self.object:remove()
return
end
if staticdata == "remove" then
mcl_burning.extinguish(self.object)
self.object:remove()
return
end
-- load entity variables
local tmp = minetest.deserialize(staticdata)
@ -3667,6 +3740,9 @@ local mob_step = function(self, dtime)
end
-- smooth rotation by ThomasMonroe314
if self._turn_to then
set_yaw(self, self._turn_to, .1)
end
if self.delay and self.delay > 0 then
@ -3710,6 +3786,66 @@ local mob_step = function(self, dtime)
-- end rotation
if self.head_swivel and type(self.head_swivel) == "string" then
local oldp,oldr = self.object:get_bone_position(self.head_swivel)
for _, obj in pairs(minetest.get_objects_inside_radius(pos, 10)) do
if obj:is_player() and not self.attack or obj:get_luaentity() and obj:get_luaentity().name == self.name and self ~= obj:get_luaentity() then
if not self._locked_object then
if math.random(5000/self.curiosity) == 1 then
self._locked_object = obj
end
else
if math.random(10000/self.curiosity) == 1 then
self._locked_object = nil
end
end
end
end
if self.attack then
self._locked_object = self.attack
end
if self._locked_object and (self._locked_object:is_player() or self._locked_object:get_luaentity()) and self._locked_object:get_hp() > 0 then
local _locked_object_eye_height = 1.5
if self._locked_object:get_luaentity() then
_locked_object_eye_height = self._locked_object:get_luaentity().head_eye_height
end
if self._locked_object:is_player() then
_locked_object_eye_height = self._locked_object:get_properties().eye_height
end
local self_rot = self.object:get_rotation()
if self.object:get_attach() then
self_rot = self.object:get_attach():get_rotation()
end
local player_pos = self._locked_object:get_pos()
local direction_player = vector.direction(vector.add(self.object:get_pos(), vector.new(0, self.head_eye_height*.7, 0)), vector.add(player_pos, vector.new(0, _locked_object_eye_height, 0)))
local mob_yaw = math.deg(-(-(self_rot.y)-(-minetest.dir_to_yaw(direction_player))))+self.head_yaw_offset
local mob_pitch = math.deg(-dir_to_pitch(direction_player))*self.head_pitch_multiplier
if (mob_yaw < -60 or mob_yaw > 60) and not (self.attack and self.type == "monster") then
mcl_util.set_bone_position(self.object,self.head_swivel, vector.new(0,self.bone_eye_height,self.horrizonatal_head_height), vector.multiply(oldr, 0.9))
elseif self.attack and self.type == "monster" then
if self.head_yaw == "y" then
mcl_util.set_bone_position(self.object,self.head_swivel, vector.new(0,self.bone_eye_height,self.horrizonatal_head_height), vector.new(mob_pitch, mob_yaw, 0))
elseif self.head_yaw == "z" then
mcl_util.set_bone_position(self.object,self.head_swivel, vector.new(0,self.bone_eye_height,self.horrizonatal_head_height), vector.new(mob_pitch, 0, -mob_yaw))
end
else
if self.head_yaw == "y" then
mcl_util.set_bone_position(self.object,self.head_swivel, vector.new(0,self.bone_eye_height,self.horrizonatal_head_height), vector.new(((mob_pitch-oldr.x)*.3)+oldr.x, ((mob_yaw-oldr.y)*.3)+oldr.y, 0))
elseif self.head_yaw == "z" then
mcl_util.set_bone_position(self.object,self.head_swivel, vector.new(0,self.bone_eye_height,self.horrizonatal_head_height), vector.new(((mob_pitch-oldr.x)*.3)+oldr.x, 0, -(((mob_yaw-oldr.y)*.3)+oldr.y)*3))
end
end
elseif not self._locked_object and math.abs(oldr.y) > 3 and math.abs(oldr.x) < 3 then
mcl_util.set_bone_position(self.object,self.head_swivel, vector.new(0,self.bone_eye_height,self.horrizonatal_head_height), vector.multiply(oldr, 0.9))
else
mcl_util.set_bone_position(self.object,self.head_swivel, vector.new(0,self.bone_eye_height,self.horrizonatal_head_height), vector.new(0,0,0))
end
end
-- run custom function (defined in mob lua file)
if self.do_custom then
@ -3950,6 +4086,14 @@ end
minetest.register_entity(name, {
use_texture_alpha = def.use_texture_alpha,
head_swivel = def.head_swivel or nil, -- bool to activate this function
head_yaw_offset = def.head_yaw_offset or 0, -- for wonkey model bones
head_pitch_multiplier = def.head_pitch_multiplier or 1, --for inverted pitch
bone_eye_height = def.bone_eye_height or 1.4, -- head bone offset
head_eye_height = def.head_eye_height or def.bone_eye_height or 0, -- how hight aproximatly the mobs head is fromm the ground to tell the mob how high to look up at the player
curiosity = def.curiosity or 1, -- how often mob will look at player on idle
head_yaw = def.head_yaw or "y", -- axis to rotate head on
horrizonatal_head_height = def.horrizonatal_head_height or 0,
stepheight = def.stepheight or 0.6,
name = name,
description = def.description,
@ -3962,6 +4106,7 @@ minetest.register_entity(name, {
on_die = def.on_die,
spawn_small_alternative = def.spawn_small_alternative,
do_custom = def.do_custom,
detach_child = def.detach_child,
jump_height = def.jump_height or 4, -- was 6
rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2
lifetimer = def.lifetimer or 57.73,
@ -4287,7 +4432,7 @@ end
-- Note: This also introduces the “spawn_egg” group:
-- * spawn_egg=1: Spawn egg (generic mob, no metadata)
-- * spawn_egg=2: Spawn egg (captured/tamed mob, metadata)
function mcl_mobs:register_egg(mob, desc, background, addegg, no_creative)
function mcl_mobs:register_egg(mob, desc, background_color, overlay_color, addegg, no_creative)
local grp = {spawn_egg = 1}
@ -4296,7 +4441,7 @@ function mcl_mobs:register_egg(mob, desc, background, addegg, no_creative)
grp.not_in_creative_inventory = 1
end
local invimg = background
local invimg = "(spawn_egg.png^[multiply:" .. background_color ..")^(spawn_egg_overlay.png^[multiply:" .. overlay_color .. ")"
if addegg == 1 then
invimg = "mobs_chicken_egg.png^(" .. invimg ..
@ -4519,7 +4664,7 @@ function mcl_mobs:spawn_child(pos, mob_type)
ent.base_selbox[6] * .5,
},
})
ent.animation = ent._child_animations
ent._current_animation = nil
set_animation(ent, "stand")

View File

@ -486,13 +486,13 @@ This function registers a arrow for mobs with the attack type shoot.
Spawn Eggs
----------
mobs:register_egg(name, description, background, addegg, no_creative)
mobs:register_egg(name, description, background_color, overlay_color, addegg, no_creative)
This function registers a spawn egg which can be used by admin to properly spawn in a mob.
'name' this is the name of your new mob to spawn e.g. "mob:sheep"
'description' the name of the new egg you are creating e.g. "Spawn Sheep"
'background'the texture displayed for the egg in inventory
'background_color' and 'overlay_color' define the colors for the texture displayed for the egg in inventory
'addegg' would you like an egg image in front of your texture (1 = yes,
0 = no)
'no_creative' when set to true this stops spawn egg appearing in creative

View File

@ -144,4 +144,4 @@ mobs_mc.water_level-1)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:bat", S("Bat"), "mobs_mc_spawn_icon_bat.png", 0)
mcl_mobs:register_egg("mobs_mc:bat", S("Bat"), "#4c3e30", "#0f0f0f", 0)

View File

@ -26,6 +26,12 @@ mcl_mobs:register_mob("mobs_mc:blaze", {
rotate = -180,
visual = "mesh",
mesh = "mobs_mc_blaze.b3d",
head_swivel = "head.control",
bone_eye_height = 4,
head_eye_height = 3.5,
curiosity = 10,
head_yaw_offset = 180,
head_pitch_multiplier=-1,
textures = {
{"mobs_mc_blaze.png"},
},
@ -202,4 +208,4 @@ mcl_mobs:register_arrow("mobs_mc:blaze_fireball", {
})
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:blaze", S("Blaze"), "mobs_mc_spawn_icon_blaze.png", 0)
mcl_mobs:register_egg("mobs_mc:blaze", S("Blaze"), "#f6b201", "#fff87e", 0)

View File

@ -20,6 +20,13 @@ mcl_mobs:register_mob("mobs_mc:chicken", {
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.69, 0.2},
runaway = true,
floats = 1,
head_swivel = "head.control",
bone_eye_height = 4,
head_eye_height = 1.5,
horrizonatal_head_height = -.3,
curiosity = 10,
head_yaw="z",
visual_size = {x=1,y=1},
visual = "mesh",
mesh = "mobs_mc_chicken.b3d",
textures = {
@ -156,4 +163,4 @@ mobs_mc.water_level,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:chicken", S("Chicken"), "mobs_mc_spawn_icon_chicken.png", 0)
mcl_mobs:register_egg("mobs_mc:chicken", S("Chicken"), "#a1a1a1", "#ff0000", 0)

View File

@ -271,4 +271,4 @@ water-16,
water+1)
--spawn egg
mcl_mobs:register_egg("mobs_mc:cod", S("Cod"), "extra_mobs_spawn_icon_cod.png", 0)
mcl_mobs:register_egg("mobs_mc:cod", S("Cod"), "#c1a76a", "#e5c48b", 0)

View File

@ -17,6 +17,12 @@ local cow_def = {
"mobs_mc_cow.png",
"blank.png",
}, },
head_swivel = "head.control",
bone_eye_height = 10,
head_eye_height = 1.1,
horrizonatal_head_height=-1.8,
curiosity = 2,
head_yaw="z",
makes_footstep_sound = true,
walk_velocity = 1,
drops = {
@ -212,5 +218,5 @@ mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
-- spawn egg
mcl_mobs:register_egg("mobs_mc:cow", S("Cow"), "mobs_mc_spawn_icon_cow.png", 0)
mcl_mobs:register_egg("mobs_mc:mooshroom", S("Mooshroom"), "mobs_mc_spawn_icon_mooshroom.png", 0)
mcl_mobs:register_egg("mobs_mc:cow", S("Cow"), "#443626", "#a1a1a1", 0)
mcl_mobs:register_egg("mobs_mc:mooshroom", S("Mooshroom"), "#a00f10", "#b7b7b7", 0)

View File

@ -21,6 +21,9 @@ mcl_mobs:register_mob("mobs_mc:creeper", {
pathfinding = 1,
visual = "mesh",
mesh = "mobs_mc_creeper.b3d",
head_swivel = "Head_Control",
bone_eye_height = 2.35,
curiosity = 2,
textures = {
{"mobs_mc_creeper.png",
"mobs_mc_empty.png"},
@ -404,4 +407,4 @@ mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:creeper", S("Creeper"), "mobs_mc_spawn_icon_creeper.png", 0)
mcl_mobs:register_egg("mobs_mc:creeper", S("Creeper"), "#0da70a", "#000000", 0)

View File

@ -250,4 +250,4 @@ water-16,
water+1)
--spawn egg
mcl_mobs:register_egg("mobs_mc:dolphin", S("Dolphin"), "extra_mobs_spawn_icon_dolphin.png", 0)
mcl_mobs:register_egg("mobs_mc:dolphin", S("Dolphin"), "#223b4d", "#f9f9f9", 0)

View File

@ -170,6 +170,7 @@ mcl_mobs:register_arrow("mobs_mc:dragon_fireball", {
end
})
mcl_mobs:register_egg("mobs_mc:enderdragon", S("Ender Dragon"), "mobs_mc_spawn_icon_dragon.png", 0, true)
mcl_mobs:register_egg("mobs_mc:enderdragon", S("Ender Dragon"), "#252525", "#b313c9", 0, true)
mcl_wip.register_wip_item("mobs_mc:enderdragon")

View File

@ -24,7 +24,25 @@
-- added rain damage.
-- fixed the grass_with_dirt issue.
minetest.register_entity("mobs_mc:ender_eyes", {
visual = "mesh",
mesh = "mobs_mc_spider.b3d",
visual_size = {x=1.01, y=1.01},
textures = {
"mobs_mc_enderman_eyes.png",
},
on_step = function(self)
if self and self.object then
if not self.object:get_attach() then
self.object:remove()
end
end
end,
glow = 50,
})
local S = minetest.get_translator("mobs_mc")
local enable_damage = minetest.settings:get_bool("enable_damage")
local telesound = function(pos, is_source)
local snd
@ -237,6 +255,19 @@ mcl_mobs:register_mob("mobs_mc:enderman", {
textures = create_enderman_textures(),
visual_size = {x=3, y=3},
makes_footstep_sound = true,
on_spawn = function(self)
local spider_eyes=false
for n = 1, #self.object:get_children() do
local obj = self.object:get_children()[n]
if obj:get_luaentity() and self.object:get_luaentity().name == "mobs_mc:ender_eyes" then
spider_eyes = true
end
end
if not spider_eyes then
minetest.add_entity(self.object:get_pos(), "mobs_mc:ender_eyes"):set_attach(self.object, "head.top", vector.new(0,2.54,-1.99), vector.new(90,0,180))
minetest.add_entity(self.object:get_pos(), "mobs_mc:ender_eyes"):set_attach(self.object, "head.top", vector.new(1,2.54,-1.99), vector.new(90,0,180))
end
end,
sounds = {
-- TODO: Custom war cry sound
war_cry = "mobs_sandmonster",
@ -382,7 +413,7 @@ mcl_mobs:register_mob("mobs_mc:enderman", {
-- self:teleport(nil)
-- self.state = ""
--else
if self.attack ~= nil and not minetest.settings:get_bool("creative_mode") then
if self.attack ~= nil and enable_damage then
self.state = 'attack'
end
--end
@ -829,4 +860,4 @@ mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:enderman", S("Enderman"), "mobs_mc_spawn_icon_enderman.png", 0)
mcl_mobs:register_egg("mobs_mc:enderman", S("Enderman"), "#252525", "#151515", 0)

View File

@ -38,4 +38,4 @@ mcl_mobs:register_mob("mobs_mc:endermite", {
reach = 1,
})
mcl_mobs:register_egg("mobs_mc:endermite", S("Endermite"), "mobs_mc_spawn_icon_endermite.png", 0)
mcl_mobs:register_egg("mobs_mc:endermite", S("Endermite"), "#161616", "#6d6d6d", 0)

View File

@ -141,4 +141,4 @@ mcl_mobs:register_arrow("mobs_mc:fireball", {
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:ghast", S("Ghast"), "mobs_mc_spawn_icon_ghast.png", 0)
mcl_mobs:register_egg("mobs_mc:ghast", S("Ghast"), "#f9f9f9", "#bcbcbc", 0)

View File

@ -104,4 +104,4 @@ mcl_mobs:register_mob("mobs_mc:guardian", {
--mcl_mobs:spawn_specific("mobs_mc:guardian", { "mcl_core:water_source", "mclx_core:river_water_source" }, { "mcl_core:water_source", "mclx_core:river_water_source" }, 0, minetest.LIGHT_MAX+1, 30, 25000, 2, mcl_vars.mg_overworld_min, mobs_mc.water_level - 10)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:guardian", S("Guardian"), "mobs_mc_spawn_icon_guardian.png", 0)
mcl_mobs:register_egg("mobs_mc:guardian", S("Guardian"), "#5a8272", "#f17d31", 0)

View File

@ -112,5 +112,6 @@ mcl_mobs:register_mob("mobs_mc:guardian_elder", {
-- mcl_mobs:spawn_specific("mobs_mc:guardian_elder", { "mcl_core:water_source", "mclx_core:river_water_source" }, { "mcl_core:water_source", "mclx_core:river_water_source" }, 0, minetest.LIGHT_MAX+1, 30, 40000, 2, mcl_vars.mg_overworld_min, mobs_mc.water_level-18)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:guardian_elder", S("Elder Guardian"), "mobs_mc_spawn_icon_guardian_elder.png", 0)
mcl_mobs:register_egg("mobs_mc:guardian_elder", S("Elder Guardian"), "#ceccba", "#747693", 0)

View File

@ -34,6 +34,30 @@ local horse_extra_texture = function(horse)
return textures
end
local function get_drops(self)
self.drops = {}
table.insert(self.drops,
{name = "mcl_mobitems:leather",
chance = 1,
min = 0,
max = 2,
looting = "common",
})
if self._saddle then
table.insert(self.drops,{name = "mcl_mobitems:saddle",
chance = 1,
min = 1,
max = 1,})
end
if self._chest then
table.insert(self.drops,{name = "mcl_chests:chest",
chance = 1,
min = 1,
max = 1,})
end
end
-- Helper functions to determine equipment rules
local can_equip_horse_armor = function(entity_id)
return entity_id == "mobs_mc:horse" or entity_id == "mobs_mc:skeleton_horse" or entity_id == "mobs_mc:zombie_horse"
@ -237,6 +261,27 @@ local horse = {
local iname = item:get_name()
local heal = 0
if self._inv_id then
if not self._chest and item:get_name() == "mcl_chests:chest" then
item:take_item()
clicker:set_wielded_item(item)
self._chest = true
-- Update texture
if not self._naked_texture then
-- Base horse texture without chest or saddle
self._naked_texture = self.base_texture[2]
end
local tex = horse_extra_texture(self)
self.base_texture = tex
self.object:set_properties({textures = self.base_texture})
get_drops(self)
return
elseif self._chest and clicker:get_player_control().sneak then
mcl_entity_invs.show_inv_form(self,clicker)
return
end
end
-- Taming
self.temper = self.temper or (math.random(1,100))
@ -340,6 +385,7 @@ local horse = {
self.base_texture = tex
self.object:set_properties({textures = self.base_texture})
minetest.sound_play({name = "mcl_armor_equip_leather"}, {gain=0.5, max_hear_distance=12, pos=self.object:get_pos()}, true)
get_drops(self)
-- Put on horse armor if tamed
elseif can_equip_horse_armor(self.name) and not self.driver and not self._horse_armor
@ -518,8 +564,9 @@ donkey.collisionbox = {
donkey.jump = true
donkey.jump_height = 3.75 -- can clear 1 block height
mcl_mobs:register_mob("mobs_mc:donkey", donkey)
mcl_mobs:register_mob("mobs_mc:donkey", donkey)
mcl_entity_invs.register_inv("mobs_mc:donkey","Donkey",15,true)
-- Mule
local m = 0.94
local mule = table.copy(donkey)
@ -537,6 +584,7 @@ mule.collisionbox = {
horse.collisionbox[6] * m,
}
mcl_mobs:register_mob("mobs_mc:mule", mule)
mcl_entity_invs.register_inv("mobs_mc:mule","Mule",15,true)
--===========================
--Spawn Function
@ -587,8 +635,8 @@ mobs_mc.water_level+3,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:horse", S("Horse"), "mobs_mc_spawn_icon_horse.png", 0)
mcl_mobs:register_egg("mobs_mc:skeleton_horse", S("Skeleton Horse"), "mobs_mc_spawn_icon_horse_skeleton.png", 0)
--mobs:register_egg("mobs_mc:zombie_horse", S("Zombie Horse"), "mobs_mc_spawn_icon_horse_zombie.png", 0)
mcl_mobs:register_egg("mobs_mc:donkey", S("Donkey"), "mobs_mc_spawn_icon_donkey.png", 0)
mcl_mobs:register_egg("mobs_mc:mule", S("Mule"), "mobs_mc_spawn_icon_mule.png", 0)
mcl_mobs:register_egg("mobs_mc:horse", S("Horse"), "#c09e7d", "#eee500", 0)
mcl_mobs:register_egg("mobs_mc:skeleton_horse", S("Skeleton Horse"), "#68684f", "#e5e5d8", 0)
--mobs:register_egg("mobs_mc:zombie_horse", S("Zombie Horse"), "#2a5a37", "#84d080", 0)
mcl_mobs:register_egg("mobs_mc:donkey", S("Donkey"), "#534539", "#867566", 0)
mcl_mobs:register_egg("mobs_mc:mule", S("Mule"), "#1b0200", "#51331d", 0)

View File

@ -22,6 +22,9 @@ mcl_mobs:register_mob("mobs_mc:iron_golem", {
collisionbox = {-0.7, -0.01, -0.7, 0.7, 2.69, 0.7},
visual = "mesh",
mesh = "mobs_mc_iron_golem.b3d",
head_swivel = "head.control",
bone_eye_height = 3.38,
curiosity = 10,
textures = {
{"mobs_mc_iron_golem.png"},
},
@ -93,8 +96,7 @@ mcl_mobs:register_mob("mobs_mc:iron_golem", {
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:iron_golem", S("Iron Golem"), "mobs_mc_spawn_icon_iron_golem.png", 0)
mcl_mobs:register_egg("mobs_mc:iron_golem", S("Iron Golem"), "#3b3b3b", "#f57223", 0)
--[[ This is to be called when a pumpkin or jack'o lantern has been placed. Recommended: In the on_construct function of the node.
This summons an iron golen if placing the pumpkin created an iron golem summon pattern:

View File

@ -24,6 +24,29 @@ local carpets = {
unicolor_light_blue = { "mcl_wool:light_blue_carpet", "light_blue" },
}
local function get_drops(self)
self.drops = {}
table.insert(self.drops,
{name = "mcl_mobitems:leather",
chance = 1,
min = 0,
max = 2,
looting = "common",
})
if self.carpet then
table.insert(self.drops,{name = self.carpet,
chance = 1,
min = 1,
max = 1,})
end
if self._has_chest then
table.insert(self.drops,{name = "mcl_chests:chest",
chance = 1,
min = 1,
max = 1,})
end
end
mcl_mobs:register_mob("mobs_mc:llama", {
description = S("Llama"),
type = "animal",
@ -35,6 +58,14 @@ mcl_mobs:register_mob("mobs_mc:llama", {
shoot_offset = 1, --3.5 *would* be a good value visually but it somehow messes with the projectiles trajectory
spawn_in_group_min = 4,
spawn_in_group = 6,
head_swivel = "head.control",
bone_eye_height = 11,
head_eye_height = 3,
horrizonatal_head_height=0,
curiosity = 60,
head_yaw = "z",
hp_min = 15,
hp_max = 30,
xp_min = 1,
@ -130,23 +161,22 @@ mcl_mobs:register_mob("mobs_mc:llama", {
item:take_item()
clicker:set_wielded_item(item)
self._has_chest = true
local tex_chest = "mcl_chests_normal.png"
self.base_texture = table.copy(self.base_texture)
self.base_texture[1] = tex_chest
self.base_texture[1] = self.base_texture[3]
self.object:set_properties({
textures = self.base_texture,
})
table.insert(self.drops,{name = "mcl_chests:chest",chance=1,min=1,max=1})
get_drops(self)
return
elseif self._has_chest and clicker:get_player_control().sneak then
mcl_entity_invs.show_inv_form(self,clicker," - Strength "..math.floor(self._inv_size / 3))
return
else
-- Feed with anything else
if mcl_mobs:feed_tame(self, clicker, 1, false, true) then return end
end
if mcl_mobs:protect(self, clicker) then return end
if self._has_chest and clicker:get_player_control().sneak then
mcl_entity_invs.show_inv_form(self,clicker,"Llama - Strength "..math.floor(self._inv_size / 3))
return
end
-- Make sure tamed llama is mature and being clicked by owner only
if self.tamed and not self.child and self.owner == clicker:get_player_name() then
-- Place carpet
@ -165,16 +195,7 @@ mcl_mobs:register_mob("mobs_mc:llama", {
textures = self.base_texture,
})
self.carpet = item:get_name()
self.drops = {
{name = "mcl_mobitems:leather",
chance = 1,
min = 0,
max = 2,},
{name = item:get_name(),
chance = 1,
min = 1,
max = 1,},
}
get_drops(self)
return
end
end
@ -276,4 +297,4 @@ mobs_mc.water_level+15,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:llama", S("Llama"), "mobs_mc_spawn_icon_llama.png", 0)
mcl_mobs:register_egg("mobs_mc:llama", S("Llama"), "#c09e7d", "#995f40", 0)

View File

@ -36,6 +36,12 @@ local ocelot = {
hp_max = 10,
xp_min = 1,
xp_max = 3,
head_swivel = "head.control",
bone_eye_height = 6.2,
head_eye_height = 0.4,
horrizonatal_head_height=-0,
head_yaw="z",
curiosity = 4,
collisionbox = {-0.3, -0.01, -0.3, 0.3, 0.69, 0.3},
visual = "mesh",
mesh = "mobs_mc_cat.b3d",
@ -233,5 +239,4 @@ mobs:spawn({
]]--
-- spawn eggs
-- FIXME: The spawn icon shows a cat texture, not an ocelot texture
mcl_mobs:register_egg("mobs_mc:ocelot", S("Ocelot"), "mobs_mc_spawn_icon_cat.png", 0)
mcl_mobs:register_egg("mobs_mc:ocelot", S("Ocelot"), "#efde7d", "#564434", 0)

View File

@ -135,6 +135,10 @@ mcl_mobs:register_mob("mobs_mc:parrot", {
hp_max = 6,
xp_min = 1,
xp_max = 3,
head_swivel = "head.control",
bone_eye_height = 1.1,
horrizonatal_head_height=0,
curiosity = 10,
collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.89, 0.25},
visual = "mesh",
mesh = "mobs_mc_parrot.b3d",
@ -237,4 +241,4 @@ mobs_mc.water_level+7,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:parrot", S("Parrot"), "mobs_mc_spawn_icon_parrot.png", 0)
mcl_mobs:register_egg("mobs_mc:parrot", S("Parrot"), "#0da70a", "#ff0000", 0)

View File

@ -18,6 +18,12 @@ mcl_mobs:register_mob("mobs_mc:pig", {
"mobs_mc_pig.png", -- base
"blank.png", -- saddle
}},
head_swivel = "head.control",
bone_eye_height = 7.5,
head_eye_height = 0.8,
horrizonatal_head_height=-1,
curiosity = 3,
head_yaw="z",
makes_footstep_sound = true,
walk_velocity = 1,
run_velocity = 3,
@ -232,4 +238,4 @@ mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:pig", S("Pig"), "mobs_mc_spawn_icon_pig.png", 0)
mcl_mobs:register_egg("mobs_mc:pig", S("Pig"), "#f0a5a2", "#db635f", 0)

View File

@ -120,4 +120,4 @@ pillager = {
}
mcl_mobs:register_mob("mobs_mc:pillager", pillager)
mcl_mobs:register_egg("mobs_mc:pillager", S("Pillager"), "mobs_mc_spawn_icon_pillager.png", 0)
mcl_mobs:register_egg("mobs_mc:pillager", S("Pillager"), "#532f36", "#959b9b", 0)

View File

@ -24,6 +24,12 @@ mcl_mobs:register_mob("mobs_mc:polar_bear", {
textures = {
{"mobs_mc_polarbear.png"},
},
head_swivel = "head.control",
bone_eye_height = 2.6,
head_eye_height = 1,
horrizonatal_head_height = 0,
curiosity = 20,
head_yaw="z",
visual_size = {x=3.0, y=3.0},
makes_footstep_sound = true,
damage = 6,
@ -86,4 +92,4 @@ mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
-- spawn egg
mcl_mobs:register_egg("mobs_mc:polar_bear", S("Polar Bear"), "mobs_mc_spawn_icon_polarbear.png", 0)
mcl_mobs:register_egg("mobs_mc:polar_bear", S("Polar Bear"), "#f2f2f2", "#959590", 0)

View File

@ -15,7 +15,12 @@ local rabbit = {
xp_min = 1,
xp_max = 3,
collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.49, 0.2},
head_swivel = "head.control",
bone_eye_height = 2,
head_eye_height = 0.5,
horrizonatal_head_height = -.3,
curiosity = 20,
head_yaw="z",
visual = "mesh",
mesh = "mobs_mc_rabbit.b3d",
textures = {
@ -208,7 +213,7 @@ mcl_mobs:spawn(spawn_grass)
]]--
-- Spawn egg
mcl_mobs:register_egg("mobs_mc:rabbit", S("Rabbit"), "mobs_mc_spawn_icon_rabbit.png", 0)
mcl_mobs:register_egg("mobs_mc:rabbit", S("Rabbit"), "#995f40", "#734831", 0)
-- Note: This spawn egg does not exist in Minecraft
mcl_mobs:register_egg("mobs_mc:killer_bunny", S("Killer Bunny"), "mobs_mc_spawn_icon_rabbit.png^[colorize:#FF0000:192", 0) -- TODO: Update inventory image
mcl_mobs:register_egg("mobs_mc:killer_bunny", S("Killer Bunny"), "#f2f2f2", "#ff0000", 0)

View File

@ -225,4 +225,4 @@ water-16,
water+1)
--spawn egg
mcl_mobs:register_egg("mobs_mc:salmon", S("Salmon"), "extra_mobs_spawn_icon_salmon.png", 0)
mcl_mobs:register_egg("mobs_mc:salmon", S("Salmon"), "#a00f10", "#0e8474", 0)

View File

@ -61,7 +61,12 @@ mcl_mobs:register_mob("mobs_mc:sheep", {
xp_min = 1,
xp_max = 3,
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.29, 0.45},
head_swivel = "head.control",
bone_eye_height = 3.3,
head_eye_height = 1.1,
horrizonatal_head_height=-.7,
curiosity = 6,
head_yaw="z",
visual = "mesh",
mesh = "mobs_mc_sheepfur.b3d",
textures = { sheep_texture("unicolor_white") },
@ -360,4 +365,4 @@ mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:sheep", S("Sheep"), "mobs_mc_spawn_icon_sheep.png", 0)
mcl_mobs:register_egg("mobs_mc:sheep", S("Sheep"), "#e7e7e7", "#ffb5b5", 0)

View File

@ -177,7 +177,8 @@ mcl_mobs:register_arrow("mobs_mc:shulkerbullet", {
})
mcl_mobs:register_egg("mobs_mc:shulker", S("Shulker"), "mobs_mc_spawn_icon_shulker.png", 0)
mcl_mobs:register_egg("mobs_mc:shulker", S("Shulker"), "#946694", "#4d3852", 0)
--[[
mcl_mobs:spawn_specific(
"mobs_mc:shulker",

View File

@ -56,7 +56,7 @@ mcl_mobs:register_mob("mobs_mc:silverfish", {
reach = 1,
})
mcl_mobs:register_egg("mobs_mc:silverfish", S("Silverfish"), "mobs_mc_spawn_icon_silverfish.png", 0)
mcl_mobs:register_egg("mobs_mc:silverfish", S("Silverfish"), "#6d6d6d", "#313131", 0)
-- Monster egg blocks (Minetest Game)
if minetest.get_modpath("default") and mobs_mc.create_monster_egg_nodes then

View File

@ -25,13 +25,15 @@ local skeleton = {
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.98, 0.3},
pathfinding = 1,
group_attack = true,
head_swivel = "Head_Control",
bone_eye_height = 2.38,
curiosity = 6,
visual = "mesh",
mesh = "mobs_mc_skeleton.b3d",
textures = { {
"mcl_bows_bow_0.png", -- bow
"mobs_mc_skeleton.png", -- skeleton
} },
visual_size = {x=1, y=1},
makes_footstep_sound = true,
textures = {
{
@ -78,11 +80,27 @@ local skeleton = {
run_speed = 30,
shoot_start = 70,
shoot_end = 90,
jockey_start = 172,
jockey_end = 172,
die_start = 160,
die_end = 170,
die_speed = 15,
die_loop = false,
},
jock = "mobs_mc:spider",
on_spawn = function(self)
self.jockey = false
if math.random(100) == 1 then -- 1% like from MCwiki
self.jockey = true
local jock = minetest.add_entity(self.object:get_pos(), "mobs_mc:spider")
jock:get_luaentity().docile_by_day = false
self.object:set_attach(jock, "", vector.new(0,0,0), vector.new(0,0,0))
end
return true
end,
on_detach=function(self, parent)
self.jockey = false
end,
ignited_by_sunlight = true,
view_range = 16,
fear_height = 4,
@ -90,6 +108,9 @@ local skeleton = {
arrow = "mcl_bows:arrow_entity",
shoot_arrow = function(self, pos, dir)
if mod_bows then
if self.attack then
self.object:set_yaw(minetest.dir_to_yaw(vector.direction(self.object:get_pos(), self.attack:get_pos())))
end
-- 2-4 damage per arrow
local dmg = math.max(4, math.random(2, 8))
mcl_bows.shoot_arrow("mcl_bows:arrow", pos, dir, self.object:get_yaw(), self.object, nil, dmg)
@ -329,5 +350,6 @@ mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:skeleton", S("Skeleton"), "mobs_mc_spawn_icon_skeleton.png", 0)
mcl_mobs:register_egg("mobs_mc:stray", S("Stray"), "mobs_mc_spawn_icon_stray.png", 0)
mcl_mobs:register_egg("mobs_mc:skeleton", S("Skeleton"), "#c1c1c1", "#494949", 0)
mcl_mobs:register_egg("mobs_mc:stray", S("Stray"), "#5f7476", "#dae8e7", 0)

View File

@ -24,11 +24,14 @@ mcl_mobs:register_mob("mobs_mc:witherskeleton", {
collisionbox = {-0.35, -0.01, -0.35, 0.35, 2.39, 0.35},
visual = "mesh",
mesh = "mobs_mc_witherskeleton.b3d",
head_swivel = "head.control",
bone_eye_height = 2.38,
curiosity = 60,
textures = {
{
"mobs_mc_empty.png", -- armor
"mobs_mc_wither_skeleton.png", -- wither skeleton
"default_tool_stonesword.png", -- sword
"mobs_mc_wither_skeleton.png", -- wither skeleton
}
},
visual_size = {x=1.2, y=1.2},
@ -113,4 +116,4 @@ mcl_vars.mg_nether_min,
mcl_vars.mg_nether_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:witherskeleton", S("Wither Skeleton"), "mobs_mc_spawn_icon_witherskeleton.png", 0)
mcl_mobs:register_egg("mobs_mc:witherskeleton", S("Wither Skeleton"), "#141414", "#474d4d", 0)

View File

@ -447,5 +447,6 @@ mmin,
mmax)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:magma_cube_big", S("Magma Cube"), "mobs_mc_spawn_icon_magmacube.png")
mcl_mobs:register_egg("mobs_mc:slime_big", S("Slime"), "mobs_mc_spawn_icon_slime.png")
mcl_mobs:register_egg("mobs_mc:magma_cube_big", S("Magma Cube"), "#350000", "#fcfc00")
mcl_mobs:register_egg("mobs_mc:slime_big", S("Slime"), "#52a03e", "#7ebf6d")

View File

@ -196,4 +196,4 @@ function mobs_mc.check_snow_golem_summon(pos)
end
-- Spawn egg
mcl_mobs:register_egg("mobs_mc:snowman", S("Snow Golem"), "mobs_mc_spawn_icon_snowman.png", 0)
mcl_mobs:register_egg("mobs_mc:snowman", S("Snow Golem"), "#f2f2f2", "#fd8f47", 0)

View File

@ -11,6 +11,22 @@ local S = minetest.get_translator("mobs_mc")
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
minetest.register_entity("mobs_mc:spider_eyes", {
visual = "mesh",
mesh = "mobs_mc_spider.b3d",
visual_size = {x=1.01/3, y=1.01/3},
textures = {
"mobs_mc_spider_eyes.png",
},
on_step = function(self)
if self and self.object then
if not self.object:get_attach() then
self.object:remove()
end
end
end,
glow = 50,
})
local spider = {
description = S("Spider"),
@ -27,13 +43,38 @@ local spider = {
xp_min = 5,
xp_max = 5,
armor = {fleshy = 100, arthropod = 100},
on_spawn = function(self)
self.object:set_properties({visual_size={x=1,y=1}})
local spider_eyes=false
for n = 1, #self.object:get_children() do
local obj = self.object:get_children()[n]
if obj:get_luaentity() and self.object:get_luaentity().name == "mobs_mc:spider_eyes" then
spider_eyes = true
end
end
if not spider_eyes then
minetest.add_entity(self.object:get_pos(), "mobs_mc:spider_eyes"):set_attach(self.object, "body.head", vector.new(0,-0.98,2), vector.new(90,180,180))
end
end,
on_die=function(self)
if self.object:get_children() and self.object:get_children()[1] then
self.object:get_children()[1]:set_detach()
end
end,
detach_child=function(self, child)
child:get_luaentity().jockey = false
end,
head_swivel = "Head_Control",
bone_eye_height = 1,
curiosity = 10,
head_yaw="z",
collisionbox = {-0.7, -0.01, -0.7, 0.7, 0.89, 0.7},
visual = "mesh",
mesh = "mobs_mc_spider.b3d",
textures = {
{"mobs_mc_spider.png^(mobs_mc_spider_eyes.png^[makealpha:0,0,0)"},
{"mobs_mc_spider.png"},
},
visual_size = {x=3, y=3},
visual_size = {x=1, y=1},
makes_footstep_sound = false,
sounds = {
random = "mobs_mc_spider_random",
@ -238,5 +279,5 @@ mcl_vars.mg_overworld_min,
mcl_vars.mg_overworld_max)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:spider", S("Spider"), "mobs_mc_spawn_icon_spider.png", 0)
mcl_mobs:register_egg("mobs_mc:cave_spider", S("Cave Spider"), "mobs_mc_spawn_icon_cave_spider.png", 0)
mcl_mobs:register_egg("mobs_mc:spider", S("Spider"), "#342d26", "#a80e0e", 0)
mcl_mobs:register_egg("mobs_mc:cave_spider", S("Cave Spider"), "#0c424e", "#a80e0e", 0)

View File

@ -217,4 +217,4 @@ water-16,
water+1)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:squid", S("Squid"), "mobs_mc_spawn_icon_squid.png", 0)
mcl_mobs:register_egg("mobs_mc:squid", S("Squid"), "#223b4d", "#708999", 0)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 978 B

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 917 B

After

Width:  |  Height:  |  Size: 154 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 939 B

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 919 B

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 B

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 923 B

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 952 B

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 938 B

After

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 904 B

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 932 B

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 930 B

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 930 B

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 B

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 B

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 B

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 476 B

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 475 B

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 B

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Some files were not shown because too many files have changed in this diff Show More