mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-22 02:21:06 +01:00
Merge updated Nether portals, https://git.minetest.land/Wuzzy/MineClone2/issues/804
This commit is contained in:
parent
8df2aebd31
commit
446b0e6602
14 changed files with 820 additions and 369 deletions
|
@ -2588,6 +2588,12 @@ local falling = function(self, pos)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if mcl_portals ~= nil then
|
||||||
|
if mcl_portals.nether_portal_cooloff[self.object] then
|
||||||
|
return false -- mob has teleported through Nether portal - it's 99% not falling
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- floating in water (or falling)
|
-- floating in water (or falling)
|
||||||
local v = self.object:get_velocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
name = mcl_mobs
|
name = mcl_mobs
|
||||||
depends = mcl_particles
|
depends = mcl_particles
|
||||||
optional_depends = mcl_weather, mcl_explosions, mcl_hunger, mcl_worlds, invisibility, lucky_block, cmi, doc_identifier, mcl_armor
|
optional_depends = mcl_weather, mcl_explosions, mcl_hunger, mcl_worlds, invisibility, lucky_block, cmi, doc_identifier, mcl_armor, mcl_portals
|
||||||
|
|
|
@ -17,3 +17,4 @@ Once placed, an eye of ender can not be taken back.=Sobald platziert, kann ein E
|
||||||
Used to construct end portals=Benutzt zur Konstruktion von Endportalen
|
Used to construct end portals=Benutzt zur Konstruktion von Endportalen
|
||||||
Liquid container=Flüssigkeitsbehälter
|
Liquid container=Flüssigkeitsbehälter
|
||||||
No effect=Keine Wirkung
|
No effect=Keine Wirkung
|
||||||
|
Loading terrain...=Gelände laden...
|
||||||
|
|
|
@ -14,3 +14,4 @@ Stand in the portal for a moment to activate the teleportation. Entering a Nethe
|
||||||
Obsidian is also used as the frame of Nether portals.=La obsidiana también se usa como marco de portal del End.
|
Obsidian is also used as the frame of Nether portals.=La obsidiana también se usa como marco de portal del End.
|
||||||
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Para abrir un portal Nether, coloque un marco vertical de obsidiana con un ancho de 4 bloques y una altura de 5 bloques, dejando solo aire en el centro. Después de colocar este marco, enciende un fuego en el marco de obsidiana. Los portales de Nether solo funcionan en Overworld y Nether.
|
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Para abrir un portal Nether, coloque un marco vertical de obsidiana con un ancho de 4 bloques y una altura de 5 bloques, dejando solo aire en el centro. Después de colocar este marco, enciende un fuego en el marco de obsidiana. Los portales de Nether solo funcionan en Overworld y Nether.
|
||||||
Once placed, an eye of ender can not be taken back.=Una vez colocado, un ojo de ender no puede ser retirado.
|
Once placed, an eye of ender can not be taken back.=Una vez colocado, un ojo de ender no puede ser retirado.
|
||||||
|
Loading terrain...=Terreno de carga...
|
||||||
|
|
|
@ -13,3 +13,4 @@ Obsidian is also used as the frame of Nether portals.=Obsidian is also used as t
|
||||||
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Pour ouvrir un portail du Nether, placez un cadre vertical d'obsidienne d'une largeur de 4 blocs et d'une hauteur de 5 blocs, ne laissant que de l'air au centre. Après avoir placé ce cadre, allumez un feu dans le cadre en obsidienne. Les portails du Nether ne fonctionnent que dans l'Overworld et le Nether.
|
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Pour ouvrir un portail du Nether, placez un cadre vertical d'obsidienne d'une largeur de 4 blocs et d'une hauteur de 5 blocs, ne laissant que de l'air au centre. Après avoir placé ce cadre, allumez un feu dans le cadre en obsidienne. Les portails du Nether ne fonctionnent que dans l'Overworld et le Nether.
|
||||||
Once placed, an eye of ender can not be taken back.=Une fois placé, un œil d'ender ne peut pas être repris.
|
Once placed, an eye of ender can not be taken back.=Une fois placé, un œil d'ender ne peut pas être repris.
|
||||||
Used to construct end portals=Utilisé pour construire des portails d'End
|
Used to construct end portals=Utilisé pour construire des portails d'End
|
||||||
|
Loading terrain...=Chargement du terrain...
|
||||||
|
|
|
@ -13,3 +13,4 @@ Obsidian is also used as the frame of Nether portals.=Обсидиан такж
|
||||||
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Чтобы открыть портал Ада, постройте рамку из обсидиана шириной 4 блока и высотой 5, оставляя в центре лишь воздух. После создания обсидиановой рамки зажгите в ней огонь. Адские порталы работают только в Верхнем мире и в Аду.
|
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Чтобы открыть портал Ада, постройте рамку из обсидиана шириной 4 блока и высотой 5, оставляя в центре лишь воздух. После создания обсидиановой рамки зажгите в ней огонь. Адские порталы работают только в Верхнем мире и в Аду.
|
||||||
Once placed, an eye of ender can not be taken back.=Однажды размещённое, око Предела нельзя взять обратно.
|
Once placed, an eye of ender can not be taken back.=Однажды размещённое, око Предела нельзя взять обратно.
|
||||||
Used to construct end portals=Используется для создания порталов Предела
|
Used to construct end portals=Используется для создания порталов Предела
|
||||||
|
Loading terrain...=Местность подгружается...
|
||||||
|
|
|
@ -13,3 +13,4 @@ Obsidian is also used as the frame of Nether portals.=
|
||||||
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=
|
To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=
|
||||||
Once placed, an eye of ender can not be taken back.=
|
Once placed, an eye of ender can not be taken back.=
|
||||||
Used to construct end portals=
|
Used to construct end portals=
|
||||||
|
Loading terrain...=
|
||||||
|
|
File diff suppressed because it is too large
Load diff
BIN
mods/ITEMS/mcl_portals/textures/mcl_particles_nether_portal.png
Normal file
BIN
mods/ITEMS/mcl_portals/textures/mcl_particles_nether_portal.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 111 B |
Binary file not shown.
After Width: | Height: | Size: 109 B |
Binary file not shown.
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.8 KiB |
21
tools/create_texture__mcl_particles_nether_portal.py
Normal file
21
tools/create_texture__mcl_particles_nether_portal.py
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import png
|
||||||
|
|
||||||
|
s = [
|
||||||
|
'0000010',
|
||||||
|
'0101100',
|
||||||
|
'0010111',
|
||||||
|
'0101010',
|
||||||
|
'1010111',
|
||||||
|
'0001100',
|
||||||
|
'0010100',
|
||||||
|
]
|
||||||
|
|
||||||
|
s = [[int(c) for c in row] for row in s]
|
||||||
|
|
||||||
|
# R, G, B, Alpha (0xFF = opaque):
|
||||||
|
palette=[(0x00,0x00,0x00,0x00), (0xcf,0x00,0xcf,0xe0)]
|
||||||
|
|
||||||
|
w = png.Writer(len(s[0]), len(s), palette=palette, bitdepth=1)
|
||||||
|
f = open('mcl_particles_nether_portal.png', 'wb')
|
||||||
|
w.write(f, s)
|
||||||
|
|
21
tools/create_texture__mcl_particles_nether_portal_t.py
Normal file
21
tools/create_texture__mcl_particles_nether_portal_t.py
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
import png
|
||||||
|
|
||||||
|
s = [
|
||||||
|
'0010010',
|
||||||
|
'0101100',
|
||||||
|
'0010111',
|
||||||
|
'0101010',
|
||||||
|
'1010111',
|
||||||
|
'0101100',
|
||||||
|
'0010101',
|
||||||
|
]
|
||||||
|
|
||||||
|
s = [[int(c) for c in row] for row in s]
|
||||||
|
|
||||||
|
# R, G, B, Alpha (0xFF = opaque):
|
||||||
|
palette=[(0x00,0x00,0x00,0x00), (0x9f,0x00,0xdf,0x92)]
|
||||||
|
|
||||||
|
w = png.Writer(len(s[0]), len(s), palette=palette, bitdepth=1)
|
||||||
|
f = open('mcl_particles_nether_portal_t.png', 'wb')
|
||||||
|
w.write(f, s)
|
||||||
|
|
58
tools/create_texture__mcl_portals_portal.py
Normal file
58
tools/create_texture__mcl_portals_portal.py
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
import png
|
||||||
|
w, h = 64, 256;
|
||||||
|
s = [[int(0) for c in range(w)] for c in range(h)]
|
||||||
|
|
||||||
|
def line(y1, x1, y2, x2, v):
|
||||||
|
signx = 1
|
||||||
|
signy = 1
|
||||||
|
dx = x2 - x1
|
||||||
|
dy = y2 - y1
|
||||||
|
if dx < 0:
|
||||||
|
dx = - dx
|
||||||
|
signx = -1
|
||||||
|
if dy < 0:
|
||||||
|
dy = - dy
|
||||||
|
signy = -1
|
||||||
|
offsx = dx/2
|
||||||
|
offsy = dy/2
|
||||||
|
dir1 = 0
|
||||||
|
if dx >= dy:
|
||||||
|
dir1 = 1
|
||||||
|
for i in range(max(dx, dy)+1):
|
||||||
|
if v==2:
|
||||||
|
s[x1][y1]=1-s[x1][y1]
|
||||||
|
else:
|
||||||
|
s[x1][y1] = v
|
||||||
|
if dir1 == 1:
|
||||||
|
x1 += signx
|
||||||
|
offsy += dy
|
||||||
|
if offsy >= dx:
|
||||||
|
y1 += signy
|
||||||
|
offsy -= dx
|
||||||
|
else:
|
||||||
|
y1 += signy
|
||||||
|
offsx += dx
|
||||||
|
if offsx >= dy:
|
||||||
|
x1 += signx
|
||||||
|
offsx -= dy
|
||||||
|
|
||||||
|
# R, G, B, Alpha (0xFF = opaque):
|
||||||
|
palette=[(0x00,0x00,0xaf,0xa0), (0x7f,0x0f,0xaf,0xb8)]
|
||||||
|
|
||||||
|
for j in range(16):
|
||||||
|
i = j * 4
|
||||||
|
line(i, 0, 63-i, 63, 2)
|
||||||
|
line(63, i, 0, 63-i, 2)
|
||||||
|
i+=1
|
||||||
|
line(i, 64, 63-i, 127, 2)
|
||||||
|
line(63, 64+i, 0, 127-i, 2)
|
||||||
|
i+=1
|
||||||
|
line(i, 128, 63-i, 191, 2)
|
||||||
|
line(63, 128+i, 0, 191-i, 2)
|
||||||
|
i+=1
|
||||||
|
line(i, 192, 63-i, 255, 2)
|
||||||
|
line(63, 192+i, 0, 255-i, 2)
|
||||||
|
|
||||||
|
w = png.Writer(len(s[0]), len(s), palette=palette, bitdepth=1)
|
||||||
|
f = open('mcl_portals_portal.png', 'wb')
|
||||||
|
w.write(f, s)
|
Loading…
Reference in a new issue