FILES ----- interface.config versioning.config [NEW] interface\bookmarks\scrollarea\harrow-backward.png [NEW] interface\bookmarks\scrollarea\harrow-backwardhover.png [NEW] interface\bookmarks\scrollarea\harrow-forward.png [NEW] interface\bookmarks\scrollarea\harrow-forwardhover.png [NEW] interface\bookmarks\scrollarea\hthumb-begin.png [NEW] interface\bookmarks\scrollarea\hthumb-beginhover.png [NEW] interface\bookmarks\scrollarea\hthumb-end.png [NEW] interface\bookmarks\scrollarea\hthumb-endhover.png [NEW] interface\bookmarks\scrollarea\hthumb-inner.png [NEW] interface\bookmarks\scrollarea\hthumb-innerhover.png [NEW] interface\bookmarks\scrollarea\varrow-backward.png [NEW] interface\bookmarks\scrollarea\varrow-backwardhover.png [NEW] interface\bookmarks\scrollarea\varrow-forward.png [NEW] interface\bookmarks\scrollarea\varrow-forwardhover.png [NEW] interface\bookmarks\scrollarea\vthumb-begin.png [NEW] interface\bookmarks\scrollarea\vthumb-beginhover.png [NEW] interface\bookmarks\scrollarea\vthumb-end.png [NEW] interface\bookmarks\scrollarea\vthumb-endhover.png [NEW] interface\bookmarks\scrollarea\vthumb-inner.png [NEW] interface\bookmarks\scrollarea\vthumb-innerhover.png interface\cockpit\cockpit.config items\guns\accelerator\aegisaltshotgun.gun items\guns\biome\bonecaves\boneshotgun.gun items\guns\randomgenerated\boneshotgun.generatedgun items\guns\randomgenerated\commonshotgun.generatedgun items\guns\randomgenerated\commonshotgun_plasma.generatedgun items\guns\randomgenerated\legendaryshotgun.generatedgun items\guns\randomgenerated\rareshotgun.generatedgun items\guns\randomgenerated\rareshotgun_plasma.generatedgun items\guns\randomgenerated\shattergun.generatedgun items\guns\randomgenerated\uncommonshotgun.generatedgun items\guns\randomgenerated\uncommonshotgun_plasma.generatedgun monsters\pets\groundpet.lua monsters\pets\actions\begaction.lua monsters\pets\actions\eataction.lua monsters\pets\actions\followaction.lua monsters\pets\actions\inspectaction.lua monsters\pets\actions\pounceaction.lua monsters\pets\actions\sleepaction.lua [NEW] monsters\pets\bunny\petbunny.gif monsters\pets\cat\catbehavior.lua monsters\pets\cat\petcat.animation monsters\pets\cat\petcat.frames monsters\pets\cat\petcat.monstertype [NEW] monsters\pets\orbis\petorbis.png monsters\pets\petball\ball.png [NEW] monsters\pets\piglett\body.monsterpart [NEW] monsters\pets\piglett\piglett.animation [NEW] monsters\pets\piglett\piglett.frames [NEW] monsters\pets\piglett\piglett.monstertype [NEW] monsters\pets\piglett\piglett.png [NEW] monsters\pets\snake\petsnake.png [NEW] monsters\pets\snugget\body.monsterpart [NEW] monsters\pets\snugget\snugget.animation [NEW] monsters\pets\snugget\snugget.frames [NEW] monsters\pets\snugget\snugget.monstertype [NEW] monsters\pets\snugget\snugget.png [NEW] monsters\pets\weasel\petweasel.png [NEW] objects\generic\foodbowl\foodbowl.animation objects\generic\foodbowl\foodbowl.frames [NEW] objects\generic\foodbowl\foodbowl.lua objects\generic\foodbowl\foodbowl.object objects\generic\foodbowl\foodbowl.png [NEW] objects\generic\pethouse\pethouse.frames [NEW] objects\generic\pethouse\pethouse.object [NEW] objects\generic\pethouse\pethouse.png scripts\util.lua [NEW] versioning\item_2_3.lua DIFFS ----- interface.config 200,202c200,202 < "begin" : "", < "end" : "", < "inner" : "" --- > "begin" : "/interface/scrollarea/hthumb-beginhover.png", > "end" : "/interface/scrollarea/hthumb-endhover.png", > "inner" : "/interface/scrollarea/hthumb-innerhover.png" 217,219c217,219 < "begin" : "", < "end" : "", < "inner" : "" --- > "begin" : "/interface/scrollarea/vthumb-beginhover.png", > "end" : "/interface/scrollarea/vthumb-endhover.png", > "inner" : "/interface/scrollarea/vthumb-innerhover.png" versioning.config 15c15 < "Item" : 2 --- > "Item" : 3 interface\cockpit\cockpit.config 610a611,672 > "buttons" : { > "horizontal" : { > "forward" : { > "base" : "/interface/bookmarks/scrollarea/harrow-forward.png", > "hover" : "/interface/bookmarks/scrollarea/harrow-forwardhover.png", > "pressed" : "" > }, > "backward" : { > "base" : "/interface/bookmarks/scrollarea/harrow-backward.png", > "hover" : "/interface/bookmarks/scrollarea/harrow-backwardhover.png", > "pressed" : "" > } > }, > "vertical" : { > "forward" : { > "base" : "/interface/bookmarks/scrollarea/varrow-forward.png", > "hover" : "/interface/bookmarks/scrollarea/varrow-forwardhover.png", > "pressed" : "" > }, > "backward" : { > "base" : "/interface/bookmarks/scrollarea/varrow-backward.png", > "hover" : "/interface/bookmarks/scrollarea/varrow-backwardhover.png", > "pressed" : "" > } > } > }, > "thumbs" : { > "horizontal" : { > "base" : { > "begin" : "/interface/bookmarks/scrollarea/hthumb-begin.png", > "end" : "/interface/bookmarks/scrollarea/hthumb-end.png", > "inner" : "/interface/bookmarks/scrollarea/hthumb-inner.png" > }, > "hover" : { > "begin" : "/interface/bookmarks/scrollarea/hthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/hthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/hthumb-innerhover.png" > }, > "pressed" : { > "begin" : "/interface/bookmarks/scrollarea/hthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/hthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/hthumb-innerhover.png" > } > }, > "vertical" : { > "base" : { > "begin" : "/interface/bookmarks/scrollarea/vthumb-begin.png", > "end" : "/interface/bookmarks/scrollarea/vthumb-end.png", > "inner" : "/interface/bookmarks/scrollarea/vthumb-inner.png" > }, > "hover" : { > "begin" : "/interface/bookmarks/scrollarea/vthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/vthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/vthumb-innerhover.png" > }, > "pressed" : { > "begin" : "/interface/bookmarks/scrollarea/vthumb-beginhover.png", > "end" : "/interface/bookmarks/scrollarea/vthumb-endhover.png", > "inner" : "/interface/bookmarks/scrollarea/vthumb-innerhover.png" > } > } > }, items\guns\accelerator\aegisaltshotgun.gun 14c14 < "spread" : 5, --- > "projectileCount" : 5, items\guns\biome\bonecaves\boneshotgun.gun 14c14 < "spread" : 5, --- > "projectileCount" : 5, items\guns\randomgenerated\boneshotgun.generatedgun 12c12 < "spread" : [5, 15], --- > "projectileCount" : [5, 15], items\guns\randomgenerated\commonshotgun.generatedgun 12c12 < "spread" : [5, 15], --- > "projectileCount" : [5, 15], items\guns\randomgenerated\commonshotgun_plasma.generatedgun 12c12 < "spread" : [5, 15], --- > "projectileCount" : [5, 15], items\guns\randomgenerated\legendaryshotgun.generatedgun 12c12 < "spread" : [5, 15], --- > "projectileCount" : [5, 15], items\guns\randomgenerated\rareshotgun.generatedgun 12c12 < "spread" : [5, 15], --- > "projectileCount" : [5, 15], items\guns\randomgenerated\rareshotgun_plasma.generatedgun 12c12 < "spread" : [5, 15], --- > "projectileCount" : [5, 15], items\guns\randomgenerated\shattergun.generatedgun 12c12 < "spread" : [1, 3], --- > "projectileCount" : [1, 3], items\guns\randomgenerated\uncommonshotgun.generatedgun 12c12 < "spread" : [5, 15], --- > "projectileCount" : [5, 15], items\guns\randomgenerated\uncommonshotgun_plasma.generatedgun 12c12 < "spread" : [4, 8], --- > "projectileCount" : [4, 8], monsters\pets\groundpet.lua 483a484 > self.pathing.stuck = true 485a487 > self.pathing.stuck = false monsters\pets\actions\begaction.lua 38c38 < if stateData.approachTimer < 0 then --- > if stateData.approachTimer < 0 or self.pathing.stuck then monsters\pets\actions\eataction.lua 38c38 < if stateData.approachTimer < 0 then --- > if stateData.approachTimer < 0 or self.pathing.stuck then monsters\pets\actions\followaction.lua 39c39 < if stateData.boredTimer <= 0 then --- > if stateData.boredTimer <= 0 or self.pathing.stuck then monsters\pets\actions\inspectaction.lua 36c36 < if stateData.approachTimer < 0 then --- > if stateData.approachTimer < 0 or self.pathing.stuck then 78c78 < elseif stateData.targetType == "item" then --- > elseif stateData.targetType == "itemdrop" then monsters\pets\actions\pounceaction.lua 30c30 < --Approach the target until max range or entity is in sight --- > --Approach the target until we can pounce 32,33c32,36 < if not approachPoint(dt, targetPosition, stateData.maxRange, true) or < (not entity.entityInSight(stateData.targetId) and approachPoint(dt, targetPosition, 1, running)) then --- > local jumpSpeed = mcontroller.baseParameters().airJumpProfile.jumpSpeed > local toTarget = world.distance(targetPosition, mcontroller.position()) > local jumpVector,canPounce = util.aimVector(toTarget, jumpSpeed, 1.5, true) > > if not stateData.didPounce and (not entity.entityInSight(stateData.targetId) or not canPounce or not mcontroller.onGround()) then 36,37c39,40 < if stateData.approachTimer < 0 then < return true, entity.configParameter("actionParams.play.distance", 10) --- > if approachPoint(dt, targetPosition, 1, running) or stateData.approachTimer < 0 or self.pathing.stuck then > return true, entity.configParameter("actionParams.play.cooldown", 10) 41,45c44,45 < elseif not stateData.didPounce then < local jumpSpeed = mcontroller.baseParameters().airJumpProfile.jumpSpeed < local toTarget = world.distance(targetPosition, mcontroller.position()) < stateData.jumpVector = util.aimVector(toTarget, jumpSpeed, 1.5, true) < mcontroller.setVelocity(stateData.jumpVector) --- > elseif not stateData.didPounce and canPounce and mcontroller.onGround() then > mcontroller.setVelocity(jumpVector) 53c53 < else --- > elseif stateData.didPounce then 56a57,62 > local toTarget = world.distance(targetPosition, mcontroller.position()) > toTarget[2] = toTarget[2] + 1 > if toTarget[2] < 0 then > mcontroller.controlDown() > end > 59c65,67 < if targetName == "petball" then --- > > if targetName == "petball" and world.magnitude(toTarget) < 1 then > --Pounced at the ball, push the ball away 60a69,72 > elseif targetName == "petball" then > --Finished pouncing but missed the target > stateData.didPounce = false > return false 62c74,75 < return true, entity.configParameter("actionParams.play.distance", 10) --- > > return true, entity.configParameter("actionParams.play.cooldown", 10) 63a77,78 > else > return true, entity.configParameter("actionParams.play.cooldown", 10) monsters\pets\actions\sleepaction.lua 6c6,14 < if not args.sleepAction or status.resourcePercentage("sleepy") < 1 then return nil end --- > if not args.sleepAction and not args.sleepTarget then return nil end > > if args.sleepAction and status.resourcePercentage("sleepy") < 1 then > return nil > end > > if args.sleepTarget and status.resource("sleepy") < entity.configParameter("actions.sleep.minSleepy", 65) then > return nil > end 9c17,19 < sleepRate = -5 --- > targetId = args.sleepTarget, > sleepRate = -5, > sleeping = false 14c24,28 < entity.setParticleEmitterActive("sleep", true) --- > if stateData.targetId then > emote("sleepy") > else > entity.setParticleEmitterActive("sleep", true) > end 18,19c32,45 < status.modifyResource("sleepy", stateData.sleepRate * dt) < entity.setAnimationState("movement", "sleep") --- > if not stateData.sleeping then > if not stateData.targetId then > stateData.sleeping = true > entity.setParticleEmitterActive("sleep", true) > else > if not world.entityExists(stateData.targetId) then return true end > --Approach the target > local targetPosition = world.entityPosition(stateData.targetId) > if not approachPoint(dt, targetPosition, 1.5, false) then > if self.pathing.stuck then > return true, entity.configParameter("actionParams.sleep.cooldown") > end > return false > end 21,22c47,51 < if status.resourcePercentage("sleepy") <= 0 then < return true, entity.configParameter("actionParams.sleep.cooldown", 15) --- > entity.setParticleEmitterActive("sleep", true) > local bounds = boundingBox() > mcontroller.setPosition({targetPosition[1], targetPosition[2] - bounds[2]}) > stateData.sleeping = true > end 24c53,67 < return false --- > status.modifyResource("sleepy", stateData.sleepRate * dt) > if stateData.targetId then > if not world.entityExists(stateData.targetId) then > return true, entity.configParameter("actionParams.sleep.cooldown", 15) > end > entity.setAnimationState("movement", "invisible") > else > entity.setAnimationState("movement", "sleep") > end > > if status.resourcePercentage("sleepy") <= 0 then > return true, entity.configParameter("actionParams.sleep.cooldown", 15) > else > return false > end 28a72 > entity.setAnimationState("movement", "idle") monsters\pets\cat\catbehavior.lua 189a190,193 > > if entityName == "pethouse" then > catBehavior.queueAction("sleep", {sleepTarget = entityId}) > end monsters\pets\cat\petcat.animation 62a63,65 > }, > "invisible" : { > "frames" : 1 149a153,157 > }, > "invisible" : { > "properties" : { > "image" : ":invisible." > } 398a407,426 > "position" : [0.5, 2], > "finalVelocity" : [0, 0], > "initialVelocity" : [0, 0], > "destructionTime" : 0.2, > "destructionAction" : "shrink", > "layer" : "front", > "timeToLive" : 0.8, > "flippable" : false > } > } > ] > }, > > "emotesleepy" : { > "emissionRate" : 1, > "particles" : [ > { > "particle" : { > "type" : "animated", > "animation" : "/animations/emotes/sleepy.animation", monsters\pets\cat\petcat.frames 9c9 < [ null, "walk.1", "walk.2", "walk.3", "walk.4", "walk.5", "walk.6", null, null ], --- > [ null, "walk.1", "walk.2", "walk.3", "walk.4", "walk.5", "walk.6", "invisible.1", null ], monsters\pets\cat\petcat.monstertype 39,40c39,40 < "hunger" : 80, < "playful" : 60, --- > "hunger" : 60, > "playful" : 10, 79,80c79,81 < "minScore" : 75, < "cooldown" : 30 --- > "minScore" : 50, > "minSleepy" : 75, > "cooldown" : 10 objects\generic\foodbowl\foodbowl.frames 4c4 < "dimensions" : [1, 1], --- > "dimensions" : [2, 1], 6c6 < [ "default.0" ] --- > [ "default.0", "default.1" ] 12,13c12,13 < "default.1" : "default.0", < "default.2" : "default.0" --- > "empty" : "default.0", > "full" : "default.1" objects\generic\foodbowl\foodbowl.object 13c13 < "inventoryIcon" : "foodbowl.png", --- > "inventoryIcon" : "foodbowl.png:empty", 16c16 < "dualImage" : "foodbowl.png:.", --- > "image" : "foodbowl.png:.", 20c20,21 < "anchors" : [ "bottom" ] --- > "anchors" : [ "bottom" ], > "directions" : ["right"] 21a23,29 > ], > > "animation" : "foodbowl.animation", > "animationParts" : { > "foodbowl" : "foodbowl.png" > }, > "animationPosition" : [4, 4], 22a31,32 > "scripts" : [ > "foodbowl.lua" 23a34 > "scriptDelta" : 5, scripts\util.lua 178c178 < return {v * math.cos(aimAngle), v * math.sin(aimAngle)} --- > return {v * math.cos(aimAngle), v * math.sin(aimAngle)}, true 181c181 < return {(targetVector[1] > 0 and v or -v) * math.cos(math.pi / 4), v * math.sin(math.pi / 4)} --- > return {(targetVector[1] > 0 and v or -v) * math.cos(math.pi / 4), v * math.sin(math.pi / 4)}, false