World of Banished

Conversations => Suggestions and Mod Ideas => Topic started by: Idle Work Team on October 03, 2015, 07:20:18 AM

Title: New 30 Trees.(IdleMOD)
Post by: Idle Work Team on October 03, 2015, 07:20:18 AM
(50~250 face)
We look at the effect.
(http://i61.tinypic.com/11ajrpg.jpg)
Title: Re: New 30 Trees.(IdleMOD)
Post by: Idle Work Team on October 03, 2015, 07:25:34 AM
The new trees will not drop your FPS(Tested)
Title: Re: New 30 Trees.(IdleMOD)
Post by: LadyMarmalade on October 03, 2015, 08:18:52 AM
These look great!
Title: Re: New 30 Trees.(IdleMOD)
Post by: RedKetchup on October 03, 2015, 10:02:29 AM
WOW
Title: Re: New 30 Trees.(IdleMOD)
Post by: estherhb on October 03, 2015, 11:38:52 AM
Very nice!
Title: Re: New 30 Trees.(IdleMOD)
Post by: RedKetchup on October 04, 2015, 01:51:26 AM
question @Idle Work Team


are the animated ? will they change with seasons ?

if not, planning to do it ?
Title: Re: New 30 Trees.(IdleMOD)
Post by: Idle Work Team on October 04, 2015, 04:27:56 AM
Quote from: RedKetchup on October 04, 2015, 01:51:26 AM
question @Idle Work Team


are the animated ? will they change with seasons ?

if not, planning to do it ?
animated, but not leaves.
Title: Re: New 30 Trees.(IdleMOD)
Post by: Turis on October 04, 2015, 04:55:28 AM
Are you going to have them separated by climate?
Title: Re: New 30 Trees.(IdleMOD)
Post by: Idle Work Team on October 04, 2015, 05:16:30 AM
@RedKetchup
Hi there. I was building a new construction like this .
(http://i58.tinypic.com/jsc7jc.jpg)
But it wouldn't work because the land ground within this game has restricts me
(http://i60.tinypic.com/2ns44f9.jpg)
And it looks like this now ,So I used Miners code
QuarryDescription quarry
{
   PickingMesh _floorMesh = "Models\Buildings\Quarry\QuarryFloor.rsc";
   float _maxDepth = -7.0;
   float _initialDepth = -7;
}
(http://i58.tinypic.com/mcc6ww.jpg)
So I had to build a ground floor for this construction, it turns out wasn't like what I expected but collapsed at it edges .

QuarryDescription quarry
{
   PickingMesh _floorMesh = "Models\build\Shandimofang\floor1.rsc";
   float _maxDepth = -5.0;
   float _initialDepth = -4;
}

(http://i60.tinypic.com/34imkqt.jpg)
(http://i60.tinypic.com/2cynpr7.jpg)
So how could I build the ground for buildings like miner? Is there any special code or requirements for these buildings?
What I really want to do is delete those default ground layers under buildings , I saw your canal achieve this functionality.

Sorry for bothering you for the problem.
Title: Re: New 30 Trees.(IdleMOD)
Post by: RedKetchup on October 04, 2015, 09:47:37 AM
the quarry floor level is very tricky and work very bad, you are better to go with 1'x1'x0,1' pieces well centered on the game tiles.
but you can still have bad corners. you need walls in your mesh to cover those imperfections, you need to anticipate all those events by covering much more than expected.



in you .fbx you will have a mesh called [ floor ] and a mesh called [ floor1 ]
floor = your quarry floor
floor1 = your citizen floor

   Description _descriptions
   [
      "ui",

      "quarry",
      "floor",
      ......

QuarryDescription quarry
{
   PickingMesh _floorMesh = "Models\NewMedievalClayPitFloor.rsc";
   float _maxDepth = -4.0;
   float _initialDepth = -4.0;
}
FloorDescription floor
{
   PickingMesh _mesh = "Models\NewMedievalClayPitFloor1.rsc";
}






there is a copy of my Template/MedievalClayPit.rsc


// layout of the entity
ComponentDescription resource
{
// how often to update
UpdatePriority _updatePriority = Fourth;

// declare types that will be used
Description _descriptions
[
"ui",

"map",
"zone",
"toolbar",
"createplaced",
"decal",
"model",
"picking",
"highlight",
"interact",
"storage",
"quarry",
"floor",
"work",
"statusicon",
"tracker",

"statemachine",
"cleararea",
"build",
"workplace",
"destroy",
"consumeproduce",
]
}

// layout of the entity
ComponentDescription destroyed
{
// how often to update
UpdatePriority _updatePriority = None;

// declare types that will be used
Description _descriptions
[
"map",
"zone",
"decal",
"modeldestroyed",
]
}

TrackerDescription tracker { }
ClearAreaDescription cleararea
{
//bool _flattenGround = false;
bool _flattenGround = true;
}

StateMachineDescription statemachine
{
}

ZoneDescription zone
{
}

FloorDescription floor
{
PickingMesh _mesh = "Models\NewMedievalClayPitFloor1.rsc";
}

DestroyDescription destroy
{
int _damagedSkin = 1;
int _damagedDecal = 1;
}

ZoneDescription zone
{
}

StatusIconDescription statusicon
{
SpriteSheet _spriteSheet = "StatusIcons\BuildingIconSpriteSheet.rsc";
bool _fixedSize = true;
float _size = 0.04;
float _zoffset = 1.33;
}

QuarryDescription quarry
{
PickingMesh _floorMesh = "Models\NewMedievalClayPitFloor.rsc";
float _maxDepth = -4.0;
float _initialDepth = -4.0;
}

ToolbarDescription toolbar
{
SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "NewMedievalClayPit";

StringTable _stringTable = "UI/NMTownStringTable.rsc";
String _stringName = "NewMedievalClayPit";
String _stringNameLwr = "NewMedievalClayPitLwr";
String _toolTip = "NewMedievalClayPitTip";

String _statusStrings
[
"CreateOk",
"CreateBlocked",
]

int _group = 2;
}

CreatePlacedDescription createplaced
{
PathBits _placeBits = Normal | Obstacle | Unusable | Walkable | Water | Occasional;

int _width = 9;
int _height = 9;
int _footprintRotation = 0;

PathBits _placeBitArray
[
Normal | Obstacle | Unusable | Walkable | Water | Occasional,
Normal | Obstacle | Fast | Faster,
]
String _placeBitmap =
"000111000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000";

ComponentDescription _allowAndRemove = "Template/Clear.rsc";
}

MapDescription map
{
PathType _pathType = Immovable;
String _pathBitmap =
"###...###
#_______#
#_##__#_#
#_#___#_#
#_#___#_#
#_#___#_#
#_#######
#____####
#########";

bool _addToOverhead = true;
Color _mapColor = 0xFF545454;
}

DecalDescription decal
{
MaterialInstance _materials
[
"Models\NewMedievalClayPitFootprintMaterial.rsc"
"Models\NewMedievalClayPitFootprintDamageMaterial.rsc"
]
bool _tiled = false;
float _initialAlpha = 0.5;

float _mapWidth = 64.0;

DecalLocation _decalLocations
[
{
float _x0 = 0.0;
float _y0 = 0.0;
float _x1 = 64.0;
float _y1 = 64.0;
}
]
}

PickingDescription picking
{
MaterialInstance _selectMaterial = "Material/SelectionMask/SelectionMask.rsc";
PickingGroup _meshes
[
{
PickingMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Picking.rsc",
"Models\NewMedievalClayPitPicking.rsc"
]
}
]
}


ModelDescription model
{
MeshGroup _meshes
[
{
GraphicsMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Mesh.rsc",
"Models\NewMedievalClayPitMesh.rsc"
]
}
]
int _displayIndex = 0;
int _subIndex = 0;
bool _randomIndex = false;
}

HighlightDescription highlight
{
EdgeGroup _meshes
[
{
EdgeMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Mesh.rsc:edge",
"Models\NewMedievalClayPitMesh.rsc:edge"
]
}
]

// materials for drawing selection with no mesh
MaterialInstance _maskMaterial = "Material/SelectionMask/SelectionMask.rsc";
MaterialInstance _edgeMaterial = "Material/SelectionEdge/SelectionEdge.rsc";
}

InteractDescription interact
{
PointList _pointList = "Models\NewMedievalClayPitPoints.rsc";
}

StorageDescription storage
{
}

WorkDescription work
{
int _defaultWorkers = 6;

bool _allowCountChange = true;
int _minWorkerCount = 1;
int _maxWorkerCount = 6;
}

WorkPlaceDescription workplace
{
Profession _profession = "Game/Profession/Profession.rsc:stonecutter";
Profession _pickupProfession = "Game/Profession/Profession.rsc:stonecutter";
}

ConsumeProduceDescription consumeproduce
{
Product _products
[
{
ComponentDescription _produceMaterial = "Template/RawMaterialClay.rsc";
ResourceLimit _resourceLimit = Stone;
}
]

StringTable _stringTable = "UI/NMTownStringTable.rsc";

ToolType _toolType = PickAxe;
int _workRequired = 10;
float _workTime = 10.0;
}

BuildDescription build
{
int _workRequired = 30;

BuildRequirement _buildRequirement
[
{
ComponentDescription _rawMaterial = "Template/RawMaterialWood.rsc";
int _count = 24;
}
]
}

UIDescription ui
{
int _displayPage = 0; // set to 1 for tab layout
Dialog _dialog = "Dialog/StandardDialog.rsc:entity";

ElementController _controllers
[
{
ObjectType _type = ControlUI;
ElementDescription _element = "enableWorkButton";
String _insertAt = "userButton0";
DialogControllerConfig _config = "workButtonConfig";
}
{
ObjectType _type = ResourceLimitUI;
ElementDescription _element = "resourceLimit";
String _insertAt = "userButton1";
DialogControllerConfig _config = "resourceLimitConfig";
}
{
ObjectType _type = ProductionUI;
ElementDescription _element = "Dialog/Production.rsc:production4";
String _insertAt = "pageUser";
}
{
ObjectType _type = PageToggleUI;
ElementDescription _element = "Dialog/Production.rsc:checkProduction";
String _insertAt = "userTitle0";
}
{
ObjectType _type = WorkPlaceUI;
ElementDescription _element = "Dialog/Work.rsc:workPlace";
String _insertAt = "userTitle1";
}
{
ObjectType _type = StatusIconUI;
ElementDescription _element = "Dialog/Building.rsc:icons";
String _insertAt = "userTitle2";
}
{
ObjectType _type = BuildUI;
ElementDescription _element = "Dialog/Build.rsc:build";
String _insertAt = "pageBuild";
}
{
ObjectType _type = DestroyUI;
ElementDescription _element = "Dialog/Destroy.rsc:destroy";
String _insertAt = "pageDestroy";
}
]
}

ControlUIConfig workButtonConfig
{
ObjectType _type = ConsumeProduceComponent;
int _controlId = 0;
}

CheckDescription enableWorkButton : "Dialog/SharedElements.rsc:checkSimple"
{
int _topPad = 4;

Dialog _toolTipDialog = "Dialog/ToolTip.rsc";
StringTable _toolTipStringTable = "Dialog/StringTable.rsc:gameDialogs";
String _toolTipText = "EnableWorkTip";

ElementDescription _content = "labelWorkUncheck";
ElementDescription _check = "labelWorkCheck";
}

LabelDescription labelWorkCheck
{
int _topPad = 4;
int _leftPad = 4;
int _rightPad = 4;
int _bottomPad = 4;
int _minWidth = 61;
int _minHeight = 61;

Alignment _alignment = MidCenter;

Font _font = "Font\FontSmall.rsc";
StringTable _stringTable = "Dialog/StringTable.rsc:gameDialogs";
String _text = "EnableWork";

int _spacing = 2;
LabelPosition _labelPosition = TextBottom;
Alignment _textAlignment = MidCenter;

SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "NewMedievalClayPit";
}

LabelDescription labelWorkUncheck : "labelWorkCheck"
{
Color _color = 0xFF2E2B28;
}

ResourceLimitUIConfig resourceLimitConfig
{
ResourceLimit _resourceLimit = Stone;
}

RibbonDescription resourceLimit
{
Alignment _alignment = TopLeft;
bool vertical = false;
int _topPad = 24;
int _cellPad = 8;
int _minWidth = 222;

ElementDescription _elements
[
"labelLimit",
"editLimit",
]

Dialog _toolTipDialog = "Dialog/ToolTip.rsc";
StringTable _toolTipStringTable = "Dialog/StringTable.rsc:gameDialogs";
String _toolTipText = "StoneLimitTip";
}

LabelDescription labelLimit
{
Alignment _alignment = MidLeft;

Font _font = "Font\FontSmall.rsc";
int _imageWidth = 20;
int _imageHeight = 20;
int _spacing = 4;
LabelPosition _labelPosition = TextRight;
Alignment _textAlignment = MidLeft;

StringTable _stringTable = "Dialog/StringTable.rsc:gameDialogs";
String _text = "StoneLimit";
SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "Clay";
}

SpinnerDescription editLimit : "Dialog/SharedElements.rsc:spinnerSmall6"
{
int _increment = 1000;
ElementDescription _border = "Dialog/SharedElements.rsc:flatButtonEnabledBorder";
}




in my screenshot you will see my [ mesh ] , my [ floor ] , and my [ floor1 ]. you will need to do same.

Title: Re: New 30 Trees.(IdleMOD)
Post by: Idle Work Team on October 04, 2015, 05:27:38 PM

Thank you very much. It looks so complicated. I'll try it first.
Title: Re: New 30 Trees.(IdleMOD)
Post by: Idle Work Team on October 04, 2015, 06:23:18 PM
@RedKetchup
Thanks for your help.
I've tested it, and it's already been achieved.

(http://i62.tinypic.com/20u7in4.jpg)
Title: Re: New 30 Trees.(IdleMOD)
Post by: Idle Work Team on October 04, 2015, 09:23:35 PM
(http://i59.tinypic.com/fqwdd.jpg)
(http://i62.tinypic.com/2hi2qhd.jpg)
Title: Re: New 30 Trees.(IdleMOD)
Post by: RedKetchup on October 05, 2015, 12:33:37 AM
very nice work :)
Title: Re: New 30 Trees.(IdleMOD)
Post by: Paeng on October 05, 2015, 03:39:03 AM
Woah, this is super interesting stuff... also the trees and plants and rocks are great...  :D
Title: Re: New 30 Trees.(IdleMOD)
Post by: Glenn on October 05, 2015, 04:28:14 PM
I agree, the new trees look great.

When do you plan on uploading them as a mod?

It may be best to keep them as a separate mod.
Title: Re: New 30 Trees.(IdleMOD)
Post by: MightyCucumber on October 28, 2015, 04:35:46 PM
Now I haven't been around for ages, but this definitely caught my eye. :O

Any plans on releasing this here? I know you have already released some mods on Steam, but most of us don't use Steam to play the game... would you kindly make them available elsewhere as well? We really enjoy them, and are eager to see more from you! ;P
Title: Re: New 30 Trees.(IdleMOD)
Post by: Paeng on January 03, 2016, 04:25:08 AM
Quote from: Idle Work Team on October 04, 2015, 09:23:35 PM(http://i59.tinypic.com/fqwdd.jpg)

Sorry to necro this thread - but did this mod ever see the light of day?

Shame if it didn't... :'(
Title: Re: New 30 Trees.(IdleMOD)
Post by: RedKetchup on January 03, 2016, 05:19:45 AM
i dunno i ve heard Idle hasnt been seen in months :(
Title: Re: New 30 Trees.(IdleMOD)
Post by: AzemOcram on February 13, 2016, 09:48:47 PM
It's such a shame they never released a mod with the trees!