improve minimap

This commit is contained in:
Eduardo Bart
2012-06-22 02:26:22 -03:00
parent aed779a2c8
commit d39cf361ab
20 changed files with 144 additions and 77 deletions

View File

@@ -25,7 +25,10 @@ local skin = {
'spinboxes.otui',
'messageboxes.otui',
'scrollbars.otui',
'splitters.otui'
'splitters.otui',
'miniwindow.otui',
'items.otui',
'creatures.otui'
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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()

View File

@@ -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

View File

@@ -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;
}