From 5f31433c27fa49ace7310cd9816ccd2695e0b523 Mon Sep 17 00:00:00 2001 From: FantaX1911 Date: Wed, 22 Feb 2017 12:18:53 +0200 Subject: [PATCH 1/6] Initial commit --- .../2.5DHero/Resources/Models/BaseModel.vb | 6 ++++ .../Models/Blocks/DiagonalWallModel.vb | 33 ++++++++++++++++++ .../Models/Blocks/HalfDiagonalWallModel.vb | 33 ++++++++++++++++++ .../maps/TestMaps/EmbeddedTower.dat | Bin 0 -> 10340 bytes .../maps/TestMaps/test4models.dat | Bin 0 -> 10340 bytes 5 files changed, 72 insertions(+) create mode 100644 2.5DHero/2.5DHero/Resources/Models/Blocks/DiagonalWallModel.vb create mode 100644 2.5DHero/2.5DHero/Resources/Models/Blocks/HalfDiagonalWallModel.vb create mode 100644 2.5DHero/2.5DHeroContent/maps/TestMaps/EmbeddedTower.dat create mode 100644 2.5DHero/2.5DHeroContent/maps/TestMaps/test4models.dat diff --git a/2.5DHero/2.5DHero/Resources/Models/BaseModel.vb b/2.5DHero/2.5DHero/Resources/Models/BaseModel.vb index 7b9f16b7e..3207df978 100644 --- a/2.5DHero/2.5DHero/Resources/Models/BaseModel.vb +++ b/2.5DHero/2.5DHero/Resources/Models/BaseModel.vb @@ -98,6 +98,8 @@ Public Shared DoubleFloorModel As DoubleFloorModel = New DoubleFloorModel() Public Shared PyramidModel As PyramidModel = New PyramidModel() Public Shared StairsModel As StairsModel = New StairsModel() + Public Shared DiagonalWallModel As DiagonalWallModel = New DiagonalWallModel() + Public Shared HalfDiagonalWallModel As HalfDiagonalWallModel = New HalfDiagonalWallModel() Public Shared Function getModelbyID(ByVal ID As Integer) As BaseModel Select Case ID @@ -135,6 +137,10 @@ Return PyramidModel Case 16 Return StairsModel + Case 17 + Return DiagonalWallModel + Case 18 + Return HalfDiagonalWallModel Case Else Return BlockModel End Select diff --git a/2.5DHero/2.5DHero/Resources/Models/Blocks/DiagonalWallModel.vb b/2.5DHero/2.5DHero/Resources/Models/Blocks/DiagonalWallModel.vb new file mode 100644 index 000000000..7572c23b1 --- /dev/null +++ b/2.5DHero/2.5DHero/Resources/Models/Blocks/DiagonalWallModel.vb @@ -0,0 +1,33 @@ +Public Class DiagonalWallModel + + Inherits BaseModel + + Public Sub New() + vertexData.Clear() + + 'This wall will start from 1 point and end at the opposite point diagonally + + + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0.5), New Vector3(0, 0, 1), New Vector2(0.0, 1.0))) 'A + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, 1), New Vector2(1.0, 0.0))) 'H + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, -0.5, 0.5), New Vector3(0, 0, 1), New Vector2(0.0, 0.0))) 'C + + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0.5), New Vector3(0, 0, 1), New Vector2(0.0, 1.0))) 'A + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, 0.5, -0.5), New Vector3(0, 0, 1), New Vector2(1.0, 1.0))) 'F + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, 1), New Vector2(1.0, 0.0))) 'H + + 'These will be the same triangles but from the opposite direction, this way it can be rendered from both directions or just from one direction + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0.5), New Vector3(0, 0, -1), New Vector2(0.0, 1.0))) 'A + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, -0.5, 0.5), New Vector3(0, 0, -1), New Vector2(0.0, 0.0))) 'C + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, -1), New Vector2(1.0, 0.0))) 'H + + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0.5), New Vector3(0, 0, -1), New Vector2(0.0, 1.0))) 'A + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, -1), New Vector2(1.0, 0.0))) 'H + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, 0.5, -0.5), New Vector3(0, 0, -1), New Vector2(1.0, 1.0))) 'F + + Me.ID = 17 + + Setup() + End Sub + +End Class \ No newline at end of file diff --git a/2.5DHero/2.5DHero/Resources/Models/Blocks/HalfDiagonalWallModel.vb b/2.5DHero/2.5DHero/Resources/Models/Blocks/HalfDiagonalWallModel.vb new file mode 100644 index 000000000..bb6bdef77 --- /dev/null +++ b/2.5DHero/2.5DHero/Resources/Models/Blocks/HalfDiagonalWallModel.vb @@ -0,0 +1,33 @@ +Public Class HalfDiagonalWallModel + + Inherits BaseModel + + Public Sub New() + vertexData.Clear() + + 'This wall will start from 1 point and end at the opposite middle point diagonally + + + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0), New Vector3(0, 0, 1), New Vector2(0.0, 1.0))) 'AB + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, 1), New Vector2(1.0, 0.0))) 'H + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, -0.5, 0), New Vector3(0, 0, 1), New Vector2(0.0, 0.0))) 'CD + + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0), New Vector3(0, 0, 1), New Vector2(0.0, 1.0))) 'AB + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, 0.5, -0.5), New Vector3(0, 0, 1), New Vector2(1.0, 1.0))) 'F + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, 1), New Vector2(1.0, 0.0))) 'H + + 'These will be the same triangles but from the opposite direction, this way it can be rendered from both directions or just from one direction + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0), New Vector3(0, 0, -1), New Vector2(0.0, 1.0))) 'AB + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, -0.5, 0), New Vector3(0, 0, -1), New Vector2(0.0, 0.0))) 'CD + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, -1), New Vector2(1.0, 0.0))) 'H + + vertexData.Add(New VertexPositionNormalTexture(New Vector3(-0.5, 0.5, 0), New Vector3(0, 0, -1), New Vector2(0.0, 1.0))) 'AB + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, -0.5, -0.5), New Vector3(0, 0, -1), New Vector2(1.0, 0.0))) 'H + vertexData.Add(New VertexPositionNormalTexture(New Vector3(0.5, 0.5, -0.5), New Vector3(0, 0, -1), New Vector2(1.0, 1.0))) 'F + + Me.ID = 18 + + Setup() + End Sub + +End Class \ No newline at end of file diff --git a/2.5DHero/2.5DHeroContent/maps/TestMaps/EmbeddedTower.dat b/2.5DHero/2.5DHeroContent/maps/TestMaps/EmbeddedTower.dat new file mode 100644 index 0000000000000000000000000000000000000000..5876981b4f09130a462f73e73ac6f6ae075e168b GIT binary patch literal 10340 zcmeHNZBH6O5T4IX`X3CROH;(Yq~B1nG110Us%=R>P#{Q3Il_xtjeouE^X%Ss=a4%g zQtaX8a>w4@%63Xv=IS?v{ae|a^K9k`+j5 zDfDyfPYePkXn|Y~7gksM%pcll@kP+4J!ldov*vg}TLJUhuYivoZJP_CZBxzKfVSY< zwD-AtB`q(AHXXkOv^_l9^0%70NJjgu5WC$sc6*~%fv}qToq~(q=0%(Kp25GR`L}>J zx64ZIOI_?XFWNL+KwChY_CE8+ZW={dD`|+`ZvJL&)3YF}^KH{PxSGj?ZeTCWjB67a z%O0{RL)kzsXM#Fr^s%2S~{c|wku=%fDn}?vs3$FYy_UK6xw4bDThJ;pVAk@@*Yg>EI1lb*AewHOs)|^l4r2ln=kR u&Y!2`{>1%rL$A9bBD`<5I{echJAcT%h+lcK@TPYv`Sfx=9$ANfw)_DH7*<07 literal 0 HcmV?d00001 diff --git a/2.5DHero/2.5DHeroContent/maps/TestMaps/test4models.dat b/2.5DHero/2.5DHeroContent/maps/TestMaps/test4models.dat new file mode 100644 index 0000000000000000000000000000000000000000..5876981b4f09130a462f73e73ac6f6ae075e168b GIT binary patch literal 10340 zcmeHNZBH6O5T4IX`X3CROH;(Yq~B1nG110Us%=R>P#{Q3Il_xtjeouE^X%Ss=a4%g zQtaX8a>w4@%63Xv=IS?v{ae|a^K9k`+j5 zDfDyfPYePkXn|Y~7gksM%pcll@kP+4J!ldov*vg}TLJUhuYivoZJP_CZBxzKfVSY< zwD-AtB`q(AHXXkOv^_l9^0%70NJjgu5WC$sc6*~%fv}qToq~(q=0%(Kp25GR`L}>J zx64ZIOI_?XFWNL+KwChY_CE8+ZW={dD`|+`ZvJL&)3YF}^KH{PxSGj?ZeTCWjB67a z%O0{RL)kzsXM#Fr^s%2S~{c|wku=%fDn}?vs3$FYy_UK6xw4bDThJ;pVAk@@*Yg>EI1lb*AewHOs)|^l4r2ln=kR u&Y!2`{>1%rL$A9bBD`<5I{echJAcT%h+lcK@TPYv`Sfx=9$ANfw)_DH7*<07 literal 0 HcmV?d00001 From c2212089bba3cd146ed9a1717d074e381dfccd61 Mon Sep 17 00:00:00 2001 From: FantaX1911 Date: Wed, 22 Feb 2017 12:38:59 +0200 Subject: [PATCH 2/6] Added the changes to content manager and vpproj --- 2.5DHero/2.5DHero/2.5DHero.vbproj | 2 ++ 2.5DHero/2.5DHeroContent/Content.mgcb | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/2.5DHero/2.5DHero/2.5DHero.vbproj b/2.5DHero/2.5DHero/2.5DHero.vbproj index 3a8b5f151..ebea9bb74 100644 --- a/2.5DHero/2.5DHero/2.5DHero.vbproj +++ b/2.5DHero/2.5DHero/2.5DHero.vbproj @@ -1582,6 +1582,8 @@ + + diff --git a/2.5DHero/2.5DHeroContent/Content.mgcb b/2.5DHero/2.5DHeroContent/Content.mgcb index f94ed7c29..859975267 100644 --- a/2.5DHero/2.5DHeroContent/Content.mgcb +++ b/2.5DHero/2.5DHeroContent/Content.mgcb @@ -1,4 +1,4 @@ - + #----------------------------- Global Properties ----------------------------# /outputDir:bin @@ -56127,3 +56127,9 @@ #begin Scripts/worldmap/sevii islands.dat /copy:Scripts/worldmap/sevii islands.dat +#begin maps/TestMaps/EmbeddedTower.dat +/copy:maps/TestMaps/EmbeddedTower.dat + +#begin maps/TestMaps/test4models.dat +/copy:maps/TestMaps/test4models.dat + From 9775e8e9005d12a7b0a2ade6f29e737dd0aec8b0 Mon Sep 17 00:00:00 2001 From: FantaX1911 Date: Thu, 23 Feb 2017 11:16:46 +0200 Subject: [PATCH 3/6] Updated the map with a temp entrance --- 2.5DHero/2.5DHeroContent/Content.mgcb | 3 +++ .../maps/TestMaps/EmbeddedTower.dat | Bin 10340 -> 17752 bytes .../maps/TestMaps/Kings_Landing.dat | Bin 0 -> 1466 bytes .../maps/TestMaps/test4models.dat | Bin 10340 -> 0 bytes 4 files changed, 3 insertions(+) create mode 100644 2.5DHero/2.5DHeroContent/maps/TestMaps/Kings_Landing.dat delete mode 100644 2.5DHero/2.5DHeroContent/maps/TestMaps/test4models.dat diff --git a/2.5DHero/2.5DHeroContent/Content.mgcb b/2.5DHero/2.5DHeroContent/Content.mgcb index 859975267..e0c1ddabd 100644 --- a/2.5DHero/2.5DHeroContent/Content.mgcb +++ b/2.5DHero/2.5DHeroContent/Content.mgcb @@ -56133,3 +56133,6 @@ #begin maps/TestMaps/test4models.dat /copy:maps/TestMaps/test4models.dat +#begin maps/TestMaps/Kings_Landing.dat +/copy:maps/TestMaps/Kings_Landing.dat + diff --git a/2.5DHero/2.5DHeroContent/maps/TestMaps/EmbeddedTower.dat b/2.5DHero/2.5DHeroContent/maps/TestMaps/EmbeddedTower.dat index 5876981b4f09130a462f73e73ac6f6ae075e168b..c80de442ec1ef04545e6b0d645138bf014a5bee8 100644 GIT binary patch literal 17752 zcmeHOZEq7t5T378>VJs%(htOWA)!h679dmzQXxp8ZB(JWsYFff$aW|#%3p^*&+biT z&M()q@rB#tWSzY}@5|imv(L=ztUrDHAh+e2oXR^~=O}-`w_SN92PoZ^pX5;f!Y{l( zkfHQ(e;0R-aPI^!zAwqX^yF`p`|`V7;l-AFa)}maa*Y0ZcwOZBc!4{Y=7FQV&r|axIme5o`pLHa@URjER6gXHM`;WD23MCa5Z0} zmqXNhi_dAxlv|lUd!{h-q5ffrf}V`<8#CcmS=YeDDWOdWzJd0<%uUCY;B5V7L{3^d?-U+>BT^Sp)0*`7FSM*v} z@VNzlYb%SVj7wT}RFAI;&oFI_`Y5AXgwonI4Wr``j;*>n@o3u7i^Zd+-6E`7t)j@q zb90&uIgY+IzK;9TH@yd>7Qd{gIgh>PY_|;hrS^Z)w(^VE^_k{}5|>T1?QL{^mF4lO z*frPayzHKN+1R{^R^9xWI{B1oGNSHB-gA3BMZV-bmO3Aq=fC-QD^0Jn<;5y_Q8P6+ zhtC*A7{{cE%JEppo~TZ&sgd}qtX}75zeC<}30ds%vl~9&!@a9na^QWOLYb5UpCzX~ z+nEAJ+wnw?KP!^Q)8w4_i5$(d#%pvy6St(cf%-^CJ{xq+>RrOqA^F z*hsS=smQ8WkBiM)QxnW#?;)#wfzqlxMZTN6#shhSQ&>DHrKc`dP~u4eebTkCpUiV4 z%enJPMSCb3@5bk`Ge;h`H=iM=Z|VKOvWO=-JmSmEU>W_;SIVPw(wUt042PZbt74~K zxi>}6Rqb1qegVg5nzyQYGq2UScNR8ZEKf%n>cyI~pM4`=QomJWGR~pRTbfL22#i|u zkzk9&czSr=(;gZ%EqXUe{hKD)Z(Bz#>OK#3x|dYt?t0!HlS7)8LvMNUsn2+GaSYcJpDFGODK3c{(`psSY@%iNyctnyI;<0Orie_9$ve4hLJ=~{ zp7Cg+Rc~>(sDJ+Gu4Mk-mT`z0bYtH@G*mnaAUbAfAz9azc*C;qC4m zhe3#<#_dOBB9WgD&)lh)BWaQ(Y{gX|BNy1evrmx>Dc~TVLU+o7SrG!vgJpVwyKoZ5 zLJ&8Kf;#_>=KLD!Wet){u{muaM$f-BwjrPqp?Hb@tKqV^R%X$b1}$-W;vv1F0DXh9 zAPtusMX&TZqBASO-#`Y%r7;sH8+&L=;W^g_1mFkwH!{F6Uo!@biG}xMiSH)@41K#qr=MU0hNouDp#fOMPlUuzN w3ZYh}_$Ve|wQhukYU^NIa`0epPLB>(^b diff --git a/2.5DHero/2.5DHeroContent/maps/TestMaps/Kings_Landing.dat b/2.5DHero/2.5DHeroContent/maps/TestMaps/Kings_Landing.dat new file mode 100644 index 0000000000000000000000000000000000000000..1090cf57ece85eeef90dbcf939c185dfa051ec82 GIT binary patch literal 1466 zcmbW1-A@`(5XI-UCjBRPR$KgN`ie>$6KPB(`at?Xfhg$;WC3k8{nyps%oyxE@i-|B|l^+x9sTpQdUy3-e<1kdzmvYWGuhr zKab*jvSx28BUt7p9U70xwxKxrrJbINV|<_$4n zxrd_0dYt0*WFzZ?FIBF#=t#ewui42D#J0ErT30=V_d;|s?w!hsRVk^vLUBni99bPk z@+bJ%P#{Q3Il_xtjeouE^X%Ss=a4%g zQtaX8a>w4@%63Xv=IS?v{ae|a^K9k`+j5 zDfDyfPYePkXn|Y~7gksM%pcll@kP+4J!ldov*vg}TLJUhuYivoZJP_CZBxzKfVSY< zwD-AtB`q(AHXXkOv^_l9^0%70NJjgu5WC$sc6*~%fv}qToq~(q=0%(Kp25GR`L}>J zx64ZIOI_?XFWNL+KwChY_CE8+ZW={dD`|+`ZvJL&)3YF}^KH{PxSGj?ZeTCWjB67a z%O0{RL)kzsXM#Fr^s%2S~{c|wku=%fDn}?vs3$FYy_UK6xw4bDThJ;pVAk@@*Yg>EI1lb*AewHOs)|^l4r2ln=kR u&Y!2`{>1%rL$A9bBD`<5I{echJAcT%h+lcK@TPYv`Sfx=9$ANfw)_DH7*<07 From 7fcc6c015607ade848666f915593ed57beb664db Mon Sep 17 00:00:00 2001 From: FantaX1911 Date: Thu, 23 Feb 2017 12:46:05 +0200 Subject: [PATCH 4/6] Added textures tileset to embedded tower --- .../Content/Textures/EmbeddedTower.png | Bin 0 -> 561 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 2.5DHero/2.5DHeroContent/Content/Textures/EmbeddedTower.png diff --git a/2.5DHero/2.5DHeroContent/Content/Textures/EmbeddedTower.png b/2.5DHero/2.5DHeroContent/Content/Textures/EmbeddedTower.png new file mode 100644 index 0000000000000000000000000000000000000000..f10f16aba838557f2ac321126592773544bb4b8b GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfQS24TkI`72U@f|4b!5hcO-X(i=}MX3x0iJ5sNdU>fO3MP66 zdWOa(%+XaqQx|%=IEHw5Pn~4wcO-zvrC6HF#kFyThQRd`54SCL`@+#FT)^0Os3kqE zx7Y5NlAXO;io<(+@;AKRb5{LRjzG57Dp#l(3UUAz0&`P-c&vs3!=>mz6O6?)8+ zo%V9t;bg~~iI3LLJ3sYho|poDeMsA{$%}}b;W|IQ^fDMu&!0Pyp*@4a9Q(Y zO-_!-KIR)$j&t^GXjd(Ky?oLvw;SSC{>hDk(=;yZ?H5RONwidSc`jTM=D)<}`}}5 z+Q$RrjX=uQ)LwaZS&(~u=dGGW=JUW3!Y5qd nrhud;|CZY0yzY$P+u!O9GMR6JiZ^cq#wdfQtDnm{r-UW|nJMs9 literal 0 HcmV?d00001 From 340d188ad04cf2cf96c4aaa73449f2de5cb9bbc7 Mon Sep 17 00:00:00 2001 From: FantaX1911 Date: Sat, 25 Feb 2017 15:15:47 +0200 Subject: [PATCH 5/6] Updated content manager with the textures file --- 2.5DHero/2.5DHeroContent/Content.mgcb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/2.5DHero/2.5DHeroContent/Content.mgcb b/2.5DHero/2.5DHeroContent/Content.mgcb index e0c1ddabd..5098dc20e 100644 --- a/2.5DHero/2.5DHeroContent/Content.mgcb +++ b/2.5DHero/2.5DHeroContent/Content.mgcb @@ -56136,3 +56136,15 @@ #begin maps/TestMaps/Kings_Landing.dat /copy:maps/TestMaps/Kings_Landing.dat +#begin Content/Textures/EmbeddedTower.png +/importer:TextureImporter +/processor:TextureProcessor +/processorParam:ColorKeyColor=255,0,255,255 +/processorParam:ColorKeyEnabled=True +/processorParam:GenerateMipmaps=False +/processorParam:PremultiplyAlpha=True +/processorParam:ResizeToPowerOfTwo=False +/processorParam:MakeSquare=False +/processorParam:TextureFormat=Color +/build:Content/Textures/EmbeddedTower.png + From b9f4e659921b7b0fe83ec2ec1f059a8517c34310 Mon Sep 17 00:00:00 2001 From: FantaX1911 Date: Tue, 7 Mar 2017 09:31:02 +0200 Subject: [PATCH 6/6] Added new textures and splitted the floor into 3 different sets. --- .../Content/Textures/EmbeddedTower.png | Bin 561 -> 10150 bytes .../maps/TestMaps/EmbeddedTower.dat | Bin 17752 -> 31064 bytes .../maps/TestMaps/Kings_Landing.dat | Bin 1466 -> 1464 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/2.5DHero/2.5DHeroContent/Content/Textures/EmbeddedTower.png b/2.5DHero/2.5DHeroContent/Content/Textures/EmbeddedTower.png index f10f16aba838557f2ac321126592773544bb4b8b..60d88d9a168596694e2fa45881d91212bc529c00 100644 GIT binary patch literal 10150 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 delta 1363 zcma)6!AlfT9DZ-hZE|NkB%NAnjmR~fZFbgyZLQsH+f|4(C$jA@kV7eCQfXp)=uqIP z!=ioHkZxUqN^i1%frQXO@UV#I5DNc*==a7QMTqxgc<>J2_xpao@Atjg+T&aA`L`y= z!s%H|MeLZ#9M;DyIwodfSB(<$*&Kb-Y=X_6&=ggMJc@{d+6Fts|Vwy5)zrblqht$ ziFcE)&~S=Us5{Wbk+{ML*thF^=ULO<0t-DBL_ji^W&_F&1BH_?uH(84z6W zv$QcW19={Lx4+=s!UHKuI7Zboh*f7$9=BlFF0@ zIzP%99(o?EN{2EtfrcQ&J9RY8EH)-D<4yH=LBq(9hGd(5Bx-f8W5-uV4MNrHEn_