-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.lua
More file actions
203 lines (176 loc) · 8.25 KB
/
main.lua
File metadata and controls
203 lines (176 loc) · 8.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
love = require("love")
function love.load()
video = ""
game = require("source.game.game")
settings = require("source.game.settings")
if game.os ~= "PSP" then
love.graphics.setDefaultFilter("nearest", "nearest")
elseif game.os == "PSP" then
--idk the change, does like nothing
love.graphics.setDefaultFilter(1)
end
math.randomseed(os.time())
tables = require("source.workers.libs.tableWorker")
timer = require("source.workers.timer")
console = require("source.game.console.console")
debug = require("source.game.console.debug")
spriteWorker = require("source.workers.spriteWorker")
sounds = require("source.workers.soundWorker")
shadows = require("source.graphics.effects.shadows")
mathWorker = require("source.workers.libs.mathWorker")
biomeData = require("source.world.biomeData")
map = require("source.world.map")
skills = require("source.player.skilling.skillMain")
skillsUI = require("source.player.skilling.skillUI")
player = require("source.player.player")
playerEntityInteractivity = require("source.player.interactivity.entityInteractivity")
building = require("source.player.interactivity.building")
renderer = require("source.graphics.renderer")
init = require("source.game.init")
bit = require("source.workers.libs.bit")
entities = require("source.entities.entities")
entitiesIndex = require("source.entities.entitiesIndex")
itemIndex = require("source.player.items.itemIndex")
description = require("source.player.items.description")
inventory = require("source.player.items.inventory")
itemInteraction = require("source.player.items.itemInteraction")
entitySpawner = require("source.entities.entitySpawner")
UI = require("source.graphics.UI")
entityCleaner = require("source.entities.entityCleaner")
recipes = require("source.player.crafting.recipes")
crafting = require("source.player.crafting.crafting")
equipment = require("source.player.equipment")
pathfinding = require("source.entities.npc.pathfinding")
specialAnimations = require("source.graphics.effects.specialAniamtions")
npcs = require("source.entities.npc.npcs")
npcIndex = require("source.entities.npc.npcIndex")
specialDraws = require("source.graphics.effects.specialDraws")
dropppedItems = require("source.entities.dropppedItems.droppedItems")
shaderWorker = require("source.workers.shaderWorker")
specialMoves = require("source.player.interactivity.specialMoves")
init.initAll()
require("source/workers/changeFunctionsByOS")
REF = require("source.game.runEveryFrame")
require("source.workers.override")
droppedItems.f.create(player.position.tileX, player.position.tileY, "rock", 5)
ABFIAI = timer.f.addTimer(5, function (self)
return self.progress
end, "linear")
end
function love.draw()
shaderWorker.shaders.lerpShader:send("b", 0.2)
shaderWorker.shaders.lerpShader:send("t", timer.timers[ABFIAI].progress)
love.graphics.setShader(shaderWorker.shaders.lerpShader)
print(timer.timers[ABFIAI].progress)
love.graphics.setBackgroundColor(28 / 255, 163 / 255, 236 / 255)
love.graphics.setColor(1,1,1)
if game.state == "game" then
renderer.gameStateRenderer()
end
--for key, value in pairs(npcs.npcIndexes) do
-- local path = entities.ents[value.index].path
-- if path ~= nil and path ~= {} then
-- pathfinding.functions.visualisePath(path)
-- end
--end
--map.f.accesibleTile(player.cursor.tileX, player.cursor.tileY)
--FONT TEST
--love.graphics.print("the quick brown fox jumps over the lazy dog '", 10, 10)
--love.graphics.print("THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG ✓⨻⨺", 10, 30)
--love.graphics.print(mathWorker.getAngle(game.width / 2, game.height / 2, love.mouse.getPosition()), 10, 10)
end
function love.update(dt)
REF.everyFrameStart(dt)
REF.everyFrameEnd(dt)
end
function love.wheelmoved(x, y)
if y >= 1 and (inventory.hotBar.lastTime >= inventory.hotBar.coolDown) and not (inventory.hotBar.selectedItem >= inventory.hotBar.maxItems) and not (inventory.hotBar.selectedItem > 9) then
inventory.hotBar.selectedItem = inventory.hotBar.selectedItem + 1
inventory.hotBar.lastTime = 0
elseif y >= 1 and (inventory.hotBar.lastTime >= inventory.hotBar.coolDown) then
inventory.hotBar.selectedItem = 1
inventory.hotBar.lastTime = 0
end
if y <= -1 and (inventory.hotBar.lastTime >= inventory.hotBar.coolDown) and not (inventory.hotBar.selectedItem <= 1) then
inventory.hotBar.selectedItem = inventory.hotBar.selectedItem - 1
inventory.hotBar.lastTime = 0
elseif y <= -1 and (inventory.hotBar.lastTime >= inventory.hotBar.coolDown) then
inventory.hotBar.selectedItem = inventory.hotBar.maxItems
inventory.hotBar.lastTime = 0
end
end
function love.mousepressed(x, y, button, istouch, presses)
if button == 1 then
if crafting.f.checkIfOnButton(game.activeUIButtons, x, y) then
return
end
if inventory.functions.click(button) ~= false then
return
end
if itemInteraction.breakEntity() ~= false then
return
end
if map.f.buyIsland(player.cursor.chunkX, player.cursor.chunkY) ~= false then
return
end
elseif button == 2 then
if inventory.functions.click(button) then
return
end
if map.f.accesibleTile(player.cursor.tileX, player.cursor.tileX) and building.f.canBuild(inventory.inventoryBar.inventory[#inventory.inventoryBar.inventory][inventory.hotBar.selectedItem].item) then
local i = inventory.inventoryBar.inventory
local itemName = i[#i][inventory.hotBar.selectedItem].item
if itemName ~= nil then
if itemIndex[itemName].buildable then
local enData = entitiesIndex[itemName]
local res = building.f.build(player.cursor.tileX, player.cursor.tileY, enData.width, enData.height, itemName)
if res then
local it = i[#i][inventory.hotBar.selectedItem]
it.count = it.count - 1
if it.count <= 0 then
i[#i][inventory.hotBar.selectedItem] = {}
end
return
end
end
end
end
end
end
function love.keypressed(key, scancode, isrepeat)
--print(key)
if console.render then
if key == "return" or key == "kpenter" then
console.render = false
if console.currentType == "" then
return
end
console.f.addMessage(console.currentType)
if string.sub(console.currentType, 1, 1) == "/" then
console.f.runCommand(console.currentType)
end
console.currentType = ""
elseif key == "escape" then
console.currentType = ""
console.render = false
else
if key == "space" then
console.currentType = console.currentType .. " "
elseif key == "backspace" then
console.currentType = string.sub(console.currentType, 1, string.len(console.currentType) - 1)
elseif key:match("kp") then --peak lua programming lol -- awful difference between gmatch and match
--no way of telling if numlock is on / off in love 11.5., when 12.0. releases I'll instantly change it smh (it's the same with capslock)
console.currentType = console.currentType .. key:gsub("kp", "")
elseif string.len(key) > 1 then
return
else
if love.keyboard.isDown("lshift") or love.keyboard.isDown("rshift") then
key = key:upper()
end
console.currentType = console.currentType .. key
end
end
console.currentType = UI.f.format(console.currentType)
--print(console.currentType)
end
end