This commit is contained in:
kay27 2020-09-21 22:21:46 +04:00
parent 8df2aebd31
commit 446b0e6602
14 changed files with 820 additions and 369 deletions

@ -2588,6 +2588,12 @@ local falling = function(self, pos)
return
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)
local v = self.object:get_velocity()

@ -1,3 +1,3 @@
name = mcl_mobs
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
Liquid container=Flüssigkeitsbehälter
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.
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.
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.
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
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, оставляя в центре лишь воздух. После создания обсидиановой рамки зажгите в ней огонь. Адские порталы работают только в Верхнем мире и в Аду.
Once placed, an eye of ender can not be taken back.=Однажды размещённое, око Предела нельзя взять обратно.
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.=
Once placed, an eye of ender can not be taken back.=
Used to construct end portals=
Loading terrain...=

File diff suppressed because it is too large Load Diff

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

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

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

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