Implement day-night cycle | put some lights to the maps
This commit is contained in:
5
data.sql
5
data.sql
@@ -107,11 +107,12 @@ CREATE MEMORY TABLE "PUBLIC"."CONFIG"(
|
|||||||
"VALUE" VARCHAR
|
"VALUE" VARCHAR
|
||||||
);
|
);
|
||||||
ALTER TABLE "PUBLIC"."CONFIG" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_7" PRIMARY KEY("KEY");
|
ALTER TABLE "PUBLIC"."CONFIG" ADD CONSTRAINT "PUBLIC"."CONSTRAINT_7" PRIMARY KEY("KEY");
|
||||||
-- 3 +/- SELECT COUNT(*) FROM PUBLIC.CONFIG;
|
-- 4 +/- SELECT COUNT(*) FROM PUBLIC.CONFIG;
|
||||||
INSERT INTO "PUBLIC"."CONFIG" VALUES
|
INSERT INTO "PUBLIC"."CONFIG" VALUES
|
||||||
('start_game', 'Hero Home,Main,Start'),
|
('start_game', 'Hero Home,Main,Start'),
|
||||||
('screen', '1000x800'),
|
('screen', '1000x800'),
|
||||||
('camera_scale', '2');
|
('camera_scale', '2'),
|
||||||
|
('full_day_duration', '600');
|
||||||
CREATE MEMORY TABLE "PUBLIC"."LEVELS"(
|
CREATE MEMORY TABLE "PUBLIC"."LEVELS"(
|
||||||
"LEVEL" INT DEFAULT NEXT VALUE FOR "PUBLIC"."SYSTEM_SEQUENCE_704587BB_DC0E_44AB_A7F0_3DE0CA44FE3F" NOT NULL NULL_TO_DEFAULT SEQUENCE "PUBLIC"."SYSTEM_SEQUENCE_704587BB_DC0E_44AB_A7F0_3DE0CA44FE3F",
|
"LEVEL" INT DEFAULT NEXT VALUE FOR "PUBLIC"."SYSTEM_SEQUENCE_704587BB_DC0E_44AB_A7F0_3DE0CA44FE3F" NOT NULL NULL_TO_DEFAULT SEQUENCE "PUBLIC"."SYSTEM_SEQUENCE_704587BB_DC0E_44AB_A7F0_3DE0CA44FE3F",
|
||||||
"MAX_HP" VARCHAR NOT NULL
|
"MAX_HP" VARCHAR NOT NULL
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -114,14 +114,6 @@
|
|||||||
"tilesetUID": "bf5a8b2c-4635-4433-8781-d8fed02c7197",
|
"tilesetUID": "bf5a8b2c-4635-4433-8781-d8fed02c7197",
|
||||||
"tiles": [0, 0, 102, 0, 66, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 99, 0, 0, 71, 72, 71, 72, 0, 0, 0, 66, 0, 0, 0, 0, 0, 65, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 115, 0, 71, 103, 104, 103, 88, 0, 0, 65, 0, 0, 0, 0, 0, 0, 71, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 119, 120, 119, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 72, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 0, 87, 88, 0, 115, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 71, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 66, 0, 0, 71, 72, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, 99, 0, 0, 65, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 115, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 72, 71, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 87, 88, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 145, 146, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 131, 132, 131, 132, 146, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 161, 147, 148, 147, 148, 162, 99, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 66, 161, 162, 0, 0, 0, 0, 0, 0, 161, 162, 161, 162, 0, 115, 0, 66, 0, 118, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 65, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
"tiles": [0, 0, 102, 0, 66, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 99, 0, 0, 71, 72, 71, 72, 0, 0, 0, 66, 0, 0, 0, 0, 0, 65, 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 115, 0, 71, 103, 104, 103, 88, 0, 0, 65, 0, 0, 0, 0, 0, 0, 71, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 119, 120, 119, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 72, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 0, 87, 88, 0, 115, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 71, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 66, 0, 0, 71, 72, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, 99, 0, 0, 65, 87, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 115, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 72, 71, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 87, 88, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 145, 146, 145, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 131, 132, 131, 132, 146, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 145, 146, 0, 0, 0, 0, 0, 161, 147, 148, 147, 148, 162, 99, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 66, 161, 162, 0, 0, 0, 0, 0, 0, 161, 162, 161, 162, 0, 115, 0, 66, 0, 118, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 65, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
}
|
}
|
||||||
}, {
|
|
||||||
"name": "Ambient",
|
|
||||||
"colorLayer": {
|
|
||||||
"red": 90,
|
|
||||||
"green": 70,
|
|
||||||
"blue": 20,
|
|
||||||
"alpha": 24
|
|
||||||
}
|
|
||||||
}],
|
}],
|
||||||
"handler": "com.bartlomiejpluta.demo.map.HeroHouse",
|
"handler": "com.bartlomiejpluta.demo.map.HeroHouse",
|
||||||
"javaImports": "import com.bartlomiejpluta.demo.entity.*;\nimport com.bartlomiejpluta.demo.world.weapon.*;"
|
"javaImports": "import com.bartlomiejpluta.demo.entity.*;\nimport com.bartlomiejpluta.demo.world.weapon.*;"
|
||||||
|
|||||||
@@ -5,6 +5,48 @@
|
|||||||
"tileWidth": 32,
|
"tileWidth": 32,
|
||||||
"tileHeight": 32,
|
"tileHeight": 32,
|
||||||
"layers": [{
|
"layers": [{
|
||||||
|
"name": "All Lights",
|
||||||
|
"objectLayer": {
|
||||||
|
"passageMap": ["ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW", "ALLOW"],
|
||||||
|
"objects": [{
|
||||||
|
"x": 6,
|
||||||
|
"y": 1,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\ntorch(here);"
|
||||||
|
}, {
|
||||||
|
"x": 5,
|
||||||
|
"y": 7,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\ntorch(here);"
|
||||||
|
}, {
|
||||||
|
"x": 13,
|
||||||
|
"y": 12,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\ntorch(here);"
|
||||||
|
}, {
|
||||||
|
"x": 17,
|
||||||
|
"y": 7,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\ntorch(here);"
|
||||||
|
}, {
|
||||||
|
"x": 15,
|
||||||
|
"y": 7,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\ntorch(here);"
|
||||||
|
}, {
|
||||||
|
"x": 10,
|
||||||
|
"y": 2,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\nlight(here);"
|
||||||
|
}, {
|
||||||
|
"x": 11,
|
||||||
|
"y": 2,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\ntorch(here);"
|
||||||
|
}, {
|
||||||
|
"x": 2,
|
||||||
|
"y": 1,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\nvar light \u003d light(here);\nlight.setPositionOffset(0, 15f);"
|
||||||
|
}, {
|
||||||
|
"x": 5,
|
||||||
|
"y": 1,
|
||||||
|
"code": "/* \n * Following final parameters are available to use:\n * here: MapPin - the composite object containing current map UID, \n * layer\u0027s index and x,y coordinates of the current tile \n * x: int - the x coordinate of the current tile\n * y: int - the y coordinate of the current tile \n * layer: ObjectLayer - current object layer\n * map: GameMap - current map \n * handler: HeroHomeHandler - current map handler\n * runner: DemoRunner - the game runner of the project\n * context: Context - the game context\n */\nvar light \u003d light(here);\nlight.setPositionOffset(0, 15f);"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}, {
|
||||||
"name": "Floor",
|
"name": "Floor",
|
||||||
"tileLayer": {
|
"tileLayer": {
|
||||||
"tilesetUID": "eb5bbf17-efaa-4213-90c3-2785a32f3c37",
|
"tilesetUID": "eb5bbf17-efaa-4213-90c3-2785a32f3c37",
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.bartlomiejpluta.demo.entity;
|
package com.bartlomiejpluta.demo.entity;
|
||||||
|
|
||||||
import com.bartlomiejpluta.base.api.character.Character;
|
import com.bartlomiejpluta.base.api.character.Character;
|
||||||
|
import com.bartlomiejpluta.base.api.light.Light;
|
||||||
|
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
|
||||||
import com.bartlomiejpluta.demo.world.item.Item;
|
import com.bartlomiejpluta.demo.world.item.Item;
|
||||||
import com.bartlomiejpluta.demo.world.weapon.Ammunition;
|
import com.bartlomiejpluta.demo.world.weapon.Ammunition;
|
||||||
import com.bartlomiejpluta.demo.world.weapon.RangedWeapon;
|
import com.bartlomiejpluta.demo.world.weapon.RangedWeapon;
|
||||||
@@ -39,6 +41,9 @@ public abstract class Creature extends NamedCharacter {
|
|||||||
@Getter
|
@Getter
|
||||||
private NamedCharacter lastAttacker;
|
private NamedCharacter lastAttacker;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
protected Light light;
|
||||||
|
|
||||||
public Creature(@NonNull Character entity) {
|
public Creature(@NonNull Character entity) {
|
||||||
super(entity);
|
super(entity);
|
||||||
}
|
}
|
||||||
@@ -88,6 +93,39 @@ public abstract class Creature extends NamedCharacter {
|
|||||||
this.hp = Math.min(this.hp + hp, this.maxHp);
|
this.hp = Math.min(this.hp + hp, this.maxHp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setLight(Light light) {
|
||||||
|
this.light = light;
|
||||||
|
|
||||||
|
if(getLayer() != null) {
|
||||||
|
var layer = getLayer().getMap().getLayer(0);
|
||||||
|
if(light != null) {
|
||||||
|
layer.addLight(light);
|
||||||
|
} else if (this.light != null){
|
||||||
|
layer.removeLight(this.light);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.light = light;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdd(ObjectLayer layer) {
|
||||||
|
super.onAdd(layer);
|
||||||
|
|
||||||
|
if(light != null) {
|
||||||
|
layer.getMap().getLayer(0).addLight(light);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRemove(ObjectLayer layer) {
|
||||||
|
super.onRemove(layer);
|
||||||
|
|
||||||
|
if(light != null) {
|
||||||
|
layer.getMap().getLayer(0).removeLight(light);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(float dt) {
|
public void update(float dt) {
|
||||||
super.update(dt);
|
super.update(dt);
|
||||||
@@ -100,6 +138,10 @@ public abstract class Creature extends NamedCharacter {
|
|||||||
alive = false;
|
alive = false;
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(light != null) {
|
||||||
|
light.setPosition(getPosition());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void die() {
|
protected void die() {
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ public class Player extends Creature {
|
|||||||
setAnimationSpeed(1f);
|
setAnimationSpeed(1f);
|
||||||
setBlocking(true);
|
setBlocking(true);
|
||||||
|
|
||||||
|
var light = context.createLight();
|
||||||
|
light.setAttenuation(4f, 0, 0.001f);
|
||||||
|
light.setIntensity(1f, 1f, 1f);
|
||||||
|
setLight(light);
|
||||||
|
|
||||||
Arrays.fill(equipment, null);
|
Arrays.fill(equipment, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
|
|||||||
import com.bartlomiejpluta.demo.event.HitEvent;
|
import com.bartlomiejpluta.demo.event.HitEvent;
|
||||||
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
||||||
import com.bartlomiejpluta.demo.util.LimitedQueue;
|
import com.bartlomiejpluta.demo.util.LimitedQueue;
|
||||||
|
import com.bartlomiejpluta.demo.world.time.WorldTime;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -24,6 +25,7 @@ public class HUD extends BorderLayout {
|
|||||||
private static final float LOG_VISIBILITY_DURATION = 8000f;
|
private static final float LOG_VISIBILITY_DURATION = 8000f;
|
||||||
private static final float LOG_VISIBILITY_FADING_OUT = 1000f;
|
private static final float LOG_VISIBILITY_FADING_OUT = 1000f;
|
||||||
private final Player player;
|
private final Player player;
|
||||||
|
private final WorldTime time;
|
||||||
private final Runtime runtime;
|
private final Runtime runtime;
|
||||||
private final LimitedQueue<String> logger = new LimitedQueue<>(MAX_LOG_SIZE);
|
private final LimitedQueue<String> logger = new LimitedQueue<>(MAX_LOG_SIZE);
|
||||||
|
|
||||||
@@ -42,6 +44,7 @@ public class HUD extends BorderLayout {
|
|||||||
super(context, gui, refs);
|
super(context, gui, refs);
|
||||||
this.player = DemoRunner.instance().getPlayer();
|
this.player = DemoRunner.instance().getPlayer();
|
||||||
this.runtime = Runtime.getRuntime();
|
this.runtime = Runtime.getRuntime();
|
||||||
|
this.time = DemoRunner.instance().getTime();
|
||||||
context.addEventListener(HitEvent.TYPE, this::logHitEvent);
|
context.addEventListener(HitEvent.TYPE, this::logHitEvent);
|
||||||
context.addEventListener(EnemyDiedEvent.TYPE, this::logEnemyDiedEvent);
|
context.addEventListener(EnemyDiedEvent.TYPE, this::logEnemyDiedEvent);
|
||||||
}
|
}
|
||||||
@@ -72,15 +75,13 @@ public class HUD extends BorderLayout {
|
|||||||
} else {
|
} else {
|
||||||
logVisibilityDuration = 0;
|
logVisibilityDuration = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Screen screen, GUI gui) {
|
public void draw(Screen screen, GUI gui) {
|
||||||
var coords = player.getCoordinates();
|
var coords = player.getCoordinates();
|
||||||
var pos = player.getPosition();
|
var pos = player.getPosition();
|
||||||
debugTxt.setText(String.format("Mem: %.2f / %.2f [MB]\nCoords: %d : %d\nPos: %.2f : %.2f\nEntities: %d\n", runtime.totalMemory() / 1024f / 1024f, runtime.maxMemory() / 1024f / 1024f, coords.x(), coords.y(), pos.x(), pos.y(), player.getLayer().getEntities().size()));
|
debugTxt.setText(String.format("Clock: %02d:%02d\nTime: %.2f\nMem: %.2f / %.2f [MB]\nCoords: %d : %d\nPos: %.2f : %.2f\nEntities: %d\n", time.getHour(), time.getMinute(), time.getProgress(), runtime.totalMemory() / 1024f / 1024f, runtime.maxMemory() / 1024f / 1024f, coords.x(), coords.y(), pos.x(), pos.y(), player.getLayer().getEntities().size()));
|
||||||
|
|
||||||
logLbl.setAlpha(Math.min(1f, logVisibilityDuration / LOG_VISIBILITY_FADING_OUT));
|
logLbl.setAlpha(Math.min(1f, logVisibilityDuration / LOG_VISIBILITY_FADING_OUT));
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.bartlomiejpluta.base.api.gui.WindowPosition;
|
|||||||
import com.bartlomiejpluta.base.api.icon.Icon;
|
import com.bartlomiejpluta.base.api.icon.Icon;
|
||||||
import com.bartlomiejpluta.base.api.input.Input;
|
import com.bartlomiejpluta.base.api.input.Input;
|
||||||
import com.bartlomiejpluta.base.api.input.Key;
|
import com.bartlomiejpluta.base.api.input.Key;
|
||||||
|
import com.bartlomiejpluta.base.api.light.Light;
|
||||||
import com.bartlomiejpluta.base.api.map.handler.MapHandler;
|
import com.bartlomiejpluta.base.api.map.handler.MapHandler;
|
||||||
import com.bartlomiejpluta.base.api.map.layer.object.MapPin;
|
import com.bartlomiejpluta.base.api.map.layer.object.MapPin;
|
||||||
import com.bartlomiejpluta.base.api.map.model.GameMap;
|
import com.bartlomiejpluta.base.api.map.model.GameMap;
|
||||||
@@ -20,11 +21,14 @@ import com.bartlomiejpluta.demo.entity.*;
|
|||||||
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
|
import com.bartlomiejpluta.demo.event.EnemyDiedEvent;
|
||||||
import com.bartlomiejpluta.demo.menu.GuiManager;
|
import com.bartlomiejpluta.demo.menu.GuiManager;
|
||||||
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
import com.bartlomiejpluta.demo.runner.DemoRunner;
|
||||||
|
import com.bartlomiejpluta.demo.world.light.Torch;
|
||||||
import com.bartlomiejpluta.demo.world.potion.Medicament;
|
import com.bartlomiejpluta.demo.world.potion.Medicament;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
|
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
import static java.lang.Math.*;
|
||||||
|
|
||||||
public abstract class BaseMapHandler implements MapHandler {
|
public abstract class BaseMapHandler implements MapHandler {
|
||||||
protected Screen screen;
|
protected Screen screen;
|
||||||
protected Context context;
|
protected Context context;
|
||||||
@@ -35,6 +39,8 @@ public abstract class BaseMapHandler implements MapHandler {
|
|||||||
protected Player player;
|
protected Player player;
|
||||||
protected CameraController cameraController;
|
protected CameraController cameraController;
|
||||||
|
|
||||||
|
protected boolean dayNightCycle = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Context context, GameMap map) {
|
public void onCreate(Context context, GameMap map) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
@@ -73,6 +79,21 @@ public abstract class BaseMapHandler implements MapHandler {
|
|||||||
@Override
|
@Override
|
||||||
public void update(Context context, GameMap map, float dt) {
|
public void update(Context context, GameMap map, float dt) {
|
||||||
cameraController.update();
|
cameraController.update();
|
||||||
|
|
||||||
|
if(!dayNightCycle) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var x = runner.getTime().getProgress();
|
||||||
|
map.setAmbientColor(
|
||||||
|
ambientColor(1.2f, -0.3f, 0, x),
|
||||||
|
ambientColor(1.4f, -0.6f, 0.05f, x),
|
||||||
|
ambientColor(1.7f, -1.1f, 0.2f, x)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private float ambientColor(float a, float b, float offset, float x) {
|
||||||
|
return ((float) max(sin(x * PI * a + b), 0) + offset) / (1 + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompletableFuture<Object> dialog(NamedCharacter speaker, String message, WindowPosition position) {
|
public CompletableFuture<Object> dialog(NamedCharacter speaker, String message, WindowPosition position) {
|
||||||
@@ -124,6 +145,22 @@ public abstract class BaseMapHandler implements MapHandler {
|
|||||||
return addEntity(icon, tile);
|
return addEntity(icon, tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Torch torch(MapPin tile) {
|
||||||
|
var torch = new Torch();
|
||||||
|
map.getLayer(tile.getLayer()).addLight(torch);
|
||||||
|
torch.setCoordinates(tile.toCoordinates());
|
||||||
|
return torch;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Light light(MapPin tile) {
|
||||||
|
var light = context.createLight();
|
||||||
|
map.getLayer(tile.getLayer()).addLight(light);
|
||||||
|
light.setCoordinates(tile.toCoordinates());
|
||||||
|
light.setIntensity(1f, 1f, 1f);
|
||||||
|
light.setAttenuation(0.1f, 0, 0.001f);
|
||||||
|
return light;
|
||||||
|
}
|
||||||
|
|
||||||
public Warp warp(@NonNull MapPin tile, MapPin target) {
|
public Warp warp(@NonNull MapPin tile, MapPin target) {
|
||||||
var warp = new Warp(target);
|
var warp = new Warp(target);
|
||||||
warp.setEntity(player);
|
warp.setEntity(player);
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package com.bartlomiejpluta.demo.map;
|
package com.bartlomiejpluta.demo.map;
|
||||||
|
|
||||||
import com.bartlomiejpluta.demo.map.BaseMapHandler;
|
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.input.Input;
|
|
||||||
import com.bartlomiejpluta.base.api.map.model.GameMap;
|
import com.bartlomiejpluta.base.api.map.model.GameMap;
|
||||||
import com.bartlomiejpluta.base.api.screen.Screen;
|
|
||||||
|
|
||||||
public class ForrestHandler extends BaseMapHandler {
|
public class ForrestHandler extends BaseMapHandler {
|
||||||
|
@Override
|
||||||
|
public void onCreate(Context context, GameMap map) {
|
||||||
|
super.onCreate(context, map);
|
||||||
|
dayNightCycle = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,7 @@ import static com.bartlomiejpluta.base.lib.animation.AnimationRunner.simple;
|
|||||||
public class HeroHomeHandler extends BaseMapHandler {
|
public class HeroHomeHandler extends BaseMapHandler {
|
||||||
@Override
|
@Override
|
||||||
public void onOpen(Context context, GameMap map) {
|
public void onOpen(Context context, GameMap map) {
|
||||||
|
map.setAmbientColor(0.05f, 0.01f, 0.01f);
|
||||||
dialog(player, "Ahhh, another beautiful day for an adventure... Let's go!");
|
dialog(player, "Ahhh, another beautiful day for an adventure... Let's go!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
package com.bartlomiejpluta.demo.map;
|
package com.bartlomiejpluta.demo.map;
|
||||||
|
|
||||||
public class HeroHouse extends BaseMapHandler {
|
import com.bartlomiejpluta.base.api.context.Context;
|
||||||
|
import com.bartlomiejpluta.base.api.map.model.GameMap;
|
||||||
|
|
||||||
|
public class HeroHouse extends BaseMapHandler {
|
||||||
|
@Override
|
||||||
|
public void onCreate(Context context, GameMap map) {
|
||||||
|
super.onCreate(context, map);
|
||||||
|
dayNightCycle = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.bartlomiejpluta.demo.runner;
|
package com.bartlomiejpluta.demo.runner;
|
||||||
|
|
||||||
import A.maps;
|
|
||||||
import DB.ConfigDAO;
|
|
||||||
import DB.dao;
|
import DB.dao;
|
||||||
import com.bartlomiejpluta.base.api.context.Context;
|
import com.bartlomiejpluta.base.api.context.Context;
|
||||||
import com.bartlomiejpluta.base.api.gui.GUI;
|
import com.bartlomiejpluta.base.api.gui.GUI;
|
||||||
@@ -9,15 +8,17 @@ import com.bartlomiejpluta.base.api.runner.GameRunner;
|
|||||||
import com.bartlomiejpluta.base.api.screen.Screen;
|
import com.bartlomiejpluta.base.api.screen.Screen;
|
||||||
import com.bartlomiejpluta.demo.entity.Player;
|
import com.bartlomiejpluta.demo.entity.Player;
|
||||||
import com.bartlomiejpluta.demo.menu.GuiManager;
|
import com.bartlomiejpluta.demo.menu.GuiManager;
|
||||||
|
import com.bartlomiejpluta.demo.world.time.WorldTime;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import static java.lang.Integer.parseInt;
|
|
||||||
|
|
||||||
|
|
||||||
public class DemoRunner implements GameRunner {
|
public class DemoRunner implements GameRunner {
|
||||||
private static final Logger log = LoggerFactory.getLogger(DemoRunner.class);
|
private static final Logger log = LoggerFactory.getLogger(DemoRunner.class);
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private WorldTime time;
|
||||||
private static DemoRunner INSTANCE;
|
private static DemoRunner INSTANCE;
|
||||||
|
|
||||||
private Screen screen;
|
private Screen screen;
|
||||||
@@ -107,6 +108,7 @@ public class DemoRunner implements GameRunner {
|
|||||||
|
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.screen = context.getScreen();
|
this.screen = context.getScreen();
|
||||||
|
this.time = new WorldTime(context);
|
||||||
|
|
||||||
configureScreen();
|
configureScreen();
|
||||||
configureCamera();
|
configureCamera();
|
||||||
@@ -118,4 +120,9 @@ public class DemoRunner implements GameRunner {
|
|||||||
|
|
||||||
screen.show();
|
screen.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(float dt) {
|
||||||
|
time.update(dt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.bartlomiejpluta.demo.world.light;
|
||||||
|
|
||||||
|
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
||||||
|
import com.bartlomiejpluta.base.lib.light.LightDelegate;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class Torch extends LightDelegate {
|
||||||
|
private final Random random = new Random();
|
||||||
|
private float acc = 0;
|
||||||
|
|
||||||
|
public Torch() {
|
||||||
|
super(ContextHolder.INSTANCE.getContext().createLight());
|
||||||
|
setIntensity(100f, 50f, 0f);
|
||||||
|
setConstantAttenuation(1f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(float dt) {
|
||||||
|
super.update(dt);
|
||||||
|
|
||||||
|
if (acc > 0.1f) {
|
||||||
|
setQuadraticAttenuation(0.1f * (1f + ((float) random.nextGaussian()) * 0.1f));
|
||||||
|
acc = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
acc += dt;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.bartlomiejpluta.demo.world.time;
|
||||||
|
|
||||||
|
import DB.dao;
|
||||||
|
import com.bartlomiejpluta.base.api.context.Context;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NonNull;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
public class WorldTime {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private float progress = 0;
|
||||||
|
private final float period; // seconds
|
||||||
|
private final Context context;
|
||||||
|
|
||||||
|
public WorldTime(@NonNull Context context) {
|
||||||
|
this.context = context;
|
||||||
|
this.period = Float.parseFloat(dao.config.find("full_day_duration").getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHour() {
|
||||||
|
return (int) (progress * 24);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinute() {
|
||||||
|
return (int) (progress * 24 * 60) % 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void update(float dt) {
|
||||||
|
if (context.isPaused()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress += dt / period;
|
||||||
|
if (progress > 1) {
|
||||||
|
progress = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user