mirror of
https://github.com/edubart/otclient.git
synced 2025-10-14 03:24:55 +02:00
improve minimap
This commit is contained in:
@@ -25,7 +25,10 @@ local skin = {
|
||||
'spinboxes.otui',
|
||||
'messageboxes.otui',
|
||||
'scrollbars.otui',
|
||||
'splitters.otui'
|
||||
'splitters.otui',
|
||||
'miniwindow.otui',
|
||||
'items.otui',
|
||||
'creatures.otui'
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -85,7 +85,7 @@ function HealthBar.onMiniWindowClose()
|
||||
end
|
||||
|
||||
function HealthBar.offline()
|
||||
healthBarWindow:recursiveGetChildById('conditions_content'):destroyChildren()
|
||||
healthBarWindow:recursiveGetChildById('conditionPanel'):destroyChildren()
|
||||
end
|
||||
|
||||
-- hooked events
|
||||
@@ -121,7 +121,7 @@ function HealthBar.onStatesChange(localPlayer, now, old)
|
||||
end
|
||||
|
||||
function HealthBar.toggleIcon(bitChanged)
|
||||
local content = healthBarWindow:recursiveGetChildById('conditions_content')
|
||||
local content = healthBarWindow:recursiveGetChildById('conditionPanel')
|
||||
|
||||
local icon = content:getChildById(Icons[bitChanged].id)
|
||||
if icon then
|
||||
|
@@ -36,10 +36,10 @@ ManaLabel < GameLabel
|
||||
|
||||
ConditionWidget < UIWidget
|
||||
size: 18 18
|
||||
|
||||
|
||||
$!first:
|
||||
margin-left: 5
|
||||
|
||||
|
||||
MiniWindow
|
||||
icon: healthbar.png
|
||||
id: healthBarWindow
|
||||
@@ -53,11 +53,11 @@ MiniWindow
|
||||
ManaBar
|
||||
ManaLabel
|
||||
Panel
|
||||
id: conditions_content
|
||||
id: conditionPanel
|
||||
layout:
|
||||
type: horizontalBox
|
||||
fit-children: true
|
||||
height: 18
|
||||
margin-top: 5
|
||||
margin-top: 5
|
||||
anchors.top: prev.bottom
|
||||
anchors.horizontalcenter: parent.horizontalcenter
|
||||
|
@@ -65,6 +65,15 @@ function GameInterface.init()
|
||||
Keyboard.bindKeyDown('Ctrl+L', GameInterface.tryLogout, gameRootPanel)
|
||||
Keyboard.bindKeyDown('Ctrl+W', function() g_map.cleanTexts() TextMessage.clearMessages() end, gameRootPanel)
|
||||
|
||||
Keyboard.bindKeyDown('Ctrl+.', function()
|
||||
if gameMapPanel:isKeepAspectRatioEnabled() then
|
||||
gameMapPanel:setKeepAspectRatio(false)
|
||||
else
|
||||
gameMapPanel:setKeepAspectRatio(true)
|
||||
gameMapPanel:setVisibleDimension({ width = 15, height = 11 })
|
||||
end
|
||||
end)
|
||||
|
||||
if g_game.isOnline() then
|
||||
GameInterface.show()
|
||||
end
|
||||
|
@@ -5,9 +5,6 @@ Module
|
||||
website: www.otclient.info
|
||||
|
||||
@onLoad: |
|
||||
importStyle 'styles/items.otui'
|
||||
importStyle 'styles/creatures.otui'
|
||||
importStyle 'styles/miniwindow.otui'
|
||||
importStyle 'styles/countwindow.otui'
|
||||
|
||||
dofile 'widgets/uigamemap'
|
||||
|
@@ -3,7 +3,9 @@ Minimap = {}
|
||||
-- private variables
|
||||
local minimapWidget
|
||||
local minimapButton
|
||||
local minimapWindow
|
||||
local DEFAULT_ZOOM = 45
|
||||
minimapFirstLoad = true
|
||||
|
||||
-- private functions
|
||||
function onMinimapMouseRelease(self, mousePosition, mouseButton)
|
||||
@@ -37,30 +39,58 @@ function Minimap.init()
|
||||
minimapButton = TopMenu.addGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', 'minimap.png', Minimap.toggle)
|
||||
minimapButton:setOn(false)
|
||||
|
||||
minimapWidget = loadUI('minimap.otui', GameInterface.getMapPanel())
|
||||
minimapWindow = loadUI('minimap.otui', GameInterface.getRightPanel())
|
||||
minimapWindow:setOn(true)
|
||||
|
||||
minimapWidget = minimapWindow:recursiveGetChildById('minimap')
|
||||
minimapWidget:setAutoViewMode(false)
|
||||
minimapWidget:setViewMode(1) -- mid view
|
||||
minimapWidget:setDrawMinimapColors(true)
|
||||
minimapWidget:setMultifloor(false)
|
||||
minimapWidget:setKeepAspectRatio(false)
|
||||
minimapWidget.onMouseRelease = onMinimapMouseRelease
|
||||
minimapWidget.onMouseWheel = onMinimapMouseWheel
|
||||
minimapWidget:hide()
|
||||
|
||||
Minimap.reset()
|
||||
|
||||
-- load only the first time (avoid load/save between reloads)
|
||||
if minimapFirstLoad then
|
||||
minimapFirstLoad = false
|
||||
if g_resources.fileExists('/minimap.otcm') then
|
||||
if g_game.isOnline() then
|
||||
perror('cannot load minimap while online')
|
||||
else
|
||||
g_map.loadOtcm('/minimap.otcm')
|
||||
end
|
||||
end
|
||||
|
||||
-- save only when closing the client
|
||||
connect(g_app, { onTerminate = function()
|
||||
g_map.saveOtcm('/minimap.otcm')
|
||||
end})
|
||||
end
|
||||
end
|
||||
|
||||
function Minimap.terminate()
|
||||
disconnect(g_game, { onGameStart = Minimap.reset })
|
||||
Keyboard.unbindKeyDown('Ctrl+M')
|
||||
|
||||
minimapWidget:destroy()
|
||||
minimapWindow:destroy()
|
||||
minimapWindow = nil
|
||||
minimapWidget = nil
|
||||
minimapButton:destroy()
|
||||
minimapButton = nil
|
||||
|
||||
Minimap = nil
|
||||
end
|
||||
|
||||
function Minimap.toggle()
|
||||
local visible = not minimapWidget:isExplicitlyVisible()
|
||||
minimapWidget:setVisible(visible)
|
||||
minimapButton:setOn(visible)
|
||||
local visible = not minimapWindow:isExplicitlyVisible()
|
||||
if visible then
|
||||
minimapWindow:open()
|
||||
minimapButton:setOn(true)
|
||||
else
|
||||
minimapWindow:close()
|
||||
minimapButton:setOn(false)
|
||||
end
|
||||
end
|
||||
|
||||
function Minimap.reset()
|
||||
|
@@ -1,21 +1,11 @@
|
||||
UIMap
|
||||
id: minimap
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
size: 256 192
|
||||
margin-top: 2
|
||||
margin-right: 2
|
||||
border-width: 1
|
||||
border-color: #888888
|
||||
padding: 1
|
||||
//draw-minimap-colors: true
|
||||
multifloor: false
|
||||
draw-texts: false
|
||||
MiniWindow
|
||||
id: minimapWindow
|
||||
!text: tr('Minimap')
|
||||
height: 150
|
||||
icon: minimap.png
|
||||
|
||||
CheckBox
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
margin-top: 2
|
||||
margin-right: 2
|
||||
size: 16 16
|
||||
@onCheckChange: self:getParent():setDrawMinimapColors(self:isChecked())
|
||||
MiniWindowContents
|
||||
padding: 3
|
||||
UIMap
|
||||
id: minimap
|
||||
anchors.fill: parent
|
||||
|
@@ -8,9 +8,9 @@ void main()
|
||||
int j;
|
||||
int i;
|
||||
|
||||
for(i = -2 ;i <= 2; i++)
|
||||
for(j = -2; j <= 2; j++)
|
||||
color += texture2D(u_Tex0, v_TexCoord + vec2(i, j)*0.0025) * 0.025;
|
||||
for(i = -4 ;i <= 4; i++)
|
||||
for(j = -4; j <= 4; j++)
|
||||
color += texture2D(u_Tex0, v_TexCoord + vec2(i, j)*0.003) * 0.008;
|
||||
|
||||
gl_FragColor = color;
|
||||
}
|
||||
|
Reference in New Issue
Block a user