194 lines
5.8 KiB
GDScript
194 lines
5.8 KiB
GDScript
extends Node2D
|
||
|
||
var sexSprite:int
|
||
var path1
|
||
var path2
|
||
const fadeTime = 1.0
|
||
|
||
const cameraPosition = Vector2( - 400, - 800)
|
||
const cameraZoom = Vector2(2.0, 2.0)
|
||
const cameraTime = 3.0
|
||
|
||
func _ready():
|
||
if not get_tree().root.has_node("Root"):
|
||
return ;
|
||
|
||
if Dialogic.get_variable("cameraPosition") == "special":
|
||
self.position = cameraPosition
|
||
self.scale = cameraZoom
|
||
|
||
sexSprite = int(Dialogic.get_variable("SexSpriteNumber"))
|
||
path1 = "res://dlc/oneeleven18+/resources/graphics/" + get_name() + "/" + str(sexSprite) + ".webp"
|
||
path2 = "res://dlc/oneeleven18+/resources/graphics/" + get_name() + "/" + str(sexSprite + 1) + ".webp"
|
||
for i in self.get_children():
|
||
if i.get_name() != "Tween":
|
||
i.visible = false
|
||
get_node("Sprite" + str(sexSprite)).texture = load(path1)
|
||
if get_node("Sprite" + str(sexSprite + 1)) != null:
|
||
get_node("Sprite" + str(sexSprite + 1)).texture = load(path2)
|
||
get_node("Sprite" + str(sexSprite)).visible = true
|
||
|
||
var dialogicNode = get_parent().get_parent().get_node("Game").get_child(0).get_child(0)
|
||
dialogicNode.connect("dialogic_signal", self, "_sprite_listener")
|
||
|
||
GallerySingleton.AddImage(get_name());
|
||
|
||
func _sprite_listener(string):
|
||
if string == "zoomOut":
|
||
var tween = $"Tween"
|
||
tween.interpolate_property(self, "position", self.position, Vector2(0.0, 0.0), cameraTime, Tween.TRANS_LINEAR, 0)
|
||
tween.interpolate_property(self, "scale", self.scale, Vector2(1.0, 1.0), cameraTime, Tween.TRANS_LINEAR, 0)
|
||
tween.start()
|
||
Dialogic.set_variable("cameraPosition", "0")
|
||
return
|
||
if string == "special7-10":
|
||
Dialogic.set_variable("SexSpriteNumber", "10")
|
||
string = "10"
|
||
$Sprite10.texture = load("res://dlc/oneeleven18+/resources/graphics/EmiliyaDLC/10.webp")
|
||
sexSprite = int(string)
|
||
path2 = "res://dlc/oneeleven18+/resources/graphics/" + get_name() + "/" + str(sexSprite + 1) + ".webp"
|
||
if get_node("Sprite" + str(sexSprite + 1)) != null:
|
||
get_node("Sprite" + str(sexSprite + 1)).texture = load(path2)
|
||
get_node("Sprite" + string).modulate.a = 0
|
||
get_node("Sprite" + string).visible = true
|
||
$Tween.interpolate_property(get_node("Sprite" + str(sexSprite)), "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0)
|
||
$Tween.start()
|
||
elif string == "special10-17":
|
||
Dialogic.set_variable("SexSpriteNumber", "17")
|
||
string = "17"
|
||
sexSprite = int(string)
|
||
$Sprite17.texture = load("res://dlc/oneeleven18+/resources/graphics/EmiliyaDLC/17.webp")
|
||
path2 = "res://dlc/oneeleven18+/resources/graphics/" + get_name() + "/" + str(sexSprite + 1) + ".webp"
|
||
if get_node("Sprite" + str(sexSprite + 1)) != null:
|
||
get_node("Sprite" + str(sexSprite + 1)).texture = load(path2)
|
||
get_node("Sprite" + string).modulate.a = 0
|
||
get_node("Sprite" + string).visible = true
|
||
$Tween.interpolate_property(get_node("Sprite" + str(sexSprite)), "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0)
|
||
$Tween.start()
|
||
elif string.length() > 2:
|
||
return
|
||
else :
|
||
Dialogic.set_variable("SexSpriteNumber", string)
|
||
sexSprite = int(string)
|
||
if sexSprite == 0:
|
||
return
|
||
path2 = "res://dlc/oneeleven18+/resources/graphics/" + get_name() + "/" + str(sexSprite + 1) + ".webp"
|
||
if get_node("Sprite" + str(sexSprite + 1)) != null:
|
||
get_node("Sprite" + str(sexSprite + 1)).texture = load(path2)
|
||
get_node("Sprite" + string).modulate.a = 0
|
||
get_node("Sprite" + string).visible = true
|
||
$Tween.interpolate_property(get_node("Sprite" + str(sexSprite)), "modulate", Color(1, 1, 1, 0), Color(1, 1, 1, 1), fadeTime, Tween.TRANS_LINEAR, 0)
|
||
|
||
$Tween.start()
|
||
|
||
func _on_Tween_tween_all_completed():
|
||
for i in self.get_children():
|
||
if not (i.get_name() == "Tween" or i.get_name() == "Sprite" + str(sexSprite) or i.get_name() == "Sprite" + str(sexSprite + 1)):
|
||
i.visible = false
|
||
i.texture = null
|
||
|
||
|
||
|
||
var countLabel:Label = null;
|
||
var autoTimer:Timer = null;
|
||
|
||
var currentIndex:int = 0;
|
||
var amountOfImages:int = 0;
|
||
var images:Array = [];
|
||
func InitForGallery()->Array:
|
||
scale = Vector2(0.5, 0.5)
|
||
|
||
InitAutoTimer();
|
||
|
||
for i in get_children():
|
||
if i is Sprite:
|
||
images.push_back(i);
|
||
amountOfImages = images.size()
|
||
|
||
|
||
call_deferred("FUCKVisibile");
|
||
|
||
return [];
|
||
|
||
func AddCountLabel(label:Label):
|
||
countLabel = label;
|
||
UpdateCounter()
|
||
|
||
func InitAutoTimer():
|
||
autoTimer = Timer.new();
|
||
autoTimer.set_one_shot(true);
|
||
autoTimer.set_wait_time(4.0);
|
||
var _t = autoTimer.connect("timeout", self, "AutoTimerTimeout");
|
||
add_child(autoTimer);
|
||
|
||
func LoadImageAtIndex(index:int):
|
||
var sprite:Sprite = images[index];
|
||
if sprite.texture == null:
|
||
var path = "res://dlc/oneeleven18+/resources/graphics/" + get_name() + "/" + str(index) + ".webp"
|
||
if ResourceLoader.exists(path):
|
||
var texture = load(path);
|
||
sprite.call_deferred("set_texture", texture);
|
||
else :
|
||
OS.alert(str("НЕТ СПРАЙТА ", index, ".webp для сцены ", get_name()))
|
||
|
||
for i in images:
|
||
i.visible = false;
|
||
|
||
sprite.visible = true;
|
||
|
||
func ShowPrevious():
|
||
if currentIndex == 0:
|
||
currentIndex = amountOfImages - 1;
|
||
else :
|
||
currentIndex -= 1;
|
||
LoadImageAtIndex(currentIndex);
|
||
UpdateCounter()
|
||
|
||
func ShowNext():
|
||
if currentIndex == amountOfImages - 1:
|
||
currentIndex = 0;
|
||
else :
|
||
currentIndex += 1;
|
||
LoadImageAtIndex(currentIndex);
|
||
UpdateCounter()
|
||
|
||
func AutoPressed(pressed:bool):
|
||
if pressed:
|
||
autoTimer.start();
|
||
else :
|
||
autoTimer.stop();
|
||
|
||
func AutoTimerTimeout():
|
||
ShowNext();
|
||
autoTimer.start();
|
||
|
||
func UpdateCounter():
|
||
countLabel.text = str(currentIndex + 1, "/", amountOfImages);
|
||
|
||
func _input(event):
|
||
if get_tree().get_root().has_node("Gallery"):
|
||
if event is InputEventKey and event.pressed == false:
|
||
if event.scancode == KEY_LEFT or event.scancode == KEY_A:
|
||
ShowPrevious();
|
||
elif event.scancode == KEY_RIGHT or event.scancode == KEY_D or event.scancode == KEY_SPACE:
|
||
ShowNext();
|
||
|
||
|
||
func IsItDLCScene():
|
||
pass
|
||
|
||
func FUCKVisibile():
|
||
yield (get_tree().create_timer(0.1), "timeout")
|
||
LoadImageAtIndex(0);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|